Руководства, Инструкции, Бланки

Скачать "Protege 5.0 Инструкция"

Бесплатно. Без регистрации и смс.

Protege 5.0 инструкция

Категория: Инструкции

Описание

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

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

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 - Курс - Разработка ПО - AgentLab Confluence

Краткое описание интерфейса Protege 5.0

1. Вкладка Entities. После загрузки онтологии обычно открывается вкладка Entities.

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

2. Вкладка Classes – тут можно более детально познакомиться с иерархией классов и их особенностями, создать новые подклассы, отредактировать иерархию.

3. Вкладка Object Properties – тут можно познакомиться с иерархией и особенностями объектных свойств, задать каждому свойству ограничения на Domain и Range.

4. Вкладка Individuals – тут тут можно познакомиться с особенностями индивидуалов.

При выборе в панели слева класса на других панелях показывается список его индивидуалов и их особенности.

Также здесь можно задать свойства индивидуалов и их значения.

Создание онтологии в программе Protege

Создание онтологии в программе Protege

Онтологией называют схему, состоящую из классов связанных между собой посредством различных отношений и правил. Это своеобразная форма представления некоторой области знаний в формальном виде. В настоящее время онтологии широко используются в программировании, обучении, различного рода исследованиях.

В данной статье будет рассказано о том, как создать простейшую онтологию в программе Protégé.

Создание простой онтологии

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

В рамках предметной области можно выделим несколько основных классов, а именно:

  • Попугай – главный класс, содержащий 3 классса-наследника – мелкие попугаи, крупные попугаи и средние попугаи.
  • Владелец – класс, содержащий информацию о человеке-владельце.
  • Регион – класс, содержащий информацию о месте обитания попугая.

Далее можно переходить к созданию проекта.

Первым шагом запускаем программу Protege и создаем новый проект. В окне настроек выбираем Protege Files.


На экране появляется рабочее окно, в котором нам и предстоит работать.

Первым делом при создании онтологии необходимо создать классы. Все спроектированные нами классы будут отображаться в окне Class Browser. Для создания нового можно щелкнуть на иконку «Create Class» или правой кнопкой мыши на поле браузера классов с указанием действия создания класса.

После создания класса, можно переименовать его в поле Name.

Для создания подкласса щелкаем по классу-родителю, нажимаем правую кнопку мыши и выбираем команду "Create Subclass”. При желании класс можно сделать абстрактным, выбрав соответствующий пункт в выпадающем списке Role.

После создания классов необходимо прописать в них поля – свойства. К примеру, у класса Регион будет свойство «Имя», которое будет содержать название региона, в котором проживают попугаи. Для добавления свойства в класс необходимо щелкнуть правой кнопкой мыши в окне «Template Slots» и указать команду «Create Slot».

При создании слота ему можно задать название, тип, значение по-умолчанию, временное значение, описание и т.п. Стоит отметить, что в качестве типа слота может выступать объект другого класса. Таким способом в программе Protégé устанавливается взаимосвязь между 2 классами.

Если ранее какой-либо слот, например, «имя» уже создавался, то его можно просто добавить в класс (при условии, что он подходит), нажав на кнопку в виде прямоугольника с плюсом в правом верхнем углу окна Template Slots.

После создания слотов и классов можно приступать к созданию экземпляров или Instances. Для этого сверху щелкните на одноименную вкладку и посередине увидите окно под названием Instance Browser.

Для того, чтобы создать экземпляр какого-либо класса, щелкните в окне Class Browser на нужный класс, а затем в окне Instance Browser нажмите на иконку добавления сущности Create Instance. После нажатия в окне Instance Browser появится строчка с вновь созданной сущностью, а справа в окне Instance Editor поля, соответствующие слотам класса, который необходимо заполнить.

Чтобы в окне Instance Browser отображать объекты по какому-либо признаку, щелкните на треугольник справа на панели и выберите свойство, которое отображать в браузере. В данном примере укажем свойство «Имя».

После создания сущностей можно приступать к формированию запросов. Формы для них находятся во вкладке запросы.

