Iri dereferencing


In de wereld van Linked Data en RDF (Resource Description Framework) spelen IRIs (Internationalized Resource Identifiers) een cruciale rol bij het identificeren van resources. De echte kracht van Linked Data ligt echter in het vermogen om deze IRIs te dereferencen, waardoor gebruikers en systemen betekenisvolle informatie over de geïdentificeerde resources kunnen ophalen.

Wat is IRI Dereferencing?

IRI dereferencing is het proces waarbij toegang wordt verkregen tot de resource of metadata die aan een IRI is gekoppeld. Wanneer een IRI wordt gedereferenced, retourneert deze doorgaans een representatie van de resource, zoals RDF-data, JSON-LD of andere formaten. Dit mechanisme maakt Linked Data zowel machineleesbaar als mensvriendelijk, wat interoperabiliteit en ontdekbaarheid bevordert. Een goede dereference applicatie biedt Content-Negotiation, een manier via een HTTP Header de instructie wordt gegeven om een bepaalde RDF formaat te sturen.

Een voorbeeld

De dataset Daguerreobase bevat de Iri (de identifier):

https://data.ldmax.nl/ark:/74905/0000e8d01e96fd98a81097b15f765d8a.

Deze Iri gebruikt de domeinnaam data.ldmax.nl als basis en niet ldmax.nl. Als iemand deze Iri in de browser plakt, dan gaat de gebruiker dus naar data.ldmax.nl en komt helemaal niet in de LDMax applicatie terecht. Op de server data.ldmax.nl zal dus een dereferencer moeten staan die ervoor zorgt dat de Iri een juist resultaat opgeeft.

LDMax kan deze Iri standaard tonen:

Op de server code.lindeman.it zal de LDMax geïnstalleerd moeten worden. Dat is in dit specifiek geval gedaan en daarom werken nu de volgende URL's ook:

Dereferencing met Content-Negotiation

Content-negotiation is een mechanisme waarmee een client en server kunnen onderhandelen over het formaat van de data die wordt teruggestuurd. De client geeft in de HTTP-header aan welk formaat het prefereert, en de server retourneert de data in dat formaat, mits beschikbaar. Dit maakt het mogelijk om dezelfde resource in verschillende representaties aan te bieden, zoals HTML, JSON-LD of Turtle.

Bijvoorbeeld, als een client een bepaald RDF Format wil, kan dit worden aangegeven in de Accept-header.

Voorbeeld met curl

curl -H "Accept: text/turtle" https://data.ldmax.nl/ark:/74905/0000e8d01e96fd98a81097b15f765d8a

Voorbeeld met JavaScript fetch

fetch("https://data.ldmax.nl/ark:/74905/0000e8d01e96fd98a81097b15f765d8a", {
  headers: {
    "Accept": "application/ld+json"
  }
})
  .then(response => {
    if (response.ok) return response.json();
    throw new Error(`HTTP error! status: ${response.status}`);
  })
  .then(console.log)
  .catch(console.error);

Gratis Dereferencer op jouw domeinnaam inbegrepen bij LDMax!

Als jouw instelling zelf geen dereferencing kan leveren, dan kun je de de LDMax dereferencer gebruiken. Het enig wat je zelft hoeft te doen is een DNS entry aan te maken:

<jouw-domeinaam>  CNAME www.ldmax.nl

In ons voorbeeld:

data.lindeman.it CNAME www.ldmax.nl