diff --git a/docs/howtoquery/h/2.md b/docs/howtoquery/h/2.md index 8cf9e258..613ec9c3 100644 --- a/docs/howtoquery/h/2.md +++ b/docs/howtoquery/h/2.md @@ -1,29 +1,53 @@ # Connecten met sparql-endpoint + ## Introductie -NLCS is gepubliceerd op een sparql-endpoint. Dit hoofdstuk beschrijft hoe je daarmee kunbt connecten vanuit een applicatie +NLCS is gepubliceerd op een sparql-endpoint. Dit hoofdstuk beschrijft hoe je kunt queriën met sparql en hoe je met een sparql-endpoint kunt connecten vanuit een applicatie -## Open API versus sparql -De Open-API specificaties zijn geschreven voor Rest-API’s. Deze techniek worden vandaag de dag veel gebruikt. -Als je een connector wilt bouwen voor een sparql-endpoint heb je andere parsing en constructie nodig. +## How-To: Werken met SPARQL-query's +Deze handleiding is bedoeld voor ontwikkelaars die willen werken met SPARQL-query's in de context van NLCS Linked Data. We zullen stapsgewijs uitleggen hoe je query's kunt uitvoeren en het NLCS-datamodel kunt verkennen. +### SPARQL Query Editor +Om SPARQL-query's uit te voeren, kun je gebruik maken van YasGUI, een open-source SPARQL Query Editor die in de browser draait. -## https-protocol -Connecten met een sparql-endpoint gaat met het https protocol, https://www.w3.org/TR/sparql11-protocol/. Dit beschrijft hoe je een gewone GET of POST request doet naar een SPARQL endpoint. +* YasGUI: [Link naar YasGUI](https://yasgui.org/) -Leestips: -* Het kadaster heeft zijn datasets (oa de BGT en de BAG) ook als linked data gepubliceerd, en heeft documentatie gemaakt om developers op gang te helpen om hiermee te connecten: https://labs.kadaster.nl/developer/sparql/ en met name ook https://labs.kadaster.nl/developer/sparql/tutorial/4-Gebruik-eigen-programmeertaal. +### SPARQL/API-endpoint +Het SPARQL/API-endpoint voor de Laces-repo's is cruciaal voor het uitvoeren van query's. Gebruik de actuele endpoints die te vinden zijn in de [Readme van de NLCS repository](https://github.com/nl-digigo/NLCS/blob/main/README.md) + +### Uitvoeren van een Basisquery +Je kunt exploratieve vragen stellen om jezelf een indruk te geven van welke predicaten, welke klassen voorkomen: +* SELECT DISTINCT ?class WHERE { [] rdf:type ?class . } +* SELECT DISTINCT ?predicate ?type WHERE { [] ?predicate ?value . bind( datatype(?value) as ?type ) } +* en met SELECT * WHERE { ?s ?p ?o . filter( regex( ?o , "discipline", "i" ) ) } +* zie je de URI van de klasse Discipline. +### Browsen door de ontologie +Als je door de gehele ontologie als bestand wil browsen, via de API-beschrijving van Laces is te vinden hoe je die ophaalt. Ook kun je bijv. Ontodia gebruiken om grafisch te browsen, [hier](https://jsfiddle.net/mgdL5p3w/3/) is een voorbeeld geconfigureerd. -## sparql +### Leestips Als SPARQL zelf nog nieuw is, dan is https://www.w3.org/TR/2013/REC-sparql11-query-20130321/ de open (en overal geïmplementeerde) specificatie (veel consequenter tussen vendors dan SQL). De volgende boeken helpen je op weg: * Dean Allemang, James Hendler, Fabien Gandon. (2020.) Semantic web for the working ontologist: effective modeling for linked data, RDFS and OWL. 3rd ed. ACM Books #33. * Bod DuCharme. (2013). Learning SPARQL. 2nd ed. O'Reilly. +* DyCharmes [website](http://www.learningsparql.com/). + +## Connectors bouwen + +### Open API versus sparql +De Open-API specificaties zijn geschreven voor Rest-API’s. Deze techniek worden vandaag de dag veel gebruikt. +Als je een connector wilt bouwen voor een sparql-endpoint heb je andere parsing en constructie nodig. -## Dotnet/c-sharp +### https-protocol +Connecten met een sparql-endpoint gaat met het https protocol, https://www.w3.org/TR/sparql11-protocol/. Dit beschrijft hoe je een gewone GET of POST request doet naar een SPARQL endpoint. + +### Leestips +* Het kadaster heeft zijn datasets (oa de BGT en de BAG) ook als linked data gepubliceerd, en heeft documentatie gemaakt om developers op gang te helpen om hiermee te connecten: https://labs.kadaster.nl/developer/sparql/ en met name ook https://labs.kadaster.nl/developer/sparql/tutorial/4-Gebruik-eigen-programmeertaal. * Op https://github.com/semantalytics/awesome-semantic-web?tab=readme-ov-file#c-1 gaat het over dotNetRDF en RDFSharp. + + +