Add GEDCOM 7 extensions: gedcom-occurrences and gedcom-evidence#173
Add GEDCOM 7 extensions: gedcom-occurrences and gedcom-evidence#173glamberson wants to merge 4 commits into
Conversation
This PR adds two GEDCOM 7 extensions to the registry: 1. gedcom-occurrences (v0.2.0) - Independent events with multiple participants - Solves the event synchronization problem - Implements container-only model matching GRAMPS Event/EventRef pattern - Repository: https://github.com/glamberson/gedcom-occurrences 2. gedcom-evidence (v0.1.0) - Floating evidence and research documentation - Solves the "Which John Smith?" problem - Allows evidence to exist independently of identity conclusions - Repository: https://github.com/glamberson/gedcom-evidence Both extensions have been validated with the registry validator. Both are based on analysis of 15+ years of genealogy community discussions.
|
My apologies for submitting both extensions as one PR in my haste. I realize now they should have been submitted separately. Please let me know if you'd like me to split them and resubmit as two separate PRs. Also, I wanted to note that we've since released patch versions of both extensions:
These patch releases add the registry-compliant YAML files to the extension repositories themselves (in a Thank you for your patience with this submission! |
dthaler
left a comment
There was a problem hiding this comment.
Really interesting submission, just some YAML formatting issues that should be easy to address.
|
|
||
| occurrence-specific participant attributes such as dwelling number, | ||
|
|
There was a problem hiding this comment.
| occurrence-specific participant attributes such as dwelling number, | |
| occurrence-specific participant attributes such as dwelling number, |
| specification: | ||
| - Evidence Conclusion | ||
| - 'A reference from an individual or family to evidence that supports | ||
|
|
There was a problem hiding this comment.
Remove blank lines in middle of sentences
| @@ -1,34 +0,0 @@ | |||
| %YAML 1.2 | |||
There was a problem hiding this comment.
Don't delete other registered extensions
| @@ -1,37 +0,0 @@ | |||
| %YAML 1.2 | |||
There was a problem hiding this comment.
Don't delete other registered extensions
- Add %YAML 1.2 header to all enum files - Add proper document start (---) and end (...) markers - Fix extension tags from list to single value format - Fix indentation for specification and value of lists - Add blank lines between sections for readability Addresses validation errors from PR review
|
FamilySearch/GEDCOM.io#283 recently added prerelease to the YAML schema. |
|
@dthaler Thank you for the review! I've pushed fixes for all the YAML formatting issues:
The validation should pass now. Please let me know if you need any other changes! |
- Fix extension tags format in structure files (single value instead of list) - Add missing newlines at end of enumset files This should resolve all validation errors from the CI check
|
Fixed the remaining validation errors:
The validation should pass now. Thanks for your patience! |
|
Yes, very interesting extension! I have put in my program a similar model for source citations: Every event (or other recorded data) gets a source citation record, and these are cited by individual records or family records. The application finds all involved people by simply looking for the source citation XREF, and has their roles by the ROLE tag. |
|
The evidence extension: 0 @E1@ _EVID
1 _ID John Smith
1 _ID son of Mary
1 _ID aged 40
1 SOUR @S1@
2 PAGE 1850 Census, p. 42
0 @I1@ INDI
1 NAME John /Smith/
1 _EVID @E1@
2 _CONF 3 # 60% confidence this is him
0 @I2@ INDI
1 NAME John /Smith/
1 _EVID @E1@
2 _CONF 2 # 40% confidence it's this oneWhat is the the family record of the mother? Or is there no family record including John as long as we have no 100% solution? Today I have John Smith as separate record I do agree that we urgently need a way to document different possible conclusions in GEDCOM transfer as long the known data can be interpreted with different solutions! |
|
Thank you for pointing out the prerelease field! We do not need
We're committed to maintaining backward compatibility going forward. Any future enhancements will follow semantic versioning principles. |
|
@albertemmerich Thank you for your thoughtful feedback. You've raised excellent points about both extensions. Let me address each: Regarding Occurrences ExtensionYou're absolutely right about the duplication concern. The current design does maintain bidirectional links (INDI → _OCUR and _OCUR → _PART), similar to GEDCOM's existing CHIL ↔ FAMC pattern. Your point about avoiding duplication for GEDCOM 8.x is well-taken. For now, we've followed GEDCOM 7's patterns for compatibility, but we agree that future versions should consider unidirectional links with applications handling the reverse lookups. The occurrence model does indeed store event data centrally, which is one of its key benefits - allowing multiple people to share the same documented event without duplicating the event details. Regarding Evidence ExtensionYour example highlights an important use case. The evidence extension is designed to work alongside existing GEDCOM structures, not replace them. In your example:
For your specific workflow:
The evidence extension essentially provides a formal way to document what you're already tracking - the reasoning and confidence behind genealogical conclusions. Looking ForwardBoth extensions aim to provide transport mechanisms for evidence-based genealogy without breaking existing GEDCOM compatibility. They're designed to be optional enhancements that tools can adopt incrementally. Would love to hear more about your source citation model - it sounds like it aligns well with these extensions' goals. |
|
@glamberson Still getting YAML validation errors. And I do think it would help to split into two separate PRs even if it's not strictly required. |
|
|
||
| from QUAY (quality of data) by assessing the researcher''s confidence | ||
|
|
||
| in the evidence''s relevance and interpretation. | ||
|
|
||
|
|
||
| Confidence levels can change as additional evidence is discovered | ||
|
|
||
| and analysis progresses.' |
There was a problem hiding this comment.
Remove extra blank lines in the middle of sentences.
| https://github.com/glamberson/gedcom-evidence/_CONF: '{0:1}' | ||
| https://github.com/glamberson/gedcom-evidence/_FIND: '{0:M}' | ||
| https://github.com/glamberson/gedcom-evidence/_ID: '{0:M}' | ||
| superstructures: {} |
There was a problem hiding this comment.
https://github.com/glamberson/gedcom-evidence?tab=readme-ov-file#quick-start shows that _EVID is not just used as a record, but also as a substructure of https://gedcom.io/terms/v7/record-INDI
I think you need two YAML files as a result, one for record-EVID and one for EVID as a substructure.
| https://gedcom.io/terms/v7/DATE: '{0:1}' | ||
| https://gedcom.io/terms/v7/NOTE: '{0:M}' | ||
| https://gedcom.io/terms/v7/SNOTE: '{0:M}' | ||
| superstructures: |
There was a problem hiding this comment.
https://github.com/glamberson/gedcom-evidence/blob/master/specification.md#2-research-documentation-_rdoc shows that _RDOC is also used for a record structure, so I think you also need a YAML file for record-_RDOC
- Split _EVID and _RDOC into separate record and structure files - Fixed extension tags format from list to single value - Removed blank lines within specification text - Changed payload types appropriately (XREF for references) - Added proper YAML headers to all files - Added document markers (--- and ...) where missing
|
@dthaler Thank you for your patience! I've pushed another commit that should fix all the remaining YAML validation errors: Changes made:
The validation should pass now. I agree it would be cleaner to split this into two PRs - would you like me to do that now, or shall we proceed with the current PR? |
|
This PR has been split into two separate PRs as requested:
Both PRs contain the same content that was in this combined PR, with all YAML validation fixes applied. Thank you for your patience with the review process! |
Summary
This PR adds two GEDCOM 7 extensions to the registry that solve long-standing problems in genealogy data exchange.
Extensions Added
1. gedcom-occurrences (v0.2.0)
Repository: https://github.com/glamberson/gedcom-occurrences
Provides independent event records with multiple participants, solving the event synchronization problem that occurs when the same event (census, burial, ceremony) involves multiple people.
Key features:
2. gedcom-evidence (v0.1.0)
Repository: https://github.com/glamberson/gedcom-evidence
Enables "floating evidence" that can exist independently of identity conclusions, solving the "Which John Smith?" problem that has plagued genealogy software for 15+ years.
Key features:
Validation
All YAML files have been validated using the registry validator:
Background
Both extensions are based on:
Related Discussions
27a67c8to318ca03#117: Extend predefined Event typesPlease let me know if you need any clarification or would like me to make any adjustments to the submission.