Skip to content

Conversation

@glamberson
Copy link
Collaborator

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:

  1. _TYPE - Specifies the type of association beyond the standard ROLE
  2. _PERIOD - Container for time boundaries of the association
  3. _START - When the association began
  4. _END - When the association ended
  5. _CONF - Confidence level (0-4 scale matching GEDCOM 7's QUAY)
  6. _PRIV - Privacy flag for sensitive associations

Example Usage

0 @I1@ INDI
1 NAME John /Smith/
1 ASSO @I2@
2 ROLE Business Partner
2 _TYPE General Partnership
2 _PERIOD
3 _START 1845
3 _END JUN 1867
2 _CONF 4
2 NOTE Wilson & Associates Mercantile

Backward Compatibility

Applications that don't support this extension will:

  • See and preserve the standard ASSO structure
  • Ignore all extension tags
  • Maintain data integrity on import/export

Documentation

Validation

All YAML files have been validated using the registry validator.

Contact: Greg Lamberson [email protected]

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]>
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.
Copy link
Collaborator

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.

Copy link
Collaborator Author

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}"
Copy link
Collaborator

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?

Copy link
Collaborator Author

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.


uri: https://github.com/glamberson/gedcom-extended-ASSO/_PRIV

extension tags: [ _PRIV ]
Copy link
Collaborator

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?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noted. Thanks.


type: structure

uri: https://github.com/glamberson/gedcom-extended-ASSO/_TYPE
Copy link
Collaborator

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?

Copy link
Collaborator Author

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.
Copy link
Collaborator

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.

superstructures:
"https://gedcom.io/terms/v7/ASSO": "{0:1}"

contact: [email protected]
Copy link
Collaborator

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.

Copy link
Collaborator Author

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
@glamberson
Copy link
Collaborator Author

@dthaler I've addressed all your review feedback in commit ab54e98:

  • 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

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
@glamberson
Copy link
Collaborator Author

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.

Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Collaborator

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 ]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use block format

Suggested change
extension tags: [ _START ]
extension tags:
- _START

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants