PropositionAbstractor

Generates higher-level abstract propositions from a group of related propositions.

This is an "active abstraction" operation - given N propositions about an entity, topic, or context, it synthesizes higher-level insights that capture the essence of the group.

Example:

Input propositions about Bob:
- "Bob prefers morning meetings"
- "Bob likes detailed documentation"
- "Bob reviews PRs thoroughly"

Output abstraction:
- "Bob values thoroughness and clarity in work processes"

Abstractions are stored as regular propositions with:

  • level = max(source levels) + 1

  • sourceIds = IDs of source propositions

  • decay = average decay of sources

  • confidence = LLM-assessed confidence in the abstraction

Inheritors

Functions

Link copied to clipboard
abstract fun abstract(group: PropositionGroup, targetCount: Int = 3): List<Proposition>

Generate higher-level propositions from a labeled group.

open fun abstract(propositions: List<Proposition>, targetCount: Int = 3): List<Proposition>

Generate higher-level propositions from a list. Convenience method that wraps propositions in an unlabeled group.