Live data from Hacker News

MillenniumDB: Property graph and RDF engine, still in development

github.com

41–43 of 43 posts

Re: MillenniumDB: Property graph and RDF engine, still in development

#41

Earlier quoted context omitted.

Property graphs map to relational databases pretty well. Using Neo4j's terminology table name -> node label table row -> node table column -> node property The result of a query is a sub-graph and is very composable.

I think it maps much better to document databases. Nodes are just documents. You just need to slap on a relations document type for the graph edges, and to store edge properties I was close to finishing at least version 1.0 of a document/graph database on top of Cassandra and dynamodb.

With Neo4j properties and list members cannot be complex objects just like DB table rows. I was thinking that my dream DB would be a hybrid of MongoDB documents with Neo4j type relationships between them.

Re: MillenniumDB: Property graph and RDF engine, still in development

#42

What is a domain graph?

"Domain Graph" [1] was renamed to "Multilayer Graphs" [2].

The "Multilayer Graphs Model" was aimed to address the limitations found in prior Graph Models (e.g. RDF, Property Graphs) in representing higher-arity graphs without having to resort to reification or reserved words/vocab.

Skipping over the formal math definitions, a Multi-Layer Graph, in practical terms, is represented by statements of "quads": "{edge id, source, label, target}" -- similar on the surface to RDF-named graphs, but not.

The source and target may also refer other edges in addition to referring to the "entities" of real-world-concepts; targets may also be data types (e.g. strings, ints, etc)-- I believe that MilleniumDB puts edges, sources, targets and some simple values under the same packed int64 namespace.

Useful for MilleniumDB under-the-hood design/architecture, and probably for Wikidata where their data model are qualified facts-- a qualifying statement (e.g. "valid from 2020 to 2024") about a factual statement ("Alice Lived in America").

But this is just me, a non-expert, trying to cut to the core points after discovering and reading the papers just recently since knowledge graphs are hot topics right now.

[1] https://arxiv.org/abs/2111.01540 [2] https://users.dcc.uchile.cl/~ahogan/docs/mutlilayer_graphs.p...

Re: MillenniumDB: Property graph and RDF engine, still in development

#43

What is a domain graph?

"Domain Graph" [1] was renamed to "Multilayer Graphs" [2]. The "Multilayer Graphs Model" was aimed to address the limitations found in prior Graph Models (e.g. RDF, Property Graphs) in representing higher-arity graphs without having to resort to reification or reserved words/vocab. Skipping over the formal math definitions, a Multi-Layer Graph, in practical terms, is represented by statements of "quads": "{edge id, s…

allowing edges to have edges is something that RDF* allows.

Property graphs DBs like Neo4j don't support it but you can do it by using a node as a relationship. This is called a metanode or a hypernode. The need for this is mitigated somewhat by the fact that property graphs allow edges to have properties themselves. so you would use

(Alice)-[:LIVES_IN{valid_from:2020,valid_to:2024}]-(USA)

Edit: Read the paper and it is actually an attempt to unify the RDF, RDF* and property graph data models which is VERY interesting.

Post reply on HN