3 Myths about graph query languages. Busted by Pixy. by Sridhar Ramachandran.
A very short slide deck that leaves you wanting more information.
It got my attention because I didn’t know there were any myths about graph query languages. 😉
I think the sense of “myth” here is more “misunderstanding” or simply “incorrect information.”
Some references that may be helpful while reading these slides:
- Graph database (Wikipedia)
- Gremlin
- HypergraphDB
- Pixy: Declarative graph query language.
- Tinkerpop
I must confess that “Myth #3: GQLs [Graph Query Languages] can’t be relational” has always puzzled me.
In part because hypergraphs have been used to model databases for quite some time.
For example:
Making use of arguments from information theory it is shown that a boolean function can represent multivalued dependencies. A method is described by which a hypergraph can be constructed to represent dependencies in a relation. A new normal form called generalized Boyce-Codd normal form is defined. An explicit formula is derived for representing dependencies that would remain in a projection of a relation. A definition of join is given which makes the derivation of many theoretical results easy. Another definition given is that of information in a relation. The information gets conserved whenever lossless decompositions are involved. It is shown that the use of null elements is important in handling data.
Would you believe: Some analytic tools for the design of relational database systems by K. K. Nambiar in 1980?
So far as I know, hypergraphs are a form of graph so it isn’t true that “graphs can only express binary relations/predicates.”
One difference (there are others) is that a hypergraph database doesn’t require derivation of relationships because those relationships are already captured by a hyperedge.
Moreover, a vertex can (whether it “may” or not in a particular hypergraph is another issue) be a member of more than one hyperedge.
Determination of common members becomes a straight forward query as opposed to two or more derivations of associations and then calculation of any intersection.
For all of that, it remains important as notice of a new declarative graph query language (GQL).
Thanks for writing about this. I am new to graph DBs and might have overlooked some history 🙂
The tutorial is a good introduction to the language: https://github.com/lambdazen/pixy/wiki/Pixy-Tutorial
The library compiles PROLOG-based graph queries to Gremlin expressions.
Regards,
Sridhar.
Comment by lambdazen — October 16, 2013 @ 9:20 am