Skip to main content

QueryEngine

Struct QueryEngine 

Source
pub struct QueryEngine;
Expand description

The query engine supports all query operations.

Implementations§

Source§

impl QueryEngine

Source

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.

Source

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.

Source

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.

Source

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

Source

pub fn centrality( &self, graph: &MemoryGraph, params: CentralityParams, ) -> AmemResult<CentralityResult>

Compute centrality scores for nodes in the graph.

Source

pub fn shortest_path( &self, graph: &MemoryGraph, params: ShortestPathParams, ) -> AmemResult<PathResult>

Find the shortest path between two nodes.

Source§

impl QueryEngine

Source

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:

  • DeduplicateFacts adds Supersedes edges from the surviving node to each duplicate.
  • LinkContradictions adds Contradicts edges.
  • PromoteInferences changes event_type from Inference to Fact.
  • PruneOrphans and CompressEpisodes are always dry-run-only in V1.
Source§

impl QueryEngine

Source

pub fn new() -> Self

Create a new query engine.

Source

pub fn traverse( &self, graph: &MemoryGraph, params: TraversalParams, ) -> AmemResult<TraversalResult>

Traverse from a starting node following specific edge types.

Source

pub fn pattern<'a>( &self, graph: &'a MemoryGraph, params: PatternParams, ) -> AmemResult<Vec<&'a CognitiveEvent>>

Find nodes matching conditions.

Source

pub fn temporal( &self, graph: &MemoryGraph, params: TemporalParams, ) -> AmemResult<TemporalResult>

Compare graph state across time ranges or sessions.

Source

pub fn causal( &self, graph: &MemoryGraph, params: CausalParams, ) -> AmemResult<CausalResult>

Impact analysis: what depends on a given node?

Source

pub fn similarity( &self, graph: &MemoryGraph, params: SimilarityParams, ) -> AmemResult<Vec<SimilarityMatchResult>>

Find similar nodes using feature vector cosine similarity.

Source

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.

Source

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

BM25 text search over node contents. Uses TermIndex if available, falls back to full scan.

Hybrid BM25 + vector search with Reciprocal Rank Fusion.

Trait Implementations§

Source§

impl Default for QueryEngine

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.