Gedbas4all/API: Unterschied zwischen den Versionen

aus wiki, dem genealogischen Lexikon zum Mitmachen.
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">
<add published="permanent" project="familienanzeigen">
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://gedbas4all.genealogy.net/sw/'
<casAuthentication proxyTicket="PT-53829..." />
xml:base='http://example.org/test#'>
<persona id="#hermann" name="Hermann Janz" />
  <Persona rdf:ID='persona3633' name='Winand Fleischhauer' />
   <characteristic id="#c1">
   <Characteristic rdf:ID='p3633cName'>
     <part type="firstname" value="Hermann" />
     <part><rdf:Description><value>Winand</value><type rdf:resource='http://gedbas4all.genealogy.net/sw/characteristic/firstname' /></rdf:Description></part>
     <part type="firstname" value="Heinrich" />
     <part><rdf:Description><value>Fleischhauer</value><type rdf:resource='http://gedbas4all.genealogy.net/sw/characteristic/familyname' /></rdf:Description></part>
    <part type="lastname" value="Janz" />
   </Characteristic>
   </characteristic>
   <Event rdf:ID='event3633' place='Hasselbeck'>
   <event id="#e1" type="birth" place="Neumühlen-Dietrichsdorf">
    <gedcomDate>1830</gedcomDate>
     <date calendar="calendar_gregorian" type="point">
     <type rdf:resource='http://gedbas4all.genealogy.net/sw/event/residence' />
      <start>
  </Event>
        <datePart type="datePart_year" value="1896" />
  <Assertion rdf:ID='a3'>
        <datePart type="datePart_month" value="1" />
    <project rdf:resource='http://gedbas4all.genealogy.net/project/addressbook' />
        <datePart type="datePart_day" value="22" />
    <researcher rdf:resource='http://gedbas4all.genealogy.net/researcher/1234' />
      </start>
    <published rdf:resource='http://gedbas4all.genealogy.net/sw/Publication#permanent' />
     </date>
    <subject1 rdf:resource='#persona_3633' />
   </event>
     <subject2 rdf:resource='#event3633' />
   <assertion subject1="#hermann" subject2="#c1"/>
   </Assertion>
  <assertion subject1="#hermann" subject2="#e1"/>
   <Assertion rdf:ID='a1'>
</add>
    <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">
<response>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#">
   <persona local="#hermann" global="7829384"/>
   <owl:NamedIndividual rdf:about='http://example.org/test#persona3633'>
   <characteristic local="#c1" global="7829385"/>
    <owl:sameAs rdf:resource='http://gedbas4all.genealogy.net/xml/persona/1453' />
   <event local="#e1" global="7829387"/>
  </owl:NamedIndividual>
</response>
   <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. Diese beginnen mit dem #-Zeichen.
* 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>xml/event/7829387</tt> kann man die Daten eines Objekts abrufen. Zurückgeliefert wird ein Dokument wie dieses:
Ü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">
<event id="#7829387" type="birth" place="Neumühlen-Dietrichsdorf">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://gedbas4all.genealogy.net/sw/">
     <date calendar="calendar_gregorian" type="point">
  <Event rdf:about="http://localhost:8508/gedbas4all/xml/event/7829387" place="Neumühlen-Dietrichsdorf">
      <start>
    <type rdf:resource="http://gedbas4all.genealogy.net/sw/event/birth" />
        <datePart type="datePart_year" value="1896" />
     <date><rdf:Description>
        <datePart type="datePart_month" value="1" />
        <calendar rdf:resource="http://gedbas4all.genealogy.net/sw/Calendar#gregorian" />
        <datePart type="datePart_day" value="22" />
        <certainty rdf:resource="http://gedbas4all.genealogy.net/sw/Certainty#exact" />
      </start>
        <certainty rdf:resource="http://gedbas4all.genealogy.net/sw/DateType#point" />
     </date>
        <start><rdf:Description>
</event>
            <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>