Обсуждение модуля:Wikidata

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Автовикификация[править код]

Люди, где вообще документация? Ну или комментарии толковые хотя бы.

Как получить значение свойства без автовикификации? Актуально для свойств-категорий:

{{#invoke:Wikidata|formatStatements|property=P1200|plain=1}} → Волга даёт [[Категория:Бассейн Волги]], что по понятным причинам нафиг не надо. Advisor, 15:00, 15 марта 2014 (UTC)
Конструкция {{#property:P1200}} возвращает Категория:Бассейн Волги, подойдёт? — Ivan A. Krestinin 16:23, 15 марта 2014 (UTC)
То что надо, спасибо. Advisor, 16:30, 15 марта 2014 (UTC)
  • Добавил немного «документации». — VlSergey (трёп) 23:53, 16 августа 2014 (UTC)

И первые станут последними[править код]

Таблица entity.claims начинается с 0 и pairs ставит нулевой элемент в конец, что бывает не очень хорошо. Обычный цикл отрабатывает нормально. Желательно исправить. Для примера: пентамин, вставить {{#property:p494}} и сравнить результат с карточкой. WBR, BattlePeasant 16:51, 23 июня 2014 (UTC)

getEntityFromId[править код]

@DonRumata: очень хорошо, что Вы заметили, что функция getEntity является deprecated. Так как мы с putnik, с Вашей точки зрения, допустили множество ошибок (в том числе я лично — непоправимых), может быть Вы сможете исправить этот кусок кода таким образом, чтобы использовалась функция getEntityObject, причём организовав рабочий процесс таким образом, как Вы неоднократно указывали: с открытыми обсуждениями, проверками и так далее? — VlSergey (трёп) 15:45, 17 августа 2014 (UTC)

  • Ну, дров-то вы наломали изрядно, да ещё всех щепками закидали :-) :-| (см. мой последний пост здесь) Однако именно getEntity лучше, быть может, оставить, так как у неё целых три преимущества:
    1. Она deprecated. То есть на порядок меньше шансов, что чьи оч.умелые ручки её будут улучшать и развивать. При этом уже без шансов, что её уберут.
    2. У неё индекс с нуля, а не со школярской единицы, как везде в Lua и в getEntityObject. Легче поддерживать единство мысли между Lua и нормальными языками.
    3. Она не боится id в обоих регистрах (P12345 и p12345)
  • Так что м.б. лучше оставить. --NeoLexx 04:45, 19 августа 2014 (UTC)

Координаты: очередная безответственность[править код]

Цензурных слов не хватает, буду краток: наворотили, поправьте. Advisor, 18:20, 23 сентября 2014 (UTC)

  • Поправил вроде, но конечно же лучше бы модуль Wikidata выводил latitude и longitude без форматирования, а то уж больно много сил нужно что бы его убрать. --Туча 00:43, 10 октября 2014 (UTC)

Категория:Википедия:Статьи с переопределением значения из Викиданных[править код]

✔  Запрос выполнен
Описание проблемы[править код]

В категорию Википедия:Статьи с переопределением значения из Викиданных попадают страницы, для которых никаких данных нет, и даже страницы на викиданных для них не существует, в том числе подстраницы участников, которые статьями не являются. Более того внутри модуля (функции formatProperty,formatStatements) предполагается их вызов в том числе и с определённым значением nocat. Такой параметр обычно говорит что категории не нужны, так вот даже в этом случае категория будет поставлена.

Предлагаемая модификация[править код]
Заменить код в строках 612-625: на код:
-- если значение передано в параметрах вызова то выводим только его
if args.value and args.value ~= '' then
	if ( plain ) then -- опция, запрещающая оформление значения, поэтому никак не трогаем
		return args.value
	else
		-- если трогать всё-таки можно, добавляем категорию-маркер
		return args.value .. categoryLocalValuePresent;
	end
end

-- проверка на отсутствие обязательного параметра property 
if not frame.args.property then
	throwError( 'property-param-not-provided' );
end
-- проверка на отсутствие обязательного параметра property 
if not frame.args.property then
	throwError( 'property-param-not-provided' )
end

-- если значение передано в параметрах вызова то выводим только его
if frame.args.value and frame.args.value ~= '' then
	if plain or frame.args.nocat or frame:callParserFunction( '#property', frame.args.property )=='' then
		-- опция, запрещающая оформление значения, поэтому никак не трогаем
		return frame.args.value
	else
                -- если трогать всё-таки можно, добавляем категорию-маркер
                return args.value .. categoryLocalValuePresent;
        end
end

Может быть можно как-то и проще это реализовать, но мне кажется это нужно сделать, ибо смысл категории теряется, если в неё запихиваются просто все страницы, где используется {{Wikidata}} со значением по умолчанию, даже если никаких викиданных нет. --Туча 19:25, 9 октября 2014 (UTC)

✔ Сделано --DR 11:46, 14 октября 2014 (UTC)

Координаты[править код]

Просьба при использовании параметров subvalue=latitude и subvalue=longitude не оборачивать результаты в span или обеспечить работу plain=true с этими параметрами. WBR, BattlePeasant 07:54, 18 октября 2014 (UTC)

  • В принципе форматирование можно резать уже после модуля, хотя конечно же лучше без него. Проблема в том что там где обрабатывается plain, subvalue вообще не учитывается, а там где работает subvalue, наоборот plain уже давно обработан. :-) Раздел выше #Координаты: очередная безответственность - как раз был написан потому что у latitude и longitude появилось оформление и у народа координаты в некоторых статьях сломались. --Туча 11:40, 18 октября 2014 (UTC)
    • А кто резать умеет? Хотя, конечно, это не дело. WBR, BattlePeasant 14:58, 18 октября 2014 (UTC)
      • Я написал что-то типа этого: {{Геокар-Координаты/Обрезать форматирование}} с одним параметром - оно тремя вызовами модуля стринг сие делает, но могут быть проблемы с глубиной шаблонов, их в координатах и так очень много. --Туча 20:16, 22 октября 2014 (UTC)
        • Ещё одна проблема обнаружилась, if-wikidata как-то странно работает с p625. В статьях — нормально, в документации шаблона — с непонятной ошибкой. Заменил частично на #if: #property: стало нормально. WBR, BattlePeasant 04:27, 23 октября 2014 (UTC)

Техническая страница вместо красной ссылки[править код]

Обнаружил нововведение: теперь в карточках вместо красных ссылок показывается синий линк на техническую страницу с невразумительным представлением информации, шестерёнками и QR-кодами (https://tools.wmflabs.org/reasonator/). Если бы это показывалось только опытным редакторам, я бы ещё это понял, но это показывается читателям и начинающим авторам. Предлагаю вернуть красные ссылки. Приглашение создать статью на мой взгляд куда более дружелюбно и понятно, чем неизвестно для чего нужный читателю Reasonator. В качестве примера можно посмотреть ссылку «Кристиана Елизавета Сайн-Витгенштейнская» в карточке статьи Фридрих (граф Нассау-Вейльбурга). — Ivan A. Krestinin 12:32, 5 января 2016 (UTC)

  • По той же причине зашёл на эту страницу. Предлагаю реализовать такую выдачу по подобию вывода шаблонов группы {{не переведено}}. Красная ссылка нужна — она помогает развитию нашего раздела, показывая отсутствие статьи, выход на «резонатор» или Викиданные тоже нужен, но он не должен быть основной и единственной ссылкой под меткой, bezik° 09:11, 5 марта 2016 (UTC)
  • Вернул как было — вывод метки в Викиданных. Но надо как-то уже и более интересно обустраивать, например, чтобы были и красные ссылки, и ссылки на элемент Викиданных, bezik° 11:08, 9 апреля 2016 (UTC)
    • @bezik: Пожалуйста, не трогайте код, предварительно не разобравшись, что он делает. Своей правкой вы сломали ссылки на Викиданные, а не убрали ссылки на Reasonator. Он подключается гаджетом, который заменяет ссылки на Викиданные. — putnik 12:39, 9 апреля 2016 (UTC)
      • Тогда, пожалуйста, подскажите, как сделать так, чтобы этот гаджет не делал синие ссылки ни на Резонатор, ни на Викиданные, не предварив их красной ссылкой на русский раздел, bezik° 12:41, 9 апреля 2016 (UTC)
        • @bezik: В чём проблема со ссылками на Викиданные? Красных ссылок модуль не делал никогда. Вообще никогда, от слова «совсем». По той причине, что метка в Викиданных с очень большой вероятностью совпадает с уже существующей статьёй в Википедии. То, что вы сделали, это просто убрали ссылку и оставили голый текст — не уверен, что от этого хоть кому-то стало лучше. Когда будет готов mw:Extension:ArticlePlaceholder, станет удобнее, но пока не стоит делать хуже, чем есть. — putnik 12:56, 9 апреля 2016 (UTC)
          • Красной ссылки — не делал, но показывал просто метку, а не синюю ссылку на Резонатор. Эту функцию я и вернул. Притом рядом с меткой при наведении работала ссылка на элемент Викиданных под значком, так что никаких неудобств и для опытных участников, которым требуется удобный переход в Викиданные. Как обустроить это дело получше — оборудовать красной ссылкой, дождаться «плейсхолдера» или как-то ещё — можно обсуждать, но в любом случае, просто синей ссылки не на Русскую Википедию под текстом быть не должно, bezik° 13:02, 9 апреля 2016 (UTC)
            • @bezik: Это не синяя ссылка, это «голубая» интервики-ссылка. Не знаю ни одного правила, которое бы запрещало использовать интервики-ссылки. — putnik 13:06, 9 апреля 2016 (UTC)
              • Хотя бы ВП:МЕЖЪЯЗ. Опытный участник, конечно, видит отличие ссылки синей от голубой, но читатель в массе своей — не видит, и нехорошо отправлять его в другой проект, не предупредив. Поэтому мы не ставим из текста статей прямые ссылки на иноязычные разделы, и применяем шаблоны группы {{Не переведено}}, bezik° 13:11, 9 апреля 2016 (UTC)
                • @bezik: 1. По Reasonator'у создал тему на форуме: ВП:Ф-ВД#Ссылки на Reasonator. 2. Относительно ссылок на ВД и ВП:МЕЖЪЯЗ — это рекомендация, которую я полностью поддерживаю, но автоматически формировать {{не переведено}} во всех случаях нет возможности. В тех случаях, когда название уникальное, и даст красную ссылку, действительно нужно давать красную ссылку. Но мне кажется что это не должно быть причиной не ставить ссылку вообще в тех случаях, когда её нельзя дать. 3. «Рядом с меткой при наведении работала ссылка на элемент Викиданных под значком» — это ссылка на текущий элемент (пусть и с якорем), а не на целевой. — putnik 10:55, 10 апреля 2016 (UTC)
                  • Прекрасно понимаю, что красную ссылку сгенерировать нетривиально. Однако только из-за этого отправлять без предупреждения по синей ссылке — тоже неправильно, уж как минимум хотя бы какую-то текстовую пометку мы должны дать, что это переход во внешний проект, bezik° 12:01, 10 апреля 2016 (UTC)
                    • В итоге сделал так, что сам текст теперь не содержит внешних ссылок. Если где-то нет статьи в ру-вики, то выводится «[d]» со ссылкой на Викиданные. — putnik 10:05, 11 апреля 2016 (UTC)
                      • Спасибо! bezik° 13:13, 11 апреля 2016 (UTC)

hide wikidata link[править код]

how I can hide the wikidata link :

when I add -- in front of

    return '[[:d:' .. entityId .. '|' .. entityId .. ']]<span style="border-bottom: 1px dotted; cursor: help; white-space: nowrap" title="В Викиданных нет русской подписи к элементу. Вы можете помочь, указав русский вариант подписи.">?</span>' .. categoryLinksToEntitiesWithMissingLabel;

I have some error and when I cahnge it to return '' The item looks like foo,,,boo I use this model at арабская Википедия ar:وحدة:wikidata/ru --Mr. Ibrahem 12:39, 21 апреля 2016 (UTC)

Дальнейшие планы[править код]

Наверно, все заметили некоторую суету с изображениями. Происходящие сейчас доработки делаются с целью дать возможность использовать базовую функциональность модуля, имея только страницы Модуль:Wikidata и Шаблон:Wikidata. Этим модулем сейчас пользуются десять разделов, и я надеюсь, что их количество будет расти. Поэтому расширяемость — это хорошо, но вот то, что для работы модуля нужно несколько десятков страниц — очень плохо, эта проблема сейчас и решается.

В результате добавления функционала по выводу изображений будут удалены шаблоны {{wikidata/image}}, {{wikidata/p18}}, {{wikidata/p41}}, {{wikidata/p94}}, {{wikidata/p109}}, {{wikidata/p117}}, {{wikidata/p154}}, {{wikidata/p242}} и {{wikidata/p1621}}. Работа с изображениями теперь происходит через стандартный шаблон {{wikidata}}.

Следующим шагом аналогичное слияние будет сделано для {{wikidata/link}} (внешние идентификаторы со ссылками), {{wikidata/p856}} (ссылки) и, возможно, {{wikidata/p373}} (ссылка на Викисклад).

После этого есть желание:

  • убрать проксирование параметров из кода {{wikidata}}, оставив в нём только вызов модуля, который будет сам с этим разбираться;
  • сделать кросс-вики синхронизацию страниц;
  • написать полную документацию по использованию модуля на русском и английском.

Спасибо за внимание. — putnik 09:40, 15 июля 2016 (UTC)

Ссылка на Викиданные[править код]

Добрый день. В карточках программ (к примеру, 7-Zip) ссылка [d] отображается некорректно — последний символ оказывается оторван от ссылки. Полагаю, проблема вот в этой строчке: sup = '<sup class="plainlinks noprint">[//www.wikidata.org/wiki/' .. entityId .. '?uselang=' .. lang:getCode() .. ' [d]]</sup>': первый символ ] надо как-то экранировать, чтобы он попал под ссылку. — Vort (обс.) 10:42, 5 декабря 2016 (UTC)

Есть ли смысл избавляться от шаблонов?[править код]

Здравствуйте, переведённый мной текст вдохновил меня на попытку написания модуля шаблонов-карточек на «чистом» Lua (пишу здесь: Модуль:Ibox). Однако в данном модуле, который мне потребуется, нередко вещи делаются через frame:expandTemplate(). Мои тесты показывают, что для нехитрого кода вызов парсера увеличивает время работы Lua примерно на 0,004 с из доступных 10 с, что примерно совпадает с временем на загрузку неанализированного кода любой страницы или подгрузку простого модуля и ставит вопрос, стоит ли кому-то из нас затевать серьёзное и не всегда удобное переписывание? Ignatus 17:53, 14 декабря 2016 (UTC)

Я так понимаю, дело тут не только в скорости работы, но и в стройности архитектуры. Если в шаблоне хаос, то лучше переписать. Если всё аккуратно, просто и понятно, то это дело можно и отложить. Опыта в этом вопросе у меня мало, но впечатление сложилось именно такое.Vort (обс.) 17:59, 14 декабря 2016 (UTC)

Добавить math[править код]

Давайте добавим математические формулы (math, пример: d:property:P2534, есть напр. у Теорема Пифагора) в форматируемые по умолчанию! Ignatus 17:37, 15 декабря 2016 (UTC)

  • Раз такой тип поддерживается, то, наверное, хорошее дело его поддержать. А где это можно было бы использовать, вроде карточек теорем ни у нас, ни у английских товарищей пока нет? bezik° 19:18, 15 декабря 2016 (UTC)

Перенос строки[править код]

@Putnik: 1 2 3 - а зачем этот перенос строки постоянный в случае, когда всё написано в одну строчку: {{wikidata|p238|1}} {{wikidata|p238|2}} {{wikidata|p238|3}}? Он точно нужен? Особенно в случае, когда из викиданных вообще ничего не берётся. --Туча 16:33, 9 января 2017 (UTC)

  • @Туча: А зачем вы это пишете в одну строчку? Особенно в случае, когда из викиданных вообще ничего не берётся. — putnik
    • То есть теперь wikidata - это всегда перенос строки до и после применения, посередине некоторого выражения шаблон нельзя применять? И получить запись 1 2 3 в одну строчку нельзя? Это теперь криминал? --Туча 16:46, 9 января 2017 (UTC)
    • @Putnik: Это последствия вот это правки, возникают переносы строк там, где их раньше не было. --Туча 16:49, 9 января 2017 (UTC)
      • @Туча: Да, они самые. Немного переделал. — putnik 16:57, 9 января 2017 (UTC)

чел. чел.[править код]

Запрос {{#invoke:Wikidata|formatStatements|property=P1098}} выдаёт «n чел. чел.» (см. примеры в Обсуждение_шаблона:Язык#чел. чел.). Откуда эти «чел. чел.» берутся, и как сделать по-нормальному? — Mikhail Ryazanov (обс.) 22:48, 13 марта 2017 (UTC)

  • Вероятно всего, первый «чел.» из викиданных, а второй — из форматирующего модуля — dimon4ezzz 07:36, 21 августа 2017 (UTC)

Помощь с аналогичным шаблоном в крымскотатарской википедии[править код]

Сделали аналогичный модуль в крымскотатарской википедии. При этом почему-то в шаблонах-карточках не подгружаются крымскотатарские названия с Викиданных (см., например тут Russian Empire и перечень родов деятельности). Я подозреваю, что дело в том, что язык контента в крымскотатарской википедии определяется как "crh-latn", а язык меток в викиданных как "crh". Но не могу разобраться как это поправить. Был бы весьма признателен за помощь. Don Alessandro (обс.) 14:40, 25 апреля 2017 (UTC)

div[править код]

✔  Запрос выполнен

@putnik: когда "Статьи с переопределением значения из Викиданных" появляется div вместо span. Например в шаблон:НП в span class="nickname" оказывается div (видно например в Назарет в Служебная:Развёртка_шаблонов), что вероятно находится как ошибка в Служебная:LintErrors/stripped-tag . div вместо span какой-то выйгрыш дает? :) ~Sunpriat (обс.) 20:13, 2 августа 2017 (UTC)

  • @Sunpriat: Там div в тех случаях, когда внутри блочное содержимое: таблицы, списки или абзацы. Их в span не обернуть. А что, есть проблемы из-за этого? — putnik 20:38, 2 августа 2017 (UTC)
    • @putnik: вики сама соединяет 1 перевод строки, а модуль агрится на \n. наверное нужно уточнить \n до более специфических \n[\n|\*|:]. проблема 1 - анализатор видит проблему и спамит ей в список, проблема 2 - текущий парсер запихивает span в div, а новый (можно посмотреть в инструменте переезда) не запихивает и получается div внутри span :) ~Sunpriat (обс.) 20:43, 2 августа 2017 (UTC)
      • @Sunpriat: Частично сделано. Посмотрим, какой будет результат. — putnik 00:27, 14 декабря 2017 (UTC)
        • @putnik: оно вообще оборачивается в спан, чтобы был доступ к викиданным через гаджеты? если так, может помещать содержание параметров вне/после спана? --Sunpriat (обс.) 00:30, 14 декабря 2017 (UTC)
          • @Sunpriat: Там возможны сложные конфигурации (например «квалификатор 1: значение (квалификатор 2)»), так что в общем случае всё равно не вариант. Лучше всё-таки вынести враппер в отдельный метод, и использовать его и для значения, и для квалификаторов. — putnik 00:35, 14 декабря 2017 (UTC)
          • @putnik: началось увеличение количества статей в списки. Теперь попадают статьи с таблицами в наградах, таблица в наградах сломалась Борковский, Виктор Иванович --Sunpriat (обс.) 01:04, 14 декабря 2017 (UTC)
            • @Sunpriat: Сделал ещё раз с учётом таблиц, должно стать лучше. — putnik 12:11, 14 декабря 2017 (UTC)
              • @putnik: C html тегами (hr 4 минуса, div, из шаблонов,...) всё ещё попадает в списки. Из списка - в Флаг Киева hr, hr можно заменить на <div>bar</div> - оба случая вываливаются из span. --Sunpriat (обс.) 12:26, 14 декабря 2017 (UTC)

Использование lang-ru для p1477[править код]

Полагаю, шаблон {{lang-x}} не нужен, когда язык — русский. Например: Шульман, Екатерина Михайловна.

То есть

			if ( options.monolingualLangTemplate == 'lang' ) then
				return options.frame:expandTemplate{ title = 'lang-' .. value.language, args = { value.text } };

нужно заменить на

			if ( options.monolingualLangTemplate == 'lang' ) then
				if ( value.language == 'ru' ) then
					return value.text;
				else
					return options.frame:expandTemplate{ title = 'lang-' .. value.language, args = { value.text } };
				end

— Джек, который построил дом (обс.) 19:56, 13 сентября 2017 (UTC)

Подгрузка дат изображений («момент времени») из Викиданных[править код]

@Ghuron: был ли где-то достигнут консенсус на это? Например, почему именно через запятую, а не в скобках? Кроме того, теперь некоторые шаблоны (например, {{Государственный деятель}}) локальное описание просто игнорируют, а некоторые (например, {{Персона}}) выдают ошибку «Ошибка Lua в Модуль: Wikidata на строке 905: attempt to concatenate field 'description' (a nil value)», если есть локальное описание, а на Викиданных, наоборот, описания нет, но есть дата. --INS Pirat 18:29, 2 февраля 2018 (UTC)

@INS Pirat: 1. Нет 2. По эстетическим соображениям 3. Откатил --Ghuron (обс.) 19:18, 2 февраля 2018 (UTC)

Внешние ссылки на ITIS и TPL[править код]

@Putnik: судя по всему, Вы виновны в пропадании внешних ссылок на ITIS и TPL (и может чего ещё) в Ш:Таксон — свойства p815 и p1070? Пример на стр. документации шаблона. --VladXe (обс.) 07:48, 10 марта 2018 (UTC)

  • @VladXe: Исправил проверку. Ну, и заодно у d:Property:P815 поправил формат в Викиданных. — putnik 11:58, 10 марта 2018 (UTC)
    • Спасибо за оперативность. --VladXe (обс.) 12:04, 10 марта 2018 (UTC)