I am curious to know how CAD programs and FreeCAD in particular stores data?
Is it a relational DB, an object store, NoSQL, a structured file format or something else?
The reason I'm asking is that I've been exploring Graph Databases recently and there are some really useful features. They contain vertices (nodes or objects) and edges (links or relationships). I was just speculating whether CAD objects could benefit from this model. The architecture can manage mind boggling numbers of vertices and edges (into the billions), with little impact on the inherently speedy performance.
I was thinking the directed graph relationship model is a superset of hierarchical graphs and can deliver really sophisticated and fast query responses, so slicing and dicing the CAD model to show subsets or perspectives for any number of interesting dimensions, such as: functional, organisational, business, owner, manager, drafter, version, attribute, metadata, etc.
Just a thought. Is this something that's been explored already and if so, what were the conclusions?
One graph DB implementation is https://janusgraph.org/