Protege руководство пользователя

Protege Documentation

This is the official documentation for Protégé 5.5.0. You can find
information about the Protégé user interface including descriptions
of the various views and menu items.

Installation

Explains how to install Protégé on Windows, Mac OS X and Linux.

Getting Started

A quick start guide for Protege.

Views

Provides a list of all of the default views that are distributed with Protégé

Menus

Explains what each menu item in Protégé does

Class Expression Syntax

Provides a reference for the class expression syntax that is used throughout Protégé.

Время на прочтение
3 мин

Количество просмотров 62K

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 автоматически размещает не очень красиво.

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

1. Введение

Справочный документ: официальный учебник Protégé 4OWL
Поскольку версия Protégé, используемая в учебных руководствах, которые можно увидеть в Интернете, относительно старая и на английском языке, здесь приведена сортировка.

Программное обеспечение Protégé — это программное обеспечение для редактирования онтологий и приобретения знаний, основанное на языке Java, разработанное Научно-исследовательским центром биоинформатики Медицинского факультета Стэнфордского университета, или средство разработки онтологий и редактор, основанный на знаниях. Это программное обеспечение в основном используется для построения онтологии в семантической сети и является основным инструментом разработки для построения онтологии в семантической сети. Последняя версия — теперь версия 5.5.0.
Protégé обеспечивает построение классов, отношений, атрибутов и экземпляров концептов онтологии и защищает конкретный язык описания онтологий. Пользователям необходимо только создать модель онтологии предметной области на концептуальном уровне.

Protégé адрес для скачивания

Загруженный Protégé обычно представляет собой сжатый пакет.После распаковки сжатого пакета есть два файла Protege.exe и run.bat. Нажмите любой из них, чтобы открыть Protégé.
Интерфейс, открытый Protégé, в основном является интерфейсом Tab активной онтологии.
Protege
Имя онтологии можно изменить в IRI онтологии.
Аннотации — это панель комментариев, вы можете добавить некоторые информационные аннотации или описания в онтологию.
Метрики онтологии справа будут отображать некоторую статистику связанных элементов в онтологии.

2. Начните строить новую онтологию

Построение онтологии в основном выполняется через интерфейс Tab сущностей. Простейшая онтология должна завершить определение свойств класса и объекта.

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

Добавление и удаление классов осуществляется на вкладке класса. Класс Thing — это класс, представляющий коллекцию всех людей. Следовательно, все классы являются подклассами вещей. Что касается классов, есть три основных операции:

Следует отметить, что имя класса не может повторяться. Кроме того, текущая версия Protégé имеет относительно высокую совместимость с китайским языком, но иногда китайский будет отображаться как □. В процессе использования рекомендуется сначала использовать английское наименование. Благодаря операции класса мы можем установить «Пицца (пицца)», «Пицца База (пицца дно)», «Пицца Топпинг (пицца лапша)» трех категорий.

В правом нижнем углу интерфейса Tab класса Class находится столбец описания класса, что эквивалентно добавлению некоторых ограничений в существующий класс.
Например, для определенного экземпляра это либо PizzaBase, либо PizzaTopping, так что можно установить отношение «Disjoint with», указывая, что эти два набора не пересекаются.

Поэтому, если вы обнаружите, что экземпляр является и PizzaBase, и PizzaTopping, эта ситуация не разрешается. Такие операции обеспечивают строгость класса.

Затем вы можете улучшить структуру онтологии, добавив подклассы. Например, пицца имеет блины и толстые пирожные на дне, а лапша для пиццы имеет разные вкусы. Такое наследование между классами является так называемой таксономией.

Если в процессе редактирования иерархические отношения классов случайно неверны, вам не нужно удалять, а затем повторно редактировать, вы можете перетащить этот класс до уровня, который должен быть, аналогично работе с папкой. Если класс перетаскивается, его подклассы также будут перемещаться вместе с ним, но это не изменит иерархические отношения между этим классом и его подклассами.
Если имя класса неверно, вы можете щелкнуть правой кнопкой мыши и выбрать «Изменить имя IRI», чтобы изменить

Если вам нужно добавить много подклассов, вы можете щелкнуть правой кнопкой мыши по классу и выбрать «Добавить подклассы».

Введите имя подкласса, который будет создан, в большое пустое поле, отделенное возвратом каретки. Вы можете завершить создание подкласса одним щелчком мыши. Нажмите «Продолжить», и вы увидите, что подклассы, созданные таким образом, являются непересекающимися наборами по умолчанию.

Нажмите «Готово», чтобы завершить создание.

В онтологии связь между классами и подклассами может быть понята следующим образом: возьмите приведенный выше пример, все экземпляры в DeepPanBase являются экземплярами PizzaBase, это отношение определяется отношением подкласса (SubClass-of) И он существует естественным образом, то есть при создании экземпляра нам нужно только указать, что это экземпляр DeepPanBase.

2. Свойство объекта

2.1 Установление свойств объекта

Два типа свойств определены в свойствах объекта-онтологии и свойства данных.

Object properties are relationships between two individuals.
Datatype properties describe relationships between individuals and data values.

