Faktasnutt om context i JSON‐LD - Utdanningsdirektoratet/KL06-LK20-public GitHub Wiki

Dette er en faktasnutt for artikkelen Typer og egenskaper i Grep; REST vs SPARQL

Faktasnutt: Hva er @context i JSON-LD?

Helt i starten av en .jsonld-fil finner du et felt kalt @context. Dette er en nøkkelkomponent i JSON-LD, og det som gjør at dataene blir Linked Data – altså RDF (og dermed tigjengelig for SPARQL-spørringer)

@context fungerer som en slags «oppslagsbok» som sier hva alle feltnavnene i dokumentet betyr. Den gir kortformene (f.eks. "tittel", "status", "kode") en entydig URI, slik at både maskiner og mennesker forstår at "tittel" i dette datasettet betyr det samme som http://psi.udir.no/ontologi/kl06/tittel.

  "@context": {
    "@vocab": "http://psi.udir.no/ontologi/kl06/",
    "uriId": "@id",
    "uri": {
      "@type": "@id"
    },
    "url-data": {
      "@type": "@id"
    },
    "grepType": "@type",
    "grep-type": {
      "@type": "@id"
    },
    "verdi": "@value",
    "spraak": "@language",
    "status": {
      "@type": "@id"
    }
  },

Legg merke til at:

  • @id og @type er standard RDF-felter.
  • Felter som tittel og status får utdypet både hva de peker til (URI) og hvordan de er strukturert (f.eks. med språkcontainer eller ID-type).
  • Det er @context som gjør at vi kan bruke SPARQL mot disse dataene.

Her er en tabell som viser sammenhengen mellom feltnavnene i dataen, definisjonene i @context, og hva det betyr i praksis:

Felt i JSON Definisjon i @context Hva det betyr (enkelt forklart)
@vocab "http://psi.udir.no/ontologi/kl06/" Grunnstamme for alle feltnavn uten eksplisitt URI
uriId "@id" Dette feltet skal tolkes som selve ID-en til objektet
grepType "@type" Objektets RDF-type – hvilken "klasse" det tilhører
grep-type { "@type": "@id" } Dette feltet er en URI til en annen ressurs (ikke tekststreng)
uri { "@type": "@id" } Også en URI – typisk en ekstern lenke eller identifikator
url-data { "@type": "@id" } URI til selve dataressursen på nett (brukes som lenke)
verdi "@value" Brukes som selve innholdet i en tekst (i språkversjonerte tekster)
spraak "@language" Hvilket språk teksten er på (nob, nno, eng, sme, default osv.
status { "@type": "@id" } Dette er en referanse til en URI som beskriver statusen til elementet (f.eks. publisert/utgått)

Du trenger ikke forstå hele @context-objektet for å bruke dataene – men det er nyttig å vite at det finnes, og hva det gjør.

Les mer om vår SPARQL-løsning i egen wiki