Titels van boeken en meer

Titels van boeken en meer

In Nederland wordt er door alle samenwerkende bibliotheken en de Koninklijke Bibliotheek een catalogus bijgehouden van titels van boeken, e-books maar ook ‘software’. Deze catalogus is beschikbaar als open data en biedt inzicht in wat je kan lenen of inzien bij de Bibliotheek! Maar je kan er natuurlijk ook andere dingen mee doen. De Nationale Bibliotheek Catalogus is een database die gevuld wordt wanneer er een nieuwe Nederlandse publicatie (of werk) is, of er een nieuwe vertaling is.

Deze catalogus wordt door de Koninklijke Bibliotheek aangeboden als de Nederlandse Bibliografie Totaal, en bevat dan naast de titels ook diverse metadata via gekoppelde thesauri. Van boeken, Software CD’s en e-books kan je diverse informatie opvragen. Zo kent deze dataset auteursgegevens, bevat het informatie over uitgevers, de druk, de eerste uitgave en het aantal pagina’s.

 

Mogelijke toepassingen

Naast dat je een bibliotheek catalogus zoeksysteem kan maken zoals bibliotheek.nl of een alternatieve versie,  zijn er natuurlijk ook andere toepassingen te bedenken. Bijvoorbeeld een App die inzichtelijk maakt welke nieuwe boeken gepubliceerd worden. Of een dashboard dat inzichtelijk maakt welke boeken in Nederland beschikbaar zijn en hoe dit verandert over tijd. Welke onderwerpen veranderen over tijd,  wat is de invloed van de tweede oorlog geweest op de boekproductie?

 

Hoe te gebruiken

Al deze ‘boeken’ -data is via SPARQL op data.kb.nl (html interface) beschikbaar. Hieronder een aantal voorbeelden van wat je met zo’n SPARQL endpoint kan doen. Voor een introductie in SPARQL, zie onze datablog hierover.

1. Basislijst van Boeken met eventuele titels en auteur  (3,5 miljoen boeken, 20GB) (html query , CSV, JSON):

prefix schema: <http://schema.org/>
 prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 SELECT * WHERE {
 ?id rdf:type schema:Book .
 OPTIONAL { ?id schema:author ?author .}
 OPTIONAL { ?id schema:name ?title . }
 } LIMIT 10000 OFFSET 0

Met OFFSET kan je meer resultaten ophalen. Naast boeken kan je dus E-books ophalen door de regel “$id rdf:type schema:Book .” te vervangen door “$id rdf:type schema:EBook”. Voor software verander je dit in  “$id rdf:type schema:SoftwareApplication”.

 

2. Op basis van delen van de titel zoeken. Met een FILTER instructie kan je een reguliere expressie uitvoeren op een variabele.

prefix schema: <http://schema.org/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT * WHERE {
 ?id rdf:type schema:Book . 
 ?id schema:name ?title .
 FILTER regex(?title, "posthoornkerk") . 
} LIMIT 100

Merk op dat je hier als identifier een link terug krijgt eindigend op …/id/nbt/p117801798. Bij de praktijk introductie SPARQL kwamen we eerder ook links tegen eindigend op …/doc/nbt/p117801798. Het verschil is dat id paden verwijzen naar een unieke identifier voor het globale object, terwijl /doc/nbt verwijst naar het ‘informatieve’  record hierover bij de Koninklijke Bibliotheek. De laatste bevat geen velden behalve het owl-sameAs veld dat linkt naar het unieke object. Als je vanuit datasets (lees databases) redeneert kom je eerst op de paden met /doc en dan pas /id. Indien je vanuit objecten met eigenschappen redeneert, zal je eerst een pad met /id krijgen en dan via owl-sameas het pad met /doc kunnen opvragen.

 

3. Van een enkel boek , zoals ‘Stenen voor een ransuil van Maarten ’t Hart’, kan je de data in kaart brengen (html query ) :

PREFIX idnbt: <http://data.bibliotheken.nl/id/nbt/>
SELECT ?p ?o WHERE {
 idnbt:p036878049 ?p ?o
} LIMIT 100

Je kan natuurlijk deze informatie ook direct opvragen als html pagina. En andere mogelijkheid is om een globaal beeld van de data te krijgen via het DESCRIBE statement (html query):

prefix schema: <http://schema.org/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
DESCRIBE ?book WHERE {
 ?book rdf:type schema:Book
}

 

4. Een andere optie is om op basis van ISBN te zoeken.

Wellicht vind je het handiger om op basis va ISBN te zoeken. Dat kan met de volgende query (online).

prefix schema: <http://schema.org/>
 SELECT ?id WHERE {
?id schema:isbn "9789024563975"
}

Dit geeft een lijst van boeken die voldoen aan dit criteria, met het nbt/p nummer kan je vervolgens de data via de query uit 3 ophalen.

 

5. Een overzicht maken van publicaties. Bijvoorbeeld het  jaar 2016-2017

prefix schema: <http://schema.org/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT $startdate $title $author $id WHERE {
 ?id rdf:type schema:Book . 
$id rdfs:label $title .
$id schema:author $author .
$id schema:publication $pub . 
$pub schema:startDate $startdate . 
} ORDER BY $startdate
LIMIT 1000 OFFSET 0

 

Wil je meer weten over gekoppelde data, zoals auteurs, en classificaties? Zie dan de datablog over thesauri. Voor meer achtergrond informatie over de Nationale Bibliotheekcatalogus (NBC+), zie https://www.kb.nl/ob/digitale-infrastructuur/nationale-bibliotheekcatalogus-nbc.

 

Back to site top