Чтобы создать необходимый запрос, нужно выбрать класс, в котором будет производиться поиск, свойство, по которому будет производится поиск, а также указать признак. Под признаком может пониматься как строчка, так и условие is, is not, contains, begins with и так далее.

Если запрос необходимо сделать составным, то есть содержащим 2 и более условий, в окне следует нажать кнопку more и ввести данные в соответствующие поля.

Созданный запрос можно сохранить и оставить в библиотеке, введя внизу в поле имя и нажав кнопку «Add to Query Library».

© fevt.ru, ПрИн-5 (2011)

Языки онтологий Создание онтологий в редакторе Protege-2000

Языки онтологий Создание онтологий в редакторе Protege-2000

Тема 6. Описание семантики понятий в Web

Лекция 15 Онтологии в семантическом Web

План

  1. Что такое Онтология?

  2. Языки онтологий

  3. Создание онтологий в редакторе Protege-2000

http://protege.stanford.edu

  1. Перспективы развития семантического веб

На первой лекции мы говорили о двух основных направлениях исследований в семантическом Web:

1. Разработка новых языков представление данных. На сегодняшний день такими языками являются Расширяемый Язык Разметки XML (eXtensible Markup Language) и Средства Описания Ресурсов RDF (Resource Description Framework).

2. Разработка онтологий понятий предметных областей. Это направление близко к области искусственного интеллекта, и называется онтологическим подходом. Оно включает средства аннотирования документов, которыми могли бы воспользоваться компьютерные программы - веб-сервиси и агенты при обработке сложных запросов пользователя.



Рис. 1. Стек технологий семантического Web (Пирог Тима Бернса-Ли)


Основной целью проекта «Семантического Web» является внедрение в Web пространство таких технологий, которые позволят существенно повысить уровень интеграции информации. обеспечить развитую машинную обработку данных, дадут возможность выдавать более адекватные ответы на поисковые запросы.


1. Что такое Онтология?

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

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

В контексте информационных технологий представления знаний, термином онтология можно определить некоторый механизм, способ, который используется для описания области знаний (предметной области или домена), в частности базовых понятий этой области, их свойств и связей между ними.


Онтология – описание модели предметной области


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


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

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

В простейшем случае онтологии можно использовать для повышения точности поиска в Internet – поисковая система будет выдавать только такие сайты, где упоминается в точности искомое понятие, а не произвольные страницы, в тексте которых встретилось заданное ключевое слово.

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

Типы онтологий ( Википедия ) :

  • Мета-онтологии — описывают наиболее общие понятия, которые не зависят от предметных областей.

  • Онтология предметной области — формальное описание предметной области, обычно применяется для того, чтобы уточнить понятия определённые в мета-онтологии (если используется) и/или определить общую терминологическую базу предметной области.

  • Онтология конкретной задачи — онтология, определяющая общую терминологическую базу задачи, проблемы.

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

Формально онтология определяется как O =. где

  • X — конечное множество понятий предметной области,

  • R — конечное множество отношений между понятиями,

  • F — конечное множество функций интерпретации.

2. Языки онтологий

Для описания моделей предметных областей есть достаточно много подходов:

Основанные на логике:

  • Дескриптивные логики(OIL, DAML+OIL, OWL)

  • Правила(RuleML, LP/Prolog)

  • Логика первого порядка(KIF)

  • Концептуальные графы

  • Логики высших порядков(LBase)

  • Неклассические логики (FLogic, немонотонные логики, модальности)

Многие языки используют объектно-ориентированную модель. основанную на:

– в логике первого порядка -эквивалентны константам

–множества объектов, имеющих общие характеристики

–в логике первого порядка – эквивалентны унарным предикатам

–множества пар (троек) объектов

–в логике первого порядка – эквивалентны бинарным предикатам

–(относительно) легки в использовании

–поддаются машинной обработке


Требования к языку онтологий для Web

•Расширять существующие стандарты Web –такие как XML, RDF, RDFS

