Protege является свободным программным средством с открытым исходным кодом для редактирования онтологий и систем управления знаниями 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 автоматически размещает не очень красиво.
Полный тьюториал можно скачать тут.
Создание новой онтологии
Для создания онтологии открываем редактор 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)
Stas911
19.02.2016 23:28Да, было б классно добавить введение — что это и для чего это нужно.
ketrin7
22.02.2016 09:48stas911 На хабре и в том числе в этом хабе, по-моему, достаточно статей на тему онтологий. Например, С чего начинаются онтологии и по тегу онтология. Поэтому я решила этого не делать. Или вы про НРК?
kay
А где можно почитать про практическую пользу онтологии в IT?
ketrin7
Очень лаконично и просто у Карпова В.Э. . Еще у Величко В., есть хорошее руководство "Разработка онтологий 101".
На англ. Automatic Fuzzy Ontology Generation for Semantic Web. Вообще очень много. Е