pub struct QueryEngine;Expand description
The query engine supports all query operations.
Implementations§
Source§impl QueryEngine
impl QueryEngine
Sourcepub fn belief_revision(
&self,
graph: &MemoryGraph,
params: BeliefRevisionParams,
) -> AmemResult<RevisionReport>
pub fn belief_revision( &self, graph: &MemoryGraph, params: BeliefRevisionParams, ) -> AmemResult<RevisionReport>
Analyze how a hypothesis would affect existing beliefs.
This is a read-only operation: it does not modify the graph. It finds contradictions via text overlap + vector similarity, checks for negation words, and propagates weakening through CausedBy / Supports edges.
Sourcepub fn gap_detection(
&self,
graph: &MemoryGraph,
params: GapDetectionParams,
) -> AmemResult<GapReport>
pub fn gap_detection( &self, graph: &MemoryGraph, params: GapDetectionParams, ) -> AmemResult<GapReport>
Detect gaps in the knowledge graph: unjustified decisions, single-source inferences, low-confidence foundations, unstable knowledge, and stale evidence.
This is a read-only operation.
Sourcepub fn analogical(
&self,
graph: &MemoryGraph,
params: AnalogicalParams,
) -> AmemResult<Vec<Analogy>>
pub fn analogical( &self, graph: &MemoryGraph, params: AnalogicalParams, ) -> AmemResult<Vec<Analogy>>
Find subgraphs that are structurally and semantically analogous to the anchor.
Uses structural fingerprinting (node type counts, edge type counts, causal chain depth, branching factor) rather than full subgraph isomorphism.
combined_score = 0.6 * structural + 0.4 * content
This is a read-only operation.
Sourcepub fn drift_detection(
&self,
graph: &MemoryGraph,
params: DriftParams,
) -> AmemResult<DriftReport>
pub fn drift_detection( &self, graph: &MemoryGraph, params: DriftParams, ) -> AmemResult<DriftReport>
Track how beliefs on a given topic have changed over time.
Finds relevant nodes, groups them into SUPERSEDES chains and clusters of similar content across sessions, and reports stability.
This is a read-only operation.
Source§impl QueryEngine
impl QueryEngine
Sourcepub fn centrality(
&self,
graph: &MemoryGraph,
params: CentralityParams,
) -> AmemResult<CentralityResult>
pub fn centrality( &self, graph: &MemoryGraph, params: CentralityParams, ) -> AmemResult<CentralityResult>
Compute centrality scores for nodes in the graph.
Sourcepub fn shortest_path(
&self,
graph: &MemoryGraph,
params: ShortestPathParams,
) -> AmemResult<PathResult>
pub fn shortest_path( &self, graph: &MemoryGraph, params: ShortestPathParams, ) -> AmemResult<PathResult>
Find the shortest path between two nodes.
Source§impl QueryEngine
impl QueryEngine
Sourcepub fn consolidate(
&self,
graph: &mut MemoryGraph,
params: ConsolidationParams,
) -> AmemResult<ConsolidationReport>
pub fn consolidate( &self, graph: &mut MemoryGraph, params: ConsolidationParams, ) -> AmemResult<ConsolidationReport>
Run a set of consolidation operations against graph.
If params.dry_run is true, the graph is not mutated; the returned
report describes what would happen.
When dry_run is false:
DeduplicateFactsaddsSupersedesedges from the surviving node to each duplicate.LinkContradictionsaddsContradictsedges.PromoteInferenceschangesevent_typefromInferencetoFact.PruneOrphansandCompressEpisodesare always dry-run-only in V1.
Source§impl QueryEngine
impl QueryEngine
Sourcepub fn traverse(
&self,
graph: &MemoryGraph,
params: TraversalParams,
) -> AmemResult<TraversalResult>
pub fn traverse( &self, graph: &MemoryGraph, params: TraversalParams, ) -> AmemResult<TraversalResult>
Traverse from a starting node following specific edge types.
Sourcepub fn pattern<'a>(
&self,
graph: &'a MemoryGraph,
params: PatternParams,
) -> AmemResult<Vec<&'a CognitiveEvent>>
pub fn pattern<'a>( &self, graph: &'a MemoryGraph, params: PatternParams, ) -> AmemResult<Vec<&'a CognitiveEvent>>
Find nodes matching conditions.
Sourcepub fn temporal(
&self,
graph: &MemoryGraph,
params: TemporalParams,
) -> AmemResult<TemporalResult>
pub fn temporal( &self, graph: &MemoryGraph, params: TemporalParams, ) -> AmemResult<TemporalResult>
Compare graph state across time ranges or sessions.
Sourcepub fn causal(
&self,
graph: &MemoryGraph,
params: CausalParams,
) -> AmemResult<CausalResult>
pub fn causal( &self, graph: &MemoryGraph, params: CausalParams, ) -> AmemResult<CausalResult>
Impact analysis: what depends on a given node?
Sourcepub fn similarity(
&self,
graph: &MemoryGraph,
params: SimilarityParams,
) -> AmemResult<Vec<SimilarityMatchResult>>
pub fn similarity( &self, graph: &MemoryGraph, params: SimilarityParams, ) -> AmemResult<Vec<SimilarityMatchResult>>
Find similar nodes using feature vector cosine similarity.
Sourcepub fn memory_quality(
&self,
graph: &MemoryGraph,
params: MemoryQualityParams,
) -> AmemResult<MemoryQualityReport>
pub fn memory_quality( &self, graph: &MemoryGraph, params: MemoryQualityParams, ) -> AmemResult<MemoryQualityReport>
Evaluate memory quality across confidence, freshness, and graph structure.
Sourcepub fn context(
&self,
graph: &MemoryGraph,
node_id: u64,
depth: u32,
) -> AmemResult<SubGraph>
pub fn context( &self, graph: &MemoryGraph, node_id: u64, depth: u32, ) -> AmemResult<SubGraph>
Get the full context for a node: the node itself, all edges, and connected nodes.
Sourcepub fn resolve<'a>(
&self,
graph: &'a MemoryGraph,
node_id: u64,
) -> AmemResult<&'a CognitiveEvent>
pub fn resolve<'a>( &self, graph: &'a MemoryGraph, node_id: u64, ) -> AmemResult<&'a CognitiveEvent>
Get the latest version of a node, following SUPERSEDES chains.
Source§impl QueryEngine
impl QueryEngine
Sourcepub fn text_search(
&self,
graph: &MemoryGraph,
term_index: Option<&TermIndex>,
doc_lengths: Option<&DocLengths>,
params: TextSearchParams,
) -> AmemResult<Vec<TextMatch>>
pub fn text_search( &self, graph: &MemoryGraph, term_index: Option<&TermIndex>, doc_lengths: Option<&DocLengths>, params: TextSearchParams, ) -> AmemResult<Vec<TextMatch>>
BM25 text search over node contents. Uses TermIndex if available, falls back to full scan.
Sourcepub fn hybrid_search(
&self,
graph: &MemoryGraph,
term_index: Option<&TermIndex>,
doc_lengths: Option<&DocLengths>,
params: HybridSearchParams,
) -> AmemResult<Vec<HybridMatch>>
pub fn hybrid_search( &self, graph: &MemoryGraph, term_index: Option<&TermIndex>, doc_lengths: Option<&DocLengths>, params: HybridSearchParams, ) -> AmemResult<Vec<HybridMatch>>
Hybrid BM25 + vector search with Reciprocal Rank Fusion.