Modulo:Taxonbar/candidate
Dokumentasion ti modulo
Inus-usar daytoy a modulo kadagiti adu a panid, no baliwam adunto ti makadlaw. Pangngaasi nga umuna a subokan kadagiti subpanid ti /pagipadasan wenno /pangsubok, wenno iti bukodmo a subpanid, ken usigen a pagtungtungan dagiti binaliwan iti panid ti tungtungan sakbay nga isayangkat. |
Agkamkammatalek daytoy a modulo kadagiti sumaganad a modulo: |
Panggep
Naidesinio daytoy a plantilia a matawagan manipud iti {{Taxobox/core}} wenno iti maysa a mainaig a plantilia, ken siputenna dagiti panid a mabalin a kandidato para iti maysa a {{Taxonbar}}.
No adda ti {{Taxonbar}} iti nailak-am a panid, ti banag ti Wikidata ti panid ket maigiddiat a makita iti daytoy a listaan kadagiti maawat a pagarigan iti (P31)/subklase iti (P279), kent i maysa a listaan dagiti di-maawat a tagikua.
No mabirukan ti maysa a pagarigan/subklase, maikategoria ti panid a kas:
No awan ti mabirukan kadagiti maawat wenno di-maawat, maikategoria ti panid a kas:
No awan ti mabirukan kadagiti maawat ken saan abasbassit ngem 1 a dimaawat, awan ti maaramid a pannakaikategoria.
Panagusar
Kitaen pay
- Dagiti baw-ing − no adda, dagiti sabali a nagan daytoy a plantilia a mabalin a mausar
local p = {}
function p.check(frame)
local taxonbarExists = require('Modulo:Taxonbar/exists').check
if taxonbarExists(frame) then
return ''
else
local resolveEntity = require( 'Modulo:ResolveEntityId' )
local currentTitle = mw.title.getCurrentTitle()
local currentItem = nil
local categories = {
'[[Kategoria:Dagiti artikulo ti taxobox a mabalin nga awanan iti taxonbar]]' --unset if acceptable or unacceptable found
}
--preliminary exclusion criteria
if string.match( currentTitle.text, '^Listaan dagiti ') then
return ''
end
--find Wikidata item
if currentTitle.namespace == 0 then --mainspace
local currentEntityId = mw.wikibase.getEntityIdForCurrentPage()
if resolveEntity._id(currentEntityId) then
currentItem = mw.wikibase.getEntity(currentEntityId)
else --currentEntityId == nil/unresolvable
return categories[1]
end
else
return ''
end
if currentItem then --currentItem should not be nil here, but check just in case
--determine if {{Taxonbar}} is *possibly* missing, or *definitely* missing
local acceptableInstanceOf_All = { --copied from [[Module:Taxonbar]]
['Q16521'] = 'taxon', --strict
['Q310890'] = 'monotypic taxon', --strict
['Q2568288'] = 'ichnotaxon', --strict
['Q23038290'] = 'fossil taxon', --strict
['Q47487597'] = 'monotypic fossil taxon', --strict
['Q42621'] = 'hybrid', --lax
['Q235536'] = 'incertae sedis', --lax
['Q713623'] = 'clade', --lax
['Q848328'] = 'serotype', --lax
['Q857968'] = 'candidatus', --lax
['Q17487588'] = 'unavailable combination', --lax
}
local unacceptableInstanceOf = {
['Q913170'] = 'trivial name',
['Q55983715'] = 'group of organisms known by one particular common name',
['Q937228'] = 'property',
['Q14712'] = 'drupe',
['Q163233'] = 'compound drupe',
['Q747463'] = 'compound fruit',
}
local acceptableCount = 0
local unacceptableCount = 0
for _, instanceOfState in pairs ( currentItem:getBestStatements('P31') ) do --instance of
local instanceOf = instanceOfState.mainsnak.datavalue.value.id
if acceptableInstanceOf_All[instanceOf] then
acceptableCount = acceptableCount + 1
elseif unacceptableInstanceOf[instanceOf] then
unacceptableCount = unacceptableCount + 1
end
end
for _, subclassOfState in pairs ( currentItem:getBestStatements('P279') ) do --subclass of
local subclassOf = subclassOfState.mainsnak.datavalue.value.id
if acceptableInstanceOf_All[subclassOf] then
acceptableCount = acceptableCount + 1
elseif unacceptableInstanceOf[subclassOf] then
unacceptableCount = unacceptableCount + 1
end
end
if acceptableCount > 0 then
categories[1] = ''
categories[2] = '[[Kategoria:Dagiti artikulo ti taxobox nga awanan iti taxonbar]]'
elseif unacceptableCount > 0 then
categories[1] = ''
categories[2] = ''
end
return table.concat(categories)
else
return ''
end
end
end
return p