<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWD</id>
	<title>Модуль:WD - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWD"/>
	<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WD&amp;action=history"/>
	<updated>2026-04-08T20:56:42Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WD&amp;diff=3791&amp;oldid=prev</id>
		<title>Импортёр: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WD&amp;diff=3791&amp;oldid=prev"/>
		<updated>2024-05-01T09:05:05Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:05, 1 мая 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Импортёр</name></author>
	</entry>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WD&amp;diff=3790&amp;oldid=prev</id>
		<title>ru&gt;Andras: Новая страница: «local wd = { -- ---------------------------------------------------------------------------------------------------------- -- Константы ET_xxx	(entity types) -- ET_ITEM       = &quot;item&quot;, ET_PROPERTY   = &quot;property&quot;, ET_STATEMENT  = &quot;statement&quot;, -- ---------------------------------------------------------------------------------------------------------- -- Константы DT_xxx	(data types) -- DT_ITEM       = &quot;wikibase-item&quot;,        --  &quot;datavalue&quot;:...»</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WD&amp;diff=3790&amp;oldid=prev"/>
		<updated>2023-05-19T14:15:59Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local wd = { -- ---------------------------------------------------------------------------------------------------------- -- Константы ET_xxx	(entity types) -- ET_ITEM       = &amp;quot;item&amp;quot;, ET_PROPERTY   = &amp;quot;property&amp;quot;, ET_STATEMENT  = &amp;quot;statement&amp;quot;, -- ---------------------------------------------------------------------------------------------------------- -- Константы DT_xxx	(data types) -- DT_ITEM       = &amp;quot;wikibase-item&amp;quot;,        --  &amp;quot;datavalue&amp;quot;:...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local wd = {&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы ET_xxx	(entity types)&lt;br /&gt;
--&lt;br /&gt;
ET_ITEM       = &amp;quot;item&amp;quot;,&lt;br /&gt;
ET_PROPERTY   = &amp;quot;property&amp;quot;,&lt;br /&gt;
ET_STATEMENT  = &amp;quot;statement&amp;quot;,&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы DT_xxx	(data types)&lt;br /&gt;
--&lt;br /&gt;
DT_ITEM       = &amp;quot;wikibase-item&amp;quot;,        --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: { &amp;quot;numeric-id&amp;quot;: 1551807, &amp;quot;entity-type&amp;quot;: &amp;quot;item&amp;quot; }, &amp;quot;type&amp;quot;: &amp;quot;wikibase-entityid&amp;quot; }&lt;br /&gt;
DT_PROPERTY   = &amp;quot;wikibase-property&amp;quot;,    --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: { &amp;quot;numeric-id&amp;quot;: 1753, &amp;quot;entity-type&amp;quot;: &amp;quot;property&amp;quot; }, &amp;quot;type&amp;quot;: &amp;quot;wikibase-entityid&amp;quot; }&lt;br /&gt;
DT_DATETIME   = &amp;quot;time&amp;quot;,                 --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: { &amp;quot;before&amp;quot;: 0, &amp;quot;time&amp;quot;: &amp;quot;+2013-10-28T00:00:00Z&amp;quot;, &amp;quot;timezone&amp;quot;: 0, &amp;quot;precision&amp;quot;: 11, &amp;quot;after&amp;quot;: 0,&lt;br /&gt;
                                        --                            &amp;quot;calendarmodel&amp;quot;: &amp;quot;http://www.wikidata.org/entity/Q1985727&amp;quot;},&lt;br /&gt;
                                        --                 &amp;quot;type&amp;quot;: &amp;quot;time&amp;quot;}&lt;br /&gt;
DT_COMMONS    = &amp;quot;commonsMedia&amp;quot;,         --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: &amp;quot;Turgenev by Repin.jpg&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; }, &amp;quot;datatype&amp;quot;: &amp;quot;commonsMedia&amp;quot; }&lt;br /&gt;
DT_STRING     = &amp;quot;string&amp;quot;,               --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: &amp;quot;/m/04j_pj&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; }&lt;br /&gt;
DT_URL        = &amp;quot;url&amp;quot;,                  --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: &amp;quot;http://www.acme.com/&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; }&lt;br /&gt;
DT_ML_STRING  = &amp;quot;monolingualtext&amp;quot;,      --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: { &amp;quot;language&amp;quot;: &amp;quot;ru&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Накануне&amp;quot; }, &amp;quot;type&amp;quot;: &amp;quot;monolingualtext&amp;quot; }&lt;br /&gt;
DT_COORD      = &amp;quot;globe-coordinate&amp;quot;,     --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: { &amp;quot;longitude&amp;quot;: 30.352547, &amp;quot;precision&amp;quot;: 1e-05,&lt;br /&gt;
                                        --                            &amp;quot;globe&amp;quot;: &amp;quot;http://www.wikidata.org/entity/Q2&amp;quot;, &amp;quot;latitude&amp;quot;: 59.943044 },&lt;br /&gt;
                                        --                 &amp;quot;type&amp;quot;: &amp;quot;globecoordinate&amp;quot; }&lt;br /&gt;
