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

812 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
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
812
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
11
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

×