LOUD mit JSON über HTTP
Adrian Pohl &
Fabian Steeg
Offene Infrastruktur,
Hochschulbibliothekszentrum NRW (hbz)
WWW, 2021-10-29
Präsentation beim Schnittstellen-Workshop mit der Klassik Stiftung Weimar
Diese Präsentation:
http://slides.lobid.org/2021-weimar/
1. Vorstellung & Kontext | hbz, lobid-Dienste und Nutzung |
2. Linked Open Usable Data | LOUD, Web-APIs, JSON & JSON-LD; Daten und Abfragemöglichkeiten |
3. Addendum | Metafacture & SkoHub |
Hochschulbibliothekszentrum des Landes Nordrhein-Westfalen, seit 1973
Dienstleistungs- und Entwicklungseinrichtung für digitale Services in Hochschulbibliotheken
Einige Arbeitsbereiche: Verbundkatalog, Suchportal DigiBib, Fernleihe, Konsortiale Erwerbung
lobid steht für Linking Open Bibliographic Data
Seit fast zehn Jahren die zentrale Komponente der offenen Infrastruktur im hbz
Stellt intuitive, web-basierte Rechercheoberflächen und Schnittstellen bereit
lobid-resources: Daten des hbz-Verbundkatalogs
lobid-organisations: Daten des deutschsprachigen Sigelverzeichnisses und DBS-Stammdaten
lobid-gnd: Gemeinsame Normdatei
Standards | Linked Data, RDF |
APIs | JSON, JSON-LD, LOUD |
lobid-gnd | Daten und Abfragemöglichkeiten GND |
Überführung traditioneller bibl. Praktiken in das Web
Sichtbarkeit und Auffindbarkeit im Web erreichen
Nachnutzbarkeit ermöglichen
Synergieeffekte durch Verlinkung mit anderen Daten
Verbesserung der Recherchemöglichkeiten
Quelle: Pohl, Adrian / Ostrowski, Felix (2010): 'Linked Data' - und warum wir uns im hbz-Verbund damit beschäftigen." B.I.T. Online 13(3): S. 259-268. Preprint: http://www.hbz- nrw.de/dokumentencenter/produkte/lod/aktuell/pohl_ostrowski_2010_linked-data.pdf
Ultimately, RDF and the Semantic Web are of no interest to Web developers. They also have a really negative public perception problem. We should stop talking about them. Let’s shift the focus to be on Linked Data, explaining the problems that Web developers face today, and concrete, demonstrable solutions to those problems.– Manu Sporny, damals Vorsitzender der RDFa Working Group beim W3C, der JSON-LD Community Group & Mitglied weiterer Semantic-Web-Gruppen, beim Schreiben an der JSON-LD-Spezifikation
Wissen ist offen, wenn jedeR darauf frei zugreifen, es nutzen, verändern und teilen kann – eingeschränkt höchstens durch Maßnahmen, die Ursprung und Offenheit des Wissens bewahren.http://opendefinition.org/od/2.1/de/
Quelle: Rob
Sanderson auf Twitter
Siehe auch Rob Sanderson's Europeanatech 2018 Keynote (Slides, Aufzeichnung)
Daten werden mit existierender Software bearbeitet (ausgewertet, ergänzt, integriert etc.)
Entwicklung neuer Software zur Interaktion mit Daten
LOUD: Orientierung auf Bedürfnisse und Konventionen rund um Software (Entwicklung, Standards, etc.)
Nützliche Daten: Zielgruppe kennen & eigene Angebote auf sie ausrichten
Hauptzielgruppe: Entwickler:innen oder Nutzer:innen von Software für Datenzugriff und -manipulation
Nicht irgendwie Daten bereitstellen, sondern so, dass wir aus Software gut zugreifen können
z.B. möglichst einheitlich (statt viele Formate), möglichst stabil (statt häufige Anpassungen)
APIs machen Softwareentwicklung handhabbar
(für 1st- und 2nd-Party-Software)
APIs ermöglichen Nutzung und Integration
von 3rd-Party-Software
Anfrage gegen das NWBib-Subset in lobid-Verbunddaten
Unter Nutzung von OpenRefine und der entsprechenden lobid Reconciliation-Schnittstelle (bzw. API)
JSON über HTTP
Der Web-API-Standard seit Jahren, siehe z.B. Target (2017)
Quellen: Google Trends, Web Data Commons, W3Techs
Ein einfaches Key-Value-Format für strukturierte Daten
Key ist immer ein String
Value ist String, Number, Boolean, Array oder Object
{ "foo": "bar" }
{
"url": "https://www.klassik-stiftung.de/",
"name": "Klassik Stiftung Weimar",
...
"collects": {
"type": "Collection",
...
"subject": [
"Weimarer Klassik",
"Moderne",
"Bauhaus"
]
},
...
"designed to be usable directly as JSON, with no knowledge of RDF" – Es ist richtiges JSON!
"also designed to be usable as RDF"
$ curl -H "Accept: application/json" https://api.github.com/users/acka47
{
"login": "acka47",
"url": "https://api.github.com/users/acka47",
"type": "User",
"name": "Adrian Pohl",
"company": "hbz",
"location": "Cologne, Germany",
"bio": "Metadata, RDF, vocabularies. Working at @hbz. "
}
{
"@context": "http://schema.org/",
"@id": "https://github.com/users/acka47",
"login": "acka47",
"url": "https://api.github.com/users/acka47",
"type": "User",
"name": "Adrian Pohl",
"company": "hbz",
"location": "Cologne, Germany",
"bio": "Metadata, RDF, vocabularies. Working at @hbz. "
}
Usable heisst nicht nur dass die Daten strukturell gut nutzbar sind, sondern auch einige Vorteile von Linked Data mit sich bringen:
Implizite Dokumentation: Properties/JSON-Attribute haben URIs und ihre Bedeutung lässt sich nachschlagen
Interoperabilität: wer nicht nachnutzt, muss selbst spezifizieren -> Anreiz zur Nachnutzung gemeinsamer Datenmodelle
Things not strings: Präferenz von URIs über Strings führt zu Erstellung und Pflege von SKOS-Schemas für kontrollierte Wertelisten
Normdatei für Bibliotheken im deutschsprachigen Raum
Datensätze für Personen, Körperschaften, Konferenzen & Veranstaltungen, Geografika, Schlagwörter, Werke
Für die formale Erfassung einer Ressource und für die inhaltliche Erschließung
In den letzten Jahren wird die GND vermehrt auch von Archiven, Museen und Wissenschaftler:innen genutzt
Daten per Oberfläche erkunden, UI und API verschiedene Sichten auf die gleichen Daten
Alle Suchen und Ressourcen können auch als JSON-LD betrachtet werden
Feldsuche |
|
Boolsche Suche |
|
Trunkierung |
|
Intervalle |
|
Existenz |
|
z.B. Personen, die 1772 bis 1832 geboren wurden und in Weimar gewirkt haben
z.B. Personen, die in Köln geboren wurden und in Weimar gestorben sind
Für Einzeltreffer: RDF per Content Negotiation
1. JSON-LD kann direkt im Hauptsystem erzeugt werden
2. Daten liegen schon als RDF vor: mit JSON-LD-Prozessor verarbeiten (import, frame, compact)
3. Daten liegen in einem anderen Format vor bzw. werden in einem anderen Format gepflegt: Datentransformation
Ein umfangreicher Werkzeugkasten für Datentransformations-Workflows
Entwickelt an der DNB, seit zwei Jahren Maintainerschaft beim hbz
Zwei grundlegende Weiterentwicklungen sind im Gange
Metafacture-Fix: Erleichterung der Konfiguration durch Bibliothekar:innen & Standardisierung
Metafacture-Playground für Tutorials und schnelles Ausprobieren von Workflows & Infrastruktur zum Teilen und Nachnutzen von Workflows im Web
Grundidee: neuartiger Push-basierter Discovery-Ansatz durch Subskription von Elementen eines kontrollierten Vokabukars
Produktiv wird derzeit nur SkoHub Vocabs benutzt für die einfache Publikation kontrollierter Vokabulare im Web