Создание онтологии в Protégé 5.0
Protégé является свободным программным средством с открытым исходным кодом для редактирования онтологий и систем управления знаниями 1 . Версия 5.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 автоматически размещает не очень красиво.