HTTP
The Rijksmuseum persistent identifier resolver is an HTTP based API that allows you to dereference two types of persistent identifiers (PIDs) over HTTP:
- Real world object (RWO) identifiers of the form
https://id.rijksmuseum.nl/<integer number>
. - Metadata object (MDO) identifiers of the form
https://data.rijksmuseum.nl/<integer number>
.
Dereferencing in this case means getting the actual content identified by the RWO id. This naturally brings us to an important property of this API: it is unable to dereference identifiers of actual physical objects like The Jewish Bride, nor does it dereference identifiers of concepts, such as centimiters or the rape of the Sabine women. To get around this, when derefering an RWO id, we instead redirect the client to the identifier of metadata the museum has available about the requested real world object.
In terms of client-server interactions, the general flow is as follows:
Of course, if a client knows the identifier for some piece of metadata, there is no need to first dereference the associated RWO id. The client can simply deference the MDO id directly.
HTTP Content Negotiation
Metadata may be available in several representations. E.g. The Nightwatch is available in representations using the Linked Art model and the Europeana Data Model. Furthermore, each of these representations may be serialized in multiple ways, such as Turtle or RDF/XML.
To make known to the resolver what representation and serialization can be accepted by the client, the resolver and it's client may perform content negotiation. The resolver API implements the Content Negotiation by Profile spec, that is currently under development by the W3C. More specifically, it conforms to the following two functional profiles of that specification:
- http://www.w3.org/ns/dx/connegp/profile/http (HTTP headers)
- http://www.w3.org/ns/dx/connegp/profile/qsa (Query string arguments)
Content negotiation in general work as follows:
Of course the first step of dereferencing the RWO id can be skipped if the client knows the MDO id already.