Создание онтологии в Protégé 5.0

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

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


Для создания онтологии открываем редактор Protégé 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

    0
    Сложно читать русский вперемешку с украинской мовой. Предметную область нужно было выбрать попроще и на русском.
      0
      Спасибо. Я так и думала, что в этом могут быть сложности, но скриншоты не хотелось переделывать. На будущее учту это и сразу буду делать на русском или английском.
      P.S. По поводу предметной области — я ее не особо выбирала, такое было задание :)
        0
        Не обращайте внимание на названия классов, они ведь всё равно могут быть на каком угодно языке, главное куда нажать, чтобы получились связи, свойства и характеристики.
          0
          Просто когда понимаешь контекст — то проще понимать с систему управления этим контекстом.
          Я не являюсь ненавистником украинского языка, просто я не понимаю его вообще.

          Сама тема управления знаниями очень интересна.
            0
            Чтобы понять контекст я перелопатила много источников на разных языках :). Если он вам действительно интересен про Российскую рамку можно почитать тут
              0
              а если взять абстрактную предметную область, которую любой человек понимает?

              мне интересен сам инструмент, система управления знаниями.
                0
                Я могу это все представить вам так. Есть школа (это в программе класс по умолчанию Thing). Его подклассы: 1-11(12) классы. Классы второго уровня: 1-А, 1-Б… Эти классы мы не связываем. А классы 3-го уровня: Предметы. Их нужно связать с классами 1-го и 2-го уровней через свойство, которое можно назвать — "учат". Т.е. все первые классы и в том числе и 1-А и 2-А "учат" Природоведение. Для того чтобы полнее представить какая это связь нужно добавить к свойству "учат" характеристику, например, Symmetric (Симметричные свойства). Это означает, если свойство p симметричное, и свойство связывает индивида а с индивидом b, то индивид b связан также с индивидом а через свойство р.
                Более подробно об этом в руководствах ч.1, ч.2, ч.3, ч.4.
                Они правда по 4-й версии, но не много отличий с 5-й.
        0
        А где можно почитать про практическую пользу онтологии в IT?
        0
        Да, было б классно добавить введение — что это и для чего это нужно.

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

      Самое читаемое