Ändringar i K-samsök 2025-06-23
2025-06-23 kommer en ändring i hur K-samsök serialiserar RDF-grafer som JSON-LD. Ändringen beskrivs här nedanför, och en offentlig verifikationsmiljö är tillgänglig för test inför driftsättnignen.
Ändringen kommer att påverkar tillämpningar byggda på K-samsök som både:
- konsumerar data från K-samsök i JSON-LD–formatet;
och - behandlar datat som om den vore en vanlig JSON-datastruktur, inte som en serialisering av en RDF-graf;
Ändringen gäller för:
- Anrop mot K-samsöks API där
Accept: application/ld+json
anges i anropets HTTP-headers; - Upplösning av URI:er på http://kulturarvsdata.se där
Accept: application/ld+json
anges i anropets HTTP-headers; - Upplösning av beständiga URL:er för serialiersingar på http://kulturarvsdata.se med ‘…/jsonld/…’-infixen.
(T.ex. http://kulturarvsdata.se/shm/art/jsonld/940712F1 för URI:n http://kulturarvsdata.se/shm/art/940712F1)
Obs. att om er tillämpning inte konsumerar JSON-LD data från K-samsök, eller konsumerar JSON-LD men behandlar det som en RDF-graf, den här ändringen kommer inte att påverka er. RDF/XML-serialiseringen påverkas inte, och de bakomliggande RDF-graferna förblir isomorfiska tvärs ändringen – det är enbart grafens serialisering som JSON-LD som kommer att förändras.
K-samsök går över från att serialisera data som JSON-LD 1.0, till JSON-LD 1.1, och serialiseringsmönstret ändras i samband med detta.
Bl.a.:
- Namnrymder behandlas på ett annat sätt. I dagens JSON-LD 1.0 serialisering använda kortnamn (alias) för de flesta enskilda attribut, som förekommer var för sig inom ett
@context
-block, såsom t.ex.:… "@context": { "itemDescription": { "@id": "http://kulturarvsdata.se/ksamsok#itemDescription", "@type": "@id" }, … }, …
Framöver kan
@context
-blocket bli mycket kortare, och<http://kulturarvsdata.se/ksamsok#>
anges som förvald namnrymd, och andra namnrymder definieras, istället för att varje attribut definieras för sig:… "@context": { "@vocab": "http://kulturarvsdata.se/ksamsok#", "foaf": "http://xmlns.com/foaf/0.1/", … }, …
- Detta innebär också att typade strängar kan uttryckas på ett annat sätt, med inline-mönstret
@type
/@value
snarare än fördefinierade typer; t.ex. nuvarande… "@graph": [ { … "presentation": "…<XML>…", … } ], "@context": { … "presentation": { "@id": "http://kulturarvsdata.se/ksamsok#presentation", "@type": "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral" }, … }
kan bli
… "@graph": [ { … "presentation": { "@value": "…<XML>…", "@type": "rdf:XMLLiteral" }, … } ], "@context": { "@vocab": "http://kulturarvsdata.se/ksamsok#", … }
- En annan konsekvens är, att RDF-objekt som är URI:er, och referenser till blanka noder, blir JS-objekt med
@id
-nyckel och sträng som värde, snarare än bara strängar. T.ex. skulle dagens,… "itemLicenseUrl": "http://creativecommons.org/publicdomain/zero/1.0/", …
och
… "itemDescription": [ "_:b1", … ], …
bli
… "itemDescription": [ { "@id": "_:b1" }, … ], …
och
… "itemLicenseUrl": { "@id": "http://creativecommons.org/publicdomain/zero/1.0/" }, …
Även övriga skillnader kan förekomma. Vi har därför tillgängliggjort en verifikationsmiljö med den nya JSON-LD 1.1 serialiseringen, för att man ska kunna testa sina applikationer mot den innan ändringen driftsätts 2025–06–23.
Verifikationsmiljöns API-endpoint ligger på https://v-ksam.testkulturarvsdata.se/ksamsok/api, och URI:er samt beständiga länkar kan lösas upp på https://v-ksam.testkulturarvsdata.se/ksamsok/.
T.ex. URI:n http://kulturarvsdata.se/shm/art/940712F1 med beständig JSON-LD–länk http://kulturarvsdata.se/shm/art/jsonld/940712F1 blir https://v-ksam.testkulturarvsdata.se/ksamsok/S-HM/object/HM23268 eller som JSON-LD, https://v-ksam.testkulturarvsdata.se/ksamsok/S-HM/object/jsonld/HM23268.