<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Исследование графа категорий английской версии Wikipedia</article-title>
      </title-group>
      <fpage>97</fpage>
      <lpage>101</lpage>
      <abstract>
        <p>Аннотация Wikipedia является выдающимся проектом по накоплению знаний, как общего пользования, так и различных областей специализации. Проверка качества этих знаний, особенно автоматическая, чрезвычайна важна. В работе представлены результаты изучения строения английской версии ГКВ (орграф категорных статей Википедии) в целом. Являясь по идее системой тем он поддерживает систематизацию знаний и мы интересуемся из чего эта систематизация состоит и как она устроена. Показано, что в графе есть неприемлемые логические нарушения и обсуждаются организациионные и технические методы их устранения.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        ГКВ [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] есть подграф графа в котором статьи
Википедии приписаны категорным статьям.
Выделение ГКВ из этого полного графа есть первая
техническая задача. Важно, что далее изучается
дамп ГКВ на некоторый момент времени и в нём
есть незавершённая "строящаяся" часть. Поэтому
выводы надо делать с осторожностью. Естественно
ввести термин "точка роста", когда мы натыкаемся
"в дампе" на часть, которая ещё не завершена. Дамп
полного графа получен из ИСП РАН и
соответствует 16 сентября 2010г. Дамп состоит из
двух текстовых файлов: файла отображения номера
страницы Википедии в номер категорной страницы,
что приписывает страницу категории; а также файла
в котором номеру страницы Википедии приписано
её наименование. Математически ГКВ есть орграф
каждый узел которого взаимно-однозначно
соответствует категорной странице и помечен её
номером. Дуга из узла N1 в узел N2 идёт тогда и
только тогда, когда страница с номером N1 есть
под-категория страницы с номером N2. Всего таких
стрелок 1221133.
В статье исторически вместо термина «дуга»
употребляется термин «стрелка».
      </p>
      <p>Множество узлов ГКВ (593796 штук), как и
Труды 14-й Всероссийской научной конференции
«Электронные библиотеки: перспективные методы и
технологии, электронные коллекции» — RCDL-2012,
Переславль-Залесский, Россия, 15-18 октября 2012 г.</p>
      <p>
        Далее анализируется только "граф стрелок", т.е.
