Модуль:Wikibase

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
{{i}} Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]

Модуль:Wikibase (обг. · [ред.] · історія · посилання · документація · підсторінки · тести – результати)


Документація — на ru:Модуль:Wikibase

Функції

function M.id(f)
  • без параметрів — повертає id елемента поточної сторінки на Вікіданих або порожній рядок на сторінці без Елемента Вікіданих
  • задано параметр |1= — дістає id значення вказаної в ньому Властивості
    • |2= - роздільник, якщо значень кілька ("; " за замовчуванням)
    • |n= — позиція, порядковий номер значення із таблиці значень
    • |3= - формат для строкової властивості, за замовчуванням "%s"
поточна сторінка: Q8565357 Властивість P31 (для поточної сторінки): Q15184295
function M.label(f)

--Мітка (label) елемента Вікіданих у 1-му параметрі

поточна сторінка: Модуль:Wikibase для Q5: людина: людина
function M.labelq(f) для q5 дасть наступне: людина (q5)
function M.labelp(f) для p31 дасть наступне: є одним із (p31)
function M.iwiki(f)

-- Інтервікі для вказаної мови (лише з ВД)

поточна (de): Modul:Wikibase todo -- для qid : Помилка Lua у Модуль:Uses_Wikidata/пісочниця у рядку 118: attempt to index field '?' (a nil value).
function M.iwikiall(f)

-- Усі посилання, прив'язані до елементу на ВД, у т.ч. Вікігід та Сховище

поточна: для Q5:
function M.page(f)

-- сторінка Укрвікі для даного елемента

для Q5: Людина
function M.titleid(f) qid для назви сторінки
  • [1] : назва вікі-сторінки
  • [2] : опція — код вікі (напр. enwiki)
  • Україна = "Q212"
  • Географія України = "Q277597"
  • Краснодарский край : ruwiki = "Q3680" : Категорія:Краснодарський край
  • Kategorie:Deutschland : dewiki = "Q1410828"
  • Category:Kiev : commonswiki = ""
  • Категория:Краснодарский край : ruwikivoyage = "Q5871163" : Краснодарський край
function M.wdprops(f)

-- список усіх властивостей із ВД у вигляді, придатному для читання людиною

