
- •Введение
- •1. Понятие онтологии. Общая характеристика подхода
- •2. Основные виды программного инструментария онтологий
- •3. Язык rdf
- •3.1. Структура rdf-моделей
- •3.2. Нотация rdf/xml
- •3.3. Контейнеры и коллекции
- •3.4. Общая характеристика языка описания словарей rdfs
- •3.5. Синтаксис описания классов и типов-свойств в rdfs
- •3.6. Использование rdf
- •4. Язык owl
- •4.1. Диалекты owl
- •Структура онтологий
- •Основные элементы owl
- •. Картирование онтологий
- •Сложные классы [owl dl]
- •Версии онтологий
- •5. Разработка онтологий в среде Protege-2000
- •Состав онтологии
- •Обобщенная методика создания онтологий
- •Рекомендации по организации иерархий классов
Версии онтологий
Онтологии, подобно программному обеспечению, требуют поддержки механизма многоверсионности. В пределах элемента owl:Ontology можно указать ссылку на предыдущую версию онтологии. Для обеспечения этой связи предназначено свойство owl:priorVersion, которое может использоваться, чтобы проследить историю версий онтологии. Например:
<owl:Ontology rdf:about=""> ...
<owl:priorVersion rdf:resource ="http://www... .../ university #" ...
</owl:Ontology>
Версии онтологий могут быть несовместимы друг с другом. Например, предыдущая версия онтологии может содержать утверждения, которые противоречат текущей версии. В пределах элемента owl:Ontology используются тэги owl:backwardCompatibleWith и owl:incompatibleWith для указания на совместимость (или ее отсутствие) с предыдущими версиями данной онтологии. Если owl:backwardCompatibleWith не объявлен, то совместимость не должна предполагаться. Кроме того, owl:versionInfo обеспечивает средства, пригодные для использования системами отслеживания версий. В противоположность предыдущим трем тэгам типом данных owl:versionInfo является литерал, и этот тэг может использоваться, чтобы аннотировать классы и свойства в дополнение к онтологиям.
OWL Full обеспечивает мощные инструменты для описания произвольных утверждений о классах и может использоваться при построении онтологий классов и свойств для отслеживания информации о версиях. OWL включает 2 предопределенных класса, которые могут служить этим целям: owl:DeprecatedClass и owl:DeprecatedProperty. Они предназначены для указания того, что класс или свойство, вероятно, будут изменены несовместимым образом в предстоящем выпуске.
5. Разработка онтологий в среде Protege-2000
Реализованная на языке Java система Protege-2000 (это – третья версия Protege; первая реализована в 1987 г.), разработанная в Стэнфордском университете (первоначально – для использования в медицинских научных исследованиях и практике), представляет собой интегрированную инструментальную среду, которая позволяет не только создавать, но и использовать онтологии. Обобщенными функциями системы являются:
- поддержка разработки онтологий и баз знаний;
- поддержка разработки и эксплуатации средств приобретения знаний;
- поддержка логических выводов на онтологиях и базах знаний.
Protege относится к категории комплексных средств получения и использования знаний, сочетая в себе возможности и обычного редактора онтологий (редактирование, визуализация, импорт/экспорт), и средств приобретения знаний (заполнения баз знаний, построенных на основе созданных онтологий, причем с поддержкой гибкой настройки системы на фактуру предметной области), и сред конечного пользователя (систем поддержки принятия решений, оболочек экспертных систем и т. д.).
Базовой формой представления знаний (включая онтологии) в Protege является объектно-ориентированная фреймовая модель, совместимая с протоколом «открытого взаимодействия баз знаний» – OKBC (Open Knowledge Base Connectivity). Однако наличие широкого спектра функциональных надстроек и интерфейсов позволяет Protege поддерживать в той или иной мере формализмы продукционных и логических систем. В качестве базового механизма логического вывода Protege использует обобщенный универсальный метод так называемого решения проблем. При этом поддерживается конструирование (на базе алгоритмических примитивов) конкретных алгоритмов вывода, увязанных с конфигурацией модели предметной области. Внутренняя архитектура Protege является модульной и легко расширяемой. В ядро системы входит несколько компонентов, обслуживающих базовое модельное представление, системные конструкторы (для создания онтологий и баз знаний, средств приобретения знаний, механизмов вывода и пользовательских сред), низкоуровневые системные программные интерфейсы и механизм связывания ядра с надстройками – встраиваемыми приложениями (plugin). Для интеграции надстроек в единую функциональную среду предназначен аппарат «закладок» (tabs) – типизированных форм графического пользовательского интерфейса, обеспечивающих визуализацию и доступ к данным и настройкам тех или иных моделей и приложений. Стандартными закладками являются «Classes» (работа с иерархией классов объектов), «Slots» (работа со слотами, связанными с фреймом выбранного класса), «Instances» (работа с объектами класса), «Forms» (работа с конструктором пользовательских интерфейсов), «Queries» (работа с конструктором запросов) и др.
Среди наиболее важных доступных надстроек Protege, подключаемых к среде в виде панелей закладок tab, можно выделить «KATool» (конструктор средств приобретения знаний), «Query» (поддержка выполнения запросов к онтологии или базе знаний Protege), «PSM» (настройка механизмов логического вывода на базах знаний), «BeanGenerator» (генерация классов JavaBean на основе иерархии классов Protege), «DataGenie» (импорт баз данных с использованием протокола JDBC – Java Database Connectivity), «PROMPT» (сопоставление и слияние онтологий Protege с внешними онтологиями известных форматов представления), «Jess Tab» (интерфейс с известной оболочкой экспертных систем JESS – Java Expert System Shell), «Algernon» (поддержка прямого и обратного логического вывода на базах знаний Protege), «PAL» (конструктор выражений на встроенном языке описания формальных аксиом PAL), «Prolog Tab» (поддержка подключения механизма логического вывода Prolog) и др. Существует также значительное количество встраиваемых приложений, способных поддерживать различные функции по визуализации онтологий и баз знаний Protege – «Jambalaya», «TGViz», «OntoViz» и др. (внешний вид интерфейса приложения «OntoViz», интегрированного в Protege, изображен на рис. 5.1). Имеется также возможность тесной интеграции с другими распространенными инструментами создания и обработки онтологий (например, Ontolingua, OntoEdit, OilEd, OntoSaurus, WebOnto, WebODE и др).
Protege поддерживает также широкий набор форматов файлового обмена и языковых интерфейсов – Java, CLIPS, UML, XML, RDF/RDFS, DAML+OIL, OWL. Особо следует отметить наличие специальных встраиваемых приложений для работы с OWL, RDF/RDFS и DAML+OIL, занимающих важное место в реализации концепций Semantic Web. Одним из последних шагов в данном направлении можно считать включение в Protege средств поддержки языка SWRL (Semantic Web Rule Language).
В основе реализации всех функциональных возможностей и даже внутренней архитектуры самой системы Protege лежат модели онтологий. В связи с этим представляется уместным рассмотреть общую методику разработки онтологий именно применительно к эксплуатации Protege.
Рис. 5.1. Визуализация фрагмента онтологии Protege-2000 в OntoViz
Рассмотрим общие методы построения онтологий на примере разработки учебной базы знаний по компьютерным вирусам (Virus.pprj) с использованием Protege-2000 (фрагмент данной онтологии иллюстрировал рис. 5.1). Следует сразу отметить, что разработка онтологий не является строго формализованным процессом в связи с многообразием возможных постановок задач, структур предметных областей, спецификой используемых инструментальных средств и т. д. Поэтому могут рассматриваться лишь некоторые общие черты, характерные для методологии построения онтологий как таковых. В настоящем пособии задача синтеза онтологий будет анализироваться (с учетом специфики Protege) применительно к проблематике проектирования систем представления декларативных знаний на базе фреймовой модели.