What is Gigatrees?

Gigatrees is a genealogy application that will build a complete family tree website from your GEDCOM file, creating static web pages for both offline and online viewing. Gigatrees can also be used to generate standalone reports, including a GEDCOM Validation report, a Data Validation report and a non-integrated Blog.


What are some of its features?

Gigatrees has many unique features. It is mobile friendly, built upon the responsive features of JQuery and Bootstrap 3. Gigatrees will read virtually any GEDCOM 5.5, 5.5.1 or 5.6 file including many vendor specific extensions. It also has built-in support for ANSI, UTF-8 and UTF-16 encoding, as well as ASCII, extended ASCII and UNICODE character sets. Gigatrees is fully configurable. It supports options to allow for full language translations and for data text replacements that together allow family trees to be presented in many written languages. Complete website header and footer substitution is also supported. Additionally, stylesheet overrides, menu bars and plugin extensions allow for creating unique websites, or if you would rather, provide for seamless integration into existing websites and content management systems like WordPress. Gigatrees also has integrated blog support for replacing WordPress when your ready. Gigatrees can be configured to generate pages in either HTML or PHP. It supports webpage metadata, autodetects embedded URLs and allows for embedding HTML into almost any data field. Gigatrees has built in support for many popular vendor specific and Gigatrees-only extensions as well. Gigatrees allows for inserting new GEDCOM records and appending existing records via the configuration file, eliminating in many cases the need to modify a GEDCOM file to add new extensions. Gigatrees supports privacy and living flags, automatic living detection and accurate birth year estimation, allowing for both public and private website generation. Gigatrees has built in support for source categorization, source reference quality, defining evidence models, indicating negative evidence and both automatic and overridden certainty assessments ensuring that you and your visitors understand the accuracy of your claims. Gigatrees also supports several methods for assigning sources to parental associations, providing you to ability to finally provide evidence to back up your biological connections. Gigatrees has a number of other general features, such as the handling of both individual profile photos and source record images. It also autodetects and links URLs in your data, calculates consanguinity between spouses, calculates ethnicity estimates, has advanced date handling allowing it to recognize most non-standard unambiguous date formats, including built in support for British monarch dates. It also has advanced location processing, including the ability to automatically determine the coordinates for every location in your database. Among its many unique report pages are location maps, origin and population heatmaps, data alerts, family tree charts, census tables, ancestor, descendant, kinship, immigrant and nobility lists, event timelines, an autogenerated photo album and a fully integrated blog. Many other features can be found in the documentation detailed below.


Samples, Comments, Blog

If you would like to see an online Gigatree in action, you can visit the author's personal tree where the latest version of Gigatrees is always in use, and implements many of the features available.

Gigatrees' online manual includes a comments section where users can ask questions or leave feedback. It is also used by the author to post tips and general updates. It may be useful for users to occasionally review the comments for additional and new information.

Gigatrees' online manual also includes a blog where the author posts tutorials and other technical articles. It may be useful for users to occasionally review the blog for additional and new information.


Where do I download the application?

Gigatrees is available as a downloadable, standalone, cost and ad free, Windows 64-bit, console application. There is no need to create user accounts or upload GEDCOM files to a server for processing.

Download
GIGATREES 4.1.7


How do I get started?

The installation section include details below on how to install and run the program, but for those who don't have time for all that, and just want to get up and running quickly, all you need do is extract the downloaded file into a folder of your choice, then go to the gigatrees subfolder where the extracted files will be found and double-click on the executable. The application will load the default configuration file (gigatrees.xml) and then ask you for the report type, the file path to your GEDCOM file and the output path where you want your generated pages to be placed. You can also add these directly to your configuration file.


How can I make a donation?

If you use this application and find it useful, please consider supporting it.


License Agreements

The Gigatrees application (gigatrees.exe) is written by Tim Forsythe and is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

Creative Commons License

This license agreement states that you cannot use the Gigatrees application for any commercial purposes, and that when using it for non-commercial purposes, you may not modify it and that you must provide appropriate attribution. Read the full license agreement for more details. The license agreement applies only to the Gigatrees application, not to the web pages generated by the application. The generated web pages may be subject to other third-party end user agreements (See Below).The Gigatrees application may also be subject to the following third-party license agreements, depending on your configuration.

The application generated web pages may use several third-party libraries, including those loaded by the default header and footer.

Most of the third party license agreements allow you to use them for any reason as long as you don't hold the licensor liable. There are a few things worth noting: mapping and translation services prohibit redistribution of their data, so please do not share your gigatrees.sqlite database or your auto-translated files with others; Disqus prohibits certain types of comments including copyrighted material; and Developer Express does not allow using their charts in commercial applications unless you pay a license fee. This may restrict you from making your Statistics page available only to paid subscribers. If that is your intention, consult their license agreement first. The Statistics page can be disabled, and the ChartJs plugin can be removed from your configuration to avoid potential license conflicts.

Your continued use of this application indicates your acceptance of all applicable license agreements.


Error Reporting and Anonymous Statistics

Gigatrees provides two Maintenance options that when enabled will send anonymous data to the Gigatrees server for processing. The SendErrorReports option is used to send information about critical failures such as crash dumps and processing errors to be used in the discovery and troubleshooting of application errors. When applications, such as Gigatrees, are used to take input from a variety of different sources (GEDCOM files), provide multiple configuration options and run remotely, it is necessary to have some method for handling errors.

The SendAnonymousStats is used to send other types of anonymous data. Each time the application is run, performace data, including module timing and memory usage, is collected and can be used in development to optimize future releases. Aggregated GEDCOM tag counts are also collected and are used to discover when new record fields come into usage and which record fields are most commonly used allowing for the enhancement of future releases. Information on the GEDCOM file itself, such as GEDCOM version, revision, encoding, character set and vendor are also collected in order to provide better support for particular versions and vendors. Configuration and feature usage data is also collected in order to understand how the application is being used so that development can procede in the most effective manner. Lastly, general statistics such as those found on a Statistics Page are collected and aggregated with previously collected data.

None of the information collected by the Gigatrees server is personally identifiable. At no point is any GEDCOM data collected or sent.


Installation


Upgrading Gigatrees

Gigatrees does not require the previous version to be uninstalled. Users may copy over their previous installation, however doing so may overwrite previously modified configuration and user files. Instead, users should install Gigatrees into a new folder and then copy over any configuration or user files as necessary. Your previous installation can be uninstalled once you've verified the new installation is functioning properly.


Installing Gigatrees

To install the Gigatrees executable, download the latest version and extract the downloaded file into a folder of your choice. The extracted files will be installed into a gigatrees subfolder. The Gigatrees executable is a standalone program, it does not require a separate installation file nor does it modify the system registry. It should be installed only onto Windows 64-bit operating systems. Besides the executable, the installation includes additional support files.

Directory Structure

\gigatrees\
--gigatrees.exe
--gigatrees.xml
--gigatrees.sqlite
--changes.txt
--en.txt
--lang.txt
--license.txt
--manual.html
--readme.txt
--\assets\
----favicon.ico
----gigatrees-thumb.png
----avatar.png
----image.png
----link.png
----pdf.png
--\plugins\
----...

Folders

\gigatrees\ - the installation folder
\assets\ - contains the asset files (images and icons) used by your web pages
\plugins\ - contains the plugin files (scripts, stylesheets, images and icons) used by your web pages

Files

gigatrees.exe - executable
gigatrees.xml - default configuration
gigatrees.sqlite - default unencrypted location coordinate SQLite3 database
changes.txt - revision history
lang.txt - default display strings
license.txt - license information
en.txt - English translated display strings
manual.html - this file
readme.txt - basic install and setup instructions
favicon.ico - default browser icon
gigatrees-thumb.png - Gigatrees logo thumbnail used on the "About Gigatrees" dialog.
avatar.png, image.png, link.png, pdf.png - default image placeholders

Uninstalling Gigatrees

To uninstall Gigatrees, simply delete the installation folder.


Running Gigatrees

Gigatrees can be run from the command line, a batch file, or for advanced users, a program shell. For extended capabilities, it supports both the use of command-line options and configuration files. When run without any command-line options, it will attempt to load the default configuration file (gigatrees.xml). If the file cannot be found, the application will ask the user to enter the report type, the path to their GEDCOM file and the path for their output files.

The simplest setup is to open the default configuration file (gigatrees.xml), fill in the empty fields ( Required.ReportType, Required.GedcomFile, Required.OutputPath), save it and then run the application (gigatrees.exe) by double-clicking it. For most users, the default configuration does not need to be changed.

Command-line Options

-s             : silent mode (console)
-v             : GEDCOM Validation report type
-a             : Data Validation report type
-g             : Gigatrees report type
-b             : Standalone Blog
-c config1.xml : config file path
-c config2.xml : another config file path
-p plugin      : the name of a plugin to load
-i import.ged  : gedcom file path
-o outputPath  : output path
-l log.txt     : log file path

The options on the command-line are processed in the order they appear with the exception of silent mode and log file, which are always processed first. Processing status is normally directed to the command window. When silent mode is set, no statuses will be sent to the command window. This can be useful to speed up processing when using a command shell. When a log file is specified, processing status will also be redirected to the log file.

The report type can also be specified on the command-line, however only one report type (the last one specified) is permitted.

Multiple configuration files can be specified on the command-line. They are processed in order and can be used to override previously defined options. They can also be used to separate out options when it makes sense, for instance, in the case of inserted blog posts or featured image details.


Translating Gigatrees

All of the display text that Gigatrees generates is translatable. International users can use this feature to translate Gigatrees into their native language. English speakers can use this feature to display alternate text. GEDCOM data is not translated. Users needing to translate the data found in their GEDCOM file will need to use the ReplaceText option instead. Users can translate their web pages either manually or automatically (using a translation service). The installation folder contains two translation files. The first, lang.txt contains only the default display strings. The second, en.txt contains both the default display strings and their associated English translations. The files are delimited by semi-colons (;) with the first column containing the default display strings and the second column containing the translated strings. Neither file is loaded automatically, but must be specified in the Translation section as discussed below. When no input file is specified, Gigatrees will use its default strings. When an input file is specified in the configuration, Gigatrees will generate an alert in the build log if either a default string or a translated string is not found within the file. If an output file is specified, the input file, along with any newly translated strings, will be saved to the file.

Manual Translations

To translate Gigatrees manually, users should copy the lang.txt file to a new file, add the translated strings to this file, set the Translation.InputFile option to the disk path of that file and then run the program.

Automatic Translations

To translate Gigatrees automatically, users will need to use one of the suppported translation services. Gigatrees supports both the for-FREE Microsoft translation service and the for-FEE Google translation service. To use the Microsoft translation service, users must sign-up for a free account at https://datamarket.azure.com and register a dummy application at https://datamarket.azure.com/developer/applications to obtain a valid Client Id and Client Secret. To use the Google translation service, users must sign up for an account at https://cloud.google.com/translate and follow the instructions there to create a dummy application and obtain a valid API Key.

To configure Gigatrees for automatic translations, users will need to set the Translation.EnableService option to true, set either the Translation.MicrosoftService or the Translation.GoogleService option to true, set the Translation.ServiceId to the dummy application id (Microsoft only) and the TranslationServiceKey to the dummy application key/secret. Users will also need to set the Translation.LanguageCode to their preferred language. For a list of Microsoft supported languages and codes see: http://msdn.microsoft.com/en-us/library/hh456380.aspx. To get a list of supported languages and codes from Google see: https://cloud.google.com/translate/v2/translate-reference#supported_languages.

Users will also need make a copy of the lang.txt file and add the disk path of this new file to both the Translation.InputFile and the Translation.OutputFile.

The following example shows how to configure Gigatrees for French translations using the Microsoft translation service. Additional examples can be found in the Configuration Options under the Translation section

<Translation> 
  <InputFile>         fr.txt      </InputFile>
  <OutputFile>        fr.txt      </OutputFile>
  <EnableService>     true        </EnableService>
  <LanguageCode>      fr          </LanguageCode>
  <MicrosoftService>  true        </MicrosoftService>
  <GoogleService>     false       </GoogleService>
  <ServiceId>         12345abcde  </ServiceId>
  <ServiceKey>        12345abcde  </ServiceKey>
</Translation>

When Gigatree runs, it will read in the default strings from the Input File file and for any (initially, all) missing translations it will query the translation service requesting a translation string using the Language Code specified. When finished, it will save the results to the Output File. On any error, it will stop querying the service and log an error. Automatic translations, especially on incomplete sentences, can be wonky at times. Users may want to make additional manual modifications to their Input File.


Integrating Gigatrees

The following settings can be used to integrate Gigatrees into a self hosted WordPress blog. Other blogs should work similarly. The Extension must enable the Extension.PHP option by setting it to true and disable the Extension.Linked option by setting it to false. If not using a MenuBar, it will need to be disabled by setting the MenuBar.Enable option to false. If using a MenuBar, the MenuBar.Enable option should be set to true, and the MenuBar.Fixed option should be set to false so that it does not interfere with the blog's header. The Metadata.Header and Metatdata.Footer will also need to be modified to load the blog's header and footer metadata. This can be done directly in the configuration file or added as plugins. In addition, all existing plugins should be removed from the default configuration file, gigatrees.xml so that they do not interfere with the existing blog's functionality.

WordPress Blog

This WordPress example assumes that WordPress is installed in the website's root folder and the wordpress subfolder, and that a floating menu bar is being used. Note that double brackets must be used to embed HTML open and close tag indicators.

<Extension>
  <PHP>    true  </PHP>
  <Linked> false </Linked>
</Extension>

<MenuBar>
  <Enable> true  </Enable>
  <Fixed>  false </Fixed>
</MenuBar>

<Header>
  [[?php
    require_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-load.php');
    get_header();
  ?]] 
</Header>

<Footer>
  [[?php
    get_footer();
  ?]]
</Footer>


Plugins

Gigatrees supports using external plugins. Gigatrees comes preinstalled with several.

Installing Plugins

To install additional plugins, add them to the install's plugin folder to have them copied automatically to the Required.OutputPath's plugin folder when running the application, or add them to the Required.OutputPath's plugin folder directly.

Once a plugin folder has been copied, use the Plugin option to add the plugin to your configuration.

Creating Plugins

To create a new plugin, create a folder using the name of your plugin. Inside that folder create a plugin.xml file and include any necessary configuration options. Generally, plugins make use of the Metadata.DropHeader and Metadata.DropFooter options to insert scripts and stylesheets associated with the plugin into the default or configured Metadata.Header and Metadata.Footer. Specialized PHP code can also be dropped into these places. Additional support files can be put anywhere inside the plugin folder or in subfolders. The %PluginsPath% substitution macro can be used to access the relative path of the plugin folder. Review the default configuration file and existing plugins for examples.


GEDCOM Extensions

Gigatrees supports a number of vendor specific GEDCOM extensions that can be used to extended the capabilities of that provided by the GEDCOM standard. Extensions include many of those found in Ancestry.com trees, Family Tree Maker, RootsWeb and other genealogical applications as well as those supported by Gigatrees only. The following sections detail the extensions currently supported.

Handling Privacy

When publishing family trees, privacy is an important consideration. Information about living persons and source material that might still be under copyright are two examples of sensitive information that should not be published online. The most common method for keeping this information private is to use a genealogy application to strip private data before building a family tree. This is generally overkill and may hide more data than is necessary. It also might not capture all private data when doing so. A more secure method is to use privatization flags that indicate exactly which records and fields should be privatized.

Gigatrees supports several methods for adding privatization flags to your database. The flags take effect when either the Security.HideLiving or Security.Privatize options have been enabled. The first method uses a generic set of GEDCOM tags that can be added as a record field, but in most cases require users to be able to add these to their GEDCOM file directly. This is great for Family Historian users, but users of other applications may not be able to add these. The second method is to use the AppendRecordField option in the configuration file to append privacy flags to logical records. This method does not modify the users' file, however it only works on logical records, and cannot be used the add privacy flags to logical record fields. The third method allows privacy flags to be added to any record or field, by embedding the flag into record data. This method is supported by virtually all genealogy editors, but requires users to add Gigatrees specific text to their database, which might not be recognized and/or stripped by other applications. Users will need to decide which method works best for them.

Adding GEDCOM Extensions

Gigatrees supports four different flags (and their vendor specific alternates): _LIVE, _SHOW, _HIDE and _PRIV..

The first of these, _LIVE allows you to add a living flag to living person in your database

0 @I1@ INDI
1 _LIVE true

As shown in the example, privacy flags must be added as subfields to the records where they apply. In this case, the living flag is applied to the individual's logical record. When a person is flagged as living, Gigatrees will change their name to HIDDEN _____ and all claims and source references associated with that person are deleted, with the exception of their parental links. This ensures your tree will retain the placeholders for living persons, while keeping their data private. If you have configured Gigatrees to estimate birthdates, adding living flags will generally not be necessary. When missing birthdates have been estimated, Gigatrees is very effective in determining whether or not a person is living based on the vital statistics of their family members. In those rare instances when Gigatrees cannot calculate a birth date, having manually entered a living flag will ensure that the individual is privatized.

Vendor Specific Alternates: LVG, LVNG, _FLGS.__LIVING, ATTR Living, _LIVING Y.

If, on the other hand, you explicitly want to show details for a living person, such as yourself, you must force them to be displayed. To do this, simply add a _SHOW flag to those individuals

0 @I1@ INDI
1 _SHOW true

This will result in the living flag and any calculated living states to be ignored so that the flagged person's details are included in the tree. It is likely that you will only want to do this for a very few persons.

It is also likely that when you force a living person's details to be shown, there will be some details that should still be kept private, their birth date comes to mind. To do this you must add a private flag.

0 @I1@ INDI
1 _LIVE true
1 BIRT
2 DATE 1 JAN 2000
2 PLAC Chicago, IL
2 _PRIV Sensitive

All private records and their fields are completely stripped when generating a tree. In the case of this example, the entire birth record is omitted. Private flags can be added to any record or field, so, for instance, in the next example, only the date is stripped, not the location.

0 @I1@ INDI
1 BIRT
2 DATE 1 JAN 2000
3 _PRIV Sensitive
2 PLAC Chicago, IL

The privacy flag can be used to hide other types of data as well such as copyrighted material.

0 @S1@ SOUR
1 TITL Title Goes Here
1 TEXT Copyrighted text goes here
2 _PRIV Copyrighted

The privatization qualifiers, "true", "Sensitive" and "Copyrighted" are ignored by Gigatrees.

Vendor Specific Alternates: _FLGS.__PRIVATE, _CONF_FLAG.

Lastly, Gigatrees supports a hidden flag that can be placed, like the private flag, in any record or field to hide it under all circumstances, even if the Security.Privatize option is not enabled. This is useful if you have todo lists, research notes, or private claims that you never want displayed anywhere.

0 @I1@ INDI
1 SSN 123-456-7890
2 _HIDE true

Vendor Specific Alternates: _EXCLUDE

Configuring Privacy Flags

Gigatrees supports configuring privacy flags using the AppendRecordField option for those users whose genealogy applications do not allow for adding GEDCOM extensions.

<AppendRecordField> 
  <RecordId> I1    </RecordId> 
  <Tag>      _LIVE </Tag> 
  <Value>    true  </Value> 
</AppendRecordField>
<AppendRecordField> 
  <RecordId> I1    </RecordId> 
  <Tag>      _PRIV </Tag> 
  <Value>    true  </Value> 
</AppendRecordField>
<AppendRecordField> 
  <RecordId> I1    </RecordId> 
  <Tag>      _HIDE </Tag> 
  <Value>    true  </Value> 
</AppendRecordField>
<AppendRecordField> 
  <RecordId> I1    </RecordId> 
  <Tag>      _SHOW </Tag> 
  <Value>    true  </Value> 
</AppendRecordField>

Embedding Privacy Flags

Configuring privacy flags only works on logical records directly. It does not work on subfields. To support this, Gigatrees allows embedding the _PRIV. and _HIDE. flags as {gigatrees:private} or {gigatrees:hide} in the data text associated with the field. For instance, the flag could be added to a NOTE record or a custom EVEN record. When an embedded flag is found, it is stripped from the data text so that it does not appear in your family tree.

Ancestry.com trees do not allow for adding GEDCOM extensions, so it is useful here to describe how embedded privacy flags can be used with an Ancestry.com tree for individual events. The easiest way to add the privacy flag to a fact or event is to put it in the Description field. The will be exported as

1 BIRT {gigatrees:private}

Since the flag appears as a field of the Individual record and not of the Birth subfield, and since there is no reason to add a privacy flag to the individual (a living flag is better served for individuals) an exception has been added for Ancestry.com trees, to hide the Birth record instead.


Defining Parental Associations

