解释英语维基百科修订差异

Explaining English Wikipedia revisions diff

我找到了 those files on the download page of Wikipedia。 这些文件中的条目如下所示:

206430  12  0   'Anarchism' 1031579715  None    True    3810    u'Bobdobbs1723' 11394:1:u'\n* [[Lysander Spooner]]\n* '

这是上次转储(第 15 号)的另一行:

348524708   26470001    0   'Southeast air corps training center'   1268053721  u'[[WP:AES|\u2190]]Redirected page to [[Category:USAAF Southeast Training Center]]' False   803088  u'Bwmoll3'  0:1:u'#redirect [[Category:USAAF Southeast Training Center]]'

这些是制表符分隔的值,第 6 列是在特定维基百科页面上提交的更改列表(页面名称在第 4 列中)。 我没有在网上找到任何关于这些日志结构的信息。特别具有挑战性的是记录了多项更改的更改列表的格式。 这里有人知道这些文件的结构吗?

这些转储来自名为 RevDiffSearch (formerly DiffDb), I believe. They are intended to be used with Lucene, and seem to be restructured versions of diffs from WikiHadoop 的工具。

结构是:

rev_id    page_id    namespace    title    timestamp   comment    minor     user_id    user_text    diff1_position:diff1_action:diff1_content    diff2_position:diff2_action:diff2_content

其中(copy-pasted 来自 here):

  • rev_id: 所描述修订的标识符 PRIMARY KEY
  • page_id:被修改页面的标识符
  • namespace: 页面命名空间的标识符
  • title: 正在修改的页面标题
  • timestamp: 修订发生的时间,以秒为单位的 Unix 纪元时间戳
  • comment:编辑留下的编辑总结
  • minor:编辑的次要状态(布尔值)
  • user_id:保存修改的编辑者标识符
  • user_text: 保存修改的编辑用户名
  • diffs - 制表符分隔,差异操作。每个 diff 操作都包含三个部分(以冒号分隔):
    • position: 文章文本中操作发生的位置
    • action: 该操作是否添加或删除了一些文本? (“1”表示添加,“-1”表示删除)
    • content:操作的文本。对于添加的文本,这是要添加的内容。对于已删除的文本,这是已删除的内容。