Gå til hovedinnhold

Introduksjon til JSON-LD

JSON-LD er ett av mange formater som kan brukes for å representere RDF-data. En fordel med JSON-LD er at det er gyldig JSON. Det betyr at man kan bruke eksisterende verktøy for å lese og behandle JSON. I tillegg er JSON ofte et format som utviklere har kjennskap til.

Selv om måten JSON-LD er strukturert på likner på tradisjonelle objektorienterte dataformater, er det viktig å huske på at all data i RDF er tripler. Se artikkelen vår om RDF for å lære mer om dette.

Context

Et nøkkelkonsept i JSON-LD er context-objektet. All data i RDF identifiseres med URI-er, og dette gjelder også i JSON-LD. Vi kan imidlertid bruke context-objektet til å definere hvordan ulike identifikatorer skal oversettes til URI-er, slik at vi slipper å skrive hele URI-en hver gang:

{
"@context": {
"name": "http://xmlns.com/foaf/0.1/name",
},
"@graph": [
{
"@id": "http://example.com/people/Line",
"name": "Line Pedersen"
},
]
}

Vi definerer her verdien av name i context-objektet, og kan derfor skrive bare name når vi legger inn de faktiske dataene.

En vanlig praksis er å bruke et eksternt context-objekt som er åpent tilgjengelig på internett, slik at man slipper å definere alle typer felter selv. Et eksempel på dette er context-objektet som schema.org publiserer. Du kan se hvordan dette ser ut på https://schema.org/docs/jsonldcontext.jsonld. I bruk ser det slik ut:

{
"@context": "https://schema.org/",
"@graph": [
{
"@id": "http://example.com/teachingAids/TA1",
"@type": "LearningResource",
"name": "Mitt læremiddel",
"description": "Verdens beste læremiddel",
}
]
}

Vi har publisert en egen context som bygger på schema.org, men definerer noen andre nødvendige verdier. Vi anbefaler at dere bruker dette når dere skal overføre data til oss, ved å sette "@context": "https://admin.laeremiddelkatalogen.sikt.no/jsonld-context.jsonld".

Identifikator

Det er påkrevd å sette @id-feltet i ethvert objekt i JSON-LD. Når man setter dette, vil alle andre felter i samme objektet bruke denne verdien som subjekt. Alle key-value-par blir så en mapping av predikat og objekt for det subjektet.

info

Merk: NS4180-standarden krever at en unik identifikator settes i feltet identifier. Det er derfor viktig at man legger inn URI til subjektet i både @id og identifier når man representerer NS4180-data i JSON-LD.

Fant du det du lette etter?

Vi jobber med å forbedre dokumentasjonen vår. Gi oss gjerne en tilbakemelding dersom det er noe som er uklart eller mangler.