Skip to content

Commit

Permalink
Initial strawman of EXID-TYPE registry.
Browse files Browse the repository at this point in the history
Signed-off-by: Dave Thaler <dthaler@armidalesoftware.com>
  • Loading branch information
dthaler2 committed Mar 18, 2022
1 parent 8df5be9 commit 13a9c63
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ If you are looking for FamilySearch's GEDCOM 5.5.1 Java parser, which previously
## Repository structure

- [`changelog.md`](changelog.md) is a running log of major changes made to the specification.
- [`exid-types.json`](exid-types.json) is a JSON file containing registered EXID-TYPE values.
- [`specification/`](specification/) contains the FamilySearch GEDCOM specification:
- `specification/gedcom-`number`-`title`.md` files are the source documents used to define the FamilySearch GEDCOM specification. It is written in pandoc-flavor markdown and is intended to be more easily written than read. It is splint into several files (ordered by the integer in their names) to facilitate comparing files.
- In a local check-out, this is also where the build scripts place rendered files `gedcom.html` and `gedcom.pdf`; see [releases](releases/latest) for a pre-rendered copy of these.
Expand Down
28 changes: 28 additions & 0 deletions exid-types.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[
{
"label": "AFN",
"type": "https://gedcom.io/terms/v7/AFN",
"description": "Ancestral File Number",
"contact": "GEDCOM@familysearch.org",
"change-controller": "FamilySearch",
"reference": "https://gedcom.io/migrate/#afn-rfn-rin"
},
{
"label": "RIN",
"type": "https://gedcom.io/terms/v7/RIN",
"description": "Automated Record ID",
"contact": "GEDCOM@familysearch.org",
"change-controller": "FamilySearch",
"fragment": "Source System",
"reference": "https://gedcom.io/migrate/#afn-rfn-rin"
},
{
"label": "RFN",
"type": "https://gedcom.io/terms/v7/RFN",
"description": "Permanent Record ID",
"contact": "GEDCOM@familysearch.org",
"change-controller": "FamilySearch",
"fragment": "Resource ID",
"reference": "https://gedcom.io/migrate/#afn-rfn-rin"
}
]
14 changes: 14 additions & 0 deletions specification/gedcom-03-datamodel.md
Original file line number Diff line number Diff line change
Expand Up @@ -1703,6 +1703,8 @@ the authority owning the identifier is provided in the TYPE substructure; see `E
Depending on the maintaining authority, an `EXID` may be a unique identifier for the subject, an identifier for 1 of several views of the subject, or an identifier for the externally-maintained copy of the same information as is contained in this structure. However, unlike `UID` and `REFN`, `EXID` does not identify a structure; structures with the same `EXID` may have originated independently rather than by edits from the same starting point.
`EXID` identifiers are expected to be unique and durable.
#### `FAM` (Family record) `g7:record-FAM`
See `FAMILY_RECORD`
Expand Down Expand Up @@ -2713,6 +2715,18 @@ If the authority maintains stable URLs for each identifier it issues,
it is recommended that the `TYPE` payload be selected such that appending the `EXID` payload to it yields that URL.
However, this is not required and a different URI for the set of issued identifiers may be used instead.

Registered URIs are listed in [exid-types.json](https://github.com/FamilySearch/GEDCOM/blob/main/exid-types.json), where fields include:
* "label": a short string suitable for display in a user interface.
* "type": The URI representing the authority issuing the `EXID`.
* "description": A description of the meaning of the `EXID`.
* "contact": A contact email address for the person or organization registering the URI.
* "change-controller": The name or contact information for the person or organization authorized to update the registration.
* "fragment": If present, indicates a short string that can be used as a label for a fragment identifier appended to the URI. If absent, indicates that fragment identifiers are not used with the URI.
* "reference": A URL with more information about the meaning of the `EXID`. Such information should explain the uniqueness and expected durability of the identifier.

Additional type URIs can be registered by filing a
[GitHub pull request](https://github.com/FamilySearch/GEDCOM/pulls).

#### `UID` (Unique Identifier) `g7:UID`

A globally-unique identifier of the superstructure,
Expand Down

0 comments on commit 13a9c63

Please sign in to comment.