GeneWeb - The GW format

<p>&nbsp;</p>

<p ALIGN="JUSTIFY">The GW format is a text file format that can be
output by {GeneWeb} using the
<strong>gwu</strong> 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
<strong>gwc</strong> command. The GW format is also a convenient way
to make backup files of your database, exchange your data with other
programs, etc.</p>

<ul>
  <li><a href="#Styles">1.</a> Styles Guide</li>
  <li><a href="#Dates">2.</a> Dates</li>
  <li><a href="#Strings">3.</a> Strings</li>
  <li><a href="#PersonRef">4.</a> Person referencing</li>
  <li><a href="#Family">5.</a> The main structure : the Family</li>
  <li><a href="#Person">6.</a> Person Information</li>
  <li><a href="#Titles">7.</a> Titles</li>
  <li><a href="#Notes">8.</a> Notes</li>
  <li><a href="#Relations">9.</a> Relations</li>
</ul>

<p>

This chapter has been written by Yann Corno.

<p>



<h3 ALIGN="JUSTIFY"><font color="#2f6400"><a name="Styles">1.</a> Styles Guide</font></h3>

<ul>
  <li>Text that should appear &#145;as is&#146; is written in <b>bold</b> typeface.</li>
  <li>Words in <i>italic</i> should be replaced by their actual value. Such names are
    capitalized, e.g. <i>HusbandLastName</i></li>
  <li>Things enclosed in [brackets] are optional : they can be omitted.</li>
  <li><p ALIGN="JUSTIFY">Words separated by vertical bars &#145;|&#146; mean choices : one of
    the item is to be used.</p>
  </li>
</ul>
<u>

<p ALIGN="JUSTIFY">Example :</p>
</u>

<blockquote>
  <b><p>fam</b> <i>HusbandLastName</i> <i>FirstName</i>[<b>.</b><i>Number</i>] <b>+</b> [<i>WeddingDate</i>]
  [<b>#mp</b> <i>WeddingPlace</i>] <i>WifeLastName</i> <i>FirstName</i>[<b>.</b><i>Number</i>]</p>
</blockquote>

<p ALIGN="JUSTIFY">can give the following valid lines : </p>

<dir>
  <dir>
    <pre>fam CORNO Joseph_Marie_Vincent + THOMAS Marie_Julienne</pre>
    <pre>fam CORNO Alain.1 +25/11/1728 #mp Ile-aux-Moines CAUZIC Marie</pre>
  </dir>
</dir>



<h3 ALIGN="JUSTIFY"><font color="#2f6400"><a name="Dates">2.</a> Dates</font></h3>

<p ALIGN="JUSTIFY">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. </p>

<p>Date modifiers use special prefix characters to specify &quot;about&quot;,
&quot;before&quot;, etc.</p>

<table BORDER="1" CELLSPACING="2" BORDERcolor="#000000" CELLPADDING="4" WIDTH="445">
  <tr>
    <td WIDTH="26%" VALIGN="TOP" BGcolor="#808080"><font color="#ffffff"><b><p ALIGN="CENTER">Type
    of date</b></font></td>
    <td WIDTH="28%" VALIGN="TOP" BGcolor="#808080"><font color="#ffffff"><b><p ALIGN="CENTER">Special
    Character</b></font></td>
    <td WIDTH="46%" VALIGN="TOP" BGcolor="#808080"><font color="#ffffff"><b>Example</b></font></td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">About</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">~</td>
    <td WIDTH="46%" VALIGN="TOP">~10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">Maybe</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">?</td>
    <td WIDTH="46%" VALIGN="TOP">?10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">Before</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">&lt;</td>
    <td WIDTH="46%" VALIGN="TOP">&lt;10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">After</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">&gt;</td>
    <td WIDTH="46%" VALIGN="TOP">&gt;10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">&lt;-Or-&gt;</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">|</td>
    <td WIDTH="46%" VALIGN="TOP">10/5/1990|1991</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">&lt;-Between-&gt;</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">..</td>
    <td WIDTH="46%" VALIGN="TOP">10/5/1990..1991</td>
  </tr>
</table>

<p ALIGN="JUSTIFY">Type of calendar is Gregorian by default. For Julian, append
&#145;J&#146; to the date, for French Republican use &#145;F&#146;, and for Hebrew, use
&#145;H&#146;. Example : 10/9/5750H</p>

<p ALIGN="JUSTIFY">For a free &#145;text&#146; date, put 0 and use parenthesis this way : </p>

<dir>
  <dir>
    <pre>0(5th_May_1990)</pre>
  </dir>
</dir>



<a name="Strings"></a>
== Strings  ==

<p ALIGN="JUSTIFY">Spaces in strings are replaced by &#145;_&#146; underscores (except in
notes and in some comments) : Marie_Julienne</p>

<p ALIGN="JUSTIFY">High ASCII follow the iso-8859-1 character set.</p>



<a name="PersonRef"></a>
== Person referencing ==

<p ALIGN="JUSTIFY">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.</p>



<a name="Family"></a>
== The main structure : the Family ==