DT_QUANTITY   = &amp;quot;quantity&amp;quot;,             --  &amp;quot;datavalue&amp;quot;: { &amp;quot;value&amp;quot;: { &amp;quot;amount&amp;quot;: &amp;quot;+103&amp;quot;, &amp;quot;upperBound&amp;quot;: &amp;quot;+104&amp;quot;, &amp;quot;lowerBound&amp;quot;: &amp;quot;+102&amp;quot;,&lt;br /&gt;
                                        --                            &amp;quot;unit&amp;quot;: &amp;quot;http://www.wikidata.org/entity/Q42289&amp;quot; },&lt;br /&gt;
                                        --                 &amp;quot;type&amp;quot;: &amp;quot;quantity&amp;quot; }&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы VT_xxx	(value types)&lt;br /&gt;
--&lt;br /&gt;
VT_ENTITY_ID  = &amp;quot;wikibase-entityid&amp;quot;,   -- используется для DT_ITEM и DT_PROPERTY&lt;br /&gt;
VT_DATETIME   = &amp;quot;time&amp;quot;,                -- используется для DT_DATETIME&lt;br /&gt;
VT_COORD      = &amp;quot;globecoordinate&amp;quot;,     -- используется для DT_COORD&lt;br /&gt;
VT_STRING     = &amp;quot;string&amp;quot;,              -- используется для DT_STRING, DT_URL и DT_COMMONS&lt;br /&gt;
VT_ML_STRING  = &amp;quot;monolingualtext&amp;quot;,     -- используется для DT_ML_STRING&lt;br /&gt;
VT_QUANTITY   = &amp;quot;quantity&amp;quot;,            -- используется для DT_QUANTITY&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы ST_xxx	(snak types)&lt;br /&gt;
--&lt;br /&gt;
ST_VALUE     = &amp;quot;value&amp;quot;,        -- &amp;quot;конкретное значение&amp;quot;&lt;br /&gt;
ST_UNKNOWN   = &amp;quot;somevalue&amp;quot;,    -- &amp;quot;значение неизвестно&amp;quot;&lt;br /&gt;
ST_NO_VALUE  = &amp;quot;novalue&amp;quot;,      -- &amp;quot;значение отсутствует&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы RANK_xxx	(ranks)&lt;br /&gt;
--&lt;br /&gt;
RANK_NORNAL      = &amp;quot;normal&amp;quot;,       -- &amp;quot;нормальный ранг&amp;quot;&lt;br /&gt;
RANK_PREFERRED   = &amp;quot;preferred&amp;quot;,    -- &amp;quot;предпочтительный ранг&amp;quot;&lt;br /&gt;
RANK_DEPRECATED  = &amp;quot;deprecated&amp;quot;,   -- &amp;quot;нерекомендуемый ранг&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы TP_xxx	(time precision)&lt;br /&gt;
--&lt;br /&gt;
TP_10E8_YEARS  =  1,   -- 100 млн лет&lt;br /&gt;
TP_10E7_YEARS  =  2,   -- 10 млн лет&lt;br /&gt;
TP_10E6_YEARS  =  3,   -- 1 млн лет&lt;br /&gt;
TP_10E5_YEARS  =  4,   -- 100 тыс лет&lt;br /&gt;
TP_10E4_YEARS  =  5,   -- 10 тыс лет&lt;br /&gt;
TP_10E3_YEARS  =  6,   -- 1 тыс лет&lt;br /&gt;
TP_CENTURY     =  7,   -- 100 лет&lt;br /&gt;
TP_DECADE      =  8,   -- 10 лет&lt;br /&gt;
TP_YEAR        =  9,   -- 1 год&lt;br /&gt;
TP_MONTH       = 10,   -- 1 месяц&lt;br /&gt;
TP_DAY         = 11,   -- 1 день&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы CM_xxx	(calendar model)&lt;br /&gt;
--&lt;br /&gt;
CM_GREGORIAN  = &amp;quot;http://www.wikidata.org/entity/Q1985727&amp;quot;,  -- пролептический григорианский календарь&lt;br /&gt;
CM_JULIAN     = &amp;quot;http://www.wikidata.org/entity/Q1985786&amp;quot;,  -- пролептический юлианский календарь&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константа GLOBE_xxx	(небесное тело, к которому относятся координаты)&lt;br /&gt;
--&lt;br /&gt;
GLOBE_EARTH   = &amp;quot;http://www.wikidata.org/entity/Q2&amp;quot;,    -- Земля&lt;br /&gt;
GLOBE_MOON    = &amp;quot;http://www.wikidata.org/entity/Q405&amp;quot;   -- Луна&lt;br /&gt;
--&lt;br /&gt;
};&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Константы&lt;br /&gt;
--&lt;br /&gt;
local LANG_EN = &amp;quot;en&amp;quot;;&lt;br /&gt;
local MSG_NO_LABEL = &amp;quot;нет метки&amp;quot;;&lt;br /&gt;
local MSG_NO_DESCRIPTION = &amp;quot;нет описания&amp;quot;;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Сообщения об ошибках&lt;br /&gt;
--&lt;br /&gt;
local ERRMSG_PROPERTY_NOT_FOUND = &amp;quot;свойство %s не найдено&amp;quot;;&lt;br /&gt;
local ERRMSG_ITEM_NOT_FOUND = &amp;quot;элемент %s не найден&amp;quot;;&lt;br /&gt;
local ERRMSG_ENTITY_NOT_FOUND = &amp;quot;сущность %s не найдена&amp;quot;;&lt;br /&gt;
local ERRMSG_CLAIM_NOT_FOUND = &amp;quot;%s не имеет %s&amp;quot;;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
function wd.is_property(entity)&lt;br /&gt;
  return (entity ~= nil) and (entity[&amp;quot;type&amp;quot;] == wd.ET_PROPERTY);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.is_item(entity)&lt;br /&gt;
  return (entity ~= nil) and (entity[&amp;quot;type&amp;quot;] == wd.ET_ITEM);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.is_statement(statement)&lt;br /&gt;
  return (statement ~= nil) and (statement[&amp;quot;type&amp;quot;] == wd.ET_STATEMENT);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.get_statement_value(statement, s_datatype, s_value_type)&lt;br /&gt;
  if statement == nil then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  local snak = statement[&amp;quot;mainsnak&amp;quot;];&lt;br /&gt;
  if (snak == nil) or (snak[&amp;quot;datatype&amp;quot;] ~= s_datatype) or (snak[&amp;quot;snaktype&amp;quot;] ~= wd.ST_VALUE) then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  local datavalue = snak[&amp;quot;datavalue&amp;quot;];&lt;br /&gt;
  if (datavalue == nil) or (datavalue[&amp;quot;type&amp;quot;] ~= s_value_type) then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  return datavalue[&amp;quot;value&amp;quot;];&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.get_item_id(statement)&lt;br /&gt;
  local value = wd.get_statement_value(statement, wd.DT_ITEM, wd.VT_ENTITY_ID);&lt;br /&gt;
  if (value == nil) or (value[&amp;quot;entity-type&amp;quot;] ~= wd.ET_ITEM) then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  return value[&amp;quot;numeric-id&amp;quot;];&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.get_item_qid(statement)&lt;br /&gt;
  local n_id = wd.get_item_id(statement);&lt;br /&gt;
  if n_id == nil then&lt;br /&gt;
    return nil;&lt;br /&gt;
  else&lt;br /&gt;
    return &amp;quot;Q&amp;quot; .. tostring(n_id);&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.has_valid_item_value (entity, s_property_id, n_item_id)&lt;br /&gt;
  local claim = nil;&lt;br /&gt;
  if (entity ~= nil) and (entity.claims ~= nil) then&lt;br /&gt;
    claim = entity.claims[s_property_id];&lt;br /&gt;
  end;&lt;br /&gt;
  if claim ~= nil then&lt;br /&gt;
    for key, value in pairs(claim) do&lt;br /&gt;
      if (value.rank ~= wd.RANK_DEPRECATED) and (wd.get_item_id(value) == n_item_id) then&lt;br /&gt;
      	return true;&lt;br /&gt;
      end;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return false;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.get_label(entity, s_lang, s_default)&lt;br /&gt;
  local s_label = s_default;&lt;br /&gt;
  if entity[&amp;quot;labels&amp;quot;] ~= nil then&lt;br /&gt;
    local l = entity.labels[s_lang];&lt;br /&gt;
    if (l == nil) and (s_lang ~= LANG_EN) then&lt;br /&gt;
      l = entity.labels[LANG_EN];&lt;br /&gt;
    end;&lt;br /&gt;
    if l ~= nil then&lt;br /&gt;
      s_label = l.value;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return s_label;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.get_description(entity, s_lang, s_default)&lt;br /&gt;
  local s_description = s_default;&lt;br /&gt;
  if entity[&amp;quot;descriptions&amp;quot;] ~= nil then&lt;br /&gt;
    local l = entity.descriptions[s_lang];&lt;br /&gt;
    if (l == nil) and (s_lang ~= LANG_EN) then&lt;br /&gt;
      l = entity.descriptions[LANG_EN];&lt;br /&gt;
    end;&lt;br /&gt;
    if l ~= nil then&lt;br /&gt;
      s_description = l.value;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return s_description;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Функции для получения ссылки на данный вики-проект в виде (пример для Q644102):&lt;br /&gt;
