SPARQL-spørringer
Fra GrepWiki
(Forskjell mellom revisjoner)
(lenke spørre) |
|||
Linje 585: | Linje 585: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | == List komptetansemål for en gitt læreplan (sortert på trinn og kompetansemålsett) == | ||
+ | <pre width="30"> | ||
+ | |||
+ | PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> | ||
+ | PREFIX grep: <http://psi.udir.no/kl06/> | ||
+ | PREFIX grep-r: <http://psi.udir.no/ontologi/kl06/reversert/> | ||
+ | PREFIX data: <http://data.udir.no/ontologi/kl06> | ||
+ | SELECT DISTINCT ?lptittel ?trinn ?kms ?km ?kmtittel | ||
+ | WHERE { | ||
+ | grep:NOR1-05 ontologi:uri ?lp ; | ||
+ | ontologi:tittel ?lptittel ; | ||
+ | ontologi:har-kompetansemaalsett ?kompetansemaalsett . | ||
+ | FILTER (lang(?lptittel) = '') | ||
+ | |||
+ | ?kompetansemaalsett ontologi:har-etter-aarstrinn ?aarstrinn ; | ||
+ | ontologi:har-kompetansemaal ?km . | ||
+ | ?aarstrinn ontologi:rekkefoelge ?trinnorder ; | ||
+ | ontologi:tittel ?trinn . | ||
+ | FILTER (lang(?trinn) = '') | ||
+ | |||
+ | ?km ontologi:tittel ?kmtittel . | ||
+ | FILTER (lang(?kmtittel) = '') | ||
+ | |||
+ | ?km grep-r:har-kompetansemaal ?kms . | ||
+ | |||
+ | } | ||
+ | ORDER BY ?trinnorder ?kms ?km | ||
+ | |||
+ | </pre> | ||
+ | |||
== Fra kompetansemål til trinn == | == Fra kompetansemål til trinn == |
Revisjonen fra 9. des 2017 kl. 13:45
Eksempelsamling
Her følger et knippe spørringer som du kan kjøre i SPARQL-endepunktet vårt. Se også brukerveiledningen som har et eget kapittel om RDF/SPARQL og ett med en liten eksempelsamling.
Hver spørring er innledet med en "#" som i SPARQL brukt som kommentar (på linje med // i f.eks. .json). Vi har også brukt "#" til øvrige kommentarer.
UTFORSKENDE SPARQL-SPØRRINGER
Liste over alle typer
PREFIX prefix: <http://example.org/ns#> SELECT * WHERE { ?x rdf:type ?type . }
Liste over Properties som er brukt
SELECT DISTINCT ?property WHERE { ?s ?property ?o . }
Mer matnyttig: Hvilke properties (egenskaper) blir brukt av forekomster (Instances) som erklærer en bestemt klasse
SELECT DISTINCT ?property WHERE { ?s a <http://psi.udir.no/ontologi/kl06/laereplan>; ?property ?o . }
List opp hva et gitt element har:
SELECT * WHERE { <http://data.udir.no/kl06/NOR0208> ?p ?o }
...men etter omleggingen til 2016/04-kontrakten må vi egentlig spørre etter psi-adressen for å få dataene til elementet
SELECT * WHERE { <http://psi.udir.no/kl06/NOR0208> ?p ?o }
...og de som tviholder på å bruke data-adressen kan spørre om det samme slik
PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> SELECT ?p ?o WHERE { ?psi ontologi:url-data <http://data.udir.no/kl06/NOR0208> ; ?p ?o }
List opp typer (RDF-måten (med prefix))
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT ?type WHERE { ?s rdf:type ?type }
List opp typer (RDF-måten (uten prefix fungerer også))
SELECT DISTINCT ?type WHERE { ?s rdf:type ?type }
List opp typer (Grep-måten (kun typer som er av "grep-type" i modellen))
PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> SELECT DISTINCT ?type WHERE { ?s ontologi:grep-type ?type }
List opp alle properties
SELECT DISTINCT ?property WHERE { ?s ?property ?o . }
STATISTIKK
Antall tripler
SELECT (COUNT(*) AS ?no) { ?s ?p ?o }
Antall entiteter
SELECT COUNT(distinct ?s) AS ?no { ?s a [] }
Antall distinkte klasser
SELECT COUNT(distinct ?o) AS ?no { ?s rdf:type ?o }
Antall distinkte predikater
SELECT count(distinct ?p) { ?s ?p ?o }
Antall distinkte subjekt-noder
SELECT (COUNT(DISTINCT ?s ) AS ?no) { ?s ?p ?o }
Antall distinkte objekt-noder
SELECT (COUNT(DISTINCT ?o ) AS ?no) { ?s ?p ?o filter(!isLiteral(?o)) }
Uttømmende liste over klasser, brukt i datasettet
SELECT DISTINCT ?type { ?s a ?type }
SPØRRINGER MOT INNHOLDET
Hva skjuler seg bak en UUID-referanse?
PREFIX type: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX u: <http://psi.udir.no/ontologi/kl06/> SELECT ?kode ?psi ?tittel ?type WHERE { ?psi u:id <uuid:2d3db498-48a3-4b4b-8c59-c255b2003fba> ; u:tittel ?tittel ; u:url-data ?kode ; rdf:type ?type ; u:id ?uuid FILTER (lang(?tittel) = "") } ORDER BY str(?kode)
List alle læreplaner (i default-språket)
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix pub: <http://psi.udir.no/ontologi/kl06/status/publisert> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?uri rdf:type u:laereplan ; u:tittel ?tittel ; u:url-data ?kode ; u:status ?pub . FILTER (lang(?tittel) = "") } ORDER BY ?kode ?tittel
Alle publiserte læreplaner for grunnskolen i default-språket
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?laereplan rdf:type u:laereplan ; u:tittel ?tittel ; u:url-data ?kode ; u:har-opplaeringsnivaa ?nivaa ; u:status ?status . FILTER regex(?status, "publisert", "i") FILTER regex(?nivaa, "grunnskole", "i") FILTER (lang(?tittel) = "") } ORDER BY ?tittel ?kode
Lister læreplaner som er erstattet av en annen læreplan
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix r: <http://psi.udir.no/ontologi/kl06/reversert/> prefix status: <http://psi.udir.no/ontologi/kl06/status/publisert> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode ?kode2 WHERE { ?uri rdf:type u:laereplan ; u:tittel ?tittel ; u:url-data ?kode ; r:har-erstatter ?erstattet_av . ?erstattet_av u:url-data ?kode2 ; u:status ?pub . FILTER (lang(?tittel) = "") } ORDER BY ?kode ?tittel
Finner læreplaner uten erstatter-relasjon ved hjelp av MINUS (negasjon)
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?laereplan rdf:type u:laereplan ; u:uri ?uri; u:tittel ?tittel ; u:url-data ?kode ; u:status ?status . MINUS { ?laereplan u:har-erstatter ?erstatter. } FILTER regex(?status, "publisert", "i") FILTER (lang(?tittel) = "") } ORDER BY ?kode
Finner engelsk oversettelse av angitt "tittel" i spørringen
== kilde: http://www.w3.org/TR/sparql11-query/#func-langMatches PREFIX u: <http://psi.udir.no/ontologi/kl06/> SELECT * WHERE { ?x u:tittel "Læreplan i norsk"@nob ; u:tittel ?tittel . FILTER langMatches( lang(?tittel), "eng" ) }
Tekstsøk i læreplan
Eksempel: "iforholdtilisme" i forhold til publiserte kompetansemål (ref. https://no.wikipedia.org/wiki/Forholdisme)
Denne slår også opp i læreplan for å finne læreplantittel
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix r: <http://psi.udir.no/ontologi/kl06/reversert/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?kmkode ?kmtekst ?laereplantittel ?laereplan WHERE { ?kompetansemaal rdf:type u:kompetansemaal ; u:tittel ?kmtekst ; u:kode ?kmkode ; r:har-kompetansemaal ?kms . ?kms r:har-kompetansemaalsett ?laereplan . ?laereplan u:tittel ?laereplantittel . FILTER regex(?kmtekst, "i forhold til", "i") FILTER (lang(?kmtekst) = "") FILTER (lang(?laereplantittel) = "") . } ORDER BY ?laereplan ?kmkode
- Lister læreplaner som er fastsatt av Kunnskapsdepartementet
- Vær obs på at "departementet" kan forekomme i teksten der udir fastsetter, som i
- "etter delegasjon i brev av 13. september 2013 fra Kunnskapsdepartementet" eller "Utdannings- og forskningsdepartementet"
Derfor filtrerer på "av K"
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix status: <http://psi.udir.no/ontologi/kl06/status/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?uri ?tittel ?kode ?fastsatt_av WHERE { ?uri rdf:type u:laereplan ; u:tittel ?tittel ; u:kode ?kode ; u:fastsettelsesinformasjon-fastsettelsestekst ?fastsatt_av ; u:status ?status . FILTER regex(?fastsatt_av, "av K" @nob, "i") FILTER (lang(?tittel) = "") FILTER (lang(?fastsatt_av) = "") } ORDER BY ?kode ?tittel
Negasjon: Lister læreplaner som ikke er fastsatt av Udir
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix status: <http://psi.udir.no/ontologi/kl06/status/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?uri ?tittel ?kode ?fastsatt_av WHERE { ?uri rdf:type u:laereplan ; u:tittel ?tittel ; u:kode ?kode ; u:fastsettelsesinformasjon-fastsettelsestekst ?fastsatt_av ; u:status ?status . FILTER (lang(?tittel) = "") FILTER (lang(?fastsatt_av) = "") FILTER (!regex(?fastsatt_av, "direktoratet", "i")) } ORDER BY ?kode ?tittel
- vær obs på at noen læreplaner ikke har noe informasjon om hvem som har fastsatt dem - og de dukker opp i denne siste spørringen.
Antall publiserte læreplaner
select (count (?telleobjekt) as ?antall) where { ?telleobjekt <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://psi.udir.no/ontologi/kl06/laereplan>; <http://psi.udir.no/ontologi/kl06/status> ?status . FILTER regex(?status, "publisert","i") }
Antall læreplaner på et oppgitt språk/målform
Antall publiserte læreplaner på nynorsk
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select (count (?telleobjekt) as ?antall) where { ?telleobjekt rdf:type u:laereplan; u:tittel ?tittel ; u:status ?status . FILTER regex(?status, "publisert","i") FILTER (lang(?tittel) = "nob") }
Hvilke fag har merkelappen "avviksfag"?
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?fagkode rdf:type u:fagkode ; u:tittel ?tittel ; u:url-data ?kode ; u:har-merkelapper ?merkelapp . FILTER regex(?merkelapp, "avvik", "i") FILTER (lang(?tittel) = "") } ORDER BY ?kode
Hvilke læreplaner har merkelappen "valgfag"?
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode ?laereplan WHERE { ?laereplan rdf:type u:laereplan ; u:tittel ?tittel ; u:kode ?kode ; u:har-merkelapper ?merkelapp . FILTER regex(?merkelapp, "valg", "i") FILTER (lang(?tittel) = "") } ORDER BY ?tittel ?kode
Liste over fagkoder som har merkelapper
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT * WHERE { ?fagkode rdf:type u:fagkode ; u:tittel ?tittel ; u:url-data ?kode ; u:har-merkelapper ?merkelapp . FILTER (lang(?tittel) = "") } ORDER BY ?merkelapp ?kode
Liste over læreplaner med merkelapp
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?fagkode rdf:type u:laereplan ; u:tittel ?tittel ; u:url-data ?kode ; u:har-merkelapper ?merkelapp . FILTER (lang(?tittel) = "") } ORDER BY ?merkelapp ?kode
Gitt en fagkode, gi meg gjeldende læreplan
PREFIX data: <http://psi.udir.no/kl06/> PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> SELECT ?fagkodetittel ?zkode ?ztittel ?kms ?lp ?lptittel WHERE { data:NOR0214 ontologi:tittel ?fagkodetittel ; ontologi:har-opplaeringsfag ?zkode FILTER (lang(?fagkodetittel) = '') . ?kms ontologi:har-etter-fag ?zkode . ?zkode ontologi:tittel ?ztittel. FILTER (lang(?ztittel) = '') . ?zkode ontologi:status ?zstatus FILTER regex(?zstatus, "publisert") . ?kmslp ontologi:har-kompetansemaalsett ?kms ; ontologi:status ?status FILTER regex(?status, "publisert") . ?lp ontologi:uri ?kmslp . ?lp ontologi:tittel ?lptittel FILTER (lang(?lptittel) = '') . }
Hent årstrinn
prefix u: <http://psi.udir.no/ontologi/kl06/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?url ?tittel WHERE { ?url rdf:type u:aarstrinn; u:tittel ?tittel FILTER (lang(?tittel) = "") }
Hent årstrinn sortert etter rekkefølge-statementet for årstrinn
prefix u: <http://psi.udir.no/ontologi/kl06/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?url ?tittel WHERE { ?url rdf:type u:aarstrinn; u:rekkefoelge ?rekkefoelge; u:tittel ?tittel FILTER (lang(?tittel) = "") } ORDER BY ?rekkefoelge
Hvilke fagkoder har merkelappen "avviksfag"?
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?kode ?tittel WHERE { ?fagkode rdf:type u:fagkode ; u:tittel ?tittel ; u:url-data ?kode ; u:har-merkelapper ?merkelapp . FILTER regex(?merkelapp, "avvik", "i") FILTER (lang(?tittel) = "") } ORDER BY ?tittel ?kode
Gitt en fagkode, gi meg gjeldende opplæringsfag
PREFIX grep: <http://psi.udir.no/kl06/> PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> PREFIX kode: <http://data.udir.no/kl06/> SELECT ?fagkode ?fagkodetittel ?zkode ?zstatus WHERE { ?fagkode ontologi:kode "NOR0214" ; ontologi:tittel ?fagkodetittel FILTER (lang(?fagkodetittel) = '') . ?fagkode ontologi:har-opplaeringsfag ?zkode. ?zkode ontologi:status ?zstatus FILTER regex(?zstatus, "publisert") . }
Fra opplæringsfag til trinn via kompetansemålsett 1
PREFIX grep: <http://psi.udir.no/ontologi/kl06/> PREFIX grep-r: <http://psi.udir.no/ontologi/kl06/reversert/> PREFIX grep-s: <http://psi.udir.no/ontologi/kl06/status/> SELECT DISTINCT ?kmstittel ?ksett ?opplaeringsfagtittel ?trinn WHERE { <http://psi.udir.no/kl06/NOR1Z37> ?p ?o ; grep:tittel ?opplaeringsfagtittel ; grep-r:har-etter-fag ?ksett FILTER (lang(?opplaeringsfagtittel) = '') . ?ksett grep:har-etter-aarstrinn ?trinn ; grep:tittel ?kmstittel FILTER (lang(?kmstittel) = '') . }
Se "FILTER (lang(?kmstittel) = ) .": I syntaksen for litteraler er doble anførselstegn og apostrof likestilt ref. https://www.w3.org/TR/sparql11-query/#QSynLiterals
Fra opplæringsfag til trinn via kompetansemålsett 2
PREFIX grep: <http://psi.udir.no/ontologi/kl06/> PREFIX grep-r: <http://psi.udir.no/ontologi/kl06/reversert/> PREFIX grep-u: <http://psi.udir.no/kl06/> SELECT DISTINCT ?ksett ?trinn WHERE { grep-u:NOR1Z37 ?p ?o ; grep-r:har-etter-fag ?ksett . ?ksett grep:har-etter-aarstrinn ?trinn . }
List komptetansemål for en gitt læreplan (sortert på trinn og kompetansemålsett)
PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> PREFIX grep: <http://psi.udir.no/kl06/> PREFIX grep-r: <http://psi.udir.no/ontologi/kl06/reversert/> PREFIX data: <http://data.udir.no/ontologi/kl06> SELECT DISTINCT ?lptittel ?trinn ?kms ?km ?kmtittel WHERE { grep:NOR1-05 ontologi:uri ?lp ; ontologi:tittel ?lptittel ; ontologi:har-kompetansemaalsett ?kompetansemaalsett . FILTER (lang(?lptittel) = '') ?kompetansemaalsett ontologi:har-etter-aarstrinn ?aarstrinn ; ontologi:har-kompetansemaal ?km . ?aarstrinn ontologi:rekkefoelge ?trinnorder ; ontologi:tittel ?trinn . FILTER (lang(?trinn) = '') ?km ontologi:tittel ?kmtittel . FILTER (lang(?kmtittel) = '') ?km grep-r:har-kompetansemaal ?kms . } ORDER BY ?trinnorder ?kms ?km
Fra kompetansemål til trinn
PREFIX grep: <http://psi.udir.no/ontologi/kl06> PREFIX grep-r: <http://psi.udir.no/ontologi/kl06/reversert/> PREFIX grep-s: <http://psi.udir.no/ontologi/kl06/status/> SELECT * WHERE { <http://data.udir.no/kl06/K15471> grep:tittel ?tittel ; grep:laereplan-referanser ?lplan FILTER (lang(?tittel) = '') . ?ofag grep:laereplan-referanse ?lplan ; <http://psi.udir.no/ontologi/kl06/reversert/etter-fag> ?ksett FILTER (lang(?tittel) = '') . ?ksett grep:etter-aarstrinn ?trinn FILTER (lang(?tittel) = '') . ?trinn ?p ?o }
Fra fagområde til læreplan
PREFIX ontologi: <http://psi.udir.no/ontologi/kl06/> PREFIX ontologi-rev: <http://psi.udir.no/ontologi/kl06/reversert/> PREFIX data: <http://data.udir.no/kl06/> SELECT ?uri ?tittel ?kode WHERE { { SELECT DISTINCT ?lp WHERE { ?psi ontologi:url-data <http://data.udir.no/kl06/FOMR404> ; ontologi-rev:har-fagomraade-referanser ?opplaeringsfag . ?opplaeringsfag ontologi:status data:status_publisert ; ontologi-rev:har-etter-fag ?kms . ?kms ontologi-rev:har-kompetansemaalsett ?lp } } ?lp ontologi:status data:status_publisert ; ontologi:url-data ?uri ; ontologi:tittel ?tittel ; ontologi:kode ?kode FILTER (lang(?tittel) = "") } ORDER BY str(?tittel)
I hvilke fag (fagkoder) gis det undervisning første semester 2018?
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?fagkode rdf:type u:fagkode ; u:tittel ?tittel ; u:url-data ?kode ; u:naar-gis-det-undervisning-foerste-semester ?foerstesemester . FILTER regex(?foerstesemester, "semester_hoest_2018", "i") FILTER (lang(?tittel) = "") } ORDER BY ?kode
I hvilke programområder gis det undervisning første semester 2017?
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?fagkode rdf:type u:programomraade ; u:tittel ?tittel ; u:url-data ?kode ; u:foerste-semester ?foerstesemester . FILTER regex(?foerstesemester, "2017", "i") FILTER (lang(?tittel) = "") } ORDER BY ?kode
I hvilke utdanningsprogram gis det undervisning første semester 2016?
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?tittel ?kode WHERE { ?kode rdf:type u:utdanningsprogram ; u:tittel ?tittel ; u:url-data ?kode ; u:foerste-semester ?foerstesemester . FILTER regex(?foerstesemester, "2016", "i") FILTER (lang(?tittel) = "") } ORDER BY ?kode
Utdanningsprogram
liste utdanningsprogram, fagtype, sluttkompetanse og yrkestittel
prefix u: <http://psi.udir.no/ontologi/kl06/> prefix pub: <http://psi.udir.no/ontologi/kl06/status/publisert> prefix r: <http://psi.udir.no/ontologi/kl06/reversert/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT ?up ?po ?po_tittel ?lp ?fagtype ?sluttkompetanse ?y_tittel WHERE { ?opplaeringsfag rdf:type u:opplaeringsfag ; u:status ?ofstatus ; u:tittel ?oftittel ; u:har-programomraader-referanse ?po ; u:har-fagtype ?fagtype ; u:status ?po_status ; r:har-etter-fag ?kms . ?po u:tittel ?po_tittel . ?kms r:har-kompetansemaalsett ?lp . FILTER regex(?fagtype, "program", "i") ?po u:har-utdanningsprogram-referanse ?up ; u:sluttkompetanse ?sluttkompetanse ; u:yrkestittel ?y_tittel ; u:status ?upstatus . FILTER regex(?po_status, "publisert", "i") FILTER (lang(?oftittel) = "") FILTER (lang(?po_tittel) = "") FILTER (lang(?y_tittel) = "") } ORDER BY ?up ?po ?lp ?po_status
Flere eksempler mottas med takk.