Gdmxml: An XML Implementation of the GENTECH Genealogical Data Model Hans Fugal.

Post on 01-Jan-2016

214 views 0 download

Tags:

Transcript of Gdmxml: An XML Implementation of the GENTECH Genealogical Data Model Hans Fugal.

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.

For More Information

• http://gdmxml.fugal.net

• hans@fugal.net

• http://www.gentech.org