-
Notifications
You must be signed in to change notification settings - Fork 0
SparQl querry
Als ik mijn concept wil uitwerken heb ik het volgende uit de API database van NMVW nodig:
- Lengte: dit heb ik nodig de objecten te filteren op lengte
- Naam: dit heb ik nodig om de naam van de objecten te laten zien.
- Afbeeldingen: dit heb ik nodig voor extra content om de informatie van de objecten te versterken.
- Datum: Dit heb ik misschien nodig.
- Beschrijving: dit heb ik nodig om informatie weer te geven.
- Oorsprong/Plaats: -> dit heb ik nodig om achter te komen waar het object vandaan komt.
Met de onderstaande query ga ik de variabelen die ik hierboven heb benoemd ophalen van de database. Dit ga ik per stap uitleggen hoe ik dit heb gedaan.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?cho ?title ?typeLabel ?lengte ?datum ?afb ?bes WHERE {
<https://hdl.handle.net/20.500.11840/termmaster1248> skos:narrower* ?type .
?type skos:prefLabel ?typeLabel .
?cho edm:object ?type .
?cho dc:title ?title .
?cho dct:extent ?lengte.
?cho dct:created ?datum.
?cho edm:isShownBy ?afb.
?cho dc:description ?bes.
FILTER langMatches(lang(?title), "ned")
} LIMIT 10000
Als we eerst kijken naar de eerste prefix:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Met de rdf:
wordt er bepaalde data ophaalt van bijvoorbeeld de volgende database:
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Met de onderstaande code kan begin ik mijn query de vormen. Dit doe ik door met SELECT
specifieke waardes terug op krijgen in objecten.
SELECT ?cho ?title ?typeLabel ?lengte ?datum ?afb ?bes WHERE {
}
Binnen de WHERE
functie zeg met de Sparql logica welke data opgehaald en gestopt moet worden in de geselecteerde variabelen.
<https://hdl.handle.net/20.500.11840/termmaster1248> skos:narrower* ?type .
?type skos:prefLabel ?typeLabel .
?cho edm:object ?type .
?cho dc:title ?title .
?cho dct:extent ?lengte.
?cho dct:created ?datum.
?cho edm:isShownBy ?afb.
?cho dc:description ?bes.
FILTER langMatches(lang(?title), "ned")
Zo haal ik dus specifieke variabelen van verschillende databases zodat ik die data kan ophalen als specifieke variabelen binnen bepaalde objecten die aangemaakt worden binnen de WHERE
functie.
SparQl blijft voor mij een standaard die ik nog niet helemaal beheer maar het helpt mij om wel te begrijpen hoe complex een gebonden database kan zijn. Ik denk dat het mij heel veel tijd zou kosten om data op te halen als ik geen uitleg had gekregen van Ivo Zandhuis. Maar ik zag en geloof erin dat je veel meer kan met SparQl dan wat ik hierboven heb.
Deiver Zamora Cortez • 500785080 | Functional programming | 2019