головний предмет твору елемент Wikibase*
Wikibase
не плутати з Template:WikiBaseball*
є одним із модуль проекту Вікімедіа*
є підкласом фізична особа
всеїдні
людина розумна
особа
mammal*
ідентифікатор МКХ-11 XE653
властивості для цього типу Англія
берилій
гучномовець
мистецтво
Гаяна
Ірландія
d:Q106
Південна Америка
нечесна гра
Норвегія
Північна Ірландія
травень
Осама бен Ладен
лев
pneumonoultramicroscopicsilicovolcanoconiosis
Антіполо*
неспецифічний виразковий коліт
Уельс
Шотландія
фінська мова
січень
Альберт Ейнштейн
Supercalifragilisticexpialidocious*
1907
1994
Австрія
Mundaneum*
Rhônexpress
Мекленбург-Передня Померанія
Музей галло-римської цивілізації*
Селевк II
Есватіні
Торонто
Рона-Альпи
Швейцарія
Кот-д’Ор*
реній
lopado­temacho­selacho­galeo­kranio­leipsano­drim­hypo­trimmato­silphio­parao­melito­katakechy­meno­kichl­epi­kossypho­phatto­perister­alektryon­opte­kephallio­kigklo­peleio­lagoio­siraio­baphe­tragano­pterygon*
Тисяча й одна ніч
сигара
Сен-Тропе
Генуя
d:Q551
Туніський динар
Жан Расін
ідентифікатор SNOMED CT 278412004
еквівалентний клас http://purl.bioontology.org/ontology/STY/T016
https://schema.org/Person
http://xmlns.com/foaf/0.1/Person
ідентифікатор MeSH D006801
ідентифікатор в Енциклопедії Британніка онлайн topic/human-being
код NLI 000710772
значок Font Awesome 5 solid user.svg
поданий звук голос
частина від Людство
суспільство
біосфера
ідентифікатор Panorama de l'art l-humain
ідентифікатор Католицької енциклопедії 12620b
номер BNF 11934882t
ідентифікатор тезауруса ASC Лейдена 294923772
головний шаблон за темою Шаблон:Особа
Template:Infobox Biography2*
Template:Infobox person/Wikidata*
ідентифікатор NCI Thesaurus C14225
значення в OmegaWiki 2234
постійний дублікат d:Q22828631
код MeSH B01.050.150.900.649.313.988.400.112.400.400
модельний елемент Дуглас Адамс
Марія Склодовська-Кюрі
Леонардо да Вінчі
Жанна д'Арк
Сунь-дзи
Карл Лінней
ідентифікатор теми JSTOR humans
продукція артефакт
жіноча форма language = ittext = umana
language = estext = ser humana
language = eotext = homino
language = iotext = homino
language = pttext = humana
language = frtext = humaine
ідентифікатор US National Archives 10639765
описано у Єврейська енциклопедія Брокгауза та Ефрона*
Біблійна енциклопедія архімандрита Никифора
Енциклопедичний словник Гранат
Католицька енциклопедія*
Енциклопедичний словник Брокгауза і Єфрона
Малий енциклопедичний словник Брокгауза і Єфрона*
зображення Anterior view of human female and male, with labels.svg
ідентифікатор тезауруса PACTOLS pcrtUKPDSjlOdz
ідентифікатор Австралійського освітнього словника scot/1144
ідентифікатор J9U Національної бібліотеки Ізраїлю 987007546070205171
ідентифікатор Freebase /m/0dgw9r
десяткова класифікація Дьюї 128
599.9
ідентифікатор TDV İslam Ansiklopedisi insan
категорія за темою сторінки
робочий список проєкту Вікімедіа Вікіпедія:Статті, які повинні бути в усіх Вікіпедіях
ідентифікатор теми на Quora Humans
чоловіча форма language = iotext = homulo
language = pttext = humano
ідентифікатор NE.se människan
участь у людська діяльність*
ймовірно те саме людина розумна
Адам
тег Archive of Our Own Human
Human being
People
Person
Homo Sapiens
Homo
Humankind
Humans
Mankind
persons
ідентифікатор у Великій каталанській енциклопедії 0187830
загальний код CEFACT ООН IE
позначення Iconclass 3
ідентифікатор OpenAlex C2777938546
C2992909513
C3020439559
ідентифікатор TV Tropes Main/HumansAreIndexed
із використанням штучний фізичний об'єкт*
інструмент
ідентифікатор KBpedia HomoSapiens-asAnimal
тип сутності Wolfram Language Person
ідентифікатор теми на Quora (іспаномовна версія) Ser-humano
складники людський організм*
стаття енциклопедії «Кругосвет» biologiya/chelovek-razumnyi-homo-sapiens
викликає/зумовлює штучний об'єкт*
ідентифікатор NicoNicoPedia ヒト
категорія Вікісховища People
не плутати з народ
вигаданий персонаж*
особа
ідентифікатор Енциклопедії сучасної України онлайн 59900
ідентифікатор елемента FactGrid Q7
наука, що вивчає об'єкт антропологія
Екологія людини
ідентифікатор PSH 2693
ідентифікатор статті Klexikon Mensch
ідентифікатор Giant Bomb 3015-810
має властивість повне ім'я особи
вік людини*
гендер
самосвідомість*
Самосвідомість
особистість
Пресоціальність
perspective-taking*
phase of human life*
людська поведінка*
міжособові стосунки
ідентифікатор Тезауруса ЮНЕСКО concept4084
ідентифікатор Великої данської енциклопедії он-лайн menneske
ідентифікатор BabelNet 00044576n
ідентифікатор теми Zhihu 19551724
ідентифікатор теми ABC News people
human
фізична величина населення
код одиниці вимірювання Wolfram Language "People"
UMLS CUI C0086418
ідентифікатор парламентського тезауруса Великої Британії 92405
ідентифікатор таксона Fossilworks 83088
є одним із група організмів, відома за загальною назвою*
ідентифікатор у Namuwiki 사람
діаграма порівняння розмірів Pioneer plaque.svg
All the Tropes identifier Category:Humans_Are_Indexed
ICD-11 (foundation) 301526589
ідентифікатор GND 4038639-9
AniDB tag ID 942
вимова (аудіофайл) LL-Q13955 (ara)-Spotless Mind1988-إنسان.wav
Ms-MY-Manusia.ogg
точно відповідає http://xmlns.com/foaf/spec/Person
http://erlangen-crm.org/current/E21_Person
схематична ілюстрація Human.svg
фізично взаємодіє з природне довкілля*
людська їжа*
Земля
відео Azalaren kolorea, eboluzioaren margoa.webm
function M.wbview(ref,id)

--допоміжна функція для підпису з Вікіданих, не для виклику з шаблонів

function M.struc(f)

-- Відлагоджувальна функція, має бути перенесена в окремий модуль

--Структуру див. mw:Extension:WikibaseClient/Lua#Entity table and data structure

