Modul:SmwWikibase: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Changed to work with coordinate objects) |
(Use address) |
||
Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
local set = require('Module:Smw').set | local set = require('Module:Smw').set | ||
+ | |||
+ | local function getAddress ( entity ) | ||
+ | rvalue = "Keine Adresse gefunden" | ||
+ | |||
+ | if (entity["P8"] ~= nil) | ||
+ | then | ||
+ | address = entity["P8"] | ||
+ | -- prioritize german over english for now | ||
+ | rvalue = address["mainsnak"]["datavalue"]["value"] | ||
+ | end | ||
+ | return rvalue | ||
+ | end | ||
+ | |||
local function getLabel( entity ) | local function getLabel( entity ) | ||
Zeile 43: | Zeile 56: | ||
smwData["Koordinaten"] = value | smwData["Koordinaten"] = value | ||
smwData["Name"] = label | smwData["Name"] = label | ||
+ | smwData["Adresse"] = getAddress( entity ) | ||
smwData["Belongs to"] = "Anthroposophische Medizin in Berlin" | smwData["Belongs to"] = "Anthroposophische Medizin in Berlin" | ||
smwData["Bezeichnung"] = "Aus Wikibase erzeugtes SMW - Subobjekt (" .. id .. ")" | smwData["Bezeichnung"] = "Aus Wikibase erzeugtes SMW - Subobjekt (" .. id .. ")" |
Version vom 27. August 2021, 16:55 Uhr
Ausgabe dieses Moduls (mit Aufruf: {{#invoke:SmwWikibase|smwfromwikibase}}):
- Gemeinschaftskrankenhaus Havelhöhe (Q9) label: Gemeinschaftskrankenhaus Havelhöhe value: 52.461111,13.16 - (ok)
- Dachverband Anthroposophische Medizin in Deutschland (Q10) label: Dachverband Anthroposophische Medizin in Deutschland value: 52.510193,13.401249 - (ok)
- Klinik Arlesheim (Q11) label: Klinik Arlesheim value: 47.493888888889,7.6147219444444 - (ok)
- Praxis Bettina Schulz (Q12) label: Praxis Bettina Schulz value: 52.54791,13.34934 - (ok)
- Arztpraxis Alexanderplatz (Q17) label: Arztpraxis Alexanderplatz value: 52.5197917,13.4107139 - (ok)
local p = {}
local set = require('Module:Smw').set
local function getAddress ( entity )
rvalue = "Keine Adresse gefunden"
if (entity["P8"] ~= nil)
then
address = entity["P8"]
-- prioritize german over english for now
rvalue = address["mainsnak"]["datavalue"]["value"]
end
return rvalue
end
local function getLabel( entity )
rvalue = "Keine Bezeichnung gefunden"
if (entity["labels"] ~= nil)
then
labels = entity["labels"]
-- prioritize german over english for now
if (labels["de"] ~= nil) then rvalue = labels["de"]["value"]
elseif (labels["en"] ~= nil) then rvalue = labels["en"]["value"]
end
end
return rvalue
end
-- find wikibase objects with coordinates and make subobjects of them
function p.smwfromwikibase()
local i
local result
result = ''
for i = 1, 20, 1 do
pageId = "Q" .. i
id, entity, wrongQualifier = p.getEntity(pageId)
if (not wrongQualifier)
then
if (entity["claims"] ~= nil)
then
if (entity["claims"]["P2"] ~= nil)
then
latitude = entity["claims"]["P2"][1]["mainsnak"]["datavalue"]["value"]["latitude"]
longitude = entity["claims"]["P2"][1]["mainsnak"]["datavalue"]["value"]["longitude"]
value = latitude .. "," .. longitude
label = getLabel(entity)
result = result .. "* [[Item:" .. id .. "]] label: " .. label .. " value: " .. value
smwData = {}
smwData["Quelle"] = "wikibase"
smwData["Koordinaten"] = value
smwData["Name"] = label
smwData["Adresse"] = getAddress( entity )
smwData["Belongs to"] = "Anthroposophische Medizin in Berlin"
smwData["Bezeichnung"] = "Aus Wikibase erzeugtes SMW - Subobjekt (" .. id .. ")"
success = mw.smw.subobject(smwData)
if (success) then
result = result .. " - (ok)"
else
result = result .. " - (Fehler)"
end
result = result .. '\n'
end
end
end
end
return result
end
local function isSet( arg )
return arg and arg ~= ''
end
function p.getEntity( id )
local wrongQualifier = false
local entity = nil
if not isSet( id ) then
return '', entity, wrongQualifier
end
if mw.wikibase.isValidEntityId( id ) then
-- expensive function call
-- redirect ids marked false, too
entity = mw.wikibase.getEntity( id )
end
if not entity then
id = ''
wrongQualifier = true
end
return id, entity, wrongQualifier
end
return p