وحدة:Cite

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
توثيق الوحدة[عرض] [عدل] [تاريخ] [مسح الكاش] [استخدامات]

الوحدة المسؤولة عن إظهار مراجع خواص ويكي بيانات.

تستخدم أساساً بواسطة وحدة:wikidata2.

الوظائف[عدل]

cite[عدل]

أمثلة للاستخدام خارج نطاق وحدة:wikidata2:

استعراض كيف تبدو صفحة Q14405740 عندما تستخدم كمرجع:

{{#invoke:Cite|cite|item=Q14405740}}

معرف منشور ZooBank: http://zoobank.org/References/2FAB4423-3174-4EA0-A5CA-0E9606A71AD6 — معرف PMCID: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3088416 — المؤلف: Wulf D. Schleip و مارك أوشي — العنوان : Annotated checklist of the recent and extinct pythons (Serpentes, Pythonidae), with notes on nomenclature, taxonomy, and distribution — المجلد: 66 — الصفحة: 29–79 — العدد: 66 — نشر في: زووكيز — تاريخ النشر: 4 نوفمبر 2010 — https://dx.doi.org/10.3897/ZOOKEYS.66.683https://www.ncbi.nlm.nih.gov/pubmed/?term=21594030https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3088416 — الرخصة: CC BY 3.0 Unported

reflist[عدل]

كيف تبدو الصفحات التالية عندما تستخدم كمرجع:

{{#invoke:Cite|reflist|item=Q14405740 Q17355847 Q15220486}}

quall[عدل]

# العنصر الخاصية
1 BALaT (Q2876688) BALaT person/organisation id (P1901)
2 Species Profile and Threats Database (Q24248482) Species Profile and Threats Database ID (P2455)
3 معجم سير الشخصيات الإيطالية (Q1128537) Dizionario Biografico degli Italiani (P1986)
4 قاعدة بيانات الضبط الوطنية التشيكية (Q13550863) معرف قاعدة بيانات الضبط الوطنية التشيكية (P691)
5 BBC Things (Q18336371) BBC Things ID (P1617)
6 RePEc Author Service (Q32075787) RePEc Short-ID (P2428)
7 الموقع الرسمي لرابطة محترفات التنس (Q14580067) معرف لاعب في رابطة محترفات التنس (P597)
8 CLARA (Q18558540) CLARA-ID (P1615)
9 كرة السلة-مرجع (Q22235911) Basketball-Reference.com NBA player ID (P2685)
10 Crossroads Bank for Enterprises (Q16626729) Enterprise number (Belgium) (P3376)
11 خريطة الشارع المفتوحة (Q936) وسم أو مفتاح خريطة الشارع المفتوحة (P1282)
12 خريطة الشارع المفتوحة (Q936) معرف خريطة الشارع المفتوحة (P402)
13 Tilastopaja (Q13425499) Tilastopaja male athlete ID (P3884)
14 Tilastopaja (Q13425499) Tilastopaja female athlete ID (P3882)
15 Professorenkatalog der Universität Leipzig (Q2111979) Catalogus Professorum Lipsiensis ID (P3409)
16 Shorter Jewish Encyclopedia (Q1967250) معرف الموسوعة اليهودية (بالروسية) (P1438)
17 Common Thesaurus of Audiovisual Archives (Q19366588) GTAA ID (P1741)
18 (Q21519808) National-Football-Teams.com player ID (P2574)
19 قاعدة بيانات باليسي (Q2886424) معرف باليسي (P481)
20 مركز الكواكب الصغيرة (Q522039) رمز مركز مرصد الكوكب الصغير (P717)
21 Gazetteer of Planetary Nomenclature (Q24033439) Gazetteer of Planetary Nomenclature ID (P2824)
22 Lord Byron and his Times (Q25935022) LBT person ID (P2977)
23 الشركات المفتوحة (Q7095760) معرف الشركات المفتوحة (P1320)
24 Prabook (Q25328680) Prabook ID (P3368)
25 Censo-Guía de Archivos de España e Iberoamérica (Q29043329) معرف دليل تعداد محفوظات إسبانيا وأمريكا اللاتينية (P3998)
26 Mémoire des hommes (Q20850976) Mémoire des hommes ID (P2071)
27 (Q26842998) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
28 National Bibliography Number (Q3873059) NDL JPNO (P2687)
29 Kunstindeks Danmark (Q3362041) Kunstindeks Danmark artwork ID (P2108)
30 Kunstindeks Danmark (Q3362041) Kunstindeks Danmark Artist ID (P1138)
31 Autores.uy (Q22975461) autores.uy database id (P2558)
32 النظام الجامعي للتوثيق (Q2597810) معرف النظام الجامعي للتوثيق (P269)
33 Shakeosphere (Q24284201) Shakeosphere person ID (P2886)
34 Code System for Administrative-territory Division Objects and Settlements (Q6538410) SOATO ID (P2672)
35 Open Food Facts (Q3353146) Open Food Facts food additive id (P1820)
36 Open Food Facts (Q3353146) Open Food Facts food category ID (P1821)
37 برو سايكلنج ستاتس (Q21745613) برو سايكلنج ستاتس (P1663)
38 برو سايكلنج ستاتس (Q21745613) معرف برو سايكلنج ستاتس (فريق) (P2328)
39 برو سايكلنج ستاتس (Q21745613) معرف برو سايكلنج ستاتس ريس (P2327)
40 ليبري فوكس (Q1070969) LibriVox author ID (P1899)
41 Photographers' Identities Catalog (Q23892012) Photographers' Identities Catalog ID (P2750)
42 National Library of Wales archives and manuscripts catalog (Q25877697) National Library of Wales ID (P2966)
43 (Q26857949) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
44 cinenacional.com (Q3610461) cinenacional.com person ID (P3857)
45 Atlas (Q7585771) Atlas ID (P1212)
46 (Q26882286) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
47 غران منشورات الموسوعة الكتالانية (Q2664168) معرف غران منشورات الموسوعة الكتالانية (P1296)
48 Nederlands Soortenregister (Q2246990) Nederlands Soortenregister ID (P3405)
49 رابطة محترفي كرة المضرب (Q744089) معرف رابطة محترفي كرة المضرب (P536)
50 Fashion Model Directory (Q963517) Fashion Model Directory photographer ID (P2485)
51 Fashion Model Directory (Q963517) Fashion Model Directory magazine ID (P2413)
52 Fashion Model Directory (Q963517) Fashion Model Directory brand ID (P2486)
53 Fashion Model Directory (Q963517) Fashion Model Directory designer ID (P2412)
54 Fashion Model Directory (Q963517) Fashion Model Directory model ID (P2266)
55 Standards for Networking Ancient Prosopographies: Data and Relations in Greco-Roman Names (Q25933001) SNAP ID (P2972)
56 PictoRight ID (Q27827683) PictoRight ID code (P3361)
57 قاعدة بيانات الأفلام على الإنترنت (Q37312) معرف قاعدة بيانات الأفلام على الإنترنت (P345)
58 Marburger Professorenkatalog (Q26951121) Marburger Professorenkatalog ID (P3187)
59 Svensk mediedatabas (Q10684881) SMDB ID (P1316)
60 قاعدة البيانات الوطنية للمغذيات بوزارة الزراعة الأمريكية (Q7866379) معرف قاعدة البيانات الوطنية للمغذيات بوزارة الزراعة الأمريكية (P1978)
61 (Q43156779) NGS pumping station ID (P3304)
62 Discography of American Historical Recordings (Q42800691) Discography of American Historical Recordings ID (P4457)
63 Find A Grave cemetery (Q42684574) Find A Grave cemetery ID (P2025)
64 Australian Heritage Database (Q4824241) Australian Heritage Database Place ID (P3008)
65 Gedbas (Q42307894) Gedbas genealogy person ID (P4108)
66 قائمة الاتحاد لأسماء الفنانين (Q2494649) معرف قائمة اتحاد أسماء الفنانين (P245)
67 (Q42160060) Musikverket person ID (P4357)
68 تروبيكوس (Q2578548) معرف تروبيكوس (P960)
69 Finnish MP database (Q29577112) Finnish MP ID (P2181)
70 Collectie Boijmans Online (Q38707107) Boijmans artist ID (P3888)
71 Vlinderstichting vlinders (Q24053150) Vlinderstichting-ID (P3322)
72 World Waterfall Database (Q27511104) World Waterfall Database ID (P3326)
73 مستندات مكتبة الكونغرس (Q13219454) معرف مكتبة الكونغرس (LCAuth) (P244)
74 Integrated Postsecondary Education Data System (Q6042926) Integrated Postsecondary Education Data System ID (P1771)
75 ClinVar (Q20023123) ClinVar Variation ID (P1929)
76 Lost Art Internet Database (Q32805749) Lost Art-ID (P1428)
77 Cultural heritage register of Quebec (Q3456276) معرف دليل التراث الثقافي لكيبيك (P633)
78 Cultural heritage register of Quebec (Q3456276) Québec cultural heritage directory people identifier (P2592)
79 Panarctic Flora (Q28064236) Panarctic Flora ID (P2434)
80 Finnish Ministers database (Q30044481) Finnish Ministers database ID (P2182)
81 Faceted Application of Subject Terminology (Q3294867) FAST ID (P2163)
82 صور معهد هولندا لتاريخ الفن (Q17299580) صور معهد هولندا لتاريخ الفن (P350)
83 معرف المحفوظات الوطنية (Q29896325) معرف المحفوظات الوطنية (P1225)
84 Fari e Segnalamenti (Q29446384) Italian Navy Lighthouses and Beacons ID (P3863)
85 Base Autor (Q29388258) Base biographique AUTOR ID (P3960)
86 Comic Book DB (Q17275658) ComicBookDB ID (P1392)
87 VICNAMES (Q28924629) VICNAMES Place ID (P3472)
88 iNaturalist (Q16958215) معرف أصنوفة iNaturalist (P3151)
89 Collective Catalog of Bibliographic Authorities of Chile (Q19896851) BNC ID (P1890)
90 قاعدة بيانات مختبر الدفع النفاث لأجرام النظام الشمسي الصغيرة (Q4026990) معرف قاعدة بيانات مختبر الدفع النفاث لأجرام النظام الشمسي الصغيرة (P716)
91 Mapping the Practice and Profession of Sculpture in Britain and Ireland 1851–1951 (Q6754185) MSBI person ID (P2914)
92 3DMet (Q23948774) 3DMet ID (P2796)
93 SNAC (Q29861311) SNAC Ark ID (P3430)
94 فنانو معهد هولندا لتاريخ الفن (Q17299517) فنانو معهد هولندا لتاريخ الفن (P650)
95 British Book Trade Index (Q25713895) British Book Trade Index ID (P2945)
96 سجل بي للأماكن التاريخية (Q30374403) معرف سجل بي للأماكن التاريخية (P763)
97 NDF-RT (Q21008030) NDF-RT ID (P2115)
98 CycleBase (Q28004084) CycleBase cyclist ID (P4508)
99 KNApSAcK (Q20900436) KNApSAcK ID (P2064)
100 KNApSAcK (Q20900436) KNApSAcK ID (P2064)
101 القائمة الحمراء للأنواع المهددة بالانقراض 2016.1 (Q25354282) معرف القائمة الحمراء للأنواع المهددة بالانقراض (P627)
102 Klosterdatenbank (Q27960389) Klosterdatenbank ID (P3407)
103 التصنيف الروسي لأراضي الشعبة البلدية (Q4330203) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
104 Leidse Hoogleraren (Q23667505) Leidse Hoogleraren ID (P2861)
105 الاتحاد الدولي لكرة المضرب (Q223041) معرف الاتحاد الدولي لكرة المضرب (P599)
106 Banque de noms de lieux du Québec (Q27675378) Banque de noms de lieux du Québec ID (P2100)
107 BIBSYS id (Q16889143) BIBSYS ID (P1015)
108 Bibliographic Catalog of the National Library of Chile (Q19896884) Biblioteca Nacional de Chile catalogue number (P1966)
109 National Recreation Trails Database (Q27768245) National Recreation Trails Database ID (P3353)
110 Model Manual (Q27942421) Model Manual ID (P3379)
111 إلونيت (Q4357006) Elonet movie ID (P2346)
112 إلونيت (Q4357006) معرف إلونيت (P2387)
113 (Q33060574) Ontario Heritage Act Register ID (P4120)
114 BacDive (Q25349390) BacDive ID (P2946)
115 Index Hepaticarum (Q23937518) Index Hepaticarum ID (P2794)
116 CompTox Chemistry Dashboard (Q26998510) DSSTOX substance identifier (P3117)
117 Queensland Heritage Register (Q17000625) Queensland Heritage Register ID (P2967)
118 Butterflies and Moths of North America (Q26879218) Butterflies and Moths of North America ID (P3398)
119 Spenserians (Q25933063) Spenserians person ID (P2973)
120 Sycomore (Q15271528) Sycomore ID (P1045)
121 National-Football-Teams.com (Q18693731) National-Football-Teams.com player ID (P2574)
122 BNF authorities (Q19938912) معرف المكتبة الوطنية الفرنسية (BnF) (P268)
123 Catalogus Professorum Academiae Rheno-Traiectinae (Q23825128) Catalogus Professorum Academiae Rheno-Traiectinae ID (P2862)
124 LIPID MAPS (Q20968889) LIPID MAPS ID (P2063)
125 GCatholic.org (Q25932135) GCatholic church ID (P2971)
126 Victorian Heritage Database (Q28152287) Victorian Heritage Database ID (P3443)
127 (Q24844844) Molendatabase verdwenen molens ID (P2903)
128 (Q24529770) Molenecho's ID (P2867)
129 Australian Women's Register (Q36581948) Australian Women's Register ID (P4186)
130 Internet Wrestling Database (Q24045324) Internet Wrestling Database ID (P2829)
131 Crunchbase (Q10846831) Crunchbase organisation ID (P2088)
132 Crunchbase (Q10846831) Crunchbase person ID (P2087)
133 Loop (Q23978066) Loop ID (P2798)
134 Open Beauty Facts (Q28481333) Open Beauty Facts category ID (P3076)
135 earthquake.usgs.gov (Q27243340) USGS earthquake id (P3196)
136 New Zealand Organisms Register (Q23893915) New Zealand Organisms Register ID (P2752)
137 Avibase (Q20749148) Avibase ID (P2026)
138 بوب كيم (Q278487) معرف بوب كيم (P662)
139 AcademiaNet (Q337201) AcademiaNet ID (P2080)
140 قاعدة البيانات العالمية بشأن المناطق المحمية (Q1681293) معرف قاعدة البيانات العالمية بشأن المناطق المحمية (P809)
141 Power of 10 (Q20892680) معرف باور اوف تن (P2090)
142 تصنيف حاصل ركوب الدراجات (Q18342406) Cycling Quotient ID men's race ID (P2648)
143 تصنيف حاصل ركوب الدراجات (Q18342406) Cycling Quotient female cyclist ID (P2709)
144 تصنيف حاصل ركوب الدراجات (Q18342406) Cycling Quotient women's race ID (P2708)
145 تصنيف حاصل ركوب الدراجات (Q18342406) Cycling Quotient male cyclist ID (P1541)
146 The Academic Family Tree (Q21585670) Academic Tree ID (P2381)
147 Hazardous Substances Data Bank (Q5687720) HSDB ID (P2062)
148 Megogo.net (Q4043924) Megogo ID (P2826)
149 database of the Musée d'Orsay (Q21518713) Musée d'Orsay artist ID (P2268)
150 Economics Departments, Institutes and Research Centers in the World (Q32079336) RePEc institute ID (P4096)
151 Open Plaques (Q23018437) OpenPlaques subject ID (P1430)
152 Open Plaques (Q23018437) OpenPlaques plaque ID (P1893)
153 (Q26914343) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
154 Swimrankings.net (Q23439984) Swimrankings.net swimmer ID (P2640)
155 denkXweb (Q19411765) denkXweb identifier (P1769)
156 Nutrient Tables for use in Australia (Q23894426) NUTTAB food ID (P2760)
157 Munk's Roll (Q6936720) Munk's Roll ID (P2941)
158 Catholic-Hierarchy.org (Q3892772) Catholic Hierarchy person ID (P1047)
159 Catholic-Hierarchy.org (Q3892772) Catholic Hierarchy diocese ID (P1866)
160 منصة البيانات المفتوحة من المكتبة الوطنية الفرنسية (Q20666306) معرف المكتبة الوطنية الفرنسية (BnF) (P268)
161 Berliner Papyrusdatenbank (Q20088163) BerlPap identifier (P1948)
162 Database of Classical Scholars (Q20080428) Database of Classical Scholars ID (P1935)
163 Gertrude database (Q18107552) Gertrude identifier (P1529)
164 معرف المكون الفريد (Q6593799) معرف المكون الفريد (P652)
165 Driver Database (Q19587362) DriverDB driver ID (P3684)
166 Database of Vascular Plants of Canada (Q19544711) VASCAN ID (P1745)
167 HathiTrust Catalogue (Q19348674) HathiTrust ID (P1844)
168 NUPILL Literatura Digital (Q18063533) Nupill Literatura Digital - Author (P1473)
169 NUPILL Literatura Digital (Q18063533) Nupill Literatura Digital - Document (P1474)
170 AUSTLANG (Q17315091) AUSTLANG code (P1252)
171 TAXREF (Q26924544) TAXREF ID (P3186)
172 سبورتس رفرنس (Q18002875) معرف سبورتس رفرنس (P1447)
173 هومولوجين (Q468215) معرف هومولوجين (P593)
174 FINESS (Q3063240) FINESS medical facility ID (P4058)
175 تفريغات بيانات Freebase (Q15241312) معرف فري بيس (P646)
176 معجم بغس لوحدات الصخور المسماة (Q14408490) معرف معجم بغس (P732)
177 Encyclopædia Britannica Online (Q5375741) Encyclopædia Britannica Online ID (P1417)
178 الكتالوج العام للمكتبة الوطنية الفرنسية (Q15222191) معرف المكتبة الوطنية الفرنسية (BnF) (P268)
179 موقع ITF (Q14580049) معرف الاتحاد الدولي لكرة المضرب (P599)
180 ملف استنادي متكامل (Q36578) معرف ملف استنادي متكامل (P227)
181 Berlin cultural heritage database (Q21776837) Berlin cultural heritage ID (P2424)
182 BiblioNet.gr (Q22697075) BiblioNet author ID (P2188)
183 BiblioNet.gr (Q22697075) BiblioNet publisher ID (P2189)
184 BiblioNet.gr (Q22697075) BiblioNet publication ID (P2187)
185 ATP website (Q14580059) معرف رابطة محترفي كرة المضرب (P536)
186 CONOR (Q16744133) CONOR ID (P1280)
187 INSPIRE-HEP (Q5972440) INSPIRE-HEP author ID (P2930)
188 OKTMO 179/2016 (Q26833494) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
189 التصنيف الروسي لكائنات الشعبة الإدارية (Q856636) معرف التصنيف الروسي لكائنات الشعبة الإدارية (P721)
190 Research Papers in Economics (Q206316) Research Papers in Economics Series handle (P2761)
191 إن إن دي بي (Q1373513) NNDB people ID (P1263)
192 (Q26902153) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
193 ملف استنادي دولي افتراضي (Q54919) معرف ملف استنادي دولي افتراضي (VIAF) (P214)
194 Plazi taxon treatment ID (Q20644485) Plazi ID (P1992)
195 (Q29433586) معرف دليل العلماء الأرجنتينيين للدكتور غريرسون (P3946)
196 British Museum person-institution thesaurus (Q18785969) British Museum person-institution (P1711)
197 موسيوفيل (Q13481868) موسيوفيل (P539)
198 (Q26878024) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
199 جوكوند (Q809825) معرف جوكوند (P347)
200 نظام معلومات تصنيفية متكاملة (Q82575) التصنيف التسلسلي ضمن نظام المعلومات التصنيفية المتكامل (P815)
201 Name and Title Authority File of Catalonia (Q8342938) CANTIC-ID (P1273)
202 Catalogus Professorum Academiae Groninganae (Q20730803) Catalogus Professorum Academiae Groninganae id (P2016)
203 ميوزك برينز (Q14005) معرف ميوزك برينز للأماكن (P982)
204 (Q26919685) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
205 Bibliothèque et Archives nationales du Québec identifier (Q22916615) BAnQ work ID (P1823)
206 Bibliothèque et Archives nationales du Québec identifier (Q22916615) BanQ author ID (P3280)
207 قاعدة بيانات ليونور (Q2886420) معرف ليونور (P640)
208 أنواع الثدييات في العالم (Q1538807) معرف أنواع الثدييات في العالم (P959)
209 جيونيمز (Q830106) معرف جيونيمز (GeoNames) (P1566)
210 قاعدة ميريمي (Q809830) معرف ميريمي (P380)
211 رابطة محترفات التنس (Q948442) معرف لاعب في رابطة محترفات التنس (P597)
212 المكتبة الرقمية للأدب االهولندي (Q2451336) معرف مؤلف في المكتبة الرقمية للأدب االهولندي (P723)
213 Catalogus Professorum Rostochiensium (Q1050232) Catalogus Professorum Rostochiensium ID (P2940)
214 المحدد المعياري الدولي للأسماء (Q423048) المحدد المعياري الدولي للأسماء (P213)
215 directory of federal heritage designations (Q22344607) National Historic Sites of Canada ID (P2526)
216 directory of federal heritage designations (Q22344607) National Historic Sites of Canada ID (P2526)
217 نظام معلومات الأسماء الجغرافية (Q136736) معرف نظام معلومات الأسماء الجغرافية (P590)
218 السجل الكندي للأماكن التاريخية (Q3456275) معرف السجل الكندي للأماكن التاريخية (P477)
219 السجل الكندي للأماكن التاريخية (Q3456275) معرف السجل الكندي للأماكن التاريخية (P477)
220 Más información, mejor educación (Q19936479) Ministry of Education of Chile school ID (P1919)
221 Gewässerkennzahl (Q1428658) معرف كود المياه (P3866)
222 Australasian Pollen and Spore Atlas (Q24009610) Australasian Pollen and Spore Atlas Code (P2809)
223 Journalisted ID (Q18575559) Journalisted ID (P1714)
224 NUKAT (Q11789729) NUKAT (WarsawU) authorities (P1207)
225 فايند اغريف (Q63056) فايند اغريف (P535)
226 Web NDL Authorities (Q2553334) معرف مكتبة البرلمان الوطني (NDL) (P349)
227 (Q26883285) معرف التصنيف الروسي على أراضي الشعبة البلدية (P764)
228 Catalogus Professorum Halensis (Q20680681) Catalogus Professorum Halensis (P2005)
229 المؤشر الدولي لأسماء النباتات (Q922063) معرف منشورات IPNI (P2008)
230 المؤشر الدولي لأسماء النباتات (Q922063) معرف مؤلف IPNI (P586)
231 المؤشر الدولي لأسماء النباتات (Q922063) معرف نباتات IPNI (P961)
232 سايني (Q10726338) CiNii book ID (P1739)
233 سايني (Q10726338) CiNii article ID (P2409)
234 سايني (Q10726338) معرف مؤلف سايني (P271)
235 WikiPathways (Q7999828) WikiPathways ID (P2410)
--/-- Creates a timeline for an item based on various properties 
local Known_properties = {"P304",  "P50", "P957",  "P478", "P98", "P393", "P1476", "P357", "P123", "P577", "P433", "P275", "P698", "P356", "P958", "P1433",  "P1680", "P1683", "P387", "P1065" ,"P212","P854","P170","P248","P143"}--,"P345"
local p = {}
local wikidata = require('وحدة:Wikidata2').formatStatementsFromLua
local quall =  require('Module:Cite/quall')
--local wikidata2 = require('وحدة:Wikidata2').formatEntityId -- table

local function getentityprop(entity, p , pattern )
    -- get automatically url
	local Pattern = (pattern or 'autourl4')--autourl3
	local tot =  wikidata({ property = p , pattern = Pattern , noref = 'true', conjunction = ' & ',enlabelcate ='true', addTrackingCat= "t" , noicon = "t"   })
	local tot1 =  wikidata({entityId = entity, property = p , pattern = Pattern , noref = 'true', conjunction = ' & ',enlabelcate ='true', addTrackingCat= "t", noicon = "t" })
		if not tot or tot == '' then
			tot = tot1 
		end
--	if tot and tot ~= '' then
	--	return tot --وصلة : 
	--end
	
	if tot and tot ~= '' then
		tot = 'وصلة : ' .. tot
	end
	return  tot
end

--[[
   يجلب خواص معينة عند وجود مراجع محددة مسبقاً
--]]
local function getsomequall(entity, snak, property)
	if snak[property]
	and snak[property][1]
	and snak[property][1].datavalue
	and snak[property][1].datavalue.value['numeric-id']
	then 
		house = snak[property][1].datavalue.value['numeric-id'] 
		local l10n = quall[house]
		if l10n then
			local q = {}
			for _, v in pairs(l10n) do
				mw.log("finding " .. v[1] .. "house" .. house )
				b =  getentityprop (entity, v[1] , v[3])
				if b and b ~= '' 
					then table.insert( q, b ) 
				end
			end
			t =  table.concat( q )
			if t and t ~= '' then
				return t
			end
		end
	end
end

local function get_property_label( Id )
	local label = mw.wikibase.label( Id )
	return label
end

local function geturl(url,text)
	if url and url ~= '' then 
		return '[' .. url .. ' ' .. (text or url) .. ']'
	end
end

local function labeel(property,text)
		local pro = mw.wikibase.label( property ) 
			if not text or text == '' then text = pro end 
		if text then 
			return text
		end
end
local function P1629(property,text)
	--local pro = wikidata({property = 'P1629', nolink = 'true', entityId = property, enbarten = 'true', noref = 'true',enlabelcate ='true' , label = get_property_label(property) }) 
	local pro = get_property_label(property)
	if not text or text == '' then text = pro end 
	if text then 
		return text
	end
end

local function ValueFromItem(items, property,enbarten)
	local pattern = 'autourl'
	if property =='P212' or property =='P957' then pattern = nil end -- no automatic link for ISBN
	for i, item in pairs(items) do
		ednumber = wikidata({entityId = item, property = property , enbarten = enbarten, pattern =pattern
			, noref = 'true', modifytime = 'longdate',enlabelcate ='true'})
	end
	return ednumber 
end

local function ValueFromEntityId(entity, property,enbarten)
	local pattern = 'autourl'
	val = wikidata({entityId = entity, property = property, enbarten = enbarten, pattern = pattern
		, noref = 'true', modifytime = 'longdate',enlabelcate ='true'})
	if val then 
		return val 
	end
end

--local function GetValueFromEntityId(snak,entity, property, enbarten)
local function GetValueFromEntityId(snak,property, enbarten)
	--local A = wikidata({property = 'P1629', entityId = property,enlabelcate ='true' , enbarten = 'true', noref = 'true', label = get_property_label( property )}) 
	local A = get_property_label(property)
	local prop = wikidata({property = property, enbarten = enbarten, noref = 'true'
		, pattern = 'autourl', modifytime = 'longdate'}, snak)
	--if not prop then prop = ValueFromEntityId(entity, property,enbarten) end
	if prop  and prop ~= '' then
		if A  and A ~= '' then
			return A .. ': ' .. prop
		else
			return prop
		end
	end
end

local function GetValueFromItem(items, snak, property , text,enbarten)
	local pattern = 'autourl'
	if property =='P212' or property =='P957' then pattern = nil end -- no automatic link for ISBN
	local prop = wikidata({property = property
		, enbarten = enbarten
		, pattern = pattern
		, noref = 'true'
		, modifytime = 'longdate'
		,enlabelcate ='true'}, snak)
	if not prop 
		then prop = ValueFromItem(items, property,enbarten)
	end
	if prop and prop ~= '' then
		if text and text ~= '' then prop  = text ..': '.. prop end
	end
	return prop
end

local function get_number_from_item(items, property)
	for i, item in pairs(items) do
		ednumber = wikidata({entityId = item, property = property, enbarten = 'yes',enlabelcate ='true'})
		if ednumber then 
			return ednumber 
		end
	end
end
local function getnumber(items, snak, property,text)

	--local tex = wikidata({property = 'P1629', entityId = property, enbarten = 'true', noref = 'true', label = get_property_label(property ) 
		--, label = wikidata2(property, {nolink = 'true', noref = 'true',enlabelcate ='true'}).value
	--})
	local tex = get_property_label(property ) 

	local number = wikidata({property = property, enbarten = 'true',enlabelcate ='true'}, snak)
	if not number then
		number = get_number_from_item(items, property)
	end
    if not text then text = tex else end

	if number  and number ~= '' then
		 if text then
		 	return text ..': '.. number  
	 			else return number
	 		end
	end
end

local function GetItemValue(items, snak, property , text,enbarten)
	local pattern = 'autourl'
	--	if property =='P212' or property =='P957' then pattern = nil end -- no automatic link for ISBN
	local prop = wikidata({property = property, enbarten = (enbarten or ''), pattern = pattern, noref = 'true', modifytime = 'longdate'
		,separator='، و',conjunction='، و'}, snak)
		if not prop then prop = ValueFromItem(items, property,(enbarten or '')) end
	
	if prop and prop ~= '' then
		if text and text ~= '' then prop  = text ..': ' .. prop end
	end
	return prop
end

local function GetNumberFromItem(items, snak, property , text,enbarten)
	local prop = wikidata({property = property, enbarten = 't'}, snak)
	for i, item in pairs(items) do
		ednumber = wikidata({entityId = item, property = property , enbarten = 'true', noref = 'true'})
	end
		if not prop then prop = ednumber  end
	if prop and prop ~= '' then
		if text and text ~= '' then prop  = text .. prop end
	end
	return prop
end

--[[
  جلب أي وصلة مرجع من الخواص مثل
     P1065,P854
--]]

local function getLink(items, snak, property,text)
	-- local tex = labeel(property,text)
	local links = wikidata({property = property, pattern = 'true', noref = 'true' , enbarten = 'true'}, snak)
	if links and links ~= '' then
		if text and text ~= '' 
			then return geturl(links,text)
			else return links
 		end
	end
end
local function getLink1(items, snak, property,text)
	local links = ValueFromItem(items, property,'true')
	local tex = labeel(property,text)
	if links and links ~= '' then
		if tex and tex ~= '' 
			then return  tex ..': '.. links
			else return links
 		end
	end
end
--[[
  جلب أي تاريخ من الخواص مثل
     P813,P577
--]]

local function getdate( snak, property,text)
	-- local tex = labeel(property,text)
	if snak[property] then
		local dat = wikidata({property = property, pattern = 'true', noref = 'true', modifytime = 'longdate'}, snak)
		if dat and dat ~= '' then
			if text and text ~= '' 
				then return text .. ': '.. dat
				else return dat
	 		end
		end
	end
end

local function getdate1(items, snak, property,text)
	for i, item in pairs(items) do
		local datetime1 = wikidata({entityId = item, property =property, noref = 'true',enlabelcate ='true', modifytime = 'longdate' })
	end
	if text then
		return text ..': '.. datetime1
			else return datetime1
	end
end

local function getedition(items, snak )
	local ordning = {'الأول', 'الثاني', 'الثالث', 'الرابع', 'الخامس', 'السادس', 'السابع', 'الثامن', 'التاسع', 'العاشر', 'الحادي عشر', 'الثاني عشر'}
	local ednumber;
	if snak['P393'] then
		ednumber = wikidata({property = 'P393', enbarten = 'true',enlabelcate ='true'}, snak)
	else
		ednumber = get_number_from_item(items, "P393")
	end
	if not ednumber then 
		return nil
	end
	if not tonumber(ednumber) then
		return  ' الاصدار ' .. ednumber 
	end
	if ordning[tonumber(ednumber)] then
		return  ' الاصدار ' .. ordning[tonumber(ednumber)] 
	end
	local sist = string.sub(ednumber, string.len(ednumber))
	if sist == '1' or sist == '2' then
		return  ' : الاصدار ' .. ednumber 
	else
		return ' : الاصدار ' .. ednumber 
	end
end

local function getsubtitle(items, snak)-- needs i18n some languages do not use this format
	local s = {}
	if snak['P1680'] then
		table.insert(s, wikidata({property = 'P1680', enbarten = 'true',enlabelcate ='true'}, snak))
	else
		for i, item in pairs( items) do
			local lab = wikidata({property = 'P1680',enlabelcate ='true', entityId = item, enbarten = 'true', noref = 'true'})
			local sitelink = mw.wikibase.sitelink( item )
			if sitelink and lab then
				table.insert(s, '[[:' .. sitelink .. '|' .. lab .. ']]')
			elseif sitelink then
				table.insert(s, '[[:' .. sitelink .. ']]')
			elseif lab then
				table.insert(s, lab)
			end
		end
	end
	tot = table.concat(s, ' — ')
	if tot and tot ~= '' then
		return tot
	else
		return nil
	end
end

local function gettitle(items, snak)
	local link = getLink(items, snak, 'P854') or getLink(items, snak, 'P1065','')  -- the title will be with the link
	local title = GetItemValue(items, snak, 'P1476' ,  'العنوان ' ,' ')
	local subtitle = GetItemValue(items, snak, 'P1680' ,  'العنوان ' ,' ')
		if not title or title =='' then title = subtitle end
		if link and link ~= ''
		then
			return '' 
		else 
			return title
		end
end

local function getwhatever(snak, property)
	if snak[property] then
		--mw.log("getwhatever property " .. property)
		local a = get_property_label(property)
		--local a = wikidata({property = 'P1629', entityId = property, enbarten = 'true', noref = 'true',enlabelcate ='true', label =  get_property_label(property)}) 
			
		local s = {}
		--local items = {}
		--mw.log("find snak.property " .. property)
		for j, prop in pairs(snak[property]) do
			if prop.snaktype == 'value' then
				item = 'Q' .. prop.datavalue.value['numeric-id']
				--table.insert(items, item)
				faso =  wikidata({entityId = item, property = property, noref = 'true', conjunction = ', ',enlabelcate ='true'})
				table.insert( s, faso )
			end 
		end
		if property == "P143" then a = 'مستورد من ' end
		if property == "P248" then a = "'''مذكور في'''" end
		--table.insert(s, wikidata({property = property, conjunction = ', ',enlabelcate ='true'}, snak))
		if #s > 0 then
			return (a or  '') .. "''':''' " .. table.concat(s, ', ')
		end
	end
end

--local function gettherest(snak, entity)
local function gettherest(snak)
	local s = {}
	for property, j in pairs(snak) do
		Known = false
		for k, l in pairs(Known_properties) do
			if property == l then 
				Known = true
			end
		end
		if not Known then
			local entity1 = mw.wikibase.getEntityObject( property )
			if entity1.claims and ( entity1.datatype == 'string' or entity1.datatype == 'external-id' ) then
				--local vaa =  GetValueFromEntityId(snak , entity , property , 'true' )
				local vaa =  GetValueFromEntityId(snak , property , 'true' )
				--mw.log("gettherest property:" .. property )
				table.insert(s, vaa) 
			end
		end
	end
	if #s > 0 then
		return table.concat(s, ' — ')
	end
end

function numbers( items, snak)
	local section  = GetNumberFromItem(items, snak, 'P958','الباب: ')
	local volume  = GetNumberFromItem(items, snak, 'P478','المجلد: ')
	local page = GetNumberFromItem(items, snak, 'P304','الصفحة: ')
	local issue = GetNumberFromItem(items, snak, 'P433','العدد: ')

	field = {}
		if section and section ~= '' then 	table.insert(field, section)	end
		if volume and volume ~= '' then 	table.insert(field, volume)	end
		if page and page ~= '' then 	table.insert(field, page)	end
		if issue and issue ~= '' then 	table.insert(field, issue)	end
	return table.concat(field, ' — ')
end

local function getISBN(items, snak)
	local ISBN13 = GetNumberFromItem(items, snak, 'P212' ,'ISBN ','yes') --ISBN 13
	local ISBN10 = GetNumberFromItem(items, snak, 'P957' ,'ISBN ','yes')  --ISBN 10
		if not ISBN13 or ISBN13 =='' then ISBN13 = ISBN10 end
	return ISBN13  
end

function doipmid( items, snak)
	local doi = GetValueFromItem(items, snak, "P356" )-- Digital Object Identifier
	local pmid = GetValueFromItem(items, snak, "P698" )-- Identifier for journal 
	local pmc = GetValueFromItem(items, snak,'P932')-- identifier issued by PubMed Central
	field = {}
	if doi and doi ~= '' then 	table.insert(field, doi)	end
	if pmid and pmid ~= '' then 	table.insert(field, pmid)	end
	if pmc and pmc ~= '' then 	table.insert(field, pmc)	end
	return table.concat(field, ' — ')
end

local function Getquall(snak , entity)
	local quall = getsomequall(entity, snak, "P143" )
	local quall1 = getsomequall(entity, snak, "P248" )
		if not quall or quall =='' then quall = quall1 end
	return quall
end

function getMultiLink(items, snak , entity)
	local title = GetItemValue(items, snak, 'P1476' ,'' ,'')
	local link = getLink(items, snak, 'P854',title)--,'وصلة مرجع'
	local link1 = getLink1(items, snak, 'P854') -- 
	--local therest = gettherest(snak, entity)
	local therest = gettherest(snak)
	local quall = Getquall(snak , entity)
	local fulltext = getLink1(items, snak, 'P953') -- 
	local accessdate =getdate(snak, 'P813','تاريخ الاطلاع')
	local archive  = getLink(items, snak, 'P1065','')
	field = {}
	if link and link ~= '' 					then newtab = link  --We don't need to search for some links if they here already
	elseif therest and therest ~= ''  		then newtab = therest 
	elseif quall and quall ~= ''  			then newtab = quall 
	elseif link1 and link1 ~= ''  			then newtab = link1  -- last thing we want to see
	elseif fulltext and fulltext ~= ''  	then newtab = fulltext
	end
	if link and link ~='' then if archive and archive ~='' then archiveandlink = 't' end end
		if newtab and newtab ~= '' then
			table.insert(field, newtab) 
			if accessdate and accessdate ~= '' then table.insert(field, accessdate)  end
		end
	if archiveandlink and archiveandlink ~= '' 
	then 
		return '' 
	else
		return table.concat(field, ' — ')
	end
end

function getarchiveLink(items, snak , entity)
	local title = GetItemValue(items, snak, 'P1476' ,'' ,'')
	local link = getLink(items, snak, 'P854','')

	local archive  = getLink(items, snak, 'P1065','')
	local archive1  = getLink(items, snak, 'P1065','وصلة ارشيفية')
	local archivedate =getdate(snak, 'P2960','')-- تاريخ الأرشفة
	local accessdate =getdate(snak, 'P813','تاريخ الاطلاع')
	local aa =  geturl((archive or link),title)
	
	field = {}
	if archive and archive ~= '' then 
		if aa and aa ~= '' then table.insert(field, aa) end
		if link and link ~='' then
			org = geturl(link,'الأصل')
			if accessdate and accessdate ~= '' then table.insert(field, accessdate)  end
		end
			a =  ' تمت أرشفته من ' .. (org or 'الأصل')
			if archivedate and archivedate ~= ''  then a =a ..   ' في ' 	.. archivedate end
			table.insert(field, a)
	end
	return table.concat(field, ' — ')
end

function getreftable( items, snak , hash , options )
    local entity = options.entityId
	local author = GetValueFromItem(items, snak, 'P50','المؤلف')
	--local editor = getEditor(items, snak )
	local editor = GetValueFromItem(items, snak, 'P98','المحرر')
	local title = gettitle(items, snak )
	local publisher = GetValueFromItem(items, snak, 'P123','الناشر')
	local creator = GetValueFromItem(items, snak, 'P170','المخترع')
	local publishedin = GetValueFromItem(items, snak, 'P1433','نشر في')

	--local publishedin = getpublishedin(items, snak )
	--local publishdate = getPublishdate(items, snak )
	local publishdate = getdate( snak, 'P577','تاريخ النشر')
	local edition = getedition(items, snak )
	local number = numbers( items, snak)
	local doipmid = doipmid( items , snak)
	local isbn = getISBN(items, snak ) --0

	--local whatever= whatever(items, snak, "P212" )
	local import = getwhatever(snak, "P143" ) or getwhatever(snak, "P248" )

	local MultiLink = getMultiLink(items, snak , entity)
	local archiveLink = getarchiveLink(items, snak , entity)
	
	local license = GetItemValue(items, snak, 'P275','الرخصة')
	local quote =  GetItemValue(items, snak, 'P1683' ,  'إقتباس' ,' ') --  
	if title and title ~= '' and subtitle and subtitle ~= '' then 
		--title = title .. ' : ' .. subtitle
	end
	for i, item in pairs(items) do
		if item == 'Q36578' 
			then edition,author  = nil,nil
		end
	end
	field = {}
	--if whatever and whatever ~= '' then table.insert(field,whatever) end
	if import and import ~= '' then table.insert(field, import) end
	
	if MultiLink and MultiLink ~= '' then table.insert(field, MultiLink)  end
	if archiveLink and archiveLink ~= '' then table.insert(field, archiveLink)  end

	if author and author ~= '' then table.insert(field, author) end
	if editor and editor ~= '' then table.insert(field, editor) end
	if title and title ~= '' then table.insert(field, title) end
	if edition and edition ~= '' then table.insert(field, edition) end
	if number and number ~= '' then 	table.insert(field, number)	end

	if publisher and publisher ~= '' then table.insert(field, publisher) end
	if creator and creator ~= '' then table.insert(field, creator) end
	if publishedin and publishedin ~= '' then table.insert(field, publishedin) end
	if publishdate and publishdate ~= '' then table.insert(field, publishdate) end
    if appliestopart and appliestopart ~= '' then table.insert(field, appliestopart) end
	if isbn and isbn ~= '' then 	table.insert(field, isbn)	end
	if doipmid and doipmid ~= '' then 	table.insert(field, doipmid)	end

	if license and license ~= '' then table.insert(field, license) end
	if quote and quote  ~= '' then table.insert(field, quote ) end
	
	local doo =  table.concat(field, ' — ')
	if doo and doo ~= '' then
		return doo --mw.getCurrentFrame():extensionTag( 'ref', doo, {name = hash} )
	end
end

local function findblacklist(items)
	 -- function to ignore Sister projects
	local val = 'false'
	local s = {}
		for i, item in pairs(items) do
			function qoo(item,property)
				return wikidata({entityId = item, property = property , noref = 'true',enbarten='1',formatting = 'raw'})
			end
			local wiki = qoo(item, 'P1800') or qoo(item, 'P1566') or qoo(item,'P21') -- all wikimedia site ,GeoNames ,gender
			local wik2 = qoo(item, 'P31')
			local blackk = {"Q20651139",  "Q465", "Q15241312"} 
			for k, b in pairs(blackk) do
				if item == b then  val = 'true' end
			end
			if wiki and wiki  ~= ''
				then val = 'true'
				elseif wik2 == 'Q5' -- Human is not a direct reference
					or wik2 == 'Q184188'  -- Also Canton
					or wik2 == 'Q1250464' then val = 'true' -- Also places
			end
	end
	return val
end

function p.citeitem( items, snak , hash , options , notag)
	if not items and not snak then return nil end
	if type(items) == 'string' then
		items= {items}
	end
	items= {}
	if snak.P248 then
		for j, prop in pairs(snak.P248) do
			if prop.snaktype == 'value' then
				table.insert(items, 'Q' .. prop.datavalue.value['numeric-id'])
			end 
		end
	elseif snak.P143 then
		for j, prop in pairs(snak.P143) do
			if prop.snaktype == 'value' then
			table.insert(items, 'Q' .. prop.datavalue.value['numeric-id'])
			end 
		end
	end
	local blacklist1 = findblacklist(items)
	if blacklist1 == 'true' then return nil end
	--local findtype = FindTypeOfRefrence(items, snak, options)
	local refrence = getreftable( items, snak , hash , options )
	if refrence and refrence ~=''  then
		if notag and notag ~=''  then
			refrence = refrence
		else
			refrence = mw.getCurrentFrame():extensionTag( 'ref', refrence, {name = hash} )
		end
	end
	return refrence
end

function p.citeitem2( ref , options , notag)
	if not ref then return nil end
	local hash = ref.hash
	local snak = ref.snaks
	local snnaks = ""
	for Px, prope in pairs(snak) do
		snnaks = snnaks .. "," .. Px
	end
	--mw.log( "Citeitem2 hash: " ..  hash )
	--mw.log( "*snnaks : " ..  snnaks )
	items= {}
	if snak.P248 then
		for j, prop in pairs(snak.P248) do
			if prop.snaktype == 'value' then
				table.insert(items, 'Q' .. prop.datavalue.value['numeric-id'])
			end 
		end
	elseif snak.P143 then
		for j, prop in pairs(snak.P143) do
			if prop.snaktype == 'value' then
			table.insert(items, 'Q' .. prop.datavalue.value['numeric-id'])
			end 
		end
	end
	local blacklist1 = findblacklist(items)
	if blacklist1 == 'true' then return nil end
	--local findtype = FindTypeOfRefrence(items, snak, options)
	local refrence = getreftable( items, snak , hash , options )
	if refrence and refrence ~='' then
		if notag and notag ~='' then
			refrence = refrence
			else
			refrence = mw.getCurrentFrame():extensionTag( 'ref', refrence, {name = hash} )
			end
		end
	return refrence
end

function p.reflist(frame)
	local list = mw.text.split( frame.args.item, ' ')
	local s = {}
	for i, j in pairs(list) do
    	local item = mw.wikibase.getEntityObject( mw.text.trim(j) )
		local str = p.citeitem( {mw.text.trim(j)} , item.claims, mw.text.trim(j)..i , frame.args , 't')
		if str then table.insert(s, '*'.. str) end
	end
	return table.concat(s, '\n')
end

function p.cite(frame)
    	local item = mw.wikibase.getEntityObject( frame.args.item )
    	if not item then return 'no item ' end
    		return p.citeitem( {frame.args.item} , item.claims, frame.args.item, frame.args , 't')
end

function p.listquall(frame)
	local list = mw.html.create("table")
	list:addClass("wikitable sortable collapsible")
	local head = list:tag("tr")
	head:tag("th"):wikitext("#")
	head:tag("th"):wikitext("العنصر")
	head:tag("th"):wikitext("الخاصية")
	local number = 0
	for v, nam in pairs(quall) do
		for _1, nam1 in pairs(nam) do
			number = number + 1
			local row = list:tag("tr")
			row:tag("td"):tag("span"):wikitext(number)
			local th = row:tag("td")
			local rr = row:tag("td")
			local dd = frame:preprocess("{{Q|Q".. v .."}}") 
			th:tag("span"):wikitext(dd)
			local u = frame:preprocess("{{P|".. nam1[1] .."}}") 
			rr:tag("span"):wikitext(u)
		end
	end
	return list
end	
return p