The "Relatives" program data structure.

The GEDCOM format has been offered to store genealogic information by The Church of Jesus Christ of Latter-day Saints ("Church of mormons") in 1980th and became de facto the generally recognized standard. Because of this the data structure of this program is similar to GEDCOM format data structure.

Data in the program is presented by a set of records. The following table shows the types of the records and their conformity to GEDCOM tags:
Type of record GEDCOM tag Note
Header HEAD File header contains information, common for the whole file. For example, the program-producer of the given file, the author, the encoding of the file, date of its creation, etc. The is only one header in a file.
Person INDI An individuum. Persons have references to families in which they are spouses and children, so each person "knows" what families it belongs to. There must be at least one record of this type in a file.
Family FAM There can be no more than one husband and one wife in a family. If someone has more than one spouse this will be a separate family. Families have references to persons who are their spouses and children, thus any family "knows" its members. There must be at least two members in a family.
Note NOTE Note, comment. Other records can use such comment as common. Such records are called "shared records".
Source SOUR A source of information as a shared record. Other records can refer to such record if they have the same source of information.
Repository REPO An information repository, archive, library, museum, database, etc., i.e. everything, that can store documents. Other records can refer to such record if their data are stored in the same place.
Submitter SUBM Submitter or author of data, a person or an organization which has given the information. If data for several records have been given by one submitter they can refer to such shared record together. By default the submitter of data for all records in the file is who is specified in the Header. Thus, in a file there should be at least one submitter for all file, plus submitters of other records if those exist.
Submission SUBN This record (there can be only one in a file) contains instructions and information for receiving system. It is used only in the genealogic information system of Churches of mormons.

Records of type "embedded media-object" (GEDCOM-tag OBJE) are not supported. See About GEDCOM 5.5 full support.

Advanced users can use the User Tags Editor to create their own types of records.

Records contain elements which, in their turn, can contain other elements, and so on. Thus each record is "a tree of elements", similar to directories and files structure. Each element has a tag corresponding to a GEDCOM-tag and a value. Types of element's values are listed in the following table:

Value type Description
Empty The element doesn't have a value. Such element just contains other elements.
String Element's value is a line of text.
Text Element's value is a multiline text of unlimited length.
Reference Element's value is a reference to a record. For example, element "Child in family" (tag FAMC) in Person record is a reference to a family where this person is a son or a daughter.

In GEDCOM format identical tags can have different meaning depending on their context, i.e. where in a tree of elements they are located. For example, tag TITL in Person means "the nobility title, the rank", while in Source it is "the name, the title of the document". In "Relatives" program each record and each its element are supplied by a template which specifies type of the element, its description, the help text for its creation/editing, minimal and a maximum quantity of elements of the given type in the parental element, etc. Thus, elements with identical tags differ depending on the position in the record's tree of elements. The templates also store the list of all possible values for those elements which can have only one value from predefined list of values.

Notice: Notes (tag NOTE) and Sources (tag SOUR) can be both elements belonging to records, and separate shared records of common use. Thanks to that they have different patterns, the program distinguishes them, helping the user to not confuse them. For example, in a tree of elements you can see both an element with the name "Note", and an element with the name "Ref. to Note". They are different types:
Note is a plain text note, it belongs only to the given parental element (or record);
Ref. to Note is a reference to a Note shared record.

The complete tree of all possible elements for each type of record can be seen on the left panel in "Advanced Search" dialog.


GEDCOM is well complex and comprehensive format, enabling to store practically any genealogic information, however in the majority of cases an ordinary user does not need all that variety of data for his/her family tree. That's why the author of the program has decided to define some information on relatives and families as the basic, main, and to make access to it simplified, and to move all other information on the second-order part so it wouldn't obscure the main one. What information is basic, what is desirable to bring up to the viewer of your family tree at first of all? In the author's opinion, for any object (a person, a family, etc.) there are two categories of primary data: Notes and Links.

Note is a text of any length which purpose is obvious - to describe the object, to tell information about it. The Note can contain any information on object and generally speaking, it would be possible to manage only this type of data, but for computer processing the information should be structured.

Link is an address of the document pertaining to the given object. It can be a digital photo, a text file, a Word document, a web-page on the Internet, musical or video file, other family tree, etc. - everything, that possible to store in electronic form.

Other high-priority information:

For a person it is his/her name/surname and birth/death dates, close relatives: the mother, the father, the spouse, the children.

For a family it is the husband, the wife, the children, date and place of wedding.

Example of such approach: the information window showing data of a person:

1) 1) In the "Notes + Links" view the window shows the main info: the name, the dates, the close relatives, the notes and the links. If there are more than one notes they are shown divided by a horizontal line from each other.

2) In the "Tree" view you can see the copious information about the given person - in this particular case the user chose the information about the place of burial.

The Record Editor works the similar way - buttons in the bottom part of its window allow to quickly invoke basic elements of the record for editing, and if necessary the tree of elements on the left can be used to edit all other elements.

Example: Editing a Person record in the Record Editor:
Buttons "Name...", "Gender... ", "Birth & Death... ", etc. invoke corresponding dialogs for editing these elements.

About the maximal length of string values:
In GEDCOM standard for every line of text in a file there is a limit of 256 symbol, from which for value itself (minus the level number and the tag) maximum of 248 symbols remains. This limit has been defined in days of low-power computers, and this archaic restriction still remains. The "Relatives" program does not limit length of a single line though when exporting to GEDCOM it breaks lines into pieces of 248 symbols (with CONT and CONC tags) according to GEDCOM format.