Genealogical objects stored in the database are internally identified by their “handle” which is assigned when the object is created and never changes whatever the modifications to the object.
For obvious reasons of DB reliability and integrity, this “handle” is invisible to users.
Primary objects (not all objects, only those which are listed in the left pane of the main window) have a GrampsID in the default form of I1234 for persons (Individual 1234), F5678 for families (Family 5678), etc. This GrampsID can be modified at will. There is even a tool to bulk renumber the objects and reclaim “holes” in the numbering.
The fact that a GrampID may change prevents them from being used in notes to refer permanently to another object.
The only use I can see for them is a disambiguation role to uniquely identify homonyms (person, family, place, …). They are also involved in labelling GEDCOM data blocks, but this is external to Gramps. Apart from this, I see no safe usage for them.
May it be that in the very first versions of Gramps such GrampsIDs were in fact the true identity of the objects? Later this role was secured into the “handle”?
The GetGOV addon creates a Gramps ID that is the GOV id (from the GOV gazetteer) rather than using the default Gramps pattern. This addon will import (and create if needed) the specified place and all parent places with attributes. This allows the addon to not duplicate an upload of a place (assuming the ID is not reset - this is documented in the wiki page) . This was more efficient than using the GOV id as an attribute of a Place and scanning the complete place list before import/creating a new place.
Good point. You use this “visible-by-default” field for a valuable piece of information. Logically, it is an attribute but this avoids the pain of creating one through a dialog and numerous clicks.
Personally, I never store Sosa or other such numbering because it is not “absolute”. It depends on the root. Since I use my data to generate multiple ascendant/descendant trees, this would require to recompute the full labelling each time.
Side remark: how do you handle lateral branches? Say your first cousin would be 4AB? And what about non-connected people?
Could you explain the scheme in Families?
In Notes, the ID seems to take part of its encoding from note type. I guess the media ID is a shortened form of repository+description.