Мы знаем, что самым базовым элементом онтологии или семантической сети является триплет (s, p, o). Определение вышеупомянутого класса можно рассматривать как определение s и o. Здесь атрибутом объекта является определение p ,

Определение атрибутов объекта и атрибутов данных можно понять следующим образом: если есть пара красного и зеленого, то мы можем сначала определить две категории — мужчины и женщины, Xiaohong — это экземпляр класса «женщина», а маленький зеленый — это класс Пример «человека». После этого мы можем определить отношения между мужем и женой между Сяохун и Сяолу, и эти отношения являются атрибутом объекта «муж и жена». В то же время мы также знаем, что Сяохонгу в этом году 30 лет, поэтому мы можем определить атрибут данных «возраст» Сяохуна, значение атрибута «30».

Аналогично интерфейсу Class, интерфейс свойства Object показан ниже.

Как и Thing, topObjectProperty является корневым узлом всех свойств. Работа с атрибутом в основном завершается тремя кнопками.

Как и в случае классов, имена свойств объекта не могут повторяться. В то же время в «Официальном руководстве» также рекомендуется, чтобы для облегчения управления при наименовании лучше всего было иметь возможность отражать отношения, описываемые свойствами объекта, с одного взгляда.
Если он назван на английском языке, рекомендуется использовать строчные буквы для первого слова без пробелов между каждым словом (поскольку пробелы могут вызвать проблемы при программировании), начиная со второго Прописать первую букву слова (легко различать разные слова и быстрее понимать значение атрибутов объекта); кроме того, в руководстве также рекомендуется использовать для первых строчных слов знак «есть» и «есть», поскольку это наиболее распространенный атрибут объекта ,
Если он назван по-китайски, я считаю, что это просто для избежания двусмысленности.
Пример:

При определении свойств объекта важной операцией является определение обратной связи между свойствами. Например, «isParentOf» и «isChildOf» представляют собой пару взаимных атрибутов объекта. Определение взаимных отношений является дополнением к онтологическим отношениям и оптимизации процесса рассуждения.
В этом примере вы можете сначала выбрать «hasTopping», а затем нажать «+» рядом с «Inverse Of», чтобы создать атрибут объекта «isToppingOf», чтобы завершить определение пары взаимных атрибутов. , Если вы создали атрибут объекта «isToppingOf», вы можете выбрать атрибут объекта «isToppingOf» в диалоговом окне, которое появляется после нажатия «+».

2.2 Определение свойств объекта

При определении свойств объекта мы также можем определить свойства свойств свойств объекта и сделать более подробное описание свойств объекта. Эти характеристики могут быть хорошо проиллюстрированы отношениями между членами семьи.

  • Functional
    Все мы знаем значение «функции». Здесь Функциональное можно рассматривать как отношение «одного отображения» в функции. Если свойство атрибута объекта является функциональным (однозначным), то для экземпляра существует только один экземпляр, связанный с этим атрибутом объекта.

Functional properties are also known as single valued properties and also features.


Это пример в «Руководстве», атрибут объекта «hasBirthMother» определяет «функциональные» характеристики, тогда «Jean hasBirthMother Peggy» и «Jean hasBirthMother Margaret» могут содержать два факта Рассуждение приводит к тому, что «Пегги и Маргарет — одно и то же лицо». Если есть другие факты, указывающие на то, что Пегги и Маргарет не одно и то же лицо, это приведет к противоречиям.

  • Inverse Functional

Наиболее важная особенность Inverse Functional все еще отражена в Functional, что означает «обратное свойство свойства объекта является свойством единственного значения».

  • Transitive

Транзитив определяет транзитивность свойств объекта. На следующем рисунке приведен пример руководства, в котором предполагается, что атрибут объекта «hasAncestor» имеет свойство «Transitive». Если «Matthew hasAncestor Peter» и «Peter hasAncestor William» известны, его можно получить путем транзитивного вывода «hasAncestor» Дело в том, что «у Матфея есть предок Уильям».

  • Symmetric

Симметричный определяет симметрию свойств объекта. Среди членов семьи, если у Мэтью есть брат (hasSibling) по имени Gemma, у Джеммы, естественно, также есть брат (hasSibling) по имени Matthew. Мы можем определить, что атрибут объекта «hasSibling» является симметричным, тогда нам нужно объявить только один факт, а другой факт возникает естественным образом из-за «симметрии» атрибута объекта.

  • Asymmetric

Асимметрию также легче понять, например, атрибут hasChild нельзя определить как симметричный.

  • Reflexive

Reflexive определяет рефлексивность свойств объекта, то есть отношения между вами и вами. Например, атрибут объекта «знать» (зная) должен быть известен всем.

  • Irreflexive

Irreflexive определяет неотражаемость свойств объекта, что означает, что это свойство объекта не может описать отношения между самим экземпляром и самим собой. Например, isMotherOf.

Для определенного атрибута объекта можно определить одну или несколько характеристик, но будьте осторожны, чтобы не противоречить. Например, в руководстве есть два важных напоминания:

Если вы определите, что свойство объекта является транзитивным, то его обратное свойство также должно быть транзитивным.
Если вы определяете транзитивный атрибут, то этот атрибут не может быть однозначным.

