Friday, July 31, 2020

converting the Physics Derivation Graph backend from JSON to a property graph

I shared the JSON database with a few researchers and realized I am embarrassed by the pointer chasing needed to construct the graph. The complexity of numerical IDs used for every feature in the PDG is confusing.

I had come up with a property graph schema which greatly simplifies the concepts and reduces the pointer chasing present in the JSON. Implementing the backend of the PDG as a property graph instead of JSON is a reasonable and beneficial task, but I'm not comfortable with any of the available property graph databases. There are many options available:

My criteria are open source, widely adopted, stable. 
I want the graph content to be plain text. For Neo4j, this means exporting graph content to a Cypher representation:
I want to be able to enforce constraints on the property graph to prevent undesired edges or properties. In Neo4j this is possible but not supported in the community edition.
Staring at the current PDG JSON file, the structure is reasonably intuitive and relatively close to the property graph schema I had come up with. The JSON structure is not a "nodes and edges" design. The JSON is hierarchical (nested dictionaries) to both be more concise and to reduce the computational pointer chasing. 

No comments:

Post a Comment