Fabian Steeg, Linked Open Data, hbz NRW
hbz, Köln, 2016-08-18
Diese Präsentation:
http://hbz.github.io/slides/lobid-jsonld
Linked-Data-Dienst des hbz: Web-APIs für Titel- und Normdaten
Verschiedene Anwendungen nutzen die Lobid-APIs:
Nordrhein-Westfälische Bibliographie, Organisationsverzeichnis, Edoweb, Publisso
APIs liefern, Anwendungen nutzen: JSON-LD
{
"name": "Hochschulbibliothekszentrum des Landes Nordrhein-Westfalen",
"isil": "DE-605",
"fundertype": {
"id": "http://purl.org/lobid/fundertype#n02",
"label": "Land",
"label_en": "Federal State"
}
}
JSON-Objekte sind auf Attribut-Wert-Paare abbildbar
(je nach Sprache z.B. als Map, Dictionary, Hash)
Attribute per Kontext mit eindeutigen URIs assoziieren
{
"@context": {
"name": "http://schema.org/name",
"isil": "http://purl.org/lobid/lv#isil"
},
"name": "Hochschulbibliothekszentrum des Landes Nordrhein-Westfalen",
"isil": "DE-605"
}
Kontext kann als externes Dokument referenziert werden:
{
"@context": "http://beta.lobid.org/organisations/context.jsonld",
"name": "Hochschulbibliothekszentrum des Landes Nordrhein-Westfalen",
"isil": "DE-605"
}
JSON für Web-Entwickler vertrautes Format
JSON in Elasticsearch indexierbar
JSON-LD RDF-kompatibel
Zwei Sichtweisen auf JSON-LD:
JSON-LD als JSON mit erweitertem Anwendungsfall: Linking Data
JSON-LD als eine von vielen RDF-Serialisierungen
→ produzieren und konsumieren über RDF-Modell
Sichtweisen haben Auswirkungen darauf, wie das JSON-LD aussieht
Transformation zu N-Triples, JSON-LD erzeugen über jsonld-java:
http://lobid.org/organisation?id=DE-605&format=full
Transformation zu JSON, JSON-LD entsteht allein durch Kontext:
http://beta.lobid.org/organisations/DE-605?format=json
JSON & RDF: keine diskreten Sichtweisen, sondern ein Kontinuum
Transformation zu N-Triples, JSON-LD erzeugen über jsonld-java:
http://lobid.org/resource?id=HT002189125&format=full
Transformation zu N-Triples, JSON aus RDF-Modell erzeugen:
http://lobid.org/resources/HT002189125
Direkt address
holen, weiterverarbeiten
{
"location": {...},
"address": {...}
}
Jeweils @id
holen, Wert prüfen, wenn address
: weiterverarbeiten
"@graph": [
{"@id": "location", ... },
{"@id": "address", ...}
]
Query gegen prefLabel.en
direkt in Elasticsearch query string
(und API-Anfragen, dadurch Query-Möglichkeiten transparent)
prefLabel: {
"de": "Land",
"en": "Federal State"
}
So nicht möglich bei generierter Struktur
prefLabel: [
{@language: "de", @value: "Land"},
{@language: "en", @value: "Federal State"}
]
Lobid API 1.x | http://lobid.org/api |
Lobid-Organisations 2.0 API | http://beta.lobid.org/organisations/api |
Issue mit Beispielen für Lobid-Resources 2.0 | https://github.com/hbz/lobid-resources/issues/79 |
Blog-Post zu den Problemen mit generiertem JSON-LD | http://fsteeg.com/notes/one-issue-with-json-ld-that-seems-not-so-pragmatic |