Seit heute ist der SPARQL Endpunkt der DNB https://sparql.dnb.de öffentlich zugänglich.
Der DNB SPARQL Service ist eine Retrievalschnittstelle des Linked-Data-Service der Deutschen Nationalbibliothek ermöglicht, DNB-Titeldaten (Deutsche Nationalbibliografie) und GND-Normdaten (Gemeinsame Normdatei) im Format RDF zu recherchieren. Wir möchten damit eine Möglichkeit bieten, diese Daten auf eine semantische Art zu erkunden, die mit einer einfachen, textbasierten Suche nicht möglich ist.
Der Service besteht aus einer Weboberfläche und aktuell zwei APIs (maschinelle Endpunkte).
Der DNB SPARQL Service wird betrieben mit der Open-Source-Software Qlever SPARQL Engine, die am Fachbereich Informatik an der Albert-Ludwigs-Universität Freiburg (im Breisgau) entwickelt wird. Die Engine verfügt über eine QLever-Benutzeroberfläche, die das Schreiben von SPARQL-Abfragen vereinfacht.
Hinweis: Der Dienst befindet sich zurzeit in einer öffentlichen BETA-Phase, in der es noch zu Unterbrechungen und Ausfällen kommen kann.
Herzlichen Glückwunsch zum Launch, @Tracy_Arndt ! Die Beispiel-Query hat direkt mein Interesse geweckt. Habe sie mal etwas angepasst, damit direkt der Autor:innenname erkennbar ist, und es hat funktioniert, yay: DNB SPARQL Service - BETA
Ich habe direkt mal diesen alten Reclam-Band aus meinem Studium rausgekramt, weil die Bücherkiste hier gerade rumsteht:
Sehr seltsam allerdings, dass Richard David Precht in der Ergebnisliste so häufig vertreten ist, wobei doch eigentlich nur Titel von Philosoph:innen abgefragt werden…
Danke nochmal für den SPARQL-Endpunkt, den @petra_maier und ich direkt gerne anstatt des Wikidata-SPARQL-Endpoints nutzen, um Verwendungsbeispiele von SPARQL im MALIS-Studiengang an der TH Köln vorzustellen. Ich habe deshalb mal ein bisschen mehr mit Queries herumgespielt.
Ich würde z.B. gerne eine Query nach Instanzen des Entitätentyp gndo:PlaceOrGeographicName oder einer seiner Unterklassen mache. Es scheint aber, dass dies momentan nicht möglich ist, weil die GND-Ontologie offenbar selbst nicht Teil des abfragbaren Graphen ist.
Diese zwei Queries würden dann ja eigentlich etwas zurückgeben:
PREFIX gndo: <https://d-nb.info/standards/elementset/gnd#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?label WHERE {
?class a rdfs:Class ;
rdfs:label ?label .
}
LIMIT 10
Kann man auch so elegant wie bei Wikidata nach Instanzen einer Klasse inklusive Unterklassen abfragen? Ich hab das jetzt erstmal eher umständlich gemacht:
# Die meistverschlagworteten GND-Einträge vom Typ
# gndo:PlaceOrGeographicName oder einer seiner Unterklassen.
PREFIX gndo: <https://d-nb.info/standards/elementset/gnd#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?subject ?subjectLabel (COUNT(?work) AS ?Anzahl) WHERE {
VALUES ?type { gndo:PlaceOrGeographicName }
?subType rdfs:subClassOf ?type .
{ ?subject a ?type . }
UNION
{ ?subject a ?subType . }
?work dct:subject ?subject .
?subject gndo:preferredNameForThePlaceOrGeographicName ?subjectLabel .
}
GROUP BY ?subject ?subjectLabel
ORDER BY DESC(?Anzahl)
Ich habe versucht, die Queries möglichst leicht anpassbar zu machen durch einen Austausch der VALUES-Angaben am Anfang des SELECT-Statements. Falls ich irgendwo einen Denkfehler gemacht habe, freue ich mich über Hinweise.
Für den GND Endpunkt sind jetzt die Suggestions/Vorschläge beim Tippen eingerichtet. Ich hoffe, das erleichtert zukünftig einige Abfragen, auch wenn man das Datenmodell nicht kennt. Tippt mal los
(Für den Endpunkt mit den Titeldaten + GND richte ich das auch noch ein)