This is an exploratory draft of the genealogical data model for FHISO’s proposed suite of Extended Legacy Format (ELF) standards. This document is not endorsed by the FHISO membership, and may be updated, replaced or obsoleted by other documents at any time.
Comments on this draft should be directed to the tsc-public@fhiso.org mailing list.
FHISO’s Extended Legacy Format (or ELF) is a hierarchical serialisation format and genealogical data model that is fully compatible with GEDCOM, but with the addition of a structured extensibility mechanism. It also clarifies some ambiguities that were present in GEDCOM and documents best current practice.
The GEDCOM file format developed by The Church of Jesus Christ of Latter-day Saints is the de facto standard for the exchange of genealogical data between applications and data providers. Its most recent version is GEDCOM 5.5.1 which was produced in 1999, but despite many technological advances since then, GEDCOM has remained unchanged.
FHISO are undertaking a program of work to produce a modernised yet backward-compatible reformulation of GEDCOM under the name ELF, the new name having been chosen to avoid confusion with any other updates or extensions to GEDCOM, or any future use of the term by The Church of Jesus Christ of Latter-day Saints. This document is one of two that form the initial suite of ELF standards, known collectively as ELF 1.0.0:
ELF: Serialisation Format. This standard defines a general-purpose serialisation format based on the GEDCOM data format which encodes a dataset as a hierarchical series of lines, and provides low-level facilities such as escaping and extensibility mechanisms.
ELF: Date, Age and Time Microformats. This standard defines microformats for representing dates, ages and times in arbitrary calendars, together with how they are applied to the Gregorian, Julian, French Republican and Hebrew calendars. These formats are largely identical to those used in GEDCOM, but the framework should serve as a basis for future work on calendars.
ELF: Data Model. This standard defines a data model based on the lineage-linked GEDCOM form, reformulated in terms of the serialisation model described in this document. It is not a major update to the GEDCOM data model, but rather a basis for future extension.
This document describes version “1.0.0
” of the ELF data model. The version string uses the semantic versioning tradition outlined in https://semver.org: three integers, separated by periods, where an application expecting on version can process any other with the same first integer.
The IRI for this any version of the ELF data model can be created by prepending https://fhiso.org/TR/elf-data-model/v
to the version; for this document’s version, that IRI is
https://fhiso.org/TR/elf-data-model/v1.0.0
Where this standard gives a specific technical meaning to a word or phrase, that word or phrase is formatted in bold text in its initial definition, and in italics when used elsewhere. The key words must, must not, required, shall, shall not, should, should not, recommended, not recommended, may and optional in this standard are to be interpreted as described in [RFC 2119].
An application is conformant with this standard if and only if it obeys all the requirements and prohibitions contained in this document, as indicated by use of the words must, must not, required, shall and shall not, and the relevant parts of its normative references. Standards referencing this standard must not loosen any of the requirements and prohibitions made by this standard, nor place additional requirements or prohibitions on the constructs defined herein.
If a conformant application encounters data that does not conform to this standard, it may issue a warning or error message, and may terminate processing of the document or data fragment.
This standard depends on FHISO’s Basic Concepts for Genealogical Standards standard. To be conformant with this standard, an application must also be conformant with [Basic Concepts]. Concepts defined in that standard are used here without further definition.
Indented text in grey or coloured boxes does not form a normative part of this standard, and is labelled as either an example or a note.
The grammar given here uses the form of EBNF notation defined in §6 of [XML], except that no significance is attached to the capitalisation of grammar symbols. Conforming applications must not generate data not conforming to the syntax given here, but non-conforming syntax may be accepted and processed by a conforming application in an implementation-defined manner.
This standard uses the prefix notation, as defined in §4.3 of [Basic Concepts], when discussing specific terms. The following prefix binding is assumed in this standard:
elf |
https://terms.fhiso.org/elf/ |
A line string is a string that shall be whitespace-normalised before being processed.
S
defined in [Basic Concepts] collapses to a single space character (U+0020).
A line break is defined as either a carriage return, a line feed, or a carriage return followed by a line feed. It matches the production LB
:
LB ::= #xD #xA? | #xA
A padded linebreak is defined as a linebreak preceded by zero or more space characters or tabs. It matches the production PLB
:
PLB ::= (#x20 | #x9)* LB
Linebreak normalisation is the process of replacing each padded linebreak with a single linebreak, where all are replaced by the same linebreak variant, and removing any U+0020 (space) and U+0009 (tab) from the end of the string.
A block string is a string that shall be linebreak-normalised before being processed.
CONT
tags in [ELF-Serialisation]. It is possible that a future version of this standard might change this presentation, perhaps redefining block string as a list of strings, each representing a single conceptual “line”.
The structure type identifiers used in this specification are terms.
The term names of the structure type identifiers defined in this standard all begin https://terms.fhiso.org/elf/
. It is recommended that any extension structure type identifiers also use the https
IRI scheme defined in §2.7.1 of [RFC 7230], and an authority component consisting of just a domain name (or subdomain) under the control of the party defining the extension structure type identifier.
Several microformats are used in payloads of various structures below.
A list of line-strings serialized with commas in between. There is no mechanism provided for including commas or leading or trailing spaces within an element of a comma-separated list.
A full name, presented in the order usually spoken and with the capitalization typical of the culture of the named individual.
The text should not include commas or digits.
It should include exactly two U+002F SOLIDUS /
characters, one on each side of the family name or surname if present, or adjacent to one another if no family name or surname name is known.
Portions of the name may be elided and replaced by three U+002E FULL STOP ...
. This should only be done if part of a name is known to exist but its content is not known.
languages.tsv
.
Every Extended Legacy Format (ELF) dataset is two sets of structures. The first, described as the elf:Document
, is a set of elf:Record
s which, with their substructures, provide the principle data of the dataset. The other, described as the elf:Metadata
, is a set of additional structures which, with the substructures, provide metadata about the dataset as a whole.
Sometimes a researcher encounters a state where the they are unsure which of a set of alternatives is true. GEDCOM did not provide guidance on how this state should be recorded, and hence neither does ELF. However, we are aware of several approaches that have been used, and with potential caveats associated with each, which ELF implementers should be aware of.
Some researchers create one copy of each possible truth. While this is sometimes obvious (e.g., if a person is listed with two birth events), it is sometimes very much not obvious (e.g., a person listed with two residences might have lived in both places, or the researcher might be unsure which place is correct). Implementers should avoid suggesting either meaning was intended by the creators of data they import.
Some researchers create multiple instances of a single-value substructure, such as an elf:Event
with several elf:PLACE_STRUCTURE
s, one for each possible location of the event. Depending on how you read it, this usage can be seen as prohibited by GEDCOM or permitted as an extension; it is definitely permitted as an extension in ELF. Because of this ambiguity in GEDCOM, some tools are likely to have trouble reading data in this format. Additionally, it is not unambiguously talking about uncertainty either; a researcher might believe that a single event occurred in two locations or the like.
Some researchers include just one version in the data (or none at all) and add elf:NOTE_STRUCTURE
s that describe the alternatives. Assuming clear writing and a shared language, these can be fairly unambiguous but almost never understandable by software.
None of the above is clearly the right solution, nor does any one appear to be the most common in existing data. While a future version of this specification might include extensions to handle uncertainty, ELF 1.0.0 is intended to mirror GEDCOM closely and does not include any such extension.
A structure consists of the following parts:
Each structure has a structure type, identified by a term called its structure type identifier. Each structure type has a defined semantic meaning, supertype, and permitted payload.
The dataset itself is not a structure, but may be treated as one in many ways. Its structure type identifier is [elf:Document]
.
Each structure has at most one of the following payload types:
Each structure has at most exactly one superstructure, which is either another structure or the dataset itself.
A structure is said to be within its superstructure and also within everything its superstructure is within, recursively. A structure must not be within itself.
Each structure may contain any number of substructures; by definition, X is a substructure of Y if and only if Y is the superstructure of X.
If a structure contains more than one substructure with the same structure type, those substructures are stored in a specific order. However, the order of substructures with different structure types is not preserved by their superstructure. Unless otherwise specified in the definition of a particular structure, substructures with the same structure type shall be interpreted as being in preference order, with the first such substructure being most preferred.
The exact meaning of “preferred” is not defined either here nor in any known GEDCOM standard. For example, when seeing multiple names, one if preferred by virtue of being first but implementations should not infer that that one was preferred by the individual in question nor by any particular contributor to the dataset.
When a specific order of substructures is suggested or required by the data model (for example, elf:CHILD_POINTER
s should be in birth order) or when distinct semantics are present in each substructure (for example, elf:CHILD_TO_FAMILY_LINK
s to both birth and adoptive families) user interfaces are recommended to either present all such information, not just the first listed; or to clearly indicate that additional information is being elided.
Given the following data
0 @I1@ INDI
1 NAME Henry /Herman/
1 NAME Henry /Harmon/
a view using only a single name variant should use the first (Herman, not Harmon) because it comes first and is thus interpreted as being preferred.
Within this standard document, a postfix shorthand notation is used to indicate the expected cardinality of substructures of a structure:
“*” indicates zero or more.
“?” indicates either zero or one. If more than one substructure of thus type is present, all but the first are considered extensions.
“!” indicates exactly one. If more than one substructure of thus type is present, all but the first are considered extensions. If zero are present, the superstructure is considered an extension.
Each structure type may have any number of direct supertypes, which are also structure types. The set of supertypes of a structure type contains all of its direct supertypes and the supertypes of all of its supertypes, recursively.
Be definition, a structure types semantics includes the union of the semantics of all of its supertypes. This may include permitted payloads and the meaning of substructures. A structure type must not inherit from a set of supertypes that contain contradictory semantics.
Working notes on inheritance semantics:
A subtype could inherit
However, not all of these can be provided and maintain consistency. My current belief is we cannot have (3a) and I’m not sure about (3b).
I’m confident (3a) cannot work because tags are the only provided means of determining the type of a substructure.
I think (3b) can work, but it raises a question when a structure has a required substructure and that substructure type has a subtype. GEDCOM expects every 1 EVEN
to contain a 2 TYPE
; if there is instead a 2 XYZ
where XYZ
is a subtype of TYPE
, GEDCOM parsers may reject the data as ill-formed. My gut is to only permit (3b) if the supertype is abstract. Without either (3a) or (3b), (3) is meaningless.
A few constraints to make inheritance work:
If an application finds a subtype it does not understand, but does understand its supertype, it must not create or edit an instance of the subtype using its knowledge of the supertype. Doing so would violate (1b), (1c), (2a), and (2b).
No structure type may inherit from two or more supertypes that share a common substructure unless all of the following are met:
It may be simpler to forbid common-substructure supertypes altogether…
As a corollary, if a new structure type defines itself as a substructure of two different superstructures, it must define itself as having the same tag and same semantics in both (to avoid creating conflicts with other multiple inheritance situations) unless no substructure could inherit from both because of one of the other constraints listed here.
No structure type may inherit from two or more supertypes that have the same tag for distinct substructure types.
I am not fully convinced that the above limitations are sufficient, but do not have counter-examples for them (yet).
Some structure types are abstract, meaning they must not be identified as the structure type of any structure. Their purpose is to provide inherited semantics via being used as supertypes.
The following abstract types are presented in alphabetical order.
elf:Agent
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
An elf:Agent
structure represents an entity that may be contacted, such as a person, corporation, or archive.
elf:Structure
elf:ADDRESS
?
elf:ADDRESS_WEB_PAGE
*
elf:ADDRESS_FAX
*
elf:ADDRESS_EMAIL
*
elf:PHONE_NUMBER
*
elf:NAME_OF_BUSINESS
elf:REPOSITORY_RECORD
elf:SUBMITTER_RECORD
elf:Event
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
This supertype was introduced in GEDCOM and encompasses all details about individuals and families to which a time and/or place may be reasonably attached, whether they be events or attributes. However, it is not used for some of the core structural connections between individuals and families used to structure traditional family trees.
elf:Structure
elf:EVENT_OR_FACT_CLASSIFICATION
?
elf:DATE_VALUE
?
elf:PLACE_STRUCTURE
?
elf:ADDRESS
?
elf:RESPONSIBLE_AGENCY
?
elf:RELIGIOUS_AFFILIATION
?
elf:CAUSE_OF_EVENT
?
elf:RESTRICTION_NOTICE
?
elf:NOTE_STRUCTURE
*
elf:SOURCE_CITATION
*
elf:MULTIMEDIA_LINK
*
elf:FamilyEvent
elf:IndividualAttribute
elf:IndividualEvent
elf:Event
was a subtype of elf:Agent
and thus could have elf:ADDRESS_WEB_PAGE
, etc., inside; this appears to be a mistake as almost no historical event has any of that information.
elf:FamilyEvent
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
This supertype was introduced in GEDCOM and encompasses all details about families to which a time and/or place may be reasonably attached, whether they be events or attributes. However, it is not used for some of the core structural connections between individuals and families used to structure traditional family trees.
elf:Event
elf:FAM_RECORD
elf:Parent1Age
?
elf:Parent2Age
?
elf:ANNULMENT
elf:CENSUS#Family
elf:DIVORCE
elf:DIVORCE_FILED
elf:ENGAGEMENT
elf:MARRIAGE_BANN
elf:MARRIAGE_CONTRACT
elf:MARRIAGE
elf:MARRIAGE_LICENSE
elf:MARRIAGE_SETTLEMENT
elf:RESIDENCE
elf:EVENT#Family
A string, which may be limited by subtypes.
The special value Y
indicates an assertion that the event in question did occur, even if it has no subordinate date or place.
elf:IndividualAttribute
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
This supertype was introduced in GEDCOM and encompasses all non-event details about individuals. However, it is not used for some of the core structural connections between individuals and families used to structure traditional family trees.
elf:Event
elf:INDIVIDUAL_RECORD
elf:CASTE_NAME
elf:PHYSICAL_DESCRIPTION
elf:SCHOLASTIC_ACHIEVEMENT
elf:NATIONAL_ID_NUMBER
elf:NATIONAL_OR_TRIBAL_ORIGIN
elf:COUNT_OF_CHILDREN#Individual
elf:COUNT_OF_MARRIAGES
elf:OCCUPATION
elf:POSSESSIONS
elf:RELIGIOUS_AFFILIATION#Individual
elf:RESIDES_AT
elf:SOCIAL_SECURITY_NUMBER
elf:NOBILITY_TYPE_TITLE
elf:ATTRIBUTE_DESCRIPTOR
elf:IndividualEvent
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
This supertype was introduced in GEDCOM and encompasses all events that an individual engaged with. However, it is not used for some of the core structural connections between individuals and families used to structure traditional family trees.
elf:Event
elf:INDIVIDUAL_RECORD
elf:AGE_AT_EVENT
elf:BIRTH
elf:CHRISTENING
elf:DEATH
elf:BURIAL
elf:CREMATION
elf:ADOPTION
elf:BAPTISM
elf:BAR_MITZVAH
elf:BAS_MITZVAH
elf:BLESSING
elf:ADULT_CHRISTENING
elf:CONFIRMATION
elf:FIRST_COMMUNION
elf:ORDINATION
elf:NATURALIZATION
elf:EMIGRATION
elf:IMMIGRATION
elf:CENSUS#Individual
elf:PROBATE
elf:WILL
elf:GRADUATION
elf:RETIREMENT
elf:EVENT#Individual
A string, which may be limited by subtypes.
The special value Y
indicates an assertion that the event in question did occur, even if it has no subordinate date or place.
elf:ParentPointer
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
elf:Structure
elf:PARENT1_POINTER
elf:PARENT2_POINTER
elf:INDIVIDUAL_RECORD
elf:PersonalName
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
This supertype is a convenience to represent the set of structured name substructures shared by various personal name structures.
elf:Structure
elf:NAME_PIECE_PREFIX
?
elf:NAME_PIECE_GIVEN
?
elf:NAME_PIECE_NICKNAME
?
elf:NAME_PIECE_SURNAME_PREFIX
?
elf:NAME_PIECE_SURNAME
?
elf:NAME_PIECE_SUFFIX
?
elf:NOTE_STRUCTURE
*
elf:SOURCE_CITATION
*
elf:PERSONAL_NAME_STRUCTURE
elf:NAME_PHONETIC_VARIATION
elf:NAME_ROMANIZED_VARIATION
elf:Record
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
A record is a core element of the dataset. Records must not be substructures of any structure. Pointers may only point to records.
elf:Structure
elf:Document
elf:AUTOMATED_RECORD_ID
?
elf:CHANGE_DATE
?
elf:NOTE_STRUCTURE
*
elf:USER_REFERENCE_NUMBER
*
elf:FAM_RECORD
elf:INDIVIDUAL_RECORD
elf:MULTIMEDIA_RECORD
elf:NOTE_RECORD
elf:REPOSITORY_RECORD
elf:SOURCE_RECORD
elf:SUBMITTER_RECORD
elf:Structure
This is an abstract datatype and should not be used as the structure type identifier of any concrete structure.
This represents the top of the type hierarchy and has no semantics of its own.
The following concrete types are presented in alphabetical order. Metadata types are presented in the following section.
elf:ADDRESS_CITY
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The city, town, or similar name in an address.
CITY
elf:ADDRESS_COUNTRY
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The nation, country, or similar name in an address.
CTRY
elf:ADDRESS_EMAIL
elf:Structure
elf:Agent
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
This contains an email address. It is recommended that this match production addr-spec
of [RFC 5322].
EMAIL
EMAI
elf:ADDRESS_FAX
elf:Structure
elf:Agent
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
This contains a telephone number that will connect to a fax machine. It is recommended that this be an international telephone number.
FAX
elf:ADDRESS_LINE1
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The first line of the address, preceding the city. . Default tag
ADR1
elf:ADDRESS_LINE2
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The second line of the address, preceding the city.
ADR2
elf:ADDRESS_LINE3
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The third line of the address, preceding the city.
ADR3
elf:ADDRESS_POSTAL_CODE
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 10 characters.
The postal code of this address, as defined and used by the postal system in the area.
POST
elf:ADDRESS_STATE
elf:Structure
elf:ADDRESS
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The state, province, or similar name in the area.
STAE
elf:ADDRESS_WEB_PAGE
elf:Structure
elf:Agent
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
This should contain a single IRL, as defined in [RFC 1736].
WWW
elf:ADDRESS
elf:Structure
elf:Event
elf:Agent
elf:ADDRESS_LINE1
elf:ADDRESS_LINE2
elf:ADDRESS_LINE3
elf:ADDRESS_CITY
elf:ADDRESS_STATE
elf:ADDRESS_POSTAL_CODE
elf:ADDRESS_COUNTRY
A block string of arbitrary length.
The fully-formatted address, as it would appear for shipment labels. This should not be omitted even if all of its information is contained in substructures.
ADDR
elf:ADOPTED_BY_WHICH_PARENT
elf:Structure
elf:ADOPTIVE_FAMILY
A line string. It is RECOMMENDED that implementations support payloads of at least 4 characters.
Known values include {HUSB
, WIFE
, BOTH
}. HUSB
means the adoption was to the individual indicated by the [elf:PARENT1_POINTER]
of the [elf:FAM_RECORD]
pointed to by the payload of the containing superstructure; WIFE
means the adoption was to the individual indicated by the [elf:PARENT2_POINTER]
pointed to by the payload of the containing superstructure; and BOTH
means both of those individuals were part of the adoption.
ADOP
elf:ADOPTION
The creation of a parent-child relationship not associated with birth.
elf:IndividualEvent
elf:ADOPTIVE_FAMILY
?
ADOP
elf:ADOPTIVE_FAMILY
elf:Structure
elf:ADOPTION
elf:ADOPTED_BY_WHICH_PARENT
A pointer to a elf:FAM_RECORD
.
The pointed-to record describes the family unit into which the individual was adopted.
FAMC
elf:ADULT_CHRISTENING
Adult christening, a religious rite in some Christian denominations typically performed when converting to the religion.
elf:IndividualEvent
CHRA
elf:AGE_AT_EVENT
elf:Structure
elf:IndividualEvent
elf:Parent1Age
elf:Parent2Age
elf:Age
datatype defined in §6 of [ELF Dates].
AGE
elf:ALIAS_POINTER
elf:Structure
elf:INDIVIDUAL_RECORD
A pointer to an elf:INDIVIDUAL_RECORD
Points to a different [elf:INDIVIDUAL_RECORD]
that may describe the same historical individual as the superstructure.
ALIA
elf:ANCESTOR_INTEREST_POINTER
elf:Structure
elf:INDIVIDUAL_RECORD
A pointer to an elf:SUBMITTER_RECORD
Indicates that the pointed-to [elf:SUBMITTER_RECORD]
describes someone interested in the ancestors of the individual described by the superstructure.
ANCI
elf:ANNULMENT
Declaring a marriage to be invalid, as though it had never occurred.
elf:FamilyEvent
ANUL
elf:ASSOCIATION_STRUCTURE
elf:Structure
elf:INDIVIDUAL_RECORD
elf:RELATION_IS_DESCRIPTOR
!
elf:SOURCE_CITATION
*
elf:NOTE_STRUCTURE
*
elf:INDIVIDUAL_RECORD
ASSO
elf:ATTRIBUTE_DESCRIPTOR
A generic attribute, the type of which must be more fully described in a elf:EVENT_OR_FACT_CLASSIFICATION
substructure.
elf:IndividualAttribute
elf:EVENT_OR_FACT_CLASSIFICATION
!
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
A textual description of the specific attribute; typically more specific than the generic attribute type classification of the [elf:EVENT_OR_FACT_CLASSIFICATION]
substructure.
FACT
elf:AUTOMATED_RECORD_ID
elf:Structure
elf:Record
A line string. It is RECOMMENDED that implementations support payloads of at least 12 characters.
A record identifier (numeric or textual) that is supposed to be unique within an originating system. Since there is no indication of which system, nor a mechanism for spanning systems, this has little value when communicating between systems.
RIN
elf:BAPTISM
Baptism, a common Christian rite, typically involving water and indicating entry into a particular faith or denomination, performed at different ages in different denominations.
elf:IndividualEvent
BAPM
elf:BAR_MITZVAH
Bar Mitzvah, a Jewish rite (typically for 13-year-old boys).
elf:IndividualEvent
BARM
elf:BAS_MITZVAH
Bas Mitzvah, a Jewish rite (typically for 13-year-old girls).
elf:IndividualEvent
BASM
elf:BINARY_OBJECT
Binary object was in GEDCOM 5.5 but removed from GEDCOM 5.5.1. Implementations should be able to parse them, but should not generate new binary objects.
elf:Structure
elf:MULTIMEDIA_RECORD
A block string containing two or more lines of base-64 encoded data, in the custom format described below.
The first line of a blob is always empty. Each subsequent line is between 4 and 72 characters long, encoded in a base-64 format that differs from other base-64 encodings in two ways.
First, it uses byte 0xFF as padding instead of the more common U+003D (EQUALS SIGN =
) (how to represent the padding when byte 0xFF is not a legal character in the encoding is not defined by this specification).
Second, it maps six-bit values to code points as follows:
Byte range | Code point mapping |
---|---|
0x00–0x0B | byte + 0x2E |
0x0C–0x25 | byte + 0x35 |
0x25–0x3F | byte + 0x3B |
See also the discussion under [elf:CONTINUED_BINARY_OBJECT]
for how multiple elf:BINARY_OBJECT
payloads are combined to represent large binary values.
BLOB
elf:BIRTH
The exiting of the womb.
elf:IndividualEvent
elf:WITHIN_FAMILY
?
BIRT
elf:BLESSING
A religious rite invoking divine favour on an individual.
elf:IndividualEvent
BLES
elf:BURIAL
The depositing of the body (in whole or in part) of the deceased.
elf:IndividualEvent
BRI
elf:CASTE_NAME
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The social, religious, or racial caste tow which an individual belongs.
CAST
elf:CAUSE_OF_EVENT
elf:Structure
elf:Event
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
Introduced to record the cause of death as a substructure to a [elf:DEATH]
structure, but permitted under any event in case a cause of the event is known.
CAUS
elf:CENSUS#Family
An inventory of persons or households in a population.
elf:FamilyEvent
CENS
elf:CENSUS#Individual
An inventory of persons or households in a population.
elf:IndividualEvent
CENS
elf:CERTAINTY_ASSESSMENT
elf:Structure
elf:SOURCE_CITATION
A line string containing a numeric value. Known values include {0
, 1
, 2
, and 3
}.
A ranking hint for display: if two [elf:SOURCE_CITATION]
s contain elf:CERTAINTY_ASSESSMENT
s with different payloads, the numerically larger elf:CERTAINTY_ASSESSMENT
may be displayed as being inside a more reliable [elf:SOURCE_CITATION]
than is the numerically smaller payload.
GEDCOM defined the four specific values as having the following meanings
0 = Unreliable evidence or estimated data
1 = Questionable reliability of evidence (interviews, census, oral genealogies, or potential for bias for example, an autobiography)
2 = Secondary evidence, data officially recorded sometime after event
3 = Direct and primary evidence used, or by dominance of the evidence
elf:CERTAINTY_ASSESSMENT
s in extant files contain meaningful information. It is not difficult to find example GEDCOM where all elf:SOURCE_CITATION
s have a elf:CERTAINTY_ASSESSMENT
with payload 3
even when some clearly cite sources providing secondary evidence of the facts containing the citation.
QUAY
elf:CHANGE_DATE_DATE
elf:Structure
elf:CHANGE_DATE
elf:TIME_VALUE
?
A line string in the lexical space of the elf:DateExact
datatype defined in §4.1.1 of [ELF Dates].
Indicates the last change to the containing structure.
DATE
elf:CHANGE_DATE
elf:Structure
elf:Record
elf:CHANGE_DATE_DATE
!
elf:NOTE_STRUCTURE
*
CHAN
elf:CHANGE_DATE
, a structure containing a date and an arbitrary number of notes; page 44 defines what we call elf:CHANGE_DATE_DATE
, a payload-only format structure.
elf:CHILD_LINKAGE_STATUS
elf:Structure
elf:CHILD_TO_FAMILY_LINK
A line string. It is RECOMMENDED that implementations support payloads of at least 15 characters.
Contains a description of the confidence that this relationship exists. Known values include {challenged
, disproven
, proven
}.
No matter the contents, there should be a [elf:NOTE_STRUCTURE]
within this structure’s superstructure that describes the proof or challenge.
STAT
elf:CHILD_POINTER
A pointer one of the children in a family.
The preferred order of the children pointers within a family structure is chronological by birth.
elf:Structure
elf:FAM_RECORD
A pointer to an elf:INDIVIDUAL_RECORD
It must be the case that the pointed-to [elf:INDIVIDUAL_RECORD]
contains a [elf:CHILD_TO_FAMILY_LINK]
pointing to the superstructure of this structure.
CHIL
elf:CHILD_TO_FAMILY_LINK
elf:Structure
elf:INDIVIDUAL_RECORD
elf:PEDIGREE_LINKAGE_TYPE
?
elf:CHILD_LINKAGE_STATUS
?
elf:NOTE_STRUCTURE
*
A pointer to a elf:FAM_RECORD
It must be the case that the pointed-to [elf:FAM_RECORD]
contains a [elf:CHILD_POINTER]
pointing to the superstructure of this structure.
FAMC
elf:CHRISTENING
A religious rite occurring at or near birth.
elf:IndividualEvent
elf:WITHIN_FAMILY
?
CHR
elf:CONFIRMATION
Confirmation, a religious rite in some Christian denominations associated with gaining full fellowship in the religion and/or receiving the Holy Ghost.
elf:IndividualEvent
CONF
elf:CONTINUED_BINARY_OBJECT
Binary object was in GEDCOM 5.5 but removed from GEDCOM 5.5.1. Implementations should be able to parse them, but should not generate new binary objects.
elf:Structure
elf:MULTIMEDIA_RECORD
A pointer to a elf:MULTIMEDIA_RECORD
.
Used to split elf:BINARY_OBJECT
s across multiple records. Prior to decoding, the payloads of all elf:BINARY_OBJECT
in the superstructure should be concatenated in the order in which they appear, and then concatenated with the elf:BINARY_OBJECT
s in the pointed-to record and those pointed to by its elf:CONTINUED_BINARY_OBJECT
, recursively.
OBJE
elf:COUNT_OF_CHILDREN#Family
elf:Structure
elf:FAM_RECORD
A line string taking the form of a decimal number. It is RECOMMENDED that implementations support payloads of at least 3 characters.
The total number of children this family unit had, either at some (unspecified) point in time or in total its entire existence. This does not need to match the number of children identified through [elf:CHILD_POINTER]
substructures of the containing superstructure.
NCHI
elf:COUNT_OF_CHILDREN#Family
is not a elf:FamilyEvent
(or elf:FamilyAttribute
, though no such supertype currently exists) as surely the number of children of a family would need sourcing and an as-of date? Should we leave it as a stand-alone structure, or boost it to event status?
elf:COUNT_OF_CHILDREN#Individual
elf:IndividualAttribute
A line string taking the form of a decimal number. It is RECOMMENDED that implementations support payloads of at least 3 characters.
The total number of children this person ever had. This does not need to match the number of children individually identified in the dataset.
NCHI
elf:COUNT_OF_MARRIAGES
elf:IndividualAttribute
A line string taking the form of a decimal number. It is RECOMMENDED that implementations support payloads of at least 3 characters.
The total number of marriages this person ever had. This does not need to match the number of marriages individually identified in the dataset.
NMR
elf:CREMATION
The burning of the body (in whole or in part) of the deceased.
elf:IndividualEvent
CREM
elf:DATE_PERIOD
elf:Structure
elf:EVENTS_RECORDED
A line string in the lexical space of the elf:DatePeriod
datatype defined in §3.4 of [ELF Dates].
Indicates the period during which the source recorded events.
DATE
elf:DATE_VALUE
elf:Structure
elf:Event
A line string in the lexical space of the elf:DateValue
datatype defined in §3.3 of [ELF Dates].
Indicates when the event or attribute described by the containing structure occurred or was witnessed.
DATE
elf:DEATH
The end of life.
elf:IndividualEvent
DEAT
elf:DESCENDANT_INTEREST_POINTER
elf:Structure
elf:INDIVIDUAL_RECORD
A pointer to an elf:SUBMITTER_RECORD
Indicates that the pointed-to [elf:SUBMITTER_RECORD]
describes someone interested in the descendants of the individual described by the superstructure.
DESI
elf:DESCRIPTIVE_TITLE
elf:Structure
elf:MULTIMEDIA_RECORD
– GEDCOM 5.5
elf:MULTIMEDIA_FILE_REFERENCE
– GEDCOM 5.5.1
elf:MULTIMEDIA_LINK
A line string. It is RECOMMENDED that implementations support payloads of at least 248 characters.
The title of a work, record, item, or object.
TITL
elf:DIVORCE_FILED
The legal action expressing intent to divorce.
elf:FamilyEvent
DIVF
elf:DIVORCE
The ending of a marriage between still-living individuals.
elf:FamilyEvent
DIV
elf:EMIGRATION
The departure from the nation or land in which one has nativity or citizenship.
elf:IndividualEvent
EMIG
elf:ENGAGEMENT
The agreement of a couple to enter into a marriage in the future.
elf:FamilyEvent
ENGA
elf:ENTRY_RECORDING_DATE
elf:Structure
elf:SOURCE_CITATION_DATA
A line string in the lexical space of the elf:DateValue
datatype defined in §3.3 of [ELF Dates].
Indicates when the portion of the source being cited was entered into the source.
DATE
elf:EVENT#Family
A generic event, the type of which should be more fully described in a elf:EVENT_OR_FACT_CLASSIFICATION
substructure.
elf:FamilyEvent
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
A textual description of the specific event; typically more specific than the generic event type classification of the [elf:EVENT_OR_FACT_CLASSIFICATION]
substructure.
Unlike other [elf:FamilyEvent]
s, Y
is not a special value. elf:EVENT#Family
events are always assertions that the event occurred.
EVEN
elf:EVENT#Individual
A generic event, the type of which should be more fully described in a elf:EVENT_OR_FACT_CLASSIFICATION
substructure.
elf:IndividualEvent
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
A textual description of the specific event; typically more specific than the generic event type classification of the [elf:EVENT_OR_FACT_CLASSIFICATION]
substructure.
Unlike other [elf:FamilyEvent]
s, Y
is not a special value. elf:EVENT#Family
events are always assertions that the event occurred.
EVEN
elf:EVENTS_RECORDED
elf:Structure
elf:SOURCE_RECORD_DATA
elf:DATE_PERIOD
elf:SOURCE_JURISDICTION_PLACE
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 90 characters.
A list of valid payload values of [elf:EVENT_TYPE_CITED_FROM]
. Indicates that the source includes documentation of these events or attributes.
EVEN
elf:EVENT_OR_FACT_CLASSIFICATION
elf:Structure
elf:Event
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
A classification for the superstructure’s category, more precise than its type alone provides but generic enough to be anticipated to be re-used.
TYPE
elf:EVENT_TYPE_CITED_FROM
elf:Structure
elf:SOURCE_CITATION
elf:ROLE_IN_EVENT
A line string. It is RECOMMENDED that implementations support payloads of at least 15 characters.
Known values include {CAST
, EDUC
, NATI
, OCCU
, PROP
, RELI
, RESI
, TITL
, FACT
, ANUL
, CENS
, DIV
, DIVF
, ENGA
, MARR
, MARB
, MARC
, MARL
, MARS
, ADOP
, BIRT
, BAPM
, BARM
, BASM
, BLES
, BURI
, CENS
, CHR
, CHRA
, CONF
, CREM
, DEAT
, EMIG
, FCOM
, GRAD
, IMMI
, NATU
, ORDN
, RETI
, PROB
, WILL
, EVEN
}. Indicates that the cited source was created to document the event or attribute described by the subtype of elf:Event
whose default tag is the provided value.
A marriage certificate may document the spouses’ birth dates; however, its elf:EVENT_TYPE_CITED_FROM
’s payload should be MARR
, not BIRT
.
EVEN
elf:FAM_RECORD
Used to record couple and parent/child relationships.
Because of the social context in which GEDCOM was first created and because elf:FAM_RECORD
s are used in some software applications to present binary ancestry trees and n-ary descendancy trees, each elf:FAM_RECORD
is limited to having at most one “first-position” parent; at most one “second-position” parent; and any number of ordered children. GEDCOM explicitly stated that the first-position parent was male and the second-position parent was female; that is not always true of how GEDCOM has been used in practice and must not be assumed by any conformant ELF implementation.
elf:Record
elf:Document
elf:RESTRICTION_NOTICE
?
elf:FamilyEvent
*
elf:PARENT1_POINTER
?
elf:PARENT2_POINTER
?
elf:CHILD_POINTER
*
elf:COUNT_OF_CHILDREN#Family
?
elf:MULTIMEDIA_LINK
*
elf:SOURCE_CITATION
*
elf:SUBMITTER_POINTER
*
FAM
elf:FIRST_COMMUNION
First communion, a religious rite in many Christian denominations associated with first partaking of the communion of the Lord’s Supper.
elf:IndividualEvent
FCOM
elf:GRADUATION
The conclusion of formal education.
elf:IndividualEvent
GRAD
elf:IMMIGRATION
The entering of a nation or land in which one does not have nativity or citizenship.
elf:IndividualEvent
IMMI
elf:INDIVIDUAL_RECORD
A representation of a historical individual, together with the facts and events believed to apply to that individual and the sources of those data.
elf:Record
elf:Document
elf:RESTRICTION_NOTICE
?
elf:PERSONAL_NAME_STRUCTURE
*
elf:SEX_VALUE
?
elf:IndividualEvent
*
elf:IndividualAttribute
*
elf:CHILD_TO_FAMILY_LINK
*
elf:SPOUSE_TO_FAMILY_LINK
*
elf:ASSOCIATION_STRUCTURE
*
elf:ALIAS_POINTER
*
elf:ANCESTOR_INTEREST_POINTER
*
elf:DESCENDANT_INTEREST_POINTER
*
elf:MULTIMEDIA_LINK
*
elf:SOURCE_CITATION
*
elf:SUBMITTER_POINTER
*
PERMANENT_RECORD_FILE_NUMBER
with tag RFN
, the value of which was under-defined and not included in this one.
INDI
elf:LANGUAGE_PREFERENCE
elf:Structure
elf:SUBMITTER_RECORD
A line string matching the Language Tag microformat.
Indicates a language in which the person described by the superstructure prefers to communicate.
LANG
elf:MAP_COORDINATES
Contains the location of a place in a global coordinate system.
elf:Structure
elf:PLACE_STRUCTURE
elf:PLACE_LATITUDE
!
elf:PLACE_LONGITUDE
!
MAP
elf:MARRIAGE_BANN
A public notice of an intent to marry.
elf:FamilyEvent
MARB
elf:MARRIAGE_CONTRACT
A formal contractual agreement to marry.
elf:FamilyEvent
MARC
elf:MARRIAGE_LICENSE
Obtaining a legal license to marry.
elf:FamilyEvent
MARL
elf:MARRIAGE_SETTLEMENT
A legal arrangement to modify property rights upon marriage.
elf:FamilyEvent
MARS
elf:MARRIAGE
The creation of a family unit (via a legal, religious, customary, common-law, or other form of union).
elf:FamilyEvent
MARR
elf:MULTIMEDIA_FILE_REFERENCE
elf:Structure
elf:MULTIMEDIA_RECORD
elf:MULTIMEDIA_LINK
elf:MULTIMEDIA_FORMAT
!
elf:DESCRIPTIVE_TITLE
?
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
Contains locator information (such as a file path or IRL) for a file containing auxiliary data.
FILE
elf:MULTIMEDIA_FORMAT
elf:Structure
elf:MULTIMEDIA_RECORD
– GEDCOM 5.5
elf:MULTIMEDIA_FILE_REFERENCE
– GEDCOM 5.5.1
elf:MULTIMEDIA_LINK
elf:SOURCE_MEDIA_TYPE
?
A line string. Known values include {bmp
, gif
, jpg
, ole
, pcx
, tif
, wav
}.
Indicates the format of the multimedia data associated with the superstructure of the elf:MULTIMEDIA_FORMAT
structure.
FORM
elf:MULTIMEDIA_LINK
elf:Structure
elf:SOURCE_CITATION
elf:FAM_RECORD
elf:INDIVIDUAL_RECORD
elf:SOURCE_RECORD
elf:SUBMITTER_RECORD
elf:Event
elf:MULTIMEDIA_FILE_REFERENCE
*
elf:DESCRIPTIVE_TITLE
?
elf:MULTIMEDIA_FORMAT
? – GEDCOM 5.5
Either a pointer to a elf:MULTIMEDIA_RECORD
or none.
If the payload is a pointer, it should not contain substructures.
OBJE
elf:MULTIMEDIA_RECORD
The form of this record was changed between GEDCOM 5.5 and GEDCOM 5.5.1. Implementations should accept both formats but export only 5.5.1 format.
elf:Record
elf:Document
elf:MULTIMEDIA_FILE_REFERENCE
* – GEDCOM 5.5.1
elf:MULTIMEDIA_FORMAT
! – GEDCOM 5.5
elf:DESCRIPTIVE_TITLE
? – GEDCOM 5.5
elf:CONTINUED_BINARY_OBJECT
? – GEDCOM 5.5
elf:BINARY_OBJECT
! – GEDCOM 5.5
OBJE
elf:NAME_OF_REPOSITORY
elf:Structure
elf:REPOSITORY_RECORD
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The name of the repository described by the superstructure.
NAME
elf:NAME_PHONETIC_VARIATION
elf:PersonalName
elf:PERSONAL_NAME_STRUCTURE
elf:PHONETIC_TYPE
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
Contains a phonetic presentation of the same name as its superstructure.
FONE
elf:NAME_PIECE_GIVEN
elf:Structure
elf:PersonalName
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A list of given or earned names.
GIVN
elf:NAME_PIECE_NICKNAME
elf:Structure
elf:PersonalName
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 30 characters.
A list of familiar or informal names.
NICK
elf:NAME_PIECE_PREFIX
elf:Structure
elf:PersonalName
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 30 characters.
A list of non-name elements traditionally placed before the proper name, such as titles.
NPFX
elf:NAME_PIECE_SUFFIX
elf:Structure
elf:PersonalName
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 30 characters.
A list of non-name elements traditionally placed after the proper name, such as generational marks and ordinals.
NSFX
elf:NAME_PIECE_SURNAME_PREFIX
elf:Structure
elf:PersonalName
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A list of non-name elements traditionally attached to and placed before a surname of family name, such as prepositions.
SPFX
elf:NAME_PIECE_SURNAME
elf:Structure
elf:PersonalName
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A list of surnames and family names.
SURN
elf:NAME_ROMANIZED_VARIATION
elf:PersonalName
elf:PERSONAL_NAME_STRUCTURE
elf:ROMANIZED_TYPE
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
Contains the same name as its superstructure, but presented using ASCII letters.
ROMN
elf:NAME_TYPE
elf:Structure
elf:PERSONAL_NAME_STRUCTURE
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
The kind of name the superstructure contains. Known values include {aka
, birth
, immigration
, maiden
, married
}; additional values are encouraged as appropriate.
known value | meaning |
---|---|
aka | also known as: an unofficial pseudonym |
birth | name given at or near birth |
immigrant | name assumed when immigrating |
maiden | name used prior to marriage |
married | name assumed at marriage |
married
payload was “name was persons previous married name,” suggestion it was only to be used after the married name was no longer used; this nuanced definition does not appear to have been used in practice.
TYPE
elf:NATIONAL_ID_NUMBER
elf:IndividualAttribute
elf:EVENT_OR_FACT_CLASSIFICATION
!
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
An identifier used by a nation to a particular individual. If an appropriate nation-specific alternative is present, it should be used.
IDNO
elf:NATIONAL_OR_TRIBAL_ORIGIN
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A group to which a person is associated, typically by birth.
NATI
elf:NATURALIZATION
The gaining of citizenship in a new nation or land.
elf:IndividualEvent
NATU
elf:NOBILITY_TYPE_TITLE
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A title given a person associated with a local or national notion of nobility or royalty.
TITL
elf:NOTE_RECORD
elf:Record
elf:Document
NOTE
elf:NOTE_STRUCTURE
as a substructure of elf:NOTE_RECORD
, but they do appear in the wild and have valid semantics (notes about the note itself) so elf:NOTE_RECORD
inherits the elf:NOTE_STRUCTURE
substructure from elf:Record
in this specification.
elf:NOTE_STRUCTURE
elf:NOTE_STRUCTURE
is listed in GEDCOM. We have discussed saying instead that a elf:NOTE_STRUCTURE
can appear in any elf:Structure
(including other elf:NOTE_STRUCTURE
as we have use cases for notes about notes) but as that is technically a divergence from GEDCOM, we have refrained from adding it to this draft.
elf:Structure
elf:Record
elf:SOURCE_RECORD_DATA
elf:ASSOCIATION_STRUCTURE
elf:CHILD_TO_FAMILY_LINK
elf:Event
elf:PersonalName
elf:SOURCE_CITATION
elf:SOURCE_REPOSITORY_CITATION
elf:SPOUSE_TO_FAMILY_LINK
elf:CHANGE_DATE
elf:PLACE_STRUCTURE
elf:NOTE_RECORD
or a block string of arbitrary length.
NOTE
elf:OCCUPATION
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
What this person does as a livelihood.
OCCU
elf:ORDINATION
The bestowal of religious authority or office.
elf:IndividualEvent
ORDN
elf:PARENT1_POINTER
A pointer to the spouse or parent traditionally presented on the left fork of a vertical family tree or on the upper fork of a horizontal family tree. In a heterosexual pair union, this is traditionally the husband or father.
elf:ParentPointer
elf:FAM_RECORD
elf:INDIVIDUAL_RECORD
HUSB
elf:PARENT2_POINTER
A pointer to the spouse or parent traditionally presented on the right fork of a vertical family tree or on the bottom fork of a horizontal family tree. In heterosexual pair unions, this is traditionally the wife or mother.
elf:ParentPointer
elf:FAM_RECORD
elf:INDIVIDUAL_RECORD
WIFE
elf:PEDIGREE_LINKAGE_TYPE
elf:Structure
elf:CHILD_TO_FAMILY_LINK
A line string. It is RECOMMENDED that implementations support payloads of at least 7 characters.
Contains a description of how this child is related to the superstructure’s pointed-to [elf:FAM_RECORD]
. Known values include {adopted
, birth
, foster
}.
PEDI
elf:PERSONAL_NAME_STRUCTURE
elf:PersonalName
elf:INDIVIDUAL_RECORD
elf:NAME_TYPE
elf:NAME_PHONETIC_VARIATION
elf:NAME_ROMANIZED_VARIATION
A line string matching the Personal Name microformat. It is RECOMMENDED that implementations support payloads of at least 120 characters.
In the event that this payload disagrees with the substructures of this structure, the payload should be taken as more correct.
NAME
elf:PHONETIC_TYPE
elf:Structure
elf:NAME_PHONETIC_VARIATION
elf:PLACE_PHONETIC_VARIATION
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
Identifies the phonetic scheme used in the superstructure. Known values include {hangul
, kana
}.
ipa
?
TYPE
elf:PHONE_NUMBER
elf:Structure
elf:Agent
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
This contains a telephone number. It is recommended that this be an international telephone number.
PHON
elf:PHYSICAL_DESCRIPTION
elf:IndividualAttribute
A block string of arbitrary length.
Appearance and/or other physical characteristics.
DSCR
elf:PLACE_HIERARCHY
elf:Structure
elf:PLACE_STRUCTURE
elf:DEFAULT_PLACE_FORMAT
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A list of names of what the specific components of [elf:PLACE_STRUCTURE]
represent.
FORM
elf:PLACE_LATITUDE
Degrees north or south of the equator
elf:Structure
elf:MAP_COORDINATES
A line string. It is RECOMMENDED that implementations support payloads of at least 12 characters.
Decimal degrees from the equator. Either the letter N
(for north) or S
(for south), followed (without a space) by a decimal number between 0 and 90.
LATI
elf:PLACE_LONGITUDE
elf:Structure
elf:MAP_COORDINATES
A line string. It is RECOMMENDED that implementations support payloads of at least 12 characters.
Decimal degrees from the prime meridian. Either the letter E
(for east) or W
(for west), followed (without a space) by a decimal number between 0 and 180.
LONG
elf:PLACE_PHONETIC_VARIATION
elf:Structure
elf:PLACE_STRUCTURE
elf:PHONETIC_TYPE
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
Contains a phonetic presentation of the same place, in the same format, as its superstructure.
FONE
elf:PLACE_ROMANIZED_VARIATION
elf:Structure
elf:PLACE_STRUCTURE
elf:ROMANIZED_TYPE
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
Contains an ASCII letter presentation of the same place, in the same format, as its superstructure.
ROMN
elf:PLACE_STRUCTURE
elf:Structure
elf:Event
elf:PLACE_HIERARCHY
?
elf:PLACE_PHONETIC_VARIATION
*
elf:PLACE_ROMANIZED_VARIATION
*
elf:MAP_COORDINATES
?
elf:NOTE_STRUCTURE
*
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A list of names of regions, where each element of the list is subsumed within all subsequent elements.
If this structure has a [elf:PLACE_HIERARCHY]
substructure or there is a default [elf:PLACE_HIERARCHY]
defined for the dataset, then this payload should contain one name for each jurisdictional elements in that [elf:PLACE_HIERARCHY]
, using empty strings in place of any unknown or non-present elements.
PLAC
elf:POSSESSIONS
elf:IndividualAttribute
A line string of arbitrary length.
A list of objects or land owned by the person.
PROP
elf:PROBATE
The judicial actions associated with the disposition of the estate of the deceased.
elf:IndividualEvent
PROB
elf:Parent1Age
An intermediate structure to indicate the age of a spouse or parent at the time of an event.
elf:Structure
elf:FamilyEvent
elf:AGE_AT_EVENT
HUSB
elf:Parent2Age
An intermediate structure to indicate the age of a spouse or parent at the time of an event.
elf:Structure
elf:FamilyEvent
elf:AGE_AT_EVENT
WIFE
elf:RELATION_IS_DESCRIPTOR
elf:Structure
elf:ASSOCIATION_STRUCTURE
A line string of arbitrary length. It is RECOMMENDED that implementations support payloads of at least 25 characters.
Describes the nature of the association described by the superstructure. This is a directed relationship. If the payload text is R, the person described by the record pointed to by the payload of the superstructure is P, and the person described by the superstructure of the superstructure is Q then this payload means “P is Q’s R”.
The following ELF fragment records that Galahad was employed by Arthur:
0 @arthur@ INDI
1 NAME Arthur //
1 ASSO @galahad@
2 RELA employee
0 @galahad@ INDI
1 NAME Galahad //
1 ASSO @arthur@
2 RELA employer
RELA
elf:RELIGIOUS_AFFILIATION#Individual
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The name of a religion with which the person affiliates.
RELI
elf:RELIGIOUS_AFFILIATION
elf:Structure
elf:Event
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The name of a religion with which the event was affiliated.
RELI
elf:REPOSITORY_RECORD
A representation of where a source or set of sources is located. May be formal, like a library, or informal, like the owner of a family bible.
elf:Record
elf:Agent
elf:Document
elf:NAME_OF_REPOSITORY
!
REPO
elf:RESIDENCE
Residence: either the fact of residing at, or the event of moving to, a particular location.
elf:FamilyEvent
RESI
elf:RESIDES_AT
Indicates that the person resided at the location indicated by the elf:ADDRESS
substructure.
elf:IndividualAttribute
elf:ADDRESS
!
RESI
elf:RESPONSIBLE_AGENCY
elf:Structure
elf:SOURCE_RECORD_DATA
elf:Event
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
The group or entity that was responsible for this event or data.
AGNC
elf:RESTRICTION_NOTICE
elf:Structure
elf:INDIVIDUAL_RECORD
elf:FAM_RECORD
elf:Event
A line string. It is RECOMMENDED that implementations support payloads of at least 12 characters.
Specifies how the superstructure should be treated. Known values and their meaning are listed in the following table:
Known value | Meaning |
---|---|
confidential | should not be distributed or exported |
locked | should not be edited |
privacy | has had information omitted to maintain confidentiality |
RESN
elf:RETIREMENT
The cessation of gainful employment, typically because sufficient wealth has been accumulated to no longer necessitate such.
elf:IndividualEvent
RETI
elf:ROLE_IN_EVENT
elf:Structure
elf:EVENT_TYPE_CITED_FROM
A line string. It is RECOMMENDED that implementations support payloads of at least 25 characters.
When contained within an [elf:INDIVIDUAL_RECORD]
, indicates what role that individual played in the event described by this structure’s superstructure. It has no defined meaning (and thus should not be used) outside of that context.
Known values and their meanings are listed in the following table. It is expected that additional values are also used when these are insufficient:
Known value | Role the individual played in the event |
---|---|
CHIL | child |
FATH | father |
HUSB | husband |
MOTH | mother |
SPOU | spouse |
WIFE | wife |
ROLE
elf:ROMANIZED_TYPE
elf:Structure
elf:NAME_ROMANIZED_VARIATION
elf:PLACE_ROMANIZED_VARIATION
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
Identifies the romanization scheme used in the superstructure. Known values include {pinyin
, romanji
, wadegiles
}.
TYPE
elf:SCHOLASTIC_ACHIEVEMENT
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 248 characters.
An educational degree or attainment.
EDUC
elf:SEX_VALUE
elf:Structure
elf:INDIVIDUAL_RECORD
A line string. It is RECOMMENDED that implementations support payloads of at least 7 characters.
The sex of the individual. Known values and their meanings are listed in the following table:
Known value | Sex |
---|---|
F | female |
M | male |
U | not knowable from available records |
SEX
elf:SOCIAL_SECURITY_NUMBER
elf:IndividualAttribute
A line string. It is RECOMMENDED that implementations support payloads of at least 11 characters.
A variant of [elf:NATIONAL_ID_NUMBER]
assigned by the United States of America.
SSN
elf:SOURCE_CALL_NUMBER
elf:Structure
elf:SOURCE_REPOSITORY_CITATION
elf:SOURCE_MEDIA_TYPE
?
A line string. It is RECOMMENDED that implementations support payloads of at least 120 characters.
An identifier used by the repository to refer to the cited source.
CALN
elf:SOURCE_CITATION_DATA
elf:Structure
elf:SOURCE_CITATION
elf:ENTRY_RECORDING_DATE
?
elf:TEXT_FROM_SOURCE
*
DATA
elf:SOURCE_CITATION
elf:Structure
elf:INDIVIDUAL_RECORD
elf:FAM_RECORD
elf:Event
elf:ASSOCIATION_STRUCTURE
elf:PersonalName
elf:WHERE_WITHIN_SOURCE
?
elf:EVENT_TYPE_CITED_FROM
?
elf:SOURCE_CITATION_DATA
?
elf:TEXT_FROM_SOURCE
*
elf:NOTE_STRUCTURE
*
elf:MULTIMEDIA_LINK
*
elf:CERTAINTY_ASSESSMENT
?
Either a pointer to a elf:SOURCE_RECORD
or a block string of arbitrary length.
If the payload is a pointer, then the structure should not contain any [elf:TEXT_FROM_SOURCE]
substructures.
If the payload is a block string, then the structure should not contain any [elf:WHERE_WITHIN_SOURCE]
, [elf:EVENT_TYPE_CITED_FROM]
, or [elf:SOURCE_CITATION_DATA]
substructures.
It is recommended that only the pointer payload version be created.
SOUR
elf:TEXT_FROM_SOURCE
, but while the text-payload version has it as a direct substructure, the pointer-payload version has it both through the pointed-to structure and nested inside its elf:SOURCE_CITATION_DATA
substructure.
elf:SOURCE_DESCRIPTIVE_TITLE
elf:Structure
elf:SOURCE_RECORD
A block string of arbitrary length.
A description of the source defined by the superstructure; for example, a periodical article’s elf:SOURCE_DESCRIPTIVE_TITLE
might include the title of the article and the title of the periodical; a family bible’s elf:SOURCE_DESCRIPTIVE_TITLE
might include a list of past and present owners and the book’s dimensions and appearance.
TITL
elf:SOURCE_FILED_BY_ENTRY
elf:Structure
elf:SOURCE_RECORD
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
A short title for this source. Intended to be used for sorting and filing.
ABBR
elf:SOURCE_JURISDICTION_PLACE
elf:Structure
elf:EVENTS_RECORDED
A comma-separated list. It is RECOMMENDED that implementations support payloads of at least 120 characters.
A list of names of regions, where each element of the list is subsumed within all subsequent elements. An assertion that all events recorded in this source would have a [elf:PLACE_STRUCTURE]
payload ending with this payload.
While similar to the format of a elf:PLACE_STRUCTURE
payload, this differs in a few key ways:
elf:DEFAULT_PLACE_FORMAT
as it has no elf:PLACE_HIERARCHY
substructure.elf:PLACE_STRUCTURE
, the omitted parts are not represented by empty strings, but by removal of their entire entry.
[elf:PLACE_STRUCTURE]
for an unknown location in Nevada would be “, , Nevada, USA
”[elf:SOURCE_JURISDICTION_PLACE]
the entirety of Nevada “Nevada, USA
”PLAC
elf:SOURCE_MEDIA_TYPE
elf:Structure
elf:MULTIMEDIA_FORMAT
elf:SOURCE_CALL_NUMBER
A line string. It is RECOMMENDED that implementations support payloads of at least 15 characters.
The medium of the source. Known values include {audio
, book
, card
, electronic
, fiche
, film
, magazine
, manuscript
, map
, newspaper
, photo
, tombstone
, video
}
MEDI
elf:SOURCE_ORIGINATOR
elf:Structure
elf:SOURCE_RECORD
A block string of arbitrary length.
The name of the primary creator of the source.
AUTH
elf:SOURCE_PUBLICATION_FACTS
elf:Structure
elf:SOURCE_RECORD
A block string of arbitrary length.
Full publication information for the source: when, where, and by whom it was created..
PUBL
elf:SOURCE_RECORD_DATA
elf:Structure
elf:SOURCE_RECORD
elf:EVENTS_RECORDED
*
elf:RESPONSIBLE_AGENCY
?
elf:NOTE_STRUCTURE
*
DATA
elf:SOURCE_RECORD
elf:Record
elf:Document
elf:SOURCE_RECORD_DATA
?
elf:SOURCE_ORIGINATOR
?
elf:SOURCE_DESCRIPTIVE_TITLE
?
elf:SOURCE_FILED_BY_ENTRY
?
elf:SOURCE_PUBLICATION_FACTS
*
elf:TEXT_FROM_SOURCE
?
elf:SOURCE_REPOSITORY_CITATION
*
elf:MULTIMEDIA_LINK
*
SOUR
elf:SOURCE_REPOSITORY_CITATION
elf:Structure
elf:SOURCE_RECORD
elf:SOURCE_CALL_NUMBER
*
elf:NOTE_STRUCTURE
*
Either a pointer to a elf:REPOSITORY_RECORD
or none.
If the payload is none, there should be a [elf:NOTE_STRUCTURE]
describing where the information described by the containing structure can be found.
REPO
elf:SPOUSE_TO_FAMILY_LINK
elf:Structure
elf:INDIVIDUAL_RECORD
elf:NOTE_STRUCTURE
*
A pointer to a elf:FAM_RECORD
It must be the case that the pointed-to [elf:FAM_RECORD]
contains a [elf:ParentPointer]
pointing to the superstructure of this structure.
FAMS
elf:SUBMITTER_NAME
elf:Structure
elf:SUBMITTER_RECORD
A line string. It is RECOMMENDED that implementations support payloads of at least 60 characters.
The name of the submitter, formatted as it should be displayed.
NAME
elf:SUBMITTER_POINTER
elf:Structure
elf:FAM_RECORD
elf:INDIVIDUAL_RECORD
elf:Metadata
A pointer to an elf:SUBMITTER_RECORD
Indicates that the pointed-to [elf:SUBMITTER_RECORD]
describes a contributor of information to the containing structure, or the principle contributor of the entire dataset if in [elf:Metadata]
.
SUBM
elf:SUBMITTER_RECORD
A elf:SUBMITTER_RECORD
describes an individual engaged in genealogical reserch; an elf:INDIVIDUAL_RECORD
describes a subject of that research. Datasets may contain both kind of record describing the same person.
Although never permitted in its normative text, GEDCOM included at least one example (under the definition of RELATION_IS_DESCRIPTOR) where a pointer documented to point to an elf:INDIVIDUAL_RECORD
pointed to a elf:SUBMITTER_RECORD
instead. Implementations are encouraged to support reading datasets with that behavior, but should not create them.
elf:Record
elf:Agent
elf:Document
elf:SUBMITTER_NAME
!
elf:MULTIMEDIA_LINK
*
elf:LANGUAGE_PREFERENCE
*
elf:USER_REFERENCE_NUMBER
even though it is an elf:Record
SUBM
SUBMITTER_REGISTERED_RFN
with tag RFN
, the value of which needed to be preregistered with Ancestral File, a service that is no longer available. RFN
has thus been removed from this specification, making it an extension tag.
elf:TEXT_FROM_SOURCE
elf:Structure
elf:SOURCE_RECORD
elf:SOURCE_CITATION
elf:SOURCE_CITATION_DATA
A block string of arbitrary length.
An excerpt of contents of the source.
TEXT
elf:TIME_VALUE
elf:Structure
elf:CHANGE_DATE_DATE
elf:TRANSMISSION_DATE
elf:Time
datatype defined in §5 of [ELF Dates].
TIME
elf:USER_REFERENCE_NUMBER
elf:Structure
elf:Record
elf:USER_REFERENCE_TYPE
?
A line string. It is RECOMMENDED that implementations support payloads of at least 30 characters.
A user-defined identifier (textual or numeric) of this record. In GEDCOM, the examples suggests this was to allow brief links to another record keeping system, though its non-multi-values character limits that functionality.
REFN
elf:USER_REFERENCE_TYPE
elf:Structure
elf:USER_REFERENCE_NUMBER
A line string. It is recommended that implementations support payloads of at least 40 characters.
A user-defined definition of the superstructure.
TYPE
elf:WHERE_WITHIN_SOURCE
elf:Structure
elf:SOURCE_CITATION
A block string of arbitrary length.
Location information expressing what part of the cited source is being cited.
PAGE
elf:WILL
The creation of a legal document regarding the disposition of a person’s estate upon death.
elf:IndividualEvent
WILL
elf:WITHIN_FAMILY
elf:Structure
elf:BIRTH
elf:CHRISTENING
A pointer to a elf:FAM_RECORD
.
The pointed-to record describes the family unit associated with the individual event described by the superstructure.
FAMC
The following concrete types are presented in alphabetical order. Data types are presented in the previous section.
elf:COPYRIGHT_GEDCOM_FILE
elf:Structure
elf:Metadata
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
Contains a copyright statement for the entire dataset.
COPR
elf:COPYRIGHT_SOURCE_DATA
elf:Structure
elf:NAME_OF_SOURCE_DATA
A block string of arbitrary length.
Contains a copyright statement for the source dataset described by the superstructure.
COPR
elf:DEFAULT_PLACE_FORMAT
Contains the default elf:PLACE_HIERARCHY
for the full document stream.
elf:Structure
elf:Metadata
elf:PLACE_HIERARCHY
?
PLAC
elf:DOCUMENT_SOURCE
elf:Structure
elf:Metadata
elf:VERSION_NUMBER
elf:NAME_OF_PRODUCT
elf:NAME_OF_BUSINESS
elf:NAME_OF_SOURCE_DATA
A line string. It is RECOMMENDED that implementations support payloads of at least 20 characters.
In early GEDCOM, this was a unique string assigned to each product through a registration process. That process no longer exists.
SOUR
elf:FILE_NAME
elf:Structure
elf:Metadata
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The base name (i.e., not a full path) of a file.
FILE
elf:GEDCOM_CONTENT_DESCRIPTION
elf:Structure
elf:Metadata
A block string of arbitrary length.
A description of the intended scope of the contents of the dataset.
NOTE
elf:GEDCOM_FORM
A holder for formatting and version information.
elf:Structure
elf:GEDCOM_FORMAT
LINEAGE-LINKED
FORM
elf:GEDCOM_FORMAT
A holder for formatting and version information.
elf:Structure
elf:Metadata
elf:GEDCOM_FORM
elf:VERSION_NUMBER
GEDC
elf:LANGUAGE_OF_TEXT
elf:Structure
elf:Metadata
A line string matching the Language Tag microformat.
Indicates the default language of the free-text payloads in the dataset.
LANG
elf:NAME_OF_BUSINESS
elf:Agent
elf:DOCUMENT_SOURCE
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The name of the entity that produced the product described by the superstructure.
CORP
elf:NAME_OF_PRODUCT
elf:Structure
elf:DOCUMENT_SOURCE
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The name of the product described by the superstructure.
NAME
elf:NAME_OF_SOURCE_DATA
elf:Structure
elf:DOCUMENT_SOURCE
elf:PUBLICATION_DATE
elf:COPYRIGHT_SOURCE_DATA
A line string. It is RECOMMENDED that implementations support payloads of at least 90 characters.
The name of an electronic data source from which this dataset was extracted.
DATA
elf:PUBLICATION_DATE
elf:Structure
elf:NAME_OF_SOURCE_DATA
A line string in the lexical space of the elf:DateExact
datatype defined in §4.1.1 of [ELF Dates].
Contains the date the source dataset (described by the superstructure) was published or created.
DATE
elf:RECEIVING_SYSTEM_NAME
elf:Structure
elf:Metadata
A line string. It is RECOMMENDED that implementations support payloads of at least 20 characters.
Identifies the intended recipient software of this dataset.
DEST
elf:SUBMITTER_POINTER
Used both in metadata and in data; see elf:SUBMITTER_POINTER
for a discussion.
elf:TRANSMISSION_DATE
elf:Structure
elf:Metadata
elf:TIME_VALUE
A line string in the lexical space of the elf:DateExact
datatype defined in §4.1.1 of [ELF Dates].
The date that this dataset was created.
DATE
elf:VERSION_NUMBER
elf:Structure
elf:DOCUMENT_SOURCE
elf:GEDCOM_FORMAT
A line string. It is RECOMMENDED that implementations support payloads of at least 15 characters.
A version identifier, with syntax and semantics varying by context. If the superstructure is [elf:GEDCOM_FORMAT]
, the payload should be the exact string “5.5.1
”.
VERS
elf:Document
Not a structure at all, elf:Document
is a special IRI used as the structure type identifier of the superstructure of a structure that does not have a superstructure but instead is directly included in the dataset.
elf:Metadata
Not a structure at all, elf:Metadata
is a special IRI used as the structure type identifier of the superstructure of a structure that does not have a superstructure but instead is directly included in the metadata of the dataset.
There are several reasons why a structure may be considered an unknown extension to this data model:
It is not the first substructure of its type in its superstructure, and the superstructure expected no more than one substructure of its type.
It is a substructure of a type not expected by its superstructure.
It is missing a required substructure, or that substructure has some error that makes it an extension.
Its payload is not appropriate for its structure type: it has a payload where none was expected, or a string where a pointer was expected or vice versa, or a pointer to the wrong structure type or to an extension.
Its structure type identifier does not indicate any known structure type.
Unknown extensions are permitted by this data model, and a dataset must not be rejected simply because it contains unknown extensions. A conformant application may remove unknown extension structures, but doing so is not recommended. Implementations should not create, modify, move, or duplicate structures it considers to be unknown extensions.
If a structure is removed as part of removing an unknown extension, all of its substructures and all structures that point to it must also be removed, recursively.
elf:Unknown
. FHISO currently does not intend to define semantics for elf:Unknown
-prefixed structure type identifiers in any future ELF standard.
This data model may be extended by creating new extension types, which are structure types that are not documented in ELF 1.0.0.
Extension types’ structure type identifiers should be an IRI with an authority component owned by the extension author, as documented in [Basic Concepts].
Suppose an implementation not understanding the http://example.com/WEALTH
extension type is processing a dataset containing two elf:INDIVIDUAL_RECORD
s, one of which has a http://example.com/WEALTH
substructure with payload “34K/A”.
http://example.com/WEALTH
or to display it in some default fashion.elf:INDIVIDUAL_RECORD
with that http://example.com/WEALTH
still exists in the dataset, the http://example.com/WEALTH
structure should be preserved, but it may be omitted.http://example.com/WEALTH
structure should be created.http://example.com/WEALTH
structure should not have been modified.If the implementation discovers the meaning of http://example.com/WEALTH
, it is welcome to create and modify http://example.com/WEALTH
structures as it sees fit (subject to any constraints specific to that structure type).