•Быть простым для понимания и использования – должен базироваться на хорошо известных способах представления знаний

•Быть формально специфицированным

•Обладать “адекватной” выразительной мощностью

•Возможность обеспечить поддержку автоматических рассуждений

В языке OWL используется в несколько упрощенном виде один из наиболее популярных (и интуитивно понятных) сегодня подходов - объектно-ориентированный. Базовые понятия языка OWL: свойства, классы, объекты и ограничения реализуют представление о предметной области, как о множестве сущностей (объектов), характеризуемых некоторым набором свойств. Эти сущности состоят между собой в определенных отношениях и объединяются по определенным признакам (свойствам и ограничениям) в группы (классы).

Этот язык является развитием технологий XML и RDF и входит в разрабатываемый сегодня новый стек web-протоколов.

OWL full - полная версия языка (объединение OWL-синтаксиса и RDF);

OWL DL -ограничен фрагментом логики первого порядка (?DAML+OIL)

OWL Lite -“простое для реализации” подмножество OWL DL


OWL Lite - предназначен для пользователей, которым необходима классификационная иерархия и простые ограничительные возможности. Преимуществом этого языка являются большая легкость его понимания и внедрения по сравнению с двумя другими. Но в то же время его выразительные возможности гораздо ниже. Например, хотя OWL Lite и поддерживает ограничения мощности множества, единственными допустимыми значениями этого параметра являются 0 или 1.


OWL DL - предназначен для тех пользователей, кому необходим максимум выразительных средств без потери вычислительных возможностей. OWL DL - это подъязык конструкций языка OWL Full с некоторыми ограничениями, такими как разделение типов (type separation) (например, класс не может быть одновременно индивидуальным элементом или свойством, а свойство не может одновременно быть индивидуальным элементом или классом).


OWL Full - полная версия языка.

Этот язык использует все базисные элементы языка OWL и позволяет комбинировать их случайным образом с RDF и схемой RDF. Полный OWL совместим "снизу вверх" с RDF, как синтаксически, так и семантически: любой разрешенный документ RDF является также разрешенным документом OWL Full. Маловероятно, что какие-либо интеллектуальные программные средства способны поддерживать все возможности OWL Full, поскольку этот язык предлагает максимум выразительных средств и синтаксической свободы RDF при отсутствии вычислительных гарантий.


OWL-документы: пространства имен

OWL-документы (обычно называемые OWL-онтологиями) являются RDF-документами (т.е. имеют корневой элемент rdf:RDF)

В этом элементе обычно специфицируются следующие пространства имен:


Пример фрагмента онтологии предметной области Университет

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


OWL- документы: преамбула

•OWL-онтология может начинаться с множества утверждений для служебных целей. Эти утверждения группируются в элементе owl:Ontology. содержащем комментарии. управление версиями и включение других онтологий .

An example OWL ontology


•owl:imports-единственное утверждение, имеющее последствия для логического значения онтологии. Перечисляет другие онтологии, содержание которых подразумевается как часть текущей онтологии.


OWL: Элемент owl:Class

Классы определяются, используя элемент owl:Class. который является подклассом rdfs:Class .


Используя элемент owl:disjointWith можно сказать, что этот класс не пересекается с классами профессор и ассистент. Эти элементы могут включаться в приведенное выше определение или добавляться путем ссылки на id, используя rdf:about. Этот механизм наследуется от RDF:


OWL: эквивалентность классов.

Эквивалентность классов может быть определена, используя элемент owl:equivalentClass :


Классы owl:Thing и owl:Nothing

Два заранее определенных класса:

owl:Thing - наиболее общий класс, содержащий все . (все является вещью);

owl:Nothing - пустой класс.

Каждый класс является подклассом owl:Thing и суперклассом owl:Nothing


OWL: Элементы свойств (Property elements)

В OWL существует два вида свойств:

Объектные свойства (Object properties) -связывают объекты с другими объектами. Например: isTaughtBy. supervises и т.д.

Свойства -типы данных (Datatype properties) -связывают объекты со значениями типов данных. Например: phone, title, age и т.д.

