Обсуждение Википедии:Запросы к ботоводам/Заявки/Список дизамбигов с внешними ссылками

message: : Звучит резонно. Это ещё актуально? Вы представляете, сколько примерно статей будет в этом списке? Где его следует разместить? Хацкер 07:24, 23 июня 2007 (UTC)
replies: text: : Конечно, актуально. Примерно их будет 10 000, почти все дизамбиги, я думаю. Основная проблема - как исключить ссылки из шаблона , поскольку в таблице ссылок (pagelinks) эти ссылки ничем не отличаются от остальных ссылок. Mashiah 18:51, 23 июня 2007 (UTC)
replies: text: :: Да, это интересная задача. Я так понимаю, что целевая таблица должна иметь несколько полей, с возможными ошибками (нарушениями целосности):
replies: text: ::# Если на дизамбиг есть ссылки со страниц, кроме страниц значения;

text: ::# Если на дизамбиг есть ссылки со страниц на которые он сам не ссылается;

text: ::# Если на дизамбиг нет ссылок с (некоторых) страниц, перечисленных там значений.

text: ::Поэтому, я так понимаю, план такой: для каждого дизамбига (т.е. для каждой статьи в категории Многозначные термины) находим список статей, которые на него ссылаются. Если среди них есть статьи, кроме тех, на которые ссылается сам дизамбиг, помечаем дизамбиг, как глючный (с формулировкой №2). Если таковых нет, проверяем, чтобы среди тек статей, на которые ссылается дизамбиг, и которые ссылаются на него, все были страницами значений (т.е. содержали шаблон ). В противном случае, выдаём ошибку №1. Как проверить №3, я пока не знаю. Возможно что никак, т.к. в дизамбиге всегда могут присутствовать (и часто присутсвуют) всякие левые ссылки, которые не являются его значениями. Думаю, стоит завести шаблоны для 1, 2, (и 3?) и соответствующие им категории — будет максимум удобств для исправления. Что скажете? Хацкер 20:13, 23 июня 2007 (UTC)
replies: text: ::: Ещё одна проблема заключается в том, что дизамбиги ссылаются не только на значения термина, но и на прочие статьи. То есть, нужно именно искать ссылки из шаблона , а не двунаправленные связи между дизамбигами и статьями. Что касается третьего списка - тоже полезная вещь. Шаблон  нужно проставлять по возможности. Правда, у него есть модификации, например . Mashiah 21:54, 24 июня 2007 (UTC)
replies: text: :::: Вы невнимательны. Эта проблема первая и единственная, и я про это написал. Собственно, это уже бонус, т.к. то что вы просили изначально — это "1" и "2". Что касается "3", я думаю, что можно формировать список подозрительных на "3". Я думаю, что если хорошо продумать скипт, то в нём будет очень немного лишних статей. Хацкер 22:30, 24 июня 2007 (UTC)
replies: text: ::::: Думаете, наличие шаблона  автоматически означает наличие ссылки на какой-то конкретный дизамбиг? Думаю, что одна статья может упоминаться в нескольких дизамбигах. Вы правы, я невнимателен, я просто пока не могу понять, как обеспечить корректность списков 1 и 2. Mashiah 22:59, 24 июня 2007 (UTC)
replies: text: :::::: Нет, не означает, но мы этого и не проверяем. Всё что мы проверяем — это то, что если мы попали из дизамбига на какую-то страницу, и она также на него ссылается, то это должна быть страница значений. Объясню на примере. Мы проходимся по списку дизамбигов, и останавливаемся, скажем на странице А (значения). Она указывает на страницы А (значение 1), А (значение 2) и А (значение 3), а также на некоторые левые страницы В и С. В и С не должны ссылатся на А, потому что на А могут ссылатся только его значения. Таким образом все страницы, на которые ссылается дизамбиг либо ссылаются обратно на него, и тогда являются страницами значений, либо не ссылаются на него вовсе. Хацкер 07:42, 25 июня 2007 (UTC)