By far, the most important claims in genealogy, and the ones needing the most documentation, are the biological links between children and their parents. Gigatrees uses parental association records and their source references to determine the certainty status for biological links. Unfortunately, the GEDCOM standard does not provide a good method for handling these claims. The only supported record types they provide are the Pedigree Linkage Type (PEDI), which provides built in predefined relationship fields, but does not allow you to link a source to the record, and the ASSO record, which does allow for referencing sources, but does not have built in predefined relationship types such as "mother" or "father". Several vendors support other relationship records such as Family Tree Maker's _FREL and _MREL tags, but like the Pedigree Linkage Type record, these do not allow for source references.

Gigatrees supports parental associations using all these methods. The Pedigree Linkage Type must be set to birth for it to be treated as a biological relationship of both parents.

0 @I1@ INDI
1 FAMC @F1@
2 PEDI birth

The _FREL and _MREL tags must have values of Natural or Biological.

0 @I1@ INDI
1 FAMC @F1@
2 _FREL Natural
2 _MREL Natural

The ASSO record must set its RELA field to either "AssociatedFather" or "AssociatedMother". The translating option can be used to change these strings to something more preferrable, such as "father" and "mother".

0 @I1@ INDI
1 ASSO @I2@
2 RELA father
2 SOUR @S1@
1 ASSO @I3@
2 RELA mother
2 SOUR @S1@

Gigatrees also supports leaving the RELA field blank, or leaving it off altogether, which in either case will assume a parental association. Any other text in the RELA field will indicate a non-parental association.

Configuring Parental Associations

Users must rely on vendor support to use any of the above methods to define parental associations, and only the ASSO.RELA option allows for adding sources. Unfortunately, most vendors do not support this option. Gigatrees provides a method that will work for everyone, no matter which application they use. Gigatrees defines new parental association source reference and source reference certainty GEDCOM tags that can be set via the configuration file to provide evidence for the linked primary parents. The new tags, 1 _MREL_SOUR, 1 _MREL_CERT, 1 _FREL_SOUR, 1 _FREL_CERT can be added to any existing individual record by using the AppendRecordField option. If you have defined your source categories, then the 1 _MREL_CERT and 1 _FREL_CERT tags are only necessary if you need to override your certainty assessments.

<AppendRecordField> 
	<RecordId>I1</RecordId> <Tag> _FREL_SOUR </Tag> <Value> @S1@ </Value> 
</AppendRecordField> 
<AppendRecordField> 
	<RecordId>I1</RecordId> <Tag> _FREL_CERT </Tag> <Value> reported </Value> 
</AppendRecordField> 
<AppendRecordField> 
	<RecordId>I1</RecordId> <Tag> _MREL_SOUR </Tag> <Value> @S1@ </Value> 
</AppendRecordField> 


Defining Source Categories

Gigatrees supports a number of different options for categorizing your sources. When defined, source categories are shown with the meta data for each source page, as well as in the tooltips for every source reference. They are also shown on the sortable source index page. The purpose of defining source categories is to help determine the possible types of bias that may overshadow the claims the source makes. Source categories are used internally by Gigatrees to help calculate certainty assessments. The Genealogy Proof Standard (GPS) defines two types of source categories, referred to here as 'concurrency' and 'authority'. Source concurrency includes primary and secondary, where primary represents that the document was created at the time of the recorded events (such as a birth certificate), and secondary represents that the document was created some significant amount of time after the events occurred (such as a transcription of a birth certificate). Source authority includes both original and derivative, where original represents a document in its original form (such as a birth certificate) and derivative is a collection of claims derived from multiple primary and secondary sources (such as a town history). Claims that are both primary and original are generally considered to be unbiased, though not necessarily without error. Secondary sources may suffer memory bias due to a time lapse occurring between the event and the recording as well as from copy errors. Derivative sources may also suffer from these as well as author bias, intentional or otherwise. All sources may contain lies. From experience we know that certain type of records are more accurate and have less bias than others. For instance, birth certificates (original, primary) almost never have incorrect birth dates. Baptism records (original, secondary), even those recorded within just a few months of birth, may contain incorrect birth dates caused by memory lapses of the mother, as astounding as that seems. Death certificates and tombstones (original, secondary), which usually occur many years after birth and the informant is generally not the mother, often contain incorrect birth dates. Census records (original, primary) are notorious for having inaccurate ages due to the fact that the informant was more than likely a spouse of the head of household, and who, especially early on, had little formal education resulting in subtraction errors or simply guesswork. Had the census authorities required birth years instead of ages, they would probably be much more accurate. Census records, however, are very accurate for documenting parental relationships, so there you go. Categorizing sources can be very tricky and is sometimes more art than it is science. Gigatrees therefore allows users to not only categorize their sources, but to also override those source categories for individual claims when necessary. The following section explain the different methods that are supported by Gigatrees for adding source categories.

RootsWeb Support

Gigatrees supports source categories for those who use RootsWeb to enter their GPS fields. In RootsWeb, GPS fields are entered as part of the source reference and only use the capitalized first letter of the category, for instance, in the following example, "O" is an abbreviation for original and "P" is an abbreviation for primary

0 @I1@ INDI
1 BIRT
2 DATE 7 FEB 2014
2 SOUR @S1@
3 _QUAL
4 _SOUR O
4 _INFO P

Gigatrees will use the first reference for a source found with a _QUAL field to define the source's category, and ignore all other GPS fields in all other source references to the same source. It is assumed that they are all identical.

Adding GEDCOM Extensions

For all users, Gigatrees supports adding user defined source categorization fields to each source record using the vendor specific source quality (_QUAL) tag. The tag can be used to add either or both a source authority and a source concurrency category. Gigatrees also allows users to use the source type field (@SOUR.TYPE or @SOUR._TYPE) instead. The source quality tag supports several string values that extend the GPS categories to provide better bias resolution

Source Authority: "dna", "original", "transcript", "copy", "abstract", "research", "memoir", "derivative" and "unknown"

Source Concurrency: "primary", "secondary" and "unreliable"

The source category strings are translatable so that users can use strings in their own language.

When adding a source containing yDNA or mtDNA test results that prove a biological relationship, the dna category should be used. It would be inappropriate to use this for autosomal DNA test results unless those results were combined with an in-depth analysis showing why they could be used as proof. original represents a document in its original form. primary represents that the original document was created at the time the event occurred, and secondary is anything otherwise. transcript is a direct unaltered transcription of an original source. copy is a subsequent copy of a transcription or of another copy (i.e. copy of a copy). abstract is any abstraction or summary of the original source (not in its original form). research is an authoritative collection of claims derived from multiple sources. In order for the collection to be considered authoritative, the researcher or genealogist should have included the relevant source citations. memoir is a collection of authoritative claims taken from memory, such as an autobiography, letters, notes, etc. derivative is a non-authoritative collection of claims derived from multiple sources. This will include most books, town histories, etc. unknown is a source from which no information as to its authority can be determined, and Finally, unreliable is a source that is known to be non-authoritative and error prone.

For many sources, multiple source categories might apply. When determining the appropriate source category to use, you should choose the least authoritative category that applies to the claims being extracted from it. For instance, if you have a source that includes scans of original documents, along with some memoirs and derivatives, but you are only using the images of the original documents from that source, they you can rightfully choose original as your source category. If however you include claims from the other areas of the source, then you should choose a different source category. A serious genealogist might, in this case, split their single source up into several source entries, each with their own category.

0 @S1@ SOUR
1 _QUAL original

Configuring Source Categorization Flags

Gigatrees also supports configuring source categories using the AppendRecordField option for those users whose genealogy applications do not allow for adding GEDCOM extensions. These work similarly to the flags described above.

<AppendRecordField> 
  <RecordId> S1         </RecordId> 
  <Tag>      _QUAL      </Tag> 
  <Value>    transcript </Value> 
</AppendRecordField>

Handling Source Metadata

Gigatrees supports three methods for capturing source metadata, including RootsWeb's template field for both source records and source reference fields, and other standalone GEDCOM and vendor specific source record fields.

Source Record Templates

RootsWeb implements a vendor specific source template field to define free-form name/value pairs. Users can implement these manually as well. Gigatrees will read these pairs and display them in the source header of the source page. Source templates display layouts are not supported. Virtually any name/value pair can be used. For instance, RootsWeb's uses many, including Bibliography, Footnote, ShortFootnote, Author, SuplAuthor, SuplRole, Title, SubTitle, PubPlace, Publisher, PubDate, OrigPubPlace, OrigPublisher, OrigDate, Creator, Periodical, SocietyInfo, Volume, Edition, PageRange, Remarks, Jurisdiction, County, District, Volume, Folder_Box, Series, AgencyRecords, Collection, Repository, RepositoryLoc, DatabaseTitle, ItemType, WebsiteOwner, WebsiteTitle and URL. URLs are automatically hyperlinked.

A typical name value pair might look something like the following:

