Add GEDCOM Extended ASSO structures#185
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 <lamberson@yahoo.com>
| 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.
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.
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.
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.
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.
|
|
||
| uri: https://github.com/glamberson/gedcom-extended-ASSO/_PRIV | ||
|
|
||
| extension tags: [ _PRIV ] |
There was a problem hiding this comment.
why not use a relocated RESN structure, since it already has a standard PRIVACY value?
|
|
||
| type: structure | ||
|
|
||
| uri: https://github.com/glamberson/gedcom-extended-ASSO/_TYPE |
There was a problem hiding this comment.
Why not use a relocated standard https://gedcom.io/terms/v7/TYPE structure?
| - 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.
Is a DatePeriod disallowed? Assuming so, say so.
It wouldn't seem to have any meaning here.
| superstructures: | ||
| "https://gedcom.io/terms/v7/ASSO": "{0:1}" | ||
|
|
||
| contact: lamberson@yahoo.com |
There was a problem hiding this comment.
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.
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.
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.
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.
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.
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 lamberson@yahoo.com