Gebruiksaanwijzing extensie External Data: verschil tussen versies

Uit MediaWikiGids
Ga naar: navigatie, zoeken
(Completeren commando's)
(Gebruik van Xpath om gegevens uit WikiData te halen)
 
(31 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 2: Regel 2:
  
 
De extensie werkt in twee stappen:
 
De extensie werkt in twee stappen:
# Laad de gegevens uit externe bron
+
# Laad de gegevens uit externe bron met behulp van een <code>#get</code> - functie
 
# Geef de gegevens weer op de pagina (of: sla de gegevens op met behulp van Semantic MediaWiki)
 
# Geef de gegevens weer op de pagina (of: sla de gegevens op met behulp van Semantic MediaWiki)
  
Regel 25: Regel 25:
 
{{#external_value: }}
 
{{#external_value: }}
  
<!-- cycles through all the values retrieved for a set of variables, displaying the same "container" text for each one. -->
+
<!-- Doorloop alle verkregen waarden van een set variabelen en geef elke waarde met omvattende ("container"-) tekst weer - meestal als een tabel. -->
 
{{#for_external_table: }}  
 
{{#for_external_table: }}  
  
<!-- cycles through a table of values, storing them as semantic data via the Semantic MediaWiki extension, by mimicking a call to SMW's #subobject function for each row. -->
+
<!-- Doorloop een tabel met waarden sla deze op als "semantische eigenschap" met behulp van de Semantics MediaWiki estiensie. Dit gebeurt door het voor iedere rij aanroepen van de #subobject functie van SMW. -->
 
{{#store_external_table: }}
 
{{#store_external_table: }}
  
<!-- cycles through all the values retrieved for a set of variables, displaying each "row" using a template. -->
+
<!-- Doorloop alle verkregen waarden voor een set van variabelen en geef iedere "rij" weer door middel van een sjabloon. -->
 
{{#display_external_table: }}
 
{{#display_external_table: }}
 
</pre>
 
</pre>
 
Een laatste commando is beschikbaar voor het wissen van gegevens:
 
Een laatste commando is beschikbaar voor het wissen van gegevens:
 
<pre>
 
<pre>
<!--erases the current set of retrieved data -->
+
<!-- wis de huidige set van verkregen waarden. -->
 
{{#clear_external_data: }}  
 
{{#clear_external_data: }}  
 
</pre>
 
</pre>
Regel 60: Regel 60:
 
}}</pre>
 
}}</pre>
 
== Externe data vanuit een database ==
 
== Externe data vanuit een database ==
 +
 +
Dit voorbeeld moet nog worden uitgewerkt.
  
 
== Externe data vanuit een LDAP server ==
 
== Externe data vanuit een LDAP server ==
  
 
+
Dit voorbeeld moet nog worden uitgewerkt.
  
 
== Testcase 1 - Gebruik External Data via de API van adlib ==
 
== Testcase 1 - Gebruik External Data via de API van adlib ==
Regel 116: Regel 118:
 
! Creatie
 
! Creatie
 
! Modificatie
 
! Modificatie
! Geselec<br/>teerd
+
! Geselec<br />teerd
! Administra<br/>tienaam
+
! Administra<br />tienaam
 
! Maker
 
! Maker
 
! Categorie
 
! Categorie
 
! Object nummer
 
! Object nummer
! Reproductie<br/>referentie
+
! Reproductie<br />referentie
 
! Titel
 
! Titel
 
! Taal
 
! Taal
Regel 138: Regel 140:
 
}}
 
}}
 
|}
 
|}
 +
 +
== Testcase Ib - Gegevens uit adlib TE ==
 +
 +
{{#get_web_data:
 +
url=http://servicetin.adlibhosting.com/te4/wwwopac.ashx?database=perform&search=priref=52391&limit=4&xmltype=Grouped
 +
|format=XML
 +
|data=ref=characters.performer.lref,
 +
naam=characters.name,
 +
performer=characters.performer,
 +
functie=characters.performer_function
 +
|cache seconds=1500
 +
}}
 +
 +
{| class="wikitable"
 +
! Ref
 +
! Naam
 +
! Performer
 +
! Functie
 +
{{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{ref}}}
 +
{{!}} {{{naam}}}
 +
{{!}} {{{performer}}}
 +
{{!}} {{{functie}}}
 +
}}
 +
|}
 +
 +
== Testcase 2 - Gebruik External Data om gegevens uit Wikidata via API op te halen ==
 +
 +
Documentatie:
 +
* https://www.wikidata.org/w/api.php?action=help&modules=wbgetentities
 +
* https://www.mediawiki.org/wiki/Wikibase/API#wbgetclaims
 +
 +
=== Voorbeeld '''labels''' ===
 +
 +
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nl
 +
 +
Gebruik External data om het "label" (naam van de pagina op Wikipedia ?) op te vragen van het item "Q2155935" in Wikidata.org:
 +
 +
<pre>{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nl
&format=json
 +
|format=JSON
 +
|data= wikilabel=value
 +
}}
 +
 +
{{#external_value:wikilabel}}
 +
</pre>
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nll&format=json
 +
|format=JSON
 +
|data= wikilabel=value
 +
}}
 +
Resultaat: '''{{#external_value:wikilabel}}'''
 +
 +
Alternatief (beter?) is het gebruik "?action=query"
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=query&prop=wbgetentities&ids=Q2155935&languages=nl&format=json
 +
|format=JSON
 +
|data= wikilabel=value
 +
}}
 +
 +
Resultaat: '''{{#external_value:wikilabel}}'''
 +
 +
Resultaat lijkt goed, maar query werkt niet en geeft fouten.
 +
 +
 +
api.php?action=query&prop=wbentityusage&titles=Main%20Page|Malayan%20civet
 +
 +
=== Voorbeeld '''Aliases''' ===
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=aliases&languages=nl&format=json
 +
|format=JSON
 +
|data= wikialiases = value
 +
}}
 +
 +
{| class="wikitable"
 +
! Aliases {{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{wikialiases}}}
 +
}}
 +
|}
 +
 +
=== Voorbeeld "Claims" ===
 +
 +
https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q2155935
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q2155935&format=json
 +
|format=JSON
 +
|data= eigenschap = property, wikiclaims = value
 +
}}
 +
 +
{| class="wikitable"
 +
! Eigenschap
 +
! Claims {{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{eigenschap}}}
 +
{{!}} {{#ifeq:{{{wikiclaims}}}|| Niet beschikbaar | {{{wikiclaims}}}}}
 +
}}
 +
|}
 +
 +
NB: De matching tussen Property en Value is nog niet correct in bovenstaand overzicht!
 +
Ook <code><nowiki>{{#if:{{{wikiclaims}}}|{{{wikiclaims}}} |Niet beschikbaar  }}</nowiki></code> werkt niet
 +
Deze doet het ook:
 +
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=claims
 +
 +
De resultaten van de bovenstaande call zijn pluriform: soms geeft de claim een "string", soms een "array" en soms een wikidata-d etc.
 +
Om goede resultaten te krijgen is het dus zaak de verschillende elementen filteren; daarvoor is Xpath het middel.
 +
De volgende combinatie Xpaths leidt tot alle waarden met interne claims (Qnummer-Pnummer-Q-nummer)
 +
<pre>
 +
//api/claims/property/claim/mainsnak[@datatype="wikibase-item"]/@property
 +
//api/claims/property/claim/mainsnak[@datatype="wikibase-item"]/datavalue/value/@id
 +
</pre>
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q2155935&format=xml
 +
|format=XML
 +
|use xpath
 +
|data= eigenschap2=//api/claims/property/claim/mainsnak[@datatype="wikibase-item"]/@property, wikiclaims2=//api/claims/property/claim/mainsnak[@datatype="wikibase-item"]/datavalue/value/@id
 +
}}
 +
 +
{| class="wikitable"
 +
! Eigenschap
 +
! Claims {{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{eigenschap2}}}
 +
{{!}} {{{wikiclaims2}}}
 +
}}
 +
