© 2013 by Intellectual Reserve, Inc. All rights reserved. Ryan Heaton GEDCOM X
Jun 14, 2015
1© 2013 by Intellectual Reserve, Inc. All rights reserved.
Ryan Heaton
GEDCOM X
2© 2013 by Intellectual Reserve, Inc. All rights reserved.
The Idea,The Guts,
The Penetration,And You.
GEDCOM X
GEDCOM X
The Idea
GEDCOM XMedia Types
and APIsfor GenealogicalData Exchange
Media Typesand APIs
for GenealogicalData Exchange
application/xmlapplication/pdfapplication/jsonaudio/mpegimage/jpegimage/pngimage/gifmultipart/mixedtext/csvtext/csstext/htmltext/plainvideo/mp4application/vnd.ms-excel
Media Typesand APIs
for GenealogicalData Exchange
text/html
Documents
Fonts and Styles
Tables
Bullet Lists
Images
Scriptstext/html
Sources
Persons
Evidence
Relationships
Places
Analysis
GEDCOM X
GEDCOM XMedia Types
and APIsfor GenealogicalData Exchange
Media TypesAPIs
for GenealogicalData Exchange
Media TypesAPIs
for GenealogicalData Exchange
createreadupdatedelete
personsrelationshipssourcesetc.
bulk data feed*
GEDCOM X RS
resources
operations
● The Specification Set– Date Model
– Conceptual Model
– XML Format
– JSON Format
– File Format
– RS
– Record Extension
– Bibliographic Metadata*
*Under Development
The Guts
Date Description Encoding Type
January 18, 1752 at 10:14 p.m.
+1752-01-18T22:14 Simple Date
From April 13, 1825 to November 26, 1825
+1825-04-13/+1825-11-26 Date Range
Until May, 1887 /+1887-03 Open-ended Date Range
About 1680 A+1680 Approximate Date
Sometime between April 13, 1825 and November 26, 1825
A+1825-04-13/+1825-11-26 Approximate Date Range
GEDCOM X Date Format
<gedcomx xmlns=”http://gedcomx.org/v1”>
<person id=”P1”> <source description=”#SD1”/> <name>...</name> </person>
<person id=”P2”> <source description=”#SD2”/> <name>...</name> </person>
<relationship> <person1 resouce=”#P1”/> <person2 resource=”#P2”/> </relationship>
<sourceDescription id=”SD1”> <citation>...</citation> </sourceDescription>
<sourceDescription id=”SD2”> <citation>...</citation> </sourceDescription>
</gedcomx>
GEDCOM X XML
{ “persons” : [ { “id” : “P1”, “sources” : [ { “description” : “#SD1” } ], “names” : [ … ], }, { “id” : “P2”, “sources” : [ { “description” : “#SD2” } ], “names” : [ … ], }, ], “relationships” : [ { “person1” : { “resource” : “#P1” }, “person2” : { “resource” : “#P1” } } ], “sourceDescriptions” : [ { “id” : “SD1”, “citation” : { … }, }, { “id” : “SD2”, “citation” : { … }, } ]}
GEDCOM X JSON
<gedcomx xmlns=”http://gedcomx.org/v1”>
<person id=”P1”>
<link rel=”parents” href=”/path/to/parents”/> <link rel=”children” href=”/path/to/children”/> <link rel=”spouses” href=”/path/to/spouses”/>
<name>...</name> </person>
<collection id=”P1”>
<link rel=”search” template=”/path/to/search{?q}”/> <link rel=”persons” href=”/path/to/persons”/> <link rel=”artifacts” href=”/path/to/artifacts”/>
<title>...</title> </person>
</gedcomx> GEDCOM X RS
Penetration (Internal)● The FamilySearch API
– GEDCOM X RS
● Tree Foundation● Bulk Data Delivery● Search/Match/Hinting● CDS/Records● Temple● Etc.
Penetration (External)● Ancestry● MyHeritage● FindMyPast● FamilySearch UI Clone● Desktop Record Managers
– RootsMagic
– Ancestral Quest
– Legacy
● Online Record Managers
Penetration (Tools)● Java SDK
– Reference Implementation
● JavaScript SDK● C# SDK*● PHP SDK*
*Under Development
And You
And You● Data Exchange● Domain Modeling● Database Schema● Data Presentation● Data Analysis
And You● Data Exchange● Domain Modeling● Database Schema● Data Presentation● Data Analysis
● But, MOM...– Too heavy.
– It's missing X and Y...
– I can do better myself.
– Tool set needs work.
And You
● Too heavy?– HTML is heavier...
● ...would you use anything else for web pages?
– GEDCOM X is only as heavy as it needs to be to meet requirements.
– Use the elements you need.
e.g. bdo, del, isindex, kbd, samp, var
And You
● It's missing X and Y...– Use the extension mechanism.
– Contribute to the project.
– Help us fill in the holes.
And You
● I can do better myself.– Maybe so...
● ...you can do better than HTML too.● Can doesn't mean should.
– Remember the success factors.● Do you want to write all the docs?● Do you want to curate the specs?● Do you want to develop the tool set?
And You
● I can do better myself.– Maybe so...
● ...you can do better than HTML too.● Can doesn't mean should.
– Do you want to write all the docs?
– Do you want to curate the specs?
– Do you want to develop the tool set?
And You
● Tool set needs work.– Absolutely.
– Pitch in.
– Provide feedback.
And You
GEDCOM X