230 likes | 332 Views
gdmxml: An XML Implementation of the GENTECH Genealogical Data Model. Hans 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
E N D
gdmxml:An XML Implementation of the GENTECH Genealogical Data Model Hans 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
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.
For More Information • http://gdmxml.fugal.net • hans@fugal.net • http://www.gentech.org