Gedbas4all/API: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(erste Beispiele) |
Keine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Der Austausch von Daten erfolgt bei gedbas4all mit Hilfe von RDF. | |||
== Hinzufügen von Informationen == | == Hinzufügen von Informationen == | ||
Mit einem POST-Request an <tt>xml/write</tt> kann man Daten schreiben. Das sieht z.B. so aus: | Mit einem POST-Request an <tt>xml/write</tt> kann man Daten in Form von RDF-Dokumenten schreiben. Das sieht z.B. so aus: | ||
<source lang="xml"> | <source lang="xml"> | ||
< | <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 type= | <part><rdf:Description><value>Winand</value><type rdf:resource='http://gedbas4all.genealogy.net/sw/characteristic/firstname' /></rdf:Description></part> | ||
<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> | |||
</source> | </source> | ||
Als Antwort bekommt man eine Zuordnung von lokalen zu globalen IDs: | Als Antwort bekommt - RDF-konform - man eine Zuordnung von lokalen zu globalen IDs: | ||
<source lang="xml"> | <source lang="xml"> | ||
< | <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> | |||
</source> | </source> | ||
=== Kennungen (IDs) === | === Kennungen (IDs) === | ||
Es gibt dabei zwei Arten von IDs: | Es gibt dabei zwei Arten von IDs: | ||
* global gültige IDs, die bereits in gedbas4all vorhanden sind | * 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. | * nur für diese Übermittlung gültige IDs, die in gedbas4all globalen IDs zugeordnet werden. Das sind alle anderen URIs. | ||
=== Authentifizierung === | === Authentifizierung === | ||
Zeile 43: | Zeile 57: | ||
* Authentifizierung eines einzelnen Benutzers mit Hilfe einem CAS-Proxy Ticket. Alle Daten werden dabei diesem einem Benutzer geordnet. | * 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. | * Authentifizierung eines einzelnen Benutzers mit Hilfe von Benutzername und Passwort. Alle Daten werden dabei diesem einem Benutzer geordnet. | ||
<source lang="xml"> | |||
<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> | |||
</source> | |||
== Abrufen von Informationen == | == Abrufen von Informationen == | ||
Über einen GET-Request an <tt> | Über einen GET-Request an <tt>sw/event/7829387</tt> kann man die Daten eines Objekts abrufen. Zurückgeliefert wird ein Dokument wie dieses: | ||
<source lang="xml"> | <source lang="xml"> | ||
< | <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://gedbas4all.genealogy.net/sw/"> | ||
<date calendar=" | <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" /> | |||
</date> | <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> | |||
</source> | </source> | ||
[[Kategorie:Gedbas4all]] |
Aktuelle Version vom 3. Dezember 2016, 06:48 Uhr
Der Austausch von Daten erfolgt bei gedbas4all mit Hilfe von RDF.
Hinzufügen von Informationen[Bearbeiten]
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)[Bearbeiten]
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[Bearbeiten]
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[Bearbeiten]
Ü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>