-
Notifications
You must be signed in to change notification settings - Fork 4
Add GEDCOM Extended ASSO structures #185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
This extension enhances the GEDCOM 7 ASSO (association) structure to support: - Time-bounded relationships (_PERIOD with _START/_END) - Confidence levels in relationship assertions (_CONF) - Specific relationship types (_TYPE) - Relationship-specific privacy (_PRIV) All structures are extension substructures of the standard ASSO tag. The extension maintains backward compatibility - applications that don't support it will simply ignore the extension tags. Specification: https://github.com/glamberson/gedcom-extended-ASSO Contact: Greg Lamberson <[email protected]>
structure/extension/_CONF.yaml
Outdated
| 3 = Direct source, primary evidence, data considered reliable | ||
| 4 = Well-supported conclusion from primary evidence | ||
|
|
||
| This scale matches GEDCOM 7's QUAY (quality) values for consistency. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the intent is to match QUAY then why not use
payload: https://gedcom.io/terms/v7/type-Enum
enumeration set: "https://gedcom.io/terms/v7/enumset-QUAY"
?
Currently with Integer, a validator would accept values of 5, 5000, etc., which with Enum it would reject.
And reusing the standard type means that any language translations of the standard YAML files would automatically apply here too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because it doesn't match QUAY which only provides 0-3 instead of the needed 0-4 or 1-5 . Having 5 levels matches genealogical standards, and 4 doesn't. Thus people don't like to use it. I didn't consider altering QUAY, but that's the rationale for not using it. I'll use it for now, though. This is wearing me down.
| "https://github.com/glamberson/gedcom-extended-ASSO/_END": "{0:1}" | ||
|
|
||
| superstructures: | ||
| "https://gedcom.io/terms/v7/ASSO": "{0:1}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This extension uses two structures of type Date rather than one structure of type DatePeriod.
I gather this is so you can use ranges etc with each end.
This concept doesn't seem specific to ASSO. Why not a superstructure of (say)
https://gedcom.io/terms/v7/DATE?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great idea, but I clearly don't have the fluidity of thought about substructures and superstructures I should. There's certainly no reason to limit its use to ASSO.
structure/extension/_PRIV.yaml
Outdated
|
|
||
| uri: https://github.com/glamberson/gedcom-extended-ASSO/_PRIV | ||
|
|
||
| extension tags: [ _PRIV ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not use a relocated RESN structure, since it already has a standard PRIVACY value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Noted. Thanks.
structure/extension/_TYPE.yaml
Outdated
|
|
||
| type: structure | ||
|
|
||
| uri: https://github.com/glamberson/gedcom-extended-ASSO/_TYPE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not use a relocated standard https://gedcom.io/terms/v7/TYPE structure?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again!
| - Association End Date | ||
| - | | ||
| The date when an association ended. Uses standard GEDCOM 7 date format, | ||
| allowing for exact dates, date ranges, and approximate dates. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is a DatePeriod disallowed? Assuming so, say so.
It wouldn't seem to have any meaning here.
structure/extension/_TYPE.yaml
Outdated
| superstructures: | ||
| "https://gedcom.io/terms/v7/ASSO": "{0:1}" | ||
|
|
||
| contact: [email protected] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since there is no used by, I assume this is a proposal without any deployment yet, which is fine.
But in that case, you may want to use prerelease.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You may be right. My stance on these has changed at Gramps's approach has evolved. Still they're needed.
…h#185 - Changed _CONF to use standard QUAY enumeration instead of custom integer - Replaced _PRIV with RESN_relocated (standard RESN structure relocated to ASSO) - Replaced _TYPE with TYPE_relocated (standard TYPE structure relocated to ASSO) - Updated _PERIOD to be more general-purpose for any date period - Using structure relocation for standard GEDCOM structures per review guidance
|
@dthaler I've addressed all your review feedback in commit ab54e98:
All changes follow your guidance to reuse existing GEDCOM structures. Ready for re-review. |
- Reset registry_tools/GEDCOM.io submodule to match upstream main branch
|
i also reset this one. It shold be ok now too. |
|
|
||
| This approach reuses the standard RESN structure and enumeration, | ||
| providing consistency with existing GEDCOM 7 privacy mechanisms. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Recommend adding to all YAML files in this PR:
documentation:
- https://github.com/glamberson/gedcom-extended-ASSO
| --- | ||
| lang: en-US | ||
|
|
||
| type: structure relocation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://gedcom.io/terms/format doesn't permit a value of 'structure relocation` here
The PR (#189) by @tychonievich doesn't talk about whether or how to register a relocated standard structure (since it focuses on "older" extensions), nor does the main README. I think we need more guidance here.
| 1 = Questionable reliability of evidence | ||
| 2 = Secondary evidence, data probably reliable | ||
| 3 = Direct source, primary evidence, data considered reliable | ||
| 4 = Well-supported conclusion from primary evidence |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This contradicts line 16. The standard QUAY enumeration has no value 4.
|
|
||
| uri: https://github.com/glamberson/gedcom-extended-ASSO/_START | ||
|
|
||
| extension tags: [ _START ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use block format
| extension tags: [ _START ] | |
| extension tags: | |
| - _START |
Summary
This PR adds extension structures to enhance the standard GEDCOM 7 ASSO (association) tag with additional capabilities while maintaining backward compatibility.
Extension Features
The gedcom-extended-ASSO extension adds six new substructures to ASSO:
Example Usage
Backward Compatibility
Applications that don't support this extension will:
Documentation
Validation
All YAML files have been validated using the registry validator.
Contact: Greg Lamberson [email protected]