وحدة:Wikidata2/tax/ملعب
< وحدة:Wikidata2 | tax
هذه صفحة ملعب الوحدة لصفحة وحدة:Wikidata2/tax (فرق). |
صُنفت هذه الوحدة على أنها في مرحلة بيتا. عندما تصل الوحدة لهذه المرحلة، يمكن أن يوسع استخدامها في الصفحات الأخرى. لكن يجب توخي الحذر من أن الوحدات في هذه المرحلة ما زالت حديثة العهد لذلك وجب توخي الحذر عند الاستخدام وملاحظة أي أخطاء تنتج عنها. من العرف أن المجتمع سوف يوصل الوحدات في هذه المرحلة للتي بعدها عبر صفحات النقاش الخاصة بالوحدة أو أي مكان يعلن عن هذه الوحدة عبر ملاحظة أن هذه الوحدة تعمل بشكل صحيح والجميع راضٍ عن أدائها. |
الاستخدام
كتبت هذه الوحدة لاستخدامها في : قالب {{تصنيف كائن/تصنيف علمي ويكي بيانات}} الذي يستخدم في {{تصنيف كائن}}.
مثال2
وحدة:wikidata2/ملعب: |
---|
---- 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', -- غير محدد
[''] = '',
}
local ItemsCash = {}
function FindInCash(id , prop)
--ItemsCash["Q19088"] = { ['P105'] = 'Q146481' , ['P171'] = 'Q2382443' }
--ItemsCash["Q2382443"] = { ['P105'] = 'Q22666877' , ['P171'] = '' }
--ItemsCash["Q1390"] = { ['P105'] = 'Q37517' , ['P171'] = 'Q105146' } -- حشرة
--ItemsCash["Q105146"] = { ['P105'] = 'Q1153785' , ['P171'] = 'Q1360' } --
--ItemsCash["Q1360"] = { ['P105'] = 'Q38348' , ['P171'] = 'Q5176' } --
--ItemsCash["Q5176"] = { ['P105'] = 'Q3978005' , ['P171'] = 'Q5171' } --
--ItemsCash["Q5171"] = { ['P105'] = 'Q3150876' , ['P171'] = 'Q5173' } --
--ItemsCash["Q5173"] = { ['P105'] = 'Q2752679' , ['P171'] = 'Q5174' } --
--ItemsCash["Q5174"] = { ['P105'] = 'Q2752679' , ['P171'] = 'Q729' } --
--ItemsCash["Q729"] = { ['P105'] = 'Q36732' , ['P171'] = 'Q19088' } --
--ItemsCash["Q19088"] = { ['P105'] = 'Q146481' , ['P171'] = 'Q2382443' } --
--ItemsCash["Q2382443"] = { ['P105'] = '' , ['P171'] = '' } --
--ItemsCash["Q132355"] = { ['P105'] = 'Q805' , ['P171'] = 'Q4115189' } -- test
---------------
local Cash = ItemsCash[id]
--if not Cash or not Cash.prop
--then
--return nil
--end
---------
if Cash then
C = Cash[prop]
mw.log(id .. ' : ' .. prop .. ' : ' .. C)
return C
else
return nil
end
end
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', firstvalue='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)
P171id = FindInCash(id , 'P171')
----------------
if not id or id ==''
then return nil
end
----------------
if not P171id or P171id == '' then
--P171id = formatStatements( {property ='P171' , entityId = id , rank='best', noref ='t', firstvalue='true',formatting=formatting})
--P171id = nil -- test
P171id = formatStatements( {property ='P171' , entityId = id , rank='best', noref ='t', firstvalue='true',formatting='raw'})
end
----------------
return P171id
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) -- Find P105 for item ID.
if not iid or iid ==''
then return nil
end
------------------------
vvv = nil
P105iid = FindInCash(iid , 'P105')
if not P105iid or P105iid == '' then
--return nil --test
P105iid = formatStatements( {property ='P105' , entityId = iid, enlabelcate='t', noref ='t', firstvalue='true',formatting='raw'})
end
------------------------
if not vvv then
if P105iid and P105iid ~= ''
then
for k, v in pairs(taxP105) do
if k == P105iid
then
vvv = v -- addTrackingCategory(v ,{property='P105', entityId = iid,noicon='t'})
end
end
end
end
------------------------
if not vvv then
st = formatStatements( {property ='P105' , entityId = iid, enlabelcate='t', noref ='t', firstvalue='true',formatting=''})
if st and st ~= ''
then
vvv = st --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
norank = ' (دون مرتبة)'
P31 = foo(id,'','P31')
if P31 then
small = '<small>' .. P31 .. norank .. '</small>'
else
small = nil
end
----------------
-- taxo = formatEntityId( id, options ).value
d = taxonrank(id) -- المرتبة التصنيفية
--d = foo(id,'','P105')
----------------
if not d or d == ''
then
--d = small
return nil
-- return ''
end
----------------
if taxo and taxo ~= ''
then
if d and d ~= ''
then
--return d .. '||'.. taxo
return d .. '\n|'.. taxo
else
return taxo
end
end
----------------
else
--return ''
end
end
--FindInCash(id , prop)
function pro1(id , options)
if not id or id =='' then
return nil
end
----------------
st = formatStatements( {property ='P171' , entityId = id,enlabelcate='t',noref ='e', firstvalue='true'}) -- options.noref
return st
end
function p.tax( datavalue ,datatype , options)
----------------
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))
local P31id = GetP171id(P30id,'raw') P31 = dd(P31id, pro1(P30id, options))
local P32id = GetP171id(P31id,'raw') P32 = dd(P32id, pro1(P31id, options))
local P33id = GetP171id(P32id,'raw') P33 = dd(P33id, pro1(P32id, options))
local P34id = GetP171id(P33id,'raw') P34 = dd(P34id, pro1(P33id, options))
local P35id = GetP171id(P34id,'raw') P35 = dd(P35id, pro1(P34id, options))
--] ]
----------------
if not coo or coo ==''
then
coo = p.taxcolour( datavalue ,datatype , options)
end
----------------
to = '[[التصنيف العلمي]]'
ti = addTrackingCategory(to ,options)
ti = addTrackingCategory(ti ,{property='P105' , noicon='t'})
title = 'colspan=\"2\" style=\"text-align: center;background-color:' ..coo..';" | ' .. ti
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 = {
P35 or "" , P34 or "" , P33 or "" , P32 or "" ,
P31 or "" , 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
----
if options.numb and options.numb ~=''
then e = i .. '\n|' .. j
else e = j
end
----
if j and j ~= ''
then table.insert( q , e )
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