Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.1] - 2025-01-28

### Added
- Registry-compliant YAML files in `registry-yaml/` directory
- CHANGELOG.md file
- Link to GEDCOM Registry PR #173 in README

### Changed
- Updated README to reference registry submission status

### Technical Details
- Added 9 YAML files validated by official GEDCOM registry validator:
- 5 structure definitions (_OCUR, _OCREF, _PART, _PRESENCE, _ATTR)
- 3 enumeration definitions (Present, Absent, Unknown)
- 1 enumeration-set definition (Presence)

## [0.2.0] - 2025-01-27

### Changed
- **BREAKING**: Switched to container-only model
- _OCUR now contains only event data, no participant information
- _PART simplified to just person pointer (no role/attributes)
- Participant data moved to _OCREF under individual records

### Added
- Migration guide for upgrading from v0.1.0
- Compatibility examples showing hybrid approach

## [0.1.0] - 2025-01-26

### Added
- Initial release
- _OCUR occurrence record
- _PART participant substructure
- _OCREF occurrence reference
- Basic examples
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,15 @@ with the corresponding URI prefix

## Status

**Draft** - Seeking community feedback
**Published** - v0.2.0 released

**Registry Submission** - Submitted to [GEDCOM Registry PR #173](https://github.com/FamilySearch/GEDCOM-registries/pull/173)

## See Also

- [Specification](occurrence-extension.md)
- [Glossary](GLOSSARY.md)
- [Compatibility Guide](compatibility.md)
- [Examples](examples/)
- [YAML Definitions](yaml/)
- [YAML Definitions](yaml/)
- [Registry-Compliant YAML](registry-yaml/)
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.2.0
0.2.1
28 changes: 28 additions & 0 deletions registry-yaml/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Registry-Compliant YAML Files

This directory contains the GEDCOM registry-compliant YAML files for the gedcom-occurrences extension.

These files were submitted to the official GEDCOM registry via PR #173:
https://github.com/FamilySearch/GEDCOM-registries/pull/173

## Structure

The files follow the official GEDCOM registry structure:

- `structure/` - Extension tag definitions (_OCUR, _OCREF, etc.)
- `enumeration/` - Individual enumeration values (Present, Absent, Unknown)
- `enumeration-set/` - Enumeration set definition (Presence)

## Key Differences from Original yaml/ Directory

The original `yaml/` directory files had several issues that prevented registry acceptance:
- Used `type: record` instead of `type: structure`
- Missing enumeration definitions
- Incorrect payload URIs

These registry-compliant versions have been validated and accepted by the GEDCOM registry validator.

## Usage

These files are the authoritative definitions for the gedcom-occurrences extension tags.
Applications implementing this extension should reference these definitions.
15 changes: 15 additions & 0 deletions registry-yaml/enumeration-set/enumset-Presence.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
%YAML 1.2
---
lang: en-US

type: enumeration set

uri: https://github.com/glamberson/gedcom-occurrences/enumset-Presence

enumeration values:
- "https://github.com/glamberson/gedcom-occurrences/enum-Present"
- "https://github.com/glamberson/gedcom-occurrences/enum-Absent"
- "https://github.com/glamberson/gedcom-occurrences/enum-Unknown"

contact: "https://github.com/glamberson/gedcom-occurrences"
...
11 changes: 11 additions & 0 deletions registry-yaml/enumeration/enum-Absent.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
lang: en-US
type: enumeration
uri: https://github.com/glamberson/gedcom-occurrences/enum-Absent
extension tags:
- _ABSENT
specification:
- Absent
- Person was listed or referenced but not physically present
value of:
- https://github.com/glamberson/gedcom-occurrences/enumset-Presence
contact: https://github.com/glamberson/gedcom-occurrences
11 changes: 11 additions & 0 deletions registry-yaml/enumeration/enum-Present.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
lang: en-US
type: enumeration
uri: https://github.com/glamberson/gedcom-occurrences/enum-Present
extension tags:
- _PRESENT
specification:
- Present
- Person was physically present at the occurrence
value of:
- https://github.com/glamberson/gedcom-occurrences/enumset-Presence
contact: https://github.com/glamberson/gedcom-occurrences
11 changes: 11 additions & 0 deletions registry-yaml/enumeration/enum-Unknown.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
lang: en-US
type: enumeration
uri: https://github.com/glamberson/gedcom-occurrences/enum-Unknown
extension tags:
- _UNKNOWN
specification:
- Unknown
- Presence status cannot be determined from the source
value of:
- https://github.com/glamberson/gedcom-occurrences/enumset-Presence
contact: https://github.com/glamberson/gedcom-occurrences
23 changes: 23 additions & 0 deletions registry-yaml/structure/_ATTR.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
%YAML 1.2
---
contact: https://github.com/glamberson/gedcom-occurrences
extension tags:
- _ATTR
label: Occurrence Attribute
lang: en-US
payload: null
specification:
- Attribute
- 'A custom attribute for an occurrence reference. Used to store

occurrence-specific participant attributes such as dwelling number,

enumeration district, or other structured data from historical records.'
substructures:
https://gedcom.io/terms/v7/TEXT: '{1:1}'
https://gedcom.io/terms/v7/TYPE: '{1:1}'
Comment on lines +17 to +18

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

question: Required substructure cardinality is strict.

If omitting either field is valid, adjust the cardinality. Otherwise, confirm all data sources provide both fields.

superstructures:
https://github.com/glamberson/gedcom-occurrences/_OCREF: '{0:M}'
type: structure
uri: https://github.com/glamberson/gedcom-occurrences/_ATTR
...
36 changes: 36 additions & 0 deletions registry-yaml/structure/_OCREF.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
%YAML 1.2
---
contact: https://github.com/glamberson/gedcom-occurrences
extension tags:
- _OCREF
label: Occurrence Reference
lang: en-US
payload: '@<https://github.com/glamberson/gedcom-occurrences/_OCUR>@'
specification:
- Occurrence Reference
- 'A reference from an individual or family to an occurrence record (_OCUR).

This structure contains all participant-specific data such as role, age,

and participation details.


In the container-only model (v0.2.0+), all participant data is stored

exclusively in _OCREF structures to avoid data duplication and synchronization

issues.'
substructures:
https://gedcom.io/terms/v7/AGE: '{0:1}'
https://gedcom.io/terms/v7/NOTE: '{0:M}'
https://gedcom.io/terms/v7/ROLE: '{1:1}'
https://gedcom.io/terms/v7/SNOTE: '{0:M}'
https://gedcom.io/terms/v7/SOUR: '{0:M}'
https://github.com/glamberson/gedcom-occurrences/_ATTR: '{0:M}'
https://github.com/glamberson/gedcom-occurrences/_PRESENCE: '{0:1}'
superstructures:
https://gedcom.io/terms/v7/record-FAM: '{0:M}'
https://gedcom.io/terms/v7/record-INDI: '{0:M}'
type: structure
uri: https://github.com/glamberson/gedcom-occurrences/_OCREF
...
49 changes: 49 additions & 0 deletions registry-yaml/structure/_OCUR.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
%YAML 1.2
---
contact: https://github.com/glamberson/gedcom-occurrences
extension tags:
- _OCUR
label: Occurrence
lang: en-US
payload: null
specification:
- Occurrence Record
- 'An _OCUR record represents an occurrence as an independent, first-class object

that can involve multiple participants with different roles. This allows

the same occurrence (such as a census, burial, or ceremony) to be referenced

by multiple people without duplication of occurrence data.


Unlike embedded events (EVEN) in INDI or FAM records, _OCUR records exist at

the top level and are referenced using _OCREF from participants.


This extension addresses the synchronization problems that occur when multiple

people participate in the same event, providing a clean separation between

event data (date, place, type) and participation data (role, age).'
substructures:
https://gedcom.io/terms/v7/ADDR: '{0:1}'
https://gedcom.io/terms/v7/AGNC: '{0:1}'
https://gedcom.io/terms/v7/CAUS: '{0:1}'
https://gedcom.io/terms/v7/CHAN: '{0:1}'
https://gedcom.io/terms/v7/DATE: '{0:1}'
https://gedcom.io/terms/v7/EXID: '{0:M}'
https://gedcom.io/terms/v7/NOTE: '{0:M}'
https://gedcom.io/terms/v7/OBJE: '{0:M}'
https://gedcom.io/terms/v7/PLAC: '{0:1}'
https://gedcom.io/terms/v7/RELI: '{0:1}'
https://gedcom.io/terms/v7/SNOTE: '{0:M}'
https://gedcom.io/terms/v7/SOUR: '{0:M}'
https://gedcom.io/terms/v7/TYPE: '{1:1}'
https://gedcom.io/terms/v7/UID: '{0:M}'
https://github.com/glamberson/gedcom-occurrences/_PART: '{0:M}'
superstructures: {}
type: structure
uri: https://github.com/glamberson/gedcom-occurrences/_OCUR
...
24 changes: 24 additions & 0 deletions registry-yaml/structure/_PART.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
%YAML 1.2
---
contact: https://github.com/glamberson/gedcom-occurrences
extension tags:
- _PART
label: Participant
lang: en-US
payload: '@<https://gedcom.io/terms/v7/record-INDI>@ | @<https://gedcom.io/terms/v7/record-FAM>@'
specification:
- Participant
- 'A reference to an individual or family that participated in an occurrence.


In the container-only model (v0.2.0+), _PART contains only the pointer

to the participant. All participant-specific data (role, age, etc.) is

stored in the corresponding _OCREF structure to avoid data duplication.'
substructures: {}
superstructures:
https://github.com/glamberson/gedcom-occurrences/_OCUR: '{0:M}'
type: structure
uri: https://github.com/glamberson/gedcom-occurrences/_PART
...
21 changes: 21 additions & 0 deletions registry-yaml/structure/_PRESENCE.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
%YAML 1.2
---
contact: https://github.com/glamberson/gedcom-occurrences
extension tags:
- _PRESENCE
label: Presence Status
lang: en-US
payload: https://github.com/glamberson/gedcom-occurrences/enumset-Presence
specification:
- Presence Status
- 'Indicates the presence status of a participant in an occurrence.

Used to distinguish between participants who were physically present

versus those who were listed but absent.'
substructures: {}
superstructures:
https://github.com/glamberson/gedcom-occurrences/_OCREF: '{0:1}'
type: structure
uri: https://github.com/glamberson/gedcom-occurrences/_PRESENCE
...