gdmxml:An XML Implementation of the GENTECH Genealogical Data
ModelHans Fugal
GDM: What and Why?
• GENTECH Genealogical Data Model, by the Lexicon Working Group
• It models the way genealogists do things and the data they collect, not just the conclusions.
GDM Submodels
• Administration
• Evidence
• Conclusion
Administration Submodel
• Projects and researchers
• Research objectives and activities
• Source groups and surety schemes
Evidence Submodel
• Sources and citation parts
• Representations
• Repositories
Conclusion Submodel
• Personas
• Events
• Characteristics
• Groups
• Assertions
Assertions
• Based on a source or on lower-level assertions
• Links two subjects with a value or role
Useful Subject Combinations
Persona Event Group Characteristic
Persona X X X
Event X X
Group X X
Characteristic
X
XML: What and Why?
• Extensible Markup Language• Markup adds structure and meaning to
documents• Human-readable• Machine-readable• Many tools available for processing and
transforming XML• Perfect for data exchange between software
Elements
<persona> <name>Hans Fugal</name></persona>
Attributes
<persona id=“someid”>…</persona>
Namespaces
• Define scope
• Extensibility (expert systems)
• gdmxml: http://gdmxml.fugal.net/beta
RELAX NG
• Well-formed vs. Valid; Schemas describe what is valid.
• RELAX NG is a schema language– More powerful than XSD– Easier than XSD
• Compact syntax easier to author
XSD Persona
<xs:element name="persona"> <xs:complexType> <xs:all> <xs:element ref="ns1:name"/> <xs:element minOccurs="0" ref="ns1:description-comments"/>
</xs:all> <xs:attribute name="id" use="required" type="xs:ID"/>
</xs:complexType> </xs:element>
RELAX NG Persona
<element name="persona"> <attribute name="id"> <data type="ID"/> </attribute> <interleave> <element name="name"><text/></element> <optional> <element name="description-comments"> <text/></element> </optional> </interleave></element>
RELAX NG Compact Syntax Persona
element persona {
attribute id { xsd:ID },
(
element name { text }
& element description-comments
{ text }?
)
}
RELAX NG Compact Syntax Key
• \activity – reference
• * – zero or more
• + – one or more
• ? – zero or one
• & – interleave
• | – logical OR
• # – comment
Walkthrough and Discussion
• gdmxml.rnc
• gdmxml.rng – generated automatically
• fugl.xml – A sample gdmxml document
Future Directions
• Use as a file export in software• Conversion to and from GEDCOM• Use XSLT to create HTML, PDF, or other
formats in various views– Example stylesheet to show all the assertions
– Pedigrees, FGR sheets, various reports
• We need a standard taxonomy before we can guarantee interoperability with the GDM.
Changes from the GDM:Summary
• SEARCH refers to REPOSITORY-SOURCE instead of REPOSITORY and SOURCE separately
• CHARACTERISTIC may have no PLACE reference. (What place is associated with natural hair color)
• GROUP may omit PLACE reference. (e.g. persona groups)
• Some data implied rather than explicit (e.g. sequence)
GDM Questions Raised
• REPRESENTATION and SOURCE– When is it a REPRESENTATION, and when
is it a SOURCE or perhaps CITATION-PART?
– URIs, MIME types, and encoding representations.