text: ::::: Третий список, составить также сложно, поскольку не ясно, на кой предмет дизамбиг ссылается на статью, содержит ли он ссылку на неё, как на одно из значений, или из истого собирательства. Mashiah 22:59, 24 июня 2007 (UTC)
replies: text: :::::: Конечно это сложно. Но как я уже сказал, можно сформировать список подозрительных на "3", на основе достаточных условий. Например ссылки на значения обычно выделены жирно и входят в списки. Кроме того, есть обычно кореляция в названиях дизамбига и значений. Хацкер 07:42, 25 июня 2007 (UTC)
replies: text: ::::::: Давай на ты =) Мыслей интересных много, и их можно попробовать. Собираешься ли ты начать эксперименты с дампом или предлагаешь мне заняться? Я к чему — задач много, а кидаться всей командой на один мяч не правильно =) Я бы мог, наверное, найти время на пару тестов на SQL, правда дампы устарели, а тулсервер не реплицируется, но так, для теста... Mashiah 21:24, 25 июня 2007 (UTC)
replies: text: :::::::: Давай. Да, планов громадьё. Насчёт дампа - я не знаю, я с ним никогда не работал, и меня самого интересовало как это выглядит. Я юзаю библиотеку на питоне для википедии, и вопрос — отличается ли работа с дампом от работы онлайн, или всё то же самое? Где есть информация об этом? Насчёт, кто будет делать — я так думал что я. По крайне мере начну, и посмотрю, что из этого выйдет. Хацкер 21:56, 25 июня 2007 (UTC)
replies: text: ::::::::: Круто, просто круто. Ты первый из тех, кого не пугают интересные, но непростые задачи. Дампы описаны тут: m:Dump. Я не пробовал поднимать mediawiki, просто пользовался дампами в формате sql. Качаю, модифицирую формат таблиц (индексы), заливаю в предварительно установленный MySQL и экспериментирую. Отличие основное в том, что дамп всегда неактуален, то есть, это срез из прошлого. Зато есть вся информация (кроме текстов статей), я, правда, пользуюсь только несколькими таблицами: page, pagelinks, templatelinks, categorylinks. Пример скрипта, который собирает мне список сирот тут. Правда, я в последнее время стараюсь работать не дома, а на тулсервере, по крайней мере, если скрипт отлажен уже. Mashiah 22:07, 25 июня 2007 (UTC)

message: Собственно, скрипт готов: Участник:XBot/collect redirects.py. Только я уже и не знаю, какая от него будет польза — на первую сотню страниц значений он выдал 72 ошибки. Вот пример отчёта. Вобщем смотри. 
Кстати, если дизамбиг ссылается на значение не прямо, а через редирект, я тоже выдаю ошибку. Это правильно? Есть ли другие шаблоны, для обратных ссылок на дизамбиги, кроме [u'Шаблон:Другие значения', u'Шаблон:Значения', u'Шаблон:Однофамильцы', u'Шаблон:Redirect']? Хацкер 11:00, 18 июля 2007 (UTC)
replies: text: Почему ты включаешь в этот список дизамбиги, на которые нет ссылок? Это, как раз, идеальная ситуация, когда на дизамбиг не ссылается ни одна статья. Так должно быть. Mashiah 11:49, 18 июля 2007 (UTC)
replies: text: : Вот этого не понял. На дизамбиг должны ссылатся хотя бы его значения через соотв. шаблоны значений. Но если тебе не надо следить за такими страницами, эту ситуацию легко можно игнорить. Хацкер 12:23, 18 июля 2007 (UTC)
replies: text: :: Понял тебя, я действительно говорил о любых ссылках, исключая ссылки типа . Если ты хочешь их контролировать тоже, конечно, в список их нужно включать. Mashiah 12:34, 18 июля 2007 (UTC)

text: Мне кажется, ошибку при ссылке через редирект выдавать не нужно. Иногда неоднозначность появляется именно вследствие наличия у некоего предмета альтернативных названий (коие и являются редиректами). С шаблонами, извини, сейчас разобраться не могу. Чуть позже, ладно? Mashiah 11:49, 18 июля 2007 (UTC)
replies: text: : Правильно. Но если дизамбиг А ссылается на редирект В, который ссылается на страницу С, то почему не сделать ссылку А->С прямой? Насколько я знаю, с двойными редиректами типа: редирект1->редирект2->страница у нас борятся. Тут похожая ситуация, ведь дизамбиг — он тоже вроде редиректа. Хацкер 12:23, 18 июля 2007 (UTC)
replies: text: :: Да, с двойными редиректами борятся. Но нужно ли бороться с ситуацией типа дизамбиг->редирект->страница - не уверен. По крайней мере, пока я бы не акцентировал на этом внимания, это вопрос, по которму возможны разные трактовки. Мне кажется фраза 'перенаправлено с...', появляющаяся в статье при ссылке через редирект даёт довольно нужное пояснение. Если же редиректа не будет, могут возникнуть вопросы типа: "а почему это я хочу A, а получаю B". Mashiah 12:34, 18 июля 2007 (UTC)
replies: text: ::: Самый большой специалист по двойным редиректам у нас Участник:Solon. Думаю, он может хорошо разъяснить ситуацию с  двойными редиректами. Mashiah 13:25, 22 июля 2007 (UTC)
Я бы посоветовал сделать комментарии в скрипте. Во-первых, через полгода ты и сам с ним уже не разберёшься, а во-вторых, он так станет проще в прочтении для тех, кто, например, не знает python. Что делает функция с говорящим названием workon? Mashiah 13:29, 22 июля 2007 (UTC)

text: OK, откаменчу.

text: workon, собственно, делает основную работу: ей передаётся название страницы (и список исходящих ссылок - так лучше из соображений эффективности), она вызывает одно из исключений, в завистимости от типа найденной ошибки, которые в свою очередь обрабатываются во внешнем цикле. Если ошибок нет - ничего не делает. Хацкер 14:58, 22 июля 2007 (UTC)
thread_title:  Обсуждение скрипта