Gedbas4all/API
Zur Navigation springen
Zur Suche springen
Der Austausch von Daten erfolgt bei gedbas4all mit Hilfe von RDF.
Hinzufügen von Informationen
Mit einem POST-Request an xml/write kann man Daten in Form von RDF-Dokumenten schreiben. Das sieht z.B. so aus:
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://gedbas4all.genealogy.net/sw/'
xml:base='http://example.org/test#'>
<Persona rdf:ID='persona3633' name='Winand Fleischhauer' />
<Characteristic rdf:ID='p3633cName'>
<part><rdf:Description><value>Winand</value><type rdf:resource='http://gedbas4all.genealogy.net/sw/characteristic/firstname' /></rdf:Description></part>
<part><rdf:Description><value>Fleischhauer</value><type rdf:resource='http://gedbas4all.genealogy.net/sw/characteristic/familyname' /></rdf:Description></part>
</Characteristic>
<Event rdf:ID='event3633' place='Hasselbeck'>
<gedcomDate>1830</gedcomDate>
<type rdf:resource='http://gedbas4all.genealogy.net/sw/event/residence' />
</Event>
<Assertion rdf:ID='a3'>
<project rdf:resource='http://gedbas4all.genealogy.net/project/addressbook' />
<researcher rdf:resource='http://gedbas4all.genealogy.net/researcher/1234' />
<published rdf:resource='http://gedbas4all.genealogy.net/sw/Publication#permanent' />
<subject1 rdf:resource='#persona_3633' />
<subject2 rdf:resource='#event3633' />
</Assertion>
<Assertion rdf:ID='a1'>
<project rdf:resource='http://gedbas4all.genealogy.net/project/addressbook' />
<researcher rdf:resource='http://gedbas4all.genealogy.net/researcher/1234' />
<published rdf:resource='http://gedbas4all.genealogy.net/sw/Publication#permanent' />
<subject1 rdf:resource='#persona3633' />
<subject2 rdf:resource='#p3633cName' />
</Assertion>
</rdf:RDF>
Als Antwort bekommt - RDF-konform - man eine Zuordnung von lokalen zu globalen IDs:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:NamedIndividual rdf:about='http://example.org/test#persona3633'>
<owl:sameAs rdf:resource='http://gedbas4all.genealogy.net/xml/persona/1453' />
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about='http://example.org/test#p3633cName'>
<owl:sameAs rdf:resource='http://gedbas4all.genealogy.net/xml/characteristic/2683' />
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about='http://example.org/test#event3633'>
<owl:sameAs rdf:resource='http://gedbas4all.genealogy.net/xml/event/8734' />
</owl:NamedIndividual>
</rdf:RDF>
Kennungen (IDs)
Es gibt dabei zwei Arten von IDs:
- global gültige IDs, die bereits in gedbas4all vorhanden sind - die stammen aus einem Namensraum, dessen URI mit http://gedbas4all.genealogy.net/ beginnt
- nur für diese Übermittlung gültige IDs, die in gedbas4all globalen IDs zugeordnet werden. Das sind alle anderen URIs.
Authentifizierung
Für die Authentifizierung sind drei Möglichkeiten vorgesehen:
- Authentifizierung einer Applikation, die vertrauenswürdig ist und Daten verschiedener Benutzer eintragen darf
- Authentifizierung eines einzelnen Benutzers mit Hilfe einem CAS-Proxy Ticket. Alle Daten werden dabei diesem einem Benutzer geordnet.
- Authentifizierung eines einzelnen Benutzers mit Hilfe von Benutzername und Passwort. Alle Daten werden dabei diesem einem Benutzer geordnet.
<g:UsernamePasswordAuthentication rdf:ID="auth">
<g:username>user</g:username>
<g:password>password</g:password>
</g:UsernamePasswordAuthentication>
<g:ProxyTicketAuthentication rdf:ID="auth">
<g:proxyTicket>xyz</g:proxyTicket>
</g:ProxyTicketAuthentication>
<g:ProgramAuthentication rdf:ID="auth">
<g:programName>program</g:programName>
<g:programPassword>password</g:programPassword>
</g:ProgramAuthentication>
Abrufen von Informationen
Über einen GET-Request an sw/event/7829387 kann man die Daten eines Objekts abrufen. Zurückgeliefert wird ein Dokument wie dieses:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://gedbas4all.genealogy.net/sw/">
<Event rdf:about="http://localhost:8508/gedbas4all/xml/event/7829387" place="Neumühlen-Dietrichsdorf">
<type rdf:resource="http://gedbas4all.genealogy.net/sw/event/birth" />
<date><rdf:Description>
<calendar rdf:resource="http://gedbas4all.genealogy.net/sw/Calendar#gregorian" />
<certainty rdf:resource="http://gedbas4all.genealogy.net/sw/Certainty#exact" />
<certainty rdf:resource="http://gedbas4all.genealogy.net/sw/DateType#point" />
<start><rdf:Description>
<normalized>2413581</normalized>
<datePart><rdf:Description><type rdf:resource="http://gedbas4all.genealogy.net/sw/date/year"/><value>1896</value></rdf:Description></datePart>
<datePart><rdf:Description><type rdf:resource="http://gedbas4all.genealogy.net/sw/date/month" /><value>1</value></rdf:Description></datePart>
<datePart><rdf:Description><type rdf:resource="http://gedbas4all.genealogy.net/sw/date/day" /><value>22</value></rdf:Description></datePart>
</rdf:Description></start>
</rdf:Description></date>
</Event>
</rdf:RDF>