If a property is transitive then its inverse property should also be transitive.
Note that if a property is transitive then it cannot be functional.

2.3 Домены и диапазоны свойств объекта

Мы знаем, что семантическая сеть может рассматриваться как граф. Два узла, соединенные ребром, являются фактом (или становятся знанием), а именно (s, p, o), тройным, и это ребро является атрибутом объекта. В то же время этот граф должен быть ориентированным графом, тогда каждая сторона имеет направленность стрелки — начальная точка этой стрелки называется доменом атрибута объекта (я обычно называю это доменом), а фокус — диапазон атрибута объекта. (Я обычно называю это диапазоном).
Поля значений и определений могут быть выбраны и определены в описании.

В примере с Pizza мы можем определить значения и поля определения этих атрибутов. Как показано:

В Protégé свойства объекта могут иметь несколько диапазонов значений.
Для взаимных атрибутов объекта домен значения атрибута объекта является доменом его обратного атрибута, а домен определения атрибута объекта является доменом его обратного атрибута.

3. Используйте свойства объекта для описания классов (ограничения класса)

Атрибуты объекта по существу определяют отношения между классами.После определения этих атрибутов объекта вы можете использовать эти атрибуты для описания класса или добавить некоторые ограничения к определенному классу.

A restriction describes a class of individuals based on the relationships that members of the class participate in. In other words a restriction is a kind of class, in the same way that a named class is a kind of class.

В Protégé определение ограничений можно найти в столбце Description класса:

Нажмите «+», вы можете ввести его вручную в редакторе выражений класса или выбрать его в создателе ограничений объектов. Некоторые более сложные отношения могут быть введены вручную, некоторые более простые варианты прямых отношений будут быстрее.

Здесь я хочу объяснить, что в учебнике добавление ограничений к классам происходит в «SuperClasses», но в последней версии Protégé определения этих ограничений помещаются в «SubClass Of». Это потому, что эти ограничения на самом деле определяют неявный класс.Члены этого неявного класса являются членами, которые удовлетворяют этим ограничениям, все члены этого класса являются членами этого неявного класса; Классы являются подклассами неявных классов, образованных ограничениями.

В онтологии существует три типа ограничений: описание квантификатора (ограничения квантификатора), описание количества (ограничения кардинальности) и описание включения (ограничения hasValue).

3.1 Ограничения квантификатора

Описание квантификатора можно разделить наОписание экзистенциального квантификатора(Экзистенциальные ограничения) иОписание универсального квантификатора(Universal Restrictions)。

  • Описание экзистенциального квантификатора

Ключевые слова для описания квантификаторов существованияsome«Для описания. В математических логических выражениях описание квантификатора существования может быть представлено символом« ∃ ». Например,« hasTopping »some «MozzarellaTopping» означает «Топпинг в этом классе является членом MozzarellaTopping.» Отношение показано на следующем рисунке:

Возьмите MargheritaPizza в качестве примера. MargheritaPizza — это блюдо, приготовленное из муки собственного производства и маленьких помидоров. Приправой является оливковое масло и голландская салями. Мы можем разобраться в отношениях между MargheritaPizza и другими классами.

  • Топпинг MargheritaPizza может быть TomatoTopping или MozzarellaTooping.
  • MargheritaPizza имеет много видов тортов.

Таким образом, вы можете добавить некоторые описания в MargheritaPizza, как показано ниже:

Точно так же мы можем добавить ограничения для AmericanPizza, AmericanHotPizza, SohoPizza:

В интерфейсе создания класса вы можете видеть маленькую кнопку для выбора «Утверждено» или «Вывод». Утверждение — это структура, созданная человеком вручную, а «вывод» — это структура, полученная путем рассуждения.

The ‘manually constructed’ class hierarchy is called the asserted hierarchy.
The class hierarchy that is automatically computed by the reasoner is called the inferred hierarchy.

При использовании механизма логического вывода, если существует противоречивый класс, он будет представлен красным, чтобы нам было удобно проверить, верны ли определенный нами класс и его отношение ограничения. Protégé предоставляет множество плагинов для рассуждающих машин. Выберите соответствующую рассуждающую машину и нажмите «Запустить рассуждение», чтобы начать рассуждение.

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

И наоборот, если пицца имеет сыр на боку, то это сырная пицца. Поэтому мы должны изменить необходимое условие «hasTopping some CheeseToppig» на достаточное и необходимое условие. В этом случае мы просто добавляем «и» перед «hasTopping some CheeseToppig», но его следует добавить в разделе «Эквивалентно».

Точно так же, когда мы используем механизм логического вывода, мы можем обнаружить, что в «логическом» интерфейсе подкласс CheeseyPizza автоматически расширяется.

Сравните созданную вручную структуру со структурой, полученной автоматическим выводом:

  • Описание универсального квантификатора

Упомянутые выше описания — это все существующие описания кванторов (некоторые). Ниже мы в основном рассмотрим описание универсального квантификатора. Ключевое слово для описанияonly«Для описания. В математических логических выражениях описание универсального квантификатора может быть представлено символом« ∀ ». Например,« hasTopping »only «Моцарелла» означает «Топпинг любого члена этого класса — Моцарелла».
Предположим, что мы определяем подкласс Pizza VegetarianPizza (вегетарианская пицца), вы можете добавить следующее описание:

Когда мы вызываем механизм вывода таким же образом, мы обнаруживаем, что в VegetarianPizza не генерируются подклассы.В соответствии с описанием других пицц, VegetarianPizza должны включать MargheritaPizza и SohoPizza.

Это связано с тем, что в онтологии используется допущение «Открытый мир» (OWA).

Предположение о близком мире (CWA), предположение о замкнутом мире, устанавливает ложные предположения для всех неизвестных в настоящее время вещей. Смысл в модели BIM: когда элемент не описывается подробно в модели BIM, модель BIM по умолчанию не существует. Большая часть программного обеспечения BIM теперь использует допущение CWA.
Предположение об открытом мире (OWA), противоположное CWA, очень честно относится к предложению, которое не может быть выведено, и считается, что оно не знает, является ли предложение правильным или нет, такие последствия Вывод, который можно сделать из базы знаний, значительно сокращен. Семантическая сеть должна основываться на предположении OWA.

Поэтому нам нужно добавить описания замыканий в эти классы.
Для MargheritaPizza:

Для СохоПицца:

В настоящее время, когда мы вызываем механизм вывода, мы можем обнаружить, что подкласс VegetarianPizza автоматически расширяется:

Мы знаем, что существует много типов пиццы, в дополнение к определенным нами CheeseyPizza, VegetarianPizza и NamedPizza будут различные типы пиццы, конечно, у нас нет способа определить их все. Следовательно, нам нужно определить класс-ValuePartitions, который содержит классы, которые можно перечислить, такие как пряность Pizza ValuePartition, в том числе три степени — Легкая, Средняя и Горячая.

Тогда мы знаем, что при заказе у Пиццы могут быть только эти три вида пряности, и эти три пряных набора не пересекаются друг с другом — то есть, Пицца не является мягкой (мягкой) или средней Пряный (средний) или горячий (горячий). Здесь мы представим «Аксиомы покрытия». Мы добавляем «Аксиомы покрытия» в класс SpicinessValuePartition, как показано ниже:

В настоящее время это описание означает: SpicinessValuePartition = Mild∪Medium∪Hot
Вы можете использовать следующую картинку, чтобы увидеть различные значения этого класса до и после «Аксиом покрытия»:

Точно так же мы можем использовать описание квантификатора, упомянутое ранее, чтобы добавить описание Pizza Spicy к различным Pizza Topping.
Для JalapenoPepperTopping:

Для RedPepperTopping:

В настоящее время мы можем найти SpicyPizza в следующих пицц:

Условие здесь означает: этот экземпляр — Pizza, и у него есть определенная PizzaTopping, а вкус этой PizzaTopping — горячий. Вызвав механизм логического вывода, вы можете узнать, что подкласс SpicyPizza — американский HotPizza:

3.2 Описание количества (Ограничения по количеству элементов)

Описание количества в основном содержит минимальное, максимальное и ровно три ключевых слова, что относительно легко понять. Например, мы создаем класс InterestingPizza (Extreme Pizza):

Другими словами, эта интересная пицца должна содержать как минимум 3 разных типа пасты (hasTopping min 3). Вызвав механизм логического вывода, мы можем получить основные подклассы InterestingPizza:

Мы можем определить более сложные отношения, такие как FourCheesePizza:

Здесь сказано, что у FourCheesePizza должно быть 4 вида лапши, а эта лапша — сырная начинка. Вызвав механизм логического вывода, мы обнаружили, что, хотя FourCheesePizza не имеет подклассов, FourCheesePizza стала подклассом InterestingPizza и CheeseyPizza. Потому что InterestingPizza — это пицца с по крайней мере 3 разными вкусами пасты, а FourCheesePizza имеет 4 разных вкуса сыра, что, естественно, является подклассом InterestingPizza, CheeseyPizza — это пицца с добавлением пиццы, поэтому FourCheesePizza также является подклассом CheeseyPizza.

3.3 Включить описание (ограничения hasValue)

Содержит описание ключевых слов «value«Для описания. В математических логических выражениях описание квантификатора существования может быть представлено символом« ∋ ». Например,« hasCountryOfOrigin »value Италия »(Италия — это пример) означает« связь между этим классом и этим примером. Италия имеет hasCountryOfOrigin ».
Например, сначала мы создаем экземпляр «Италия», его тип является страной, создаем атрибут объекта hasCountryOfOrigin:

После того, как. Мы добавляем описание к Моцарелле:

Давайте создадим еще один класс и хотим найти PizzaTopping с итальянским вкусом:

Позвонив в механизм вывода, вы можете получить следующие результаты:

На данный момент, в основном, закончено описание класса, вы также можете обратиться к официальной документации:Class Expression Syntax

4. Перечисленные классы

Здесь мы обнаружили, что страна на самом делеПеречислительный классТогда как класс перечисления должен быть выражен в Protégé?
Сначала мы определим примеры этих стран:

Затем добавьте описание к классу Country:

Вызовите механизм вывода, чтобы получить результат вывода:

Для классов со многими экземплярами использование этого метода для определения отношений между классом и экземпляром, несомненно, является хорошим методом.

5. Свойство данных (Data Property)

Object properties are relationships between two individuals.
Datatype properties describe relationships between individuals and data values.

Если атрибут объекта описывает отношения между классами, то атрибут данных описывает атрибуты самого класса, который в большей степени соответствует китайскому значению слова «атрибут». Определение свойства данных находится в основном под вкладкой свойства Data, которая аналогична интерфейсу определения свойства объекта, и здесь не будет повторяться.
Продолжая этот пример пиццы, мы знаем, что разные продукты имеют разные калории, мы можем определить атрибут data-hasCalorificContentValue, используемый для представления калорий разных пицц.
Здесь необходимо отметить, что атрибут данных должен указывать от экземпляра до определенного значения. Мы можем определить область определения (различные классы) атрибутов данных и область значений (тип данных значений атрибутов), но мы не можем добавлять атрибуты данных в «классы», только атрибуты данных в «экземпляры».

5.1 Добавление экземпляров и определение атрибутов данных

Добавление экземпляра должно быть реализовано на вкладке «Индивидуумы»:

Введите имя экземпляра. Следует отметить, что имя экземпляра не может повторяться:

Добавьте тип экземпляра, предполагая, что MargheritaPizza:

Затем добавьте атрибуты данных экземпляра:

Наконец, вы можете увидеть соответствующее описание экземпляра Pizza-1 следующим образом:

Точно так же мы можем создать экземпляр AmericanPizza с 723 калориями:

5.2 Использование атрибутов данных для описания классов

Мы знаем, что еда имеет калорийность, здесь нужно добавить описание: у каждой пиццы есть атрибут данных hasCalorificContentValue. Мы можем добавить некоторые ограничения данных в класс Pizza.

Исходя из этого, мы можем определить высококалорийный класс Pizza-HighCarloriePizza, который относится к классу с калорийностью выше 400, и добавить к нему некоторые описания:

Вызвав механизм логического вывода, вы можете получить экземпляр Pizza-2, добавленный в HighCarloriePizza (потому что Pizza-2 имеет калорийность 723):

Точно так же вы можете определить класс низкокалорийной пиццы:

Вызов механизма вывода может обнаружить, что, поскольку Pizza-1 имеет только 263 калории, она принадлежит LowCarloriePizza:

6. Резюме

Вторая глава в основном является основной частью руководства.После понимания содержания второй главы, не должно быть проблем с началом построения онтологии. Применение механизма логического вывода в основном используется для проверки и классификации онтологий, в определенной степени это сокращает процесс ручного построения онтологий.
Кроме того, при создании онтологии чрезвычайно важно разобраться в связи между каркасом онтологии и классами, а также является необходимым условием для плавного рассуждения.
Кроме того, описание классов в Protégé фактически представляет собой различное использование символов математического набора и логических символов. После понимания соответствия между этими символами и описаниями вы сможете лучше понять соответствующие описания в Protégé. ,

3. Рассуждение в предположении об открытом мире

Как упоминалось ранее, семантическая сеть основана на предположениях открытого мира. В предположении открытого мира неизвестное знание является неопределенным, что значительно сократит выводы, полученные из рассуждений.
Например, здесь определяется класс NonVegetarianPizza, который описывается следующим образом:

Мы определяем другую Pizza-UnclosedPizza, которая описывается следующим образом:

Когда мы вызвали механизм логического вывода, мы обнаружили, что UnclosedPizza не является ни NonVegetarianPizza, ни VegetarianPizza, потому что наше описание UnclosedPizza просто говорит о том, что у UnclosedPizza есть разновидность пирога с лапшой — MozzarellaTopping.

И если мы изменим описание UnclosedPizza:

Мы можем обнаружить, что UnclosedPizza классифицируется как подкласс VegetarianPizza:

Следовательно, при выводе семантической паутины нам необходимо обратить внимание на настройку условий вывода.

Protege Desktop User Documentation

This page is the official documentation home for the Protege Desktop application versions 4, 5 and higher.

Contents

  • 1 Protege Desktop User Documentation
    • 1.1 Build status & release notes
    • 1.2 Bugs & feature requests
    • 1.3 Frequently asked questions
    • 1.4 Getting started / tutorials
    • 1.5 Editor features
    • 1.6 Advanced features
    • 1.7 Further setup / configuration
    • 1.8 Plugins
      • 1.8.1 Finding plug-ins
      • 1.8.2 Advertising plug-ins
    • 1.9 Contributing

Build status & release notes

The latest version of Protege Desktop is 5.5:

  • Release notes
  • Installation instructions
  • Download latest version of Protege

You may also download previous versions of Protege and read the complete list of release notes. Older Protege 5.0 beta release notes are available here.

Bugs & feature requests

Before you report a bug or feature request, check the Protege mailing lists archives to ensure it hasn’t already been reported. If the item is not currently open or you have further information or a question about an existing item, please post a message on the protege-user mailing list. Give as much detail as possible (including examples or ontologies if possible) as this will help us track things down more quickly.

Current GitHub issue tracker: https://github.com/protegeproject/protege/issues?state=open

Frequently asked questions

We’ve put together a wiki page to answer the most commonly asked questions about Protege Desktop.

Getting started / tutorials

The Getting started and tutorials have been moved to the main page of the wiki.

Editor features

  • Overview of features — a quick summary of the editor
  • Protege views guide — a list of all of the default views that are distributed with Protege
  • Protege menu guide — all of the default menus explained in detail (with keyboard shortcuts)
  • Protege preferences guide — customizing Protege to your needs
  • Naming and rendering of entities — a note on naming things in OWL and configuring Protege to support your naming conventions
  • Protege expression editor — adding and editing OWL expressions in Protege
  • Manchester OWL Syntax — an overview of the default syntax used by Protege
  • DL Query tab — how to query using arbitrary class expressions in OWL
  • OWL Imports — modular ontology support in OWL and Protege
  • Axiom annotations — how to annotate at axiom level in Protege
  • Protege OWL Diff — compare two versions of an ontology

Advanced features

  • The Bean Shell — Making complex queries against an ontology.
  • The Protege 4 Server

Further setup / configuration

  • Adding more memory
  • Double-clicking on OWL files
  • Dealing with Protege preferences problems
  • Working with firewalls and proxies

Plugins

Finding plug-ins

  • Protege will find plugins and updates for you. See our Auto Update page.
  • Plugins for Protege — the list of all plugins compatible with different versions is available here.
  • CO-ODE Protege Plugins — the CO-ODE group at the University of Manchester is the biggest contributor of plug-ins to the Protege editor. The CO-ODE plugins that are compatible with your installation of Protege will show up when going in the File menu -> Check for plugins

Advertising plug-ins

If you have developed a plug-in for Protege and you would like to contribute it to the community,
please see contributing plugins.

Contributing

Please see this page for details on how you can contribute.

<Практический справочник

по построению Онтологий OWL в Protege 4

Адаптированный русский перевод с практическими комментариями

Издание неофициальное, для некоммерческого использования

Практический справочник

по построению Онтологий OWL в Protege 4
и CO-ODE Tools Edition 1.
Мэтью Хорриддж
Другие авторы:
v 1 — Holger Knublauch, Алан Ректор, Роберт Стивенс, Крис Ро
v 1 — Саймон Джапп, Джорджина Маултон, Роберт Стивенс
v 1 — Ник Драммонд, Саймон Джапп,
Джорджина Маултон, Роберт Стивенс
Манчестерский университет
Авторское право © Манчестерский университет
6 Подробнее о рассуждении об открытости мира
Глава 7
7 Создание других OWL конструкций в Protege 4
7.1 Создание индивидов
ПРЕДИСЛОВИЕ
Читая эту обучающую программу/гида и делая полезные комментарии и
предложения относительно того, как она могла быть улучшена, я хотел бы признать и
благодарить моих коллег в Манчестерском университете и также университета
Стэнфорда. В особенности я хотел бы благодарить своих непосредственных коллег: Алана
Ректора, Ника Драммонда, Хай Вана и Джулиана Зайденберга из университета
Манчестера, которые предложили изменения ранних проектов обучающей программы,
чтобы сделать её более ясной и также гарантировать техническую правильность
материала. Алан был особенно полезен в предложении изменений, которые сделали
учебный процесс более лёгким. Я благодарен Крису Ро и Роберту Стивенсу, которые
задумали оригинальную идею базировать обучающую программу на онтологии о пиццах.
Наконец, я также хотел бы благодарить Наташу Ной из Стэнфордского университета за её
ценный опыт в обучении, создании и предоставлении обучающих программ по Protege,
обеспечивший детализированные и полезные комментарии о том, как начальные проекты
обучающей программы/гида могли быть сделаны лучше.
Эта работа была поддержана частично проектом CO-ODE, финансируемым
британским Объединённым Комитетом по Информационным услугам и Проектом
(GR/S44686) HyOntUse, финансируемым британским фондом EPSRC и грантом 21XS067A
от Национального Онкологического института.
co-ode
Глава 1
1 Введение
Этот гид представляет Protege 4, предназначенный для создания
онтологии OWL. Глава 3 даёт краткий обзор языка онтологии OWL. Глава 4
сосредотачивается на том, чтобы научиться строить онтологию OWL-DL и
использовать систему логического вывода (СЛВ) в дескрипционной логики
(Description Logic — DL), чтобы проверить согласованность онтологии и
автоматически построить иерархию классов онтологии. Глава 7 описывает
некоторые конструкции OWL, такие как ограничения hasValue и
перечисляемые классы (nominals), которые непосредственно не используются
в главной обучающей программе.
1 Соглашения
советы и предложения, связанные с использованием protege 4 и
строительством Онтологий отмечены этим знаком.
разъяснение о том, что это значит
потенциальные ловушки и предупреждения отмечены этим
знаком
общие примечания отмечены этим знаком
разъяснения слов и альтернативные имена отмечены этим знаком
☺ комментарий автора перевода
☺ О применённых русских терминах
Индивид — от лат. individuum — неделимое) — единичное как
противоположность совокупности, массе; отдельное живое существо, особь,
отдельный человек, в отличие от стада, группы, коллектива. В логике И.
называют любой объект, обозначаемый единичным, или собственным,
именем. Логические формальные исчисления, содержащие общие и
экзистенциальные предложения, обычно предполагают существование
непустой области каких-либо индивидуальных предметов — индивидов, к
которым относятся утверждения формальной системы. Природа И. для
логики безразлична, требуется только, чтобы они отличались один от
другого, и чтобы каждый И. обозначался одним именем (Словарь логики).
Reasoner – мы применяем аббревиатуру СЛВ (система логического
вывода) потому что в Protégé 4 — это реальный программный компонент OWL
reasoner. Однако по тексту «reason» иногда означает собственно сам
«логический вывод», который обеспечиваются именно этим важным
программным компонентом.
Reasoner никогда не обозначает логику, это всегда программа (или на худой конец
алгоритм). Я предлагаю вместо “реазонер” везде использовать аббревиатуру СЛВ
или МЛВ (система или машина логического вывода).
Domain и Range. Для перевода range – выбрано слово «диапазон», так
как применяемое в русском лексиконе слово «ранг» практически является
синонимом слова «уровень» (например, в иерархии). Но для понимания того,
что написано в руководстве, подходят слова, позволяющие представить
направление применения свойства: откуда и куда – из «домена» в «диапазон»
(из множества в множество), где домен определяет множество индивидов к
которым применяется свойство (т.е. область определения), а диапазон
определяет множество индивидов, которые могут быть связаны этим
свойством с объектами из домена (т.е. область значений).
Class Description View – во многих местах по тексту я использую
термин «панель описания класса».
3 Компоненты онтологии OWL
Онтологии OWL состоят из компонентов, схожих с теми, которые
используются в Protege 3 (редакторе фреймов). Однако терминология,
используемая для описания этих компонентов, немного отличается от
используемой в Protege 3. Онтология OWL состоит из отдельных индивидов,
свойств и классов, которые примерно соответствуют экземплярам, слотам и
классам в Protege 3.
3.1 Индивиды (Individuals)
Индивиды, представляют собой конкретные объекты интересующей
предметной области (ПрО). Важным различием между Protege и OWL
является то, что в OWL не используется предположение об уникальности
имён (Unique Name Assumption — UNA). Это означает, что два разных имени
могут фактически ссылаться на один и тот же индивид. К примеру «Королева
Елизавета», «Королева» и «Элизабет Виндзор» могут обозначать одного и
того же человека. В OWL два индивида могут обозначать один и тот же
объект предметной области, если явно не указано обратное. Рисунок 3.
показывает представление некоторых индивидов в некоторой области — в
этом руководстве мы представляем отдельных индивидов как ромбики в
диаграммах.
Рисунок 3 Изображение индивидов
Рисунок 3 Изображение свойств
3.1 Свойства (Properties)
Свойства — это бинарные отношения на индивидах. Другими словами,
свойства соединяют двух индивидов. Например, свойство hasSibling могло
бы связать человека Мэтью с человеком Джеммой, или свойство hasChild
могло бы связать человека Питера с человеком Мэтью. Свойства могут быть
обратными (inverse) по отношению друг к другу. Например, hasOwner
является обратным по отношению к isOwnedBy.
Область значений свойства может быть ограничена единственным
объектом, в таком случае свойство называется функциональным.
Свойства могут также быть транзитивными и симметричными. Эти
особенности свойств объяснены подробно в Разделе 4. Рисунок 3.
показывает представление некоторых свойств, соединяющих некоторых
индивидов.
Индивиды, также известны как экземпляры. Индивиды (в примере)
могут быть экземплярами классов.
Свойства примерно эквивалентны слотам в Protege-фрейм. Они также
называются ролями в описании логики и отношений в UML и других
объектно-ориентированных понятиях. В GRAIL и некоторых других
формализмах их называют атрибутами.

####### GALEN Representation and Inference Language — формализованный язык, специально

####### созданный для медицинской онтологии GALEN (задолго до появления OWL).

Рисунок 3: Представление классов (содержащих индивидов)
Глава 4
4 Создание онтологии в OWL
В этой главе описывается создание онтологии пиццы. Мы используем эту
предметную область, потому что в ней можно представить множество
полезных примеров.
Упражнение 2 Создайте новую онтологию OWL
1.Запуск Protege 4
2.При появлении диалогового окна «Добро пожаловать в Protege» нажмите создать
новые OWL онтологии
3.Появится мастер «Создание URI онтологии». Каждая онтология создаётся с
использованием уникального имени — идентификатора ресурса (URI). Замените
значение по умолчанию на pizza/ontologies/pizza.owl и нажмите
«Далее».
4.Вы можете сохранить ваши онтологии в файл на вашем компьютере. Вы можете
просмотреть ваш жёсткий диск и сохранить ваши онтологии в новый файл, вы можете
назвать ваш файл ‘pizza’. Как только вы выбрали файл, нажмите ‘Finish’.
После этого новый пустой файл Protege будет создан и появится окно «Active Ontology
Tab», представленное на рисунке 4. Как видно из рисунка 4, «Active Ontology Tab»
отображает информацию об онтологии. Например, онтология URI может быть изменена,
аннотации на онтологии, такие как комментарии, могут быть добавлены и
отредактированы, а также имена и импорт можно настроить с помощью этой вкладки.

☺- Protege 4 создаёт новый проект при запуске, опуская описанные выше

действия, характерные для более ранних версий Protege 4. Можно сразу приступить к
созданию онтологии. Но лучше сначала сделать Save_as и указать тип, имя и место
хранения вашего проекта. В дальнейшем периодически сохранять проект, выбирая save на
главной панели меню. Это необходимо делать, так как неудачные изменения могут
привести к непредсказуемым последствиям.
__________________________________________________________________
Онтология, что мы создадим, основана на онтологии пиццы, которая была
использована в качестве основы для курса по редактированию DAML + OIL
онтологий в (oiled.man.ac), которые изучаются в университете Манчестера
Рисунок 4: Вид аннотации онтологии — rdfs:comment
Упражнение 3: Добавление комментариев к онтологии
1. Убедитесь, что выбрана закладка «Активные онтологии»
2. В представлении «Онтология аннотации» щёлкните значок (+) рядом с
аннотациями. В таблице появится окно редактирования. Выберите из списка
встроенных аннотации идентификаторы URI «comment-комментарии» и введите свой
комментарий в текстовое поле в правой
3. Введите комментарий: «онтология пиццы, которая описывает различные пиццы,
основанный на их начинке», и нажмите кнопку OK, чтобы сохранить комментарий.
Вид аннотации на закладке «Активной онтологии» должен выглядеть, как показано на
рисунке 4.
4 Создание именованных классов
Как упоминалось ранее, основными строительными блоками онтологии OWL
являются классы. В Protege 4 создание классов осуществляется в закладке «Classes»,
показанной на рисунке 4. Дерево иерархии первоначально установленного класса
представлено на рисунке 4. Пустая онтология содержит один класс с именем THING.
Как упоминалось ранее, в OWL классы интерпретируются как множества индивидов (или
объектов). Класс THING — это класс, представляющий набор, содержащий все объекты
предметной области. По этой причине все классы являются подклассами THING 2.
Давайте добавим некоторые классы в онтологии для того чтобы определить, какими
бывают пиццы.
2 Является частью OWL лексики, которая определяется онтологией, расположенной
в w3. org/2002/07/owl/#
Рисунок 4: The Classes Tab
Рисунок 4. Иерархия классов
Упражнение 4: Создание классов Pizza, PizzaTopping и PizzaBase
1.Убедитесь, что выбрана закладка «Classes».
2.Нажмите кнопку «Добавить подкласс», см. рисунок 4. Эта кнопка создаёт новый
класс как подкласс выбранного класса (в данном случае мы хотим создать подкласс
класса THING).
3.Отобразится диалоговое окно для ввода названия вашего класса, введите Pizza (как
показано на рисунке 4) и нажмите Enter.
4 Непересекающиеся классы (Disjoint Classes)
Добавив классы Pizza, PizzaTopping и PizzaBase к онтологии, можно указать, что эти
классы являются непересекающимися, так что любой объект не может быть экземпляром
более чем одного из этих трёх классов. Для указания, что выбранный класс не
пересекается с другими классами, нажмите на кнопку «Disjoint with», которая
расположена в нижней части панели «Описание класса» (см. рис.4а).
Рисунок 4а. Панель описания класса
Упражнение 5: Сделать Pizza, PizzaTopping и PizzaBase непересекающимися
В иерархии классов выберите класс Pizza
Нажмите на кнопку «Disjoint With» в режиме «описание класса», появится диалоговое
окно, где вы можете выбрать несколько классов (через кнопку Ctrl, рис.4б), которые
должны быть несвязанными. Это позволит сделать PizzaBase и PizzaTopping
(родственные классы Pizza) непересекающимися с классом Pizza
Обратите внимание, что теперь список непересекающихся классов отображает
PizzaTopping и PizzaBase. Выберите класс PizzaBase. Обратите внимание, что в
непересекающихся классах отображаются классы, которые в настоящее время не
пересекаются c PizzaBase, а именно: Pizza и PizzaTopping (см. рис. 4в).
Рисунок 4б. Одновременный выбор нескольких классов для указания непересекаемости
при помощи кнопки Ctrl
По умолчанию классы в OWL могут пересекаться. Мы поэтому не можем
предположить, что индивид не является членом определённого класса просто
потому, что он не утверждён экземпляром этого класса. Для того, чтобы
разделить группы классов их необходимо явно сделать непересекающимися.
Это гарантирует, что индивид, который является членом одного из классов в
группе, не может быть членом какого-либо другого класса в этой группе. В
нашем примере выше классы Pizza, PizzaTopping и PizzaBase были
объявлены непересекающимися. Это означает, что ни один объект не может
быть экземпляром более одного из этих классов, например, бессмысленно
одновременно быть и Pizza и PizzaBase.
Рисунок 4в. Отображение несвязанных классов

Понравилась статья? Поделить с друзьями:
  • Реамберин при онкологии инструкция по применению
  • Руководство для автомобиля ока
  • Женщина у которой 8 руководство
  • Замч доктора тохири инструкция по применению
  • Инструкция по охране труда при работе с электрическими весами