все характеристики даны без учёта изолированных
узлов. Состав изолированных узлов можно
посмотреть в отчёте [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (далее - отчёт) в таблице
указанной во введении. Состав и характеристики
узлов со стрелками можно посмотреть в таблице
указанной там же, равно как и граф стрелок.
Важный вопрос - количество связных компонент
графа, т.к. в дальнейшем их строение можно изучать
отдельно. Таких компонент оказалось 1987.
Изолированные узлы при этом учитываются
отдельно. Алгоритм разбиения описан в отчёте [5].
Впрочем проще воспользоваться программой,
например, Pajek [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] умеющий разбивать узлы графа
на слабо связные компоненты.
      </p>
      <p>Первые 10 самых больших компонент:
cn
1
21727
14332
2863
20842</p>
      <p>count
561636
210
36
29
27</p>
      <p>cn
6680
19212
20868
13325
13287
count
20
19
19
17
16
Здесь cn - уникальный номер компоненты,
присвоенный при разбиении. Конечно в случае с
Wikipedia малые компоненты это точки роста.
Петель (N1 → N1) в графе нет.</p>
      <p>Источников (узлов в которые нет входящих
стрелок) - 345597. Это категории нижнего уровня.
Стоков (узлов из которых нет исходящих стрелок)
11767. Это категории верхнего уровня дампа и
скорее всего "точки роста". Промежуточных узлов,
соответственно - 210160.</p>
      <p>Максимальное количество исходящих из одного
узла стрелок - 85. Это промежуточный узел №
690451, а заголовок "Category:World War II", т.е. эта
категория приписана 85 над-категориям.
Максимальное количество входящих стрелок (12625)
имеет промежуточный узел № 692309 с
проясняющим заголовком - "Category:Albums by artist".
2 Анализ заголовков
Заголовки всех узлов категорий (включая
изолированные) можно посмотреть в отчёте в
таблице указанной в разделе «Анализ заголовков».
Таблица содержит - 584606 узлов. Таким образом
9190 узлов ГКВ не имеют заголовков. Они ждут
своего исследователя. Анализ текстов заголовков
даже безотносительно их подчинения отдельная
увлекательная задача. Но начать надо с
использованного состава букв.
2.1 Алфавит</p>
      <p>Рассмотрим состав букв (characters),
употреблённых при именовании категорных статей.
Текстовый файл (UTF-8) содержащий состав
алфавита можно посмотреть в прикреплении
cat2title.abc0.txt к отчёту. Как разделитель букв
используется '|'. Вот он:
|
|!|"|&amp;|'|(|)|*|+|,||.|/|0|1|2|3|4|5|6|7|8|9|:|;|?|@|A|B|
C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U
|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|
n|o|p|q|r|s|t|u|v|w|x|y|z|~|¡|ª|°|µ|·
|º|½|Á|Â|Ä|Å|Æ|Ç|É|Í|Î|Ñ|Ó|Õ|Ö|×|Ø|Ú|
Ü|Þ|ß|à|á|â|ã|ä|å|ae|ç|è|é|ê|ë|ì|í|î|ï
|ð|ñ|ò|ó|ô|õ|ö|ø|ù|ú|û|ü|ý|þ|ÿ|Ā|ā|ă|
ą|Ć|ć|Č|č|ď|Đ|đ|ē|ė|ę|ě|ğ|Ħ|ħ|Ī|ī|İ|ı
|ļ|Ľ|ľ|Ł|ł|ń|ņ|ň|Ō|ō|ő|oe|ř|Ś|ś|Ş|ş|Š|
š|Ţ|ţ|ť|ū|ŭ|ů|ŵ|ź|Ż|ż|Ž|ž|ơ|ș|ʻ|||ḵ|ṭ|ạ
|ầ|ậ|ắ|ế|ề|ể|ễ|ệ|ị|ọ|ộ|ụ|ỳ|ỹ|–|—
|‘|’|…|共|台|和|國|歲|灣|萬|！|</p>
      <p>В прикреплении id2title.abc.txt к отчёту можно
посмотреть впечатляющее разнообразие букв
заголовков всех статей Wikipedia(en).
2.2 Термины в заголовках</p>
      <p>Это может быть отдельное важное исследование.
Например, количество заголовков в которых
встречается слово album - 17591.
3 Стоки</p>
      <p>В Приложении-1 к отчёту можно посмотреть
начало таблицы стоков с самым большим
количеством входящих стрелок.
3.1 От Анастасии к Музыке</p>
      <p>В Приложении-2 к отчёту можно посмотреть
путь рекордсмен предоставленный Антоном
Коршуновым.</p>
      <p>Самый длинный путь - 294 вершины. Его
начальная категория - № 5760285 Category:Anastacia
songs, а конечная - № 691484 Category:Music.
4 Строение ГКВ в целом</p>
      <p>
        В работе [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], с.9 указывается что в ГКВ есть
циклы. По идее циклы это аномалия на графе
подчинения категорий. И должны занимать малую
его часть. Назовём для краткости объединение
орциклов графа и ор-путей между циклами - ядро, а
дополнительную часть графа - мантия. Стрелки же
между мантией и ядром назовём - связующие. Таким
образом в целом граф состоит из ядра, мантии и
связующих стрелок часть из которых идёт из ядра в
мантию, а часть - из мантии в ядро. Чтобы выделить
ядро, был применён следующий алгоритм:
1. Находим в графе источники и стоки и удаляем их.
2. Если в графе не осталось узлов то стоп.
3. Если есть источники или стоки то идти на 1. Стоп.
5 Ядро ГКВ
5.1 Состав ядра
      </p>
      <p>Количество стрелок в ядре - 38538. Узлов же
13545. Граф ядра опубликован в таблице указанной
в разделе «Состав ядра» отчёта. Далее было
выполнено "расщепление" ядра на связные
компоненты. Это особенно важно, т.к. пути между
циклами, сами не входящие в циклы, составляют
самостоятельную интересную часть ядра.
Оказалось, что имеется одна большая компонента - 13507
узлов. И ещё 19 пар узлов. Характеристики узлов
ядра включая разбиение на связные компоненты
можно посмотреть в таблице указанной в разделе
«Состав ядра» отчёта.</p>
      <p>Рассмотрим компоненту №764 ядра. Это пример
пары, которая является даже связной компонентой
не только ядра, а самого ГКВ. В компоненте два
узла:
28736601, Category:Wikipedia sockpuppets of
ShantanuSingh198
и
28736686, Category:Suspected Wikipedia sockpuppets
of ShantanuSingh19</p>
      <p>
        В Wikipedia они также ссылаются друг на друга
и больше ни на что.
Анализ. Что бы ни обозначало "Wikipedia
sockpuppets of ShantanuSingh198" очевидно что
нечто под него подпадающее (как под понятие) не
может быть одновременно лишь "подозреваемым"
на подпадание. Равно как и наоборот, т.е. логически
эти две категории не пересекаются. И обе стрелки
должны быть удалены. Отношения же между ними
на, например, OWL 2 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] должно было бы быть:
DisjointClasses(
wcg:Wikipedia_sockpuppets_of_Shantanu
Singh198,
wcg:Suspected_Wikipedia_sockpuppets_o
f_ShantanuSingh198)
      </p>
      <p>При этом более правильно ссылаться в обоих
