Personal Knowledge Graphs, Ontology, Datalog, AI.
relational databases, and it already allows modeling data structures as predicates. In our case, the edge is a predicate. Every predicate has arity. Edge has an arity of 2, so we could annotate this fact as an edge/2. DataLog and Prolog do not separate programs from databases, so your program is a