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.
Resource Discovery: Herausforderung und Chance für die Sacherschließung
Aufbau einer LOD- basierten Web-API am Beispiel von api.lobid.org
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.
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. 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
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. 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. 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": "20091201T10:29:19Z",
"updated_at": "20131009T09:41:07Z"
}
Pohl: LOD-basierte Web-API am Beispiel von api.lobid.org
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
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. 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
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. 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
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
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
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. 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