Лабораторная работа №7

Использование ограничений для определения неявных классов в онтологии

           

Введение

На предыдущих этапах была построена онтология, соответствующая модели IDEF0 некоторой предметной области. При построении была использована таксономия (классификация) понятий и терминов соответствующей предметной области. Исследование онтологии позволяет выявлять новые метапонятия расширяющие словарь исходной  таксономии. Для этого можно использовать так называемые ограничения. Рассмотрим исследование для выявления классов: Activity, Input, Output, Control, Mechanism. В рамках данной лабораторной работы в качестве примера рассматривается неявный класс Activity.

 

Предварительные замечания

 

В данной лабораторной работе для выявления новых классов в редакторе Protégé используется машина вывода Reasoner, а также вкладка OWLViz. Поэтому для корректной работы редактора необходимо выполнить две операции:

1.      Описать все объекты исходной онтологии без использования кириллицы (перевести на английский язык). Фразы, определенные в Data Properties, переводить не  надо.

2.      Установить программный модуль, обеспечивающий корректную работу Reasoner и OWLViz.

Перевод для предыдущей онтологии, рассмотренной в качестве примера ранее, выглядит так.

Таблица 1.

                             Русский (lab05.owl)

English(lab071.owl)

                                                                   Словарь терминов

ИТС Оказание первой помощи в подразделениях инкассации

ITS First help in Incas departments

                      

            Входной контроль знаний

Input knowledge control

            Изучение учебных дисциплин

Learning of course

            Итоговый контроль знаний

Finish knowledge control

            Знания

Knowledge

                        Знания до начала обучения

Knowledge before education start

                        Результаты входного тестирования

Results of input testing

                        Знания после обучения

Knowledge after education

                        Результаты итогового тестирования

Results of finish testing

                        Повторное обучение

Repeat of education

            Информационно-тренинговый блок

Information and training block

            Сотрудник, проходящий обучение

Member of staff

Individuals

ИТС

ITS

Входной тест

Input test

Начальный уровень подготовки сотрудника

Start level of the training

Сотрудник инкассации банка, который проходит квалификационную переподготовку с помощью ИТС

Student of training

Результаты после прохождения входного теста

Results after start testing

Обучение

Learning

Выходной тест

Output test

Контроль прохождения материала.

Control course learning

Результаты после изучение информационного блока

Results after learning of course

Итоговый тест

Finish test

      Для того, чтобы заработала вкладка OWLViz, надо:

·         Скачать http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.zip

·         Разархивировать в какую-нибудь папку

·         В Protégé зайти в File->Preferences…->OWLViz и указать адрес папки, куда разархивировали \bin\dot.exe

 

 

Ограничения свойств

 

Напомним, что в OWL, свойства описывают бинарные отношения. Свойства типа данных (DataType) описывают связи между отдельными индивидами и значениями данных. Свойства объекта описывают связи между двумя индивидами.

Ключевой идеей данной лабораторной работы является описание или определение отношения, по которому эти индивиды являются членами одного класса. В OWL можно определить такие классы с помощью ограничений.

Ограничение описывает класс индивидов, основанный на отношении, по которому индивиды становятся членами класса. Другими словами, ограничение является таким же классом, как и именованный класс.

 

Примеры ограничений

 

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

 Представьте себе класс Людей и два его подкласса – Мужчины и Женщины. Теперь накладываемые ограничения будут определять новые классы из этих классов, а именно:

      Класс людей, которые имеют по крайней мере одно hasSibling отношение. (имеют родственников вообще )

      Класс людей, которые имеют по крайней мере одно отношение hasSibling к членам своего подкласса. (имеют родственников в данном подклассе, например среди мужчин или женщин )

      Класс людей,  имеющих только  hasSibling отношения мужчин к женщинами - то есть отношения между братьями и сестрами. (родственники брат и сестра )

      Класс людей, которые имеют более чем три связи hasSibling (имеют более трех родственников )

Теперь про наш пример с УИР.

Рисунок 1.

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

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

Кроме исходной классификации, мы можем ввести дополнительную классификацию индивидов, например по количеству конкретного вида отношений которые они имеют. 

·         Класс индивидов, которые имеют, по крайней мере, одно отношение  isInputOf к индивидам класса «Входной контроль» - то есть класс индивидов, которые связаны по крайней мере с одним индивидом из класса «Входной контроль».

В OWL мы можем описать все подобные классы индивидов с помощью ограничений. OWL- ограничения в OWL делятся на три основные категории:

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

      ограничения мощности;

      ограничения переменных.

Изначально мы будем использовать ограничения квантификатора, которые далее классифицируются на экзистенциальные ограничения и универсальные ограничения.

 

Экзистенциальные и универсальные ограничения

 

Экзистенциальные ограничения описывают классы индивидов, которые участвуют, по крайней мере, в одном отношении по указанному свойству для отдельных индивидов, которые являются членами указанного класса. К примеру Класс индивидов, которые имеют по крайней мере одно отношение  isInputOf к «некоторым - some» индивидам класса «Входной контроль». В Protege 4 ключевое слово «some - некоторые» используется для обозначения экзистенциальных ограничений.

Например, экземпляры функций в модели IDEF0 находятся в отношении isActivityOf только (only) к одному экземпляру, соответствующему функции более высокого уровня.

Универсальные ограничения описывают классы индивидов, имеющих «только- only» (одно) данное отношение к отдельным индивидам, которые являются членами конкретного класса.

Другой пример. Экземпляры объектов, являющихся контролем для функций в модели IDEF0, связаны с не менее чем с одним экземпляром функции. 

 

Экзистенциальные ограничения могут быть обозначены квантором существования (Ǝ). Они также известны как ограничения в OWL «someValuesFrom» .

Универсальные ограничения могут быть обозначены квантором (), который может быть прочитан ONLY. Они также известны как ограничения в OWL «allValuesFrom" .

 

Ограничение описывает анонимный класс (неименованный класс). Анонимный класс содержит всех индивидов, которые попадают под ограничение - т.е. все индивиды которые имеют отношение, указанное в ограничении, должны быть членами анонимного класса.

 

Ограничения для класса, отображаются и редактируются с помощью панели средств «Class Description View», представленной на рисунке 2. Панель Class Description View - это сердце закладки «Classes» в Protege, в ней практически все данные используются для описания класса. На первый взгляд «Class Description View» может показаться сложным, однако скоро станет очевидным, что это невероятно мощный способ описания и определения классов.


 

 

Рисунок 2. Панель «Class Description View»

Ограничения используются в описании класса OWL для указания анонимных суперклассов описываемого класса.


 

 

4.8.2 Экзистенциальные ограничения

 

Экзистенциальные ограничения на сегодняшний день являются наиболее распространенным типом ограничений в онтологии OWL. Экзистенциальные ограничения описывают класс индивидов, которые имеют, по крайней мере, одно (some) отношение указанного свойства для индивида, являющегося членом заданного класса.

В нашем примере, isActitvityOf some ITS_Ferst_help_in_incass_departaments описывает всех индивидов, которые связаны отношением isActitvityOf  хотя бы с одним индивидом  класса ITS_Ferst_help_in_incass_departaments.

 

Экзистенциальные ограничения известны также как some- ограничения, или как some-значения из ограничений.

В других инструментах, документах и презентациях записывают ограничение “isActitvityOf some ITS_Ferst_help как “Ǝ isActitvityOf ITS_Ferst_help — эта альтернативная нотация называется DL синтаксис (Description Logics Syntax), который является более формальным синтаксисом.

 

Добавим экзистенциальное ограничение для Activty, определяющее класс Activity связанным с ITS First help in Incas departments  отношением isActivityOf

 

Очень важно указать сначала положение ограничения в иерархии классов, а потом задать собственно ограничение.

 

 

1. Выбор Activity из иерархии классов на закладке «Classes».

 

2. Выберите значок «Добавить» (+) рядом с заголовком «SubClass of» в «Class Description View», представленном на рисунке  с тем, чтобы создать необходимое условие. Появится панель.

 

3. Выберете закладку Class hierarchy и нажмите «Ок». Снова вернетесь на панель, но уже будет добавлен класс Thing, от которого Activity является Subclass Of

 

4. Снова выберите значок «Добавить» (+) рядом с заголовком «SubClass of» в «Class Description View», представленном на рисунке 4.30 с тем, чтобы создать необходимое условие. Появится панель п. 2

 

5. Выберете закладку «Object restriction creator», показанную на рисунке. Это откроет два окна, где мы можем ввести наши ограничения

 

6.В левом окне по иерархии отношений выбираем isActivityOf, а в правом окне по иерархии классов выбираем ITS First help in Incas departments

 

7.Внизу из меню типов ограничений выбираем some и нажимаем «Ок».

 

 

Мы описали класс Activity как подкласс Thing и то, что есть связанный подкласс ITS_Ferst_help_in_incass_departaments.

Обратите внимание на то, что является необходимым условием для индивидов класса Activity — необходимо, чтобы были индивиды класса Thing (в OWL все индивиды является членами класса Thing), из которых некоторые являются членами класса  ITS_Ferst_help_in_incass_departaments. Более формально, чтобы быть членом класса Activity  необходимо быть в отношениях через свойство isActivityOf  с индивидом, которым является член класса ITS_Ferst_help_in_incass_departaments.

Когда ограничения используются для описания классов, они на самом деле описываются относительно анонимного супперкласса. Например мы среди прочего могли бы сказать, что Input_knowledge_control  подкласс класса Activity и подкласс класса Thing, индивиды которого имеют по крайней мере одну из функций класса ITS_Ferst_help_in_incass_departaments.

 

 

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

 

Настало время, чтобы добавить несколько различных подклассов в нашей онтологии. Мы начнем путем добавления класса «Activity_of_ITS_Ferst_help_in_incass_departaments», который включает функции, имеющие отношение к Ferst_help_in_incass_departaments. Для того чтобы в нашей онтологии был порядок, мы сгруппируем наши различные функции в классе «Activity_of_ITS_Ferst_help_in_incass_departaments».

 

 

1.Выберите класс Activity из иерархии классов на закладке «Classes».

 

2.Нажмите на кнопку «Добавить подкласс» для создания нового подкласса назовите его Activity_of_ITS_Ferst_help_in_incass_departaments.

 

3. Создайте новый подкласс класса Activity и назовите его Activity_of_ITS_Ferst_help_in_incass_departaments.

 

Создание экзистенциальных (some) ограничений на Activity_of_ITS_Ferst_help_in_incass_departaments, действующих по отношению isActivityOf  для указания, что Activity_of_ITS_Ferst_help_in_incass_departaments имеет по крайней мере одну функцию из ITS_Ferst_help_in_incass_departaments.

 

1. Убедитесь, что выбран Activity_of_ITS_Ferst_help_in_incass_departaments в иерархии классов.

 

2. Используйте кнопку «+» на «Sub Class Of» секции представления описания класса.

 

3. В правом окне появившейся панели выберите isActivityOf.

 

4. Выберите «some» для создания экзистенциальныого ограничения.

 

5. В левом окне выберете класс Input_knowledge_control в качестве диапазона для ограничения.

 

6. Нажмите «Ок» для создания ограничения, если есть какие-либо ошибки, ограничение не будет создано, и ошибка будет выделена красным.

 

 

Панель «Class Description View» теперь должна выглядеть подобно рисунку.

 

 

Рисунок 5.

 

Использование резонера (Using A Reasoner)

 Этот инструмент в Protégé 4 – это машина (или алгоритм) логического вывода. Причем, в Protégé 4.2 альтернативных алгоритмов 2: Fact++ и HermiT 1.3.6, они работают по-разному, но обеспечивают практически одно и то же: логику рассуждений. Поэтому эквивалентным заголовком данного раздела можно считать:

Использование логики рассуждений

 

Одна из ключевых особенностей онтологий, которые описываются с помощью OWL DL, заключается в том, что они могут быть обработаны резонером. Одна из основных услуг, предлагаемых резонером — для тестирования иерархии классов и их описаний. Еще одна стандартная функция, которая выполняется резонером, это проверка согласованности. Исходя из описания (условия) класса резонер может проверить, имеются ли у класса какие-либо экземпляры. Класс считается несовместимым, если он не может иметь экземпляров.

Резонеры, также известны как классификаторы.

 

Резонер запускается командой start из вкладки Reasoner главного меню, а выключается командой none. В ходе работы над онтологией резонер может работать в фоне. Результаты работы реазонера отображаются в иерархии классов на панели inferred (выводимая классификация). Кроме этого всякие предупреждения реазонера управляются в правом нижнем углу экрана галочкой show inferences. На панели описания классов реазонер отображает выводимые элементы описания класса на бледно-розовом фоне. Не запрещается заменять при этом выводимые описания на явные.

Если резонер уже работает, то для учета введенных вами изменений необходимо нажимать Ctrl+r (что соответствует команде synchronize reasoner), что соответствует заданию на проведение новой классификации c учетом изменений в онтологии.

 

Вызов реазонера

 

В Protégé 4.2 и 4.3 могут быть подключены OWL-резонеры Fact++ и HermiT 1.3.6 которые поставляются в дистрибутиве. В онтологию может быть "направлен мыслитель 'для автоматического вычисления классификации иерархии, а также для проверки логической последовательности онтологии.  В Protégé 4 иерархия вручную построенных классов называется заявленной иерархией. Иерархия классов, которая автоматически вычисляется резонером, называется выводимой иерархией. Настройка функций резонера осуществляется на панели (рис. 4.39).

Когда иерархия класса была вычислена резонером, то в окне иерархии появится класс отмеченный, как показано на рисунке 4.40. Если вычисляемая иерархия изменяет существующую, то имя изменяющего положение класса появится в синем цвете на изображении иерархии. Если класс признан несовместимым, то его иконка будут выделена красным цветом.

Панель настройки параметров реазонера

 

 

Необходимые и достаточные условия (Primitive and De fined классы)

 

Для всех классов, созданных до настоящего времени, мы использовали только необходимые (Primitive) условия для их описания. Primitive-условия могут быть прочитаны как, «если индивид является членом этого класса, то он удовлетворяет Primitive-условиям». Но используя только необходимые условия, мы не можем сказать, что, "если что-то отвечает этим условиям, то он обязательно должен быть членом этого класса".

Класс, который имеет только Primitive-условия в описании, известен как Primitive-Class.

 

Конвертировать необходимые условия для Activity в необходимые и достаточные условия

 

1. Убедитесь что Activity_of_ITS_Ferst_help_in_incass_departaments выбран в иерархии классов

 

2. В меню «Edit» выберите «convert to defined class». Или просто нажмите Ctrl+d.

 

 Панель описания классов должна выглядеть как на рисунке.

 

 

Подводя итог: Если класс А описывается с помощью необходимых условий, то мы можем сказать, что, если индивид является членом класса А, то он должен соответствовать условиям. Мы не можем сказать, что любой (случайный) индивид, удовлетворяющий этим условиям, являлся членом класса А. Однако если класс А теперь определяется с помощью необходимых и достаточных условий, можно сказать, что если индивид является членом класса А, то он должен соответствовать условиям и, мы теперь можем сказать, что если (случайный) индивид удовлетворяет этим условиям, то тогда он должен быть членом класса А. Условия являются не только необходимыми для членства в A, но также достаточными, чтобы определить, что индивид, удовлетворяющий этим условиям, является членом А.

Как это полезно на практике? Предположим, что у нас есть еще один класс B, и мы знаем, что любые индивиды, которые являются членами класса В, также удовлетворяют условиям, которые определяют класс А. Мы можем определить, что класс В является частью класса A — другими словами: B является подклассом класса A. Проверка категорий классов является одной из ключевых задач описания логики рассуждений, и мы будем использовать резонер для автоматического вычисления иерархии классов.

В OWL можно иметь несколько наборов необходимых и достаточных условий.

 

Primitive и Defined классы

 

Классы, которые имеют, по крайней мере, один набор необходимых и достаточных условий, известны как определенные (defined) классы — они имеют определение, и любой индивид, который удовлетворяет определению, будет принадлежать к классу. Классы, которые не имеют каких-либо комплектов необходимых и достаточных условий (имеют только необходимые условия) известны как primitive- классы. В Protégé 4 определенные классы имеют значок класса с тремя горизонтальными белыми линиями в них. Примитивные классы имеют значок класса, который имеет простой желтый фон. Важно также понимать, что резонер может только автоматически классифицировать классы по описанию классов - т.е. классы должны иметь, по крайней мере, один набор необходимых и достаточных условий.

 

Визуализация новых классов

 

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

Activity

Activity_of_ITS_Ferst_help_in_incass_departaments

 

3 похожих класса-дубликата

 

Анализировать полученную классификацию удобно через вкладку OWLViz.

 

 

 

ЗАДАНИЕ.

Опишите класс Activity, определяемый через наличие свойства isActivityOf для Вашего варианта.

Отчет:

Онтология (owl)

Перевод таксономии и экземпляров (см. таблицу 1)

Описание онтологии (doc/docx)

 

Пример Алгоритма выполнения (описание онтологии)

 

Действие

Иллюстрация

1

Определение положения ограничения Activity

2

Определение его как подкласса Thing

3

Создание необходимого условия принадлежности к Activity

4

Создание подкласса Activity_of_ITS_Ferst_help_in_incass_departaments. (ограничение появляется автоматически)

5

Создание ограничений связанных с другими функциями

 

5.1

Input_knowlege_control

5.2

Learning_of_course

5.3

Finish_knowlege_control

6.1

Определение необходимых и достаточных условий

6.2

Результат

7

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

 

7.1

Input_knowlege_control

7.2

Learning_of_course

7.3

Finish_knowlege_control

8.

Проверка Резонером (не должно появляться сообщений об ошибке)

9.

Визуализация