Gebruiksaanwijzing extensie External Data: verschil tussen versies
(→Voorbeeld "Claims") |
(→Gebruik van Xpath om gegevens uit WikiData te halen) |
||
(9 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 187: | Regel 187: | ||
</pre> | </pre> | ||
− | {{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages= | + | {{#get_web_data: url=https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nll&format=json |
|format=JSON | |format=JSON | ||
|data= wikilabel=value | |data= wikilabel=value | ||
Regel 195: | Regel 195: | ||
Alternatief (beter?) is het gebruik "?action=query" | 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= | + | {{#get_web_data: url=https://www.wikidata.org/w/api.php?action=query&prop=wbgetentities&ids=Q2155935&languages=nl&format=json |
|format=JSON | |format=JSON | ||
|data= wikilabel=value | |data= wikilabel=value | ||
Regel 240: | Regel 240: | ||
NB: De matching tussen Property en Value is nog niet correct in bovenstaand overzicht! | 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: | Deze doet het ook: | ||
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=claims | 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}} | ||
--------- | --------- | ||
Regel 369: | Regel 412: | ||
|} | |} | ||
− | + | Zie ook [[Plaatsen in Nederland]]; poging tot opvragen informatie uit Wikibase/Wikidata via het SPARQL-endpoint (niet werkend). | |
Link: | Link: |
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:
- Laad de gegevens uit externe bron met behulp van een
#get
- functie - 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: }}
Inhoud
- 1 Externe data vanaf een webpagina
- 2 SOAP
- 3 Externe data vanuit een database
- 4 Externe data vanuit een LDAP server
- 5 Testcase 1 - Gebruik External Data via de API van adlib
- 6 Testcase Ib - Gegevens uit adlib TE
- 7 Testcase 2 - Gebruik External Data om gegevens uit Wikidata via API op te halen
- 8 Gebruik van Xpath om gegevens uit WikiData te halen
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:
- Het attribuut / label (attribute, tag) priref is weggelaten, omdat het dubbel voorkomt. Het gebruik Xpath kan hiervoor een oplossing bieden.
- 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:
- 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:
{{#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:
- Wikidata: https://www.wikidata.org/wiki/Q1325514 - Het Muziektheater
- Referentie op TE voor
Het Muziektheater, Amsterdam: {{#show:Het Muziektheater, Amsterdam|?Wikidata_ID}}
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:
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 MuziektheaterOpera en Ballet| |_}} Naar Wikipedia | |
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: