FamilySearch / GEDCOM

Apache License 2.0
166 stars 21 forks source link

Identifying the root individual #197

Open tychonievich opened 2 years ago

tychonievich commented 2 years ago

Discussed in https://github.com/FamilySearch/GEDCOM/discussions/191

Originally posted by **Snake69** August 26, 2022 How do I identify the root individual in a Gedcom? Is it the first INDI record in the Gedcom?

This is not officially supported in 7.0, but there is a common pattern of using the first INDI record (common enough we should probably add a non-normative note in 7.0) and there is enough use case for it that we should probably add support for it formally in 7.1

Norwegian-Sardines commented 2 years ago

What is a “root person”? By “first INDI” what do you mean? Are you saying XREF “I1”? What happens when an XREF reorg happens?

These are all asked in #191, but need to be defined again, and how it relates to using GEDCOM to transfer data to other applications, what happens when a merge occurs and is it really very important to GEDCOM rather than the individual program or user of an online collaborative environment (over a desktop, one user system).

Norwegian-Sardines commented 2 years ago

My real question is: What value does identifying a root individual have to the sending and/or receiving program?

Why would GEDCOM care?

tychonievich commented 1 year ago

Discussed in steering committee

We have partial support with #283 but not full support. Rather than add a new structure, we propose adding a note to the spec along the lines of "many applications identify "root" or "primary" individuals for various display and report purposes, and use the first INDI in the file that meets their specific needs for this purpose based on the general "preference order" rule for substructures. Applications are encouraged to consider this in selecting record order in the dataset."

dthaler commented 1 year ago

FYI, I came across https://fhug.org.uk/kb/kb-article/gedcom-extension-list/ which mentions use by the Family Historian app:

File Root: _ROOT This tag identifies the File Root Individual Record Id and appears at the end of the Header Record before the first Individual Record:

1 _ROOT @I6@ 0 @I1@ INDI

It is typically ignored by other programs except Utility ~ Family Tree Analyzer, but could be converted to a Note Record using the label File Root:, and linked to from the Individual Record.

Just noting this "Use" here.

Norwegian-Sardines commented 1 year ago

FH also says:

You can change a file root at any time. You can also clear the file root (have >no file root) if you wish. However, it is usually desirable to have a file root. >The Focus Window always shows how the focus person is related to the file >root, for example. The Records Window shows how everyone is related to >the file root, in its Relationship to Root column.

When I use FH I don’t set a file root! I never understood why it is desirable to set a file root!