Kunstmuseum API

From Kunstmuseum API
Revision as of 09:29, 13 November 2024 by Pefferen (talk | contribs) (→‎Query service: /w/ toegevoegd aan url)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
11.14 Schreurs Gemeentemuseum ExterieurNEW RGB.jpg

Inleiding

Deze website is opgezet om objecten, tentoonstellingen en andere gebeurtenissen als Linked Open Data te verstrekken.

Dataset

De data omvat momenteel een klein deel van het Kunstmuseum, maar er is het voornemen alle objecten en tentoonstellingen op te nemen. De service is oorspronkelijk opgezet om de content voor de website Delftsaardewerk.nl vanuit verschillende musea te importeren en te leveren via de API. Daarna is het ook ingezet voor van Gogh Worldwide. Daarna volgde het project Aziatisch keramiek.

Query service

Om de data op te vragen is een query service aanwezig waarbij de informatie via SPARQL bevraagd kan worden. Het SPARQL-endpoint is te vinden op https://api.kunstmuseum.nl/query/proxy/wdqs/bigdata/namespace/wdq/sparql

Daarnaast kan de informatie ook via een REST-API uitgelezen worden. De API is benaderbaar via https://api.kunstmuseum.nl/w/api.php Een voorbeeld om item Q1 op te vragen: https://api.kunstmuseum.nl/w/api.php?action=wbgetentities&ids=Q1&format=jsonfm

Datastructuur

In de API hebben we verschillende eigenschappen. Deze eigenschappen hebben een kwalifier waarin in een tekstveld de presentatietekst wordt opgeslagen. Vervolgens draaien er scripts die uit de presentatietekst zoveel mogelijk de eigenschappen bij de import voorzien zijn van een item.

Infrastructuur

Als triplestore wordt gebruik gemaakt van een Wikibase-installatie. https://www.mediawiki.org/wiki/Wikibase/API

Collectie-items worden ingelezen via python scripts, zie https://gitlab.com/KunstmuseumDenHaag/expertsites/API met de library WikibaseIntegrator. https://pypi.org/project/wikibaseintegrator/0.11.2/

Reconciliation

Voor reconciliation met de data van het Kunstmuseum is een reconciliation-service opgezet: https://reconciliation.kunstmuseum.nl/

Openrefine

Het reconciliation-endpoint kan in Openrefine worden ingevoerd om te koppelen. Om items vervolgens te uploaden is een account en een manifest nodig. Onderstaand is te gebruiken als manifest:


{
 "version": "2.0",
 "mediawiki": {
   "name": "Kunstmuseum API",
   "root": "https://api.kunstmuseum.nl/wiki/",
   "main_page": "https://api.kunstmuseum.nl/wiki/Kunstmuseum_API",
   "api": "https://api.kunstmuseum.nl/w/api.php"
 },
 "wikibase": {
   "site_iri": "https://api.kunstmuseum.nl/entity/",
   "maxlag": 5,
   "max_edits_per_minute": 240,
   "tag": "openrefine-${version}",
   "properties": {
     "instance_of": "P4",
     "subclass_of": "P47"
   }
 },
 "oauth": {
   "registration_page": "https://api.kunstmuseum.nl/wiki/Speciaal:OAuthGebruikerRegistratie/propose"
 },
 "entity_types": {
   "item": {
      "site_iri": "https://api.kunstmuseum.nl/entity/",
      "reconciliation_endpoint": "https://reconciliation.kunstmuseum.nl/${lang}/api",
      "mediawiki_api": "https://api.kunstmuseum.nl/w/api.php"
   },
   "property": {
      "site_iri": "https://api.kunstmuseum.nl/entity/",
      "mediawiki_api": "https://api.kunstmuseum.nl/w/api.php"
   }
 },
 "hide_structured_fields_in_mediainfo": true
}