Gebruiksaanwijzing extensie External Data: verschil tussen versies

Uit MediaWikiGids
Ga naar: navigatie, zoeken
k (Vertaling uitleg functies)
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: }}
  
<!-- doorloop alle verkregen waarden van een set variabelen en geef elke waarde met omvattende ("container"-) tekst weer - meestal als een tabel. -->
+
<!-- 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: }}  
  
<!-- 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. -->
+
<!-- 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: }}
  
<!-- doorloop alle verkregen waarden voor een set van variabelen en geef iedere "rij" weer door middel van een sjabloon. -->
+
<!-- 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>
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 139: Regel 141:
 
|}
 
|}
  
== Testccase 2 - Gebruik External Data om gegevens uit Wikidata via API op te halen ==
+
== Testcase 2 - Gebruik External Data om gegevens uit Wikidata via API op te halen ==
  
 
Documentatie:
 
Documentatie:

Versie van 10 sep 2018 om 14:21

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 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}}

Error: No contents found at URL https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q2155935&props=labels&languages=nl
&format=json. Resultaat: '

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

Error: No contents found at URL https://www.wikidata.org/w/api.php?action=query&prop=wbgetentities&ids=Q2155935&languages=nl
&format=json.

Resultaat: '

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!

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=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