--   { &amp;quot;site&amp;quot;: &amp;quot;ruwiki&amp;quot;, &amp;quot;title&amp;quot;: &amp;quot;Спасо-Преображенский собор (Санкт-Петербург)&amp;quot;, &amp;quot;badges&amp;quot;: { 1: &amp;quot;Q17437798&amp;quot; } }&lt;br /&gt;
-- Если ссылки нет, возвращает nil.&lt;br /&gt;
-- Примеры&lt;br /&gt;
--   local sitelink = wd.get_sitelink(entity, &amp;quot;ruwiki&amp;quot;);&lt;br /&gt;
--   local sitelink = wd.get_sitelink_by_lang(entity, &amp;quot;wiki&amp;quot;, [&amp;quot;ru&amp;quot;, &amp;quot;de&amp;quot;, &amp;quot;en&amp;quot;]);&lt;br /&gt;
--&lt;br /&gt;
function wd.get_sitelink(entity, s_code)&lt;br /&gt;
  if entity[&amp;quot;sitelinks&amp;quot;] == nil then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  return entity.sitelinks[s_code];&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.get_sitelink_by_lang(entity, s_suffix, langs)&lt;br /&gt;
  if entity[&amp;quot;sitelinks&amp;quot;] == nil then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  local sitelink = nil;&lt;br /&gt;
  for key, s_lang in pairs(langs) do&lt;br /&gt;
    sitelink = entity.sitelinks[s_lang .. s_suffix];&lt;br /&gt;
    if sitelink ~= nil then&lt;br /&gt;
      break;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return sitelink;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