OWL не имеет предопределенных типов данных и способов их определения;

OWL позволяет использовать типы данных XML Schema.

Пример свойства - типа данных:


OWL: Пример объектного свойства

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


Пример объектного свойства:


OWL: Инверсные свойства

OWL позволяет задавать «инверсные свойства», например: преподается и преподает .


Области определения и область значений могут наследоваться от инверсного свойства (перестановкой области определения и области значений)


OWL: Эквивалентные свойства

•Эквивалентность свойств может быть определена используя элемент owl:equivalentProperty :


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

•Элемент owl:Restriction в общем случае содержит элемент owl:onProperty и одно или более объявлений ограничений.

•Два типа ограничений:

–ограничения на тип значений свойства (owl:allValuesFrom, owl:hasValue и owl:someValuesFrom);

–ограничения кардинальности (числа значений)

OWL: Ограничения свойств - all

rdfs:subClassOf позволяет специфицировать класс C как подкласс другого класса C'. Объявление класса C, элементы которого удовлетворяют определенным условиям, эквивалентно утверждению, что C является подклассом C', в котором собраны все объекты, удовлетворяющие этим условиям.

Пример -элемент определяет курсы первого года обучения, читаемые только профессорами:


owl:allValuesFrom описывает класс возможных значений, которые может принимать свойство, специфицированное элементом owl:onProperty (значением свойства преподается могут быть только профессора).


OWL: Ограничения свойств - hasValue

Объявление, что курсы по математике читаются профессором, имеющим идентификатор 949352:


owl:hasValue утверждает, что свойство, специфицированное элементом owl:onProperty должно иметь конкретное значение.


OWL: Ограничения свойств - some

Примерами онтологий являются каталоги сайтов интерактивных покупок, таких как Amazon.com, стандартные терминологии той или иной области деятельности, например, UNSPSC - The United Nations Standard Products and Services Code (система стандартных продуктов и услуг ООН), или различные таксономические системы интернета, такие как категории сайта "My Yahoo".

Часто онтология предметной области сама по себе не является целью. Разработка онтологии сродни определению набора данных и их структуры для использования другими программами. Методы решения задач, доменно-независимые приложения и программные агенты используют в качестве данных онтологии и базы знаний, построенные на основе этих онтологий.


3. Создание онтологий в редакторе Protege-2000

Protege – локальная Java программа, разработанная группой медицинской інформатики Стенфордского университета. Программа предназначена для построения (создания, редактирования и просмотра) онтологий моделей прикладной области. Её первоначальная цель – помочь разработчикам программного обеспечения в создании и поддержке явных моделей предметной области и включение этих моделей непосредственно в программный код. Protege включает редактор онтологий, позволяющий проектировать онтологии разворачивая иерархическую структуру абстрактных или конкретных классов и слотов. Структура онтологии сделана аналогично иерархической структуре каталога. На основе сформированной онтологии, Protege может генерировать формы получения знаний для введения экземпляров классов и подклассов. Инструмент имеет графический интерфейс удобный для использования неопытными пользователями, снабжен справками и примерами. Protege основан на фреймовой модели представления знания OKBC (Open Knowledge Base Connectivity) и снабжен рядом плагинов, что позволяет его адаптировать для редактирования моделей в разных форматах.

Онтология в Protege представляется классами. слотами, фасетами и аксиомами.

Классы могут быть абстрактными или конкретными.

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

Атрибуты понятий в Protege называются слотами.

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

Protege поддерживает множественное наследование: один класс может иметь несколько суперклассов.

Для определения типов и ограничений на значение используются фасеты.

Слоты в Protege описывают свойства классов и экземпляров (возможные атрибуты). Согласно фреймовой модели, слот – это фрейм. Слоты определяются независимо от любого класса и один и тот же слот может принадлежать разным классам.

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

