ماڈیول:Wikidata2/tax
دستاویز [تخلیق]
شاید آپ اس اسکریبنٹو ماڈیول کا دستاویزی صفحہ تخلیق کرنا چاہتے ہیں۔ صارفین ماڈیول کے تختہ مشق (تخلیق | آئینہ) اور ثابتات (تخلیق) میں تجربات کرسکتے ہیں۔ براہ کرم /دستاویز کے ذیلی صفحہ پر زمرہ جات شامل فرمائیں۔ اس ماڈیول کے ذیلی صفحات۔ |
-- This module implements [[template:تصنيف كائن/تصنيف علمي ويكي بيانات]].
local p = {}
local colors = {
['Q808'] = '#EE82EE', -- وائرس
['Q10872'] = '#ECD2D2', -- قدیم جراثیم
['Q10876'] = '#D3D3D3', -- بیکٹیریا
['Q10892'] = '#F0E68C', -- یک خلوی عضویہ
['Q862296'] = '#ADEE3F', -- أسناخ
['Q756'] = '#90EE90', -- نبات
['Q764'] = '#ADD8E6', -- فطر
['Q729'] = '#D3D3A4', -- حيوان
['Q855740'] = '#E1CCFC', --جذراوات
['Q1205126'] = '#E0D0B0', -- قمعيات
['Q473809'] = '#FFC8A0', --متموريات
--[''] = '#FAF0E6', -- غير محدد
[''] = '',
}
function foo(iid,formatting,p)
if not iid or iid ==''
then return nil
end
----------------
st = formatStatements( {property =p or 'P171' , entityId = iid, enlabelcate='t', noref ='t', enbarten ='true',formatting=formatting})
if st and st ~= ''
then
--return addTrackingCategory(st ,{property=p or 'P171', entityId = iid,noicon='t'})
return st
else
return nil
end
----------------
end
function GetP171id(id, formatting)
if not id or id ==''
then return nil
end
----------------
st = formatStatements( {property ='P171' , entityId = id,rank='best', noref ='t', enbarten ='true',formatting=formatting})
----------------
return st
end
function p.taxcolour( datavalue ,datatype , options)
local P1id = GetP171id(datavalue.value.id,'raw')
local P2id = GetP171id(P1id,'raw')
local P3id = GetP171id(P2id,'raw')
local P4id = GetP171id(P3id,'raw')
local P5id = GetP171id(P4id,'raw')
local P6id = GetP171id(P5id,'raw')
local P7id = GetP171id(P6id,'raw')
local P8id = GetP171id(P7id,'raw')
local P9id = GetP171id(P8id,'raw')
local P10id = GetP171id(P9id,'raw')
local P11id = GetP171id(P10id,'raw')
local P12id = GetP171id(P11id,'raw')
local P13id = GetP171id(P12id,'raw')
local P14id = GetP171id(P13id,'raw')
local P15id = GetP171id(P14id,'raw')
local P16id = GetP171id(P15id,'raw')
local P17id = GetP171id(P16id,'raw')
local P18id = GetP171id(P17id,'raw')
local P19id = GetP171id(P18id,'raw')
local P20id = GetP171id(P19id,'raw')
local P21id = GetP171id(P20id,'raw')
local P22id = GetP171id(P21id,'raw')
local P23id = GetP171id(P22id,'raw')
---------------------------
local taxon1 =
{P23id or "", P22id or "", P21id or "", P20id or ""
, P19id or "", P18id or "", P17id or "", P16id or ""
, P15id or "", P14id or "", P13id or "", P12id or ""
, P11id or "", P10id or "", P9id or "", P8id or ""
, P7id or "", P6id or "", P5id or "", P4id or ""
, P3id or "", P2id or "", P1id or "", P0id or ""}
---------------------------
local q = {}
for i,j in ipairs( taxon1 ) do
e = foo(j,'raw','P105')
if e and e ~= ''
--then table.insert( q,e ..j )
then
if e == 'Q36732'
then
for k, v in pairs(colors) do
if j == k
then
table.insert( q, v )
end
end
else
end
end
end
---------------------------
taxon = table.concat( q,'\n')
if taxon
then
return taxon
else
return ''
end
---------------------------
end
local taxP105= {
['Q7432'] = 'نوع',
['Q34740'] = '[[جنس]]',
['Q68947'] = 'ذیلی نوع',
['Q35409'] = '[[خاندان (حیاتیات)|خاندان]]',
['Q767728'] = 'تنوع',
['Q2455704'] = '[[خاندان (حیاتیات)|ذیلی خاندان]]',
['Q227936'] = '[[قبیلہ (حیاتیات)|قبیلہ]]',
['Q3238261'] = 'ذیلی جنس',
['Q3181348'] = 'جزو',
['Q36602'] = '[[طبقہ (حیاتیات)|طبقہ]]',
['Q2136103'] = '[[اعلی خاندان (حیاتیات)|اعلی خاندان]]',
['Q3965313'] = 'ذیلی قبیلہ',
['Q5867959'] = '[[طبقہ (حیاتیات)|ذیلی طبقہ]]',
['Q37517'] = '[[جماعت (حیاتیات)|جماعت]]',
['Q279749'] = 'شكل',
['Q3025161'] = 'سلسلہ',
['Q5998839'] = 'ذیلی جزو',
['Q5867051'] = '[[جماعت (حیاتیات)|ذیلی جماعت]]',
['Q2889003'] = '[[ذیلی طبقہ (حیاتیات)|ذیلی طبقہ]]',
['Q5868144'] = '[[اعلی طبقہ (حیاتیات)|اعلی طبقہا]]',
['Q4886'] = 'قابل کاشت',
['Q38348'] = '[[شعبة (تصنيف)|شعبة]]',
['Q3825509'] = 'شكل خاص',
['Q1153785'] = '[[شعيبة (تصنيف)|شعيبة]]',
['Q334460'] = 'تحتی گروہ',
['Q4150646'] = 'گروہ',
['Q2007442'] = 'صُنيف فرعي',
['Q14817220'] = 'قبيلة عليا',
['Q10861426'] = 'قسم',
['Q3504061'] = 'عمارة',
['Q3491997'] = 'ذیلی تقسیم',
['Q855769'] = 'ہم نسل',
['Q3978005'] = '[[اعلی نسل (حیاتیات)|اعلی نسل]]',
['Q2752679'] = 'ذیلی مملکت',
['Q6311258'] = 'رتبة صغرى',
['Q13198444'] = 'السلسلية',
['Q36732'] = '[[مملکت (حیاتیات)|مملکت]]',
['Q21559275'] = 'اعلی جزو',
['Q2361851'] = 'شعبة فرعية',
['Q2981883'] = '[[أترابية (تصنيف)|أترابية]]',
['Q10861375'] = 'قسيم',
['Q3150876'] = 'ذیلی مملکت',
['Q630771'] = 'ضُريب',
['Q6541077'] = '[[أباشة (تصنيف)|أباشة]]',
['Q21074316'] = 'رتبة متوسطة',
['Q6054425'] = 'أترابية عليا',
['Q42621'] = 'تهجين الأحياء',
['Q6054237'] = 'رتبة ضخمة',
['Q6462265'] = 'رتبۂ اعلی',
['Q7506274'] = 'رتبۂ متوسطہ',
['Q10296147'] = 'بالا خاندان',
['Q19858692'] = 'عالم اعلی',
['Q4226087'] = 'أترابية فرعية',
['Q26857882'] = 'عالم صغیر',
['Q3798630'] = 'ذیلی قبیلہ',
['Q3491996'] = 'ذیلی ڈومین',
}
function taxonrank(iid)
vvv = nil
------------------------
if not iid or iid ==''
then return nil
end
------------------------
straw = formatStatements( {property ='P105' , entityId = iid, enlabelcate='t', noref ='t', enbarten ='true',formatting='raw'})
if straw and straw ~= ''
then
for k, v in pairs(taxP105) do
if k == straw
then
vvv = addTrackingCategory(v ,{property='P105', entityId = iid,noicon='t'})
end
end
end
------------------------
st = formatStatements( {property ='P105' , entityId = iid, enlabelcate='t', noref ='t', enbarten ='true',formatting=''})
if not vvv then
if st and st ~= ''
then
vvv = addTrackingCategory(st .. '' ,{property='P105', entityId = iid,noicon='t'})
else
end
end
------------------------
return vvv
end
function dd(id, taxo)
-- taxo : الكائن
-- d : المرتبة التصنيفية
if id and id ~= ''
then
-- taxo = formatEntityId( id, options ).value
d = taxonrank(id) -- المرتبة التصنيفية
--d = foo(id,'','P105')
----------------
if not d or d == ''
-- d =foo(id,'','P31')
then return nil --'' -- nil
end
----------------
if taxo and taxo ~= ''
then
if d and d ~= ''
then
return d .. '||'.. taxo
else
return taxo
end
end
----------------
else
--return ''
end
end
function p.tax( datavalue ,datatype , options)
----------------
function pro1(id,options)
if not id or id =='' then return nil end
st = formatStatements( {property ='P171' , entityId = id,enlabelcate='t',noref ='e', enbarten ='true'}) -- options.noref
return st
end
----------------
local value = datavalue.value P0 = dd(value.id,formatEntityId( value.id, options ).value )
local P1id = GetP171id(value.id,'raw') P1 = dd(P1id, pro1(value.id, options))
local P2id = GetP171id(P1id,'raw') P2 = dd(P2id, pro1(P1id, options))
local P3id = GetP171id(P2id,'raw') P3 = dd(P3id, pro1(P2id, options))
local P4id = GetP171id(P3id,'raw') P4 = dd(P4id, pro1(P3id, options))
local P5id = GetP171id(P4id,'raw') P5 = dd(P5id, pro1(P4id, options))
local P6id = GetP171id(P5id,'raw') P6 = dd(P6id, pro1(P5id, options))
local P7id = GetP171id(P6id,'raw') P7 = dd(P7id, pro1(P6id, options))
local P8id = GetP171id(P7id,'raw') P8 = dd(P8id, pro1(P7id, options))
local P9id = GetP171id(P8id,'raw') P9 = dd(P9id, pro1(P8id, options))
local P10id = GetP171id(P9id,'raw') P10 = dd(P10id, pro1(P9id, options))
local P11id = GetP171id(P10id,'raw') P11 = dd(P11id, pro1(P10id, options))
local P12id = GetP171id(P11id,'raw') P12 = dd(P12id, pro1(P11id, options))
local P13id = GetP171id(P12id,'raw') P13 = dd(P13id, pro1(P12id, options))
local P14id = GetP171id(P13id,'raw') P14 = dd(P14id, pro1(P13id, options))
local P15id = GetP171id(P14id,'raw') P15 = dd(P15id, pro1(P14id, options))
local P16id = GetP171id(P15id,'raw') P16 = dd(P16id, pro1(P15id, options))
local P17id = GetP171id(P16id,'raw') P17 = dd(P17id, pro1(P16id, options))
local P18id = GetP171id(P17id,'raw') P18 = dd(P18id, pro1(P17id, options))
local P19id = GetP171id(P18id,'raw') P19 = dd(P19id, pro1(P18id, options))
local P20id = GetP171id(P19id,'raw') P20 = dd(P20id, pro1(P19id, options))
local P21id = GetP171id(P20id,'raw') P21 = dd(P21id, pro1(P20id, options))
local P22id = GetP171id(P21id,'raw') P22 = dd(P22id, pro1(P21id, options))
local P23id = GetP171id(P22id,'raw') P23 = dd(P23id, pro1(P22id, options))
------------------------
--[[
local P24id = GetP171id(P23id,'raw') P24 = dd(P24id, pro1(P23id, options))
local P25id = GetP171id(P24id,'raw') P25 = dd(P25id, pro1(P24id, options))
local P26id = GetP171id(P25id,'raw') P26 = dd(P26id, pro1(P25id, options))
local P27id = GetP171id(P26id,'raw') P27 = dd(P27id, pro1(P26id, options))
local P28id = GetP171id(P27id,'raw') P28 = dd(P28id, pro1(P27id, options))
local P29id = GetP171id(P28id,'raw') P29 = dd(P29id, pro1(P28id, options))
local P30id = GetP171id(P29id,'raw') P30 = dd(P23id, pro1(P29id, options))
--]]
----------------
if not coo or coo ==''
then
coo = p.taxcolour( datavalue ,datatype , options)
end
----------------
ti = '[[جماعت بندی]]'
title = 'colspan=\"2\" style=\"text-align: center;background-color:' ..coo..';" | ' .. addTrackingCategory(ti ,options)
head = '{| class="infobox biota" style="text-align: right; width: 200px; font-size: 100%%"'
End = '}'
local taxon2 = {P23 or "", P22 or "" , P21 or "" , P20 or ""
, P19 or "", P18 or "", P17 or "", P16 or ""
, P15 or "", P14 or "", P13 or "", P12 or ""
, P11 or "", P10 or "", P9 or "", P8 or ""
, P7 or "", P6 or "", P5 or "", P4 or ""
, P3 or "", P2 or "", P1 or "", P0 or ""
}
----------------
local taxon1 = {
--P30 or "" , P29 or "" , P28 or "" ,
--P27 or "" , P26 or "" , P25 or "" , P24 or "" ,
P23 or "" , P22 or "" , P21 or "" , P20 or "" ,
P19 or "" , P18 or "" , P17 or "" , P16 or "" ,
P15 or "" , P14 or "" , P13 or "" , P12 or "" ,
P11 or "" , P10 or "" , P9 or "" , P8 or "" ,
P7 or "" , P6 or "" , P5 or "" , P4 or "" ,
P3 or "" , P2 or "" , P1 or "" , P0 or "" ,
}
----------------
local q = {}
--table.insert( q,head )
table.insert( q, title )
for i,j in ipairs( taxon1 ) do
e = i..j
if j and j ~= ''
then table.insert( q,j )
end
end
----------------
--table.insert( q,End )
taxonSections = table.concat( q, "\n|-\n|")
result = string.format([[%s
|-
!%s
|-
|%s
%s]], head, title, taxonSections, End )
----------------
return taxonSections --result
end
return p