Os sistemas de controle de versão normalmente chamam esse recurso de "culpar alguém". Para cada linha, ele mostra quem a modificou e quando.
Atualização: Estou procurando uma solução para artigos com milhares de edições (por exemplo, navegar no histórico de versões e verificar cada uma delas não é prático).
Se você clicar no link View History
de um artigo, poderá ver a lista de alterações feitas no artigo, em que data e por quem. Um breve resumo da descrição da mudança também é exibido. Você pode clicar no botão Compare selected version
para comparar o texto.
Infelizmente, não conheço um recurso Culpa que permite ver diretamente quem fez as alterações em uma linha ou sentença ou parágrafo específico.
EDIT: Você pode querer conferir site de Greg Hewill , ele (aparentemente) está trabalhando apenas em um recurso de culpa.
Use http://wikipedia.ramselehof.de/wikiblame.php?lang=en que permite pesquisar revisões na Wikipedia.
Você pode fazer isso clicando em "View History"
localizado no canto superior direito de cada artigo da wikipedia. Lá você encontrará uma lista das revisões de um artigo. Se você deseja confirmar especificamente cada usuário, pode clicar em "cur"
ao lado de cada revisão e a wikipedia destacará o que foi alterado.
Uma maneira de fazer isso é exportar o histórico do artigo e processar as revisões usando uma ferramenta local como _git blame
_. Isso pode ser feito usando um script.
Para exportar o histórico do artigo, se _Special:Export
_ , especificamente: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
.
Para gerar a culpa, primeiro adicione as revisões a um repositório temporário git (mostrado em Python 3):
_import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
_
Em seguida, faça o download do XML exportado do histórico, analise-o com algo como _lxml.etree
_ e faça um loop nas revisões (xpath _//revision
_). Para cada revisão, escreva o texto em um arquivo (por exemplo, _article.wiki
_), leia o autor e execute
_subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
_
Depois que todas as revisões forem adicionadas ao repositório, execute _git blame article.wiki
_ para ver o autor de cada linha.
Nota: _Special:Export
_ pode restringir o número de revisões exportadas; portanto, em páginas com histórico longo, pode ser necessário buscar o XML várias vezes.