Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Adrian Pohl

Aufbau einer LODbasierten Web-API am
Beispiel von api.lobid.org
ZBIW-Seminar „Semantic Web / Open Catalogue /...
Struktur
2

1. Hintergrund
2. Web-APIs
3. JSON-LD to the Rescue
4. lobid-API

Pohl: LOD-basierte Web-API am Beispiel von a...
1. Hintergrund

3
Ziele
4

Warum Bibliotheksdaten gemäß Web Standards
bereitstellen?
Verlinkbarkeit von Bibliotheksinformationen
Indexierung...
Problem
5

"Semantic Web"-Community sehr akademisch
"Linked Open Data" sollte das ändern, was nur
bedingt geklappt hat → f...
2. Web-APIs

6
(Web-)APIs
7

API = "Application Programming Interface"
Programmierschnittstelle für andere
Anwendungsentwickler
Web-APIS:...
API: Motivation
8

APIs sind ein essentieller Bestandteil von
wiederverwendbaren Modulen
Module kommunizieren über API, ke...
Beispiel-Anfrage: github-API
9

GET https://api.github.com/users/acka47
Antwort (JSON):
{
  "login": "acka47",
  "id": 160...
LOD vs. Web-APIs
10

LOD
HTTP-URIs für Dinge & ihre
Beschreibungen

●

Web-APIs
URLs für Ressourcen &
Repräsentation

●

R...
3. JSON-LD to the Rescue

11
{
  "login": "acka47",
  "id": 160292,
  "url": "https://api.github.com/users/acka47",
  "name": "Adrian Pohl",
  "company...
{
  "@context":
   {
      "login": "http://xmlns.com/foaf/0.1/nick",
      "id": "http://purl.org/dc/terms/identifier",
 ...
{
  "@context":
   {
      "login": "http://xmlns.com/foaf/0.1/nick",
      "id": "http://purl.org/dc/terms/identifier",
 ...
JSON-LD-Kontext
15

{
  "@context":
   {
      "login": "http://xmlns.com/foaf/0.1/nick",
      "id": "http://purl.org/dc/...
JSON-LD > Turtle
16

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
[]
    <http://purl.org/dc/terms/identifier> 160292 ;
  ...
JSON-LD > Turtle
17

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
Keine URI

[]
    <http://purl.org/dc/terms/identifier> ...
API + JSON-LD = Linked Data
18

JSON-LD: RDF in JSON serialisieren
Web-Entwickler können damit sofort etwas
anfangen
Beste...
4. lobid-API

19
lobid.org
20

lobid.org: LOD-Dienst des hbz, seit 2010 (’linking
open bibliographic data’)
Titeldaten (lobid-resources), N...
API anstatt und Triple Store
21

Triple-Store als API? - Triple-Store cool, aber als API
problematisch (z.B. Performance)
...
API-Anfragen
22

GET /resource?id=0940450003
GET /resource?name=Faust
GET /organisation?id=DE­832
GET /organisation?name=f...
API-Antworten
23

GET /person?name=Loki+Schmidt&format=full
[{
  "@id": "http://d­nb.info/gnd/118836617",
  "gnd:preferred...
Implementierung I
24

Was rauskommt: JSON-LD über HTTP sowie auch
andere RDF-Serialisierungen
Hinter API andere Implementi...
Implementierung II
25

Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
Live-Demonstration
26

http://api.lobid.org

Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
Nutzung der API
27

Edoweb3 (hbz-Projekt zur Archivierung
elektronischer Dokumente und Websites)
Evtl. openbiblio-Jobs, LI...
Danke.
Fragen?
Gerne jetzt oder auch später an
semweb@hbz-nrw.de oder @lobidOrg.

28
Weiterführende Informationen
29

JSON-LD: http://json-ld.org/
hbz-LOD-blog: https://wiki1.hbz-nrw.de/pages/viewrecentblogp...
Lizenz
30

Diese Folien stehen unter einer
Creative-Commons-Lizenz:
http://creativecommons.org/licenses/by/3.0/de/

Pohl: ...
Nächste SlideShare
Wird geladen in …5
×

Aufbau einer LOD- basierten Web-API am Beispiel von api.lobid.org

959 Aufrufe

Veröffentlicht am

Diese Präsentation gibt einen Einblick, wie die oft getrennten Welten von Web-APIs und Linked Open Data miteinander verschmolzen werden können. Nach einer Einleitung zu Web-APIs und JSON, wird gezeigt, wie aus JSON Linked Data (=JSON-LD) gemacht werden kann. Abschließend wird die lobid-API vorgestellt, die JSON-LD und andere RDF-Serialisierungen ausliefert und Auto-Suggest-Funktionen für Organisationen, GND-Normdaten und hbz-Titeldaten anbietet.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Aufbau einer LOD- basierten Web-API am Beispiel von api.lobid.org

  1. 1. Adrian Pohl Aufbau einer LODbasierten Web-API am Beispiel von api.lobid.org ZBIW-Seminar „Semantic Web / Open Catalogue / Linked Open Data für Bibliotheken“. Köln, 10.10.2013.
  2. 2. Struktur 2 1. Hintergrund 2. Web-APIs 3. JSON-LD to the Rescue 4. lobid-API Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  3. 3. 1. Hintergrund 3
  4. 4. Ziele 4 Warum Bibliotheksdaten gemäß Web Standards bereitstellen? Verlinkbarkeit von Bibliotheksinformationen Indexierung und Auffindbarkeit Interoperabilität Einfache Wiederverwendung Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  5. 5. Problem 5 "Semantic Web"-Community sehr akademisch "Linked Open Data" sollte das ändern, was nur bedingt geklappt hat → für viele ist LOD nicht interessant Aber: Web 2.0 und RESTful APIs sind erfolgreich Um APIs entsteht App-Ökosystem, z. B. Twitter. Nutzung von APIs ist "täglich Brot" von Webentwicklern LOD und Web-APIs waren lange Zeit getrennte Ansätze Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  6. 6. 2. Web-APIs 6
  7. 7. (Web-)APIs 7 API = "Application Programming Interface" Programmierschnittstelle für andere Anwendungsentwickler Web-APIS: HTTP-basiert, d. h. Zugriff mittels HTTP-Methoden (GET, PUT, POST, DELETE) liefern JSON und/oder XML Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  8. 8. API: Motivation 8 APIs sind ein essentieller Bestandteil von wiederverwendbaren Modulen Module kommunizieren über API, kennen keine Implementierungsdetails Implementierung so austauschbar und veränderbar – ohne dass alle API-Clients (=Anwendungen) angepasst werden müssen Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  9. 9. Beispiel-Anfrage: github-API 9 GET https://api.github.com/users/acka47 Antwort (JSON): {   "login": "acka47",   "id": 160292,   "url": "https://api.github.com/users/acka47",   "name": "Adrian Pohl",   "company": "hbz",   "blog": "http://www.uebertext.org",   "created_at": "2009­12­01T10:29:19Z",   "updated_at": "2013­10­09T09:41:07Z" } Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  10. 10. LOD vs. Web-APIs 10 LOD HTTP-URIs für Dinge & ihre Beschreibungen ● Web-APIs URLs für Ressourcen & Repräsentation ● RDF ● SPARQL ● ● ● JSON und/oder XML HTTP-Methoden mit URL-Parametern Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  11. 11. 3. JSON-LD to the Rescue 11
  12. 12. {   "login": "acka47",   "id": 160292,   "url": "https://api.github.com/users/acka47",   "name": "Adrian Pohl",   "company": "hbz",   "blog": "http://www.uebertext.org" } 12
  13. 13. {   "@context":    {       "login": "http://xmlns.com/foaf/0.1/nick",       "id": "http://purl.org/dc/terms/identifier",       "url":        {          "@id": "http://xmlns.com/foaf/0.1/page",          "@type": "@id"       },       "name": "http://xmlns.com/foaf/0.1/name",       "company": "http://www.w3.org/ns/org#memberOf",       "blog":       {          "@id": "http://xmlns.com/foaf/0.1/weblog",          "@type": "@id"       },       "email": "http://xmlns.com/foaf/0.1/mbox"    },   "login": "acka47",   "id": 160292,   "url": "https://api.github.com/users/acka47",   "name": "Adrian Pohl",   "company": "hbz",   "blog": "http://www.uebertext.org" } 13
  14. 14. {   "@context":    {       "login": "http://xmlns.com/foaf/0.1/nick",       "id": "http://purl.org/dc/terms/identifier",       "url":        {          "@id": "http://xmlns.com/foaf/0.1/page",          "@type": "@id"       },       "name": "http://xmlns.com/foaf/0.1/name",       "company": "http://www.w3.org/ns/org#memberOf",       "blog":       {          "@id": "http://xmlns.com/foaf/0.1/weblog",          "@type": "@id"       },       "email": "http://xmlns.com/foaf/0.1/mbox"    },   "login": "acka47",   "id": 160292,   "url": "https://api.github.com/users/acka47",   "name": "Adrian Pohl",   "company": "hbz",   "blog": "http://www.uebertext.org" } 14
  15. 15. JSON-LD-Kontext 15 {   "@context":    {       "login": "http://xmlns.com/foaf/0.1/nick",       "id": "http://purl.org/dc/terms/identifier",       "url":        {          "@id": "http://xmlns.com/foaf/0.1/page",          "@type": "@id"       },       "name": "http://xmlns.com/foaf/0.1/name",       "company": "http://www.w3.org/ns/org#memberOf",       "blog":       {          "@id": "http://xmlns.com/foaf/0.1/weblog",          "@type": "@id"       }, } Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  16. 16. JSON-LD > Turtle 16 @prefix foaf: <http://xmlns.com/foaf/0.1/> . []     <http://purl.org/dc/terms/identifier> 160292 ;     <http://www.w3.org/ns/org#memberOf> "hbz" ;     foaf:name "Adrian Pohl" ;     foaf:nick "acka47" ;     foaf:page <https://api.github.com/users/acka47> ;     foaf:weblog <http://www.uebertext.org> . Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  17. 17. JSON-LD > Turtle 17 @prefix foaf: <http://xmlns.com/foaf/0.1/> . Keine URI []     <http://purl.org/dc/terms/identifier> 160292 ;     <http://www.w3.org/ns/org#memberOf> "hbz" ;     foaf:name "Adrian Pohl" ;     foaf:nick "acka47" ;     foaf:page <https://api.github.com/users/acka47> ;     foaf:weblog <http://www.uebertext.org> . Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  18. 18. API + JSON-LD = Linked Data 18 JSON-LD: RDF in JSON serialisieren Web-Entwickler können damit sofort etwas anfangen Bestehende Daten können relativ einfach in Linked Data überführt werden: URIs prägen, z.B. https://api.github.com/users/acka47#thing JSON-LD-Kontext ergänzen Vorteil: JSON-LD-Kontext ermöglicht Abstraktion von konkreter RDF-Modellierung Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  19. 19. 4. lobid-API 19
  20. 20. lobid.org 20 lobid.org: LOD-Dienst des hbz, seit 2010 (’linking open bibliographic data’) Titeldaten (lobid-resources), Normdaten (lobid-organisations) Verschiedene Probleme und neue Anforderungen (z.B. Auto-Suggest für Normdaten) → Entwicklung eines neuen Backends Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  21. 21. API anstatt und Triple Store 21 Triple-Store als API? - Triple-Store cool, aber als API problematisch (z.B. Performance) Wegen Performance (z.B. Auto-Suggest) anderer Ansatz: Suchmaschinentechnologie – aber: Suchmaschine als API? API unabhängig von Implementierung! API als stabile Abstraktion über Daten! Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  22. 22. API-Anfragen 22 GET /resource?id=0940450003 GET /resource?name=Faust GET /organisation?id=DE­832 GET /organisation?name=fachhochschule+köln GET /person?id=118580604 GET /person?name=loki+schmidt GET /resource?author=118580604 GET /resource?subject=4414195­6  Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  23. 23. API-Antworten 23 GET /person?name=Loki+Schmidt&format=full [{   "@id": "http://d­nb.info/gnd/118836617",   "gnd:preferredNameForThePerson": "Schmidt, Hannelore",   "gnd:variantNameForThePerson“: [         "Glaser, Hannelore",         "Schmidt, Loki"   ],   "gnd:dateOfBirth" : ”1919”,   "gnd:dateOfDeath": ”2010”, ... }] Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  24. 24. Implementierung I 24 Was rauskommt: JSON-LD über HTTP sowie auch andere RDF-Serialisierungen Hinter API andere Implementierungen denkbar, auch z.B. mit Triple Store Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  25. 25. Implementierung II 25 Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  26. 26. Live-Demonstration 26 http://api.lobid.org Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  27. 27. Nutzung der API 27 Edoweb3 (hbz-Projekt zur Archivierung elektronischer Dokumente und Websites) Evtl. openbiblio-Jobs, LIFE (UB Münster) 2014: Aufbau des NWBib-Auftritts auf Basis der lobid-API Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  28. 28. Danke. Fragen? Gerne jetzt oder auch später an semweb@hbz-nrw.de oder @lobidOrg. 28
  29. 29. Weiterführende Informationen 29 JSON-LD: http://json-ld.org/ hbz-LOD-blog: https://wiki1.hbz-nrw.de/pages/viewrecentblogposts.action?key=SEM lobid-API-Dokumentation: http://api.lobid.org lobid-Code & Issues: https://github.com/lobid/ Adrian Pohl: Sharing context – publishing application profiles with JSON-LD (Blogbeitrag): https://wiki1.hbz-nrw.de/x/qZCW Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
  30. 30. Lizenz 30 Diese Folien stehen unter einer Creative-Commons-Lizenz: http://creativecommons.org/licenses/by/3.0/de/ Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org

×