Как я могу узнать, кто написал определенный раздел статьи в Википедии?

14

Системы контроля версий обычно называют эту функцию «обвинять кого-то». Для каждой строки он показывает, кто его изменил и когда.

Обновление: я ищу решение для статей с тысячами правок (т.е. навигация по истории версий и проверка каждой из них нецелесообразна).

Senseful
источник
1
Конкретные инструкции по использованию WikiBlame (чтобы узнать, кто написал конкретную фразу) можно найти здесь: webapps.stackexchange.com/questions/35906/…
Андерсон Грин,

Ответы:

4

Если щелкнуть View Historyссылку на статью, вы увидите список изменений, внесенных в статью, на какую дату и кем. Краткое описание изменения также отображается. Затем вы можете нажать Compare selected versionкнопку, чтобы сравнить текст.

К сожалению, мне не известна функция Blame, которая позволяет вам напрямую видеть, кто внес изменения в конкретную строку, предложение или абзац.

РЕДАКТИРОВАТЬ: Вы можете проверить сайт Грега Хьюилла , он (очевидно) работает только над такой функцией обвинения.

LBushkin
источник
Это просто для коротких статей. Однако, когда у вас есть статья с сотнями или тысячами правок, она становится намного сложнее. Я ищу противоположность. Вы даете строку, и это говорит вам пользователь.
Чувственный
Та ссылка, которую вы разместили, - это именно то, что я искал.
Чувственный
Я рад, что вы нашли то, что вам нужно: D
LBushkin
0

Вы можете сделать это, нажав "View History"расположенную в верхнем правом углу каждой статьи Википедии. Там вы найдете список ревизий статьи. Если вы хотите, чтобы каждый пользователь был специально зафиксирован, вы можете нажать "cur"рядом с каждой ревизией, и в википедии будет указано, что было изменено.

Орен Хизкия
источник
Я обновил вопрос, который объясняет, почему этот метод не подходит для статей с тысячами версий.
Чувственный
Похоже, что ответ OpenBSDWiki правильный тогда. Разве это не то, что вы ищете?
Орен Хизкия
0

Один из способов сделать это - экспортировать историю статьи, а затем обработать редакции, используя локальный инструмент, например git blame. Это можно сделать с помощью сценария.

Чтобы экспортировать историю статьи, использоватьSpecial:Export , в частности: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights.

Чтобы сгенерировать вину, сначала добавьте ревизии во временный репозиторий git (показанный в Python 3):

import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
    os.chdir(repo.name)
    subprocess.check_call(['git', 'init'])

Затем загрузите экспортированный XML-файл истории, проанализируйте его с помощью чего-то вроде lxml.etreeи переберите ревизии (xpath //revision). Для каждой ревизии запишите текст в файл (скажем article.wiki), прочитайте автора и запустите

subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])

После того, как все ревизии добавлены в репозиторий, запустите, git blame article.wikiчтобы увидеть автора каждой строки.

Примечание: Special:Exportможет ограничивать количество экспортируемых ревизий, поэтому на страницах с длинной историей вам, возможно, придется загружать XML несколько раз.

Механическая улитка
источник