{aliases = {sr = {1 = {language = sr; value = Modul:Wikibase}}}; claims = {P1889 = {1 = {id = Q8565357$918b2c5c-4e3d-eb7a-66d2-6f634205d33a; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q14936030; numeric-id = 14936030}}; property = P1889; snaktype = value}; rank = normal; type = statement}}; P31 = {1 = {id = q8565357$E8CA5415-37B8-41FD-B0F3-F2AC6B3B4FEA; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q15184295; numeric-id = 15184295}}; property = P31; snaktype = value}; rank = normal; type = statement}}; P921 = {1 = {id = Q8565357$75ff08a2-47e9-5f14-597d-984c2775f5ba; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q29934200; numeric-id = 29934200}}; property = P921; snaktype = value}; rank = normal; type = statement}; 2 = {id = Q8565357$82f93256-4a04-3584-e087-17873efd9ece; mainsnak = {datatype = wikibase-item; datavalue = {type = wikibase-entityid; value = {entity-type = item; id = Q16354758; numeric-id = 16354758}}; property = P921; snaktype = value}; rank = normal; type = statement}}}; descriptions = {an = {language = an; value = lua Modulo}; ar = {language = ar; value = وحدة}; ast = {language = ast; value = módulu de Wikimedia}; ba = {language = ba; value = Модуль}; be-tarask = {language = be-tarask; value = Модуль}; bg = {language = bg; value = Уикимедия модул}; bn = {language = bn; value = উইকিমিডিয়ার মডিউল}; bs = {language = bs; value = lua Modul}; ca = {language = ca; value = Mòdul Lua}; crh-latn = {language = crh-latn; value = lua Modul}; cs = {language = cs; value = lua Modul}; cy = {language = cy; value = lua Modiwl}; da = {language = da; value = lua Modul}; de = {language = de; value = Wikimedia-Modul}; dsb = {language = dsb; value = lua Modul}; dv = {language = dv; value = މޮޑިއުލް}; en = {language = en; value = Wikimedia module}; en-ca = {language = en-ca; value = Wikimedia module}; en-gb = {language = en-gb; value = Wikimedia module}; eo = {language = eo; value = Modulo lua}; es = {language = es; value = módulo de Wikimedia}; et = {language = et; value = lua Moodul}; eu = {language = eu; value = Modulu lua}; fa = {language = fa; value = پودمان}; fr = {language = fr; value = module de Wikimedia}; gl = {language = gl; value = Módulo de Wikipedia}; he = {language = he; value = חידה}; hsb = {language = hsb; value = Modul lua}; hu = {language = hu; value = Modul lua}; id = {language = id; value = modul skrip Lua untuk ekstensi Wikibase}; ilo = {language = ilo; value = modulo ti Lua}; it = {language = it; value = modulo di un progetto Wikimedia}; ja = {language = ja; value = モジュール}; ka = {language = ka; value = მოდული}; ko = {language = ko; value = 모듈}; min = {language = min; value = modul skrip Lua untuak ekstensi Wikibase}; ml = {language = ml; value = വിക്കിമീഡിയ ഘടകം}; ms = {language = ms; value = Modul lua}; nb = {language = nb; value = Modullua}; nl = {language = nl; value = Wikimedia-module}; nn = {language = nn; value = Modul lua}; pl = {language = pl; value = Moduł lua}; pt = {language = pt; value = módulo da Wikimedia}; pt-br = {language = pt-br; value = Módulo lua}; ro = {language = ro; value = modul Wikimedia}; ru = {language = ru; value = Модуль}; sk = {language = sk; value = Modul lua}; sl = {language = sl; value = Modul lua}; sq = {language = sq; value = modul i Wikimedias}; sv = {language = sv; value = Wikimedia-modul}; tr = {language = tr; value = Modül lua}; uk = {language = uk; value = Модуль}; vi = {language = vi; value = module Wikimedia}; yue = {language = yue; value = 模組}; zh = {language = zh; value = Lua模組}; zh-hans = {language = zh-hans; value = 用于Wikibase扩展的Lua模块}; zh-hant = {language = zh-hant; value = Lua 模組}}; id = Q8565357; labels = {af = {language = af; value = Module:Wikibase}; alt = {language = alt; value = Модуль:Wikibase}; ar = {language = ar; value = وحدة:Wikibase}; ary = {language = ary; value = وحدة:Wikibase}; as = {language = as; value = Module:Wikibase}; ast = {language = ast; value = Módulu:Wikibase}; az = {language = az; value = Module:Wikibase}; ba = {language = ba; value = Модуль:Wikibase}; ban = {language = ban; value = Modul:Wikibase}; be = {language = be; value = Модуль:Wikibase}; be-tarask = {language = be-tarask; value = Модуль:Wikibase}; bg = {language = bg; value = Module:Wikibase}; bho = {language = bho; value = Module:Wikibase}; bn = {language = bn; value = মডিউল:উইকিবেস}; bs = {language = bs; value = Modul:Wikibase}; ca = {language = ca; value = Wikibase}; cdo = {language = cdo; value = 模組:Wikibase}; ce = {language = ce; value = Модуль:Wikibase}; ckb = {language = ckb; value = مۆدیوول:Wikibase}; cs = {language = cs; value = Modul:Wikibase}; cv = {language = cv; value = Модуль:Wikibase}; cy = {language = cy; value = Modiwl:Wikibase}; da = {language = da; value = Modul:Wikibase}; dag = {language = dag; value = Module:Wikibase}; de = {language = de; value = Module:Wikibase}; din = {language = din; value = Mukääcëtök:Wikibase}; el = {language = el; value = Module:Wikibase}; en = {language = en; value = Module:Wikibase}; en-ca = {language = en-ca; value = Module:Wikibase}; en-gb = {language = en-gb; value = Module:Wikibase}; eo = {language = eo; value = Modulo:Wikibase}; es = {language = es; value = Wikibase}; et = {language = et; value = Moodul:Wikibase}; eu = {language = eu; value = Modulu:Wikibase}; fa = {language = fa; value = پودمان:Wikibase}; fi = {language = fi; value = Module:Wikibase}; fo = {language = fo; value = Module:Wikibase}; fr = {language = fr; value = Module:Wikibase}; ga = {language = ga; value = Module:Wikibase}; gl = {language = gl; value = Wikibase}; gsw = {language = gsw; value = Modul:Wikibase}; gu = {language = gu; value = વિભાગ:Wikibase}; hak = {language = hak; value = 模組:Wikibase}; hi = {language = hi; value = Module:Wikibase}; hu = {language = hu; value = Modul:Wikibase}; hy = {language = hy; value = Մոդուլ:Wikibase}; hyw = {language = hyw; value = Մոդուլ:Wikibase}; id = {language = id; value = Module:Wikibase}; ilo = {language = ilo; value = Modulo:Wikibase}; inh = {language = inh; value = Модуль:Wikibase}; it = {language = it; value = Modulo:Wikibase}; ja = {language = ja; value = モジュール:Wikibase}; jv = {language = jv; value = Modhul:Wikibase}; kab = {language = kab; value = Module:Wikibase}; kk = {language = kk; value = Module:Wikibase}; kn = {language = kn; value = ಮಾಡ್ಯೂಲ್:Wikibase}; ko = {language = ko; value = 모듈:Wikibase}; krc = {language = krc; value = Модуль:Wikibase}; ku = {language = ku; value = Module:Wikibase}; lb = {language = lb; value = Modul:Wikibase}; lez = {language = lez; value = Модуль:Wikibase}; lv = {language = lv; value = Modulis:Wikibase}; mai = {language = mai; value = मोड्युल:Wikibase}; mdf = {language = mdf; value = Модуль:Wikibase}; min = {language = min; value = Module:Wikibase}; mk = {language = mk; value = Модул:Wikibase}; ml = {language = ml; value = ഘടകം:Wikibase}; mr = {language = mr; value = विभाग:Wikibase}; my = {language = my; value = Module:Wikibase}; nah = {language = nah; value = Módulo:Wikibase}; nan = {language = nan; value = 模組:Wikibase}; nap = {language = nap; value = Modulo:Wikibase}; nb = {language = nb; value = Modul:Wikibase signature}; nl = {language = nl; value = Module:Wikibase}; or = {language = or; value = Module:Wikibase}; os = {language = os; value = Модуль:Wikibase}; pl = {language = pl; value = Moduł:Wikibase}; pt = {language = pt; value = Módulo:Wikibase}; pt-br = {language = pt-br; value = Módulo:Wikibase}; qu = {language = qu; value = Módulo:Wikibase}; ro = {language = ro; value = Modul:Wikibase}; ru = {language = ru; value = Модуль:Wikibase}; sah = {language = sah; value = Модуль:Wikibase}; sco = {language = sco; value = Module:Wikibase}; si = {language = si; value = Module:Wikibase}; sl = {language = sl; value = Modul:Wikibase}; sq = {language = sq; value = Moduli:Wikibase}; sr = {language = sr; value = Модул:Wikibase}; sr-ec = {language = sr-ec; value = Модул:Wikibase}; sr-el = {language = sr-el; value = Modul:Wikibase}; ss = {language = ss; value = Module:Wikibase}; sv = {language = sv; value = Modul:Wikibase}; ta = {language = ta; value = Module:Wikibase}; te = {language = te; value = మాడ్యూల్:Wikibase}; tg = {language = tg; value = Модул:Wikibase}; th = {language = th; value = มอดูล:Wikibase}; ti = {language = ti; value = ሞድዩል:Wikibase}; tl = {language = tl; value = Module:Wikibase}; tr = {language = tr; value = Modül:Wikibase}; ts = {language = ts; value = Module:Wikibase}; tt = {language = tt; value = Модуль:Wikibase}; uk = {language = uk; value = Модуль:Wikibase}; ur = {language = ur; value = ماڈیول:Wikibase}; uz = {language = uz; value = Module:Wikibase}; vec = {language = vec; value = Modulo:Wikibase}; vi = {language = vi; value = Mô đun:Wikibase}; wuu = {language = wuu; value = 模块:Wikibase}; yue = {language = yue; value = 模組:Wikibase}; zh = {language = zh; value = Module:Wikibase}; zh-hans = {language = zh-hans; value = 模块:Wikibase}; zh-hant = {language = zh-hant; value = 模組:Wikibase}}; schemaVersion = 2; sitelinks = {afwiki = {badges = {}; site = afwiki; title = Module:Wikibase}; alswiki = {badges = {}; site = alswiki; title = Modul:Wikibase}; altwiki = {badges = {}; site = altwiki; title = Модуль:Wikibase}; arwiki = {badges = {}; site = arwiki; title = وحدة:Wikibase}; arwikiquote = {badges = {}; site = arwikiquote; title = وحدة:Wikibase}; arwikisource = {badges = {}; site = arwikisource; title = وحدة:Wikibase}; arwikiversity = {badges = {}; site = arwikiversity; title = وحدة:Wikibase}; arywiki = {badges = {}; site = arywiki; title = وحدة:Wikibase}; astwiki = {badges = {}; site = astwiki; title = Módulu:Wikibase}; aswikisource = {badges = {}; site = aswikisource; title = Module:Wikibase}; azwiki = {badges = {}; site = azwiki; title = Modul:Wikibase}; banwiki = {badges = {}; site = banwiki; title = Modul:Wikibase}; banwikisource = {badges = {}; site = banwikisource; title = Modul:Wikibase}; bawiki = {badges = {}; site = bawiki; title = Модуль:Wikibase}; be_x_oldwiki = {badges = {}; site = be_x_oldwiki; title = Модуль:Wikibase}; bewiki = {badges = {}; site = bewiki; title = Модуль:Wikibase}; bewikisource = {badges = {}; site = bewikisource; title = Модуль:Wikibase}; bgwiki = {badges = {}; site = bgwiki; title = Модул:Wikibase}; bhwiki = {badges = {}; site = bhwiki; title = Module:Wikibase}; bnwiki = {badges = {}; site = bnwiki; title = মডিউল:উইকিবেস}; bnwikisource = {badges = {}; site = bnwikisource; title = মডিউল:Wikibase}; bnwikivoyage = {badges = {}; site = bnwikivoyage; title = মডিউল:Wikibase}; bswiki = {badges = {}; site = bswiki; title = Modul:Wikibase}; cawiki = {badges = {}; site = cawiki; title = Mòdul:Wikibase}; cawikibooks = {badges = {}; site = cawikibooks; title = Mòdul:Wikibase}; cawikiquote = {badges = {}; site = cawikiquote; title = Mòdul:Wikibase}; cdowiki = {badges = {}; site = cdowiki; title = 模組:Wikibase}; cewiki = {badges = {}; site = cewiki; title = Модуль:Wikibase}; ckbwiki = {badges = {}; site = ckbwiki; title = مۆدیوول:Wikibase}; cvwiki = {badges = {}; site = cvwiki; title = Модуль:Wikibase}; cywiki = {badges = {}; site = cywiki; title = Modiwl:Wikibase}; dagwiki = {badges = {}; site = dagwiki; title = Module:Wikibase}; dawiki = {badges = {}; site = dawiki; title = Modul:Wikibase}; dewiki = {badges = {}; site = dewiki; title = Modul:Wikibase}; dinwiki = {badges = {}; site = dinwiki; title = Mukääcëtök:Wikibase}; elwiki = {badges = {}; site = elwiki; title = Module:Wikibase}; enwikibooks = {badges = {}; site = enwikibooks; title = Module:Wikibase}; enwikisource = {badges = {}; site = enwikisource; title = Module:Wikibase}; enwikiversity = {badges = {}; site = enwikiversity; title = Module:Wikibase}; enwikivoyage = {badges = {}; site = enwikivoyage; title = Module:Wikibase}; enwiktionary = {badges = {}; site = enwiktionary; title = Module:Wikibase}; eowiki = {badges = {}; site = eowiki; title = Modulo:Wikibase}; eowikisource = {badges = {}; site = eowikisource; title = Modulo:Wikibase}; eswiki = {badges = {}; site = eswiki; title = Módulo:Wikibase}; eswikinews = {badges = {}; site = eswikinews; title = Módulo:Wikibase}; eswikiquote = {badges = {}; site = eswikiquote; title = Módulo:Wikibase}; eswikisource = {badges = {}; site = eswikisource; title = Módulo:Wikibase}; eswikivoyage = {badges = {}; site = eswikivoyage; title = Módulo:Wikibase}; etwikiquote = {badges = {}; site = etwikiquote; title = Moodul:Wikibase}; euwiki = {badges = {}; site = euwiki; title = Modulu:Wikibase}; euwikibooks = {badges = {}; site = euwikibooks; title = Modulu:Wikibase}; fawiki = {badges = {}; site = fawiki; title = پودمان:Wikibase}; fawikivoyage = {badges = {}; site = fawikivoyage; title = پودمان:Wikibase}; fiwiki = {badges = {}; site = fiwiki; title = Moduuli:Wikibase}; fiwikibooks = {badges = {}; site = fiwikibooks; title = Moduuli:Wikibase}; fiwikinews = {badges = {}; site = fiwikinews; title = Moduuli:Wikibase}; fiwikiquote = {badges = {}; site = fiwikiquote; title = Moduuli:Wikibase}; fiwikisource = {badges = {}; site = fiwikisource; title = Moduuli:Wikibase}; fiwikiversity = {badges = {}; site = fiwikiversity; title = Moduuli:Wikibase}; fiwikivoyage = {badges = {}; site = fiwikivoyage; title = Moduuli:Wikibase}; fiwiktionary = {badges = {}; site = fiwiktionary; title = Moduuli:Wikibase}; fowiki = {badges = {}; site = fowiki; title = Module:Wikibase}; frwikisource = {badges = {}; site = frwikisource; title = Module:Wikibase}; frwikivoyage = {badges = {}; site = frwikivoyage; title = Module:Wikibase}; gawiki = {badges = {}; site = gawiki; title = Module:Wikibase}; glwiki = {badges = {}; site = glwiki; title = Módulo:Wikibase}; guwiki = {badges = {}; site = guwiki; title = વિભાગ:Wikibase}; hakwiki = {badges = {}; site = hakwiki; title = 模組:Wikibase}; hiwikivoyage = {badges = {}; site = hiwikivoyage; title = Module:Wikibase}; huwiki = {badges = {}; site = huwiki; title = Modul:Wikibase}; huwikisource = {badges = {}; site = huwikisource; title = Modul:Wikibase}; hywiki = {badges = {}; site = hywiki; title = Մոդուլ:Wikibase}; hywwiki = {badges = {}; site = hywwiki; title = Մոդուլ:Wikibase}; idwiki = {badges = {}; site = idwiki; title = Modul:Wikibase}; idwikisource = {badges = {}; site = idwikisource; title = Modul:Wikibase}; inhwiki = {badges = {}; site = inhwiki; title = Модуль:Wikibase}; itwikisource = {badges = {}; site = itwikisource; title = Modulo:Wikibase}; itwikivoyage = {badges = {}; site = itwikivoyage; title = Modulo:Wikibase}; jawiki = {badges = {}; site = jawiki; title = モジュール:Wikibase}; jawikivoyage = {badges = {}; site = jawikivoyage; title = モジュール:Wikibase}; jvwiki = {badges = {}; site = jvwiki; title = Modhul:Wikibase}; jvwikisource = {badges = {}; site = jvwikisource; title = Modhul:Wikibase}; kabwiki = {badges = {}; site = kabwiki; title = Module:Wikibase}; kkwiki = {badges = {}; site = kkwiki; title = Module:Wikibase}; knwiki = {badges = {}; site = knwiki; title = ಮಾಡ್ಯೂಲ್:Wikibase}; kowiki = {badges = {}; site = kowiki; title = 모듈:Wikibase}; kowikisource = {badges = {}; site = kowikisource; title = 모듈:Wikibase}; krcwiki = {badges = {}; site = krcwiki; title = Модуль:Wikibase}; kuwiki = {badges = {}; site = kuwiki; title = Modul:Wikibase}; lbwiki = {badges = {}; site = lbwiki; title = Modul:Wikibase}; lezwiki = {badges = {}; site = lezwiki; title = Модуль:Wikibase}; lvwiki = {badges = {}; site = lvwiki; title = Modulis:Wikibase}; maiwiki = {badges = {}; site = maiwiki; title = मोड्युल:Wikibase}; mdfwiki = {badges = {}; site = mdfwiki; title = Модуль:Wikibase}; mediawikiwiki = {badges = {}; site = mediawikiwiki; title = Module:Wikibase}; metawiki = {badges = {}; site = metawiki; title = Module:Wikibase}; mkwiki = {badges = {}; site = mkwiki; title = Модул:Wikibase}; mrwiki = {badges = {}; site = mrwiki; title = विभाग:Wikibase}; mywiki = {badges = {}; site = mywiki; title = မော်ဂျူး:Wikibase}; nahwiki = {badges = {}; site = nahwiki; title = Módulo:Wikibase}; napwikisource = {badges = {}; site = napwikisource; title = Modulo:Wikibase}; nlwiki = {badges = {}; site = nlwiki; title = Module:Wikibase}; nlwikivoyage = {badges = {}; site = nlwikivoyage; title = Module:Wikibase}; nlwiktionary = {badges = {}; site = nlwiktionary; title = Module:Wikibase}; nowiki = {badges = {}; site = nowiki; title = Modul:Wikibase signature}; orwiki = {badges = {}; site = orwiki; title = ମଡ୍ୟୁଲ:Wikibase}; orwikisource = {badges = {}; site = orwikisource; title = ମଡ୍ୟୁଲ:Wikibase}; oswiki = {badges = {}; site = oswiki; title = Модуль:Wikibase}; plwikisource = {badges = {}; site = plwikisource; title = Moduł:Wikibase}; ptwiki = {badges = {}; site = ptwiki; title = Módulo:Wikibase}; ptwikisource = {badges = {}; site = ptwikisource; title = Módulo:Wikibase}; ptwikivoyage = {badges = {}; site = ptwikivoyage; title = Módulo:Wikibase}; quwiki = {badges = {}; site = quwiki; title = Módulo:Wikibase}; rowiki = {badges = {}; site = rowiki; title = Modul:Wikibase}; ruwiki = {badges = {}; site = ruwiki; title = Модуль:Wikibase}; ruwikinews = {badges = {}; site = ruwikinews; title = Модуль:Wikibase}; ruwikiquote = {badges = {}; site = ruwikiquote; title = Модуль:Wikibase}; ruwikivoyage = {badges = {}; site = ruwikivoyage; title = Модуль:Wikibase}; sahwiki = {badges = {}; site = sahwiki; title = Модуль:Wikibase}; scowiki = {badges = {}; site = scowiki; title = Module:Wikibase}; simplewiki = {badges = {}; site = simplewiki; title = Module:Wikibase}; siwiki = {badges = {}; site = siwiki; title = Module:Wikibase}; slwiki = {badges = {}; site = slwiki; title = Modul:Wikibase}; sqwiki = {badges = {}; site = sqwiki; title = Moduli:Wikibase}; srwiki = {badges = {}; site = srwiki; title = Модул:Wikibase}; srwikisource = {badges = {}; site = srwikisource; title = Модул:Wikibase}; sswiki = {badges = {}; site = sswiki; title = Module:Wikibase}; svwikivoyage = {badges = {}; site = svwikivoyage; title = Modul:Wikibase}; tawiki = {badges = {}; site = tawiki; title = Module:Wikibase}; tewiki = {badges = {}; site = tewiki; title = మాడ్యూల్:Wikibase}; tgwiki = {badges = {}; site = tgwiki; title = Модул:Wikibase}; thwikisource = {badges = {}; site = thwikisource; title = มอดูล:Wikibase}; tiwiki = {badges = {}; site = tiwiki; title = ሞድዩል:Wikibase}; tlwiki = {badges = {}; site = tlwiki; title = Module:Wikibase}; trwiki = {badges = {}; site = trwiki; title = Modül:Wikibase}; trwikisource = {badges = {}; site = trwikisource; title = Modül:Wikibase}; tswiki = {badges = {}; site = tswiki; title = Module:Wikibase}; ttwiki = {badges = {}; site = ttwiki; title = Модуль:Wikibase}; ukwiki = {badges = {}; site = ukwiki; title = Модуль:Wikibase}; ukwikibooks = {badges = {}; site = ukwikibooks; title = Модуль:Wikibase}; ukwikisource = {badges = {}; site = ukwikisource; title = Модуль:Wikibase}; ukwikivoyage = {badges = {}; site = ukwikivoyage; title = Модуль:Wikibase}; urwiki = {badges = {}; site = urwiki; title = ماڈیول:Wikibase}; uzwiki = {badges = {}; site = uzwiki; title = Module:Wikibase}; vecwiki = {badges = {}; site = vecwiki; title = Modulo:Wikibase}; viwiki = {badges = {}; site = viwiki; title = Mô đun:Wikibase}; viwikisource = {badges = {}; site = viwikisource; title = Mô đun:Wikibase}; viwikivoyage = {badges = {}; site = viwikivoyage; title = Mô đun:Wikibase}; wikidatawiki = {badges = {}; site = wikidatawiki; title = Module:Wikibase}; wuuwiki = {badges = {}; site = wuuwiki; title = 模块:Wikibase}; zh_min_nanwiki = {badges = {}; site = zh_min_nanwiki; title = 模組:Wikibase}; zh_yuewiki = {badges = {}; site = zh_yuewiki; title = 模組:Wikibase}; zhwiki = {badges = {}; site = zhwiki; title = Module:Wikibase}; zhwikisource = {badges = {}; site = zhwikisource; title = Module:Wikibase}; zhwikivoyage = {badges = {}; site = zhwikivoyage; title = Module:Wikibase}; zhwiktionary = {badges = {}; site = zhwiktionary; title = Module:Wikibase}}; type = item}
-- Модуль для функціонала Вікіданих
local M={};

