GEDCOM X http://gedcomx.org/ Ryan Heaton, FamilySearch GEDCOM X - - PowerPoint PPT Presentation

gedcom x
SMART_READER_LITE
LIVE PREVIEW

GEDCOM X http://gedcomx.org/ Ryan Heaton, FamilySearch GEDCOM X - - PowerPoint PPT Presentation

GEDCOM X http://gedcomx.org/ Ryan Heaton, FamilySearch GEDCOM X Genealogical Data Exchange Media Types (e.g. JSON) Standard Interface (e.g. REST) SDKs (Java, JavaScript, C#, etc.) application/xml application/pdf


slide-1
SLIDE 1

GEDCOM X

Ryan Heaton, FamilySearch http://gedcomx.org/

slide-2
SLIDE 2

GEDCOM X

  • Genealogical Data Exchange

– Media Types (e.g. JSON) – Standard Interface (e.g. REST) – SDKs (Java, JavaScript, C#, etc.)

slide-3
SLIDE 3

Media Types

application/xml application/pdf application/json audio/mpeg image/jpeg image/png image/gif multipart/mixed text/csv text/css text/html text/plain video/mp4 application/vnd.ms-excel application/calendar+xml application/gzip

slide-4
SLIDE 4

GEDCOM X: Media Types

  • Semantics

– Sources – Persons – Relationships – Evidence – Places – Analysis – Etc.

slide-5
SLIDE 5

GEDCOM X: Media Types

  • Formats

– XML – JSON

slide-6
SLIDE 6

GEDCOM X: Date Format

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

slide-7
SLIDE 7

GEDCOM X: XML 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>

slide-8
SLIDE 8

GEDCOM X: JSON Format

{ “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” : { … }, } ] }

slide-9
SLIDE 9

GEDCOM X: API

  • Conforms to REST
  • Based on Hypermedia
  • Designed for reusable consumer code
slide-10
SLIDE 10

GEDCOM X: API

<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>

slide-11
SLIDE 11

GEDCOM X @FamilySearch

  • FamilySearch API
  • Internal data exchange

– Tree – Records – Sources

  • External data exchange

– Ancestry – MyHeritage – Etc.

slide-12
SLIDE 12

GEDCOM X Start Here http://gedcomx.org/

slide-13
SLIDE 13

Questions?

Ryan Heaton, FamilySearch