local map = {&lt;br /&gt;
  ruwikisource    = &amp;quot;s:&amp;quot;,&lt;br /&gt;
  ruwiki          = &amp;quot;&amp;quot;,&lt;br /&gt;
  ruwikiquote     = &amp;quot;q:&amp;quot;,&lt;br /&gt;
  ruwikinews      = &amp;quot;n:&amp;quot;,&lt;br /&gt;
  ruwikivoyage    = &amp;quot;voy:&amp;quot;,&lt;br /&gt;
  commonswiki     = &amp;quot;commons:&amp;quot;,&lt;br /&gt;
  wikidatawiki    = &amp;quot;d:&amp;quot;,&lt;br /&gt;
  specieswiki     = &amp;quot;species:&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
--&lt;br /&gt;
local lang_map = {&lt;br /&gt;
  wikisource    = &amp;quot;s:&amp;quot;,&lt;br /&gt;
  wiki          = &amp;quot;&amp;quot;,&lt;br /&gt;
  wikiquote     = &amp;quot;q:&amp;quot;,&lt;br /&gt;
  wikinews      = &amp;quot;n:&amp;quot;,&lt;br /&gt;
  wikivoyage    = &amp;quot;voy:&amp;quot;&lt;br /&gt;
};&lt;br /&gt;
--&lt;br /&gt;
function wd.map_sitelink_to_prefix(s_site)&lt;br /&gt;
  local s_iw_prefix = map[s_site];&lt;br /&gt;
  if s_iw_prefix ~= nil then&lt;br /&gt;
    return s_iw_prefix;&lt;br /&gt;
  end;&lt;br /&gt;
  local n_len = mw.ustring.len(s_site);&lt;br /&gt;
  for s_suffix, s_iw_prefix in pairs(lang_map) do&lt;br /&gt;
    --mw.log(&amp;quot;suffix: &amp;quot;..s_suffix);&lt;br /&gt;
    --mw.log(&amp;quot;interwiki prefix: &amp;quot;..s_iw_prefix);&lt;br /&gt;
    local n_suffix_len = mw.ustring.len(s_suffix);&lt;br /&gt;
    local n_lang_len = n_len - n_suffix_len;&lt;br /&gt;
    if (n_lang_len &amp;gt; 0) and (mw.ustring.sub(s_site, -n_suffix_len) == s_suffix) then&lt;br /&gt;
      return s_iw_prefix .. mw.ustring.sub(s_site, 1, n_lang_len) .. &amp;quot;:&amp;quot;;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  error(&amp;quot;Can&amp;#039;t map &amp;quot; .. s_site .. &amp;quot; to a interwiki link&amp;quot;);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|map_sitelink|ruwikisource}}&lt;br /&gt;
--  {{#invoke:WD|map_sitelink|enwikisource}}&lt;br /&gt;
--  {{#invoke:WD|map_sitelink|enwiki}}&lt;br /&gt;
--  {{#invoke:WD|map_sitelink|ruwiki}}&lt;br /&gt;
function wd.map_sitelink (frame)&lt;br /&gt;
  return &amp;quot;[[&amp;quot;..wd.map_sitelink_to_prefix(tostring(frame.args[1]))..&amp;quot;]]&amp;quot;;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|dump_iwikimap}}&lt;br /&gt;
--  {{#invoke:WD|dump_iwikimap|local}}&lt;br /&gt;
--  {{#invoke:WD|dump_iwikimap|!local}}&lt;br /&gt;
--function wd.dump_iwikimap (frame)&lt;br /&gt;
--  return wd.table_to_string(mw.site.interwikiMap(tostring(frame.args[1])), &amp;quot;&amp;quot;);&lt;br /&gt;
--end;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Функция для Шаблон:WD label&lt;br /&gt;
-- Возвращает метку элемента или свойства&lt;br /&gt;
--&lt;br /&gt;
-- Примеры для свойств:&lt;br /&gt;
--  {{#invoke:WD|label|P569|ru}}  → дата рождения&lt;br /&gt;
--  {{#invoke:WD|label|P569|en}}  → date of birth&lt;br /&gt;
--  {{#invoke:WD|label|P569|de}}  → Geburtsdatum&lt;br /&gt;
--  {{#invoke:WD|label|P569|la}}  → natus&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|label|P97|ru}}  → титул&lt;br /&gt;
--  {{#invoke:WD|label|P97|en}}  → noble title&lt;br /&gt;
--  {{#invoke:WD|label|P97|la}}  → noble title (так как метки на латыни нет)&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|label|P999999|ru}}  → ошибка  (несуществующее свойство)&lt;br /&gt;
--&lt;br /&gt;
-- Примеры для элементов:&lt;br /&gt;
--  {{#invoke:WD|label|Q2|ru}} → Земля&lt;br /&gt;
--  {{#invoke:WD|label|Q2|en}} → Earth&lt;br /&gt;
--  {{#invoke:WD|label|Q2|de}} → Erde&lt;br /&gt;
--  {{#invoke:WD|label|Q2|la}} → Tellus&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|label|Q6|ru}} → ошибка  (несуществующий элемент)&lt;br /&gt;
--  {{#invoke:WD|label|Q8258093|ru}} → Category:Aquitanians (перенаправление Q8258093 → Q6305566)&lt;br /&gt;
--&lt;br /&gt;
function wd.label (frame)&lt;br /&gt;
  local s_id = tostring(frame.args[1]);&lt;br /&gt;
  local s_lang = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_id);&lt;br /&gt;
  if entity == nil then&lt;br /&gt;
    if mw.ustring.match(s_id, &amp;quot;[Qq]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_id));&lt;br /&gt;
    elseif mw.ustring.match(s_id, &amp;quot;[Pp]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_PROPERTY_NOT_FOUND, s_id));&lt;br /&gt;
    else&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ENTITY_NOT_FOUND, s_id));&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return wd.get_label(entity, s_lang, MSG_NO_LABEL);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.description (frame)&lt;br /&gt;
  local s_id = tostring(frame.args[1]);&lt;br /&gt;
  local s_lang = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_id);&lt;br /&gt;
  if entity == nil then&lt;br /&gt;
    if mw.ustring.match(s_id, &amp;quot;[Qq]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_id));&lt;br /&gt;
    elseif mw.ustring.match(s_id, &amp;quot;[Pp]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_PROPERTY_NOT_FOUND, s_id));&lt;br /&gt;
    else&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ENTITY_NOT_FOUND, s_id));&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return wd.get_description(entity, s_lang, MSG_NO_DESCRIPTION);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
function wd.datatype (frame)&lt;br /&gt;
  local s_id = tostring(frame.args[1]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_id);&lt;br /&gt;
  if (entity == nil) or (not wd.is_property(entity)) then&lt;br /&gt;
    error(mw.ustring.format(ERRMSG_PROPERTY_NOT_FOUND, s_id));&lt;br /&gt;
  end;&lt;br /&gt;
  return entity.datatype;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
-- [[{{#invoke:WD|sitelink|Q9301454|itwiki}}]]&lt;br /&gt;
-- [[{{#invoke:WD|sitelink|Q213141|specieswiki}}]]&lt;br /&gt;
-- [[{{#invoke:WD|sitelink|Q213141|commonswiki}}]]&lt;br /&gt;
-- [[{{#invoke:WD|sitelink|Q4115189|wikidatawiki}}]]&lt;br /&gt;
-- [[{{#invoke:WD|sitelink|Q656|ruwikivoyage}}]]&lt;br /&gt;
--&lt;br /&gt;
function wd.sitelink (frame)&lt;br /&gt;
  local s_item_id = tostring(frame.args[1]);&lt;br /&gt;
  local s_code = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_item_id);&lt;br /&gt;
  if (entity == nil) or not wd.is_item(entity) then&lt;br /&gt;
    error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_item_id));&lt;br /&gt;
  end;&lt;br /&gt;
  local sitelink = nil;&lt;br /&gt;
  local s_lang = frame.args[3];&lt;br /&gt;
  if s_lang == nil then    -- если третий параметр не указан, вызываем get_sitelink&lt;br /&gt;
    sitelink = wd.get_sitelink(entity, s_code);&lt;br /&gt;
  else&lt;br /&gt;
    local langs = {}; -- пустой массив&lt;br /&gt;
    langs[3] = tostring(s_lang);&lt;br /&gt;
    local n_index = 4;&lt;br /&gt;
    s_lang = frame.args[3];&lt;br /&gt;
    while s_lang ~= nil do&lt;br /&gt;
      langs[n_index] = tostring(s_lang);&lt;br /&gt;
      n_index = n_index + 1;&lt;br /&gt;
      s_lang = frame.args[n_index];&lt;br /&gt;
    end;&lt;br /&gt;
    sitelink = wd.get_sitelink_by_lang(entity, s_code, langs);&lt;br /&gt;
  end;&lt;br /&gt;
  if sitelink == nil then&lt;br /&gt;
    return nil;&lt;br /&gt;
  else&lt;br /&gt;
    return wd.map_sitelink_to_prefix(sitelink.site) .. sitelink.title;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
-- s_suffix - sitelink проекта (&amp;quot;wiki&amp;quot;, &amp;quot;wikisource&amp;quot;, &amp;quot;wikiwikiquote&amp;quot;, &amp;quot;wikivoyage&amp;quot; или &amp;quot;wikinews&amp;quot;)&lt;br /&gt;
function wd.get_multilingual_sitelink(entity, s_suffix, lang_properties)&lt;br /&gt;
  if (entity == nil) or (entity[&amp;quot;sitelinks&amp;quot;] == nil) then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  local sitelink = entity.sitelinks[&amp;quot;ru&amp;quot; .. s_suffix];&lt;br /&gt;
  if sitelink ~= nil then&lt;br /&gt;
    return wd.map_sitelink_to_prefix(sitelink.site) .. sitelink.title;&lt;br /&gt;
  elseif lang_properties == nil then&lt;br /&gt;
    return nil;&lt;br /&gt;
  end;&lt;br /&gt;
  -- собираем языки в langs&lt;br /&gt;
  local langs = {Q7737=&amp;quot;ru&amp;quot;};   -- список языков, sitelink&amp;#039;и для которых мы уже проверили&lt;br /&gt;
  local lang_cache = nil;          -- кэш языков из Модуль:Wikidata:Dictionary/P424&lt;br /&gt;
  for key1, s_lang_property in pairs(lang_properties) do&lt;br /&gt;
    --mw.log(&amp;quot;look at &amp;quot; .. s_lang_property);&lt;br /&gt;
    for key2, statement in pairs(entity:getBestStatements(s_lang_property)) do&lt;br /&gt;
      local s_lang_qid = wd.get_item_qid(statement);&lt;br /&gt;
      --mw.log(&amp;quot;  &amp;quot; .. s_lang_qid);&lt;br /&gt;
      if (s_lang_qid ~= nil) and langs[s_lang_qid] == nil then&lt;br /&gt;
        if lang_cache == nil then      -- кэш языков загружаем только в первый раз&lt;br /&gt;
          lang_cache = mw.loadData(&amp;#039;Модуль:Wikidata:Dictionary/P424&amp;#039;);&lt;br /&gt;
        end;&lt;br /&gt;
        local l = lang_cache[s_lang_qid];&lt;br /&gt;
        if l == nil then&lt;br /&gt;
          mw.log(&amp;quot;В Модуль:Wikidata:Dictionary/P424 отсутствует язык &amp;quot; .. s_lang_qid);&lt;br /&gt;
        else &lt;br /&gt;
          for key3, s_lang in pairs(l) do&lt;br /&gt;
            sitelink = entity.sitelinks[s_lang..s_suffix];&lt;br /&gt;
            if sitelink ~= nil then&lt;br /&gt;
              return wd.map_sitelink_to_prefix(sitelink.site) .. sitelink.title;&lt;br /&gt;
            end;&lt;br /&gt;
            langs[s_lang_qid] = s_lang;&lt;br /&gt;
          end;&lt;br /&gt;
        end;&lt;br /&gt;
      end;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return nil;&lt;br /&gt;
end;&lt;br /&gt;
--[[&lt;br /&gt;
-- {{#invoke:Sandbox|test_get_multilingual_sitelink|Q18090050|wikisource}}&lt;br /&gt;
function s.test_get_multilingual_sitelink (frame)&lt;br /&gt;
  local s_qid     = tostring(frame.args[1]);&lt;br /&gt;
  local s_suffix  = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_qid);&lt;br /&gt;
  local s_sitelink = s.get_multilingual_sitelink(entity, s_suffix, {&amp;quot;P1412&amp;quot;,&amp;quot;P103&amp;quot;});&lt;br /&gt;
  if s_sitelink == nil then&lt;br /&gt;
    return &amp;quot;nil&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
    return s_sitelink;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
]]&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Функция для Шаблон:WD property&lt;br /&gt;
-- Возвращает строку вида: [[:d:Property:Pxxx|&amp;lt;метка&amp;gt; (Pxxx)]]&lt;br /&gt;
--  {{#invoke:WD|format_property|id|lang}}&lt;br /&gt;
--&lt;br /&gt;
-- Параметры:&lt;br /&gt;
--  id — идентификатор свойства Викиданных (Pxxx)&lt;br /&gt;
--  lang — двухбуквенный код языка, на котором отображается метка (ru, en, de, etc)&lt;br /&gt;
--&lt;br /&gt;
-- Если метки на этом языке нет, то возвращается метка на английском (она почти всегда есть)&lt;br /&gt;
--&lt;br /&gt;
-- Примеры:&lt;br /&gt;
--  {{#invoke:WD|format_property|P569|ru}}  → [[:d:Property:P569|дата рождения (P569)]]&lt;br /&gt;
--  {{#invoke:WD|format_property|P569|en}}  → [[:d:Property:P569|date of birth (P569)]]&lt;br /&gt;
--  {{#invoke:WD|format_property|P569|de}}  → [[:d:Property:P569|Geburtsdatum (P569)]]&lt;br /&gt;
--  {{#invoke:WD|format_property|P569|la}}  → [[:d:Property:P569|natus (P569)]]&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|format_property|P97|ru}}  → [[:d:Property:P97|титул (P97)]]&lt;br /&gt;
--  {{#invoke:WD|format_property|P97|en}}  → [[:d:Property:P569|noble title (P97)]]&lt;br /&gt;
--  {{#invoke:WD|format_property|P97|la}}  → [[:d:Property:P569|noble title (P97)]] (так как метки на латыни нет)&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|format_property|P999999|ru}}  → ошибка  (несуществующее свойство)&lt;br /&gt;
--&lt;br /&gt;
function wd.format_property (frame)&lt;br /&gt;
  local s_property_id = tostring(frame.args[1]);&lt;br /&gt;
  local s_lang = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_property_id);&lt;br /&gt;
  if (entity == nil) or not wd.is_property(entity) then&lt;br /&gt;
    error(mw.ustring.format(ERRMSG_PROPERTY_NOT_FOUND, s_property_id));&lt;br /&gt;
  end;&lt;br /&gt;
  return &amp;quot;[[:d:Property:&amp;quot; .. entity.id .. &amp;quot;|&amp;quot; .. wd.get_label(entity, s_lang, MSG_NO_LABEL) .. &amp;quot; (&amp;quot; .. entity.id .. &amp;quot;)]]&amp;quot;;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Функция для Шаблон:WD item&lt;br /&gt;
-- Возвращает строку вида: [[:d:Qxxx|&amp;lt;метка&amp;gt; (Qxxx)]]&lt;br /&gt;
--  {{#invoke:WD|format_item|id|lang}}&lt;br /&gt;
--&lt;br /&gt;
-- Параметры:&lt;br /&gt;
--  id — идентификатор элемента Викиданных (Qxxx)&lt;br /&gt;
--  lang — двухбуквенный код языка, на котором отображается метка (ru, en, de, etc)&lt;br /&gt;
--&lt;br /&gt;
-- Если метки на этом языке нет, то возвращается метка на английском&lt;br /&gt;
--&lt;br /&gt;
-- Примеры:&lt;br /&gt;
--  {{#invoke:WD|format_item|Q2|ru}} → [[:d:Q2|Земля (Q2)]]&lt;br /&gt;
--  {{#invoke:WD|format_item|Q2|en}} → [[:d:Q2|Earth (Q2)]]&lt;br /&gt;
--  {{#invoke:WD|format_item|Q2|de}} → [[:d:Q2|Erde (Q2)]]&lt;br /&gt;
--  {{#invoke:WD|format_item|Q2|la}} → [[:d:Q2|Tellus (Q2)]]&lt;br /&gt;
--&lt;br /&gt;
--  {{#invoke:WD|format_item|Q6|ru}} → ошибка (несуществующий элемент)&lt;br /&gt;
--  {{#invoke:WD|format_item|Q8258093|ru}} → [[:d:Q6305566|Category:Aquitanians (Q6305566)]] (перенаправление Q8258093 → Q6305566)&lt;br /&gt;
--&lt;br /&gt;
function wd.format_item (frame)&lt;br /&gt;
  local s_item_id = tostring(frame.args[1]);&lt;br /&gt;
  local s_lang = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_item_id);&lt;br /&gt;
  if (entity == nil) or not wd.is_item(entity) then&lt;br /&gt;
    error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_item_id));&lt;br /&gt;
  end;&lt;br /&gt;
  return &amp;quot;[[:d:&amp;quot; .. entity.id .. &amp;quot;|&amp;quot; .. wd.get_label(entity, s_lang, MSG_NO_LABEL) .. &amp;quot; (&amp;quot; .. entity.id .. &amp;quot;)]]&amp;quot;;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Сервисная функция, позволяющая преобразовать таблицу LUA в её текстовое представление&lt;br /&gt;
--&lt;br /&gt;
function wd.table_to_string(t, s_indent)&lt;br /&gt;
  local s_result = &amp;quot;{&amp;quot;;&lt;br /&gt;
  -- флажок, чтобы не добавлять запятую после последнего элемента, и чтобы при пустой таблице возвращалось &amp;quot;{&amp;quot; .. s_indent .. &amp;quot;}&amp;quot;&lt;br /&gt;
  local b_first = true;&lt;br /&gt;
  for key, value in pairs(t) do&lt;br /&gt;
    if b_first then&lt;br /&gt;
      s_result = s_result .. &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;  -- перед первым элементом добавляем перевод строки&lt;br /&gt;
      b_first = false;                 -- и сбрасываем флажок&lt;br /&gt;
    else&lt;br /&gt;
      s_result = s_result .. &amp;quot;,&amp;lt;br/&amp;gt;&amp;quot;;  -- перед всеми последующими добавляем запятую и перевод строки&lt;br /&gt;
    end;&lt;br /&gt;
    local s_str = &amp;quot;&amp;quot;;&lt;br /&gt;
    if value == nil then&lt;br /&gt;
      s_str = &amp;quot;nil&amp;quot;;&lt;br /&gt;
    elseif type(value) == &amp;quot;table&amp;quot; then&lt;br /&gt;
      s_str = wd.table_to_string(value, s_indent .. &amp;quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;);&lt;br /&gt;
    elseif type(value) == &amp;quot;string&amp;quot; then&lt;br /&gt;
      s_str = &amp;quot;\&amp;quot;&amp;quot; .. value .. &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
    else -- type(value) == &amp;quot;number&amp;quot;, &amp;quot;boolean&amp;quot; или &amp;quot;function&amp;quot;&lt;br /&gt;
      s_str = tostring(value);&lt;br /&gt;
    end;&lt;br /&gt;
    if (type(key) == &amp;quot;number&amp;quot;) or (type(key) == &amp;quot;boolean&amp;quot;) then&lt;br /&gt;
      s_result = s_result .. s_indent .. tostring(key) .. &amp;quot;: &amp;quot; .. s_str;&lt;br /&gt;
    else&lt;br /&gt;
      s_result = s_result .. s_indent .. &amp;quot;\&amp;quot;&amp;quot; .. tostring(key) .. &amp;quot;\&amp;quot;: &amp;quot; .. s_str;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  if not b_first then&lt;br /&gt;
    s_result = s_result .. &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;  -- если был хотя бы один элемент, добавляем перевод строки&lt;br /&gt;
  end;&lt;br /&gt;
  return s_result .. s_indent .. &amp;quot;}&amp;quot;;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
----------------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Отладочная функция, позволяющая показать элемент или свойство Викиданных, возвращаемое функцией mw.wikibase.getEntity()&lt;br /&gt;
--&lt;br /&gt;
-- Примеры:&lt;br /&gt;
-- {{#invoke:WD|dump_entity|Q3207456}}&lt;br /&gt;
-- {{#invoke:WD|dump_entity|P31}}&lt;br /&gt;
--&lt;br /&gt;
function wd.dump_entity(frame)&lt;br /&gt;
  local s_id = tostring(frame.args[1]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_id);&lt;br /&gt;
  if entity == nil then&lt;br /&gt;
    if mw.ustring.match(s_id, &amp;quot;[Qq]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_id));&lt;br /&gt;
    elseif mw.ustring.match(s_id, &amp;quot;[Pp]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_PROPERTY_NOT_FOUND, s_id));&lt;br /&gt;
    else&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ENTITY_NOT_FOUND, s_id));&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  return wd.table_to_string(entity, &amp;quot;&amp;quot;);&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
-- {{#invoke:WD|dump_sitelinks|Q359}}&lt;br /&gt;
-- {{#invoke:WD|dump_sitelinks|Q9301454}}&lt;br /&gt;
--&lt;br /&gt;
function wd.dump_sitelinks(frame)&lt;br /&gt;
  local s_id = tostring(frame.args[1]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_id);&lt;br /&gt;
  if (entity == nil) or not wd.is_item(entity) then&lt;br /&gt;
    error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_item_id));&lt;br /&gt;
  end;&lt;br /&gt;
  if entity[&amp;quot;sitelinks&amp;quot;] == nil then&lt;br /&gt;
    return &amp;quot;nil&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    return wd.table_to_string(entity.sitelinks, &amp;quot;&amp;quot;);&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
--&lt;br /&gt;
--[[&lt;br /&gt;
{{#invoke:WD|dump_property|Q44403|P20}} (item, одно значение)&lt;br /&gt;
{{#invoke:WD|dump_property|Q15920521|P19}} (wikibase-entityid)&lt;br /&gt;
{{#invoke:WD|dump_property|Q44403|P569}} (time)&lt;br /&gt;
&lt;br /&gt;
{{#invoke:WD|dump_property|Q15920521|P1476}} (monolingualtext)&lt;br /&gt;
{{#invoke:WD|dump_property|Q359|P856}} (url)&lt;br /&gt;
&lt;br /&gt;
Примеры значений переменной value (вязто с помощью https://www.wikidata.org/wiki/Special:EntityData/Q15920521.json):&lt;br /&gt;
[{&amp;quot;id&amp;quot;:&amp;quot;Q15920521$f7c04336-4b68-8307-c98c-569412466eaa&amp;quot;,&lt;br /&gt;
  &amp;quot;mainsnak&amp;quot;:{&amp;quot;snaktype&amp;quot;:&amp;quot;value&amp;quot;,&lt;br /&gt;
              &amp;quot;property&amp;quot;:&amp;quot;P1476&amp;quot;,&lt;br /&gt;
              &amp;quot;datatype&amp;quot;:&amp;quot;monolingualtext&amp;quot;,&lt;br /&gt;
              &amp;quot;datavalue&amp;quot;:{&amp;quot;value&amp;quot;:{&amp;quot;text&amp;quot;:&amp;quot;Ночные мысли&amp;quot;,&amp;quot;language&amp;quot;:&amp;quot;ru&amp;quot;},&amp;quot;type&amp;quot;:&amp;quot;monolingualtext&amp;quot;}},&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;statement&amp;quot;,&lt;br /&gt;
  &amp;quot;rank&amp;quot;:&amp;quot;normal&amp;quot;}]&lt;br /&gt;
&lt;br /&gt;
[{&amp;quot;id&amp;quot;:&amp;quot;Q359$36814403-433c-591b-eaff-22a38472a46b&amp;quot;,&lt;br /&gt;
  &amp;quot;mainsnak&amp;quot;:{&amp;quot;snaktype&amp;quot;:&amp;quot;value&amp;quot;,&lt;br /&gt;
              &amp;quot;property&amp;quot;:&amp;quot;P856&amp;quot;,&lt;br /&gt;
              &amp;quot;datatype&amp;quot;:&amp;quot;url&amp;quot;,&lt;br /&gt;
              &amp;quot;datavalue&amp;quot;:{&amp;quot;value&amp;quot;:&amp;quot;https://wikileaks.org/&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;}},&lt;br /&gt;
              &amp;quot;type&amp;quot;:&amp;quot;statement&amp;quot;,&lt;br /&gt;
              &amp;quot;rank&amp;quot;:&amp;quot;normal&amp;quot;}]&lt;br /&gt;
]]&lt;br /&gt;
function wd.dump_statements(frame)&lt;br /&gt;
  local s_id = tostring(frame.args[1]);&lt;br /&gt;
  local s_property_id = tostring(frame.args[2]);&lt;br /&gt;
  local entity = mw.wikibase.getEntity(s_id);&lt;br /&gt;
  if entity == nil then&lt;br /&gt;
    if mw.ustring.match(s_id, &amp;quot;[Qq]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ITEM_NOT_FOUND, s_id));&lt;br /&gt;
    elseif mw.ustring.match(s_id, &amp;quot;[Pp]%d+&amp;quot;) ~= nil then&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_PROPERTY_NOT_FOUND, s_id));&lt;br /&gt;
    else&lt;br /&gt;
      error(mw.ustring.format(ERRMSG_ENTITY_NOT_FOUND, s_id));&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
  local claim = nil;&lt;br /&gt;
  if entity.claims ~= nil then&lt;br /&gt;
    claim = entity.claims[s_property_id];&lt;br /&gt;
  end;&lt;br /&gt;
  if claim == nil then&lt;br /&gt;
    error(mw.ustring.format(ERRMSG_CLAIM_NOT_FOUND, s_id, s_property_id));&lt;br /&gt;
  end;&lt;br /&gt;
  return wd.table_to_string(claim, &amp;quot;&amp;quot;);&lt;br /&gt;
--[[&lt;br /&gt;
  local s_result = &amp;quot;&amp;quot;&lt;br /&gt;
  for key, value in pairs(claim) do&lt;br /&gt;
    local snak = value.mainsnak;&lt;br /&gt;
    s_result = s_result .. &amp;quot;[&amp;quot; .. key .. &amp;quot;]: id = &amp;quot; .. value.id .. &amp;quot;, type = &amp;quot; .. value.type .. &amp;quot;, rank = &amp;quot; .. value.rank .. &amp;quot;, snaktype = &amp;quot; .. snak.snaktype .. &amp;quot;, property = &amp;quot; .. snak.property&lt;br /&gt;
    if snak.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
      s_result = s_result .. &amp;quot;, datatype = &amp;quot; .. snak.datavalue.type&lt;br /&gt;
      if snak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
          s_result = s_result .. &amp;quot;, value = Q&amp;quot;.. tostring(snak.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
      elseif snak.datavalue.type == &amp;quot;string&amp;quot; then&lt;br /&gt;
          s_result = s_result .. &amp;quot;, value = &amp;#039;&amp;quot; .. snak.datavalue.value ..&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
      elseif snak.datavalue.type == &amp;quot;monolingualtext&amp;quot; then&lt;br /&gt;
          s_result = s_result .. &amp;quot;, language = &amp;#039;&amp;quot; .. snak.datavalue.value.language .. &amp;quot;&amp;#039;, value = &amp;#039;&amp;quot; .. snak.datavalue.value.text ..&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
      elseif snak.datavalue.type == &amp;quot;url&amp;quot; then&lt;br /&gt;
          s_result = s_result .. &amp;quot;, value = &amp;#039;&amp;quot; .. snak.datavalue.value ..&amp;quot;&amp;#039;&amp;quot;&lt;br /&gt;
      elseif snak.datavalue.type == &amp;quot;time&amp;quot; then&lt;br /&gt;
          s_result = s_result .. &amp;quot;, value = &amp;quot; .. snak.datavalue.value.time .. &amp;quot; (precision = &amp;quot; .. tostring(snak.datavalue.value.precision) .. &amp;quot;, before = &amp;quot; .. tostring(snak.datavalue.value.before) .. &amp;quot;,  after = &amp;quot; .. tostring(snak.datavalue.value.after) .. &amp;quot;, timezone = &amp;quot; .. tostring(snak.datavalue.value.timezone) .. &amp;quot;, calendarmodel = &amp;quot; .. tostring(snak.datavalue.value.calendarmodel) .. &amp;quot;)&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    s_result = s_result .. &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;&lt;br /&gt;
  end;&lt;br /&gt;
  return s_result;&lt;br /&gt;
]]&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
return wd;&lt;/div&gt;</summary>
		<author><name>ru&gt;Andras</name></author>
	</entry>
</feed>