статьях друг на друга через тэг Wikipedia «See also».
Рис. 1 Рисунок графа компоненты ССК 41
5.2 Сильно связные компоненты ядра</p>
      <p>В ядре нас интересует зацикливание отношения
под-категория - над-категория. Тут есть два
подхода:</p>
      <p>- общий - применить алгоритм поиска сильно
связных компонент (ССК);</p>
      <p>- частный - найти так называемые "линзы" - два
узла ссылающиеся друг на друга (как под-категория
- над-категория).</p>
      <p>Второй путь вполне приемлем для ГКВ, т.к. по
идее в нём вообще не должно быть циклов. Впрочем
как для линз так и для циклов большей длины
следует заметить, что они математически
утверждают эквивалентность соответствующих терминов,
т.е. синонимию, что в принципе возможно. Но
конкретно в Википедия может быть реализовано
через redirect. Интуитивно же в большинстве
случаев мы обнаружим ошибку, т.е. какие-то
стрелки цикла ошибочны.</p>
      <p>
        Чтобы получить состав сильно связных
компонент ядра была использована программа Pajek
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Заметим, что петель в ГКВ нет, а поэтому узлы
ядра не попавшие в ССК это узлы на путях между
циклами (см. выше).
      </p>
      <p>ССК оказалось 457. Узлов не входящих в ССК,
так сказать связующих ядра — 7646. Есть одна
гигантская по сравнению с остальными ССК - в ней
3967 узлов.</p>
      <p>В отчёте в разделе «Сильно связные компоненты
ядра» приведена таблица самых больших ССК.
Рассмотрим для примера компоненту №41 у
которой всего 9 узлов (см. рис. 1).</p>
      <p>Если номер накладывается на стрелку то под ним
