GeneWeb - The GW format |
The GW format is a text file format that can be output by GeneWeb using the gwu command. It contains all the GeneWeb database information in a way that can be easily parsed by other programs, or manually changed in your favorite text editor. You can then rebuild a database using the gwc command. The GW format is also a convenient way to make backup files of your database, exchange your data with other programs, etc.
This chapter has been written by Yann Corno.
Words separated by vertical bars | mean choices : one of the item is to be used.
Example :
fam HusbandLastName FirstName[.Number] + [WeddingDate] [#mp WeddingPlace] WifeLastName FirstName[.Number]
can give the following valid lines :
fam CORNO Joseph_Marie_Vincent + THOMAS Marie_Julienne
fam CORNO Alain.1 +25/11/1728 #mp Ile-aux-Moines CAUZIC Marie
Dates can be in the following formats : dd/mm/yyyy, yyyy, mm/yyyy. Sometimes, when you really need to give a date, but do not have one, just give 0.
Date modifiers use special prefix characters to specify "about", "before", etc.
Type of date |
Special Character |
Example |
About |
~ |
~10/5/1990 |
Maybe |
? |
?10/5/1990 |
Before |
< |
<10/5/1990 |
After |
> |
>10/5/1990 |
<-Or-> |
| |
10/5/1990|1991 |
<-Between-> |
.. |
10/5/1990..1991 |
Type of calendar is Gregorian by default. For Julian, append J to the date, for French Republican use F, and for Hebrew, use H. Example : 10/9/5750H
For a free text date, put 0 and use parenthesis this way :
0(5th_May_1990)
Spaces in strings are replaced by _ underscores (except in notes and in some comments) : Marie_Julienne
High ASCII follow the iso-8859-1 character set.
A person can be referenced several times in a file : as a parent, as a child, or in a note. Last Name, First Name and number (if any) must match exactly, or the software will not link the pieces together.
The file format is based on Families. A family describes the husband and wife, and lists the children. The personal information (DoB, etc.) is located at the children level. If someone does not have any parents, then its personal information is inserted directly after his/her name in the family line.
Note that a consequence of this is that people that are all alone in the GeneWeb database will not be exported to the GW file. This is how deleted persons are purged during a gwu/gwc sequence : they are simply not exported in the first place.
1st case : both husband and wife are listed somewhere else as children of their parents families.
fam HusbandLastName FirstName[.Number] +[WeddingDate]
[#sep | - DivorceDate] [#nm | #eng]
[#mp WeddingPlace] [#ms WeddingSource] WifeLastName FirstName[.Number]
[src Family source]
[comm Family comments in free format]
[wit: Witness (use Person format, see Person Information section) ]
beg
- [h | f | ] Person (see detailed description at the next
section)
end
If a family has no children, you can skip the whole beg/end tags sequence :
fam HEYDENREICH Gaspard +1719 TRESCH Rosine_Catherine
2nd case : the husband or the wife is not listed as a child of another family. Simply stick all his/her personal information just like you would do it with a child. See the Person Information section below for all details on personal information.
Example : John Corno (o 1935 at Soisy, +1997) information is put directly in the family line, because he appears nowhere else :
fam Corno John 1935 #bp Soisy 1997 + Rempp Zabeth
If you really have no information on a person but his/her name, then just append 0 to his/her name, which will serve as a blank DoB and as an indicator that the person is not described anywhere else :
fam Diemer Patrick 0 + Heidenreich Sylvie 0
Personal information can appear either on a child line in a family, or in a family line if the person is not listed as a child somewhere else.
The very minimum information for a parent is his/her Last Name and First Name, with a 0 Date of Birth (DoB) :
Corno Yann 0
For children, the DoB is not compulsory (the Last Name can also be omitted : the one from the father will be used).
So in other words, the DoB is compulsory only if the person is a Parent, or if the person has a Date of Death (DoD). In the last case, if the DoB is unknown, simply give 0.
Example : Maurice, unknown DoB, died in 1935 in Caen :
Corno Maurice 0 1935 #dp Caen
The complete format for a person goes as follows :
LastName FirstName [{FirstNameAlias}] [#salias SurnameAlias] [(PublicName)] [#image ImageFilePath] [#nick Qualifier] [#alias Alias] [Titles (see Title section)] [#apubl | #apriv] [#occu Occupation] [#src PersonSource] DateOfBirth [#bs BirthSource] [#bp PlaceOfBirth] [!BaptizeDate] [#pp BaptizePlace] [#ps BaptizeSource] [DateOfDeath] [#dp PlaceOfDeath] [#ds DeathSource] [#buri | #crem [BurialDate]] [#rp BurialPlace] [#rs BurialSource]
To specify the different types of death, use a prefix character before the DoD :
Type of Death |
Special Character |
Example |
Killed |
k |
k10/5/1990 |
Murdered |
m |
m10/5/1990 |
Executed |
e |
e10/5/1990 |
Disappeared |
s |
s10/5/1990 |
Use #buri to specify a buried person, or #crem for a cremation. The corresponding date is optional.
Although titles appear as just another tag in the Person line, they are described separately in this section for better clarity. Titles are enclosed in brackets [] (Ooops, so much for using brackets as a formatting descriptor ). If there are several titles, they are just appended one after the other, repeating the brackets pairs.
[ TitleName:Title:TitlePlace:StartDate:EndDate:Nth]
Notes are stored separately in the file, between notes ... end notes tokens :
notes LastName FirstName[.Number]
beg
Notes go here in a free format
end notes
Relations are stored separately, just like notes. They reference people in a similar way as children in a family. In the following list, all tokens are listed alltogether, which in fact never happens of course.
rel LastName FirstName[.Number]
beg
- adop: AdoptiveFather + AdoptiveMother
- adop fath : AdoptiveFather
- adop moth : AdoptiveMother
- reco: RecognizingFather + RecognizingMother
- reco fath : RecognizingFather
- reco moth : RecognizingMother
- cand: CandidateFather + CandidateMother
- cand fath : CandidateFather
- cand moth : CandidateMother
- godp: GodFather + GodMother
- godp fath : GodFather
- godp moth : GodMother
- fost: FosterFather + FosterMother
- fost fath : FosterFather
- fost moth : FosterMother
end