<p>The file format is based on <b>Families</b>. 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.<font color="#ff0000"></p>
</font>

<p>Note that a consequence of this is that people that are all alone in the {GeneWeb} database will <strong>not</strong> be exported to
the GW file. This is how deleted persons are purged during a <strong>gwu/gwc</strong>
sequence : they are simply not exported in the first place.</p>
<u>

<p>1<sup>st</sup> case :</u> both husband and wife are listed somewhere else as children
of their parents families. 

<dir>
  <p><b>fam</b> <i>HusbandLastName</i> <i>FirstName</i>[<b>.</b><i>Number</i>] <b>+</b>[<i>WeddingDate</i>]
  [<strong>#sep</strong><b> | -</b> <i>DivorceDate</i>] [<b>#nm</b> | <strong>#eng</strong>]
  [<b>#mp</b> <i>WeddingPlace</i>] [<b>#ms</b> WeddingSource] <i>WifeLastName</i> <i>FirstName</i>[<b>.</b><i>Number</i>]<br>
  [<b>src</b> <i>Family source</i>]<br>
  [<b>comm</b> <i>Family comments in free format</i>]<br>
  [<b>wit:</b> <i>Witness (use Person format, see Person Information section)</i> ]<br>
  <b>beg<br>
  - </b>[<b>h </b>|<b> f </b>|<b> </b>]<i> Person (see detailed description at the next
  section</i>)<br>
  <b>end</b></p>
</dir>

<ul>
  <li>If the parents are not married (relationship), insert the <b>#nm</b> tag. If they are
    engaged, use <strong>#eng</strong>.</li>
  <li>If the parents are separated, use <strong>#sep</strong>. Or if they are divorced, use '<strong>-</strong>'
    instead and optionally add the divorce date just after.</li>
  <li>If the <i>ChildLastName</i> is omitted, the Last Name of the father will be used.</li>
  <li>The <b>src</b>, <b>comm</b> and <b>wit:</b>: tags come in separate lines, after the <b>fam</b>
    tag. They are optional.</li>
  <li>If the child gender is unknown, do not put anything (no &#145;h&#146; nor &#145;f&#146;)
    after the &#145;-&#145; dash.</li>
</ul>

<p>If a family has no children, you can skip the whole <b>beg</b>/<b>end</b> tags sequence
: 

<dir>
  <dir>
    <pre>fam HEYDENREICH Gaspard +1719 TRESCH Rosine_Catherine</pre>
  </dir>
</dir>
<u>

<p>2<sup>nd</sup> case :</u> 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 <a href="#Person">Person Information</a> section below for all details on
personal information.</p>

<p>Example : John Corno (o 1935 at Soisy, +1997) information is put directly in the family
line, because he appears nowhere else : 

<dir>
  <dir>
    <pre>fam Corno John 1935 #bp Soisy 1997 + Rempp Zabeth</pre>
  </dir>
</dir>

<p>If you really have no&nbsp; 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 : 

<dir>
  <dir>
    <pre>fam Diemer Patrick 0 + Heidenreich Sylvie 0</pre>
  </dir>
</dir>



<a name="Person"></a>
== Person Information  ==

<p>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.</p>

<p>The very minimum information for a parent is his/her Last Name and First Name, with a 0
Date of Birth (DoB) : 

<dir>
  <dir>
    <pre>Corno Yann 0</pre>
  </dir>
</dir>

<p>For children, the DoB is not compulsory (the Last Name can also be omitted : the one
from the father will be used).</p>

<p>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,&nbsp; simply
give 0.</p>

<p>Example : Maurice, unknown DoB, died in 1935 in Caen : 

<dir>
  <dir>
    <pre>Corno Maurice 0 1935 #dp Caen</pre>
  </dir>
</dir>

<p>The complete format for a person goes as follows : 

<dir>
  <i><p>LastName</i> <i>FirstName</i> [<b>{</b><i>FirstNameAlias</i><b>}</b>] [<b>#salias</b>
  <i>SurnameAlias</i>] [<b>(</b><i>PublicName</i><b>)</b>] [<b>#image</b> <i>ImageFilePath</i>]
  [<b>#nick</b> <i>Qualifier</i>] [<b>#alias </b><i>Alias</i>] [<i>Titles (see Title
  section)</i>] [<b>#apubl</b> | <b>#apriv</b>] [<b>#occu</b> <i>Occupation</i>] [<b>#src</b>
  <i>PersonSource</i>] <i>DateOfBirth</i> [<b>#bs</b> <i>BirthSource</i>] [<b>#bp</b> <i>PlaceOfBirth</i>]
  [<b>!</b><i>BaptizeDate</i>] [<b>#pp</b> <i>BaptizePlace</i>] [<b>#ps</b> <i>BaptizeSource</i>]
  [<i>DateOfDeath</i>] [<b>#dp</b> <i>PlaceOfDeath</i>] [<b>#ds</b> <i>DeathSource</i>] [<b>#buri
  </b>| <b>#crem</b> [<i>BurialDate</i>]] [<b>#rp</b> <i>BurialPlace</i>] [<b>#rs</b> <i>BurialSource</i>]</p>
</dir>

<ul>
  <li>See the notes above about the need to provide the DoB or not.</li>
  <li>If you don&#146;t know if the person is still living (&quot;don&#146;t know&quot; item
    in the Death section), put a &#145;?&#146; for the DoD.</li>
  <li>If you do know that the person is dead, but don&#146;t know the date, use &#145;0&#146;
    as the DoD.</li>
  <li>If the person died young, use the &#145;<b>mj</b>&#146; tag as a DoD.</li>
  <li><b>#apubl</b> and <b>#apriv</b> control the access : Public or Private. Default is
    nothing, which means &quot;If Titles&quot;.</li>
</ul>

<p>To specify the different types of death, use a prefix character before the DoD :</p>

<table BORDER="1" CELLSPACING="2" BORDERcolor="#000000" CELLPADDING="4" WIDTH="445">
  <tr>
    <td WIDTH="26%" VALIGN="TOP" BGcolor="#808080"><font color="#ffffff"><b><p ALIGN="CENTER">Type
    of Death</b></font></td>
    <td WIDTH="28%" VALIGN="TOP" BGcolor="#808080"><font color="#ffffff"><b><p ALIGN="CENTER">Special
    Character</b></font></td>
    <td WIDTH="46%" VALIGN="TOP" BGcolor="#808080"><font color="#ffffff"><b>Example</b></font></td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">Killed</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">k</td>
    <td WIDTH="46%" VALIGN="TOP">k10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">Murdered</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">m</td>
    <td WIDTH="46%" VALIGN="TOP">m10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">Executed</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">e</td>
    <td WIDTH="46%" VALIGN="TOP">e10/5/1990</td>
  </tr>
  <tr>
    <td WIDTH="26%" VALIGN="TOP"><p ALIGN="CENTER">Disappeared</td>
    <td WIDTH="28%" VALIGN="TOP"><p ALIGN="CENTER">s</td>
    <td WIDTH="46%" VALIGN="TOP">s10/5/1990</td>
  </tr>
</table>

<p>Use <b>#buri</b> to specify a buried person, or <b>#crem</b> for a cremation. The
corresponding date is optional.</p>



<a name="Titles"></a>
== Titles  ==

<p ALIGN="JUSTIFY">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 <b>[]</b>
(Ooops, so much for using brackets as a formatting descriptor&#133;). If there are several
titles, they are just appended one after the other, repeating the brackets pairs.</p>

<blockquote>
  <b><p ALIGN="JUSTIFY">[</b> <i>TitleName</i><b>:</b><i>Title</i><b>:</b><i>TitlePlace</i><b>:</b><i>StartDate</i><b>:</b><i>EndDate</i><b>:</b><i>Nth</i><b>]</p>
  </b>
</blockquote>

<ul>
  <li>Each item is separated by a &#145;:&#146; character. If no information is available, the
    item should be empty.</li>
  <li>The Main Title is marked by using a &#145;*&#146; character as the Title Name.</li>
</ul>



<a name="Notes"></a>
== Notes  ==

<p>Notes are stored separately in the file, between <strong>notes</strong> ... <strong>end
notes</strong> tokens :</p>

<blockquote>
  <b><p>notes</b> <i>LastName</i> <i>FirstName</i>[<b>.</b><i>Number</i>]<br>
  <b>beg<br>
  </b><i>Notes go here in a free format<br>
  </i><b>end notes</b></p>
</blockquote>



<a name="Relations"></a>
== Relations  ==

<p>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.</p>

<blockquote>
  <b><p>rel </b><i>LastName</i> <i>FirstName</i>[<b>.</b><i>Number</i>]<br>
  <b>beg<br>
  - adop:</b> <i>AdoptiveFather</i> <b>+</b> <i>AdoptiveMother<br>
  </i><b>- adop fath :</b> <i>AdoptiveFather<br>
  </i><b>- adop moth :</b> <i>AdoptiveMother<br>
  </i><b>- reco:</b> <i>RecognizingFather + RecognizingMother<br>
  </i><b>- reco fath :</b> <i>RecognizingFather<br>
  </i><b>- reco moth :</b><i> RecognizingMother<br>
  </i><b>- cand:</b> <i>CandidateFather + CandidateMother<br>
  </i><b>- cand fath :</b> <i>CandidateFather<br>
  </i><b>- cand moth :</b><i> CandidateMother<br>
  </i><b>- godp:</b> <i>GodFather + GodMother<br>
  </i><b>- godp fath :</b> <i>GodFather<br>
  </i><b>- godp moth :</b><i> GodMother<br>
  </i><b>- fost:</b> <i>FosterFather + FosterMother<br>
  </i><b>- fost fath :</b> <i>FosterFather<br>
  </i><b>- fost moth :</b><i> FosterMother<br>
  </i><b>end</b></p>
</blockquote>


<br>
<center>Return to [[[diruse/Directions for Use]]]</center>

