Kunstmuseum API: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Pefferen (overleg | bijdragen)
k Query service: /w/ toegevoegd aan url
 
(14 tussenliggende versies door een andere gebruiker niet weergegeven)
Regel 1:
[[Bestand:11.14 Schreurs Gemeentemuseum ExterieurNEW RGB.jpg|thumb]]
==Inleiding==
api.kunstmuseum.nlDeze is een Wikibase-installatie diewebsite is opgezet om objecten, voortentoonstellingen deen websiteandere delftsaardewerk.nlgebeurtenissen teals kunnenLinked leverenOpen viaData dete APIverstrekken.
 
== Dataset ==
In de API hebben we momenteel [[Special:ListProperties|eigenschappen]] aangemaakt die alle tekstvelden zijn (weergavetekst) bij de import. In een latere fase willen we dat deze eigenschappen bij de import voorzien zijn van een externe identifier (bijvoobeeld RKD-artist) waarna we een vervaardiger aanmaken met entity referentie.
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 [[Project/Delftsaardewerk|Delftsaardewerk.nl]] vanuit verschillende musea te importeren en te leveren via de API. Daarna is het ook ingezet voor [[Project/van_Gogh_Worldwide|van Gogh Worldwide.]] Daarna volgde het project [[Project/Aziatisch keramiek|Aziatisch keramiek]].
 
== Query service ==
Om de data op te vragen is een [https://api.kunstmuseum.nl/query/#PREFIX%20wd%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fentity%2F%3E%0APREFIX%20wds%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fentity%2Fstatement%2F%3E%0APREFIX%20wdv%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fvalue%2F%3E%0APREFIX%20wdt%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fprop%2Fdirect%2F%3E%0APREFIX%20wikibase%3A%20%3Chttp%3A%2F%2Fwikiba.se%2Fontology%23%3E%0APREFIX%20p%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fprop%2F%3E%0APREFIX%20ps%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fprop%2Fstatement%2F%3E%0APREFIX%20pq%3A%20%3Chttps%3A%2F%2Fapi.kunstmuseum.nl%2Fprop%2Fqualifier%2F%3E%0APREFIX%20xsd%3A%20%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0A%0ASELECT%20%3Fitem%20%3FitemLabel%20%0AWHERE%20%0A%7B%0A%20%20%23%3Fitem%20wdt%3AP4%20wd%3AQ9.%20%23is%20een%20mens%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cnl%22.%20%7D%0A%7D 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
 
==API Datastructuur ==
In de API hebben we verschillende [[Special:ListProperties|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.
De API is benaderbaar via https://api.kunstmuseum.nl/api.php
 
== Infrastructuur ==
Een voorbeeld om item Q1 op te vragen: https://api.kunstmuseum.nl/api.php?action=wbgetentities&ids=Q1&format=jsonfm
AchtergrondAls overtriplestore dewordt Wikibasegebruik APIgemaakt isvan hiereen te vinden: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/
SPARQL-queries zijn mogelijk via https://api.kunstmuseum.nl/query/
 
== Reconciliation ==
Het SPARQL-endpoint is te vinden op https://api.kunstmuseum.nl/query/proxy/wdqs/bigdata/namespace/wdq/sparql
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
Er moeten voorlopig verplicht prefixen meegegeven worden:
* engelstalig endpoint: https://reconciliation.kunstmuseum.nl/en/api
<code><br>
<nowiki>PREFIX wd: <https://api.kunstmuseum.nl/entity/></nowiki><br>
<nowiki>PREFIX wds: <https://api.kunstmuseum.nl/entity/statement/></nowiki><br>
<nowiki>PREFIX wdv: <https://api.kunstmuseum.nl/value/></nowiki><br>
<nowiki>PREFIX wdt: <https://api.kunstmuseum.nl/prop/direct/></nowiki><br>
<nowiki>PREFIX wikibase: <http://wikiba.se/ontology#></nowiki><br>
<nowiki>PREFIX p: <https://api.kunstmuseum.nl/prop/></nowiki><br>
<nowiki>PREFIX xsd: <http://www.w3.org/2001/XMLSchema#></nowiki><br>
</code>
Achtergrond over de Wikibase API is hier te vinden: https://www.mediawiki.org/wiki/Wikibase/API
 
=== TestcollectieOpenrefine ===
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:
Een eerste testcollectie is opgezet met [[Project/van_Gogh_Worldwide|van Gogh Worldwide]]
 
 
{
"version": "2.0",
"mediawiki": {
"name": "Kunstmuseum API",
SPARQL-queries zijn mogelijk via "root": "https://api.kunstmuseum.nl/querywiki/",
"main_page": "https://api.kunstmuseum.nl/wiki/Kunstmuseum_API",
De API is benaderbaar via"api": "https://api.kunstmuseum.nl/w/api.php"
},
"wikibase": {
<nowiki>PREFIX wd "site_iri": <"https://api.kunstmuseum.nl/entity/></nowiki><br>",
"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": {
<nowiki>PREFIX wds "site_iri": <"https://api.kunstmuseum.nl/entity/statement/></nowiki><br>",
"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
}