|}
 +
Deze geeft dus wel de juiste resultaten (goed gesorteerd).
 +
<pre>
 +
//api/claims/property/claim/mainsnak[@datatype="external-id"]/@property
 +
//api/claims/property/claim/mainsnak[@datatype="external-id"]/datavalue/@value
 +
</pre>
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q2155935&format=xml
 +
|format=XML
 +
|use xpath
 +
|data=eigenschap3=//api/claims/property/claim/mainsnak[@datatype="external-id"]/@property, wikiclaims3=//api/claims/property/claim/mainsnak[@datatype="external-id"]/datavalue/@value
 +
}}
 +
 +
{| class="wikitable"
 +
! Eigenschap
 +
! Claims {{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{eigenschap3}}}
 +
{{!}} {{{wikiclaims3}}}
 +
}}
 +
|}
 +
 +
P17: {{WD-label|P17}}
 +
 +
---------
 +
https://www.wikidata.org/w/api.php?action=query&prop=wbgetclaims&id=Q2155935
 +
 +
Bovenstaande geeft errors:
 +
* wbgetclaims is niet goed
 +
* id is niet goed
 +
 +
https://www.wikidata.org/w/api.php?action=query&prop=wbgetentities&id=Q2155935
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=query&prop=wbgetclaims&ids=Q2155935&format=json
 +
