Graph¶
Graph contains multiple nodes interconnected via edges. These edges also tell us what relation nodes have with each other. A graph can either be directed or undirected. For our implementation we save hashmaps of
Node¶
Nodes in the graph are represented by IKBObjects. These objects are explained in more detail in kb.md, for our purposes the IKBObjects (or nodes) have a name (among other properties) and are passed to the Edge objects in pairs(as each edge has 2 nodes).
Edge¶
Edges link two nodes in graph. An Edge object contains the UUID of the child and parent node of the edge (the term child and parent applies only for directed graphs) Edges also contain a label which tells us what relation the two nodes in the Edge have between each other.
Small note: We save the UUID's of the nodes instead of the node objects to avoid circular references when saving edges in JSON files.