GEDCOM Editor

As an experienced Genealogist, you have most probably encountered the following situation: you have received a GEDCOM file and tried to open it in your favourite Pedigree Software - and voila, there is all the information.

But, wait! There are

This is the point, where GEDCOM Editor may help.

It allows you to

The user interface resembles Property List Editor (which is part of the Apple Developers Tools) - but don't bother if you do not know what this is.

Screendump

Screendump

About GEDCOM

GEDCOM 5.5 is a standard used by many genealogy programs all over the world to have a common basis for exchanging data. It was defined and published January 1996 by the Family History Department of the Church of Jesus Christus of Latter-day Saints. HTML-based versions of this  document are also available.

GEDCOM 5.5 defines

An new standard GEDCOM 6.0 (based on XML) is being prepared recently (Beta version of December 2002) but not yet supported by GDECOM Editor.

About Character Encodings

Character encodings are a permanent issue when using GEDCOM 5.5 for international names and characters like umlaut-u (ü). The GEDCOM 5.5 standard allows three different encodings

The encoding used in a file is stored in the HEAD.CHAR entry.

Unfortunately, many other encodings are in use. And although most programs write the encoding into the HEAD.CHAR tag of the GEDCOM file, this may still be wrong. I have for example downloaded a file from http://www.gedbas.de which says its encoding is ANSI (which means ISO Latin 1 or Windows Code Page 1252) but still shows scrambled umlaut characters. Trying different encodings reveals that the originator used MS-DOS (MS-DOS Latin US, IBM Codepage 437).

Therefore, GEDCOM Editor provides the Open As... command with a list of different encodings. Internally, it always uses UNICODE. The additional encodings known to GEDCOM Editor are

CHAR code Description
MS-DOS
MSDOS
MS DOS
IBM PC
IBMPC
classical MS-DOS character set - also known as Code Page 437, LatinUS, ECS, PC8
ANSI
ISO-8859-1
IBM WINDOWS
ISO Latin1
MACINTOSH
MACROMAN
Macintosh Roman character set
UTF-8 using 8 bit encoding of 16 bit Unicode
HTML using & and 〹 etc. to encode special and non-ASCII characters

If you save a file using GEDCOM Editor, please stay to the three standard encodings mentioned above.

If a file can't be saved as ANSEL it contains characters that can't be converted to ANSEL. Then, try to identify them (well, there should and will be some help in GEDCOM editor in the future) or use UNICODE encoding.

Note that saving will generate a HEAD entry (if not already present) including e.g. HEAD.CHAR, HEAD.SOUR and other records to (now) properly describe the encoding (see below).

Opening files

To open a file, either
To create a new and empty file, select New from the File menu.

If GEDCOM Editor is not able to determine the encoding automatically, a warning will be issued. In that case, repopen with different encodings until the non-ASCII characters seem to be decoded properly.

A note on CONC and CONT. These tags are used in GEDCOM to split up long lines and to denote contuniation of e.g. a note with multiple lines. These tags are handled internally, so you won't ever see them in the Tag column.

Saving Files

If any change has been made to a file, the Save dialog opens when you try to close the window.

If you select Save from the File menu, the file will be saved in the default encoding (File Format) which is ANSEL.

To save the file in a specifiec encoding or to another location, use Save As... In that dialog, you can select from a list of encodings (File Format).

There may be situations in which a file can't be saved without loosing characters. This occurs if the GEDCOM document contains UNICODE characters that can't be represented in e.g. ANSEL.

In that case, please select a different encoding. You can always save in UNICODE encoding.

Note, that saving adds/modifies some records to the HEAD record. These are

HEAD

  SOUR
GEDCOM_Editor
    VERS
1.0
    NAME
GEDCOM Editor
    DATA

      COPR
<a copyright message>
    CORP
DSITRI
      LINK
http://www.dsitri.de
  GEDC

    VERS
5.5
  CHAR
<the encoding selected>

Editing Entries

Changing tags, references, pointers, values

To change the value of any field, double-click into the field are. This will open a text entry field at the selected cell. Simply type new text. Pressing the return key will move to the next line and open that for editing. To leave the editing mode, click in some other cell.

There are some rules for changing entries.
Editing of a multi-line value is done by typing a newline character (alt-return). Alternatively, you can choose Show Multiline View in the Window menu to open a drawer with a full text field where you can edit the current entry including continuation lines. This drawer opens automatically if you select an entry with more than 50 characters or at least a second line.

Viewing and editing of Multimedia Records (OBJE and BLOB) is not yet implemented. You will see the GEDCOM UUEncoded record in the Value column or the Multiline editor.

Adding records

New Header:

A new and fresh database has no records. Using the New Header button will create a HEAD and a TRLR records as well as some standard records defined by GEDCOM including one Family (FAM) and one Individual (INDI).

New Record:

Adds a new (empty) subrecord to the currently selected record. Please specify a valid tag according to the Data Model defined by GEDCOM 5.5.

New Sibling:

Adds a new (empty) record after the selected record, i.e. on the same level. An exception is the TRLR record, where the new record is generated before the TRLR.

Deleting records

Select the record by single-clicking a line. To deselect, press the Apple-Key and click into the selected line.

Press the Delete button and the record (and its subrecords) is deleted. There is no Undo function!

Deletion of records is disabled until you have registered the application.

Updating Lineage Links

GEDCOM 5.5 files should include several links from families to children, and from children and spouses to families etc. These links can be updated by selecting Lineage Link from the Edit menu. GEDCOM editor assumes that the HUSB, WIFE, and CHIL records of a FAMily are correct. The NCHI value for each family is also set.

Viewing Content

Dump (Button or Dump GEDCOM in the Window menu)

Shows the GEDCOM file before encoding in the lower part of the Document Window.

Dump HTML (in the Window menu)

Creates HTML output (like View As HTML...) and shows it as a HTML raw file in the lower part of the Document Window.

View As HTML... (in the Window menu)

Creates HTML output and opens it in your preferred Browser. Fields included are
and several Indexes are created, e.g. for Families, Family Names, Locations. You can save that file from within your Browser.

For best results, the Lineage Links should have been updated first.

Note: This function may become very slow for larger databases. So, be patient.

GQL

GQL (GEDCOM Query Language) is a built-in interpreter for a database query language.

To issue a query, type it into the GQL field and press Return. The result is shown in the GEDCOM table view. To view the full database, issue an emptry query, so it effectively works as a selection filter.

Expressions

'string\n\'\\x\xhh\u2318x' _STR with string as value, embedded escaped characters, hex characters (2 digits) and UNICODE characters (4 digit hex)
1234 _INT with number as value - in most cases the same as '1234'
-1234 _INT with negative number as value
expr+expr _INT with integer addition of (string) values of both expressions
expr-expr
_INT with integer subtraction of (string) values of both expressions
expr#expr _STR with appended value of second expr to first one
expr^ entry pointed by expr value
expr.tag[expr] find tag as subobject of first expr and return n-th entry denoted by second expr
expr.tag[expr]: define tag as subobject of first expr if it does not yet exist - note that result does not need to have the specified index!
expr.tag same as expr.tag[0]
expr.tag: same as expr.tag[0]:
tag[expr] find tag as subobject of database that the query is sent to (root)
tag[expr]: define tag as subobject of database that the query is sent to if specified index does not yet exist - note that result does not need to have the specified index!
tag same as tag[0]
tag: same as tag[0]:
expr.tag[#] return _INT with number of entries of subobject
tag[#] return _INT with number of entries of tag
tag:!*?
same as tag[0]:!*?
tag[expr]:!*?
delete entry; always returns _ERR
expr?expr substitute second expr if first returns _ERR
expr=expr set value of left expr to value of right (and return left)
(expr) parenthesis

Idioms/Examples

NOTE[7]:='value' changes value of 7-th entry of tag NOTE or define new NOTE entry (which has index one higher than the previously highest available index)
_I:=0 set counter to 0
_I=_I+1 increment counter
FAM[_I] access by index
FAM[_I].HUSB^.NAME.SURN+'/'+FAM[_I].WIFE^.NAME.SURN get surname of husband and wife of the family indexed by value in _I
_I:!*?
delete variable _I after being used

Copyright and Licence

GEDCOM Editor is authored and copyrighted by DSITRI (http://www.dsitri.de). The year of publication is 2003. All rights are reserved.

GEDCOM Editor is licenced to you as Shareware. Please pay your shareware fee of by following the links found in the About Menu or this link. You will receive a key by e-mail that disables the initial alert and enables deletion of records.

The ANSEL conversion algorithm is based on the description and conversion table by Heiner Eichmann.

Your comments on this project are greatly appreciated to: sales@dsitri.de

Disclaimer:

This release may still have severe bugs. Please report bugs and feature requests through using the About Menu.

The author makes no express or implied warranty or representation of any kind with respect to this software, including any warranty that it is defect-free.  ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE IS HEREBY DISCLAIMED.  IN NO EVENT WILL THE AFOREMENTIONED PARTIES BE LIABLE FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE.  The parties are under no obligation to provide any services, by way of maintenance, update, or otherwise.

Any and all trademarks mentioned belong to their respective owners. They are used in this document only for reference/descriptive purposes.

© by H. N. Schaller, Munich, Germany, 2003. All Rights are Reserved. - last change: 18 Mar 2003