Eksperiment‐‐‐rammeverk‐for‐grunnleggende‐ferdigheter_eng - Utdanningsdirektoratet/Grep_SPARQL GitHub Wiki
This page is part of "Eksperimentering med tillegg til Grep"
Experiment – framework for basic skills
As part of experimenting with how we can enrich Grep - or vice versa - find data sets that can become richer by connecting to Grep, we have here considered Rammeverk for grunnleggende ferdigheter | The framework for basic skills (lenke til teksten på udir.no). This is indeed a text where the target group was the curriculum groups that wrote the curriculum, but this can still be seen as an insight into the preparatory work for the development of the basic skills in the curriculum.
What we did
First, we looked at the document itself at udir.no (see link above), and using cut and paste, we wrote a Turtle-document (rammeverk_for_grf.ttl), which we then import into a new repo in our Beta environment. Go to https://sparql-beta-data.udir.no/sparql and select the repo "RamverkForGRF" in the top right corner of the page. Then click on "SPARQL" in the left menu to do the sparql queries in the text below.
First a little tour:
First, take a look at the text in "Framework for..." (link above) to familiarize yourself with the terms. Then we can run a query to see how we've set it up in the sparql endpoint:
List of classes/types
PREFIX owl: <http://www.w3.org/2002/07/owl#>
select distinct ?type where {
?s owl:Class ?type .
}
which returns a list of (the four) types found in this repo. We've also rendered the u:basic_skill_lk20 type from the "201906" repo, and then added some ontology on top of that (more on that later). This is how the result is displayed:
List of properties
In OWL (Web Ontology Language) there is a distinction between owl:ObjectProperty and owl:DatatypeProperty, so here is a list of both: First owl:ObjectProperty:
PREFIX owl: <http://www.w3.org/2002/07/owl#>
select distinct * where {
?s a owl:ObjectProperty ;
rdfs:label ?term ;
rdfs:comment ?definisjon ;
rdfs:domain ?domene ;
rdfs:range ?instans .
FILTER(lang(?term)="nb")
FILTER(lang(?definisjon)="nb")
}
Which gives: It is these properties that make the model hang together. Note that we use ISO 639-1 for language codes here. This is how the OWL standard is defined. Otherwise in Grep we use ISO 639-2 to, among other things, be able to capture the three Sami languages in the content otherwise.
Then to owl:DatatypeProperties:
PREFIX owl: <http://www.w3.org/2002/07/owl#>
select distinct * where {
?s a owl:DatatypeProperty ;
rdfs:label ?term ;
rdfs:comment ?definisjon ;
rdfs:domain ?domene ;
rdfs:range ?instans .
FILTER(lang(?term)="nb")
FILTER(lang(?definisjon)="nb")
}
Which gives this result:
Here we see that ?instance
is not other objects in the model, but a reference to the data type.
I dette eksperimentet har vi ikke tatt oss bryet med å definere de egenskapene vi har "lånt" fra Grep ellers, slik som u:rekkefoelge
(u:sort-order) which has rdfs:range xsd:integer
etc.
So to the content itself
We create a query that shows everything (structured):
PREFIX u: <http://psi.udir.no/ontologi/kl06/>
select ?grf ?grunnleggendeFerdighet ?ferdighetsomraade ?fOmrBeskrivelse ?nivaa ?nivaabeskr ?nivaabeskrivelse where {
?nivaabeskr a u:nivaabeskrivelse ;
u:beskrivelse ?nivaabeskrivelse ; #level desctription
u:rekkefoelge ?nivBeskR ;
u:tilhoerer-ferdighetsnivaa ?niv ; # level
u:tilhoerer-grunnleggende-ferdighet ?grf ; # belongs to basic level
u:tilhoer-ferdighetsomraade ?ferdighOmr . # belogns to skill area
FILTER (lang(?nivaabeskrivelse)="nob")
?niv u:tittel ?nivaa ;
u:rekkefoelge ?nivR .
FILTER(lang(?nivaa)="nob")
?ferdighOmr u:tittel ?ferdighetsomraade ; # skill area
u:beskrivelse ?fOmrBeskrivelse ; # skill area descr.
u:rekkefoelge ?omrR . # sort order
FILTER(lang(?ferdighetsomraade)="nob")
?grf u:tittel ?grunnleggendeFerdighet ; # basic skill title
u:rekkefoelge ?grfR .
FILTER(lang(?grunnleggendeFerdighet)="nob")
FILTER(lang(?fOmrBeskrivelse)="nob")
}
ORDER BY ?grfR ?omrR ?nivR
which gives 105 lines of hits (see extract below):
Link to Grep (repo:201906)
In the next query, we are still in the "FrameworkForGRF" repo, but we merge it with data from what we call the "default repo", in our case "201906". See especiallySERVICE <repository:201906> {...}
. Here we start from a given competence aim (d:KM1015
), and retrieves title and uri, as well as binds ?grf
to what we find as ?grf
in our repo ("Rammeverk..." | "Framework...") :
PREFIX u: <http://psi.udir.no/ontologi/kl06/>
PREFIX d: <http://psi.udir.no/kl06/>
select ?KM ?kompetansemaal ?grf ?grunnleggendeFerdighet ?ferdighetsomraade ?fOmrBeskrivelse ?nivaa ?nivaabeskr ?nivaabeskrivelse where {
SERVICE <repository:201906> {
d:KM1015 u:tilknyttede-grunnleggende-ferdigheter ?grf ;
u:tittel ?kompetansemaal ;
u:uri ?KM .
FILTER(lang(?kompetansemaal)="default")
}
?nivaabeskr a u:nivaabeskrivelse ;
u:beskrivelse ?nivaabeskrivelse ;
u:rekkefoelge ?nivBeskR ;
u:tilhoerer-ferdighetsnivaa ?niv ;
u:tilhoerer-grunnleggende-ferdighet ?grf ;
u:tilhoer-ferdighetsomraade ?ferdighOmr .
FILTER (lang(?nivaabeskrivelse)="nob")
?niv u:tittel ?nivaa ;
u:rekkefoelge ?nivR .
FILTER(lang(?nivaa)="nob")
?ferdighOmr u:tittel ?ferdighetsomraade ;
u:beskrivelse ?fOmrBeskrivelse ;
u:rekkefoelge ?omrR .
FILTER(lang(?ferdighetsomraade)="nob")
?grf u:tittel ?grunnleggendeFerdighet ;
u:rekkefoelge ?grfR .
FILTER(lang(?grunnleggendeFerdighet)="nob")
FILTER(lang(?fOmrBeskrivelse)="nob")
}
ORDER BY ?grfR ?omrR ?nivR
Then we get something similar to the image (section) below: This specific query returns 25 hits, and that's a good match. The competency target is only linked to one basic skill (d:GF5, Digital skills). There are five skill areas for digital skills, and each of these has five skill levels.
Some weak points
- In some curricula, they (the curriculum authors) have chosen to link all competence objectives to all basic skills. It is out of our (we in the Grep team) control.
- There is no direct link between competence goals and level, until someone with authority sits down and makes the connection
But we still see it as a good way to present "background information" or "preparation for the regulation". Some may also be able to see the benefit of reading the basic skills in the curriculum "between the lines". Which levels, and how are they connected for the various skills.
Stay tuned to see more experiments, and feel free to make suggestions (get in touch with us)