Skip to content

Proposal: Change some optional substructures to be required #686

@mother10

Description

@mother10

Allow better tracking of the origin of a GEDCOM file, and changes made to it.

To prevent certain situations like this to be an official header:

0 HEAD
1 GEDC
2 VERS 7.0

Which totally does not say anything useful about where this file comes from, or what software created it.

and also to make changes more traceable:

This proposal adds the following to the specification:

n HEAD                                     {1:1}  g7:HEAD
  +1 GEDC                                  {1:1}  g7:GEDC
     +2 VERS <Special>                     {1:1}  g7:GEDC-VERS
  +1 SCHMA                                 {0:1}  g7:SCHMA
     +2 TAG <Special>                      {0:M}  g7:TAG
  +1 SOUR <Special>                        {1:1}  g7:HEAD-SOUR
     +2 VERS <Special>                     {1:1}  g7:VERS
     +2 NAME <Text>                        {1:1}  g7:NAME
     +2 CORP <Text>                        {1:1}  g7:CORP
        +3 <<ADDRESS_STRUCTURE>>           {0:1}
        +3 PHON <Special>                  {0:M}  g7:PHON
        +3 EMAIL <Special>                 {1:M}  g7:EMAIL
        +3 FAX <Special>                   {0:M}  g7:FAX
        +3 WWW <Special>                   {1:M}  g7:WWW
     +2 DATA <Text>                        {0:1}  g7:HEAD-SOUR-DATA
        +3 DATE <DateExact>                {0:1}  g7:DATE-exact
           +4 TIME <Time>                  {0:1}  g7:TIME
        +3 COPR <Text>                     {0:1}  g7:COPR
  +1 DEST <Special>                        {0:1}  g7:DEST
  +1 DATE <DateExact>                      {1:1}  g7:HEAD-DATE
     +2 TIME <Time>                        {1:1}  g7:TIME
  +1 SUBM @<XREF:SUBM>@                    {1:1}  g7:SUBM
  +1 COPR <Text>                           {0:1}  g7:COPR
  +1 LANG <Language>                       {0:1}  g7:HEAD-LANG
  +1 PLAC                                  {0:1}  g7:HEAD-PLAC
     +2 FORM <List:Text>                   {1:1}  g7:HEAD-PLAC-FORM
  +1 <<NOTE_STRUCTURE>>                    {0:1}
  +1 <<CHANGE_DATE>>                       {1:1}
  +1 <<CREATION_DATE>>                     {1:1}

Some cardinality markers are changed:

  • SOUR, the program used to create this GEDCOM, should at a minimum give certain information, so users and other software can track the origin of a specific GEDCOM.
  • VERS, NAME, CORP, EMAIL and WWW, are the minimal info about the software this GEDCOM was created by, that should be present in a header.
  • DATE and TIME, The datetime this GEDCOM file was created, is now also mandatory.
  • SUBM, Submitter is now also mandatory.
  • CREA and CHAN, added these too, as the header was the only record that did not have these. Because a conversion from 1 GEDCOM version to another, also changes info in the header. (replacing the name of the software for instance)

PHON and FAX are not included, because of current privacy regulation.

Further:

  • All records that have a <<CHANGE_DATE>> and a <<CREATION_DATE>>, should now have the cardinality markers for those set to {1:1} also.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions