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
- some small part missing, and
- some strange special characters appearing in certain names and
notes
This is the point, where GEDCOM Editor may help.
It allows you to
- read GEDCOM files by selecting from several character encodings
(see below)
- edit records "on the fly"
- save everything in an encoding that your software understands
properly
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.
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
- character encodings
- a database record format
- tags describing genealogical data (e.g. name, birth, locations,
notes, parental-child relations etc.)
- a database relation structure
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
- ASCII (i.e. 7-bit characters only, ANSI X3.124.1-198x)
- ANSEL (ANSI
Z39.47-1985)
- UNICODE (ISO 10646, using the 2-byte encoding UCS-2)
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
- double click on a .ged file in Finder. This may open other GEDCOM
capable applications.
- control-click onto the file in Finder and select GEDCOM Editor in
the Open With submenu.
- start GEDCOM Editor and select Open... from the File menu to open
the file with automatic encoding detection.
- select and encoding from the Open As submenu to open the file in
that encoding.
- select Open Recent to open a previously used file with automatic
encoding detection.
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.
- Tags can not be empty.
- Tags are always upper case letters
(so they are converted), digits or underscore (_).
- Tags should not be longer than 31 characters.
- Xrefs and Pointers should not be longer that 13 characters,
should start with a letter and are not allowed to contain a @ character.
- You can't change a tag to CONT or CONC. Long lines and values
with multiple lines (e.g. for NOTE tags) are handled internally. So you
don't have to care about CONT and CONC.
- An entry can not have a pointer and a value simultaneously. The
rule is that setting a non-empty value deletes the pointer. A pointer is
ignored if the value is not empty.
- An Xref must be unique.
- An Xref or Pointer is not
changed if this leads to recursion.
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
- Header
- Families
- Individuals
- Notes
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