Logo ProtegeProtege является свободным программным средством с открытым исходным кодом для редактирования онтологий и систем управления знаниями 1 . Версия 5.0 на сегодня является актуальной (о ней подробнее). Поэтому я подумала, что простой тьюториал, как небольшое введение в работу с этой программой, не будет лишним на Хабре.

Создание новой онтологии


Для создания онтологии открываем редактор Protege 5.0 (загрузить можно с официального сайта или воспользоваться онлайн версией) и вводим ее название — например, NQF_FQF, и версию — /1.0.



Примечание: Мы создаем онтологию на примере Национальной рамки квалификаций Украины

Для добавления аннотации, которая бы поясняла о чем ваша онтология, необходимо нажать на «плюсик» возле слова Annotation.



В поле Value введите текст аннотации и нажмите кнопку Ок.
Так как мы пишем онтологию с использованием украинского языка, то язык аннотации мы не выбираем.
Для редактирования аннотации здесь и в других разделах редактора необходимо нажать на «кружочек» в правом углу аннотации.



Создание классов


Для создания классов вам необходимо перейти на вкладку Classes. Если у вас в редакторе она не отображается, нужно на панели инструментов выбрать Window – Tabs – Class views.



Во всех предыдущих руководствах советовали не трогать класс по умолчанию – Thing.. Мы так и поступаем.
Далее создаем свой класс. Для этого нужно нажать на кнопку Add subclass.


В открывшемся окне необходимо ввести название класса. Тут следует заметить, что кириллические символы работают, но для украинского языка не работает ‘ – апостроф. При написании слова с апострофом – отсекается часть текст до апострофа.

Примечание: ну нужна нам кириллица в названиях классов для более наглядного представления в графе. Да, конечно можно писать латиницей и никаких проблем :)

Также не пишутся названия классов типа:
1_слово
Вместо этого в редакторе получается
_слово
Но вот так писать можно:
Слово_1
То есть редактору не нравиться, когда название класса начинается с цифры.
После введения название класса в структуре онтологии появляется новый класс.

Так мы создали один класс и три подкласса.

Для лучшего описания онтологии сделаем не связанными классы между собой.
Чтобы это сделать, необходимо выбрать класс, затем в окне Description нажать на «плюсик» возле Disjoint With.



В открывшемся окне классов выбрать те, которые вы не хотите связывать. Комбинация Ctrl + левая кнопка мыши позволяет выбрать сразу несколько классов. Далее — Ок.

Теперь необходимо создать классы 2-го уровня для каждого из классов 1-го уровня. Замечательной особенностью редактора является то, что сделав не связанным один класс, остальные делаются автоматически.
Для этого в подклассе «Компетентність» создаем 8 подклассов: Рівень_1, Рівень_2…Рівень_8.
Для создания подклассов мы воспользуемся функцией создания иерархии классов. В главном меню из инструментов Protege Tools выберите Create Class hierarchy.

В открывшемся окне выберите основной класс и нажмите Continue.

Затем в поле Prefix пишем «Рівень_», а ниже в поле нужно написать названия добавляемых классов через пробел и и нажать Continue.



Вот, что должно получиться в итоге.


Как объяснено было выше, сделаем эти классы не связанными между собой использовав в окне Description — Disjoint With.

Создание связей


Эти подклассы (Рівень_1… Рівень_8) нельзя скопировать во все остальные (а нам нужно чтобы эти уровни были у всех предыдущих классов), но можно добавить связи.
Для этого следует выбрать класс и в окне Description нажать на «плюсик» возле SubClass Of.



В открывшемся окне выбрать вкладку Class hierarchy и из перечня классов выбрать те, которые вы хотите связать. Комбинация Ctrl + левая кнопка мыши позволяет выбрать сразу несколько классов. Далее — Ок.
Таким образом в SubClass Of появиться перечень связанных классов.



Если добавить плагин OntoGraf, то можно увидеть структуру онтологии в виде графа после перехода на вкладку OntoGraf.



Добавление свойств


Научимся добавлять свойства.

Примечание: мы создали еще дополнительные классы, поэтому появятся названия классов, о которых не было написано выше.

Создадим свойство на вкладке Object Properties. Как и при создании класса выбираем свойство и нажимаем кнопку .

В открывшемся окне пишем названия свойства. Правила написания названий тут такие же как и названий классов.

Теперь это свойство присваиваем объекту, например «Елементарні_загальні_знання».
Для этого на той же вкладке в окне Description нажимаем на «плюсик» возле Domens (intersection).



В окне, что открылось выбираем класс «Елементарні_загальні_знання».
Далее нажимаем «плюсик» возле Ranges (intersection) и в окне, что открылось выбираем клас «Рівень_0». В итоге мы связываем эти классы через свойство «належить».

И это отображается соответствующими линиями на графе OntoGraf.


Добавление характеристики


Для того чтобы добавить к свойству характеристику нужно его выделить, затем в окне Characteristics нажать «галочку» возле Symmetric.

Таким же образом поступаем с другими классами, подклассами, свойствами и т.д…

В итоге получаем граф. Для того, чтобы представить граф в удобоваримом виде нужно «ручками» попередвигать элементы, чтобы все было хорошо видно, т.к. OntoGraf автоматически размещает не очень красиво.



Полный тьюториал можно скачать тут.

Комментарии (11)


  1. kay
    19.02.2016 13:19

    А где можно почитать про практическую пользу онтологии в IT?


    1. ketrin7
      19.02.2016 19:44
      +1

      Очень лаконично и просто у Карпова В.Э. . Еще у Величко В., есть хорошее руководство "Разработка онтологий 101".
      На англ. Automatic Fuzzy Ontology Generation for Semantic Web. Вообще очень много. Е


  1. Stas911
    19.02.2016 23:28

    Да, было б классно добавить введение — что это и для чего это нужно.


    1. ketrin7
      22.02.2016 09:48

      stas911 На хабре и в том числе в этом хабе, по-моему, достаточно статей на тему онтологий. Например, С чего начинаются онтологии и по тегу онтология. Поэтому я решила этого не делать. Или вы про НРК?