pub struct KnowledgeGraph {
pub nodes: HashMap<String, KgNode>,
pub edges: Vec<KgEdge>,
pub adjacency: HashMap<String, Vec<usize>>,
}Expand description
A directed knowledge graph whose nodes are predicates, constants, variables, or rules, and whose edges encode semantic relationships among them.
Adjacency is maintained as a map from node ID to a list of indices into
the edges vector for O(1) lookup of outgoing edges.
Fields§
§nodes: HashMap<String, KgNode>All nodes, keyed by their unique identifier.
edges: Vec<KgEdge>All edges stored in insertion order.
adjacency: HashMap<String, Vec<usize>>node_id → indices into edges for edges leaving that node.
Implementations§
Source§impl KnowledgeGraph
impl KnowledgeGraph
Sourcepub fn add_node(&mut self, node: KgNode) -> Result<(), KgError>
pub fn add_node(&mut self, node: KgNode) -> Result<(), KgError>
Insert a node. Returns KgError::DuplicateNode if the ID already exists.
Sourcepub fn add_edge(&mut self, edge: KgEdge) -> Result<(), KgError>
pub fn add_edge(&mut self, edge: KgEdge) -> Result<(), KgError>
Insert an edge. Both endpoints must already exist as nodes.
Returns KgError::EdgeEndpointMissing if either endpoint is absent.
Sourcepub fn node_count(&self) -> usize
pub fn node_count(&self) -> usize
Number of nodes in the graph.
Sourcepub fn edge_count(&self) -> usize
pub fn edge_count(&self) -> usize
Number of edges in the graph.
Trait Implementations§
Source§impl Clone for KnowledgeGraph
impl Clone for KnowledgeGraph
Source§fn clone(&self) -> KnowledgeGraph
fn clone(&self) -> KnowledgeGraph
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for KnowledgeGraph
impl Debug for KnowledgeGraph
Source§impl Default for KnowledgeGraph
impl Default for KnowledgeGraph
Source§fn default() -> KnowledgeGraph
fn default() -> KnowledgeGraph
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for KnowledgeGraph
impl RefUnwindSafe for KnowledgeGraph
impl Send for KnowledgeGraph
impl Sync for KnowledgeGraph
impl Unpin for KnowledgeGraph
impl UnsafeUnpin for KnowledgeGraph
impl UnwindSafe for KnowledgeGraph
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more