Слоты-образцы (template slot) и собственные (own) слоты. Слот можно присоединить к фрейму (классу) одним из двух способов: как слот-образец или как собственный слот. Собственный слот, присоединенный к фрейму, описывает свойства объекта, представленного фреймом. Классы также могут иметь собственные слоты. Например, документация класса является собственным слотом, присоединенным к классу, поскольку описывает сам класс, а не экземпляры класса.


Пример онтологии вин

(онтология 101)

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

Слоты описывают свойства классов и экземпляров: вино Chateau Lafite Rothschild Pauillac - крепкое, оно производится на винном заводе Chateau Lafite Rothschild. У нас есть два слота, которые описывают вино в этом примере: слот крепость со значением «крепкое» и слот производитель со значением «винный завод Chateau Lafite Rothschild». Мы можем сказать, что на уровне класса у экземпляров класса Вино есть слоты, которые описывают вкус, крепость, уровень сахара, производителя вина и т.д.

Все экземпляры класса Вино и его подкласс Pauillac имеют слот производитель, значение которого является экземпляром класса Винный завод (Рис. 1). Все экземпляры класса Винный завод имеют слот производит, относящийся ко всем винам (экземплярам класса Вино и его подклассов), которые производятся на этом заводе.

На практике разработка онтологии включает:

    • определение классов в онтологии;

    • расположение классов в таксономическую иерархию (подкласс – надкласс);

    • определение слотов и описание допускаемых значений этих слотов;

    • заполнение значений слотов экземпляров.

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


Рис. 1. Некоторые классы в области вин, экземпляры и отношения между ними. Черным обозначены классы, а красным – экземпляры. Прямые связи обозначают слоты и внутренние связи, такие как «экземпляр [класса]» и «подкласс [класса]».
Этапы создания онтологии


    Шаг 1. Определение области и масштаба онтологии.

Какие задачи должна решать онтология?

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


    В нашу онтологию будут включены понятия, описывающие различные типы вин, основные виды еды, понятие хорошего и плохого сочетания вина и еды.

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


Один из способов определить масштаб онтологии – это набросать список вопросов, на которые должна ответить база знаний, основанная на онтологии, т.е. вопросы для проверки компетентности. Эти вопросы будут служить лакмусовой бумажкой: Содержит ли онтология достаточно информации для ответа на эти типы вопросов? Требуется ли для ответов особый уровень детализации или представление определенной области? Эти вопросы для проверки компетентности являются всего лишь формальными и не должны быть исчерпывающими.

В области вина и еды возможны следующие вопросы для проверки компетентности:

1. Какие характеристики вина мне следует учитывать при выборе вина?

2. Вино Bordeaux красное или белое?

3. Хорошо ли сочетается Cabernet Sauvignon с морскими продуктами?

4. Какое вино лучше всего подойдет к жареному мясу?

5. Какие характеристики вина влияют на его сочетаемость с блюдом?

6. Влияет ли с год производства вина на его букет или крепость?

7. Какие урожаи Napa Zinfandel были хорошими?

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


Шаг 2. Рассмотрение вариантов повторного использования существующих онтологий

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

Мы будем считать, что соответствующих онтологий еще не существует, и начнем разрабатывать онтологию с нуля.


Шаг 3. Перечисление важных терминов в онтологии

Полезно составить список всех терминов, о которых мы хотели бы сказать что-либо или которые хотели бы объяснить пользователю. Например, в число важных терминов, связанных с винами, входят вино, виноград, винный завод, местоположение, цвет вина, его крепость, вкус и содержание сахара; различные виды еды, такие как рыба и мясо; типы вина, такие как белое вино и т.д. В начале важно получить полный список терминов, не беспокоясь о пересечении понятий, которые они представляют, об отношениях между терминами, о возможных свойствах понятий или о том, чем являются понятия – классами или слотами.


Шаг 4. Определение классов и иерархии классов