0 @S1@ SOUR
1 _TMPLT
2 FIELD
3 NAME Bibliography
3 VALUE "United States Census, 1930," index and images, <i>FamilySearch</i> (ht
2 CONC tps://familysearch.org/pal:/MM9.1.1/XSG2-SRJ : accessed 28 Dec 2013), C
2 CONC hicago (Districts 0751-10020), Cook, Illinois, United States; citing en
2 CONC umeration district (ED) 0972, sheet , family 53, NARA microfilm publica
2 CONC tion.

Source Reference Field Templates

RootsWeb implements the same template field for source references as well, including Page, Author, Title, PostDate, AccessType, AccessDate, SpanRead, Annotation and ItemOfInterest. When Gigatrees discovers the Page item, it will use it value for the source reference page number if not otherwise defined. Source reference items are shown only in source reference tooltips.

A typical name value pair might look something like the following:

1 SOUR @S1@
2 _TMPLT
3 FIELD
4 NAME Page
4 VALUE p. 108

Source Record Fields

Gigatrees also recognizes several GEDCOM and vendor specific source record fields that can also be used to define source metadata. These include the GEDCOM TITL, ABBR and PUBL fields, as well as the vendor specific _SUBQ, _BIBL, EDTN, LOCA, TYPE, _TYPE, MEDI, _MEDI, DETA, and _OTHER fields.


Certainty Assessments

When publishing a family tree it is useful for visitors to be able to quickly and accurately assess the validity of the claims being made. Gigatrees automatically calculates the certainty assessment for every claim using several pieces of data including, the source category defined for the referenced sources, the source reference quality (QUAY) defined within the source references for the claim, and the Source Type defined within the source itself. Gigatrees will display the calculated certainty assessment alongside each claim. Gigatrees also supports manually setting the certainty assessment for claims.

Gigatrees defines numerous levels of certainty.

"unsupported", "estimated", "unreliable", "uncertain", "proposed", "reported", "supported", "probable", "certain", "questionable", "proven" and "impossible".

When multiple sources are referenced for a claim, the source with the best quality is used. If no source reference is found for a claim, the certainty assessment will be set to unsupported. If a source reference is found for a claim, but no source or source reference quality is defined, the certainty assessment will be set to uncertain. If the claim is an estimated (calculated) birth year, the certainty assessment will be set to estimated.

Overriding Certainty Assessments

On occasion, the calculated certainty assessment may be inappropriate for the claim being made. This can be caused by improper source categorization or failure to reference all the available sources. It can also be caused by a reliable source making a unreliable claim. To override these, Gigatrees supports setting the certainty assessment manually by adding the _CERT tag to any claim.

Vendor Specific Alternates: _PROOF

0 @I1@ INDI
1 BIRT
2 DATE 1 JAN 1900
2 _CERT proven

Overriding certainty assessments is the only method for directly indicating impossible claims, a term referred to by the GPS as negative evidence.

The certainty assessment strings are translatable so that users can use strings in their own language.

Order of Precedence

When displayed, claims always show to "best" assessment, which implies an order of precedence. In general the order of precedence always degrades from the most certain to the least certain. As shown in the table below, the are four GEDCOM data fields that affect order, the certainty assessment override field (_PROOF) described above, the presence of a source reference (SOUR@) for the claim, the source category (_QUAL), and the source reference quality (QUAY) as defined in the GEDCOM standard. Note that not all of the defined certainty assessment strings described above will be automatically determined, but can still be set using the certainty assessment override tag.

To prevent Gigatrees from making exaggerated certainty assessment determinations, sources that contain multiple types of evidence, should be set the source category to the quality associated with the least reliable evidence. Users can also break up their source into multiple sources, one for each type of evidence.

An "x" indicates that a field must be present. An empty field indicates the the value of the field has less precedence or does not matter.

_PROOF      SOUR@  _QUAL       QUAY  certainty
------      ----   -----       ----  ---------
                                     estimated [calculated]
impossible                           impossible
[value]                              [value]
            x                  0     questionable
            x      dna               proven
            x                  3     certain
            x      primary           certain
            x      original          certain
            x                  2     probable
            x      secondary         probable
            x      transcript        probable
            x      copy              probable
            x      abstract          probable
            x      research          supported
            x      memoir            reported
            x                  1     proposed
            x      derivative        proposed
            x      unknown           uncertain
            x      unreliable        unreliable
            x                        [see Source Types]
            x                        uncertain 
                                     unsupported

Source Types

When there is no other information available to determine the certainty assessment, Gigatrees makes one last ditch effort by looking at source's type (@SOUR.TYPE or @SOUR._TYPE) field. This is a non-standard GEDCOM field, but is used by several popular genealogy applications. This is also the preferred method for some users. The SourceType configuration option can be used to define source types, and which source category will be associated with which type of source. Valid source categories names must be used.


Defining Evidence Models

When using a source as evidence for a claim, it is useful to distinguish whether the source is making a direct claim or is indirectly supporting a conclusion. The Genealogy Proof Standard refers to these two models respectively as "direct" and "indirect". By default, source references indicating direct evidence are displayed in green with "Direct evidence for claim" shown in its tooltip. References indicating indirect evidence are displayed in purple and show "Indirect evidence supports this conclusion" in its tooltip. As with source categories, Gigatrees supports three options for defining evidence models.

Gigatrees supports the _EVID tag for every source reference. String values of direct and indirect are supported. Additionally, the abbreviations D and I are supported. For example, a source that makes a direct claim would be

0 @I1@ INDI
1 BIRT
2 DATE 7 FEB 2014
3 SOUR @S1@
4 _EVID direct

Gigatrees also supports RootsWeb version of the same flag, but located under the quality field

0 @I1@ INDI
1 BIRT
2 DATE 7 FEB 2014
3 SOUR @S1@
4 _QUAL
5 _EVID D

Gigatrees also supports embedding the evidence model into the source reference's NOTE or PAGE field to hold the GPS evidence model fields {gps:direct} or {gps:indirect}.

0 @I1@ INDI
1 BIRT
2 DATE 7 FEB 2014
3 SOUR @S1@
4 NOTE {gps:direct}

As with source category fields, the field is stripped from the note or page so that it is not shown in family trees.

Defining Negative Evidence

The Genealogy Proof Standard refers to evidence that has been disproved or that is impossible as "negative" evidence. Impossible claims are no longer considered when calculating birth date estimates, and improbabilities. Impossible claims are also highlighted on profile pages making it clear to all visitors that the claim is known to be false. Most genealogy programs have no way of indicating that a claim has been disproved, so genealogists are usually forced to delete disproved claims from their databases. This is an unfortunate practice that should not be necessary. Disproved claims should be accompanied by source references and text explaining why the claim is not to be false.

Gigatrees supports two methods for defining negative evidence. Users can override any calculated certainty assessment using the n _PROOF impossible tag as described earlier.

0 @I1@ INDI
1 BIRT
2 DATE 1 JAN 1900
2 SOUR @S1@
2 _PROOF impossible

Users can also use the built in GEDCOM tag for source reference quality (QUAY) and set it to 0. Some users may set their source reference quality to 0 for other than impossible claims, so Gigatrees will display a questionable certainty assessment. Users who only use this tag for impossible claims may want to use the translate feature to manually replace the questionable display text with impossible.

0 @I1@ INDI
1 BIRT
2 DATE 1 JAN 1900
2 SOUR @S1@
3 QUAY 0


Photo and Image Handling

Gigatrees includes special handling of profile photos for individuals as well as other images for sources, source references and events. Profile photos will be included on both the Photos page and on individual profile pages when the path to the photo is browsable. Other types of images are included on the source pages if they are defined or referenced by a source, and appear elsewhere otherwise. Details for photos and images are included on their tooltips. On the Photos page hover over an image to view the tooltips. Click on any of the links that appear in the tooltips to view the photo on the person's profile page, and click on any photo to view it using the FancyBox plugin that is loaded in the default Metadata.Header.

Gigatrees recognizes several methods for defining photos and images along with vendor specific GEDCOM extensions for each.

Multimedia Records

Profile photos are defined by configuring a multimedia logical record (OBJE) and then referencing that record by an individual or family, or by defining an embedded multimedia record (OBJE) as part of an individual or family. When multimedia records are defined or referenced as part of a family, they will be included in the profile photos for the family's husband and wife only, not their children. Multimedia records support the GEDCOM tags: "FILE", "FILE.TITL" and "TITL". The file path can be set using either an absolute disk path, an absolute web path or a relative path. If the path does not end in a browsable photo extension ("png", "jpg", etc.) it will be interpreted as a URL instead.

Gigatrees supports several optional vendor specific mutlimedia record fields including:
_PHOTO - used instead of the "OBJE" when embedding photos or images
_FILE - used instead of the "FILE" field to include the path to the photo image
_TITL - used instead of the "TITL" field to include a photo title
_PIC - used to include the path to the thumbnail image if there is one
_CAP or _CMNT - used to include a caption
_SUBM - used to include submitter information
_NOTE - used instead of the "NOTE" field to include photo notes
_PLAC - used to include photo location information
_DATE - used to include photo date information.

The above tags can also be added to your GEDCOM file, or if you prefer, without modifying your GEDCOM file by using the AppendRecordField option.

The following example shows a configuration for a complete profile photo using multimedia logial record. The "FILE" field is the only one required.

0 @O1@ OBJE
1 FILE c:/folder/pics/walt.png
1 TITL Walt Makes a Funny 
1 _PIC c:/folder/pics/thumbs/walt-thumb.png
1 _CAP Photo of my Uncle Walt
1 _SUBM my father
1 _NOTE This photo was taken back east and is undated
1 _PLAC New York
1 _DATE abt 1920

Custom Event Records

When using a genealogy editor, like Ancestry.com, that does not include extensions for their photo and image links, profile photos can be defined by creating a custom event with the event description ("TYPE") set to "Photo". A thumbnail can be optionally be included in the "PLAC" field. Ancestry.com adds a thumbnail automatically when creating a custom event where a photo is linked. The example shown uses an absolute web path.

0 @I1@ INDI	
1 EVEN http://domain.com/pics/walt.png
2 TYPE Photo
1 PLAC http://domain.com/thumbs/walt-thumb.png

In the above example, the vendor specific _PLAC field can be used instead of the PLAC field.

URLs

Source images can be defined using a multimedia record as described above or by using a "URL" tag with a path having an image browsable extension. Other types of extensions are treated as URLs. The vendor specific "_PIC" and "_TITL" fields are supported. The example shown uses relative paths.

0 @S1@ SOUR	
1 URL /folder/pics/1790-census-ny-ny-ny.png
2 _PIC /folder/pics/thumbs/1790-census-ny-ny-ny-thumb.png
2 _TITL 1790 U.S. Federal Census, New York City, New York, New York

In the above example, "WWW", "_URL", "_WEB", and "_LINK" tags can be used in place of the "URL" tag.

Web Tags

The _WEBTAG record is also supported for defining source images. Web tags use the "NAME" field for the image title, and the "URL" field as described above.

0 @S1@ SOUR
1 _WEBTAG
2 NAME Photo of my Uncle Walt
2 URL c:/folder/pics/walt.png
3 _PIC c:/folder/pics/thumbs/walt-thumb.png

Adjusting the Path

Gigatrees includes in the configuration three separate path fields, WebPaths.ProfilePhotos, WebPaths.SourceImages and WebPaths.Thumbnails. The strings you configure in these path fields will be prepended to paths found in your GEDCOM file. So for instance if you wanted to view the images containing an absolute disk path ( c: ) in an offline tree, you would add file:// to each of these path options. This would allow your absolute paths to be viewed in a browser. You will need to make sure that the Security.HideLocalLinks option is disabled, it comes pre-enabled in the default configuration file. If your GEDCOM file uses relative paths like "/folder/pics/walt.png", and they were included in an adjacent folder, for example, then you could add file://.. to the paths to make them viewable offline. If you were using relative paths and were viewing your images in an online tree, then http://domain.com/path/to/photos could be used in the path options to remap them for viewing. If, on the otherhand, you need to remap absolute paths, then you would need to use the ReplaceText option to strip your absolute path making your paths relative. i.e.

<ReplaceText> 
  <Text>    c:/folder/pics </Text> 
  <Display> /folder/pics   </Display> 
</ReplaceText> 

Depending on how unique the absolute paths in your GEDCOM file are, you may be able to leave the path options empty and do all the remapping using the ReplaceText option. If you are publishing your tree online and cannot or do not want to remap your local photos, then you can enable the Security.HideLocalLinks option to remove all absolute links to both photos and URLs. Relative paths will not be affected by this option. It may be best to use absolute paths in your GEDCOM file so that you can more easily decide to later to either remap them or hide them.

Forcing Thumbnails

When thumbnails are not provided, default images are used instead. The default images are located in the installation's assets folder. Users can replace these if desired. Gigatrees provides a Misc.ForceThumbnails option that will, when enabled, hotlink the original image as its own thumbnail. No thumbnail files are created, the original images is simply shown with reduced dimensions. If you have many images on a page, this can result in slow page load speeds since each original photo must be loaded. This option does not effect profile photos as they are always hotlinked to forced thumbnails when no thumbnail is present.


Defining Articles

Whenever the vendor specific "_TITL" field if found under a "NOTE" or _BLOG logical record, Gigatrees will treat it as an Article or blog post. By default, article filenames are automatically generated from the title to create seo friendly URLs. The default filename can be overridden by defining an optional "_SLUG" field. Standard NOTE record fields are supported. Here is a complete lists of Article extensions.
_TITL - allows you to specify a title for your article.
_SLUG - allows you to override the default filename.
_DATE - allows you to specify a publication date.
_TIME - allows you to specify a publication time.

_MOD - allows you to specify a modified date.

_MODT - allows you to specify a modified time.

_AUTH - allows you to specify an article author. Only 1 author is permitted.
_ABST - allows you to include an abstract to display on the index page along with the Article's title.
_FEAT - allows you to define a featured image for each Article.
_PIC - allows you to define a thumbnail for the featured image.
_SUBM - allows you to provide credit for the featured image.
_CAT - allows you to specify a category for the article. Only 1 category is permitted.
_KEY - allows you to specify meta keywords for the article. These will be used to replace the %Keywords% in the header. Multiple keywords should be delimited by commas.
_TAG - allows you to specify a hash tag outside of article content. When doing so, spaces are allowed. Multiple _TAG elements are allowed.
_FLAG - allows you to specify article specific flags. The following flags are supported: SkipFeed (excludes post from feed), SkipFeedContent (excludes post content from feed), and HidePostImage (hides post image on post page)

When articles are defined, Gigatrees will create index pages in the form of a typical and simple blog. Gigatrees supports pagination on the index pages, and allows embedding HTML tags into the text of articles. It will also auto hotlink all URLs it finds in the text. For complete traceability, source references ("NOTE.SOUR@") are linked to their sources, and the referenced source pages link back to the article pages referencing them. Gigatrees also support tagging. Whenever Gigatrees finds a pound sign (#) followed by text, it will flag it as a hash tag. Dashes in hash tags are converted to spaces when displayed. Separate index pages are created for each hash tag, category and author found in your Blog. Hash tags in your text are automatically hotlinked to their index pages. The category and author are also linked at the top of your article pages and on the index pages, and the hash tags are linked at the bottom. In addition, the author, category and hash tag index pages are listed and linked at the bottom of the main index below the pagination element. When Disqus is enabled, your Article pages will also include at the bottom of the page a complete commenting system.

By default, article indexes are sorted by reverse publication date. Gigatrees also supports a Blog.ModifySort option to sort indexes by reverse modified date, and a Blog.IdSort option to sort indexes by reverse record id. Since record ids are generally assigned in numerical order, sorting by id is the same as publication date with the added benefit that you can manually adjust your record id to force a particular sorting order. You can for instance set an article that you want to be sticky a record much larger than all the others.

By default, publication and modified dates are shown in long format (i.e. January 12, 2001). Gigatrees supports a Blog.ShortDates option to force showing the dates in short format (i.e. Jan 12, 2001).

Gigatrees allows users to specify an abstract to display on the index page along with the Article's title. When no abstract is specified, one will be created automatically from post content. The length of the auto generated abstract is controlled by the Blog.AutoFeedAbstractLength option. HTML tags are stripped from all abstracts.

Users can also control the filename prefixes and suffixes for article, author, category and tag index lists and pages using the Blog.CategoryFilenamePrefix, Blog.TagFilenamePrefix, Blog.AuthorFilenamePrefix and Blog.ListFilenmeSuffix. Users can also append the category to the article title on page headers and filenames when setting the Blog.PrependCategoryToTitle option.

Gigatrees supports featured images for articles, however sometimes it is inconvenient to find an locate an appropriate image for out articles. Gigatrees supports adding multiple generic featured images using the Blog.FeaturedImage and Blog.FeaturedCredit options that will be assigned randomly when none is defined so that you never have a missing image.

Gigatrees does not require GEDCOM concatenation tags to extend data lines nor GEDCOM continuation tag to add line breaks. Gigatrees does not put limits on line length, and it treats all carriage returns (or newlines) found in article text, as well as anywhere else in GEDCOM data as HTML break characters. This allows users to create stand alone blogs by adding GEDCOM _BLOG records to an empty text file and then loading the file as their Required.GedcomFile. This is exactly how the Gigatrees Blog was built. Stand alone blogs can also be created by adding _BLOG records during configuration using the InsertRecord option. Although this method requires all HTML tags to be converted to using double brackets. Unexpected line breaks can occur in articles when GEDCOM continuation tags are not present because when embedding HTML tags within GEDCOM data, many such as header, page, and blockquotes have implied line breaks built into their opening and close elements. To minimize these unexpected breaks, users generally need to butt their HTML tags up against one another rather than putting them on separate lines. Gigatrees has a new Misc.CleanLineBreaks option that will convert multiple breaks to single breaks, and remove extra breaks around some of the more common HTML opening and closing tags. When this option is enabled, users can still force extra breaks by adding the HTML non-breaking space characacter entity (&nbsp;) to a blank line. Also when not using GEDCOM continuation tags, lines cannot begin with a "1", because they may be treated as a level 1 subfield of the record and then discarded because the line's arbitrary tag will not be supported. In those rare cases, the "1" should be preceded by a non-breaking space characacter entity as well. Using the Misc.CleanLineBreaks option allows large complex articles embedding HTML to add extra blank lines between HTML sections for improved readability.

Having built in Blog support has several advantages. Firstly, it allows you to include in your GEDCOM file all your genealogy research and proof arguments so that they remain affixed to your genealogy data at all times so can never be lost. Secondly, Gigatrees will include at the bottom of your article all referenced sources so that your visitors can follow along with your research.

Below is the typical format for an Article

0 @N1@ NOTE In the days of yore, ...
1 _TITL The Jones' Family History
1 _AUTH Jackie Jones
1 _DATE 1 Jan 2001
1 _SLUG the-jones-family-history
1 _ABST The article discusses the history of the Jones Family of Bohemia.
1 _FEAT /photos/n1.jpg
1 _PIC  /photos/n1-thumb.jpg
1 _SUBM Photo provided by <a href="http://jeffjones.com">Jeff Jones</a>
1 _CAT  Family History
1 SOUR  @S1@

Users whose Genealogy applications do not allow adding vendor specific fields to NOTE records can use the AppendRecordField option to insert them on the fly.

<AppendRecordField> 
  <RecordId> N1 </RecordId> 
  <Tag> _TITL </Tag> <Value> The Jones' Family History    </Value>
  <Tag> _AUTH </Tag> <Value> Jackie Jones                 </Value>
  <Tag> _DATE </Tag> <Value> 1 Jan 2000                   </Value>
  <Tag> _SLUG </Tag> <Value> the-jones-family-history     </Value>
  <Tag> _ABST </Tag> <Value> The article discusses the history of the Jones Family of Bohemia. </Value>
  <Tag> _FEAT </Tag> <Value> /photos/n1.jpg               </Value>
  <Tag> _PIC </Tag>  <Value> /photos/n1-thumb.jpg         </Value>
  <Tag> _SUBM </Tag> <Value> Photo provided by [[a href="http://jeffjones.com"]]Jeff Jones[[/a]] </Value>
  <Tag> _CAT </Tag>  <Value> Family History               </Value>
  <Tag> SOUR </Tag>  <Value> @S1@                         </Value> 
</AppendRecordField>

Users whose Genealogy applications do not allow adding NOTE records can use the InsertRecord option to insert them on the fly. This example shows you how to insert a NOTE record and then append the fields necessary to create a full blog post.

<InsertRecord> 	
  <RecordId> N1                   </RecordId> 
  <Tag>      NOTE                 </Tag> 
  <Value>    Once upon a time ... </Value> 
</InsertRecord> 	
<AppendRecordField> 
  <RecordId> N1 </RecordId> 
  <Tag> _TITL </Tag> <Value> The Jones' Family History    </Value>
  <Tag> _AUTH </Tag> <Value> Jackie Jones                 </Value>
  <Tag> _DATE </Tag> <Value> 1 Jan 2000                   </Value>
  <Tag> _SLUG </Tag> <Value> the-jones-family-history     </Value>
  <Tag> _ABST </Tag> <Value> The article discusses the history of the Jones Family of Bohemia. </Value>
  <Tag> _FEAT </Tag> <Value> /photos/n1.jpg               </Value>
  <Tag> _PIC </Tag>  <Value> /photos/n1-thumb.jpg         </Value>
  <Tag> _SUBM </Tag> <Value> Photo provided by [[a href="http://jeffjones.com"]]Jeff Jones[[/a]] </Value>
  <Tag> _CAT </Tag>  <Value> Family History               </Value>
  <Tag> SOUR </Tag>  <Value> @S1@                         </Value> 
</AppendRecordField>

Census Record Handling

Census tables are included on a person's profile page if they have ancestors who were possibly living during the range of years specified by the CensusTable.CensusYears configuration option. Users can also create a standalone Census Table Report page by enabling the Census Page and setting a person's record id in the CensusTables.DescendantId option.

Census tables are composed of a rows showing every applicable ancestor and columns showing every configured census year. Then for each census record found, the state abbreviation is placed in the table cell associated with the record's ancestor and year. If no state abbreviation is found, then an 'X' is used instead. If the census record is missing, an "m" is used, and if the year does not apply to an individual, a "-" is used. The state abbreviation is linked back to the applicable source record if found. Hovering over the state abbreviation displays a tooltip with the source title. Gigatrees supports special text that can be entered into the GEDCOM CENS.CAUS field to indicate if an ancestor's first and last name were listed "Full Name", such as a head-of-household or unmarried children, only the given name was listed "Given Name Only", such as a spouse, or they were only counted "Counted Only", no name was listed. When this feature is used, the tooltip will reflect this information and the state abbreviation will either appear in bold (full name), underlined (given name) or in italics (counted). The special text used can be translated as needed to something more prefereable, such as "Named", "Given" and "Counted".

When a GEDCOM event description (CENS.TYPE) field is present, it will be used in place of the display string associated with the CENS tag in all timelines and event lists.

0 @I1@ INDI
1 CENS
2 TYPE Census (US Federal)
2 DATE 1 JAN 1920
2 PLAC 147 W. Knox St., Galesburg, Knox County, Illinois
2 AGE 5m
2 CAUS Named

Gigatrees also supports embedding a special flag {gigatrees:ignore} into any of the CENS record fields (with the exception of the date field) that will indicate that the person should be removed from all census tables for the year of that census record. An ancestor will be completely removed from a census table when it has been removed from every year for which they are applicable. This is useful for removing the early and immigrant ancestors from your tables who were living in areas where there were no censuses taken.

0 @I1@ INDI
1 CENS
2 DATE 1810
2 NOTE [ignore]

Ancestry.com uses the RESI tag instead of CENS tag to indicate census records. Gigatrees will recognize these when the source for the residence claim indicates that it is a census source record.


Defining Ships Names

A common need for immigrants is to show the name of the ship on which they arrived. Gigatrees supports adding a GEDCOM event description (INDI.EVEN.TYPE) field with the string "Vessel" to indicate when a ship's name is present in the record. The string can be translated as needed to something more prefereable, such as "Ship". When a matching event description is found, the ship's name will be searched for first as the value of the INDI.EVEN record itself, and if it is not found there, as the value of the INDI.EVEN.CAUS field and then lastly as the value of the first INDI.EVEN.NOTE field. This gives you several options for adding ship names. When found, the ship's name will be included with the emigration and immigration events on a person's event list, as well as a separate attribute and will be listed on the Immigrants Page.

1 EVEN H.M.S. Beagle
2 TYPE Ship		
2 NOTE The ship they sailed on

1 EVEN
2 TYPE Ship
2 CAUS H.M.S. Beagle
2 NOTE The ship they sailed on

1 EVEN
2 TYPE Ship
2 NOTE H.M.S. Beagle
2 CAUS The ship they sailed on

1 EVEN
2 TYPE Ship
2 NOTE H.M.S. Beagle
2 NOTE The ship they sailed on


Date Handling

Gigatrees recognizes dates in almost any unambiguous format. It also supports all GEDCOM calendars and their date formats including Gregorian (the default), Julian, Hebrew and French Republic. Non-Gregorian calendar dates will be shown in their original format as well as in Gregorian format for readability. Gigatrees also supports British Monarch dates such as 10 Hen II representing the year 1164. This is valuable to Medieval genealogists who may want to enter dates in the format they appear in the original records. Monarch dates can even be combined with Gregorian dates when entering date ranges or date periods, such as bet 10 Hen II and 6 Dec 1173. Whenever Monarch dates are shown, both the original Monarch date and the Gregorian date are shown for readability.

When displaying Gregorian dates, the month name abbreviations are translated using the appropriate translation string (Jan, Feb, Mar ... ). When displaying date qualifiers (abt, aft, and, bef, bet, cal, est, from, int, prob, to), their translations are also shown. The vendor specific qualifier, prob is an abbreviation for "probably". Gigatrees also accepts date qualifiers of about, after, before, between, by, circa, ca, ca., calc and near. Gigatrees recognizes Gregorian months in both abbreviated and full forms (Jan, January). It will also recognize months in their translated string formats. So for instance if you are French, and enter your month names as Janvier you could enter this as your translation string for January to have it recognized by Gigatrees. It will always be displayed using the translation string for Jan, which you could also set to Janvier if your like. Unrecognized dates are flagged and included in your data alerts.


Defining Marriage Order

Gigatrees supports several two special strings, "He Married" and "She Married", that can be configured in the GEDCOM family event description (FAMS.EVEN.TYPE) to indicate a husband's marriage order and a wife's marriage order. The strings can be translated as needed to something more prefereable. The marriage order should be defined using the GEDCOM FAMS.EVEN.CAUS record and set to a natural number: 1, 2, 3, etc. If defined, a person's marriages will display the ordinal (1st, 2nd, 3rd, etc.) for their marriage in their event lists. The following is an example of how the new event should be structured to indicate a husband's second marriage.

1 EVEN
2 TYPE He Married
2 CAUS 2


Page Number Handling

GEDCOM does not provide a method for adding multiple citations or citation page numbers to source records. Gigatrees allows this by providing the ability to add page numbers to source note fields (@SOUR.NOTE._PAGE) fields. Users can use this mechanism to add multiple citations using the @SOUR.NOTE fields.

Page numbers are treated as strings so may be defined however you choose, for instance you might find it necessary to define a page number to include a volume number like vol. II, pg 1-3. The advantage of defining page numbers is several fold. You can define multiple page numbers for the same source note field. These defined page numbers will then be listed on the source page in the heading of each note. If you use these same page numbers in your source reference's page field (SOUR@.PAGE), your source reference links will include the page numbers and link directly to that page in the source. Pages should be limited to 10 characters each or they will not be displayed in the source references.

0 @I1@ INDI
1 BIRT				
1 SOUR @S1@
2 PAGE 49,100-105

0 @S1@ SOUR
1 NOTE Page 49-50: yada yada yada
2 _PAGE 49
2 _PAGE 50
1 NOTE Page 100-105: yada yada yada
2 _PAGE 100
2 _PAGE 100-105

Ancestry.com requires when editing source information, to fill in the "Detail" field. This field is exported to the GEDCOM SOUR@.PAGE field. Often times, however, you do not have a page number that you want to include, however, Ancestry.com will not allow you to save your edits until you do. Gigatrees allows embedding the {gigatrees:pagenone} flag into the "Detail" field. When found, it will satisfy Ancestry.com and be stripped and ignored from your Gigatree.

1 BIRT				
1 SOUR @S1@
2 PAGE {gigatrees:pagenone}


Embedding HTML

Gigatrees allows you to embed HTML tags in virtually any GEDCOM field value. This feature can be used to embed preformatted text into notes and source citation fields. For instance you can include Census data like following so that it is more readable.

<pre>
     Line:                 22          23           24          25
     Name:                 Carl Jones  Sally Jones  Buck Jones  Starman Jones
     Relation:             Head        Wife H       Son         Son
     Home:                 Owned
     Mortgage:             Mortgaged
     Gender:               Male       Female        Male        Male
     Race:                 White      White         White       White
     Age:                  26         25            1 7/12      5/12
     Status:               Married    Married       Single      Single
</pre>

Ancestry.com, however, strips HTML tags from text fields. To get around this, Gigatrees treats {{ as the start of an HTML tag. It also treats {{nl}} as a new-line or carriage return ( \n ). You can embed the same preformatted text as above into Ancestry.com's text fields by using these tags like

{{pre>     Line:                 22          23           24          25
{{nl}}     Name:                 Carl Jones  Sally Jones  Buck Jones  Starman Jones
{{nl}}     Relation:             Head        Wife H       Son         Son
{{nl}}     Home:                 Owned
{{nl}}     Mortgage:             Mortgaged
{{nl}}     Gender:               Male       Female        Male        Male
{{nl}}     Race:                 White      White         White       White
{{nl}}     Age:                  26         25            1 7/12      5/12
{{nl}}     Status:               Married    Married       Single      Single
{{/pre>

In addition, absolute URLs, those including an HTML scheme (http://), are linked automatically. HTML anchor tag do not need to be added.


Configuration Options

Gigatrees supports a number of configurable options that can be used to modify both the behavior of the program, and the content of the generated pages. The default configuration file includes only a subset of the available options. Configuration files must be defined in XML format and must include an <Options> tag. The <Options> tag is used as a wrapper for all the configuration options. All option values are specified by elements and all elements are contained within sections and wrappers. Elements may be declared in either a stacked or unstacked format.

Stacked XML

<Options>

 <Section>
 
  <Element1> value </Element1>
  <Element2> value </Element2>
  
  <Wrapper> 
   <Element1> value </Element1>
   <Element2> value </Element2>
  </Wrapper>
  
 </Section>

<Options>

Unstacked XML

<Options>

 <Section> <Element1> value </Element1> </Section>
 <Section> <Element2> value </Element2> </Section>
 
 <Section> <Wrapper> <Element1> value </Element1> </Wrapper> </Section>
 <Section> <Wrapper> <Element2> value </Element2> </Wrapper> </Section>
 
<Options>

Embedding HTML in XML

"<" and ">" cannot appear in an XML file. Instead, they must be delimited. Gigatrees supports using either "[[" and "]]" or "{{" and "}}" instead.


Section: Required

The Required section contains elements that are required to run the application. If any of its elements are missing, the application will request input from the user.

section   : <Required>
container : <Options>
wrappers  : none
elements  : <ReportType>, <OutputPath>, <GedcomFile>, <AssetsPath>, <PluginsPath>

Element: Required.ReportType

The Required.ReportType can alternately be specified on the command-line. It can be set to any of four enumerated values. If Validator is set, a GEDCOM Validation report (VGedX) will be generated, all other pages will be disabled. If Alerts is set, a Data Validation report (Bonkers) will be generated, all other pages will be disabled. If Blog is set, a standalone Blog will be generated, all other pages will be disabled. Also, the Page.Folder will be changed from "articles" to "blog". If Gigatrees is set, a complete family tree website will be generated, the GEDCOM Validation page will be disabled.

element         : <ReportType>
container       : <Required>
wrapper         : none
value type      : enumeration
default value   : not set
possible values : Validator, Alerts, Gigatrees, Blog

Example

<Required> 
  <ReportType>
    Gigatrees 
  </ReportType>
</Required>

Element: Required.OutputPath

The Required.OutputPath can alternately be specified on the command-line. It can be set to an absolute or relative drive path. The path should end in a trailing slash, however if the path is missing the trailing slash, the application will add it. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes. If the path does not exist, the application will ask permission from the user before creating it.

element         : <OutputPath>
container       : <Required>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Required> 
  <OutputPath>
    c:\gigatrees\jones\
  </OutputPath>
</Required>

Element: Required.GedcomFile

The Required.GedcomFile can alternately be specified on the command-line. The filename can be prepended with an absolute or relative drive path. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes.

element         : <GedcomFile>
container       : <Required>
wrapper         : none
value type      : filename
default value   : not set
possible values : no restrictions

Example

<Required> 
  <GedcomFile>
    c:\genealogy\Jones.ged 
  </GedcomFile>
</Required>

Element: Required.AssetsPath

The Required.AssetsPath can be used to specify the drive path the the assets folder. If not set, the installation folder is assumed. It can be set to an absolute or relative drive path. The path should end in a trailing slash, however if the path is missing the trailing slash, the application will add it. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes. If the path does not exist, the build will fail.

element         : <AssetsPath>
container       : <Required>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Required> 
  <AssetsPath>
    c:\gigatrees\assets\
  </AssetsPath>
</Required>

Element: Required.PluginsPath

The Required.PluginsPath can be used to specify the drive path the the plugin folder. If not set, the installation folder is assumed. It can be set to an absolute or relative drive path. The path should end in a trailing slash, however if the path is missing the trailing slash, the application will add it. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes. If the path does not exist, the build will fail.

element         : <PluginsPath>
container       : <Required>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Required> 
  <PluginsPath>
    c:\gigatrees\plugins\
  </PluginsPath>
</Required>

Section: Metadata

The Metadata section contains elements associated with report metadata.

section   : <Metadata>
container : <Options>
wrappers  : none
elements  : <Domain>, <Title>, <Description>, <Name>, <Location>, <Header>, <Footer>, <PreHeader>, <DropHeader>, <DropBody>, <DropFooter>, <UseCDNs>

Element: Metadata.Domain

The Metadata.Domain should be set to the root-level URL of the user's website. It is made available to the Metadata.Header and Metadata.Footer via a macro substitution so that it may be included in meta tags.

element         : <Domain>
container       : <Metadata>
wrapper         : none
value type      : url
default value   : not set
possible values : no restrictions

Example

<Metadata> 
  <Domain>
    http://domain.com 
  </Domain>
</Metadata>

Element: Metadata.Title

The Metadata.Title is made available to the Metadata.Header and Metadata.Footer via a macro substitution so that it my be included in metadata tags and page headers.

element         : <Title>
container       : <Metadata>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Metadata> 
  <Title>
    The Jones Family Tree 
  </Title>
</Metadata>

Element: Metadata.Description

The Metadata.Description is made available to the Metadata.Header and Metadata.Footer via a macro substitution so that it may be included in metadata tags.

element         : <Description>
container       : <Metadata>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Metadata> 
  <Description>
    The ancestry of Johnny and Sally Jones 
  </Description>
</Metadata>

Element: Metadata.Name

The Metadata.Name is used to provide the author's name. It is made available to the Metadata.Header and Metadata.Footer via a macro substitution so that it may be included in metadata tags.

element         : <Name>
container       : <Metadata>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Metadata> 
  <Name>
    Johnny Jones 
  </Name>
</Metadata>

Element: Metadata.Location

The Metadata.Location is used to provide the author's location. It is made available to the Metadata.Header and Metadata.Footer via a macro substitution so that it may be included in metadata tags.

element         : <Location>
container       : <Metadata>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Metadata> 
  <Location>
    San Francisco, California, United States 
  </Location>
</Metadata>

Element: Metadata.Header

The Metadata.Header is prepended to each web page. It is used to provide a common header for each page. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively. The Metadata.Header requires the HTML <html>, <head>, </head>, and <body> tags

The Metadata.Header supports the following macro substitutions:

%Application% - the version of Gigatrees used to build the web pages
%LangCode% - substituted from Translation.LanguageCode
%Author% - substituted from Metadata.Name
%Location% - substituted from Metadata.Location
%Description% - substituted from Metadata.Description
%Keywords% - substituted from blog article keywords and tags
%SiteTitle% - substituted from Metadata.Title
%PageTitle% - the title of the current page
%PageURL% - the URL to the current page (requires Metadata.Domain to be set)
%OGImage% - substituted with the og:image meta property of the page image
%FeedLink% - substituted with feed link of the blog when enabled
%AssetsPath% - substituted from relative Required.OutputPaths assets folder
%PluginsPath% - substituted from relative Required.OutputPaths plugin folder
%PreHeader% - substituted from MetaData.PreHeader
%DropHeader% - substituted from MetaData.DropHeader
%DropBody% - substituted from MetaData.DropBody
%MenuBar% - placement of the floating MenuBar

Several of these macro substitutions are used in the default header plugin. The %MenuBar% macro is required for both a floating or a fixed MenuBar. Fixed MenuBars are fixed at the top of the page regardless where the macro is found. At the very minimum, Gigatrees requires jQuery (jquery.min.js) and the Bootstrap stylesheet (bootstrap.min.css) to be loaded in the default header. The default header is intended to be generic enough that it can be used as-is for most websites.

element         : <Header>
container       : <Metadata>
wrapper         : none
value type      : html
default value   : none
possible values : not empty, less than (<) symbols are not permitted

Example (minimal value)

<Metadata> 
  <Header>
    [[!DOCTYPE html]]
      [[head]]
        [[script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"]][[/script]]
        [[link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"]]
      [[/head]]
      [[body]]  
 </Header>
</Metadata>

Element: Metadata.Footer

The Metadata.Footer is appended to each web page. It is used to provide a common footer for each page. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively. The Metadata.Footer requires the HTML </body> and </html> tags

The Metadata.Footer supports the following macro substitutions:

%Application% - the version of Gigatrees used to build the web pages
%Author% - substituted from Metadata.Name
%Location% - substituted from Metadata.Location
%Description% - substituted from Metadata.Description
%Keywords% - substituted from blog article keywords and tags
%SiteTitle% - substituted from Metadata.Title
%AssetsPath% - substituted from relative Required.OutputPaths assets folder
%PluginsPath% - substituted from relative Required.OutputPaths plugin folder
%DropFooter% - substituted from MetaData.DropFooter

Several of these macro substitutions are used in the default footer plugin. At the very minimum, Gigatrees requires Bootstrap (bootstrap.min.js) to be loaded in the Metadata.Footer (or Metadata.Header). The default footer is intended to be generic enough that it can be used as-is for most websites.

element         : <Footer>
container       : <Metadata>
wrapper         : none
value type      : html
default value   : none
possible values : not empty, less than (<) symbols are not permitted

Example (minimal value)

<Metadata> 
  <Footer>
       [[script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"]][[/script]]
     [[/body]]
   [[/html]] 
 </Footer>
</Metadata>

Element: Metadata.PreHeader

The Metadata.PreHeader replaces the %PreHeader% substitution macro in the MetaData.Header. By default it is located just prior to the HTML <html element. It is used to provide an easy way to add PHP scripts without needing to completely override the Metadata.Header. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively.

element         : <PreHeader>
container       : <Metadata>
wrapper         : none
value type      : html
default value   : not set
possible values : less than (<) symbols are not permitted

Example

The example shows how to add PHP script using the Metadata.PreHeader.

<Metadata> 
  <PreHeader>
    [[?php require_once( $_SERVER['DOCUMENT_ROOT']."/boot.php" ); ?]]
  </PreHeader>
</Metadata>

Element: Metadata.DropHeader

The Metadata.DropHeader replaces the %DropHeader% substitution macro in the MetaData.Header. By default it is located just prior to the HTML </head element. It is used to provide an easy way to add stylesheets and script files without needing to completely override the Metadata.Header. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively.

element         : <DropHeader>
container       : <Metadata>
wrapper         : none
value type      : html
default value   : not set
possible values : less than (<) symbols are not permitted

Example

The example shows how to add the FancyBox stylesheet manually using the Metadata.DropHeader.

<Metadata> 
  <DropHeader>
    [[link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css"]]
  </DropHeader>
</Metadata>

Element: Metadata.DropBody

The Metadata.DropBody replaces the %DropBody% substitution macro in the MetaData.Header. By default it is located at the bottom of the Header element. It is used to provide an easy way to add HTML of PHP code without needing to completely override the Metadata.Header. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively.

element         : <DropBody>
container       : <Metadata>
wrapper         : none
value type      : html
default value   : not set
possible values : less than (<) symbols are not permitted

Example

The example shows implementation of an PHP alert mechanism using Metadata.DropBody.

<Metadata> 
  <DropBody>
	[[?php postSessionAlert($session_alert); ?]] 
  </DropBody>
</Metadata>

Element: Metadata.DropFooter

The Metadata.DropFooter replaces the %DropFooter% substitution macro in the MetaData.Footer. By default it is located just prior to the HTML </body element. It is used to provide an easy way to add script files without needing to completely override the Metadata.Footer. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively.

element         : <DropFooter>
container       : <Metadata>
wrapper         : none
value type      : html
default value   : not set
possible values : less than (<) symbols are not permitted

Example

The example shows how to add the FancyBox script manually using the Metadata.DropHeader.

<Metadata> 
  <DropFooter>
    [[script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js"]][[/script]]
    [[script type="text/javascript" src="%PluginsPath%fancybox-handler.js"]][[/script]]
  </DropFooter>
</Metadata>

Section: WebPaths

The WebPaths section contains web path elements that are included in the Gigatree web pages and tell web browsers where to find photos and images.

section   : <WebPaths>
container : <Options>
wrappers  : none
elements  : <ProfilePhotos>, <SourceImages>, <Thumbnails>

Element: WebPaths.ProfilePhotos

The WebPaths.ProfilePhotos should be set to the URL or web path to be prepended to relative profile photo paths. Profile photos are defined as multimedia objects that are referenced or embedded within a GEDCOM individual logical record. The WebPaths.ProfilePhotos value should use forward slashes instead of backslashes. The application will fix incorrect slashes.

element         : <ProfilePhotos>
container       : <WebPaths>
wrapper         : none
value type      : url
default value   : not set
possible values : no restrictions

Example

<WebPaths> 
  <ProfilePhotos>
    http://domain.com/photos/
  </ProfilePhotos>
</WebPaths>

Element: WebPaths.SourceImages

The WebPaths.SourceImages should be set to the URL or web path to be prepended to relative source image paths. Source images are defined as multimedia objects that are not profile photos. The WebPaths.SourceImages value should use forward slashes instead of backslashes. The application will fix incorrect slashes.

element         : <SourceImages>
container       : <WebPaths>
wrapper         : none
value type      : url
default value   : not set
possible values : no restrictions

Example

<WebPaths> 
  <SourceImages>
    http://domain.com/images/
  </SourceImages>
</WebPaths>

Element: WebPaths.Thumbnails

The WebPaths.Thumbnails should be set to the URL or web path to be prepended to relative profile photos or source image thumbnails paths. The WebPaths.Thumbnails value should use forward slashes instead of backslashes. The application will fix incorrect slashes.

element         : <Thumbnails>
container       : <WebPaths>
wrapper         : none
value type      : url
default value   : not set
possible values : no restrictions

Example

<WebPaths> 
  <Thumbnails>
    http://domain.com/thumbs/
  </Thumbnails>
</WebPaths>

Section: Extension

The Extension section contains elements associated with Gigatree web page extensions.

section   : <Extension>
container : <Options>
wrappers  : none
elements  : <PHP>, <Linked>

Element: Extension.PHP

By default, Gigatree web page extensions are set to .html. Enabling Extension.PHP will set the web page extensions to .php. When embedding a Gigatree into another website or blog, it is sometimes necessary to use PHP files for seamless integration.

element         : <PHP>
container       : <Extension>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Extension> 
  <PHP>
    true
  </PHP>
</Extension>

Element: Extension.Linked

By default, web page extensions are included in all Gigatree hyperlinks. Setting Extension.Linked to false excludes them. Generally, Extension.Linked should be enabled any time that Extension.PHP is disabled and visa versa, although advanced configurations may choose an alternate setup. When embedding a Gigatree into another website or blog, it is sometimes necessary to exclude extensions from hyperlinks for seamless integration.

element         : <Linked>
container       : <Extension>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Extension> 
  <Linked>
    false
  </Linked>
</Extension>

if Extension.PHP and Extension.Linked are both disabled, web servers will need to be told how to access the web pages. For Apache web servers, the easiest way to do this is to create a .htaccess file in the Required.OutputPath folder that contains the following rewrite conditions:

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{2,4}
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.html

Section: MenuBar

The MenuBar section contains elements associated with the menu bar.

section   : <MenuBar>
container : <Options>
wrappers  : none
elements  : <Enable>, <Fixed>, <LinkIndex>, <ExtendMenu> 

Element: MenuBar.Enable

By default, the menu bar is enabled. Setting MenuBar.Enable to false disables it. When embedding a Gigatree into another website or blog, it is sometimes necessary to disable the menu for seamless integration. The MenuBar can also be disabled when configuring a new Header by simply leaving off the %MenuBar% substitution macro.

element         : <Enable>
container       : <MenuBar>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<MenuBar> 
  <Enable>
    false
  </Enable>
</MenuBar>

Users who want to modify or add additional items to the menu, may choose to disable the menu bar by setting MenuBar.Enable to false, and instead include a modified menu as part of the Metadata.Header. This will not work correctly when a directory tree is used, so users will need to also modify the Page configuration for a flat tree structure. A typical menu would look like the following. Removing navbar-fixed-top from the nav element converts it to a floating menu bar.

<nav id="navbar-tree" class="navbar navbar-fixed-top" role="navigation">
 <div class="container">
  <div class="navbar-header">
   <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
   </button>
   <a class="navbar-brand" href="\"></a>
  </div>
  <div class="navbar-collapse collapse">
   <ul id="menu-primary" class="nav navbar-nav">
    <li><a title="Names" href="names.html">Names</a></li>
    <li><a title="Sources" href="sources.html">Sources</a></li>
    <li><a title="Locations" href="places.html">Locations</a></li>
    <li><a title="Population Distribution Map" href="map.html">Map</a></li>
    <li class="dropdown">
     <a title="Timelines" href="#" data-toggle="dropdown" class="dropdown-toggle">Timelines <span class="caret"></span></a>
     <ul role="menu" class="dropdown-menu">
      <li><a title="16th Century" href="timelines17.html">16th Century</a></li>
      <li><a title="17th Century" href="timelines18.html">17th Century</a></li>
      <li><a title="18th Century" href="timelines19.html">18th Century</a></li>
      <li><a title="19th Century" href="timelines20.html">19th Century</a></li>
      <li><a title="20th Century" href="timelines21.html">20th Century</a></li>
      <li><a title="21st Century" href="timelines22.html">21st Century</a></li>
     </ul>
    </li>
    <li class="dropdown">
     <a title="More ..." href="#" data-toggle="dropdown" class="dropdown-toggle">More <span class="caret"></span></a>
     <ul role="menu" class="dropdown-menu">
      <li><a title="Census Tables" href="census.html">Census</a></li>
      <li><a title="Immigrants" href="immigrants.html">Immigrants</a></li>
      <li><a title="Descendant Lists" href="descendants.html">Descendants</a></li>
      <li><a title="Data Alerts" href="alerts.html">Data Alerts</a></li>
      <li><a title="Statistics" href="statistics.html">Statistics</a></li>
      <li><a title="Updates" href="updates.html">Updates</a></li>
     </ul>
    </li>
   </ul>
  </div>
 </div>
</nav>

Element: MenuBar.Fixed

By default, the menu bar is set to fixed mode. A fixed menu bar is fixed to the top of the web browser window, such that it remains on the screen when scrolling down the page. Setting MenuBar.Fixed to false converts it to a floating menu bar instead. Floating menu bars float just below the Metadata.Header and will scroll off screen. Floating menu bars are useful when embedding a Gigatree into another website or blog, that may already have its own menu.

element         : <Fixed>
container       : <MenuBar>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<MenuBar> 
  <Fixed>
    false
  </Fixed>
</MenuBar>

Element: MenuBar.LinkIndex

By default, the menu bar is set to use the filename when linking to "index.html" or "index.php" contained in subfolders. That is, if index is defined as the Page.File. However, when web servers support automatically linking to those files when web folders are accessed directly, then this option can be disabled to stop including the filename in the link. This make for a more seo friendly web interface.

element         : <LinkIndex>
container       : <MenuBar>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<MenuBar> 
  <LinkIndex>
    false
  </LinkIndex>
</MenuBar>

Element: MenuBar.ExtendMenu

The MenuBar.ExtendMenu is appended to the menu bar. It is used to provide an easy way to add additional menu items without needing to completely override the MenuBar. Any valid HTML is allowed with the exception that < and > symbols, which should be replaced with [[ and ]] symbols respectively.

element         : <ExtendMenu>
container       : <MenuBar>
wrapper         : none
value type      : html
default value   : not set
possible values : less than (<) symbols are not permitted

Example

The example shows adding a divider and a Contact Us link.

<MenuBar> 
  <ExtendMenu>
	 [[li]][[span class="navbar-divider"]]|[[/span]][[/li]]
	 [[li]][[a href="/contact"]]Contact Us[[/a]][[/li]]
  </ExtendMenu>
</MenuBar>

Section: Maintenance

The Maintenance section contains elements associated with Error Reporting and Anonymous Statistics.

section   : <Maintenance>
container : <Options>
wrappers  : none
elements  : <SendErrorReports>, <SendAnonymousSats>

Element: Maintenance.SendErrorReports

SendErrorReports is used to send information about critical failures such as crash dumps and processing errors to the Gigatrees server to be used in the discovery and troubleshooting of application errors. Data is only sent when an error or crash occurs. No personally identifiable information is sent.

element         : <SendErrorReports>
container       : <Maintenance>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Maintenance> 
  <SendErrorReports>
    false
  </SendErrorReports>
</Maintenance>

Element: Maintenance.SendAnonymousSats

SendAnonymousSats is used to send anonymous statistics such as performance data, aggregated GEDCOM tag counts, GEDCOM version, configuration and feature usage and other non-personally identifiable statistics that can be used to inprove product performance and coverage.

element         : <SendAnonymousSats>
container       : <Maintenance>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Maintenance> 
  <SendAnonymousSats>
    false
  </SendAnonymousSats>
</Maintenance>

Section: Page

The Page section contains elements associated with the various web pages that Gigatrees generates.

section   : <Page>
container : <Options>
wrappers  : <Index>, <Names>, <Profiles>, <Kinships>, <Sources>, <Articles>, <Places>, <Map>, <Timelines>, <Military>, <OriginMaps>, <Ancestors>, <Census>, <Descendants>, <Immigrants>, <Nobility>, <Photos>, <Stats>, <Updates>, <DataAlerts>, <Validation>
elements  : <Enable>, <Menu>, <Title>, <Folder>, <File>, <Prefix>

Element: Page.Enable

Page types can be individually enabled or disabled. Page types are specified by the page wrappers (i.e. <Index>). The <Validation> page is enabled by setting the Required.ReportType to Validator, so cannot be enabled or disabled using the Page.Enable option. The <Nobility> page is disabled by default because genealogy applications often misuse the GEDCOM nobility title tag. Users can of course enable this page if they wish.

Even though a page type is enabled, it does not necessarily mean that any pages of that type will be created, or that they will appear in the menu. Gigatrees will not create a page if there is no reason to. So, for instance, if a user's database does not include any kinships between spouses, then no <Kinships> pages will be created. Likewise, if a user's database does not include any linkable profile photos, not only will the <Photos> page not be created, but no item for the <Photos> page will appear in the menu. Therefore, it is often a good idea to leave all of the pages enabled. There may be other reasons a user may want to disable a page type however. For instance, if they are looking to reduce the number of web pages generated or the total file size of their website, they could disable certain page types that create multiple pages to prevent them from being created. Gigatrees alters its behavior when certain page types are disabled. For instance, if <Kinships> pages are disabled, Gigatrees will link the most recent common ancestor to that individual's <Profile> page rather than the <Kinships> page.

Individual reports can be generated simply be disabling all other Page types besides the one being focused on. For instance, setting the Required.ReportType to Alerts does nothing more than disable all page types except the <DataAlerts> page and then build a Gigatree by setting the Required.ReportType internally to Gigatrees. Users can follow this same process to build individual <Map>, <Military>, <OriginMaps>, <Ancestors>, <Census>, <Descendants>, <Immigrants>, <Nobility>, <Photos>, <Stats> and <Updates>, reports. All other page types create multiple pages, so it makes less sense to do so in their case.

element         : <Enable>
container       : <Page>
wrapper         : various
value type      : boolean
default value   : (see the default configuration shown below)
possible values : true, 1, false, 0 (does not apply to <Validation>)

Example

<Page> 
  <Sources>
    <Enable>
      false
    </Enable>
  </Sources> 
</Page>

Element: Page.Menu

The Page.Menu contains the menu bar display string associated with the page type. The string will be translated so should be specified in English. Page types are specified by the page wrappers (i.e. <Index>). Since the <Index>, <Profiles> and <Kinships> pages do not appear in the menu, the Page.Menu option does not apply to them.

element         : <Menu>
container       : <Page>
wrapper         : various
value type      : string
default value   : (see the default configuration shown below)
possible values : not empty, English strings only (does not apply to <Index>, <Profiles> or <Kinships>)

Example

<Page> 
  <Map>
    <Menu>
      Map
    </Menu>
  </Map> 
</Page>

Element: Page.Title

The Page.Title contains the web page display string associated with the page type. The string will be translated so should be specified in English. Page types are specified by the page wrappers (i.e. <Index>). The <Profiles> pages display individual names as their page titles, so Page.Title option does not apply to them.

element         : <Title>
container       : <Page>
wrapper         : various
value type      : string
default value   : (see the default configuration shown below)
possible values : not empty, English strings only (does not apply to <Profiles>)

Example

<Page> 
  <Map>
    <Title>
      Population Distribution Map
    </Title>
  </Map> 
</Page>

Element: Page.Folder

The Page.Folder contains the folder associated with the page type. Page types are specified by the page wrappers (i.e. <Index>). The Page.Folder is used to define a directory tree to hold the Gigatree. When a flat tree structure is desired, the option should be cleared.

element         : <File>
container       : <Page>
wrapper         : various
value type      : folder
default value   : (see the default configuration shown below)
possible values : no restrictions

Example

<Page> 
  <Map>
    <Folder>
      map
    </Folder>
  </Map> 
</Page>

Element: Page.File

The Page.File contains the filename associated with the page type. Page types are specified by the page wrappers (i.e. <Index>). When using a directory tree (setting Page.Folder options) and the Page.File is set to index and the web server supports automatically linking to "index.html or "index.php" when the web folder is accessed directly, then the MenuBar.LinkIndex option can be disabled for a more seo friendly web interface.

element         : <File>
container       : <Page>
wrapper         : various
value type      : filename
default value   : (see the default configuration shown below)
possible values : no restrictions

Example

<Page> 
  <Map>
    <File>
      index
    </File>
  </Map> 
</Page>

Element: Page.Prefix

The Page.Prefix contains the filename prefix associated with the page type when record ids or page counts are used for filename suffixes. Page types are specified by the page wrappers (i.e. <Index>).

element         : <Prefix>
container       : <Page>
wrapper         : various
value type      : filename
default value   : (see the default configuration shown below)
possible values : no restrictions

Example

<Page> 
  <Sources>
    <Prefix>
      source-
    </Prefix>
  </Sources> 
</Page>

The complete default configuration for all page types is shown below. Users wishing to make significant changes to the default configuration may wish to copy and paste the following into their configuration file and then modify it accordingly. The default configuration is for a directory tree. For a flat tree structure, the Page.Folder fields should be moved to the Page.File fields, and the Page.Folder fields cleared.

<Page> 
  <Index>       <Enable> true  </Enable>                                   <Title> Home                        </Title> <Folder>            </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Index>
  <Validation>                           <Menu> GEDCOM Validation </Menu>  <Title> GEDCOM Validation           </Title> <Folder>            </Folder>  <File> validation </File> <Prefix>   </Prefix>  </Validation>
  <Articles>    <Enable> true  </Enable> <Menu> Articles          </Menu>  <Title> Articles                    </Title> <Folder> article    </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Articles>
  <Names>       <Enable> true  </Enable> <Menu> Names             </Menu>  <Title> Names                       </Title> <Folder> names      </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Names>
  <Profiles>    <Enable> true  </Enable>                                                                                <Folder> profiles   </Folder>                            <Prefix>   </Prefix>  </Profiles>
  <Kinships>    <Enable> true  </Enable>                                   <Title> Kinship                     </Title> <Folder> kinship    </Folder>                            <Prefix> K </Prefix>  </Kinships>
  <Sources>     <Enable> true  </Enable> <Menu> Sources           </Menu>  <Title> Sources                     </Title> <Folder> sources    </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Sources>
  <Places>      <Enable> true  </Enable> <Menu> Locations         </Menu>  <Title> Locations                   </Title> <Folder> places     </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Places>
  <Map>         <Enable> true  </Enable> <Menu> Map               </Menu>  <Title> Population Distribution Map </Title> <Folder> map        </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Map>
  <Photos>      <Enable> true  </Enable> <Menu> Photos            </Menu>  <Title> Photos                      </Title> <Folder> photos     </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Photos>
  <Census>      <Enable> true  </Enable> <Menu> Census Tables     </Menu>  <Title> Census Tables               </Title> <Folder> census     </Folder>  <File> index      </File> <Prefix> C </Prefix>  </Census>
  <OriginMaps>  <Enable> true  </Enable> <Menu> Origin Maps       </Menu>  <Title> Origin Maps                 </Title> <Folder> origin-maps </Folder>  <File> index      </File> <Prefix> A </Prefix>  </Ancestors>
  <Ancestors>   <Enable> true  </Enable> <Menu> Ancestor Lists    </Menu>  <Title> Ancestor Lists              </Title> <Folder> ancestors  </Folder>  <File> index      </File> <Prefix> A </Prefix>  </Ancestors>
  <Descendants> <Enable> true  </Enable> <Menu> Descendant Lists  </Menu>  <Title> Descendant Lists            </Title> <Folder> descendants</Folder>  <File> index      </File> <Prefix> D </Prefix>  </Descendants>
  <Immigrants>  <Enable> true  </Enable> <Menu> Immigrants        </Menu>  <Title> Immigrants                  </Title> <Folder> immigrants </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Immigrants>
  <Military>    <Enable> true  </Enable> <Menu> Soldiers          </Menu>  <Title> Soldiers                    </Title> <Folder> soldiers   </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Military>
  <Nobility>    <Enable> false </Enable> <Menu> Noblility         </Menu>  <Title> Noblility                   </Title> <Folder> nobility   </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Nobility>
  <Timelines>   <Enable> true  </Enable> <Menu> Timelines         </Menu>  <Title> Timelines                   </Title> <Folder> timeline   </Folder>  <File> index      </File> <Prefix> T </Prefix>  </Timelines>
  <DataAlerts>  <Enable> true  </Enable> <Menu> Data Alerts       </Menu>  <Title> Data Alerts                 </Title> <Folder> alerts     </Folder>  <File> index      </File> <Prefix>   </Prefix>  </DataAlerts>
  <Stats>       <Enable> true  </Enable> <Menu> Statistics        </Menu>  <Title> Statistics                  </Title> <Folder> statistics </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Stats>
  <Updates>     <Enable> true  </Enable> <Menu> Updates           </Menu>  <Title> Updates                     </Title> <Folder> updates    </Folder>  <File> index      </File> <Prefix>   </Prefix>  </Updates>
</Page>

Section: Security

The Security section contains elements associated with ensuring your GEDCOM data remains secure, namely providing the ability to privatize your data.

section   : <Security>
container : <Options>
wrappers  : none
elements  : <Privatize>, <HideLiving>, <HideLocalLinks>, <RemoveAllUnusedRecords>, <RemoveUnusedSourceRecordsOnly>, <EstimateBirthdates>

Element: Security.Privatize

Gigatrees recognizes a number of vendor specific privacy flags. When Security.Privatize is enabled, these flags are used to strip information from the resulting Gigatrees web pages. This is the most common method for publishing genealogy information online. Gigatrees defaults to the most secure settings. To view web pages offline, users may want to disable Security.Privatize by setting it to false.

element         : <Privatize>
container       : <Security>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Security> 
  <Privatize>
    false
  </Privatize>
</Security>

Element: Security.HideLiving

Gigatrees recognizes a number of vendor specific living flags. Even without specific flags however, Gigatrees is usually able to determine if a person is likely to be living by estimating years of birth for each person missing them and then comparing these to other relatives. When Security.HideLiving is enabled, information associated with living persons is stripped from the resulting Gigatrees web pages and replaced with generic individual place holders. This is the most common method for publishing genealogy information online. Gigatrees defaults to the most secure settings. To view web pages offline, users may want to disable Security.HideLiving by setting it to false.

element         : <HideLiving>
container       : <Security>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Security> 
  <HideLiving>
    false
  </HideLiving>
</Security>

Element: Security.HideLocalLinks

GEDCOM files often contain absolute disk paths for URLs, web links and multimedia objects. Absolute paths are those that contains disk drive schemes such as c:/. Web browsers cannot display these directly either online or offline. By default, Gigatrees enables this option to hide these links. This hides the internal disk structures and prevents non-accessible links from appearing on your web pages. Gigatrees defaults to the most secure settings. Users who remap their local links to web server URLs using the Replace option will need disable this security feature by setting it to false.

element         : <HideLocalLinks>
container       : <Security>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Security> 
  <HideLocalLinks>
    false
  </HideLocalLinks>
</Security>

Element: Security.RemoveAllUnusedRecords

GEDCOM files often contain logical records that are not referenced within the same file. These records are considered unused. This is not uncommon when fields that once referenced these records were deleted. It is also not uncommon for Articles to not be referenced within the GEDCOM file. Enabling this option will strip these records from the generated web pages.

element         : <RemoveAllUnusedRecords>
container       : <Security>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Security> 
  <RemoveAllUnusedRecords>
    true
  </RemoveAllUnusedRecords>
</Security>

Element: Security.RemoveUnusedSourceRecordsOnly

GEDCOM files often contain logical source records that are not referenced within the same file. These records are considered unused. This is not uncommon when individuals or events containing source references to those logical records were deleted. By default, Gigatrees will strip these records from its generated web pages. Gigatrees defaults to the most secure settings. Users who wish to may disable this security feature by setting it to false.

Enabling or disabling this option has no affect if the Security.RemoveAllUnusedRecords option is enabled. However, there may be instances, where user's want to retain all of their unused records with the exception of their unused source records. This is a common problem with exported Ancestry.com GEDCOM files. When deleting an events or individuals online from an Ancestry.com tree, user's should always remove every source citation\reference used by those events and individuals first, otherwise, Ancestry.com will leave behind unused source records. This option can be used to strip those dead records from your Gigatree easily. If a user wants to retain all unused records, they should disable both the Security.RemoveAllUnusedRecords option and the Security.RemoveUnusedSourceRecordsOnly option.

element         : <RemoveUnusedSourceRecordsOnly>
container       : <Security>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Security> 
  <RemoveUnusedSourceRecordsOnly>
    false
  </RemoveUnusedSourceRecordsOnly>
</Security>

Element: Security.EstimateBirthdates

Gigatrees uses a recursive, multi-pass algorithm to estimate the year of birth for every person in your database that is missing one. Doing so increases the accuracy when auto-determining living individuals. Any time Security.HideLiving is enabled, this option should be as well. By default, Gigatrees enables both of these options. Gigatrees defaults to the most secure settings. Disabling this option can speed up processing significantly for databases containing large numbers of individuals. To disable this option, set it to false.

element         : <EstimateBirthdates>
container       : <Security>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Security> 
  <EstimateBirthdates>
    false
  </EstimateBirthdates>
</Security>

Section: AgeParameters

The AgeParameters section contains elements associated with ensuring your GEDCOM data remains secure, namely providing the ability to privatize your data.

section   : <AgeParameters>
container : <Options>
wrappers  : none
elements  : <MinChildBearingAge>, <MaxChildBearingAge>, <MaxChildBaptismAge>, <MinMarriageAge>, <MaxWifeMarriageAge>, <MaxAgeBetweenSpouses>, <MaxFlourishedAge>, <MinFlourishedAge>, <MaxLifeSpan>, <MaxEventAgeError>, <MaxDegreeOfKinship>, <DeadIfMarriedBefore>, <DeadIfBornBefore>	

Element: AgeParameters.MinChildBearingAge

This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates and when calculating statistics

element         : <MinChildBearingAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 15
possible values : no restrictions

Example

<AgeParameters> 
  <MinChildBearingAge>
    15
  </MinChildBearingAge>
</AgeParameters>

Element: AgeParameters.MaxChildBearingAge

This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxChildBearingAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 50
possible values : no restrictions

Example

<AgeParameters> 
  <MaxChildBearingAge>
    50
  </MaxChildBearingAge>
</AgeParameters>

Element: AgeParameters.MaxChildBaptismAge

This option should be set to most closely match your GEDCOM baptism data. This does not apply to adult christenings. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxChildBaptismAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 5
possible values : no restrictions

Example

<AgeParameters> 
  <MaxChildBaptismAge>
    5
  </MaxChildBaptismAge>
</AgeParameters>

Element: AgeParameters.MinMarriageAge

This option should be set to most closely match your GEDCOM marriage data. This does not apply to betrothals and other non-marriage unions. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MinMarriageAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 14
possible values : no restrictions

Example

<AgeParameters> 
  <MinMarriageAge>
    14
  </MinMarriageAge>
</AgeParameters>

Element: AgeParameters.MaxWifeMarriageAge

This option should be set to most closely match your GEDCOM marriage data. This parameter only applies to female spouses (and presumably mothers). It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxWifeMarriageAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 50
possible values : no restrictions

Example

<AgeParameters> 
  <MaxWifeMarriageAge>
    50
  </MaxWifeMarriageAge>
</AgeParameters>

Element: AgeParameters.MaxAgeBetweenSpouses

This option should be set to most closely match your GEDCOM marriage data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxAgeBetweenSpouses>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 30
possible values : no restrictions

Example

<AgeParameters> 
  <MaxAgeBetweenSpouses>
    30
  </MaxAgeBetweenSpouses>
</AgeParameters>

Element: AgeParameters.MaxFlourishingAge

This option should be set to most closely match your GEDCOM data. Flourishing indicates that a person was living, an adult, active in society and likely to be found in civil or church records, except wills and codicils. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxFlourishingAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 70
possible values : no restrictions

Example

<AgeParameters> 
  <MaxFlourishingAge>
    70
  </MaxFlourishingAge>
</AgeParameters>

Element: AgeParameters.MinFlourishingAge

This option should be set to most closely match your GEDCOM data. Flourishing indicates that a person was living, an adult, active in society and likely to be found in civil or church records, except wills and codicils. Minimum flourishing age is generally considered to be equivalent to the start of adulthood. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MinFlourishingAge>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 21
possible values : no restrictions

Example

<AgeParameters> 
  <MinFlourishingAge>
    21
  </MinFlourishingAge>
</AgeParameters>

Element: AgeParameters.MaxLifeSpan

This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxLifeSpan>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 100
possible values : no restrictions

Example

<AgeParameters> 
  <MaxLifeSpan>
    100
  </MaxLifeSpan>
</AgeParameters>

Element: AgeParameters.MaxEventAgeError

The maximum age event error is the maximum difference in years between a person's known birth date and an event date less the age of that person provided along with that event. Census records and ship's manifests are notorious for listing person's ages incorrectly. This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxEventAgeError>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 2
possible values : no restrictions

Example

<AgeParameters> 
  <MaxEventAgeError>
    2
  </MaxEventAgeError>
</AgeParameters>

Element: AgeParameters.MaxDegreeOfKinship

The degree of kinship or consanguinity between any two spouses beyond which would have been considered prohibited at the time they were married. This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <MaxDegreeOfKinship>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 3
possible values : no restrictions

Example

<AgeParameters> 
  <MaxDegreeOfKinship>
    3
  </MaxDegreeOfKinship>
</AgeParameters>

Element: AgeParameters.DeadIfMarriedBefore

The year before which a person was married that indicates that they are no longer living. This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <DeadIfMarriedBefore>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 1940
possible values : no restrictions

Example

<AgeParameters> 
  <DeadIfMarriedBefore>
    1940
  </DeadIfMarriedBefore>
</AgeParameters>

Element: AgeParameters.DeadIfBornBefore

The year before which a person was born that indicates that they are no longer living. This option should be set to most closely match your GEDCOM data. It is used when estimating birth dates, analyzing data and calculating statistics

element         : <DeadIfBornBefore>
container       : <AgeParameters>
wrapper         : none
value type      : positive integer
default value   : 1920
possible values : no restrictions

Example

<AgeParameters> 
  <DeadIfBornBefore>
    1920
  </DeadIfBornBefore>
</AgeParameters>

Section: ValidationPage

The ValidationPage section contains elements associated with the <Validation> page.

section   : <ValidationPage>
container : <Options>
wrappers  : none
elements  : <ShowValidationWarnings>, <ShowValidationAlerts>, <ShowTrailingDelimiters>, <ShowUnusedRecords>, <ShowUserDefinedRecords>

Element: ValidationPage.ShowValidationWarnings

The GEDCOM Validator categorizes validation discrepancies as either errors or warnings. Errors are defined as critical issues that prevent the record from being processed. Warnings are issues that violate the GEDCOM specification, but otherwise are not critical. By default, Gigatrees includes all warnings in its GEDCOM Validation report. Setting this option to false, prevents warnings from appearing in the report.

element         : <ShowValidationWarnings>
container       : <ValidationPage>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<ValidationPage> 
  <ShowValidationWarnings>
    false
  </ShowValidationWarnings>
</ValidationPage>

Element: ValidationPage.ShowValidationAlerts

The GEDCOM Validator, besides performing validation tests, can also detect items of possible interest to the user. These are called alerts. By default, Gigatrees excludes all alerts from its GEDCOM Validation report. Setting this option to true, includes them in the report.

element         : <ShowValidationAlerts>
container       : <ValidationPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<ValidationPage> 
  <ShowValidationAlerts>
    true
  </ShowValidationAlerts>
</ValidationPage>

Element: ValidationPage.ShowTrailingDelimiters

The GEDCOM Validator categorizes validation discrepancies as either errors or warnings. Errors are defined as critical issues that prevent the record from being processed. Warnings are issues that violate the GEDCOM specification, but otherwise are not critical. One of the warnings it detects is the presence of trailing delimiters. These are tags or id references that are followed only by a space or tab character. Even those these violate the specification, many genealogy applications include them in the GEDCOM exports. There are generally considered benign and have a tendency to fill up the GEDCOM Validation report. By default, Gigatrees excludes all these warnings from its GEDCOM Validation report. Setting this option to true, includes them in the report. Enabling and disabling this option has no effect if the ValidationPage.ShowValidationWarnings option is disabled.

element         : <ShowTrailingDelimiters>
container       : <ValidationPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<ValidationPage> 
  <ShowTrailingDelimiters>
    true
  </ShowTrailingDelimiters>
</ValidationPage>

Element: ValidationPage.ShowUnusedRecords

The GEDCOM Validator, besides performing validation tests, can also detect items of possible interest to the user. These are called alerts. One of the alerts it detects is the presence of unused logical records. These are logical records that are not referenced elsewhere in the fail. By default, Gigatrees excludes these alerts from its GEDCOM Validation report. Setting this option to true, includes them in the report. Enabling and disabling this option has no effect if the ValidationPage.ShowValidationAlerts option is disabled.

element         : <ShowUnusedRecords>
container       : <ValidationPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<ValidationPage> 
  <ShowUnusedRecords>
    true
  </ShowUnusedRecords>
</ValidationPage>

Element: ValidationPage.ShowUserDefinedRecords

The GEDCOM Validator, besides performing validation tests, can also detect items of possible interest to the user. These are called alerts. One of the alerts it detects is the presence of user defined records and record fields. These are tags that begin with an underscore (_). By default, Gigatrees excludes these alerts from its GEDCOM Validation report. Setting this option to true, includes them in the report. Enabling and disabling this option has no effect if the ValidationPage.ShowValidationAlerts option is disabled.

element         : <ShowUserDefinedRecords>
container       : <ValidationPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<ValidationPage> 
  <ShowUserDefinedRecords>
    true
  </ShowUserDefinedRecords>
</ValidationPage>

Section: DataAlertsPage

The DataAlertsPage section contains elements associated with the <DataAlerts> page.

section   : <DataAlertsPage>
container : <Options>
wrappers  : none
elements  : <ShowUnmappableLocations>, <ShowPersonsWithUnsupportedClaims>, <ShowPersonsWithUndocumentedParents>, <ShowPersonsMissingOneParent>, <ShowPersonsWithNoParents>, <AlternateNamesFile>	

Element: DataAlertsPage.ShowUnmappableLocations

This option is disabled by default. Setting this option to true will add an additional tab to the Data Validation report that shows the locations in your database for which no coordinates were obtained either through GEDCOM records directly or through lookup.

element         : <ShowUnmappableLocations>
container       : <DataAlertsPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<DataAlertsPage> 
  <ShowUnmappableLocations>
    true
  </ShowUnmappableLocations>
</DataAlertsPage>

Element: DataAlertsPage.ShowPersonsWithUnsupportedClaims

This option is disabled by default. Setting this option to true will add an additional tab to the Data Validation report that shows every person in your database that has an claim, but is missing supporting evidence. This allows users to quickly locate individuals that need to be focused on during research.

element         : <ShowPersonsWithUnsupportedClaims>
container       : <DataAlertsPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<DataAlertsPage> 
  <ShowPersonsWithUnsupportedClaims>
    true
  </ShowPersonsWithUnsupportedClaims>
</DataAlertsPage>

Element: DataAlertsPage.ShowPersonsWithUndocumentedParents

This option is disabled by default. Setting this option to true will add an additional tab to the Data Validation report that shows every person in your database that has a parents, but is missing supporting evidence. This allows users to quickly locate individuals that need to be focused on during research. The GEDCOM standard does not provide out-of-the-box ready solutions for adding sources to parental associations, therefore enabling this option is only useful for users who have that ability and have done so.

element         : <ShowPersonsWithUndocumentedParents>
container       : <DataAlertsPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<DataAlertsPage> 
  <ShowPersonsWithUndocumentedParents>
    true
  </ShowPersonsWithUndocumentedParents>
</DataAlertsPage>

Element: DataAlertsPage.ShowPersonsMissingOneParent

This option is disabled by default. Setting this option to true will add an additional tab to the Data Validation report that shows every person in your database that has one parent, but is missing the other. This allows users to quickly locate individuals that need to be focused on during research.

element         : <ShowPersonsMissingOneParent>
container       : <DataAlertsPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<DataAlertsPage> 
  <ShowPersonsMissingOneParent>
    true
  </ShowPersonsMissingOneParent>
</DataAlertsPage>

Element: DataAlertsPage.ShowPersonsWithNoParents

This option is disabled by default. Setting this option to true will add an additional tab to the Data Validation report that shows every person in your database that is missing both parents. This allows users to quickly locate individuals that need to be focused on during research.

element         : <ShowPersonsWithNoParents>
container       : <DataAlertsPage>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<DataAlertsPage> 
  <ShowPersonsWithNoParents>
    true
  </ShowPersonsWithNoParents>
</DataAlertsPage>

Element: DataAlertsPage.AlternateNamesFile

The Data Validation report will include persons having more than one child with the same name. These are considered duplicate children and occur most often when databases with overlapping families are merged. Gigatrees will only use primary names, that is the first name found in the database having the highest certainty assessment. Since names can have multiple spellings, Gigatrees allows users to specify the disk path to a semicolon (;) delimited file that contains the alternate spelling in the first column, and the common spelling in the second column.

element         : <AlternateNamesFile>
container       : <DataAlertsPage>
wrapper         : none
value type      : filename
default value   : not set
possible values : no restrictions

Example

<DataAlertsPage> 
  <AlternateNamesFile>
    altnames.txt
  </AlternateNamesFile>
</DataAlertsPage>

A typical alternate names file should look like the following and can be expanded as needed:

wm;william
wm.;william
will;william
bill;william
guillaume;william

Section: ProfilePages

The ProfilePages section contains elements associated with individual <Profiles> pages.

section   : <ProfilePages>
container : <Options>
wrappers  : none
elements  : <EnableMaps>, <EnableCensusTables>, <EnableAncestorLists>, <IndicateUnassociatedAncestorsInCharts>, <EnableEthnicityCalculation>, <RestrictEthnicityCalculationToLiving> 

Element: ProfilePages.EnableMaps

By default a origin map tab is included on each person's profile page showing the location of the earliest event for each of that person's ancestors. Setting this option to false will exclude this tab. Doing so may will reduce the size of the web page.

element         : <EnableMaps>
container       : <ProfilePages>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<ProfilePages> 
  <EnableMaps>
    false
  </EnableMaps>
</ProfilePages>

Element: ProfilePages.EnableCensusTables

By default a census table tab is included on each qualifying person's profile page showing a census table for each of that person\'s ancestors. In order to qualify, a person must have had ancestors that were living during one of the years listed in the CensusTables.CensusYears. Setting this option to false will exclude this tab. Doing so may will reduce the size of qualifying web page.

element         : <EnableCensusTables>
container       : <ProfilePages>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<ProfilePages> 
  <EnableCensusTables>
    false
  </EnableCensusTables>
</ProfilePages>

Element: ProfilePages.EnableAncestorLists

By default an Ancestors tab is included on each qualifying person's profile page showing an ancestor list for each of that person's ancestors. In order to qualify, a person must have at a minimum, parents. Setting this option to false will exclude this tab. Doing so may will reduce the size of qualifying web page.

element         : <EnableAncestorLists>
container       : <ProfilePages>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<ProfilePages> 
  <EnableAncestorLists>
    false
  </EnableAncestorLists>
</ProfilePages>

Element: ProfilePages.IndicateUnassociatedAncestorsInCharts

By default an Ancestors chart tab is included on each profile page. By default, this option is disabled. Setting this option to true will flag ancestors whose parents are not associated by graying out their chart element. In order for a parent to be considered associated, they must have an association flag indicating that they are the biological parent of the child. Gigatrees supports a number of GEDCOM and vendor specific association flags. Many genealogy applications, however, do not use these, so user\'s should only enable this option if theirs does.

element         : <IndicateUnassociatedAncestorsInCharts>
container       : <ProfilePages>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<ProfilePages> 
  <IndicateUnassociatedAncestorsInCharts>
    true
  </IndicateUnassociatedAncestorsInCharts>
</ProfilePages>

Element: ProfilePages.EnableEthnicityCalculation

By default an ethnicity estimate tab is included on individual profile page showing their estimated percentage of ethnicity of each country based upon the location of the earliest event for each of that person's root ancestors. Setting this option to false will exclude this tab. An ethnicity of Unknown indicates that the there are root ancestors without events that include locations. An ethnicity of Duplicates indicates that a small percentage of duplicate ancestry from consanguinity has not been calculated. An ethnicity matching a person's country of birth, for instance, Americans may see "United States", indicates that their are ancestors for whom no immigrant ancestors were found.

element         : <EnableEthnicityCalculation>
container       : <ProfilePages>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<ProfilePages> 
  <EnableEthnicityCalculation>
    false
  </EnableEthnicityCalculation>
</ProfilePages>

Element: ProfilePages.RestrictEthnicityCalculationToLiving

By default an ethnicity estimate tab is only included on living person's profile pages. Setting this option to false will include this tab on every person's profile page who has ancestors.

element         : <RestrictEthnicityCalculationToLiving>
container       : <ProfilePages>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<ProfilePages> 
  <RestrictEthnicityCalculationToLiving>
    false
  </RestrictEthnicityCalculationToLiving>
</ProfilePages>

Section: TimelinePages

The TimelinePages section contains elements associated with the <Timelines> pages.

section   : <TimelinePages>
container : <Options>
wrappers  : none
elements  : <ShowEstimatedBirthdates>, <ShowQualifiedDates> 

Element: TimelinePages.ShowEstimatedBirthdates

By default birth events with years estimated by Gigatrees, when the Security.EstimateBirthdates option is enabled, are not included in the <Timelines> pages. Setting this option to true will includes these events as well.

element         : <ShowEstimatedBirthdates>
container       : <TimelinePages>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<TimelinePages> 
  <ShowEstimatedBirthdates>
    true
  </ShowEstimatedBirthdates>
</TimelinePages>

Element: TimelinePages.ShowQualifiedDates

By default qualified dates are not included in the <Timelines> pages. Qualified dates are those containing qualifiers such as abt or bef. Setting this option to false will exclude these events.

element         : <ShowQualifiedDates>
container       : <TimelinePages>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<TimelinePages> 
  <ShowQualifiedDates>
    false
  </ShowQualifiedDates>
</TimelinePages>

Section: CensusTables

The CensusTables section contains elements associated with the census tables. Census tables appear on both individual <Profiles> pages and on <Census> pages.

section   : <CensusTables>
container : <Options>
wrappers  : none
elements  : <CensusYears>, <DescendantId> 

Element: CensusTables.CensusYears

In order to build a census table, a list of census years need to be defined. By default, a list of U.S. Federal Census years are included. American users may wish to include state census years as well. International users probably want to overwrite these with their own country's census years.

element         : <CensusYears>
container       : <CensusTables>
wrapper         : none
value type      : comma-delimited positive integers
default value   : 1790, 1800, 1810, 1820, 1830, 1840, 1850, 1860, 1870, 1880, 1900, 1910, 1920, 1930, 1940
possible values : no restrictions

Example (U.S. Federal Census)

<CensusTables> 
  <CensusYears>
    1790, 1800, 1810, 1820, 1830, 1840, 1850, 1860, 1870, 1880, 1900, 1910, 1920, 1930, 1940
  </CensusYears>
</CensusTables>

Element: CensusTables.DescendantId

Census tables are included on every qualifying person's profile page. In order to qualify, a person must have had ancestors that were living during one of the years listed in the CensusTables.CensusYears. Users may want to build separate <Census> pages that will appear in the menu with their own index. They can do this by setting the logical record IDs for a subset of individuals here. The logical record ID must be valid and the associated person must qualify to appear in the index. If only a single logical record ID is specified, the menu will link to that census table directly without using an index. Users may choose to disable the ProfilePages.EnableCensusTables option and use this feature in its place.

element         : <DescendantId>
container       : <CensusTables>
wrapper         : none
value type      : comma-delimited string
default value   : no set
possible values : no restrictions

Example

<CensusTables> 
  <DescendantId> P1 </DescendantId>
  <DescendantId> I1 </DescendantId>
</CensusTables>

Section: AncestorLists

The AncestorLists section contains elements associated with the ancestor lists. Ancestor Lists appear on both individual <Profiles> pages and on standalone <Ancestors> pages. Ancestors List can be configured to use the traditional Ahnen number system, or can be configured as Generation Lists using the AGNUS numbering system. When configuring as a standalone page, a Descendant ID must be specified for the root person. Ancestors Lists include a certainty assessment for each link derived from the sources references in the parental association fields of each ancestor. The certainty assessments in ancestor lists differ from those used on individual profile pages in that they represent the certainty between the root person and the ancestor listed, not the ancestor listed and their child.

section   : <AncestorLists>
container : <Options>
wrappers  : none
elements  : <Agnus>, <DescendantId> 

Element: AncestorLists.Agnus

Ancestor lists are built using Agnus (Yet Another Genealogy NUmbering System). Agnus provides numerous advantages over the traditional Ahnen numbering system when publishing ancestor lists online. Setting this option to false will revert the ancestor list to the old style. This option also effects <Descendants pages and <Kinships pages.

element         : <Agnus>
container       : <AncestorLists>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<AncestorLists> 
  <Agnus>
    true
  </Agnus>
</AncestorLists>

Element: AncestorLists.DescendantId

An Ancestors tab is included on each qualifying person's profile page showing an ancestor list for each of that person's ancestors. In order to qualify, a person must have at a minimum, parents. Users may want to build separate <Ancestors> pages that will appear in the menu with their own index. They can do this by setting the logical record IDs for a subset of individuals here. The logical record ID must be valid and the associated person must qualify to appear in the index. If only a single logical record ID is specified, the menu will link to that ancestor list directly without using an index. Users may choose to disable the ProfilePages.EnableAncestorLists option and use this feature in its place.

element         : <DescendantId>
container       : <AncestorLists>
wrapper         : none
value type      : comma-delimited string
default value   : no set
possible values : no restrictions

Example

<AncestorLists> 
  <DescendantId> P1 </DescendantId>
  <DescendantId> I1 </DescendantId>
</AncestorLists>

Section: DescendantList

The Descendants section contains elements associated with the <Descendants> pages. Descendant Lists are specified by the wrappers, <DList> and are included in the menu in their own index. Descendant lists are defined by specifying the logical record ID of the descendant and the logical record ID of the ancestor. The logical record IDs must be valid and the associated persons must qualify to appear in the index. If only a single wrapper is specified, the menu will link to that descendant list directly without using an index. Descendant lists are similar to Ancestor Lists, but include only those ancestors that are in a direct line between the descendant and the ancestor.

section   : <DescendantList>
container : <Options>
wrappers  : none
elements  : <DescendantId>, <AncestorId>

Example

<DescendantList> <DescendantId> P1 </DescendantId> <AncestorId> P1000 </AncestorId> </DescendantList> 
<DescendantList> <DescendantId> I1 </DescendantId> <AncestorId> I1000 </AncestorId> </DescendantList>

Element: DescendantLists.DescendantId

Set the logical record ID of the Descendant List's descendant.

element         : <DescendantId>
container       : <DescendantLists>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: DescendantLists.AncestorId

Set the logical record ID of the Descendant List's ancestor.

element         : <AncestorId>
container       : <DescendantLists>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Section: Blog

The Blog section contains elements associated with the article pages.

section   : <Blog>
container : <Options>
wrappers  : none
elements  : <IndexSize>, <ModifySort>, <IdSort>, <ShortDates>, <EnableFeed>, <FeedsIncludeContent>, <FeedSize>, <FeedSyndicationHours>, <AutoFeedAbstractLength>, <PrependCategoryToTitle>, <CategoryFilenamePrefix>, <TagFilenamePrefix>, <AuthorFilenamePrefix>, <ListFilenameSuffix>, <FeaturedImage>, <FeaturedCredit>, <MinTagSize> 

Element: Blog.IndexSize

The Blog.IndexSize is used to set the maximum number of entries that will appear on each Article index page.

element         : <IndexSize>
container       : <Blog>
wrapper         : none
value type      : positive integer
default value   : 6
possible values : numbers > 0

Example

<Blog> 
  <IndexSize>
    10
  </IndexSize>
</Blog>

Element: Blog.ModifySort

The default articles sort order is by reversed publication date. Enabling this option specifies that the article sort order should be by reversed modified date. The modified date is drawn from the GEDCOM @NOTE.CHAN.DATE or the user defined @NOTE._MOD field.

element         : <ModifySort>
container       : <Blog>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Blog> 
  <ModifySort>
    true
  </ModifySort>
</Blog>

Element: Blog.IdSort

The default articles sort order is by reversed publication date. Enabling this option specifies that the article sort order should be by reversed record id. Since most applications allocated record ids in numerical order, this generally acts like the default sort order, except that users can manually change their record ids to exhibit more control over the sort order. For example, to create a sticky post, one that remains 1st in order, the record id should be set larger than any of the others; if records are allocated as N1, N2, N3 ... then setting a record id to N100000 would make it sticky for a very long time.

element         : <IdSort>
container       : <Blog>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Blog> 
  <IdSort>
    true
  </IdSort>
</Blog>

Element: Blog.ShortDates

By default, article dates are displayed in long format, i.e. January 12, 2001. Enabling this option will cause them to be displayed in short format, i.e. Jan 12, 2001.

element         : <ShortDates>
container       : <Blog>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Blog> 
  <ShortDates>
    true
  </ShortDates>
</Blog>

Element: Blog.EnableFeed

By default, the blog feed is enabled.

element         : <EnableFeed>
container       : <Blog>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Blog> 
  <EnableFeed>
    true
  </EnableFeed>
</Blog>

Element: Blog.FeedsIncludeContent

By default, blog feeds include the featured image and the full content of the post. To exclude the post content from the feed, disable this option.

element         : <FeedsIncludeContent>
container       : <Blog>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Blog> 
  <FeedsIncludeContent>
    true
  </FeedsIncludeContent>
</Blog>

Element: Blog.FeedSize

This option specifies the number of articles to include in the feed.

element         : <FeedSize >
container       : <Blog>
wrapper         : none
value type      : positive integer
default value   : 6
possible values : numbers > 0

Example

<Blog> 
  <FeedSize>
    3
  </FeedSize>
</Blog>

Element: Blog.FeedSyndicationHours

This option specifies to feed readers how often they should refresh the feed. This option allow you to control how often feed readers will access your blog.

element         : <FeedSyndicationHours>
container       : <Blog>
wrapper         : none
value type      : positive integer
default value   : 1
possible values : numbers > 0

Example

<Blog> 
  <FeedSyndicationHours>
    24
  </FeedSyndicationHours>
</Blog>

Element: Blog.AutoFeedAbstractLength

When no abstract is specified, one will be created automatically from post content. This option allows you to control how many words will be displayed in the abstract starting with the beginning of the post content.

element         : <AutoFeedAbstractLength  >
container       : <Blog>
wrapper         : none
value type      : positive integer
default value   : 20
possible values : numbers > 0

Example

<Blog> 
  <AutoFeedAbstractLength>
    100
  </AutoFeedAbstractLength>
</Blog>

Element: Blog.PrependCategoryToTitle

Enabling this option will prepend the article category name to the article title for both the article heading (i.e. Category Name: Title of Article) and the article filename (i.e. category-name-title-of-article.html).

element         : <PrependCategoryToTitle>
container       : <Blog>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Blog> 
  <PrependCategoryToTitle>
    true
  </PrependCategoryToTitle>
</Blog>

Element: Blog.CategoryFilenamePrefix

Gigatrees will create a paginated list index for categories and individual pages for each category. It will use this value to prepend the filename.

element         : <CategoryFilenamePrefix>
container       : <Blog>
wrapper         : none
value type      : string
default value   : category
possible values : lowercase, not blank, unique among prefixes (it will be converted to a filename slug)

Example

<Blog> 
  <CategoryFilenamePrefix>
    scattergory
  </CategoryFilenamePrefix>
</Blog>

Element: Blog.TagFilenamePrefix

Gigatrees will create a paginated list index for hash tags and individual pages for each hash tag. It will use this value to prepend the filename.

element         : <TagFilenamePrefix>
container       : <Blog>
wrapper         : none
value type      : string
default value   : tag
possible values : lowercase, not blank, unique among prefixes (it will be converted to a filename slug)

Example

<Blog> 
  <TagFilenamePrefix>
    hashtag
  </TagFilenamePrefix>
</Blog>

Element: Blog.AuthorFilenamePrefix

Gigatrees will create a paginated list index for authors and individual pages for each author. It will use this value to prepend the filename.

element         : <AuthorFilenamePrefix>
container       : <Blog>
wrapper         : none
value type      : string
default value   : author
possible values : lowercase, not blank, unique among prefixes (it will be converted to a filename slug)

Example

<Blog> 
  <AuthorFilenamePrefix>
    names
  </AuthorFilenamePrefix>
</Blog>

Element: Blog.ListFilenameSuffix

Gigatrees will create a paginated list index for authors, categories and tags. It will use this value to append the filename.

element         : <ListFilenameSuffix>
container       : <Blog>
wrapper         : none
value type      : string
default value   : list
possible values : lowercase, not blank, unique among prefixes (it will be converted to a filename slug)

Example

<Blog> 
  <ListFilenameSuffix>
    index
  </ListFilenameSuffix>
</Blog>

Element: Blog.FeaturedImage

Use this option to specify 1 or more generic images that will be used for article featured images, when none are defined for an article. It should be followed directly by the Blog.FeaturedCredit option if applicable. Generic featured images will be allocated randomly.

element         : <FeaturedImage>
container       : <Blog>
wrapper         : none
value type      : string
default value   : none
possible values : no restrictions

Example

<Blog> 
  <FeaturedImage>
    https://c5.staticflickr.com/1/28/96998932_9bd3f09786_b.jpg
  </FeaturedImage>
</Blog>

Element: Blog.FeaturedCredit

Use this option to specify the credit associated with the previous Blog.FeaturedImage option.

element         : <FeaturedCredit>
container       : <Blog>
wrapper         : none
value type      : string
default value   : none
possible values : no restrictions

Example

<Blog> 
  <FeaturedImage>
    https://c5.staticflickr.com/1/28/96998932_9bd3f09786_b.jpg
  </FeaturedImage>
  <FeaturedCredit>
    Photo courtesy of [[a href="https://www.flickr.com/photos/clearlyambiguous/" target="_blank"]]Scott Robinson[[/a]]
  </FeaturedCredit>
</Blog>

Element: Blog.MinTagSize

The Blog.MinTagSize is used to set the minimum size allowed for a hash tag including the pound size.

element         : <MinTagSize>
container       : <Blog>
wrapper         : none
value type      : positive integer
default value   : 6
possible values : numbers > 0

Example

<Blog> 
  <MinTagSize>
    3
  </MinTagSize>
</Blog>

Section: Misc

The Misc section contains miscellaneous options.

section   : <Misc>
container : <Options>
wrappers  : none
elements  : <ReportUnsupportedRecords>, <CalculateKinshipUsingCanonLaw>, <ForceThumbnails>, <CleanLineBreaks>

Element: Misc.ReportUnsupportedRecords

When building a Gigatrees, the GEDCOM file will be validated against the GEDCOM 5.5 grammar and then against Gigatrees expanded dictionary. This is similar to how the Validator validates a GEDCOm file, except that the Gigatrees expanded dictionary is far more inclusive than any of the existing GEDCOM dictionaries. The Gigatrees expanded dictionary attempts to include support for all usable GEDCOM tags, that is tags that can affect how the GEDCOM data content is displayed. Tags that do not affect the generated web pages are considered unsupported. By default, Gigatrees does not display these in the console window or in the build log. User's wanting a complete list of unsupported tags can enable this option by setting it to true.

element         : <ReportUnsupportedRecords>
container       : <Misc>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Misc> 
  <ReportUnsupportedRecords>
    true
  </ReportUnsupportedRecords>
</Misc>

Element: Misc.CalculateKinshipUsingCanonLaw

By default, consanguinity, or the degree of kinship between spouses, is calculated using civil law. Setting this option to true will force kinships to be calculated using canon law.

Civil law:
0 = self
1 = parent, child
2 = sibling
3 = aunt, uncle, niece, nephew
4 = first cousins
5 = first cousin once removed
6 = second cousin
7 = second cousin once removed
8 = third cousin
etc.

Canon law:
0 = self
1 = parent, child, sibling
2 = aunt, uncle, niece, nephew, first cousins
3 = first cousin once removed, second cousin
4 = second cousin once removed, third cousin
etc.

element         : <CalculateKinshipUsingCanonLaw>
container       : <Misc>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Misc> 
  <CalculateKinshipUsingCanonLaw>
    true
  </CalculateKinshipUsingCanonLaw>
</Misc>

Element: Misc.ForceThumbnails

By default, source images that do not also define thumbnails web paths will use default images to as thumbnails. Setting this option to true will force source images to use the image file as the thumbnail instead. Enabling this feature does not create small thumbnail images, but instead fits the source image into the thumbnail wrapper. This causes all source images referenced on a page to be fully loaded on page access, which can slow down page loading.

element         : <ForceThumbnails>
container       : <Misc>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Misc> 
  <ForceThumbnails>
    true
  </ForceThumbnails>
</Misc>

Element: Misc.CleanLineBreaks

Gigatrees treats all carriage returns (or newlines) found in article text, as well as anywhere else in GEDCOM data as HTML break characters. This is also true for GEDCOM continuation record fields (CONT). This allows files missing continuation tags to be processed correctly. It also allows for logical records inserted during configuration using the InsertRecord option to not require continuation tags to be present. This can result in unexpected line breaks in text caused when embedding HTML tags within GEDCOM data, because many such HTML tags, such as header, page, and blockquotes have implied line breaks built into their opening and close elements. To minimize these unexpected breaks, users generally need to butt their HTML tags up against one another rather than putting them on separate lines. The Misc.CleanLineBreaks option when enabled will convert multiple breaks to single breaks, and remove extra breaks around some of the more common HTML opening and closing tags. Users can still force extra breaks by adding the HTML non-breaking space characacter entity (&nbsp;) to a blank line. This option allows large complex notes and source citation data embedding HTML to add extra blank lines between HTML sections for improved readability.

element         : <CleanLineBreaks>
container       : <Misc>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Misc> 
  <CleanLineBreaks>
    true
  </CleanLineBreaks>
</Misc>

Section: Coordinates

The Coordinates section contains options associated with using the coordinates lookup services. Gigatrees uses location coordinates to populate the markers on the Population Distribution Heatmap page, and on the Origin Map tabs found on the individual Profile pages. When the coordinates associated with a location's description are not found in a GEDCOM file, Gigatrees can use these services to find them. Coordinates will be saved to an unencrypted, SQLite3 database file and retrieved each time the application runs. Coordinates are retrieved from the services in English only. International users may want to leave this feature disabled. Once all coordinates have been resolved, the location services will stopped being queried.

By default, this feature is disabled and the database is set to gigatrees.sqlite. A gigatrees.sqlite file containing no coordinates is included in the installation folder.

Gigatrees expects location descriptions to be listed in ascending hierarchical order and delimited by commas (i.e. city, county, state, country). Gigatrees attempts to cleanup location descriptions by adding the country when missing, replacing abbreviations and delimiting the description properly. This is the description that will appear throughout the website pages. If none of the supported services can locate a description, Gigatrees will look for a partial match. Mapping services, when returning coordinates for large areas such as a city or county, use an arbitrary point within the boundary of that area approximating the geographic center or in some cases the government center.

All mapping services throttle their use. This is usually in the form of allowed queries per second, per hour, per day, etc. It may, therefore, take several builds until all of the locations have been processed and resolved.

section   : <Coordinates>
container : <Options>
wrappers  : none
elements  : <EnableService>, <Database>, <GeonamesSerivceId>

Element: Coordinates.EnableService

By default this option is disabled. Setting this option to true will enable the coordinate lookup service.

element         : <EnableService>
container       : <Coordinates>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Coordinates> 
  <EnableService>
    true
  </EnableService>
</Coordinates>

Element: Coordinates.Database

By default, Gigatrees sets the Database file to gigatees.sqlite, the default value. it can be changed by setting the Database filename. The Database filename can be prepended with an absolute or relative drive path. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes.

element         : <Database>
container       : <Coordinates>
wrapper         : none
value type      : filename
default value   : gigatrees.sqlite
possible values : no restrictions

Example

<Coordinates> 
  <Database>
    gigatrees.sqlite
  </Database>
</Coordinates>

Element: Coordinates.GeonamesServiceId

Gigatrees uses several coordinate lookup services. Of these, Geonames is the only one that requires a service Id.

element         : <GeonamesServiceId>
container       : <Coordinates>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Coordinates> 
  <GeonamesServiceId>
    12345abcde
  </GeonamesServiceId>
</Coordinates>

Section: Plugin

The Plugin section allows users to specify which plugins to load when the application runs. See the installlation section on Plugins for more information.

section         : <Plugin>
container       : <Options>
wrappers        : none
elements        : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Plugin> 
    jquery.CDN
</Plugin>

Section: Disqus

The Disqus section contains options associated with using the Disqus commenting system. The service is enabled by setting the Disqus.ServiceId below. When enabled, All Individual, Source and Article pages will append a comments section to the bottom of the page allowing visitors to ask questions and provide feedback.

section   : <Disqus>
container : <Options>
wrappers  : none
elements  : <Domain>, <ServiceId>, <BlogEnabled>, <SourceEnabled>, <PersonEnabled>

Element: Disqus.Domain

In order to use Disqus, you must provide the web path to your family tree.

element         : <Domain>
container       : <Disqus>
wrapper         : none
value type      : filename
default value   : not set
possible values : no restrictions

Example

<Disqus> 
  <Domain>
    http://domain.com/the-jones-family-tree
  </Domain>
</Disqus>

Element: Disqus.ServiceId

In order to use Disqus, you must provide an service id.

element         : <ServiceId>
container       : <Disqus>
wrapper         : none
value type      : filename
default value   : not set
possible values : no restrictions

Example

<Disqus> 
  <ServiceId>
    12345abcde
  </ServiceId>
</Disqus>

Element: Disqus.BlogEnabled

Allows the Disqus commenting system to appear at the bottom of Article pages.

element         : <ServiceId>
container       : <Disqus>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Disqus> 
  <BlogEnabled>
    false
  </BlogEnabled>
</Disqus>

Element: Disqus.SourceEnabled

Allows the Disqus commenting system to appear at the bottom of Source pages.

element         : <ServiceId>
container       : <Disqus>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Disqus> 
  <SourceEnabled>
    false
  </SourceEnabled>
</Disqus>

Element: Disqus.PersonEnabled

Allows the Disqus commenting system to appear at the bottom of individual Profile pages.

element         : <ServiceId>
container       : <Disqus>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1, false, 0

Example

<Disqus> 
  <PersonEnabled>
    false
  </PersonEnabled>
</Disqus>

Section: Translation

The Translation section contains options associated with translating Gigatrees into other languages. International users can use this feature to translate Gigatrees into their native language. English speakers can also use this feature to change the text displayed. GEDCOM data is not translated. Users can translate their web pages either manually or using a translation service. The input and output files are semi-colon (;) delimited files containing all of the display strings generated by Gigatrees. The first column of the tables contain the default display strings and the second columns contain the translated display strings. The installation folder contains two files. The first, lang.txt does not contain any translations. The second, en.txt contains English translations.

section   : <Translation>
container : <Options>
wrappers  : none
elements  : <InputFile>, <OutputFile>, <EnableService>, <LanguageCode>, <MicrosoftService>, <GoogleService>, <ServiceId>, <ServiceKey>

Element: Translation.InputFile

The input file once read uses the translated strings in place of the display strings. The filename can be prepended with an absolute or relative drive path. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes.

element         : <InputFile>
container       : <Translation>
wrapper         : none
value type      : filename
default value   : no set
possible values : no restrictions

Example

<Translation> 
  <InputFile>
    lang.txt
  </InputFile>
</Translation>

Element: Translation.OutputFile

After the translation service has completed looking up translations for the default display strings, the entire string table is saved to the output file. The filename can be prepended with an absolute or relative drive path. Drive paths should use backslashes instead of forward slashes. The application will fix incorrect slashes.

element         : <OutputFile>
container       : <Translation>
wrapper         : none
value type      : filename
default value   : not set
possible values : no restrictions

Example

<Translation> 
  <OutputFile>
    en.txt
  </OutputFile>
</Translation>

Element: Translation.EnableService

By default, Gigatrees is in manual translation mode. Setting this option to true enables auto-translation mode.

element         : <EnableService>
container       : <Translation>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1, false, 0

Example

<Translation> 
  <EnableService>
    true
  </EnableService>
</Translation>

Element: Translation.LanguageCode

When using the translation service, a language code must be provided so that the external translation services will know which language to translate the default display strings into.

element         : <LanguageCode>
container       : <Translation>
wrapper         : none
value type      : string
default value   : not set
possible values : (see comments)

Example

<Translation> 
  <LanguageCode>
    fr
  </LanguageCode>
</Translation>

Element: Translation.MicrosoftService

By default, Gigatrees will use the Microsoft translation service. Setting this option to false will disable the service.

element         : <MicrosoftService>
container       : <Translation>
wrapper         : none
value type      : boolean
default value   : true
possible values : true, 1 false, 0

Example

<Translation> 
  <MicrosoftService>
    false
  </MicrosoftService>
</Translation>

Element: Translation.GoogleService

By default, Gigatrees will use the Microsoft translation service. Setting this option to true will force it to use the Google translation service.

element         : <GoogleService>
container       : <Translation>
wrapper         : none
value type      : boolean
default value   : false
possible values : true, 1 false, 0

Example

<Translation> 
  <GoogleService>
    true
  </GoogleService>
</Translation>

Element: Translation.ServiceId

All external translation services require an service id.

element         : <ServiceId>
container       : <Translation>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Translation> 
  <ServiceId>
    12345abcde
  </ServiceId>
</Translation>

Element: Translation.ServiceKey

All external translation services require an service key.

element         : <ServiceKey>
container       : <Translation>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<Translation> 
  <ServiceKey>
    12345abcde
  </ServiceKey>
</Translation>

There are several ways to setup and use the translation feature. The first example is for an English speaking user to wanting to change one or more of the default display strings. The user would need to first copy the en.txt file into en-modified.txt and then update that file accordingly.

<Translation> 
  <InputFile>     en-modified.txt  </InputFile>
  <LanguageCode>  en               </LanguageCode>
  <EnableService> false            </EnableService>
</Translation>

The second example is for a French user wanting to manually translate the default display strings into French. The user would need to first copy the lang.txt file into fr.txt and then update that file accordingly.

<Translation> 
  <InputFile>     fr.txt  </InputFile>
  <LanguageCode>  fr      </LanguageCode>
  <EnableService> false   </EnableService>
</Translation>

The third example is for a French user wanting to automatically translate the default display strings into French using the Microsoft translation service. The user would need to first copy the lang.txt file into fr.txt without modification.

<Translation> 
  <InputFile>         fr.txt      </InputFile>
  <OutputFile>        fr.txt      </OutputFile>
  <EnableService>     true        </EnableService>
  <LanguageCode>      fr          </LanguageCode>
  <MicrosoftService>  true        </MicrosoftService>
  <GoogleService>     false       </GoogleService>
  <ServiceId>         12345abcde  </ServiceId>
  <ServiceKey>        12345abcde  </ServiceKey>
</Translation>

The third example is for a French user wanting to automatically translate the default display strings into French using the Google translation service. The user would need to first copy the lang.txt file into fr.txt without modification.

<Translation> 
  <InputFile>         fr.txt      </InputFile>
  <OutputFile>        fr.txt      </OutputFile>
  <EnableService>     true        </EnableService>
  <LanguageCode>      fr          </LanguageCode>
  <MicrosoftService>  false       </MicrosoftService>
  <GoogleService>     true        </GoogleService>
  <ServiceId>         12345abcde  </ServiceId>
  <ServiceKey>        12345abcde  </ServiceKey>
</Translation>

Section: SourceType

The SourceType section contains options associated with associating source types with source categories. There is no limit on how many SourceType sections can be specified.

section   : <SourceType>
container : <Options>
wrappers  : none
elements  : <Display>, <Category>

Element: SourceType.Display

Specify the source type string.

element         : <Display>
container       : <SourceType>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

Element: SourceType.Category

Specify the associated source category.

element         : <Category>
container       : <SourceType>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions
<SourceType> <Display> Census </Display> <Category> original </Category> </SourceType>

Section: ReplaceText

The Replace section contains options associated with replacing GEDCOM data strings. There is no limit on how many ReplaceText sections can be specified.

section   : <ReplaceText>
container : <Options>
wrappers  : none
elements  : <Text>, <Display>

Element: ReplaceText.Text

Specify the string to replace.

element         : <Text>
container       : <ReplaceText>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: ReplaceText.Display

Specify the replacement string.

element         : <Display>
container       : <ReplaceText>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Example

<ReplaceText> 
  <Text>    c:\photos\                </Text> 
  <Display> http://domain.com/photos/ </Display> 
</ReplaceText>

<ReplaceText> 
  <Text> 1900/1     </Text> 
  <Display> 1900/01 </Display> 
</ReplaceText>

Section: InsertRecord

The InsertRecord section contains options associated with inserting logical records into a GEDCOM database without modifying the file. Logical records are by definition level 0 records. There is no limit on how many InsertRecord sections can be specified. This option is ideally suited for adding GEDCOM Extensions non-intrusively.

section   : <InsertRecord>
container : <Options>
wrappers  : none
elements  : <RecordId>, <Tag>, <Value> 

Element: InsertRecord.RecordId

Specify the record id to insert.

element         : <RecordId>
container       : <InsertRecord>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: InsertRecord.Tag

Specify the tag to insert.

element         : <Tag>
container       : <InsertRecord>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: InsertRecord.Value

Specify the tag value.

element         : <Value>
container       : <InsertRecord>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Examples

To add a new research note N1:

<InsertRecord> 
  <RecordId> N1                                        </RecordId> 
  <Tag>      NOTE                                      </Tag> 
  <Value>    The story of Jeff Jones begins thusly, ...</Value> 
</InsertRecord>

Section: AppendRecordField

The AppendRecordField section contains options associated with appending record fields to GEDCOM logical records without modifying the file. Logical records are by definition level 0 records, therefore appended fields will always be level 1 records. There is no limit on how many AppendRecordField sections can be specified. This option is ideally suited for adding GEDCOM Extensions non-intrusively.

section   : <AppendRecordField>
container : <Options>
wrappers  : none
elements  : <RecordId>, <Tag>, <Value> 

Element: AppendRecordField.RecordId

Specify the record id to append.

element         : <RecordId>
container       : <AppendRecordField>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: AppendRecordField.Tag

Specify the tag to append.

element         : <Tag>
container       : <AppendRecordField>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: AppendRecordField.Value

Specify the tag value.

element         : <Value>
container       : <AppendRecordField>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Examples

To define a source category of original for the source record id S1:

<AppendRecordField> 
  <RecordId> S1       </RecordId> 
  <Tag>      _QUAL    </Tag> 
  <Value>    original </Value> 
</AppendRecordField>

To add a thumbnail and date to the multimedia record id O1:

<AppendRecordField> 
  <RecordId> O1                                   </RecordId> 
  <Tag>      _PIC                                 </Tag> 
  <Value>    c:/folder/pics/thumbs/walt-thumb.png </Value> 
</AppendRecordField>

&<AppendRecordField> 
  <RecordId> O1       </RecordId> 
  <Tag>      _DATE    </Tag> 
  <Value>    abt 1920 </Value> 
</AppendRecordField>

Section: Tags

The Tags section contains options associated with defining display strings for vendor specific tags. When vendor specific tags are not defined here, they are used as is and wrapped in parentheses (i.e. (_COLO) ). Therefore if you wish to define a translatable display string, it must be defined here. When the translation service is enabled, Gigatrees will translate the display string from English, so be careful when pre-translating the display string that it is handled properly. Gigatrees has predefined support for numerous vendor specific tags. There is no limit on how many tags can be specified.

section   : <Tags>
container : <Options>
wrappers  : none
elements  : <Text>, <Display>

Element: Tags.Text

Specify the tag to replace.

element         : <Text>
container       : <Tags>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: Tags.Display

Specify the display string (in English).

element         : <Display>
container       : <Tags>
wrapper         : none
value type      : string
default value   : not set
possible values : English strings only

Example

<Tags> 
  <Text>    _COLO </Text> 
  <Display> Color </Display> 
</Tags>

Section: EventTypes

The EventTypes section allows you to specify whether events associated with your event descriptions (INDI.EVEN.TYPE) occurred when a person was living and whether or not they were an adult, or in either case, if it is not known. This information is only used for improving birth date estimates. There is no limit on how many event descriptions can be specified.

section   : <EventTypes>
container : <Options>
wrappers  : none
elements  : <Text>, <Living>, <Adult>

Element: EventTypes.Text

Specify the event description to replace.

element         : <Text>
container       : <EventTypes>
wrapper         : none
value type      : string
default value   : not set
possible values : no restrictions

Element: EventTypes.Living

Specify whether the person associated with the event description was living, not living, or it is not known.

element         : <Living>
container       : <EventTypes>
wrapper         : none
value type      : tristate
default value   : unknown
possible values : true, 1, false, 0, unknown

Element: EventTypes.Adult

Specify whether the person associated with the event description was an adult, not an adult, or it is not known.

element         : <Adult>
container       : <EventTypes>
wrapper         : none
value type      : tristate
default value   : unknown
possible values : true, 1, false, 0, unknown

Example

<EventTypes> 
  <Text>    Grantee </Text> 
  <Living>  true    </Living>  
  <Adult>   true    </Adult> 
</EventTypes>

Appendix


GEDCOM Validator Description

GEDCOM Validation, in general, requires that a GEDCOM file meets the specification requirements of both the GEDCOM Grammar (line and file syntax) and the GEDCOM Dictionary (record format, data types, data formats and data values). Data consistency is not part of a GEDCOM Validation. The Gigatrees GEDCOM Validator is only a partial validator in that it does not in all cases, validate data formats or data values. It also does not have 100% coverage of the validation tests listed below.

The GEDCOM Validator will validate that files meet the GEDCOM 5.5 grammar specification and whichever GEDCOM dictionary is appropriate. The following dictionaries are currently supported:

  • GEDCOM 5.5 Rev. 1 (January 2, 1996)
  • GEDCOM 5.5 Rev. 2 (January 10, 1996)
  • GEDCOM 5.5.1
  • GEDCOM 5.6

The following sections provide technical details on how Gigatrees performs GEDCOM Validation.

Validation Legend

Symbols

() parentheses  = grouped components
[] brackets     = optional components
*  astricks     = multiple occurrences of a component
-  dash         = range of values of a component
|  pipe         = component or

Characters

Character               ASCII value
=========               ===========
tab                     = 0x09
line feed               = 0x0A
carriage return         = 0x0D
space                   = 0x20
exclamation point (!)   = 0x21
cross hatch (#)         = 0x23
colon (:)               = 0x3A
ampersand (@)           = 0x40
underscore (_)          = 0x5F

Character Sets

Character set           ASCII range
=============           ===========
number digit (0-9)      = (0x30 - 0x39)
alpha char (a-zA-Z_)    = (0x41 - 0x5A) | (0x61 - 0x7A) | 0x5F
non-alpha char          = (0x21 - 0x2F) | (0x3A - 0x3F) | (0x5B - 0x5E) | (0x7B - 0x7E) | (0x80 - 0xFE) | 0x60

Character Groups

alphanum                = (alpha char | number digit)	
printable character     = alphanum | non-alpha char | space | cross hatch

Strings

double-at string (@@)   = ampersand + ampersand
number string           = number digit + [number digit]*
alphanum string         = alphanum + [alphanum]*
pointer id              = (alphanum | exclamation point) + [printable character]*						
pointer string          = ampersand + pointer id + ampersand 
embedded id string      = ampersand + [pointer id +] exclamation point + pointer_id + ampersand 
escape string           = ampersand + cross hatch + (printable character | double-at string)* + ampersand + [space] + (printable character)* 
value string            = printable character + [printable character]*
data string             = (value string | escape string) [+ (value string | escape string)]*
delimiter               = space
terminator              = carriage return | line feed | (carriage return + line feed) | (line feed + carriage return)
whitespace              = ([tab]* + [space]* + [terminator]*)* 

Validation Tests

GEDCOM Validation testing includes two types of tests, GEDCOM Grammar and the GEDCOM Dictionary.

Grammar Line Syntax

All of the supported GEDCOM Dictionaries use the same GEDCOM 5.5 Grammar, which defines a line as having the following syntax:

line = [whitespace +] level + [delim + record_id +] delim + tag + [delim + reference_id +] terminator

or

line = [whitespace +] level + [delim + record_id +] delim + tag + [delim + line_value +] terminator

Grammar Tests

The following is a list of requirements of the GEDCOM 5.5 Grammar. Unsupported tests will be noted. String lengths are measured in characters, not bytes.

  1. The level is a number string.
  2. Level numbers should not contain leading zeroes.
  3. The minimum level number is 0.
  4. The maximum level number is 99.
  5. The maximum level number increment is 1.
  6. The level must be followed by a delimiter.

  7. A record_id can be a pointer string or an embedded id string.
  8. The length of a record_id is between 3 and 22 characters
  9. The record_id must be followed by a delimiter.
  10. The record_id must be unique to the file.

  11. for example:

    0 @I1@ INDI
    1 @!O1@ OBJE (I1 is implied)
    1 @I1!O1@ OBJE (duplicates not allowed)

    0 @I1@ INDI (duplicates not allowed)

  12. The tag is a alphanum string.
  13. The length of the tag is between 1 and 31 characters.
  14. The first 15 characters of the tag must be unique.

  15. A reference_id is a pointer string.
  16. The length of a reference_id is between 3 and 22 characters
  17. The reference_id must be preceded by a delimiter.
  18. The reference_id must be followed by a terminator.
  19. The presence of a reference_id implies that the record_id exists in the file unless a colon is present.
  20. If the reference_id contains an exclamation point, the record_id must exist in an embedded record contained within the same logical record.

    for example:

    0 @I1@ INDI
    1 @I1!O1@ OBJE
    1 OBJE @I1!O1@
    1 OBJE @!O1@ (I1 is implied)

    0 @I2@ INDI
    1 OBJE @I1!O1@ (not allowed)

  21. A line_value is a data string.
  22. The line_value must be preceded by a delimiter.
  23. The line_value must be followed by a terminator.
  24. If an ampersand is desired as part of the line_value, it must be included as a double-at string (i.e. name@@school.edu).

  25. The maximum length of a line is 255 characters.
  26. The maximum length of a logical record is 32 kilobytes. Logical records are delineated by level numbers equal to 0 (zero). [NOT SUPPORTED]

Dictionary Tests

To validate the dictionary, Gigatrees compares the structure of the logical records to the dictionary template associated with its GEDCOM version. It also validates general dictionary constructs common to all supported GEDCOM versions.

  1. The GEDCOM version must be either "5.5", "5.5.1" or "5.6".
  2. Each line should match the dictionary template unless the line has a user defined tag beginning with an underscore.
  3. Each record_id should be referenced from within the same file.
  4. If the template expects a record_id, then the line must have a record_id of the same type.
  5. If the template expects no record_id, then the line must not have a record_id.
  6. If the template expects a reference_id, then the line must have a reference_id of the same type.
  7. If the template expects no reference_id, then the line must not have a reference_id.
  8. If the template defines a minimum number of record occurrences, then the record should not have fewer.
  9. If the template defines a maximum number of record occurrences, then the record should not have more.
  10. If the template defines a minimum line_value length, then the line_value should not be shorter.
  11. If the template defines a maximum line_value length, then the line_value should not be longer.

Validation Statuses

Gigatrees somewhat arbitrarily, divides its validation statuses into three categories, Errors, Warnings, and Alerts. Errors are critical line failures that will more than likely prevent the line from being usable by importing applications. Warnings violate the letter of the specification, but are likely to not interfere with their usability by importing applications. Alerts are not violations and are provided for information purposes only. All warnings and alerts can be easily ignored by disabling the ValidationPage.ShowValidationWarnings and ValidationPage.ShowValidationAlerts options. Additional options are available for controlling how and which statuses are provided in a Validation Report.

Errors

  • Unsupported GEDCOM version detected
  • Level number expected
  • Level number gap
  • Invalid ID length
  • ID missing
  • Invalid ID reference length
  • Tag Expected
  • Data contains non-printable characters
  • ID reference missing
  • Unexpected ID reference
  • Invalid ID reference type
  • ID reference substitution
  • Duplicate record found
  • Referenced record not found

Warnings

  • Level number exceeds limit
  • Level has leading zero
  • ID delimiter missing
  • Invalid ID length
  • Invalid ID character
  • Invalid ID reference length
  • Invalid ID reference character
  • Invalid tag length
  • Invalid tag character
  • Too few occurrences of tag
  • Too many occurrences of tag
  • Data contains tabs
  • Maximum line length exceeded
  • Data missing
  • Insufficient data
  • Maximum data length exceeded
  • Data not expected
  • Trailing spaces not expected
  • Trailing data not expected
  • Unpaired ampersand (@)
  • Undefined record found
  • Record not referenced

Alerts

  • User defined record found


Data Validation

Data Validation is the process of attempting to validate some of the data in your GEDCOM file looking for impossible, improbable, inconsistent and missing data. The validator makes use of the configurable age parameters to set the thresholds it needs for some of the tests. The default age parameters can be modified to suit each user's needs. Gigatrees calculates average ages for death, marriage and generation span, which the validator will also use in its calculations. The calculated average can be viewed on the Statistics Page. Estimated birthdates are not used when calculating data alerts. Defining negative evidence is also useful to the Data Validator, which will ignore any event specified as impossible.

The following data consistency tests are performed during Data Validation and shown on your Data Alerts page.

  • Persons born after they were baptized
  • Persons born after they were married
  • Persons born after their children
  • Persons born after they died
  • Persons born after being buried
  • Persons born after one of their parents died
  • Persons born after one of their parents was buried
  • Persons baptized after being buried
  • Persons baptized after being married
  • Persons married after being buried
  • Persons baptized after they died
  • Persons married after they died
  • Parents died before having children
  • Persons died after being buried
  • Persons buried before having children
  • Persons with multiple parents
  • Persons having an ancestral loop
  • Persons baptized after a certain age
  • Persons married before a certain age
  • Wives married after a certain age
  • Persons living past a certain age
  • Persons who are much older than their spouse
  • Persons having children before a certain age
  • Mothers having children past a certain age
  • Persons having similarly named children
  • Persons having a prohibited kinship
  • Persons having a non-biological parent
  • Persons with unknown genders
  • Families having swapped spouses
  • Persons whose birth dates could not be estimated
  • Persons with unsupported claims
  • Persons with undocumented parents
  • Persons with no parents
  • Persons missing one parent
  • Persons with date phrases
  • Unmappable locations

Data Validation Short Codes

When the <EstimateBirthdates> option is enabled, Gigatrees uses the events associated with a person's nearest relatives to help determine a range of probable birthdates. When a person's birthdate cannot be estimated it is because there is an inconsistency between these claims, or between one or more of these claims and the configuration. The inconsistency may be too deep to have been detected otherwise. A list of persons whose birthdates could not be estimated will automatically be included in the Data Alerts page. For each person the following short codes will also be shown to help users track down these inconsistencies:

  • fb = father's birth
  • mb = mother's birth
  • pm = parent's marriage
  • b = birth
  • bp = baptism
  • sb = earliest spouse's birth
  • xb = latest sibling's birth
  • m = earliest marriage
  • cb = child's birth (range)
  • cm = earliest child's marriage
  • pd = latest parents death
  • d = death
  • bu = burial
  • le = living event (range)
  • fe = flourishing event (range)


Date Formats

Gigatrees recognizes a wide variety of date formats, beyond those specified by the GEDCOM specification. The following testing results from the date module list both the original and the converted dates. When a date is not recognized, it will show "(not valid)". Although this is not a complete list of every possible combination, it should provide enough coverage so that users should be able to figure out if a date will be recognized and how it will be interpreted. Ambiguous dates may be interpreted in a way other than what the user intended. If that is the case, users should change the date in their file accordingly. Unrecognized dates are listed on the Data Alerts page.

FAILURE: 30/8/1850 (not valid)
FAILURE: 8/30/1850 (not valid)
FAILURE: 8.30.1850 (not valid)
FAILURE: 30.8.1850 (not valid)
FAILURE: 8-30-1850 (not valid)
FAILURE: 30-8-1850 (not valid)
FAILURE: 1850/30/8 (not valid)
FAILURE: 1850/8/30 (not valid)
FAILURE: 1850.8.30 (not valid)
FAILURE: 1850.30.8 (not valid)
FAILURE: 1850-8-30 (not valid)
FAILURE: 1850-30-8 (not valid)
FAILURE: 3 1952 (not valid)
FAILURE: 3/1952 (not valid)
FAILURE: 3-1952 (not valid)
FAILURE: >= 3 JAN 1850 (not valid)
FAILURE: 18/19 Oct 1216 (not valid)
FAILURE: JAN/FEB/MAR 1850 (not valid)
FAILURE: Q3 1850 (not valid)
FAILURE: Winter 1850 (not valid)
Pass: 1850 => 1850
Pass: 1688/89 => 1688/89
Pass: 1689/90 => 1689/90
Pass: 1699/00 => 1699/00
Pass: 1699/1700 => 1699/00
Pass: 1700/1701 => 1700/01
Pass: 1700/01 => 1700/01
Pass: 1700/1702 => bet 1700 and 1702
Pass: 1700/02 => bet 1700 and 1702
Pass: 1700/10 => bet 1700 and 1710
Pass: 1688-1689 => from 1688 to 1689
Pass: 1688 / 89 => 1688/89
Pass: 1688 \ 89 => 1688/89
Pass: 1688\89 => 1688/89
Pass: 1688 - 1689 => from 1688 to 1689
Pass: 1688 1689 => bet 1688 and 1689
Pass: 1688, 1689 => bet 1688 and 1689
Pass: 1688 1689 1690 1691 => bet 1688 and 1691
Pass: 1688, 1689, 1690, 1691 => bet 1688 and 1691
Pass: 1688, 1689, 1690, 1701 => bet 1688 and 1701
Pass: 1699 1700 1701 => bet 1699 and 1701
Pass: 1699 1700 32 => bet 1699 and 1732
Pass: 1631 32 33 => bet 1631 and 1633
Pass: 1631 and 1632 => bet 1631 and 1632
Pass: 1631 or 1632 =>  1631 or 1632
Pass: 1631, 1633 or 1632 => bet 1631 and 1633
Pass: JAN 1850 => Jan of 1850
Pass: 1850 JAN => Jan of 1850
Pass: 3 JAN 1850 => Jan 3, 1850
Pass: 3 1850 JAN => Jan 3, 1850
Pass: 1850 JAN 3 => Jan 3, 1850
Pass: 1850 3 JAN => Jan 3, 1850
Pass: JAN 1850 3 => Jan 3, 1850
Pass: JAN 3 1850 => Jan 3, 1850
Pass: 3 JAN 1850/51 => Jan 3, 1850/51
Pass: 3 JAN 1850/1 => Jan 3, 1850/51
Pass: 1850/51 JAN 3 => Jan 3, 1850/51
Pass: 1850/1 JAN 3 => Jan 3, 1850/51
Pass: 1850/51 3 JAN => Jan 3, 1850/51
Pass: 1850/1 3 JAN => Jan 3, 1850/51
Pass: January 3, 1850 => Jan 3, 1850
Pass: 1850 MARS => Mar of 1850
Pass: (1850 MARS) => Mar of 1850
Pass: abt 3 JAN 1850 => abt Jan 3, 1850
Pass: (abt) 3 JAN 1850 => abt Jan 3, 1850
Pass: abt. 3 JAN 1850 => abt Jan 3, 1850
Pass: about 3 JAN 1850 => abt Jan 3, 1850
Pass: circa 3 JAN 1850 => abt Jan 3, 1850
Pass: ca 3 JAN 1850 => abt Jan 3, 1850
Pass: ca. 3 JAN 1850 => abt Jan 3, 1850
Pass: near 3 JAN 1850 => abt Jan 3, 1850
Pass: approx 3 JAN 1850 => abt Jan 3, 1850
Pass: (approx) 3 JAN 1850 => abt Jan 3, 1850
Pass: 3 JAN 1850 abt => abt Jan 3, 1850
Pass: 3 JAN 1850 approx => abt Jan 3, 1850
Pass: 3 JAN 1850 (approx) => Jan 3, 1850 (approx)
Pass: bet 3 JAN 1850 and 1850 JAN 5 => bet Jan 3, 1850 and Jan 5, 1850
Pass: between 3 JAN 1850 and 1850 JAN 5 => bet Jan 3, 1850 and Jan 5, 1850
Pass: betw 3 JAN 1850 and 1850 JAN 5 => bet Jan 3, 1850 and Jan 5, 1850
Pass: bet 3 JAN 1850/1 and 1850/1 JAN 5 => bet Jan 3, 1850/51 and Jan 5, 1850/51
Pass: bet 3 JAN 1850/1 and 1850/2 JAN 5 => bet Jan 3, 1850/51 and Jan 5, 1852
Pass: bet 3 JAN 1850 1853 and 1850 1852 1854 JAN 5 => bet Jan 3, 1850 and Jan 5, 1854
Pass: from 3 JAN 1850 => from Jan 3, 1850
Pass: from 3 JAN 1850 to 1850 JAN 5 => from Jan 3, 1850 to Jan 5, 1850
Pass: bef 3 JAN 1850 => bef Jan 3, 1850
Pass: bef. 3 JAN 1850 => bef Jan 3, 1850
Pass: before 3 JAN 1850 => bef Jan 3, 1850
Pass: by 3 JAN 1850 => by Jan 3, 1850
Pass: <= 3 JAN 1850 => by Jan 3, 1850
Pass: aft 3 JAN 1850 => aft Jan 3, 1850
Pass: after 3 JAN 1850 => aft Jan 3, 1850
Pass: aft. 3 JAN 1850 => aft Jan 3, 1850
Pass: cal 3 JAN 1850 => cal Jan 3, 1850
Pass: calc 3 JAN 1850 => cal Jan 3, 1850
Pass: prob 3 JAN 1850 => prob Jan 3, 1850
Pass: est 3 JAN 1850 => est Jan 3, 1850
Pass: int 3 JAN 1850 => int Jan 3, 1850
Pass: int 3 JAN 1850 (found in record) => int Jan 3, 1850 (found in record)
Pass: @#DGREGORIAN@ 3 JAN 1850 => Jan 3, 1850
Pass: @#DJULIAN@ 3 JAN 1850 => Jan 3, 1850 [Julian] 
Pass: @#DHEBREW@ 3 JAN 1850 => Jan 3, 1850
Pass: bet 1689/90 and 1699/00 => bet 1689/90 and 1699/00
Pass: bet 1689/91 and 1699/01 => bet 1689 and 1701
Pass: 3 HEN I => cal 1102 (3 HEN I)
Pass: 53 HEN I => cal 1152 (53 HEN I)
Pass: 3 HEN II => cal 1156 (3 HEN II)
Pass: 3 GEO VI => cal 1938 (3 GEO VI)
Pass: 3 George VI => cal 1938 (3 George VI) [cal 1938 (3 Geo VI)]
Pass: bet 3 HEN I and 4 HEN I => bet 1102 and 1103 (bet 3 HEN I and 4 HEN I)
Pass: bet 3 HEN I and 53 HEN I => bet 1102 and 1152 (bet 3 HEN I and 53 HEN I)
Pass: bet 3 JAN 1000 and 3 HEN I => bet Jan 3, 1000 and 1102 (bet 3 JAN 1000 and 3 HEN I)
Pass: bet 3 JAN 1000 and 53 HEN I => bet Jan 3, 1000 and 1152 (bet 3 JAN 1000 and 53 HEN I)
Pass: bet 3 HEN I and 3 JAN 1200 => bet 1102 and Jan 3, 1200 (bet 3 HEN I and 3 JAN 1200)
Pass: bet 53 HEN I and 3 JAN 1200 => bet 1152 and Jan 3, 1200 (bet 53 HEN I and 3 JAN 1200)
Pass: < 3 JAN 1850 => bef Jan 3, 1850
Pass: > 3 JAN 1850 => aft Jan 3, 1850
Pass: <3 JAN 1850 => bef Jan 3, 1850
Pass:  bef Jan of 1850
Pass: <1850 => bef 1850
Pass: >3 JAN 1850 => aft Jan 3, 1850
Pass: >JAN 1850 => aft Jan of 1850
Pass: >1850 => aft 1850
Pass: ~ 3 JAN 1850 => abt Jan 3, 1850
Pass: ~3 JAN 1850 => abt Jan 3, 1850
Pass: ~1850 JAN 3 => abt Jan 3, 1850
Pass: ~JAN 3 1850 => abt Jan 3, 1850
Pass: Sept 1939 => Sep of 1939
Pass: 13 Sept 1945 => Sep 13, 1945
Pass: Feb 3, 1926 => Feb 3, 1926
Pass: c 1977 => abt 1977
Pass: c1977 => abt 1977
Pass: 1949? => maybe 1949
Pass: ?1949 => maybe 1949
Pass: maybe 1949 => maybe 1949
Pass: poss 1949 => maybe 1949
Pass: poss. 1949 => maybe 1949
Pass: possibly 1949 => maybe 1949
Pass: bet 1879 and 1949? => bet 1879 and 1949 (?)
Pass: 1879-1949? => from 1879 to 1949 (?)
Pass: 1879?-1949 => from 1879 to 1949 (?)
Pass: 1879?-1949? => from 1879 to 1949 (?)
Pass: Bet. 1851-1857 => bet 1851 and 1857
Pass: Bet. 1851&1857 => bet 1851 and 1857
Pass: Bet. 1851&1857/8 => bet 1851 and 1857/58
Pass: 11 Jul 1861 or 1868 =>  Jul 11, 1861 or 1868
Pass: 11 Jul 1861|1868 =>  Jul 11, 1861 or 1868
Pass: 1775 or 1751 =>  1751 or 1775
Pass: 1775|1751 =>  1751 or 1775
Pass: 1550/1490 => bet 1490 and 1550
Pass: 10 Jun 1633/16 => bet Jun 10, 1633 and 1716
Pass: 23 Sep 1903 or 3 Sep 1899 =>  Sep 3, 1899 or Sep 23, 1903
Pass: 11th Feb 1902 => Feb 11, 1902
Pass: 2005, 8 June 2009 - 2 may 2013 => bet Jun 8, 2005 and May 2, 2013
Pass: 12 or 17 Oct 1812 =>  Oct 12, 1812 or Oct 17, 1812
Pass: bet 6 Mar and 1812 12 JAN => bet Jan 12, 1812 and Mar 6, 1812
Pass: bet Mar 6 and 1812 12 JAN => bet Jan 12, 1812 and Mar 6, 1812
Pass: 1952 comment1 comment2 comment3 => 1952 (comment1 comment2 comment3)
Pass: 1952 (comment1 comment2 comment3) => 1952 (comment1 comment2 comment3)
Pass: Before 679 He was Murdered => bef 679 (He was Murdered)
Pass: 10 Jun 1633-16 Jun 1633 Christening => from Jun 10, 1633 to Jun 16, 1633 (Christening)
Pass: 10 Jun 1633 to 16 Jun 1633 Christening => from Jun 10, 1633 to Jun 16, 1633 (Christening)
Pass: 21 mai 1984, comment => May 21, 1984 (comment)
Pass: 23 sep 1972, comment => Sep 23, 1972 (comment)
Pass: BET APR AND JUN 1895 => bet Apr of 1895 and Jun of 1895
Pass: Bet. 1978-1994 => bet 1978 and 1994
Pass: Bet. Apr-Jun 1895 => bet Apr of 1895 and Jun of 1895
Pass: Jan-Feb-Mar 1939 => from Jan of 1939 to Mar of 1939
Pass: JAN FEB MAR 1850 => bet Jan of 1850 and Mar of 1850
Pass: 1990s => bet 1990 and 1999
Pass: 1990's => bet 1990 and 1999



Yet Another Genealogy Numbering System

See Blog

Commments

>