Linked Lists in Datomic by Joachim Hofer.
From the post:
As my last contact with Prolog was over ten years ago, I think it’s time for some fun with Datomic and Datalog. In order to learn to know Datomic better, I will attempt to implement linked lists as a Datomic data structure.
First, I need a database “schema”, which in Datomic means that I have to define a few attributes. I’ll define one :content/name (as a string) for naming my list items, and also the attributes for the list data structure itself, namely :linkedList/head and :linkedList/tail (both are refs):
…
You may or may not know that tolog, a topic map query language, was inspired in part by Datalog. Understanding Datalog could lead to new insights into tolog.
The other reason to mention this post is that Neo4j uses linked lists as part of its internal data structure.
If I am reading slide 9 (Neo4J Internals (update)) correctly, relationships are hard coded to have start/end nodes (singletons).
Not going to squeeze hyperedges out of that data structure.
What if you replaced the start/end node values with key/value pair as membership criteria for membership in the hyperedge?
Even if most nodes have only start/end nodes meeting a membership criteria, would free you up to have hyperedges when needed.
Will have to look at the implementation details on hyperedges/nodes to see. Suspect others have found better solutions.