Awesome
FamilySearch GEDCOM
The official FamilySearch GEDCOM specification for exchanging genealogical data.
This repository is for the collaborative development of the FamilySearch GEDCOM specification. If you are looking for the specification itself, see https://gedcom.io.
If you are looking for FamilySearch's GEDCOM 5.5.1 Java parser, which previously had this same repository name, see https://github.com/familysearch/gedcom5-java
Repository structure
changelog.md
is a running log of major changes made to the specification.exid-types.json
is a JSON file containing registered EXID-TYPE values.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 split 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
andgedcom.pdf
; see releases for a pre-rendered copy of these. specification/terms/
- YAML files to be served in the https://gedcom.io/terms/v7/ namespace, augmenting those automatically extracted from the specification itself by
build/uri-def.py
.
- YAML files to be served in the https://gedcom.io/terms/v7/ namespace, augmenting those automatically extracted from the specification itself by
build/
contains files needed to render the specification- See
build/README.md
for more
- See
extracted-files/
contains digested information automatically extracted from the specification. All files in this directory are automatically generated by scripts in thebuild/
directory.extracted-files/grammar.abnf
contains all the character-level ABNF for parsing lines and datatypes.extracted-files/grammar.gedstruct
contains a custom structure organization metasyntax.- various
.tsv
files to assist automated validation of files, including:extracted-files/cardinalities.tsv
with columns "superstructure type ID, substructure type ID, cardinality marker"extracted-files/enumerations.tsv
with columns "superstructure type ID, enumeration string, enumeration ID"extracted-files/payloads.tsv
with columns "structure type ID, payload type"extracted-files/substructures.tsv
with columns "structure type ID, substructure tag, substructure type ID"
extracted-files/tags/
contains summary information for each https://gedcom.io/terms/-based URI defined in the specification.
version-detection/
contains the FamilySearch GEDCOM version detection specification:version-detection/version-detection.md
describes how to detect the GEDCOM version of a file.
Branches
-
main
contains the current release. Patch versions are generally pushed directly tomain
upon approval. -
v7.1
contains a working draft of the next minor release. Changes frommain
have been discussed and approved by the working group supervising the next minor release, meaning they are (a) minor, not major, changes, as described in A Guide to Version Numbers and (b) have been judged as meeting all three of the following criteria for inclusion:- Valuable: they are present in historical records and are either defining aspects of a person's life or otherwise important for informing research or creating life summaries
- Absent: they are meaningfully distinct from, and not merely a more detailed subtype of, existing structure types
- Used: multiple family history applications with active user bases either use it now or have expressed a desire to add it as soon as it is available in the standard
Until v7.1 is released, this branch may be changed at any time without notice.
-
sandbox
contains candidate text for various possible changes that might or might not be included in future releases, often because they have not yet been demonstrated to meet the "used" criteria. -
All other branches are for conversation drafts, potentially to be incorporated into one of the above branches or to be deleted.