|format=JSON
 +
|data= eigenschap = property, wikiclaims = value
 +
}}
 +
 +
== Gebruik van Xpath om gegevens uit WikiData te halen ==
 +
 +
Dit is een voorbeeld om met behulp van ExternalData en Xpath informatie uit [[WikiData]] te importeren en weer te geven in een infobox.  De informatie wordt gevonden op basis van het referentienummer ("Q-nummer"), dat semantisch wordt geregistreerd met Eigenschap:Wikidata_ID
 +
 +
Voorbeeld:
 +
* Wikidata: https://www.wikidata.org/wiki/Q1325514 - Het Muziektheater
 +
* Referentie op TE voor <code>[[Het Muziektheater, Amsterdam]]: {{#show:Het Muziektheater, Amsterdam|?Wikidata_ID}}</code>
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=labels&languages=nl&format=json
 +
|format=JSON
 +
|data= wikilabel=value
 +
}}
 +
Resultaat: '''{{#external_value:wikilabel}}'''
 +
 +
Eigenschap Sitelinks (links naar Wikipedia):
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=sitelinks&languages=nl&format=json
 +
|format=JSON
 +
|data= website=site,paginatitel=title
 +
}}
 +
 +
{| class="wikitable"
 +
! Website
 +
! Paginatitel {{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{website}}}
 +
{{!}} {{{paginatitel}}}
 +
}}
 +
|}
 +
 +
Gefilterde resultaten:
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=sitelinks&languages=nl&format=json
 +
|format=JSON
 +
|data= website=site,paginatitel=title
 +
|filters= site=nlwiki
 +
}}
 +
 +
{| class="wikitable"
 +
! Website
 +
! Paginatitel {{#for_external_table:<nowiki/>
 +
{{!}}-
 +
{{!}} {{{website}}}
 +
{{!}} {{{paginatitel}}}
 +
}}
 +
|}
 +
 +
 +
Het resultaat: '''{{#external_value:paginatitel}}''' kan omgevormd worden tot een link naar Wikipedia:
 +
 +
