Рис. 5. Кривая отображения возраста в интервале от 0 до 1.
2. Методология и инструментальные средства построения онтологий
2.1 Представление знаний в виде онтологий
Онтологии представляют собой описания знаний, сделанные достаточно формально, чтобы быть обработаны компьютерами. [4]
Термин "онтология" впервые появился в работе Томаса Грубера, в которой рассматривались различные аспекты взаимодействия интеллектуальных систем между собой и с человеком. [4]
Онтология по Груберу представляет собой описание декларативных знаний, сделанное в виде классов с отношением иерархии между ними. [4]
Онтология состоит из примитивов представления знаний предметной области (определений основных понятий, таких как имена индивидуумов, классы, функции и другие сущности), а также различного рода семантических связей, поддерживаемых между ними. [7]
Онтологию предметной области можно рассматривать как словарь терминов, специфических для данной предметной области, вместе с совокупностью аксиом, которые обеспечивают интерпретацию и правильное использование этих терминов. [7]
Такие описания на каждом иерархическом уровне поддерживают отношение эквивалентности на множестве классифицируемых сущностей, обеспечивающее его разбиение на попарно непересекающиеся классы. При этом сущности соседних уровней иерархии обычно находятся в отношении «целое-часть» или «род-вид». В более сложном случае онтология задается в виде формального определения на языках представления знаний, допускающих логический вывод. [7]
Под формальной моделью онтологии О часто понимают упорядоченную тройку вида О = <С, R, F>, где C - конечное множество концептов (понятий) предметной области, которую определяет онтология О; R - конечное множество отношений между концептами (понятиями) предметной области, F - конечное множество функций интерпретации (аксиоматизация), заданных на концептах и/или отношениях онтологии О. Естественными ограничениями, накладываемыми на множество С являются конечность и не пустота. Что касается множеств R и F, то они могут быть пустыми, что соответствует частным видам онтологии, когда она вырождается в простой словарь, таксономию понятий и т.д. [2]
В настоящее время средства формального описания онтологии включают несколько альтернатив:
· представление онтологии предметной области в виде набора элементов метаданных «Дублинского ядра» (Dublin Core, DC);
· представление онтологии предметной области на языках логики первого порядка;
· представление онтологии предметной области с использованием стандарта языка описания онтологии - OWL (Ontology Web Language) для информационных ресурсов Web второго поколения на платформе XML. [7]
Дублинское ядро (Dublin Core, DC) - это набор элементов метаданных для представления онтологии предметной области. В терминах значений этих элементов можно описывать содержание различного рода текстовых документов и документов, представленных в иных средах. Привлекательность такого подхода связана с его простотой, что, оборачивается ограниченностью его возможностей. [7]
Формальное описание онтологии предметной области на языках логики первого порядка допускает возможности логического вывода. Довольно широкое распространение для представления онтологии получил язык указанной категории KIF (Knowledge Interchange Format), разработанный в начале 90-х гг. в Лаборатории систем знаний (KSL) Стэнфордского университета. Первоначально он разрабатывался как формальный язык для обеспечения обмена знаниями между различными системами, основанными на знаниях. [7]
На основе расширения языка KJF в той же лаборатории была создана исследовательская система Ontolingua, поддерживающая формирование и представление онтологии в некотором каноническом формате, благодаря чему обеспечивается их совместное использование и/или переносимость в среды различных оперирующих с ними систем. Онтологию, заданную в каноническом формате, можно легко транслировать в разнообразные системы, использующие различный синтаксис для представления знаний и обладающие различными возможностями рассуждений. [7]
Стандарт языка описания онтологии для информационных ресурсов Web - OWL (Ontology Web Language) разрабатывается рабочей группой по онтологиям для Web консорциума W3C с 2001г. Язык OWL основан на логиках описаний и предназначен для интеллектуальных систем поиска информационных ресурсов в среде Web второго поколения. [7]
Замысел создания Web второго поколения направлен на превращение Web в систему семантического уровня. Поскольку Web первого поколения строился с ориентацией на обработку содержащейся в нем информации человеком, технологии Web нового поколения должны обеспечивать возможности автоматизированной семантической интерпретации и обработки информационных ресурсов. [7]
Еще одним способом описания онтологии предметной области, широко используемым в исследовательских и коммерческих системах текстового поиска, является представление ее в форме тезауруса предметной области. [7]
2.2 Методология построения онтологий
Цель создания онтологий - обеспечить поддержку деятельности по накоплению, разделению и повторному использованию знаний. Исходя из этой цели, введен ряд критериев, которым должна отвечать онтология. [2]
Прозрачность - онтология должна эффективно передавать подразумеваемое значение определенного термина. [2]
Связность - онтология должна быть связной, то есть она должна позволять делать выводы, которые согласуются с исходными определениями понятий. По крайней мере, определяемые аксиомы должны быть логически согласованы между собой. [2]
Расширяемость - онтология должна быть разработана с возможностью использования разделяемого и пополняемого словаря.
Независимость от синтаксиса - концептуализация должна быть специфицирована на уровне знания максимально независимо от представления понятий на уровне символов. [2]
Минимальный базис при высокой выразительности - онтология должна вводить минимальный базовый набор понятий, но их должно быть достаточно, чтобы моделировать мир в требуемых целях и создавать сложные сцены. [2]
2.3 Инструменты для построения онтологий
Инженерию онтологий можно определить как совокупность действий, касающихся:
· процесса разработки онтологий;
· жизненного цикла онтологий;
· методов и методологий построения онтологий;
· набора инструментов и языков для их построения и поддержки. [6]
В настоящее время для создания и поддержки онтологий существует целый ряд инструментов, которые помимо общих функций редактирования и просмотра выполняют поддержку документирования онтологий, импорт и экспорт онтологий разных форматов и языков, поддержку графического редактирования, управление библиотеками онтологий и т.д. [6]
Ниже приведены наиболее известные инструменты инженерии онтологий. [6]
Система Ontolingua была разработана в KSL (Knowledge Systems Laboratory) Стенфордского университета и стала первым инструментом инженерии онтологий. Она состоит из сервера и языка представления знаний. [6]
Сервер Ontolingua организован в виде набора онтологий, относящихся к Web-приложениям, которые надстраиваются над системой представления знаний Ontolingua. Редактор онтологий - наиболее важное приложение сервера Ontolingua, является Web-приложением на основе форм HTML. Кроме редактора онтологий Сервер Ontolingua включает сетевое приложение Webster (получение определений концептов), сервер OKBC (доступ к онтологиям Ontolingua по протоколу OKBC) и Chimaera (анализ, объединение, интегрирование онтологий). Все приложения, кроме сервера OKBC, реализованы на основе форм HTML. Система представления знаний реализована на Lisp. [6]
Сервер Ontolingua также предоставляет архив онтологий, включающий большое количество онтологий различных предметных областей, что позволяет создавать онтологии из уже существующих. Сервер поддерживает совместную разработку онтологии несколькими пользователями, для чего используются понятия пользователей и групп. Система включает графический браузер, позволяющий просмотреть иерархию концептов, включая экземпляры. Ontolingua обеспечивает использование принципа множественного наследования и богатый набор примитивов. Сохраненные на сервере онтологии могут быть преобразованы в различные форматы для использования другими приложениями, а также импортированы из ряда языков в язык Ontolingua. [6]
Protеgе - локальная, свободно распространяемая Java-программа, разработанная группой медицинской информатики Стенфордского университета. Программа предназначена для построения (создания, редактирования и просмотра) онтологий прикладной области. Её первоначальная цель - помочь разработчикам программного обеспечения в создании и поддержке явных моделей предметной области и включение этих моделей непосредственно в программный код. Protеgе включает редактор онтологий, позволяющий проектировать онтологии разворачивая иерархическую структуру абстрактных или конкретных классов и слотов. Структура онтологии сделана аналогично иерархической структуре каталога. На основе сформированной онтологии, Protеgе может генерировать формы получения знаний для введения экземпляров классов и подклассов. Инструмент имеет графический интерфейс, удобный для использования неопытными пользователями, снабжен справками и примерами. [6]
Protеgе основан на фреймовой модели представления знания OKBC (Open Knowledge Base Connectivity) и снабжен рядом плагинов, что позволяет его адаптировать для редактирования моделей хранимых в разных форматах (стандартный текстовый, в базе данных JDBC, UML, языков XML, XOL, SHOE, RDF и RDFS, DAML+OIL, OWL). [6]
OntoEdit первоначально был разработан в институте AIFB (Institute of Applied Informatics and Formal Description Methods) Университета Karlsruhe (сейчас коммерциализован Ontoprise GmbH) выполняет проверку, просмотр, кодирование и модификацию онтологий. В настоящее время OntoEdit поддерживает языки представления: FLogic, включая машину вывода, OIL, расширение RDFS и внутреннюю, основанную на XML, сериализацию модели онтологии используя OXML - язык представления знаний OntoEdit (OntoEdit's XML-based Ontology representation Language). К достоинствам инструмента можно отнести удобство использования; разработку онтологии под руководством методологии и с помощью процесса логического вывода; разработку аксиом; расширяемую структуру посредством плагинов, а также очень хорошую документацию. [6]
Так же как и Protеgе, OntoEdit - автономное Java-приложение, которое можно локально установить на компьютере, но его коды закрыты. [6]
Существует две версии OntoEdit: свободно распространяемая OntoEdit Free (ограничена 50 концептами, 50 отношениями и 50 экземплярами) и лицензированная OntoEdit Professional (нет ограничений на размер). Естественно, что OntoEdit Professional имеет более широкий набор функций и возможностей (например, машину вывода, графический инструмент запросов, больше модулей экспорта и импорта, графический редактор правил, поддержка баз данных JDBC и т.д.). [6]
OilEd - автономный графический редактор онтологий, разработан в Манчестерском университете в рамках европейского IST проекта On-To-Knowledge. Инструмент основан на языке OIL (сейчас адаптирован для DAML+OIL, в перспективе - OWL), который сочетает в себе фреймовую структуру и выразительность дескриптивной логики (Description Logics) с сервисами рассуждения. Что позволило обеспечить понятный и интуитивный стиль интерфейса пользователя и преимущества поддержки рассуждения (обнаружение логически противоречивых классов и скрытых отношений подкласса). [6]
Из недостатков можно выделить отсутствие поддержки экземпляров. Существующая версия не обеспечивает полную среду разработки - не поддерживается разработка онтологий большого масштаба, миграция и интеграция онтологий, контроль версий и т.д. OilEd можно рассматривать как “NotePad” редакторов онтологий, предлагающий достаточную функциональность, чтобы позволить пользователям строить онтологии и продемонстрировать, как можно использовать механизм рассуждения FaCT для проверки онтологии на непротиворечивость. [6]
WebOnto разработан для Tadzebao - инструмента исследования онтологий и предназначен для поддержки совместного просмотра, создания и редактирования онтологий. Его цель - предоставление средств масштабирования для построения больших онтологий. [6]
Для моделирования онтологий WebOnto использует язык OCML (Operational Conceptual Modeling Language). В WebOnto пользователь может создавать структуры, включая классы с множественным наследованием, что можно выполнять графически. Все слоты наследуются корректно. Инструмент проверяет вновь вводимые данные контролем целостности кода OCML. [6]
Инструмент имеет ряд полезных особенностей: сохранение структурных диаграмм, раздельный просмотр отношений, классов, правил и т.д. Другие возможности включают совместную работу нескольких пользователей над онтологией, использование диаграмм, функций передачи и приёма и др. [6]