Kunstmuseum API
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/
- nederlandstalig endpoint: https://reconciliation.kunstmuseum.nl/nl/api
- engelstalig endpoint: https://reconciliation.kunstmuseum.nl/en/api
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 }