Publicatie:SPARQL

Uit Meemoo Kennisbank
Naar navigatie springen Naar zoeken springen


Samenvatting

Het vorige Uitgepakt-artikel ging over RDF-triples: een speciale drievoudige structuur, waarmee je kennis kunt vormgeven als een machineleesbaar netwerk. Aan zulke netwerken kun je dan complexe vragen stellen, wat interessante resultaten kan opleveren. Maar hoe stel je precies een vraag aan zo’n netwerk van kennis? En hoe zien de resultaten er precies uit?


Referentie
Titel SPARQL (Voorkeurstitel)
Locatie META Nummer 2018/1
Uitgever
Jaar van uitgave 2018
Rechten CC-BY-SA
Persistent ID


Auteur

Alina Saenko (PACKED vzw)

Zoekopdrachten

Een RDF-triple is data gestructureerd als een simpele en natuurlijke stelling, die uit drie elementen bestaat: subject - bewering - object. Zulke stellingen worden inhoudelijk aan elkaar gekoppeld tot een grote graaf, een netwerk van kennis. Omdat die graaf machineleesbaar is, kun je een machine een ingewikkelde zoekopdracht laten uitvoeren, maar dan moet die machine voor die vraag een specifieke taal gebruiken.

Een vraag die je aan een databank stelt wordt ook wel eens een query genoemd. Query's gebruiken een specifieke taal die afgestemd is op het soort databank waaraan je de vraag stelt. Voor RDF-databanken heet die taal SPARQL Protocol And RDF Query Language. SPARQL is ontworpen voor gebruik op het web en laat toe om vragen te stellen aan verschillende bronnen en heel grote netwerken van kennis. Een RDF-databank aanspreken m.b.v. SPARQL doe je via een SPARQL-endpoint. Dat is de API (een verzameling programmeeropdrachten die de functies van een programma aanroepen) waarmee je RDF-databank kan communiceren met andere machines.

SPARQL-endpoint op Wikidata

Een online werkende en een heel toegankelijke SPARQL-endpoint is die van Wikidata. Wikidata is een databank die alle informatie uit Wikipedia-artikels en meer in een gestructureerde vorm verzamelt. De interface van het endpoint is te vinden op https://query.wikidata.org en is voorzien van een toelichting over de verschillende parameters, een veld waar je een SPARQL-query kunt opstellen en een veld waar je de resultaten te zien krijgt en ook kunt downloaden als CSV, JSON, RDF etc. Om al een paar voorbeelden te zien, kun je op de pagina van de SPARQL-endpoint van Wikidata voorgemaakte queries lanceren zoals: Geef me een lijst van steden waar de burgemeester van vrouw is of Toon me alle luchthavens van België op een map of Toon me een grafiek van aantal van boeken die elk jaar uitkomen per genre.

Zelf SPARQL-queries gebruiken

Bij het opstellen van zo’n SPARQL-query kun je bepalen waarnaar dat je op zoek bent en welke metadata je als resultaat per entiteit meekrijgt. Een simpele SPARQL-query kan er zo uitzien: SELECT ?item ?_inventory_number WHERE { ?item wdt:P195 wd:Q2365880. OPTIONAL { ?item wdt:P217 ?_inventory_number. }}. De query in dit voorbeeld vraagt om alle kunstobjecten te tonen die bij een specifieke museale collectie behoren en een record online op Wikidata hebben. Je hebt ook een mogelijkheid om de resultaten op verschillende manieren te laten visualiseren: een tijdslijn, een beeldoverzicht, een map, een bubble chart en andere soorten grafieken.

Screenshot van de Wikidata SPARQL-endpoint en een query voor kunstwerken waarop vuurwerk te zien is: http://tinyurl.com/y786tg4y.

Je kunt een simpele query verder uitbreiden door telkens meer voorwaarden toe te voegen en zo ingewikkeldere zoekopdrachten op te stellen. En als je SPARQL-taal niet kent is, zijn er gelukkig andere gebruikers die je kunnen helpen om een query in SPARQL te schrijven.

Onderzoek

SPARQL-queries worden vooral gebruikt in digital humanities, onderzoekspraktijken waarbij computers en digitale hulpmiddelen ingezet worden voor onderzoek in de geesteswetenschappen. Vaak worden ze gebruikt voor vragen die niet door analoog onderzoek beantwoord kunnen worden (of toch niet op een redelijke termijn). Door RDF-databanken met verschillende soorten gegevens op te stellen en er zoekopdrachten met SPARQL uit te voeren, kunnen onderzoekers grootschalige sets van data naast elkaar analyseren, nieuwe verbanden zoeken en nieuwe kennis verkrijgen.