local function tabletostr(t,fmt,s,o,c)--не для використання на сторінках
    if type(t)=="table" then
            local f={};
            for k,v in pairs(t) do
                table.insert(f,string.format(fmt or '%s = %s',k,tabletostr(v,fmt,s,o,c)))
            end;
            table.sort(f);
            return (o or '')..table.concat(f, s or '')..(c or '')
        else return tostring(t)
        end
end

function M.wbview(ref,id)--допоміжна функція для підпису з Вікіданих
    local l=mw.wikibase.label(id);
    return l and ( l==ref and l or ref..'|'..l..(mw.ustring.lower(l)==mw.ustring.lower(ref) and '' or '<sup>*</sup>') ) or ref
end

function M.id(f)-- Елемент поточної сторінки на Вікіданих
    --Якщо викликаний із параметром, дістає id значення данної властивості, інакше повертає id сторінки
    --Другий параметр - роздільник, якщо значень кілька ("; " за замовчуванням),
    -- або можна вказати номер параметром n. Третій параметр - формат для строкової властивості,
    -- за замовчуванням "%s"
    local function try()
	    local e = mw.wikibase.getEntityObject();        
	    if f.args[1] then
			local function gv(i)
				local z=e.claims[f.args[1]][i].mainsnak.datavalue;
				if z.type == 'wikibase-entityid' then
					return 'Q'..z.value['numeric-id']
				else
					return string.format(f.args[3] or '%s',tabletostr(z.value,"%s",'; ','{','}'))
				end
			end
			if f.args['n'] then
				return gv(tonumber(f.args['n']))
			end
			local p,h = e.claims[f.args[1]],{}
	        for n,v in pairs(p) do
				h[n] = gv(n)
			end
			return table.concat(h,f.args[2] or "; ")
		else 
			return e.id
		end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.struc(f)-- Відлагоджувальна функція, має бути перенесена в окремий модуль
    --Структуру див. [[mw:Extension:WikibaseClient/Lua#Entity table and data structure]]
    local function try()
    	local i,e = 1,mw.wikibase.getEntityObject();
	    while f.args[i] do
	        e = e[ f.args[i] ] or e[ tonumber(f.args[i]) ];
	        i = i+1
	    end
		return tabletostr(e,f.args['f'],f.args['s'] or '; ','{','}')
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.label(f)--Коментар до елементу Вікіданих у 1-му параметрі
    local function try()
	    local id = f.args[1];
	    if not id or id == '' then
	    	id = mw.wikibase.getEntityObject().id; -- error, якщо нема елемента
    	end
	    return mw.wikibase.label(id);
    end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.labelq(f)
	local id = f.args[1]
	local entity = mw.wikibase.getEntity(id)
	if entity and entity.labels then
		local label = entity.labels['uk']
		if label then
			return '[[:d:'..id..'|'..label.value..' <small>('..id..')</small>]]'
		     else
			return '[[:d:'..id..'|'..entity.labels['en'].value..' <small>(in English; '..id..')</small>]]'
		end
	end
end

function M.labelp(f)
	local id = f.args[1]
	local entity = mw.wikibase.getEntity(id)
	if entity and entity.labels then
		local label = entity.labels['uk']
		if label then
			return '[[:d:Property:'..id..'|'..label.value..' <small>('..id..')</small>]]'
		     else
			return '[[:d:Property:'..id..'|'..entity.labels['en'].value..' <small>(in English; '..id..')</small>]]'
		end
	end
end

function M.iwiki(f)-- Інтервікі для вказаної мови (лише з ВД)
    local function try()
	    if f.args[1] then
	        return mw.wikibase.getEntityObject().sitelinks[f.args[1]..'wiki'].title
	    else-- список інтервік
	        local r={};
	        for k,v in pairs( mw.wikibase.getEntityObject().sitelinks ) do
	            table.insert( r, string.format(f.args['f'] or "* [[:%s:%s]]\n", v.language, v.title) )
	        end
	        return table.concat(r)
	    end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.iwikiall(f)-- Усі посилання, прив'язані до елементу на ВД, у т.ч. Вікігід та Сховище
	local function try()
	    if f.args[1] then
	        return mw.wikibase.getEntityObject().sitelinks[f.args[1]].title
	    else-- список інтервік
	        local r={};
	        for k,v in pairs( mw.wikibase.getEntityObject().sitelinks ) do
	            table.insert( r, string.format(f.args['f'] or "* [[:%s:%s]]\n", v.language, v.title) )
	        end
	        return table.concat(r)
	    end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.page(f)-- сторінка Укрвікі (треба перевірити) для даного елемента
    local function try()
		return mw.wikibase.sitelink(f.args[1])
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

  -- mw.wikibase.getEntityIdForTitle( pageTitle, globalSiteId ) — qid за назвою сторінки
function M.titleid(f) -- args[1] = pageTitle; args[2] = globalSiteId ( 'ukwiki' default )
	local function try()
	    if f.args[1] and mw.text.trim( f.args[1] ) ~='' then
	        return mw.wikibase.getEntityIdForTitle( mw.text.trim( f.args[1] ), '' and f.args[2] and mw.text.trim( f.args[2] ) )
	    end
	end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

function M.wdprops(f)-- список усіх властивостей із ВД у вигляді, придатному для читання людиною
    local function try()
	    local e,r = mw.wikibase.getEntityObject(),{};
	    for p,a in pairs(e.claims) do
	        local label = mw.wikibase.label(p) or string.format([[d:%s]],p);
	        local vals = {};
	        for n,v in pairs(a) do
	            local w=v.mainsnak.datavalue;
	            vals[n]=(
	                w.type=='wikibase-entityid'
	                and '[['.. M.wbview(
	                    mw.wikibase.sitelink('Q'..w.value['numeric-id'])
	                    or 'd:Q'..w.value['numeric-id'],
	                    'Q'..w.value['numeric-id']
	                )..']]' or tabletostr(w.value)
	            )
	        end
	        table.insert(r, string.format(
	            f.args['f'] or '\n|-\n|rowspan=%i|%s\n|%s',
	            #vals,
	            label,
	            table.concat(vals,f.args['s'] or '\n|-\n|')
	            )
	        )
	    end--for
    	return table.concat(r)
    end
	local r, result = pcall(try);
    if r then
    	return result;
    else
    	return '';
    end
end

return M