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.
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.