Этот модуль предназначен для использования внутри {{ infobox }} (буквы Wikidata IB означают Info Box , отсюда и название) или других шаблонов и разработан специально для того, чтобы позволить редакторам статьи (в отличие от редакторов информационного поля, используемого статьей) контролировать отображение значений Wikidata.
Одну из двух песочниц следует использовать для тестирования чего-либо, кроме тривиальных поправок.
Доступны тестовые примеры для основного модуля и двух песочниц.
Модуль предоставляет следующие вызовы специально для использования в инфобоксах в настоящее время:
getValue
- основной вызов, используемый для получения значения(й) заданного свойстваgetQualifierValue
- если задано: (1) свойство; (2) его значение; (3) propertyID квалификатора, возвращает значения, которые соответствуютgetValueByQual
получает значение свойства, имеющего квалификатор с заданным значением сущностиgetValueByLang
получает значение свойства, имеющего квалификатор P407("язык работы или имени"), значение которого имеет заданный код языкаgetValueByRefSource
получает значение свойства, которое имеет ссылку «указано в» (P248), значение которого имеет заданный идентификатор сущностиgetPropOfProp
если значение(я) prop1 имеют тип "wikibase-item", то возвращается значение(я) prop2 каждого из этих wikibase-itemsgetAwardCat
если элемент имеет значения P166 (полученная награда), то он проверяет каждую из этих наград на предмет P2517 (категория для получателей этой награды) и возвращает соответствующую категорию с P734 элемента (фамилия) в качестве ключа сортировки или без ключа сортировки, если фамилия отсутствуетgetIntersectCat
для каждого значения prop1 он извлекает основную категорию значения, а затем каждое значение prop2, затем он возвращает все категории, представляющие пересечение этих свойствgetSumOfParts
сканирует свойство 'has part' (P527) на предмет значений, соответствующих списку. Если совпадающие значения имеют квалификатор 'quantity' (P1114), эти количества суммируются и возвращаются (но ноль возвращает nil)getCoords
получает координаты и передает их через {{ Coord }}getPreferredValue
- Устарело , но сохранено для обратной совместимости. |getValue|rank=best
Вместо этого используйте параметрыУстаревший вызов getSourcedValue теперь удален, поскольку он избыточен по сравнению с getValue, который может выполнять ту же работу с использованием |onlysourced=true
параметра (который установлен по умолчанию).
getLink
если есть ссылка на статью в локальной Wiki, он возвращает ссылку на статью с меткой Wikidata в качестве отображаемого текста. Если ссылки нет, он возвращает метку как обычный текст. Если метки на локальном языке нет, он возвращает идентификатор сущностиgetAT
(Название статьи) Если есть ссылка на статью в локальной Вики, она возвращается как обычный текст, в противном случае ничего.getSiteLink
получает простую текстовую ссылку на статью в указанной викиgetLabel
возвращает метку Wikidata для локального языка как обычный текст. Если метки на локальном языке нет, возвращается идентификатор сущностиgetAllLabels
извлекает набор меток и форматирует его для отображения в виде викитекстаlabelorid
возвращает метку со всем удаленным викитекстом или идентификатор сущности, если метка отсутствуетgetDescription
возвращает описание статьи для сущности Wikidata, если локальный параметр равен «Wikidata»getAllDescriptions
извлекает набор описаний и форматирует его для отображения в виде викитекстаgetAliases
возвращает псевдонимы для сущности на текущем или заданном языкеgetAllAliases
извлекает набор псевдонимов и форматирует его для отображения в виде викитекстаpageId
возвращает идентификатор подключенной страницы Wikidata (entity-ID, Q-номер) текущей страницыformatDate
берет дату и время обычного формата из mw.wikibase.entity:formatPropertyValues и форматирует ее в соответствии с параметрами df (формат даты) и bcformatNumber
форматирует число в соответствии с предоставленным кодом языкаcheckBlacklist
возвращает true, если поле не занесено в черный список (т.е. разрешено)emptyor
возвращает nil, если параметр представляет собой только знаки препинания, пробелы или HTML-теги, в противном случае возвращает аргумент без измененийgetLang
возвращает код языка MediaWiki или полное название языка текущего контентаgetItemLangCode
ищет страну (P17), затем официальный язык этой страны (P37) и возвращает код ее языка (P424)findLanguage
возвращает (1) указанный язык, если он действителен; или (2) установленный пользователем язык; или (3) язык текущей викиgetQid
возвращает (1) идентификатор сущности, если он указан; или (2) идентификатор сущности «основной темы категории (P301)»; или (3) идентификатор сущности, связанный с текущей страницей; или (4) ничегоfollowQid
по заданному списку свойств ищет каждое свойство по очереди и возвращает идентификатор сущности первого совпадающего значения (опционально возвращает все совпадающие идентификаторы сущностей)getGlobe
возвращает идентификатор сущности глобуса, используемый в P625 (координатное местоположение), или ноль, если таковой отсутствуетgetCommonsLink
возвращает один из следующих вариантов в порядке предпочтения: ссылка на сайт Commons связанного элемента Wikidata; ссылка на сайт Commons основной категории темы связанного элемента WikidatasiteID
возвращает корень globalSiteID, например «en» для «enwiki», «enwikisource», «en-gb» и т. д.projID
то же, что и siteIDlocation
сканирует от текущего местоположения вверх по цепочке местоположений более высокого уровня, возвращаясь к каждому из них, пока не достигнет страныexamine
возвращает форматированный дамп указанного свойстваurl2
принимает параметр, который является правильным URL-адресом, и форматирует его для использования в информационном окне; он принимает свой собственный вывод в качестве входных данныхgetWebsite
извлекает официальный веб-сайт (P856) и форматирует его для использования в информационном окнеcheckvalue
просматривает свойство на предмет указанного идентификатора сущности в качестве его значения и возвращает этот идентификатор сущности, если он найден; в противном случае возвращает нольcheckValidity
возвращает, представляет ли первый неименованный параметр действительный идентификатор сущностиshowNoLinks
отображает заголовки статей, которые не должны быть связаны{{#invoke:WikidataIB |getValue |<PropertyID> |name=<fieldname> |suppressfields=<список полей, которые никогда не будут отображаться> |fetchwikidata=<список полей для извлечения значений из Wikidata> |onlysourced=<yes/no> |noicon=<yes/no> |df=<dmy/mdy/y> |bc=<BC/BCE> |qual=<ALL/DATES/P999> |list=<ubl/hlist/prose> |linked=<yes/no> |<локальный параметр>}}
{{#invoke:WikidataIB |getCoords |name=<имя поля> |suppressfields=<список полей, которые никогда не будут отображаться> |fetchwikidata=<список полей для извлечения значений из Wikidata> |<локальный параметр>}}
{{#invoke:WikidataIB |getQualifierValue |<PropertyID> |pval=<ID целевого значения для свойства> |qual=<ID квалификатора для этого целевого значения> |name=<fieldname> |suppressfields=<список полей, которые никогда не будут отображаться> |fetchwikidata=<список полей для извлечения значений из Wikidata> |onlysourced=<yes/no>}}
{{#invoke:WikidataIB |getValueByQual |<PropertyID> |qualID=<идентификатор свойства квалификатора для сопоставления> |qvalue=<идентификатор целевого значения для свойства квалификатора> |name=<имя поля> |suppressfields=<список полей, которые никогда не будут отображаться> |fetchwikidata=<список полей для извлечения значений из Wikidata> |onlysourced=<да/нет>}}
{{#invoke:WikidataIB |getValueByLang |<PropertyID> |lang=<код языка для сопоставления> |name=<имя поля> |suppressfields=<список полей, которые никогда не будут отображаться> |fetchwikidata=<список полей для извлечения значений из Wikidata> |onlysourced=<да/нет>}}
|qid=
, который является идентификатором Wikidata для статьи. Обычно он не используется, так как его пропуск по умолчанию означает текущую статью.|name=
, который сначала проверяется по черному списку полей, которые никогда не должны отображаться (т. е. вызов должен возвращать nil при любых обстоятельствах). Если поле не находится в черном списке, оно затем проверяется по белому списку. Если имя поля совпадает, вызов вернет любое локально предоставленное значение, если оно предоставлено как второй неименованный параметр, или значение Wikidata в противном случае.|fetchwikidata=ALL
— это быстрый способ вернуть все поля, которые не занесены в черный список.|fetchwikidata=ALL
.|suppressfields=
|fetchwikidata=
Функция getValue принимает логический параметр onlysourced
, который подавляет возврат значений Wikidata, которые не являются источниками или получены только из проекта Wikimedia. Отсутствие параметра, пустой параметр ( |onlysourced=
) и пустая строка ( ""
) по умолчанию имеют значение true (т. е. возвращаются только ссылочные значения). Значения no
, false
и 0
рассматриваются как false (т. е. возвращаются все значения); любое другое значение является true (хотя |onlysourced=yes/no
рекомендуется для удобства чтения).
Функция getValue принимает логический параметр noicon
, который подавляет завершающий значок «редактировать в Wikidata» и ссылку для случаев, когда возвращаемое значение должно быть дополнительно обработано информационным полем (например, URL). Отсутствие параметра или пустой параметр ( |noicon=
) по умолчанию имеет значение false (т. е. добавляется значок). Пустая строка ( ""
) и значения no
, false
и 0
рассматриваются как false; любое другое значение является true (хотя |noicon=true
рекомендуется для удобства чтения).
После обсуждения на Module talk:WikidataIB #Видимость значка ручки , значок ручки скрыт от пользователей, которые не прошли автоматическое подтверждение. Это означает, что большинство читателей не видят значок ручки, и представляет собой баланс между эстетикой и вандализмом в Wikidata, с одной стороны, и желанием поощрять редактирование Wikidata, с другой.
Чтобы обработать требования к датам в форматах mdy, dmy или просто год, getValue принимает именованный параметр |df=
, который может принимать значения «dmy», «mdy» или «y» — по умолчанию «dmy».
Поскольку статья может требовать суффиксы BC и BCE, getValue принимает именованный параметр |bc=
, который может принимать значения "BC" или "BCE" - по умолчанию "BCE". Некоторые тестовые случаи показаны в Module talk:WikidataIB/testing #Calls to getValue for dates .
Параметр |rank=
, если задано значение preferred, возвращает только предпочтительные значения; если задано значение normal, возвращает только нормальные значения; если задано значение deprecated, возвращает только устаревшие значения. Если параметр задан как best, он возвращает предпочтительные значения, если они есть, в противном случае — нормальные значения. Любое значение параметра, начинающееся с «p», является «preferred»; любое значение параметра, начинающееся с «n», является «normal»; любое значение параметра, начинающееся с «d», является «deprecated»; любое значение параметра, начинающееся с «b», является «best». Разрешены комбинации значений, например, |rank=p n
возвращает все предпочтительные и нормальные значения (что является значением по умолчанию), хотя «best» переопределяет любые другие параметры.
Модуль имеет специальные обработчики для следующих типов данных:
Элементы, представляющие другие типы данных, в настоящее время не обрабатываются.
Третий класс типов данных может использоваться с параметрами:
|prefix=
, |postfix=
, |linkprefix=
,|linkpostfix=
Если вы не указали хотя бы один из |linkprefix=
или |linkpostfix=
, то используются только |prefix=
и |postfix=
. Например, при получении кода обсерватории Minor Planet Center (P717) в Венской обсерватории (Q532127):
{{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix="before " |postfix=" after" |qid=Q532127}}
→ до 045 после Используйте двойные кавычки для заключения значения параметра, если оно имеет начальные или конечные пробелы (в противном случае они удаляются). Если вы указываете |linkprefix=
или |linkpostfix=
, то используются все четыре параметра, и для каждого значения создается ссылка следующим образом:
[[ linkprefix WikidataValue1 linkpostfix | prefix WikidataValue1 postfix]], [[ linkprefix WikidataValue2 linkpostfix | prefix WikidataValue2 postfix]], etc.
Это позволяет создавать несколько ссылок на различные разделы статьи списка, например, Список кодов обсерваторий . Например, при получении кода обсерватории Minor Planet Center (P717) в Венской обсерватории (Q532127) мы можем сделать ссылки:
{{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix= |postfix= |linkprefix="List of observatory codes#" |linkpostfix= |qid=Q532127}}
→ [Список кодов обсерваторий#045 045] Параметры |prefix=
, |postfix=
, |linkprefix=
, |linkpostfix=
также применяются к элементам wikibase, если они связаны.
|sorted=<yes|no>
— это логическое значение, переданное для включения сортировки возвращаемых значений. Отсутствие параметра, пустая строка, «false», «no» или «0» отключает сортировку. Это всего лишь очень глупая алфавитная сортировка, которая сортирует связанные значения как «[[ ...»|sep=<separator characters>
позволяет определить разделитель между несколькими возвращаемыми значениями. Значение по умолчанию — ", "
(запятая плюс обычный пробел). Если разделитель имеет начальные или конечные пробелы, заключите его в двойные кавычки (например, |sep=" - "
). Любые двойные кавычки удаляются из разделителя. Символ вертикальной черты ( |
) должен быть экранирован как {{!}}
. Из соображений доступности (см. MOS:PLIST ) не используйте |sep=<br>
для вертикальных немаркированных списков; вместо этого используйте |list=ubl
.|list=<prose|cslist|hlist|ubl|blist|olist>
позволяет отображать несколько возвращаемых значений в виде предложения, где последние два значения разделены "и" ( |list=prose
), горизонтального списка, разделенного запятыми ( |list=cslist
, не использовать в прозе), горизонтального списка ( |list=hlist
), вертикального немаркированного списка ( ) |list=ubl
, вертикального маркированного списка ( |list=blist
) или вертикального упорядоченного списка ( |list=olist
). Они переопределяют разделитель и не отображают "значок пера", связанный с "Изменить в Wikidata".|list=p-1
отображает последнее значение. Объедините с для отображения n -го значения.|maxvals=n
Иногда ожидается, что свойство будет иметь одно значение, например, изображение (P18), но может иметь несколько значений в Wikidata. Настройка |maxvals=1
ограничит количество возвращаемых значений до 1. Любое другое значение возможно и функционирует так, как ожидается, но ноль рассматривается как «без ограничений».
Возвращаемое значение, представляющее статью в локальной вики, будет связано по умолчанию. Это включает перенаправления, но не страницы dab. Иногда необходимо не связывать возвращаемые значения, и это можно сделать, установив |linked=no
.
Если возвращаемое значение является количеством, добавляется название единиц, в которых оно выражено. Инфобоксы могут использовать сокращения вместо обычных единиц. Это можно сделать, установив |unitabbr=true
.
Может быть предоставлен параметр |qual=
, который вернет квалификаторы требуемого свойства, если они существуют. Если значение задано как список идентификаторов свойств, разделенных знаками пунктуации (например, P123, P456), то будут возвращены только значения квалификаторов с этим свойством. Если значение задано как |qual=ALL
, то будут возвращены все значения квалификаторов. Если значение задано как , то |qual=DATES
время начала (P580) и время окончания (P582) свойства возвращаются с разделителем даты. В каждом случае любые возвращаемые значения квалификаторов следуют за значением свойства и заключаются в скобки. Если возвращается несколько значений квалификаторов, по умолчанию они будут разделены запятыми, хотя разделитель можно изменить, указав |qsep=
(который может быть заключен в двойные кавычки, которые удаляются, чтобы можно было включить пробелы). Установка параметра |qsorted=yes
отсортирует возвращаемые значения квалификаторов по алфавиту и цифрам.
Некоторые из длинных параметров можно сократить, чтобы сделать дизайн инфобокса более компактным:
fwd → fetchwikidata
osd → onlysourced
spf → suppressfields
wdl → wdlinks
Обычно getValue
имеет набор значений по умолчанию для своих параметров, которые представляют собой консенсусные решения редакторов. Например, |onlysourced=
значения по умолчанию true
так, что будут возвращены только значения Wikidata, которые взяты из чего-то лучшего, чем "Wikipedia", и |fetchwikidata=
значения по умолчанию none
так, что ничего не возвращается, пока это не будет включено путем установки некоторых имен полей или "ALL". Это представляет собой отказоустойчивое состояние и позволяет сделать инфобоксы совместимыми с Wikidata, не изменяя ни одной статьи, пока это не будет включено для этой статьи .
Для упрощения использования getValue
в других обстоятельствах общие комбинации параметров могут быть указаны с помощью |parameterset=
или его псевдонимом |ps=
для удобства. В настоящее время реализованы две комбинации, и они следующие:
|ранг ="лучший"|fetchwikidata="ВСЕ"|onlysourced ="нет"|noicon = "истина"
|ранг = "лучший"|fetchwikidata = "ВСЕ"|onlysourced = "нет"|noicon = "истина"|связано = "нет"|plaindate = "истина"
При наличии спроса могут быть созданы и другие наборы.
Шаблон {{ wdib }} можно использовать как удобную оболочку для {{#invoke:WikidataIB |getValue}}
.
Функция getPreferredValue работает точно так же, как getValue, принимая те же параметры, но если какие-либо значения для свойства имеют установленный предпочтительный ранг, она вернет только эти значения. Теперь это устарело в пользу getValue|rank=best
.
|qid=
, который является идентификатором Wikidata для статьи. Обычно он не используется, так как его пропуск по умолчанию означает текущую статью.|suppressfields=
и|fetchwikidata=
format
устанавливает формат отображения на десятичный или dms. Любое значение, начинающееся с "dec", устанавливает десятичный; все остальное устанавливает dms.display
устанавливает позицию отображения на "inline", "title" или "inline, title". По умолчанию ничего нет (поэтому используется значение по умолчанию для {{ Coord }} , в настоящее время "inline").Функция getQualifierValue используется, когда мы хотим получить значение квалификатора. Нам нужно знать свойство и значение свойства, к которому относится квалификатор. Параметры:
|1=
)|pval=
|qual=
|onlysourced=
|qid=
В South Pole Telescope (Q1513315) есть событие со свойством (P793), которое имеет конструкцию значения (Q385378). У которого есть два квалификатора, время начала (P580) и время окончания (P582). Чтобы получить дату начала:
{{#invoke:WikidataIB |getQualifierValue |qid=Q1513315 |P793 |pval=Q385378 |qual=P580 |name=xyz |fetchwikidata=ALL }}
В телескопе Южного полюса он возвращает:
Функция getValueByQual возвращает значение свойства, которое имеет квалификатор с заданным значением сущности. Параметры:
|1=
)|qualID=
|qvalue=
|onlysourced=
|qid=
В мясе (Q10990) есть свойство pronunciation audio (P443), которое имеет несколько значений, каждое из которых имеет квалификатор language of work или name (P407). Мы можем вернуть значение свойства, квалификатор которого имеет значение Arabic (Q13955)
{{#invoke:WikidataIB |getValueByQual |qid=Q10990 |P443 |qualID=P407 |qvalue=Q13955 |fwd=ALL |osd=no |noicon=true}}
→ Ar-لحم.oggФункция getValueByLang возвращает значение свойства, которое имеет квалификатор языка работы или имени (P407), значение которого имеет заданный код языка. Параметры:
|1=
)|lang=xx[-yy]
. Если код не указан, используется язык по умолчанию.|onlysourced=
|qid=
В OSDN (Q7565108) есть официальный веб-сайт свойства (P856), который имеет несколько значений, каждое из которых имеет квалификатор языка работы или имени (P407). Мы можем вернуть значение свойства, значение квалификатора языка работы или имени (P407) (элемент WD) которого само по себе имеет свойство кода языка Wikimedia (P424), которое равно "ja", т. е. японский (Q5287)
{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |lang=ja |fwd=ALL |osd=no |noicon=true}}
→ https://ja.osdn.net/Если |lang=
не указано, мы можем получить то же значение с языком по умолчанию (в данном случае это английский (Q1860), а его код языка Викимедиа (P424) — «en»).
{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |fwd=ALL |osd=no |noicon=true}}
→ https://osdn.net/getLink имеет qid сущности Wikidata, переданный как первый неименованный параметр или как |qid=
Если есть ссылка на статью в локальной Wiki, он возвращает ссылку на статью с меткой Wikidata в качестве отображаемого текста. Если ссылки нет, он возвращает метку как обычный текст. Если метки на локальном языке нет, он отображает qid.
{{#invoke:WikidataIB |getLink |Q29016906}}
→ Кориска и Сатир{{#invoke:WikidataIB |getLink |Q3621491}}
→ археологgetLabel имеет qid сущности Wikidata, переданный как первый неименованный параметр или как|qid=
Возвращает метку Wikidata на локальном языке для элемента по заданному qid. Если метки на локальном языке нет, вместо нее возвращается qid. Обратите внимание, что это метка, присвоенная записи Wikidata на том же языке, что и текущая Wiki, если метка существует.
{{#invoke:WikidataIB |getLabel |Q29016906}}
→ Кориска и Сатир{{#invoke:WikidataIB |getLabel |Q3621491}}
→ археолог{{#invoke:WikidataIB |getLabel |Q19805408}}
→ Модуль:Библио/Ouvragelabel имеет qid сущности Wikidata, переданный как первый неименованный параметр или как|qid=
Возвращает метку Wikidata на локальном языке для элемента с указанным qid или связанного с текущей страницей. Если метки на локальном языке нет, возвращается пустая строка. Обратите внимание, что это метка, присвоенная записи Wikidata на том же языке, что и текущая Wiki, если метка существует.
{{#invoke:WikidataIB |label |Q29016906}}
→ Кориска и Сатир{{#invoke:WikidataIB |label |Q3621491}}
→ археолог{{#invoke:WikidataIB |label |Q19805408}}
→ Модуль:Библио/OuvragegetAT имеет qid сущности Wikidata, переданный как первый неименованный параметр или как |qid=
Если есть ссылка на статью в локальной Wiki, она возвращает ссылку в виде обычного текста, т. е. название статьи. Если ссылки нет, она ничего не возвращает. Обратите внимание, что это название статьи в текущей Wikipedia, если межъязыковая ссылка существует в записи Wikidata.
{{#invoke:WikidataIB |getAT |Q29016906}}
→ Кориска и Сатир{{#invoke:WikidataIB |getAT |Q3621491}}
→ АрхеологgetDescription имеет qid сущности Wikidata, переданный как |qid= (по умолчанию используется связанный qid текущей статьи, если он пропущен). Он имеет локальный параметр, переданный как первый неименованный параметр. Любой переданный локальный параметр (кроме "Wikidata" или "none") становится возвращаемым значением. Он возвращает описание статьи для сущности Wikidata в виде обычного текста, если локальный параметр - "Wikidata". Ничего не возвращается, если описание не существует или "none" передано как локальный параметр.
{{#invoke:WikidataIB |getDescription |qid=Q29016906 |wikidata}}
→ картина Артемизии Джентилески{{#invoke:WikidataIB |getDescription |qid=Q29016906 |A painting}}
→ Картина{{#invoke:WikidataIB |getDescription |qid=Q29016906 |none}}
→{{#invoke:WikidataIB |getDescription |qid=Q3621491 |wikidata}}
→ человек, изучающий деятельность человека в прошлом{{#invoke:WikidataIB |getDescription |qid=Q3621491 |A profession}}
→ Профессия{{#invoke:WikidataIB |getDescription |qid=Q3621491 |none}}
→formatDate принимает дату и время обычного формата из mw.wikibase.entity:formatPropertyValues, например «1 августа 30 г. до н.э.» в качестве параметра 1 и форматирует его в соответствии с параметрами df (формат даты) и bc.
{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BCE |df=dmy}}
→ 1 августа 30 г. до н.э.{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BC |df=mdy}}
→ 1 августа 30 г. до н.э.checkBlacklist позволяет тесту проверить, разрешено ли именованное поле. Возвращает true, если поле не занесено в черный список (т.е. разрешено) Возвращает false, если поле занесено в черный список (т.е. запрещено)
Пример:
{{#if:{{#invoke:WikidataIB |checkBlacklist |name=nationality |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}}
→ не в черном списке{{#if:{{#invoke:WikidataIB |checkBlacklist |name=birth_place |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}}
→ не в черном спискеemptyor возвращает nil, если его первый неименованный аргумент представляет собой просто знаки препинания, пробелы или HTML-теги, в противном случае он возвращает аргумент без изменений (включая начальные и конечные пробелы).
Если аргумент может содержать «=», то его необходимо вызвать явно:
| 1 = whatever-the-argument-is
В этом случае начальные и конечные пробелы обрезаются.
Он находит применение в информационных окнах, где может заменить такие тесты, как:
{{#if: {{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}} | <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> | }}
с формой, которая использует только один вызов Wikidata:
{{#invoke |WikidataIB |emptyor |1= <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> }}
labelorid — это публичная функция для предоставления вывода labelOrId().
Q-номер (идентификатор сущности) передается как |qid= или как неименованный параметр.
Он возвращает метку Wikidata для этой сущности или qid, если метки не существует.
|qid=
;exampl предоставляет дамп всего свойства, указанного в первом неименованном параметре (или в |pid=
качестве именованного псевдонима) из элемента, указанного параметром 'qid', или из элемента, соответствующего текущей странице, если qid не указан. Оба параметра могут быть неименованными и указанными в любом порядке.
Работает аналогично функции Dump , но загружает только одно утверждение, а не всю запись Wikidata.
{{#invoke:WikidataIB |examine |qid=Q1396889 |P50}}
Существует Template:Examine , который действует как оболочка для вызова.
{{examine |Q4048254 |P31}}
→таблица №1 { таблица №2 { ["id"] = "Q4048254$9af461b4-a1d0-4c67-a7f0-f668944a17d6", ["mainsnak"] = таблица#3 { ["datatype"] = "wikibase-item", ["значение_данных"] = таблица#4 { ["type"] = "wikibase-entityid", ["значение"] = таблица#5 { ["тип-сущности"] = "элемент", ["id"] = "Q4656150", ["числовой-идентификатор"] = 4656150, }, }, ["свойство"] = "P31", ["snaktype"] = "значение", }, ["ранг"] = "нормальный", ["ссылки"] = таблица#6 { таблица №7 { ["хеш"] = "3bf39867b037e8e494a8389ae8a03bad6825a7fc", ["snaks"] = таблица № 8 { ["P143"] = таблица № 9 { таблица № 10 { ["datatype"] = "wikibase-item", ["значение_данных"] = таблица#11 { ["type"] = "wikibase-entityid", ["значение"] = таблица#12 { ["тип-сущности"] = "элемент", ["id"] = "Q191168", ["числовой-идентификатор"] = 191168, }, }, ["свойство"] = "P143", ["snaktype"] = "значение", }, }, }, ["snaks-order"] = таблица № 13 { "П143", }, }, }, ["тип"] = "утверждение", }, таблица № 14 { ["id"] = "q4048254$d1f08825-499b-8d4a-d1ee-304b2498a7fd", ["mainsnak"] = таблица № 15 { ["datatype"] = "wikibase-item", ["значение_данных"] = таблица#16 { ["type"] = "wikibase-entityid", ["значение"] = таблица#17 { ["тип-сущности"] = "элемент", ["id"] = "Q14204246", ["числовой-id"] = 14204246, }, }, ["свойство"] = "P31", ["snaktype"] = "значение", }, ["ранг"] = "нормальный", ["тип"] = "утверждение", },}
url2 принимает параметр url=, который является правильным URL-адресом, и форматирует его для использования в информационном окне.
Примеры:
{{#invoke:WikidataIB |url2 |url= http://www.example.com/ }}
→ www.example.com <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span>
{{#invoke:WikidataIB |url2 |url= http://www.example.com/path/ }}
→ www.example.com/path/ <span class="url">[http://www.example.com/path/ www<wbr/>.example<wbr/>.com<wbr/>/path<wbr/>/]</span>
{{#invoke:WikidataIB |url2 |url= {{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}} }}
→ https://www.audi.co.za/, https://www.audi.de/, https://www.audi.fr/ www.audi.com, https://www.audi.co .za/, https://www.audi.de/, https://www.audi.fr/ <span class="url">[https://www.audi.com, https://www.audi.co.za/, https://www.audi.de/, https://www.audi.fr/ www<wbr/>.audi<wbr/>.com, https:<wbr/>/<wbr/>/www<wbr/>.audi<wbr/>.co<wbr/>.za<wbr/>/, https:<wbr/>/<wbr/>/www<wbr/>.audi<wbr/>.de<wbr/>/, https:<wbr/>/<wbr/>/www<wbr/>.audi<wbr/>.fr<wbr/>/]</span> <span class='penicon autoconfirmed-show'>[[Файл:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Изменить это на Wikidata|link=https://www.wikidata.org/wiki/Module:WikidataIB/Q23317?uselang=en#P856|Изменить это на Wikidata]]</span>
{{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}}
→ https://www.audi.com, https://www.audi.co.za/, https://www.audi.de/, https://www.audi.fr/ https://www.audi.com, https://www.audi.co.za/, https://www.audi.de/, https://www.audi.fr/ <span class='penicon autoconfirmed-show'>[[Файл:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Изменить это на Wikidata|link=https://www.wikidata.org/wiki/Module:WikidataIB/Q23317?uselang=en#P856|Изменить это на Wikidata]]</span>
{{#invoke:WikidataIB |url2 |url= {{url|http://www.example.com/}} }}
→ www.example.com www <span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span> www<wbr/>.example<wbr/>.com<wbr/>/ www<wbr<wbr/>/><wbr/>.example<wbr<wbr/>/><wbr/>.com]<<wbr/>/span>]</span>
Сравнение с выводом {{ URL }} :
{{URL | http://www.example.com/ }}
→ www.example.com<span class="url">[http://www.example.com/ www<wbr/>.example<wbr/>.com]</span>
{{URL | http://www.example.com/path/ }}
→ www.example.com/path/<span class="url">[http://www.example.com/path/ www<wbr/>.example<wbr/>.com<wbr/>/path<wbr/>/]</span>
{{URL | {{wikidata|property|Q23317|P856}} }}
→ www.audi.com<span class="url">[https://www.audi.com www<wbr/>.audi<wbr/>.com]</span>
{{wikidata|property|Q23317|P856}}
→ https://www.audi.comhttps://www.audi.com
Обычно вызов getValue будет вызываться в определении инфобокса с использованием соответствующих параметров шаблона. Одна простая реализация приведена в качестве примера в Template:Infobox book/Wikidata/Sandbox . В качестве иллюстрации поле 'author' в инфобоксе кодируется следующим образом:
| label2 = Автор{{#if:{{{authors|}}}|s}}| data2 = {{#invoke:WikidataIB |getValue |P50 |name=author |fetchwikidata={{{fetchwikidata|}}} |suppressfields={{{suppressfields|}}} |{{{authors|{{{author|}}}}}} }}
Свойство, которое должно быть извлечено, — это первый неименованный параметр. В данном случае это автор (P50).
Имя поля передается, |name=
и это имя проверяется по черному и белому спискам. Чтобы всегда подавлять поле автора в определенной статье, редактор устанавливает |suppressfields=author
в информационном поле. Поле автора тогда никогда не будет отображаться.
Если поле не занесено в черный список, то можно настроить инфобокс на отображение локально предоставленного значения для автора, просто установив , например, в инфобоксе. Он также принимает . Если имя поля находится в белом списке, например , и локальное значение не указано, то инфобокс отобразит значение, полученное из Wikidata. Можно использовать любые разделители, кроме | и {}.|author=George Orwell
|authors=
|fetchwikidata=author; genre; pub_date; pages; dewey; congress
Вкратце, |fetchwikidata=ALL
будут извлечены все поля, которые не занесены в черный список, при условии, что в статье для данного поля еще не указано локальное значение.
Поскольку метки Wikidata обычно имеют нижний регистр, функцию ucfirst из Module:String2 можно использовать для преобразования первой буквы возвращаемого текста в заглавную, например:
{{#invoke:String2 | ucfirst | {{#invoke:WikidataIB |getValue |P136 |name=genre |fetchwikidata=ALL |onlysourced=false}} }}
в Скотном дворе (Q1396889) производит:Основное использование getValue:
{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{localparameter|}}} }}
Полный набор параметров:
{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |wdl={{{wikidatalink|}}} |df={{dateformat|}} |bc={{{bc|}}} |prefix= |postfix= |linkprefix= |linkpostfix= |sorted={{{sorted|}}} |sep={{{separator|}}} |list={{listtype|}}} |{{{localparameter|}}} }}
Конечно, любой из параметров может быть зафиксирован для данного поля в инфобоксе, а не брать параметр, предоставленный инфобоксу, что повлияет на все поля. Например, одно поле может устанавливать |list=hlist
, где ожидается ряд коротких слов; тогда как другое поле может использовать |list=ubl
, где требуется немаркированный вертикальный список из нескольких слов в каждой строке.
Вызов getCoords отобразит вывод Template:Coord при предоставлении координат, возвращенных Wikidata. Его можно закодировать следующим образом:
|label20 = Координаты| data20 = {{#invoke:WikidataIB |getCoords |name=coordinates |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{coordinates|}}} }}
Примером может служить Шаблон:Информационный блок биосферный заповедник.
{{Информационный блок биосферного заповедника| fetchwikidata = ВСЕ}}
Отображает координаты в обычных позициях при использовании в статье, где Викиданные содержат координаты.
Поскольку параметр |fetchwikidata=
необходим для любой функциональности Wikidata, существующее информационное поле может быть заменено информационным полем, включающим эти вызовы, без каких-либо изменений в любой статье. Каждая статья, использующая новое информационное поле, может быть позже включена путем предоставления |fetchwikidata=ALL
, или списка обязательных полей для этой статьи. В этот момент редактор должен включить функциональность, чтобы проверить, что нежелательные поля теперь не отображаются. Если это так, их можно добавить в черный список для статьи, установив |suppressfields=
в список нежелательных полей.
Если всегда будет необходимо, чтобы определенное поле содержало только значения, на которые есть ссылки, используйте getValue
, убедившись, что |onlysourced=
не установлено значение «false», «0» или «no». По умолчанию он исключит значения, которые не имеют источника или имеют только источник из Википедии, тем самым упрощая проверку на уровне статьи. Если данные без источника приемлемы (!), установите |onlysourced=no
. Поскольку создание автоматизированного механизма, который знает, является ли существующий источник надежным или нет в данном контексте, выходит за рамки моего понимания, эта работа все равно должна выполняться на уровне статьи редактором, знакомым с предметом. Это всегда следует делать при первом включении Викиданных для этой статьи.
{{#invoke:
модуль Lua, возвращающий значение, для которого требуется определенное исключение.|code=
и использует URL-адрес форматирования как |url=
для создания ссылки на внешний ресурс, который использует код как отображение.Этот раздел взят из Template:Infobox book/Wikidata/Sandbox/doc .
{{Книга Infobox/Викиданные/Песочница| подавить поля =| fetchwikidata =| имя = Скотный двор| title_orig = Скотный двор: Сказочная история| изображение = Скотный двор - 1-е издание.jpg| размер_изображения = 200 пикселей| подпись = Обложка первого издания| автор = [[Джордж Оруэлл]]| страна = Соединенное Королевство| язык = английский| жанр = Политическая сатира}}
Работает как неинформационное информационное окно: отображаются только локально предоставленные параметры.
{{Книга Infobox/Викиданные/Песочница| имя = Скотный двор| title_orig = Скотный двор: Сказочная история| изображение = Скотный двор - 1-е издание.jpg| размер_изображения = 200 пикселей| подпись = Обложка первого издания| автор = [[Джордж Оруэлл]]| страна = Соединенное Королевство| язык = английский| жанр = Политическая сатира}}
Черный и белый списки можно не указывать, если они не используются.
{{Книга Infobox/Викиданные/Песочница| fetchwikidata = автор; жанр; дата_публикации; страницы; дьюи; конгресс}}
Извлекает данные об авторе, дате публикации, количестве страниц, индексе Дьюи и значениях номера каталога Библиотеки Конгресса из Викиданных.
{{Книга Infobox/Викиданные/Песочница| fetchwikidata = ВСЕ}}
В качестве сокращения |fetchwikidata=
параметр может быть установлен на ALL для извлечения всех доступных полей. Любое поле может быть подавлено путем указания его в |suppressfields=
или переопределено путем предоставления локального значения.
{{Книга Infobox/Викиданные/Песочница| suppressfields = жанр| fetchwikidata = автор; жанр; дата_публикации; страницы; дьюи; конгресс}}
Поле жанра всегда будет подавлено, даже если указано локальное значение.
{{Книга Infobox/Викиданные/Песочница| suppressfields = жанр| fetchwikidata = автор; жанр; дата_публикации; страницы; дьюи; конгресс| жанр = Политическая сатира}}
{{Книга Infobox/Викиданные/Песочница| fetchwikidata = автор; жанр; дата_публикации; страницы; дьюи; конгресс| жанр = Политическая сатира}}
Поле жанра настроено на отображение «Политическая сатира», независимо от того, что хранится в Викиданных.
{{Книга Infobox/Викиданные/Песочница| fetchwikidata = ВСЕ| жанр = Роман}}
Поле жанра настроено на отображение «Роман», независимо от того, что хранится в Викиданных.
{{Книга Infobox/Викиданные/Песочница| подавить поля =| fetchwikidata = автор; дата_публикации; страницы; дьюи; конгресс}}
Поле жанра не будет извлечено из Wikidata. Импортируются только автор, дата публикации, количество страниц, индекс Дьюи и номер каталога Библиотеки Конгресса. Будет отображено локальное значение жанра.
WikidataIB был разработан для работы на вики на любом языке (или проекте Wikimedia) с минимальными изменениями. Дополнительный подмодуль Module:WikidataIB/i18n может быть создан для замены значений сообщений об ошибках, порядковых суффиксов и т. д., как показано в локальных определениях i18n в модуле. Хотя тот же результат может быть получен путем прямого редактирования этих значений в WikidataIB, использование подмодуля позволит обновленной версии WikidataIB напрямую заменить старый модуль без необходимости повторного редактирования определений i18n.
Если в целевой Вики существует соглашение, что определенные элементы обычно не связаны (см. пример en:Wikipedia:Manual of Style/Linking #What usual not should be linked ), то можно создать подмодуль Module :WikidataIB/nolinks для составления списка элементов, которые не должны быть связаны, используя в качестве примера подмодуль английской Википедии.
Если в целевой Вики существует соглашение, что определенные работы следует выделять курсивом или цитировать (см. пример в en:Wikipedia:Manual of Style/Text formatting #Names and titles ), то можно создать подмодуль Module:WikidataIB/titleformats для составления списка элементов, которые следует выделять курсивом или цитировать, используя в качестве примера подмодуль английской Википедии.
Большая часть выходных данных модуля будет использовать локальный язык (или любой указанный пользователем язык в многоязычных вики), где ссылка на сайт или метка существуют в Wikidata. Однако даты более сложны и не обрабатываются идеально на всех языках. Чтобы решить эту проблему, WikidataIB использует Module:Complex date – разработанный на Commons Jarekt – который позволяет расширить поддержку для более широкого спектра языков. В результате необходимо установить Complex date и его зависимости вместе с WikidataIB при установке в другом проекте Wikimedia.
Модуль:Complex_date опирается на следующие модули:
Если не указано иное, официальную версию каждого модуля можно найти на Commons, хотя версии в английской Википедии обычно синхронизируются.
|fetch=
и |ifeq=
похож на этот модуль |fetchwikidata=
или|fwd=
-- Версия: 2023-07-10-- Модуль для реализации использования черного и белого списков для полей инфобокса-- Может принимать именованный параметр |qid, который является идентификатором Wikidata для статьи-- если не указан, будет использован идентификатор Wikidata, связанный с текущей страницей.-- Поля в черном списке никогда не должны отображаться, т.е. модуль должен возвращать ноль при любых обстоятельствах-- Поля в белом списке возвращают локальное значение, если оно существует, или значение Wikidata в противном случае-- Имя поля, из которого вызывается эта функция, передается в именованном параметре |name-- Имя обязательно при использовании черного или белого списка,-- поэтому модуль возвращает nil, если он не указан.-- черный список передается в именованном параметре |suppressfields (или |spf)-- белый список передается в именованном параметре |fetchwikidata (или |fwd)требуется("строгий")локальный р = {}local cdate — инициализируется как nil и загружает функцию _complex_date только при необходимости-- Модуль: Комплексная дата загружается лениво и имеет следующие зависимости:-- Модуль:Календарь-- Модуль:ISOdate-- Модуль:ДатаI18n-- Модуль:I18n/комплексная дата-- Модуль:Порядковый-- Модуль:I18n/порядковый-- Модуль:Данет-- Модуль:Formatnum-- Модуль: Лингвистический---- Следующее взято с https://www.mediawiki.org/wiki/Module:WikidataIB/Wikibase/DataModel#Dates_and_times,-- необходимо использовать Модуль:Комплексная дата, который, по-видимому, требует точности даты в виде строки.-- Было бы лучше, если бы слово «миллениум» могли написать только авторы страницы mediawiki.локальный дп = {[6] = "тысячелетие",[7] = "век",[8] = "десятилетие",[9] = "год",[10] = "месяц",[11] = "день",}локальный i18n ={["ошибки"] ={["property-not-found"] = "Свойство не найдено.",["Недвижимость не предоставлена"] = "Недвижимость не предоставлена",["entity-not-found"] = "Сущность Викиданных не найдена.",["unknown-claim-type"] = "Неизвестный тип претензии.",["unknown-entity-type"] = "Неизвестный тип сущности.",["qualifier-not-found"] = "Квалификатор не найден.",["site-not-found"] = "Проект Викимедиа не найден.",["labels-not-found"] = "Метки не найдены.",["descriptions-not-found"] = "Описания не найдены.",["aliases-not-found"] = "Псевдонимы не найдены.",["unknown-datetime-format"] = "Неизвестный формат даты и времени.",["local-article-not-found"] = "Статья доступна в Wikidata, но не в Wikipedia",["dab-page"] = "(dab)",},["месяцев"] ={«Январь», «Февраль», «Март», «Апрель», «Май», «Июнь»,«Июль», «Август», «Сентябрь», «Октябрь», «Ноябрь», «Декабрь»},["век"] = "век",["До н.э."] = "До н.э.",["до н.э."] = "до н.э.",["порядковый"] ={[1] = "ст",[2] = "й",[3] = "рд",["по умолчанию"] = "th"},["файловое пространство"] = "Файл",["Неизвестно"] = "Неизвестно",["NaN"] = "Не число",-- установите следующее в качестве имени категории отслеживания,-- например, «[[Категория:Статьи с отсутствующей информацией Wikidata]]» или «» для отключения:["missinginfocat"] = "[[Категория:Статьи с отсутствующей информацией Wikidata]]",["editonwikidata"] = "Изменить это в Викиданных",["latestdatequalifier"] = функция (дата) возвращает "до " .. дата конец,-- некоторые языки, например, боснийский, используют точку в качестве суффикса после каждой цифры в дате["датанумберсуффикс"] = "",["разделитель списка"] = ", ",["множители"] = {[0] = "",[3] = "тысяча",[6] = "миллион",[9] = "миллиард",[12] = "триллион",}}-- Это позволяет модулю интернационализации переопределить приведенную выше таблицу.если 'en' ~= mw.getContentLanguage():getCode() тогдаrequire("Модуль:i18n").loadI18n("Модуль:WikidataIB/i18n", i18n)конец-- Этот фрагмент html реализует сворачиваемый контейнер. Проверьте, существуют ли классы на вашей вики.локальный коллапсdiv = '<div class="mw-collapsible mw-collapsed" style="width:100%; overflow:auto;" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}">'-- Некоторые элементы не должны быть связаны.-- Каждая вики может создать список тех, что находятся в Module:WikidataIB/nolinks-- Он должен возвращать таблицу с именем itemsindex, содержащую значение true для каждого элемента, который не должен быть связанлокальный donotlink = {}локальный nolinks_exists, nolinks = pcall(mw.loadData, "Модуль:WikidataIB/nolinks")если nolinks_exists тогдаdonotlink = nolinks.itemsindexконец-- В соответствии с требованиями Wikipedia:Manual of Style/Titles некоторые типы элементов выделены курсивом, а другие заключены в кавычки.-- Подмодуль [[Module:WikidataIB/titleformats]] перечисляет идентификаторы сущностей, используемые в «экземпляре» (P31),-- что позволяет этому модулю определять значения, которые следует отформатировать.-- WikidataIB/titleformats экспортирует таблицу p.formats, которая индексируется по идентификатору сущности и содержит значение " или ''локальные форматы = {}локальный titleformats_exists, titleformats = pcall(mw.loadData, «Модуль:WikidataIB/titleformats»)если titleformats_exists тогдаформаты = titleformats.formatsконец-------------------------------------------------- ------------------------------- Частные мероприятия-------------------------------------------------- --------------------------------------------------------------------------------- ------------------------------- makeOrdinal необходимо интернационализировать вместе с вышеперечисленным:-- принимает количественное числительное как число и возвращает порядковое число как строку-- нам нужны три исключения в английском языке для 1-го, 2-го, 3-го, 21-го, .. 31-го и т.д.-------------------------------------------------- ------------------------------- Зависимости: нет-------------------------------------------------- -----------------------------локальный makeOrdinal = функция(кардинальный)локальный ordsuffix = i18n.ordinal.defaultесли кардинал % 10 == 1 тогдаordsuffix = i18n.ordinal[1]elseif кардинал % 10 == 2 тогдаordsuffix = i18n.ordinal[2]elseif кардинал % 10 == 3 тогдаordsuffix = i18n.ordinal[3]конец-- В английском языке 1, 21, 31 и т. д. используют «st», а 11, 111 и т. д. используют «th».-- аналогично для 12 и 13 и т.д.если (кардинальное число % 100 == 11) или (кардинальное число % 100 == 12) или (кардинальное число % 100 == 13) тогдаordsuffix = i18n.порядковый.по умолчаниюконецвернуться кстроке(кардинал) .. ordsuffixконец-------------------------------------------------- ------------------------------- findLang принимает параметр "langcode", если он указан и действителен-- в противном случае он пытается создать его на основе установленного пользователем языка ({{int:lang}})-- в противном случае используется язык контента вики.-- Возвращает языковой объект-------------------------------------------------- ------------------------------- Зависимости: нет-------------------------------------------------- -----------------------------локальный findLang = функция(код_языка)местный лангобжlangcode = mw.text.trim(langcode или "")если mw.language.isKnownLanguageTag(код_языка) тогдаlangobj = mw.language.new(код языка)ещеlangcode = mw.getCurrentFrame():callParserFunction('int', {'lang'})если mw.language.isKnownLanguageTag(код_языка) тогдаlangobj = mw.language.new(код языка)ещеlangobj = mw.language.getContentLanguage()конецконецвернуть лангобжконец-------------------------------------------------- ------------------------------- _getItemLangCode принимает параметр qid (используя qid текущей страницы, если он пуст)-- Если элемент для этого qid имеет свойство country (P17), он смотрит на первое предпочтительное значение-- Если в стране есть официальный язык (P37), то учитывается первое предпочтительное значение.-- Если у этого официального языка есть код языка (P424), он возвращает первое предпочтительное значение-- В противном случае ничего не возвращается.-------------------------------------------------- ------------------------------- Зависимости: нет-------------------------------------------------- -----------------------------локальный _getItemLangCode = функция(qid)qid = mw.text.trim(qid или ""):upper()если qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() endесли не qid, то вернуть конецlocal prop17 = mw.wikibase.getBestStatements(qid, "P17")[1]если не prop17 или prop17.mainsnak.snaktype ~= "value", то вернуть конецлокальный qid17 = prop17.mainsnak.datavalue.value.idлокальный prop37 = mw.wikibase.getBestStatements(qid17, "P37")[1]если не prop37 или prop37.mainsnak.snaktype ~= "value", то вернуть конецлокальный qid37 = prop37.mainsnak.datavalue.value.idлокальный prop424 = mw.wikibase.getBestStatements(qid37, "P424")[1]если не prop424 или prop424.mainsnak.snaktype ~= "value", то вернуть endвернуть prop424.mainsnak.datavalue.valueконец-------------------------------------------------- ------------------------------- roundto принимает число (x)-- и возвращает его округленным до (sf) значащих цифр-------------------------------------------------- ------------------------------- Зависимости: нет-------------------------------------------------- -----------------------------локальное округление = функция (x, sf)если x == 0, то вернуть 0 конецлокальный с = 1если х < 0, тох = -хс = -1конецесли sf < 1, то sf = 1 конецлокальный p = 10 ^ (math.floor(math.log10(x)) - sf + 1)x = мат.пол(x / p + 0,5) * p * s-- если оно целое, привести к целому числу:если x == math.floor(x) тогда x = math.floor(x) конецвернуть хконец-------------------------------------------------- ------------------------------- decimalToDMS принимает десятичные градусы (x) с точностью (p)-- и возвращает градусы/минуты/секунды в соответствии с точностью-------------------------------------------------- ------------------------------- Зависимости: нет-------------------------------------------------- -----------------------------локальная decimalToDMS = функция(x, p)-- если p не указано, используйте точность около 0,1 секундыесли не tonumber(p), то p = 1e-4 конецлокальный d = math.floor(x)локальная мс = (x - d) * 60если p > 0,5 то -- точность > 1/2 градусаесли мс > 30 то d = d + 1 конецмс = 0конецлокальный m = math.floor(ms)локальный s = (мс - м) * 60если p > 0,008, то -- точность > 1/2 минутыесли s > 30, то m = m +1 конецс = 0elseif p > 0,00014 тогда -- точность > 1/2 секундыs = мат.пол(s + 0,5)elseif p > 0.000014 тогда -- точность > 1/20 секундыs = мат.пол(10 * s + 0,5) / 10elseif p > 0.0000014 тогда -- точность > 1/200 секундыs = мат.пол(100 * s + 0,5) / 100в противном случае -- на данный момент ограничьтесь 3 дек-местамиs = мат.пол(1000 * s + 0,5) / 1000конецвернуться д, м, сконец-------------------------------------------------- ------------------------------- decimalPrecision принимает десятичную дробь (x) с точностью (p)