Существует несколько возможных подходов для разработки иерархии классов:

      • Процесс нисходящей разработки начинается с определения самых общих понятий предметной области с последующей конкретизацией понятий. Например, мы можем начать с создания классов для общих понятий Вино и Еда. Затем мы конкретизируем класс Вино, создавая его подклассы: Белое вино, Красное вино, Розовое вино. Мы можем еще дальше категоризировать класс Красное Вино, например, в Syrah, Red Burgundy, Cabernet Sauvignon и т.д.

      • Процесс восходящей разработки начинается с определения самых конкретных классов, листьев иерархии, с последующей группировкой этих классов в более общие понятия. Например, сначала мы определяем классы для вин Pauillac и Margaux. Затем мы создаем общий надкласс для двух этих классов – Medoc, который, в свою очередь является подклассом Bordeaux.

      • Процесс комбинированной разработки – это сочетание нисходящего и восходящего подходов: Сначала мы определяем более заметные понятия, а затем соответствующим образом обобщаем и ограничиваем их. Мы могли бы начать с нескольких понятий высшего уровня, таких как Вино, и нескольких конкретных понятий, таких как Margaux. Затем мы можем соотнести их с понятием среднего уровня, таким как Medoc. После этого нам может понадобиться сформировать все классы вин из области Франции, формируя таким образом ряд понятий среднего уровня.

На рис. 2 показано возможное деление на различные уровни обобщения.

Рис. 2. Различные уровни таксономии Вино: Вино, Красное вино, Белое вино, Розовое вино – более общие понятия, верхний уровень. Pauillac и Margaux – самые конкретные классы в иерархии, нижний уровень.


Ни один из этих трех методов не лучше других по своей сути. Какой метод мы бы ни избрали, обычно мы начинаем с определения классов. Из списка, составленного в Шаге 3, мы выбираем термины, которые описывают объекты, существующие независимо, а не термины, которые описывают эти объекты. В онтологии эти термины будут классами и станут точками привязки в иерархии классов ]. Мы организуем классы в иерархическую таксономию, задавая вопрос: если объект является экземпляром одного класса, будет ли он обязательно (т.е. по определению) экземпляром некоторого другого класса?

Если класс А – надкласс класса В, то каждый экземпляр В также является экземпляром А.

Другими словами, класс В представляет собой понятие, которое является «разновидностью» А.

Например, каждое вино Pinot Noir – обязательно красное вино. Поэтому класс Pinot Noir – подкласс класса Красное вино.

На рис. 2 показана часть иерархии классов онтологии по винам.


Рис. 3. Слоты класса Вино и фацеты этих слотов. Значок “I” рядом со слотом производитель указывает, что у слота есть обратный слот


Шаг 5. Определение свойств классов – слотов

Классы сами по себе не предоставляют достаточно информации для ответа на вопросы проверки компетентности из Шага 1. После определения некоторого количества классов мы должны описать внутреннюю структуру понятий.

Мы уже выбрали классы из списка терминов, который мы создали на Шаге 3. Большинство оставшихся терминов, вероятно, будут свойствами этих классов. Эти термины включают, к примеру, цвет вина, его крепость, вкус и содержание сахара, а также местоположение винного завода.

Для каждого свойства из списка мы должны определить, какой класс оно описывает. Эти свойства станут слотами, привязанными к классам. Таким образом, у класса Вино будут следующие слоты: цвет, крепость, вкус и сахар. А у класса Винный завод будет слот местоположение.

Вообще, в онтологии слотами могут стать несколько типов свойств объектов:

  • «внутренние» свойства, такие как вкус вина;

  • «внешние» свойства, такие как название вина и область, в которой оно было произведено;

  • части, если объект имеет структуру; они могут быть как физическими, так и абстрактными «частями» (например, блюда, входящие в обед);

  • отношения с другими индивидными концептами; это отношения между отдельными членами класса и другими элементами (например, производитель вина, представляющий отношение между вином и винным заводом, и виноград, из которого произведено вино).

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

Все подклассы класса наследуют слот этого класса. Например, все слоты класса Вино будут унаследованы всеми подклассами этого класса, включая Красное Вино и Белое Вино. К классу Красное Вино мы добавим дополнительный слот уровень танина (низкий, средний или высокий). Слот уровень танина будет унаследован всеми классами, представляющими красные вина (такие как Bordeaux и Beaujolais).

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