Als link: [https://nl.wikipedia.org/wiki/{{#replace:{{#external_value:paginatitel}}| |_}} Naar Wikipedia]
 +
 +
Gebruik de functie: <code><nowiki>{{#replace:Dit is een url waarde| |_}}</nowiki></code>
 +
 +
Direct een link naar wikipedia opvragen kan ook met <code>props=sitelinks/urls</code>
 +
 +
Vervolgstap is de '''claims''' lezen: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=claims&languages=nl&format=xml
 +
 +
Is het een optie hiervoor Xpath te gebruiken?? Jawel!!Zie:
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=claims&languages=nl&format=xml
 +
|format=XML
 +
|use xpath
 +
|data= image=//mainsnak[@property="P18"]/datavalue/@value
 +
}}
 +
 +
Het resultaat: [[Afbeelding:{{#external_value:image}}|thumb|330px|Dit is een afbeelding van commons, via Wikidata]]
 +
 +
Meer interessante eigenschappen:
 +
* Postcode: [https://www.wikidata.org/wiki/Property:P281 P281]
 +
* Openingsdatum: [https://www.wikidata.org/wiki/Property:P1619 P1619]
 +
* Geolocatie: [https://www.wikidata.org/wiki/Property:P625 P625]
 +
* Commonscategorie: [https://www.wikidata.org/wiki/Property:P373 P373]
 +
* Gelegen in bestuurlijke eenheid: [https://www.wikidata.org/wiki/Property:P131 P131]
 +
 +
 +
Kun je al deze gegevens in 1 keer opvragen?
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=claims&languages=nl&format=xml
 +
|format=XML
 +
|use xpath
 +
|data= image=//mainsnak[@property="P18"]/datavalue/@value, postcode=//mainsnak[@property="P281"]/datavalue/@value, openingsdatum=//mainsnak[@property="P1619"]/datavalue/value/@time, geolocatie_lat=//mainsnak[@property="P625"]/datavalue/value/@latitude, geolocatie_lon=//mainsnak[@property="P625"]/datavalue/value/@longitude, commonscategorie=//mainsnak[@property="P373"]/datavalue/@value, gelegen_in=//mainsnak[@property="P131"]/datavalue/value/@id
 +
}}
 +
 +
{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbsearchentities&search={{#external_value:gelegen_in}}&language=nl&format=xml
 +
|format=XML
 +
|use xpath
 +
|data= naam=//entity/@label
 +
}}
 +
 +
{{#external_value:naam}}
 +
 +
{| class='wikitable' style="width:350px;"
 +
|-
 +
| colspan=2| <h4 style="text-align:center;">{{#external_value:wikilabel}}</h4>[https://nl.wikipedia.org/wiki/{{#replace:{{#external_value:paginatitel}}| |_}} Naar Wikipedia]
 +
|-
 +
| colspan=2| [[Afbeelding:{{#external_value:image}}|class=img-responsive]]
 +
|-
 +
! Info !! Waarde
 +
|-
 +
| Afbeelding|| {{#external_value:image}}
 +
|-
 +
| Postcode: || {{#external_value:postcode}}
 +
|-
 +
| Openingsdatum: || {{#time: j M Y|{{#external_value:openingsdatum}}|nl}}
 +
|-
 +
| Geolocatie: || [https://umap.openstreetmap.fr/nl/map/new/#17/{{#external_value:geolocatie_lat}}/{{#external_value:geolocatie_lon}} kaart...]
 +
|-
 +
| Commons categorie: || {{#external_value:commonscategorie}}
 +
|-
 +
| Gelegen in: || {{#external_value:gelegen_in}} - Id van '''{{#external_value:naam}}'''
 +
|}
 +
 +
Zie ook [[Plaatsen in Nederland]]; poging tot opvragen informatie uit Wikibase/Wikidata via het SPARQL-endpoint (niet werkend).
 +
 +
Link:
 +
* https://www.wikidata.org/w/api.php?action=help&modules=wbgetentities
 +
* https://www.wikidata.org/w/api.php?action=help&modules=wbsearchentities
 +
* https://www.w3schools.com/xml/xpath_syntax.asp

Huidige versie van 5 mei 2020 om 11:29

Je vindt hier de officiële gebruiksaanwijzing van de Extension:External_Data.

De extensie werkt in twee stappen:

  1. Laad de gegevens uit externe bron met behulp van een #get - functie
  2. Geef de gegevens weer op de pagina (of: sla de gegevens op met behulp van Semantic MediaWiki)

External Data biedt vijf verschillende manieren om externe gegevens in je wiki-pagina te laden:

<!-- Vanaf een webpagina, inclusief API -->
{{#get_web_data: }}
{{#get_soap_data: }}

<!-- Vanuit een locale file -->
{{#get_file_data: }}

<!-- Vanuit een database -->
{{#get_db_data: }}

<!-- Vanuit een LDAP-server -->
{{#get_ldap_data: }}

Voor het weergeven zijn de volgende opties beschikbaar:

<!-- Geef een waarde van een variabele weer -->
{{#external_value: }}

<!-- Doorloop alle verkregen waarden van een set variabelen en geef elke waarde met omvattende ("container"-) tekst weer - meestal als een tabel. -->
{{#for_external_table: }} 

<!-- Doorloop een tabel met waarden sla deze op als "semantische eigenschap" met behulp van de Semantics MediaWiki estiensie. Dit gebeurt door het voor iedere rij aanroepen van de #subobject functie van SMW. -->
{{#store_external_table: }}

<!-- Doorloop alle verkregen waarden voor een set van variabelen en geef iedere "rij" weer door middel van een sjabloon. -->
{{#display_external_table: }}

Een laatste commando is beschikbaar voor het wissen van gegevens:

<!-- wis de huidige set van verkregen waarden. -->
{{#clear_external_data: }} 

Externe data vanaf een webpagina

{{#get_web_data:
url=data source URL
|format={CSV|CSV with header|GFF|JSON|XML}
|delimiter=delimiter
|data=local_variable_name1=external_variable_name1, etc.
|filters=external_variable_name1=filter_value1, etc.
|use xpath
|post data=additional data
|cache seconds=number of seconds
}}

SOAP

{{#get_soap_data:
url=data source URL
|request=the function used to request data
|requestData=parameter1=value1, etc.
|response=the function used to retrieve data
|data=local_variable_name1=external_variable_name1, etc.
}}

Externe data vanuit een database

Dit voorbeeld moet nog worden uitgewerkt.

Externe data vanuit een LDAP server

Dit voorbeeld moet nog worden uitgewerkt.

Testcase 1 - Gebruik External Data via de API van adlib

Documentatie adlib: [1]

Voorbeeld: Search all records: return all records from collect.inf

Specificatie API-verzoek:
http://test2.adlibsoft.com/api/wwwopac.ashx?database=collect.inf&search=all

Code External Data:

{{#get_web_data:
url=http://test2.adlibsoft.com/api/wwwopac.ashx?database=collect.inf&search=all
|format=XML
|delimiter=10
|data=creatie=created,
modificatie=modification,
geselecteerd=selected,
administratie naam=administration_name,
maker=creator,
categorie=object_category,
object nummer=object_number,
reproductiereferentie=reproduction.reference,
titel=title, 
taal=lang,
invariant=invariant
|cache seconds=1500
}}

Opmerkingen:

  1. Het attribuut / label (attribute, tag) priref is weggelaten, omdat het dubbel voorkomt. Het gebruik Xpath kan hiervoor een oplossing bieden.
  2. Het importeren van de letter à - geen ASCII-character - geeft een fout, veroorzaakt door het ontbreken van de multibyte string PHP-extensie (zie: http://php.net/manual/en/book.mbstring.php).


Creatie Modificatie Geselec
teerd
Administra
tienaam
Maker Categorie Object nummer Reproductie
referentie
Titel Taal

2007-02-07T13:40:36 2016-08-25T08:33:57 False PDP Ghirlandaio, Domenico (Domenico Bigordi) painting M.54 M.54.jpg The Nativity nl-NL
2007-02-07T13:40:36 2016-08-25T08:33:49 False PDP Bert Degenhart Drenth painting 99 99.jpg The Transfiguration nl-NL
2007-02-07T13:40:36 2016-08-25T08:34:09 False PDP Batoni, Pompeo Girolamo painting PD.4-1950 PD.4-1950.jpg The 7th Earl of Northampton nl-NL
2007-02-07T13:40:36 2016-08-25T08:34:09 False PDP Constable, John painting PD.207-1948 PD.207-1948.jpg Hampstead Heath nl-NL
2007-02-07T13:40:36 2016-08-25T08:34:09 False PDP Rosa, Salvator painting PD.53-1958 PD.53-1958.jpg L'Umana Fragilit nl-NL
2007-02-07T13:40:36 2016-08-25T08:34:09 False PDP Elmore, Alfred painting PD.108-1975 PD.108-1975.jpg à nl-NL
2007-02-07T13:40:36 2016-08-25T08:33:57 False PDP Sellaio, Jacopo del painting M.75 M.75.jpg On the Brink (1865) nl-NL
2007-02-07T13:40:36 2017-01-27T15:46:11 False PDP Rossetti, Dante Gabriel drawing 2151 2151.jpg The Story of Cupid and Psyche nl-NL
2007-02-07T13:40:36 2016-08-25T08:33:41 False PDP Turner, Joseph Mallord William drawing 2476 2476.jpg Mary Magdalene at the Door of Simon the Pharisee nl-NL
2007-02-07T13:40:36 2017-06-20T21:51:58 False PDP Sickert, Walter Richard painting 2458 2458.jpg The field of Waterloo nl-NL
The Old Bedford nl-NL
The boy I love is up in the gallery nl-NL
Cupid in the gallery

Testcase Ib - Gegevens uit adlib TE

Error: No contents found at URL http://servicetin.adlibhosting.com/te4/wwwopac.ashx?database=perform&search=priref=52391&limit=4&xmltype=Grouped.

Ref Naam Performer Functie

Testcase 2 - Gebruik External Data om gegevens uit Wikidata via API op te halen

Documentatie:

Voorbeeld labels

https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nl

Gebruik External data om het "label" (naam van de pagina op Wikipedia ?) op te vragen van het item "Q2155935" in Wikidata.org:

{{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nl
&format=json
|format=JSON
|data= wikilabel=value
}}

{{#external_value:wikilabel}}


Resultaat: De Brakke Grond

Alternatief (beter?) is het gebruik "?action=query"


Resultaat: De Brakke Grond

Resultaat lijkt goed, maar query werkt niet en geeft fouten.


api.php?action=query&prop=wbentityusage&titles=Main%20Page|Malayan%20civet

Voorbeeld Aliases

Aliases
Vlaams Cultuurhuis
Brakke Grond
Poortje 'De Brakke Grond'
rijksmonumentnummer 6157

Voorbeeld "Claims"

https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q2155935


Eigenschap Claims
P17 Brakke grond.jpg
P143 Brakke grond gate.jpg
P131 45
P143 http://www.brakkegrond.nl/
P625 130852
P143 1012 KD
P625 1017 SG
P18 1012GL
P585 https://cultureelerfgoed.nl/monumenten/6157
P18 6157
P585 De Brakke Grond (Amsterdam)
P31 0363100012179547
P31 127643416
P31 a/5bbe4f22-2cde-4235-98bd-59f4552accc0
P276 Vlaams-Cultuurhuis-De-Brakke-Grond
P669 brakkegrond
P670 brakkegrond
P856 a411d47d-5e4c-412c-9d51-794e43ded86c
P407 org-007558
P84 http://data.advn.be/id
P3820 Q184047
P281 https://theaterencyclopedie.nl/wiki/index.php?curid=123233
P281
P281
P248
P854
P407
P813
P101
P6375
P6375
P359
P373
P1435
P580
P248
P5208
P214
P8974
P3417
P2003
P2013
P1004
P248
P813
P12046
P854
P12674
P1619
P854

NB: De matching tussen Property en Value is nog niet correct in bovenstaand overzicht! Ook {{#if:{{{wikiclaims}}}|{{{wikiclaims}}} |Niet beschikbaar }} werkt niet Deze doet het ook: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=claims

De resultaten van de bovenstaande call zijn pluriform: soms geeft de claim een "string", soms een "array" en soms een wikidata-d etc. Om goede resultaten te krijgen is het dus zaak de verschillende elementen filteren; daarvoor is Xpath het middel. De volgende combinatie Xpaths leidt tot alle waarden met interne claims (Qnummer-Pnummer-Q-nummer)

//api/claims/property/claim/mainsnak[@datatype="wikibase-item"]/@property
//api/claims/property/claim/mainsnak[@datatype="wikibase-item"]/datavalue/value/@id


Eigenschap Claims
P17 Q55
P131 Q9899
P31 Q24354
P31 Q1329623
P31 Q53060
P276 Q2306046
P669 Q2495849
P84 Q2344624
P101 Q184485
P1435 Q916333

Deze geeft dus wel de juiste resultaten (goed gesorteerd).

//api/claims/property/claim/mainsnak[@datatype="external-id"]/@property
//api/claims/property/claim/mainsnak[@datatype="external-id"]/datavalue/@value


Eigenschap Claims
P3820 130852
P359 6157
P5208 0363100012179547
P214 127643416
P8974 a/5bbe4f22-2cde-4235-98bd-59f4552accc0
P3417 Vlaams-Cultuurhuis-De-Brakke-Grond
P2003 brakkegrond
P2013 brakkegrond
P1004 a411d47d-5e4c-412c-9d51-794e43ded86c
P12046 org-007558
P12674 Q184047

P17: land


https://www.wikidata.org/w/api.php?action=query&prop=wbgetclaims&id=Q2155935

Bovenstaande geeft errors:

  • wbgetclaims is niet goed
  • id is niet goed

https://www.wikidata.org/w/api.php?action=query&prop=wbgetentities&id=Q2155935


Gebruik van Xpath om gegevens uit WikiData te halen

Dit is een voorbeeld om met behulp van ExternalData en Xpath informatie uit WikiData te importeren en weer te geven in een infobox. De informatie wordt gevonden op basis van het referentienummer ("Q-nummer"), dat semantisch wordt geregistreerd met Eigenschap:Wikidata_ID

Voorbeeld:


Resultaat: Het Muziektheater

Eigenschap Sitelinks (links naar Wikipedia):


Website Paginatitel
dewiki Nationale Opera en Ballet
eswiki Ópera y Ballet Nacional (Ámsterdam)
frwiki Muziektheater
itwiki Het Muziektheater
nlwiki Nationale Opera en Ballet

Gefilterde resultaten:


Website Paginatitel
nlwiki Nationale Opera en Ballet


Het resultaat: Nationale Opera en Ballet kan omgevormd worden tot een link naar Wikipedia:

Als link: Opera en Ballet| |_}} Naar Wikipedia

Gebruik de functie: {{#replace:Dit is een url waarde| |_}}

Direct een link naar wikipedia opvragen kan ook met props=sitelinks/urls

Vervolgstap is de claims lezen: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1325514&props=claims&languages=nl&format=xml

Is het een optie hiervoor Xpath te gebruiken?? Jawel!!Zie:


Het resultaat:
Dit is een afbeelding van commons, via Wikidata

Meer interessante eigenschappen:

  • Postcode: P281
  • Openingsdatum: P1619
  • Geolocatie: P625
  • Commonscategorie: P373
  • Gelegen in bestuurlijke eenheid: P131


Kun je al deze gegevens in 1 keer opvragen?



Amsterdam

Het Muziektheater

Opera en Ballet| |_}} Naar Wikipedia
Amsterdam - Stopera (30213475601).jpg
Info Waarde
Afbeelding Amsterdam - Stopera (30213475601).jpg
Postcode: 1017 SG
Openingsdatum: 23 sep 1986
Geolocatie: kaart...
Commons categorie: Stopera
Gelegen in: Q9899 - Id van Amsterdam

Zie ook Plaatsen in Nederland; poging tot opvragen informatie uit Wikibase/Wikidata via het SPARQL-endpoint (niet werkend).

Link: