Modul:SmwWikibase
Version vom 26. August 2021, 02:25 Uhr von Christoph Holtermann (Diskussion | Beiträge) (set source in subobjects as wikibase)
Ausgabe dieses Moduls (mit Aufruf: {{#invoke:SmwWikibase|smwfromwikibase}}):
- id: Q1 value: Integrative Medizin - (ok)
- id: Q2 value: Anthroposophische Medizin - (ok)
- id: Q3 value: Hauptseite - (ok)
local p = {}
local set = require('Module:Smw').set
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"]["P1"] ~= nil)
then
value = entity["claims"]["P1"][1]["mainsnak"]["datavalue"]["value"]["text"]
result = result .. "* id: " .. id .. " value: " .. value
smwData = {}
smwData["Quelle"] = "wikibase"
smwData["Text"] = value
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