Шаг 6. Определение фацетов слотов

Слоты могут иметь различные фацеты, которые описывают тип значения, разрешенные значения, число значений (мощность) и другие свойства значений, которые может принимать слот. Например, значение слота название (как в «название вина») – одна строка. То есть, название – это слот с типом значения Строка. Слот производит (как в выражении «винный завод производит эти вина») может иметь множественные значения, которые являются экземплярами класса Вино. То есть, производит – это слот с типом значения Экземпляр, и разрешенным классом является Вино.

Сейчас мы опишем несколько общих фацетов.

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

Некоторые системы позволяют определить минимальную и максимальную мощность для того, чтобы более точно описать количество значений слота. Минимальная мощность N означает, что слот должен иметь не менее N значений. Например, слот виноград класса Вино имеет минимальную мощность 1: каждое вино делается, как минимум, из одного сорта винограда. Максимальная мощность М означает, что слот может иметь максимум М значений. Максимальная мощность слота виноград для вин из одного сорта винограда равняется 1. Иногда полезно установить максимальную мощность в 0. Эта установка будет означать, что для определенного подкласса слот не может иметь значений.


Тип значения слота

Фацет типа значения описывает, какие типы значений можно ввести в слот. Вот список наиболее общих типов значений:

  • Строка – самый простой тип значения, который используется в таких слотах, как название: значением является простая строка.

  • Число (иногда используются более конкретные типы значений: Float (Число с плавающей запятой) и Integer (Целое число)) описывает слоты числовыми значениями. Например, стоимость вина может иметь тип Float.

  • Булевы слоты – это простые флаги «да - нет». Например, если мы не будет представлять игристые вина как отдельный класс, то принадлежность к игристым винам может быть показана значением булевого слота: если значение «истина» («да»), то вино игристое, а если значение «ложь» («нет»), то вино не игристое.

  • Нумерованные слоты определяют список конкретных разрешенных значений слота. Например, мы можем установить, что слот вкус может принять одно из трех возможных значений: сильный, умеренный и мягкий. В Protege-2000 нумерованные слоты имеют тип Символ.

  • Слоты -экземпляры позволяют определить отношения между индивидными концептами. Слоты с типом значения Экземпляр также должны определять список разрешенных классов, экземпляры которых можно использовать. Например, слот производит класса Винный завод в качестве значений может иметь экземпляры класса Вино.

На рис. 4 показано определение слота производит класса Винный завод.



Рис. 4. Определение слота производит, который описывает вина, производимые на винном заводе. Слот имеет множественную мощность и значение типа Экземпляр.

Разрешенным классом для значений этого слота является класс Вино.

Домен слота и диапазон значений слота


Разрешенные классы для слотов типа Экземпляр часто называют диапазоном значений слота. В примере на рис. 4 класс Вино является диапазоном значений слота производит. Некоторые системы позволяют ограничить диапазон значений слота, если слот привязан к определенному классу.

Шаг 7. Создание экземпляров

Последний шаг – это создание отдельных экземпляров классов в иерархии. Для определения отдельного экземпляра класса требуется (1) выбрать класс, (2) создать отдельный экземпляр этого класса и (3) ввести значения слотов. Например, мы можем создать отдельный экземпляр Chateau-Morgon-Beaujolais для представления определенного типа вина Beaujolais. Chateau-Morgon-Beaujolais – это экземпляр класса Beaujolais, представляющего все вина Beaujolais. У этого экземпляра определены следующие значения слотов (рис. 5):

  • Крепость: Легкое

  • Цвет: Красный

  • Вкус: Мягкий

  • Уровень танина: Низкий

  • Виноград: Gamay (экземпляр класса Виноград для изготовления вин)

  • Производитель: Chateau-Morgon (экземпляр класса Винный завод)

  • Область: Beaujolais (экземпляр класса Винная область)

  • Сахар: Сухое