наконечника (треугольничка) нет. Это важно т.к.
Pajek рисует "линзы" (У1 → У2 → У1) как одну
стрелку с наконечниками на обоих окончаниях. В
данной ССК линза одна - слева внизу вертикально.
ni
717227
717302
799461
799587
6110893
8398752
title</p>
    </sec>
    <sec id="sec-2">
      <title>Category:Orthodox rabbis</title>
    </sec>
    <sec id="sec-3">
      <title>Category:Talmud rabbis</title>
    </sec>
    <sec id="sec-4">
      <title>Category:Mishnah</title>
    </sec>
    <sec id="sec-5">
      <title>Category:Talmud</title>
    </sec>
    <sec id="sec-6">
      <title>Category:Talmudists</title>
    </sec>
    <sec id="sec-7">
      <title>Category:Talmud people 11334178</title>
    </sec>
    <sec id="sec-8">
      <title>Category:Rabbinic literature 15249105</title>
    </sec>
    <sec id="sec-9">
      <title>Category:Talmud concepts and terminology 26795615 Category:Chazal</title>
      <p>5.3 Линзы</p>
      <p>Линза это два узла такие что: У1 → У2 и У2 →
У1. Она может быть отдельной ССК, а может
входить в ССК как часть.</p>
      <p>В ядре оказалось 1269 линз. Из них 1260 имеют
заголовки для обоих узлов. Их можно посмотреть в
таблице указанной в разделе «Линзы» отчёта.
6 Мантия - ациклическая часть ГКВ</p>
      <p>Чтобы получить мантию мы удаляем из ГКВ
ядро. При этом оказывается, что часть источников и
стоков станет изолированными. В первом случае все
из них исходящие стрелки попали в ядро, во втором
- все входящие в них стрелки шли из ядра.
Изолировавшихся источников - 14421, а стоков - 60.</p>
      <p>Кроме того в мантии появляются ложные
вершины (пики). Это те её узлы, которые стали
стоками после удаления ядра, а вообще-то имели
исходящие стрелки, которые все попадали в ядро.
Таких вершин 18157. Причём максимальная высота
- 28. Для сравнения, стоков ГКВ получивших
уровень, т.е. не изолированных - 11707,
максимальная высота - 24.</p>
      <p>Ложная вершина - рекордсмен (высоты 28) имеет
№15715670, а заголовок "Category:Creation myths".</p>
      <p>
        Замечание. Конечно ГКВ можно представить и в
виде "галстука-бабочки" как в работе [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], где орграф
был использован для представления схемы связей
между транснациональными корпорациями. Но в
данном случае сравнение с горами нагляднее - вверх
к более обширным темам; горами в которых есть
ядро из 20-ти связных компонент. Одна из которых
большая, а 19 - линзы.
      </p>
      <p>Количество узлов на уровнях показано ниже в
табличке и оправдывает сравнение с горами:
В таблице в строке с level = NULL - количество
изолированных узлов мантии, а у 0 - количество
узлов в ядре.
7 Связующие стрелки</p>
      <p>Между мантией и ядром есть
стрелки-связующие. Стрелок из ядра в мантию - 591. Стрелок из
мантии в ядро — 210514.
8 Другие способы исследования</p>
      <p>Можно напрямую изучать http://dbpedia.org через
точку входа для SPARQL: http://dbpedia.org/sparql.
Привязка к категории идёт через свойство
http://purl.org/dc/terms/subject.</p>
      <p>
        Вот пример запроса, который начинает выдавать
