It was just an idea for any bulk process and data importing.
There is an Import gramplet, but as wrote on the above sample, Note class can also be a pseudo top parent class, maybe like the database class on XML structure. e.g., a custom representation, like:
/database/events/event[0]/@handle
..
/database/people/person[0]/@handle
..
/database/families/family[0]/@handle
..
/database/citations/citation[0]/@handle
..
/database/sources/source[0]/@handle
..
/database/places/placeobj[0]/@handle
..
/database/objects/object[0]/@handle
..
/database/repositories/repository[0]/@handle
..
/database/notes/note[0]/@handle
might be:
/note/events/event[-1]@hlink
..
/note/people/person[-1]@hlink
..
/note/families/family[-1]@hlink
..
/note/citations/citation[-1]@hlink
..
/note/sources/source[-1]@hlink
..
/note/places/place[-1]@hlink
..
/note/objects/object[-1]@hlink
..
/note/repositories/repository[-1]@hlink
where [-1] will be generated after the parent Note object.
/!\ custom illustration, just a translation, a pseudo-concept, no academic design or model
So, close to gedcom logic but much more flexible. Any set of primary objects (class) can be a single database… Handling relations via a top Note object could be a “simple” way for a bulk import and will provide a solution for data and relationships control. Just an idea.
In code development, there is always a net benefit in having the slimmest possible structure. It makes the intent clearer.
If you look at the above custom representation of the XML relations (XPath like), you may see some possible improvements. Flat database human reading vs a pure machine coding!
-
Links. one directional relation on Associations (person → person).
Family/Relationship links (child → parent , spouses/partners).
Object References (role on eventref, section area on media objects, etc.). Backreferences. etc.
-
Attributes. Some attributes are close to events (facts/events on gedcom). Attributes can have notes and citations. Check back references for primary objects into Person’s attribute. etc.
-
Address and Places
-
Date object.
-
etc.
Sure, they could all be replaced by @handle/@hlink or any hash, and the structure will be slimmer (and faster) as the current one.
Does gramps need such improvements on desktop applications?
As far as I know, there is no limitation on DB model. One can generate a DB bridge or minor customization (customisation?) for web services or advanced calculations.