Рис. 5. Определение экземпляра класса Beaujolais. Экземпляром является вино Chateua Morgon Beaujolais из области Beaujolais, произведенное из винограда Gamay на заводе Chateau Morgon. Оно легкое, с мягким вкусом, красное, с низким уровень танина. Это сухое вино.


Обеспечение правильности иерархии классов

Отношение “is-a” 1

Иерархия классов представляет отношение “is-a”: класс А – это подкласс В, если каждый экземпляр В также является экземпляром А. Например, Chardonnay – подкласс класса Белое Вино. Другой способ подхода к таксономическому отношению – это отношение “kind-of” 2. Chardonnay –вид Белого вина. Реактивный лайнер –вид самолета. Мясо – вид еды.

Подкласс класса представляет понятие, которое является «разновидностью» понятия, представляемого надклассом.


Отдельно взятое вино не является подклассом всех вин


Рис. 7. Категоризация вин. Простое перечисление всех вин против нескольких уровней категоризации.


Перспективы развития семантического веб

Уже сегодня практически все известные компании уровня IBM, Adobe или Sun Microsystems, активно используют технологию Семантического Web в своих продуктах для решения задач управления данными.

Компания Microsoft инвестирует сотни миллионов долларов в проект взаимодействующих сетевых ресурсов .NET, который отражает их представление о ближайшем будущем Internet. Создаваемая система позволяет проводить автоматизированный обмен сетевыми ресурсами между отдельными программами, приложениями, базами данных, пользователями, основываясь на XML, как на ключевой технологии.

В Европе ведется проект, подобный Семантическому Web, - "Сеть знаний", Knowledge Web (http://kw.dia.fi.upm.es/semanticportal/jsp/frames.jsp). Эта сеть ориентирована на нужды информационных технологий в промышленности, науке и образовании, а Семантический Web (поддерживаемый и в Европе - SWAD-Europe, www.w3.org/ 2001/sw/Europe/) больше рассчитан на электронную коммерцию и упрощение работы пользователей сети Интернет.

Недавно в рамках идеологии Семантического Web в School of Electronics & Computer Science (ECS) Университета Саутгемптона была разработана система mSpace. Программное обеспечение этой системы представляет собой набор мощных инструментов, позволяющих собирать данные из различных источников и организовывать информацию по категориям и дающих возможность пользователю свободно ориентироваться в ней.

Перспективы


Может быть благодаря Семантическому Web Internet сможет выйти из намечающегося кризиса, связанного с "проблемой размерности". Появилась надежда, что компьютеры смогут обрабатывать данные в соответствии с их смыслом, следуя по гипер- ссылкам, ведущим к определениям ключевых терминов и правилам логических выводов. Полученная в результате инфраструктура даст отправную точку для разработки автоматизированных Web-сервисов, интеллектуальных агентов, ведь сама идея Семантического Web основана на стремлении "научить" компьютерные программы, Web-службы и роботы поисковых систем и агентов "осмысленно" оперировать той информацией, для которой последние были созданы.

Семантический Web обещает вполне ощутимые преимущества, дополнительные сервисы. Навигация в Сети станет более осмысленной, а поиск - более точным. Сами пользователи смогут создавать страницы Семантического Web, давать собственные определения и вводить новые правила вывода, используя стандартное для этой сети программное обеспечение.


1 Буквально «является».


2 Буквально «вид, разновидность [чего-то]».

Оформление материалов
Материалы докладов оформляются в форме статей. Текст статьи набирается в редакторе ms word 2000-2003. Для сопровождения доклада необходимо.

Требования к оформлению текстов докладов
Материалы могут быть подготовлены на украинском, русском или английском языках. Текст необходимо подготовить в редакторе Microsoft.

Гост 5402. 1-2000
Принят межгосударственным Советом по стандартизации, метрологии и сертификации (протокол №17-2000 от 22 июня 2000 г.)

Гост 5402. 2-2000 (исо 2477-87) межгосударственный стандарт
Принят межгосударственным Советом по стандартизации, метрологии и сертификации (протокол №17-2000 от 22 июня 2000 г.)