полный граф связи страниц и категорий:
select ?x ?z where {?x dcterms:subject ?z}
Надо только поставить timeout, например, 1000.
Запрос
select ?x ?z where {?x skos:broader ?z}
выдаёт отношение "x is a sub-category of z". см. с.
p.5 "Categories." [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
      </p>
      <p>А вот запрос
select ?x ?z where
выдаёт "линзы".</p>
      <p>Вот узлы первой:
{?x skos:broader ?z. ?z skos:broader ?x.}
http://dbpedia.org/resource/Category:Poli
tical_philosophers
http://dbpedia.org/resource/Category:Poli
tical_theorists
Она действительно есть в Wikipedia(en).
и
А всего запрос выдаёт 2000 линз, что наверно не
предел.
9 Заключение</p>
      <p>Естественно считать, что ГКВ должен быть
ациклическим графом. Таким образом исследование
показало, что аномалии значительны.</p>
      <p>Можно создать средства, которые обнаруживая
аномалию, например линзу, будут размещать на
соответствующих страницах в Discussion
уведомление о логическом противоречии.</p>
      <p>2. Как к логическим противоречиям относятся
идеологи Википедии? Те кто задаёт правила
классификации. Судя по всему индифферентно.</p>
      <p>Общая рекомендация. Многие отношения между
категориями попавшие в sub-category of следует
перенести в See also.</p>
      <p>Оценить предстоящую работу можно так: для
начала надо разобраться с 1269 линзами. Они
сильно убавят размер ССК.</p>
      <p>Только если это нужно википедистам можно
было бы продолжить и:
- Исследовать длинные пути.</p>
      <p>- Попытаться представить архитектуру графа в
целом. Например применить 3D визуализацию.</p>
      <p>- Проанализировать состав и логику связи
заголовков (особенно ССК).</p>
      <p>Особняком стоит задача получить и
проанализировать русский ГКВ. В проекте dbpedia
можно получить дамп русской версии, надо только
перекодировать с rdf-кодов букв (например, \u0432)
в UTF-8.
Литература
Investigation of the English version of the
Wikipedia categories graph</p>
    </sec>
    <sec id="sec-10">
      <title>Alexander Shkotin</title>
      <p>Wikipedia is the outstanding project of knowledge
accumulation. The knowledge is both of the general use,
as well of various specialization domains. Quality
check of this knowledge, especially automatic, is very
important. In this paper results of studying of a structure
of the English version of WCG (Wikipedia Categories
Graph) as a whole are presented. WCG is a system that
supports structure of knowledge and we are interested in
WCG content and its arrangement. It is shown that in
graph there are unacceptable logical violations;
organizational and technical methods for their elimination are
discussed.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Anton</given-names>
            <surname>Korshunov</surname>
          </string-name>
          , Denis Turdakov, Jinguk Jeong,
          <string-name>
            <given-names>Minho</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Changsung</given-names>
            <surname>Moon</surname>
          </string-name>
          .
          <article-title>A CategoryDriven Approach to Deriving Domain Specific Subset of Wikipedia</article-title>
          .
          <source>Proceedings of SYRCoDIS'11: The Seventh Spring Researchers Colloquium on Databases and Information Systems</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>53</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Batagelj</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mrvar</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>Pajek reference manual</article-title>
          . Ljubljana, April 16,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Christian</given-names>
            <surname>Bizer</surname>
          </string-name>
          , Jens Lehmann, Georgi Kobilarov, Soren Auer, Christian Becker, Richard Cyganiak,
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Hellmann</surname>
          </string-name>
          .
          <article-title>DBpedia - A Crystallization Point for the Web of Data</article-title>
          . May 25
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Шкотин</surname>
            <given-names>А.</given-names>
          </string-name>
          ,
          <article-title>Исследование графа категорий английской версии Wikipedia, Сообщение о результатах первого этапа</article-title>
          ,
          <source>Интернет</source>
          ,
          <year>2011</year>
          . https://sites.google.com/site/alex0shkotin/grafy/wi kipedia-category-graph
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>https://sites.google.com/site/alex0shkotin/grafy/sv aznye-komponenty</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Stefania</given-names>
            <surname>Vitali</surname>
          </string-name>
          , James B.
          <string-name>
            <surname>Glattfelder</surname>
            ,
            <given-names>Stefano</given-names>
          </string-name>
          <string-name>
            <surname>Battiston</surname>
          </string-name>
          .
          <article-title>The network of global corporate control</article-title>
          .
          <source>ArXiv.org</source>
          ,
          <year>2011</year>
          http://arxiv.org/abs/1107.5728
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>7. OWL 2 Web Ontology Language: Structural Specification and Functional-Style Syntax</article-title>
          . Boris Motik,
          <string-name>
            <surname>Peter F. Patel-Schneider</surname>
          </string-name>
          , Bijan Parsia, eds.
          <source>W3C Recommendation</source>
          , 27
          <year>October 2009</year>
          . http://www.w3.org/TR/owl2-syntax/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>