Этот документ является неофициальным переводом исходной английской версии. Может содержать неточности и ошибки. © PhD Щербак Сергей, 2008
Комментарии к переводу оставляйте здесь! или на форуме|| На главную

W3C

Язык Web-онтологий OWL 2:
начальное руководство

Рабочий проект W3C, 11 апреля 2008

Текущая версия:
http://www.w3.org/TR/2008/WD-owl2-primer-20080411/
Последняя версия:
http://www.w3.org/TR/owl2-primer/
Авторы:
Бижан Парсиа, Манчестерский университет
Питер Ф. Пэтл-Шнайдер, Исследовательские лаборатории Белла (Bell Labs Research), Alcatel-Lucent


Резюме

OWL 2 от W3C является расширением языка Web-онтологий OWL с небольшим (однако весьма полезным) набором дополнений. Пользователи предыдущей версии изъявили желание увидеть эти дополнения в новой версии OWL. Теперь стали доступны алгоритмы эффективных рассуждений, которые в свою очередь готовы поддерживать разработчики OWL-инструментария. Новые возможности включают: несколько альтернативных синтаксических конструкций (дополнительный синтаксический сахар) , конструкторы добавочных свойств и ограниченной кардинальности, расширенную поддержку типов данных, упрощенное мета-моделирование и расширенные аннотации.
Это краткое руководство содержит начальные сведения об OWL 2, изложенные в доступной форме. Представлен сравнительный анализ OWL 2 с другими технологиями. Вы также найдете один пример, наглядно демонстрирующий использование OWL 2 для представления простой, а затем — более сложной информации, узнаете об управлении онтологиями с помощью OWL 2 и, наконец, уясните отличия между различными субформами OWL 2.

Статус текущего документа

Может быть заменен

Данный раздел описывает статус текущего документа на момент его публикации. Этот документ может быть заменен другими. Перечень текущих публикаций W3C и последних изменений этого технического отчета можно найти посредством указателя технических отчетов W3C на странице http://www.w3.org/TR/..

Этот документ является составной частью нижеперечисленного набора из 6 опубликованных документов:

  1. Структурная спецификация и функциональный синтаксис
  2. Модельно-теоретические семантики
  3. Преобразование в RDF-графы
  4. XML-сериализация
  5. Профили
  6. Начальное руководство (текущий документ)

Совместимость с OWL 1

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

Разные варианты синтаксиса

Текущий документ содержит примеры в четырех вариантах OWL-синтаксиса. Javascript используется для управления отображением каждого синтаксиса. Один из вариантов синтаксиса — манчестерский синтаксис (Manchester Syntax) — задокументирован в ненормативной заметке рабочей группы, расположенной на текущий момент на странице Wiki.

Замечания принимаются до 11 мая 2008

Рабочая группа OWL принимает отзывы общественности касательно первого опубликованного рабочего проекта. Свои комментарии вы можете направлять по адресу public-owl-comments@w3.org (архив сообщений). Если вас не затруднит, предложите конкретные изменения, которые необходимо внести с вашей точки зрения в текст. Можете также ознакомиться с вики-версией данного документа. Здесь представлены комментарии и внесенные изменения, которые могут касаться вашего вопроса.

Отсутствие поддержки

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

Патенты

При создании данного документа рабочая группа руководствовалась патентной политикой W3C от 5 февраля 2004. W3C поддерживает публичный список открытых патентов сформированный совместно с членами группы. Вышеуказанная Web-страница также содержит инструкции по раскрытию патента. Лица, обладающие актуальной информацией о патенте, который удовлетворяет основным требованиям, должны раскрыть эту информацию согласно пункту 6 патентной политики W3C.


Содержание



1 Введение

Примечание редактора: На втором заседании F2F рабочая группа приняла решение упростить словарь OWL-онтологий. В последующих версиях данной спецификации терминалы функциональной грамматики и RDF-словарь будут значительно меньшими.

Язык Web-онтологий (OWL, Web Ontology Language) OWL 2 от W3C является языком Semantic Web, созданным для представления онтологий. Под онтологией будем понимать информацию о группировке отдельных индивидов, которые вместе определяют некоторую предметную область (домен). OWL может представлять комплексную обогащенную информацию о классах индивидов и их свойствах. OWL — это логический язык, где каждая конструкция имеет строго определенный смысл. Совокупность таких конструкций позволяет воссоздать некоторую информацию. OWL группирует информацию в онтологии, которые представлены в виде документов. Эти документы могут храниться и передаваться в глобальной сети точно так же, как передаются любые другие данные или информация. Эффективная обработка документов может осуществляться посредством инструментария, позволяющего извлечь информацию, скрытую внутри онтологии.

В этом кратком обзоре раскрыта взаимосвязь OWL с различными технологиями: XML, RDF, базами данных и объектно-ориентированным программированием. Большая часть руководства посвящена исполняемому примеру. Данный пример иллюстрирует многообразие информации, которая может быть представлена посредством OWL. В Приложении представлен законченный пример онтологии. В этом документе рассказывается о том, как OWL "упаковывает" информацию в онтологии, а также о том, как выполнить привязку дополнительной информации к составным частям онтологии. Здесь имеются краткие описания OWL-конструкций со ссылками на другие документы, которые содержат более полную информацию по OWL. И, наконец, описания различных субформ OWL, позволяющие определить выгоды и потери, связанные с использованием каждой из них.

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

2 Перспективы

Внешне OWL напоминает многие существующие технологии, что не удивительно в связи с преобладанием XML-синтаксиса и использованием объектно-классовой парадигмы. Тот, кто знаком с другими технологиями, иногда заблуждается в их схожести, а потому искренне удивляется, когда находит отличия. В разделе 2.1 приведено краткое сравнение OWL с несколькими наиболее известными технологиями. В этом руководстве выделены именно те аспекты OWL, которые могут заинтересовать приверженцев других технологий.

В разделе 2.2 обсуждаются основные способы использования OWL в приложениях.

2.1 Взаимосвязь с другими технологиями

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

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

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

2.1.1 Технологии описания ресурсов RDF и RDFS

Среди всех технологий, которые обсуждаются в данном разделе, RDF(S) ближе всего стоит к OWL. Обе они основываются на логическом представлении знаний. В большинстве случаев RDF(S) может рассматриваться как подмножество OWL. И, конечно, RDF/XML является исходным синтаксисом обмена для OWL. Однако все же существуют различия в стиле, выделении и некоторых общепринятых практиках, которые могут привести к заблуждению, если основываться на правилах RDF(S) при работе с OWL. Например, если объявления и выражения OWL могут быть закодированы в виде RDF-фактов (триплетов), то представление большинства объявлений и выражений OWL в виде коллекций является неэффективным ни с точки зрения написания, ни с точки зрения восприятия. С RDF принято работать, как с графовой структурой данных или базой данных, где основное внимание уделяется явным объявлениям в графе.

Если мы рассматриваем RDFS с точки зрения поддержки неявных знаний (например, определение отношений подкласса), в таком случае существует прямая связь между явными и неявными объявлениями. Поэтому достаточно просто концептуализировать вывод с точки зрения манипуляции над графовой структурой. Иначе дело обстоит с определением неявных знаний в OWL (в том числе с определением отношений внутри подкласса, типизацией и проверкой непротиворечивости онтологии), что требует использования методов, похожих на доказательство теорем.

2.1.2 XML

Технологии OWL и XML разделяют несколько общих моментов. Во-первых, OWL может быть выражен с помощью XML (например, RDF/XML или XML-синтаксис для OWL) , а следовательно и обработан посредством инструментальных средств для XML. Во-вторых, OWL позволяет повторно использовать типы данных и специальные ограничения (facet) для определения производных типов данных XML-схемы. Также в OWL существует несколько вариантов определения типов XML-схемы. И, наконец, обе технологии (OWL и XML) успешно применяются для концептуального моделирования и описания данных. Хотя используемые при этом методы несколько отличаются в рамках каждой из технологий. По сравнению с XML язык OWL ориентирован на более абстрактное и высокоуровневое концептуальное моделирование.


OWL предназначен для поддержки выявления связей между классами посредством автоматизированных рассуждений. В языке Web-онтологий заложено гораздо меньше допущений касательно описываемых сущностей — как в целом, так и в терминах их физической реализации в вычислительных системах.

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

2.1.3 Базы данных

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


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

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

2.1.4 Объектно-ориентированное программирование

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

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

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

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

2.1.5 OWL 1

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

Для тех, кто интересуется OWL 1, стоит ознакомиться с соответствующими документами по OWL 1: Обзор и Руководство по языку. Исходя из того, что каждая онтология OWL 1 является также онтологией OWL 2, в документации по OWL 1 содержится небольшое введение в OWL 2 (хотя только по синтаксису RDF/XML). Существует и другая документация по OWL 1, которая доступна на сайте рабочей группы WebOnt.


Примечание редактора: Несколько позднее будет написан раздел об отличиях между OWL 1 и OWL 2.

2.2 Практическое применение

2.2.1 Разработка и управление терминологией

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

Создание и поддержка большого терминологического словаря — времяемкая и трудозатратная задача даже при относительно простой структуре терминологии. Поддержка данного процесса осуществляется в OWL несколькими способами:

OWL использовался для поддержки огромных терминологических словарей с сотней тысяч терминов и сложной иерархией. Galen? NCI? SNOMED? Большая работа проделана с помощью OWL в домене HCLS (Health Care and Life Sciences, Здоровье и науки о жизни), где присутствует изобилие опыта разработки объемных терминологических словарей.

В прошлом блоки рассуждений OWL широко использовались лишь на этапе разработки терминологий, то есть в разрыве от практического приложения. В таком случае механизм рассуждений выступает в роли "терминологического компилятора", формирующего полную таксономию из определений терминов. Затем таксономия развертывается в приложении. В задачах поиска относительно неизменных коллекций это приемлемый способ совладать со сложностью рассуждений больших онтологий. Однако с увеличением вычислительной мощности механизм рассуждений OWL стал более оптимизированным. Возросло использование блоков рассуждений OWL в терминологических приложениях онлайн и в процессе развертывания. В частности стала широко применяться "посткоординация" — способность субъекта расширять терминологию для более адекватного представления ситуации. Динамическое расширение терминологии в критических системах имеет явную выгоду перед методологической неизменностью, которая поддерживалась блоками рассуждений OWL. Вместо того, чтобы просто создавать новый термин и помещать его в произвольное место таксономии, теперь приветствуется совершенствование терминов путем уточнения их определений конечными пользователями.

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

2.2.2 Концептуальное моделирование

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

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

Концептуальные модели на базе OWL могут использоваться для объединения информации. Положим, к примеру, вы столкнулись с необходимостью объединения двух приложений баз данных с совершенно разными схемами, однако сходными (во всяком случае, на первый взгляд) концептуальными моделями. При трансформации обеих моделей в OWL и соединении их друг с другом могут быть найдены как скрытые отношения, так и противоречивость моделей (или несовместимость с вашим представлением об отношениях). По ходу изучения процессов на концептуальном уровне не стоит удивляться иррелевантному низкому уровню деталей реализации. Исходя из того, что модели имеют четкую семантику, они могут систематически проверяться. Чтобы не заниматься утомительной проверкой соответствий вручную, вы можете задать необходимые настройки моделирования.


Концептуальные модели на основе OWL использовались непосредственно для объединения несовместимых информационных систем. Существует несколько методов: начиная с рассмотрения концептуальных моделей в виде высокоуровневых схем для хранилищ данных на основе RDF, и заканчивая использованием концептуальных моделей для построения распределенных запросов в домашних системах данных.

3 Основные понятия

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

OWL является частью Semantic Web, поэтому имена в OWL представлены в виде международных идентификаторов ресурсов (IRI, international resource identifier). Так как IRI достаточно длинный, мы будем использовать в OWL компактный вариант написания, состоящий из префикса и ссылки, разделенных двоеточием. Существует множество доступных вариантов OWL-синтаксиса, служащих разнообразным целям. Когда OWL-информация передается по сети, она записана на диалекте XML.

Самым простым в восприятии (даже для неспециалиста) является манчестерский синтаксис [OWL 2 Манчестерский синтаксис]. Функциональный синтаксис [Спецификация ОWL 2] более прост с точки зрения спецификации и использования в рамках инструментов рассуждений. Синтаксис OWL XML — это XML-синтаксис для OWL, который определен посредством XML-схемы [Спецификация ОWL 2]. Синтаксис RDF/XML для OWL представляет собой простой RDF/XML со специфическим преобразованием для OWL-конструкций [Преобразование OWL 2 в RDF]. Есть специальные инструментальные средства перевода между разными диалектами синтаксиса OWL.

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

Нижеприведенные кнопки позволяют скрыть или отобразить четыре варианта синтаксиса.

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

Итак, если мы имеем семью с родителями John и Mary и детьми Susan и Bill можем задать индивидов и записать все эти факты вместе с фактами о возрасте (age), как во фрагменте кода ниже..

Individual: f:John
Facts: f:hasWife f:Mary,
f:hasSon f:Bill,
f:hasDaughter f:Susan,
f:hasAge 33
Individual: f:Mary
Facts: f:hasSon f:Bill,
f:hasDaughter f:Susan,
f:hasAge 31
Individual: f:Bill
Facts: f:hasAge 13
Individual: f:Susan
Facts: f:hasAge 8

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

Individual: f:John Facts: f:hasGender f:male
Individual: f:Mary Facts: f:hasGender f:female
Individual: f:Bill Facts: f:hasGender f:male
Individual: f:Susan Facts: f:hasGender f:female Individual: f:male
Individual: f:female

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


Итак, давайте задумаемся, как устроены семьи вообще. (Этот процесс называется представлением знаний. Как и для любого процесса представления информации об окружающем мире, нам потребуются некоторые упрощения. А так как этот документ является начальным руководством, допущений будет много.) Для начала заметим, что все индивиды семьи — это люди. Поэтому у нас должен быть отдельный класс людей с именем Person. Ниже представлена информация о некоторых свойствах. Жена(wife) это отношение между людьми (Person)то есть и доменом(Domain) и диапазоном (range) для wife будет Person, как собственно для son и daughter. Возраст(age) это связь между Person с integer.


Class: f:Person
ObjectProperty: f:hasWife Domain: f:Person Range: f:Person
ObjectProperty: f:hasSon Domain: f:Person Range: f:Person
ObjectProperty: f:hasDaughter Domain: f:Person Range: f:Person
DataProperty: f:hasAge Domain: f:Person Range: integer

Из вышеприведенной информации мы (либо механизм рассуждений) можем заключить, что John принадлежит к класу Person, ведь домен wife характерен для Person, а у John есть wife. Мы также можем сразу установить принадлежность индивида к классу.

Individual: f:John Types: f:Person

Даже из этого небольшого описания семейных отношений можно сделать несколько дополнительных выводов. Например, обратным свойством для wife является husband. Так же, как son и daughter будет специализацией отношения child. Далее, ни один индивид не может быть одновременно и son, и daughter, то есть эти свойства непересекающиеся. В большинстве случаев индивидам присуще единственное значение возраста, поэтому age обладает функциональным свойством данных. По большей части индивидам присуще только одно отношение wife, и ни один индивид не может быть wife самим для себя. Поэтому свойство wife является функциональным, обратно функциональным, и нерефлексивным.(Можно указать, что свойство является рефлексивным, но зачастую этого не делают, ведь тогда свойство будет нерефлексивным.(Можно указать, что свойство является рефлексивным для всех индивидов.) Также wife является асимметричным. Обратите внимание, что мы расширили информацию о некоторых свойствах. Размещение информации о свойстве (классе или индивиде) в нескольких местах — широко используемая практика в OWL.

ObjectProperty: f:hasHusband Inverses: f:hasWife
ObjectProperty: f:hasChild Domain: f:Person range f:Person
ObjectProperty: f:hasSon SubPropertyOf: f:hasChild
ObjectProperty: f:hasDaughter SubPropertyOf: f:hasChild
DisjointObjectProperties: f:hasSon f:hasDaughter
DataProperty: f:hasAge Characteristics: Functional
ObjectProperty: f:hasWife Characteristics: Functional, InverseFunctional, Irreflexive, Asymmetric

Вышеприведенная информация о семьях вообще и о нашей конкретной семье в частности имеет целый ряд следствий. К примеру, если husband является обратным свойством wife, то мужем для Mary будет John. Полностью укомплектованные инструментальные средства рассуждений OWL позволяют установить возможность вывода определенных следствий из имеющейся информации.

Таким образом, мы записали довольно много информации о семьях, используя только один класс: Person. OWL — это мощный язык описания классов в терминах других классов, а также в терминах обязательных или необязательных отношений экземпляров классов с другими индивидами. Итак, у нас могут быть классы мужчин, женщин и родителей, каждый из которых является специализацией Person.

Class: f:Man SubClassOf: f:Person
Class: f:Woman SubClassOf: f:Person
Class: f:Parent SubClassOf: f:Person

OWL позволяет выполнить гораздо больше различных манипуляций с классами, чем просто создание обобщений для них. OWL может предоставлять частичную или полную информацию о том, какие элементы должны принадлежать классу. (Конструкции OWL, используемые для представления информации о классах, называют описаниями.) Скажем, если у людей — мужского (male) или женского (female) пола — может быть только один age и один gender, это дает (частичную) информацию о людях. Не только о том, что каждый индивид, который принадлежит к классу Man также принадлежит Person, но и о том, что каждый Person с gender, соответствующим male, принадлежит к классу Man (аналогично для Woman). Таким образом, появляется полная информация о требованиях для принадлежности к этим двум классам. Можем также полагать, что каждый Person, у которого есть, по крайней мере, один child, принадлежит классу Parent.

ObjectProperty: f:hasGender
Class: f:Person SubClassOf: f:hasAge exactly 1 and f:hasGender exactly 1 and f:hasGender only {f:female , f:male}
Class: f:Man EquivalentTo: f:Person and f:hasGender value f:male
Class: f:Woman EquivalentTo: f:Person and f:hasGender value f:female
Class: f:Parent EquivalentTo: f:Person and f:hasChild min 1 f:Person

Полные описания в OWL позволяют вывести множество следствий. Как, например, из вышеприведенных описаний, где John принадлежит к Man и Parent. Многие следствия могут показаться неожиданными для пользователей, поэтому некоторые инструментальные средства OWL обладают (элементарными) возможностями демонстрации последовательности вывода следствий.

Описания в OWL могут фигурировать практически в любом месте, где используются имена классов. Так, например, можем предусмотреть информацию о свойствах wife, son и daughter, добавив для них более специфические домены и диапазоны.

ObjectProperty: f:hasWife Domain: f:Man Range: f:Woman
ObjectProperty: f:hasSon Domain: f:Parent Range: Person that f:hasGender value f:male
ObjectProperty: f:hasDaughter Domain: f:Parent Range: Person that f:hasGender value f:female

Аналогично можно использовать Man и Woman в качестве диапазонов для son и daughter, что предоставит для OWL практически ту же информацию, которую смогут определить блоки рассуждений OWL.

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

Еще OWL позволяет представить информацию о некоторых группах значений данных, называемых диапазонами данных. Так, к примеру, Teenager может обозначать тех людей, чей возраст является целым числом, большим 13, но не превышающим 20. К Adult отнесем тех людей, у которых значение age равно хотя бы 21, а к Child причислим тех, у кого age является дополнением ко взрослому возрасту.

Class: Teenager EquivalentClass: Person and hasAge some integer[>= 13 , < 20]
Class: Adult EquivalentClass: Person and hasAge some integer[>= 21]
Class: Child EquivalentClass: Person and not ( hasAge some integer[>= 21] )

Отсюда следует, что Bill относится к Teenager, но не к Adult. Оба John и MaryAdult, но не Teenage. Susan не относится ни к Adult, ни к Teenager.

Для обозначения диапазонов данных в OWL применяются встроенные типы данных из XML-схемы [Типы данных XML-схемы], например, xsd:integer. Еще несколько полезных типов данныхxsd:string и xsd:decimal.

4 Более экспрессивное моделирование

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

В предыдущем примере нам была известна лишь незначительная часть информации. Так, например, мы знали возраст (age) (только для) John-а, равный 47 годам. OWL предназначен для работы в условиях неполной информации. Поэтому для OWL считается общепринятым, если, скажем, не известны возраста всех индивидов, принадлежащих к Person, как в примере ниже.

Individual: f:Jeff
Facts: f:hasWife f:Emily,
f:hasChild f:Ellen,
f:hasChild f:Jack,
f:hasAge 77

Из вышеприведенного следует, что Jeff принадлежит к Adult и не к Teenager. Однако, не определена принадлежность ни Emily, ни Jeff к Adult или к Teenager, хотя у них обоих, наверняка, должен быть какой-то возраст.

Можно задать частичную информацию о значениях, скажем, что для Ellen значение age расположено между 15 и 21, в том числе, что возраст Emily составляет либо 39, либо 49 лет, или даже, что у Jack age не равен 53.


Individual: f:Emily Types: f:hasAge some {39 , 49}
Individual: f:Ellen Types: f:hasAge some integer[ 15, 21 ]
Individual: f:Jack Facts: not f:hasAge "53"^^integer

Отсюда следует, что Emily принадлежит к Adult, даже если нам не известен ее точный возраст. Однако мы не можем утверждать принадлежность Ellen к Adult или Teenager. С другой стороны у нас может быть класс YoungChild, который не пересекается ни с Adult, ни с Teenager. Тогда Ellen к этому классу принадлежать не будет.

Class: f:YoungChild EquivalentTo: f:Person and not ( f:Teenager or f:Adult )

Существует множество причин неполноты в OWL. Некоторые из них могут показаться неожиданными для читателей. Например, несмотря на то, что наличие двух детей у Jeff кажется очевидным, это вовсе не так. Также не очевидно, что у Jeff есть по меньшей мере один ребенок (child), который принадлежит к классу Man

(в незаконченной онтологии)
Individual: f:Jeff Types: f:hasChild exactly 2
Individual: f:Jeff Types: f:hasChild max 1 f:Man

Ведь ничего не сказано о том, что Jack и Ellen — единственные дети Jeff-а. В OWL не предпринимается никаких допущений касательно того, что если что-то не сказано, то это неправда. Можно констатировать, что у Jeff-а больше нет детей. Это можно сделать несколькими способами. Первый из них состоит в явном указании, что у Jeff-а ровно 2 ребенка. Конечно, будет адекватным вывод, что у Jeff-а именно 2 ребенка.

Individual: f:Jeff Types: f:hasChild exactly 2

Однако, даже наличие одного child, принадлежащего к классу Man, у Jeff-а не является адекватным выводом. Мы не утверждали, что Jack и Ellen — разные люди, и ничего из сказанного ранее не указывает на то, что они не одно лицо. Опять же, OWL не делает никаких допущений, что разные имена принадлежат разным индивидам. (Это "допущение уникальных имен" особенно опасно в Semantic Web, где имена могут быть даны разными организациями в разное время, бессознательно ссылаясь на один и тот же индивид.) Если Jack и Ellen — одно лицо, тогда у Jeff-а должен быть другой child, принадлежащий к классу Man.

Вы можете утверждать, что Jack и Ellen — разные люди, ведь у них разный пол, а у человека может быть только один gender. К сожалению, мы не установили, что male и female различны. Мы можем определить, что male и female — это разные вещи, отсюда последует разница между Jack и Ellen. Однако давайте добавлять разумную коллекцию информации о том, какие индивиды считать разными. Обратите внимание: нам вовсе не обязательно это делать для семьи John-а. Наличие разных возрастов предполагает, что все это — разные люди. Аналогично жены и их мужья — разные люди, потому как мы уже задали, что свойство wife является нерефлексивным.

DifferentIndividuals: f:John f:Mary f:Bill f:Susan
DifferentIndividuals: f:Jeff f:Emily f:Jack f:Ellen f:Susan
Individual: f:male DifferentFrom: f: female

Также можно установить, что два имени ссылаются на (обозначают) один и тот же индивид. Например, можем сказать, что John и Jack — это один индивид.

Individual: f:John SameAs: f:Jack

Из вышеуказанного следует, что Man и Woman — непересекающиеся множества, то есть не существует индивидов, принадлежащих к обоим множествам. Потому как у каждого Person есть только один gender, а пол индивидов, принадлежащих классу Man, будет мужским (male), в отличие от индивидов женского пола (female), принадлежащих к классу Woman. Однако мы также можем воспользоваться OWL для задания непересекающихся классов. Зачастую, это необходимо для классов, которым недостает законченных условий принадлежности к классу. (Эти классы называют примитивными классами.) Так, например, для религиозного брака (ReligiousMarriage) и гражданского брака (CivilMarriage) мы должны непосредственно задать их непересекаемость. Здесь мы также установим, что Marriage является объединением их обоих.

Class: f:CivilMarriage
Class: f:ReligiousMarriage DisjointWith: f:CivilMarriage
Class: f:Marriage EquivalentTo: f:ReligiousMarriage or f:CivilMarriage

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

(не в законченной онтологии)
Class f:Marriage DisjointUnionOf: f:ReligiousMarriage f:CivilMarriage

В OWL могут присутствовать транзитивные свойства(transitive properties), то есть свойства (как, например, наличие предка — hasAncestor), которые представляют собой обобщение обратного свойства (в данном случае — наличие ребенка — hasChild), и являются нерефлексивными.

ObjectProperty: f:hasAncestor Characteristics: Transitive, Irreflexive
ObjectProperty: f:hasChild SubPropertyOf: inverseOf f:hasAncestor

Из вышеприведенной информации мы можем заключить, что Jeff является предком (ancestor) для Bill-а, причем Jeff не его непосредственный предок (ancestor).

(не в законченной онтологии)
Individual: f:Bill
Facts: f:hasAncestor f:Jeff
not f:hasAncestor f:Bill

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

ObjectProperty: f:hasSpouse Characteristics: Symmetric, Irreflexive
ObjectProperty: f:hasWife SubPropertyOf: f:hasSpouse

Хотя напрямую мы не устанавливали, мы можем сделать вывод, что spouse также является обобщением для husband. Ведь spouse — симметричное обобщение обратного свойства к husband.

Можем обогатить наш пример, добавив свойство loves, как обобщение свойства wife. (Таким образом, идеализируя семейные отношения в нашем упрощенном представлении.)

ObjectProperty: f:loves Domain: f:Person
ObjectProperty: f:hasWife SubPropertyOf: f:loves

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

Class: f:Narcissist EquivalentTo: f:Person that f:loves Self
Individual: f:Jeff Facts: f:loves f:Jeff
Individual: f:Bill Types: not f:Narcissist

Из вышеприведенного фрагмента следует, что Jeff принадлежит к классу Narcissist, а Bill, конечно же, нет.

Еще несколько слов можно сказать об объединении свойств в OWL посредством цепочек объектных свойств. Например, можем утверждать, что сыновья и дочери одинаковы для обоих супругов, то есть son и daughter для индивида будут теми же, что и для его spouse.

SubObjectProperty: f:hasSpouse o f:hasSon f:hasSon
SubObjectProperty: f:hasSpouse o f:hasDaughter f:hasDaughter

Теперь мы можем заключить, что у Emily те же son и daughter, что и у Jeff-а:

(не в законченной онтологии)
f:Emily f:hasChild f:Jack
f:Emily f:hasChild f:Ellen

В OWL можно задавать конфликтную информацию. Скажем, мы запишем, что у John-а нет child, принадлежащего к классу Woman. Это утверждение конфликтует с тем, что у John-а есть daughter Susan. Онтология с конфликтной информацией порождает множество негативных последствий. Многие инструменты OWL выявят противоречивые онтологии и предложат некоторый механизм исправления.

(не в законченной онтологии)
Individual: f:John f:hasChild max 0 f:Woman

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

5 Управление онтологиями

Информация, которой мы оперировали до настоящего момента, подпадает под две категории. Первая — это общая информация о классах и свойствах, касающихся семейных отношений, а вторая — это частная информация по двум взаимосвязанным семьям. Зачастую, общая информация в OWL объединяется в онтологию (ontology), которая впоследствии используется различными приложениями. Мы также можем задавать имена для OWL-онтологий, которые в основном совпадают с местоположением документа онтологии в глобальной сети. Частная информация также может быть помещена в онтологию, если эта информация используется разными приложениями.

Ontology: <http://example.com/owl/families>

OWL-онтологии размещают внутрь OWL-документов, которые затем располагают в локальной файловой системе или выкладывают в сеть. Кроме OWL-онтологий, документы OWL содержат информацию о преобразовании коротких имен, используемых в OWL-онтологиях (например, f:Person), в идентификаторы IRI, предоставляя пространство для префиксов. Поэтому IRI — это объединение пространства для префиксов и ссылки.

В нашем примере онтологии было задействовано два префикса: f и xsd. Последний из них применялся в компактных именах для типов данных XML-схемы. Эти IRI регламентированы в рекомендации по XML-схеме. Вот почему мы используем стандартное пространство для xsd (см. http://www.w3.org/2001/XMLSchema# ). Пространство, выбранное нами для других префиксов повлияет на имена классов, свойств и индивидов в нашей онтологии, как и на имя самой онтологии. Если мы собираемся разместить онтологию в сети, то для этих целей следует выбрать подконтрольное нам сетевое пространство, чтобы нечаянно не задействовать чужие имена. (Здесь мы воспользовались выдуманным именем, которое никто не контролирует.) Двум синтаксисам на основе XML нужны пространства имен для встроенных имен. Эти синтаксисы также используют XML-сущности для пространств имен.

Namespace: f = <http://example.com/owl/families#>
Namespace: g = <http://example.com/owl2/families#>
Namespace: dc = <http:...#>

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

Import: http://example.com/owl2/families

Так как Semantic Web и конструкции онтологий являются распределенными, для онтологий считается общепринятым использование разных имен для одинаковых концепций, свойств или индивидов. Некоторые конструкции OWL могут применяться для определения того, что разные имена ссылаются на один и тот же класс, свойство или индивид. Так, например, можно выполнить привязку имен, задействованных в нашей онтологии, к именам импортированной онтологии, как в примере ниже:

SameIndividual: f:male g:masculine
SameIndividual: f:female g:feminine
EquivalentClasses: f:Adult g:Grownup
EquivalentObjectProperties: f:hasChild g:child
EquivalentDataProperties: f:hasAge g:age

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

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

Individual f:John Facts: Annotations: dc:author Individual(f:peter) dc:creationDate "2008-01-10"^^xsd:date rdfs:comment "A simple fact about John" f:hasWife f:Mary Class: f:Person Annotations: dc:author Individual(f:peter) dc:creationDate "2008-01-10"^^xsd:date rdfs:label "Person":en rdfs:label "Persona":it rdfs:comment "The class of people"

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

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

6 Остальные конструкции

В OWL есть еще несколько интересных элементов, которые, однако, не вошли в данный пример, к ним относят:

Более подробная информация по этим конструкциям находится в документе Структурная спецификация и функциональный синтаксис OWL 2 [Спецификация ОWL 2].

7 Использование OWL

Примечание редактора: Здесь будет работающий пример. Я раздумываю над ракурсом представления информации, как исходных понятий, так и лежащих в основе формализмов. Или, возможно, пример онтологии Galen.

8 OWL-инструментарий

Примечание редактора: Различные инструментальные средства OWL. Вероятно, описание использования инструментальных средств XML или RDF. Сервисы рассуждений. Что-нибудь еще

9 OWL-профили

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

Если мы не наложим ограничения на информацию, описываемую посредством OWL (например, классы, свойства и даже части синтаксиса могут использоваться, как индивиды Semantic Web на языке RDF), рассуждения становятся формально неразрешимыми. Тем не менее, существует специальная субформа OWL, призванная справляться с этими трудностями, она называется OWL Full. Хотя, конечно, инструменты рассуждений под OWL Full весьма сложны в написании и неизбежно неполны.

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

Для того, чтобы открыть возможность создания эффективных инструментов рассуждений, OWL DL ограничивает свободу определенных свойств. Свойства называются составными(composite), если они или их обратные свойства являются транзитивными либо имеют цепочку свойств в виде подсвойств. Составные свойства или свойства, имеющие составное свойство в качестве специализации основного свойства или обратного ему свойства, не могут быть функциональными, обратно функциональными, нерефлексивными, асимметричными или непересекающимися с любыми другими свойствами. Эти свойства также не могут применяться в описании кардинальности и собственных условий. Также существуют сложные условия, накладываемые на конструирование цепочек объектных свойств, для предотвращения циклов, связанных с цепочками объектных свойств. Инструментарий OWL DL распознает нарушение всех этих условий в описании онтологии.


OWL DL позволяет называть одним и тем же именем несколько или все классы, свойства и индивиды. Однако, различные аспекты каждого имени не привязываются друг к другу, поэтому, если мы нечаянно зададим, например, что Person и Man являются одинаковым индивидом, они не будут эквивалентными классами.

SameIndividual: f:Person f:Man

Из вышеприведенной строки не последует данный вывод:

EquivalentClasses: f:Person f:Man

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

Рассуждения OWL DL по-прежнему сложны и в худшем случае могут занять очень много времени.Отдельные профили OWL DL гарантируют улучшенную производительность рассуждений. Документ по OWL-профилям [Профили ОWL 2] определяет и характеризует приведенные здесь профили, которые могут быть с пользой применены на практике. Выбор каждого из профилей накладывает определенные ограничения на представляемую информацию, однако эти ограничения зачастую весьма полезны при написании больших онтологий, в особенности для важных приложений.

10 Дальнейшее изучение OWL

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

Данное краткое руководство не является нормативным определением OWL. Нормативный документ по OWL-синтаксису, содержащий также информативные определения каждой конструкции OWL, — это Структурная спецификация и функциональный синтаксис OWL 2 [Спецификация ОWL 2].

Тот, кто интересуется дополнительными формальными документами, а также формальным определением OWL 2, может ознакомиться с документом Семантика OWL 2 [Семантика ОWL 2]. Информация по преобразованию между OWL-синтаксисом и RDF-триплетами содержится в документе Преобразование OWL 2 в RDF-графы [Преобразование ОWL 2 в RDF].

11 Приложение: возможности OWL

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

Онтологии Объектные свойства Описания
Описания домен пересечение
пространства имен диапазон объединение
аннотации функциональный дополнение
Классы обратно функциональный множества
subclassof рефлексивный Объектное свойство some
эквивалентность (2-направленная, N-направленная) нерефлексивный объектное свойство only
разбиение (2-направленное, N-направленное) симметричный объектное свойство min
Диапазоны данных симметричный объектное свойство max
встроенные типы данных транзитивный объектное свойство exact
ограничения типов данных специализация объектное свойство value
дополнение эквивалентность(2-направленная, N-направленная) объектное свойство self
множества разбиение(2-направленное, N-направленное) свойство данных some
Индивиды цепочки объектных свойств свойство данных all
одинаковость (2-направленная, N-направленная)) Свойства данных свойство данных min
разность (2-направленная, N-направленная) домен свойство данных max
types диапазон свойство данных exact
факты объектных свойств функциональный свойство данных value
Факты объектных свойств с отрицанием специализация
факты свойств данных эквивалентность (2-направленная, N-направленная)
факты свойств данных с отрицанием разбиение (2-направленное, N-направленное)

12 Приложение: законченный пример

Здесь мы добавили законченный пример OWL-онтологии. Онтология упорядочена в обычном порядке: сначала представлена информация по онтологии, затем — информация о свойствах, далее — о классах и, наконец, об индивидах. Для пояснения онтологии добавлены дополнительные аннотации (ПОКА ЕЩЕ нет).

Namespace: = <http://example.com/owl/families#> Namespace: f = <http://example.com/owl/families#> Namespace: g = <http://example.com/owl2/families.owl#> Namespace: dc = <http://purl.org/dc/elements/1.1/> Ontology: <http://example.com/owl/families> Import: <http://example.com/owl2/families.owl> ObjectProperty: hasWife Characteristics: Functional, InverseFunctional, Irreflexive, Asymmetric Domain: Person, Man Range: Person, Woman SubPropertyOf: hasSpouse, loves ObjectProperty: hasHusband Inverses: hasWife ObjectProperty: hasSon Domain: Person, Parent Range: Person, Person that hasGender value male SubPropertyOf: hasChild DisjointObjectProperties: hasSon hasDaughter SubObjectProperty: f:hasSpouse o f:hasSon f:hasSon ObjectProperty: hasDaughter Domain: Person, Parent Range: Person, Person that hasGender value female SubPropertyOf: hasChild SubObjectProperty: f:hasSpouse o f:hasDaughter f:hasDaughter ObjectProperty: hasGender ObjectProperty: hasChild Domain: Person Range: Person SubPropertyOf: inverseOf hasAncestor ObjectProperty: hasAncestor Characteristics: Transitive, Irreflexive ObjectProperty: hasSpouse Characteristics: Symmetric, Irreflexive ObjectProperty: loves Domain: Person DataProperty: hasAge Characteristics: Functional Domain: Person Range: integer Class: Person SubClassOf: hasAge exactly 1 and hasGender exactly 1 and hasGender only {female , male} Class: Man SubClassOf: Person EquivalentTo: Person that hasGender value male Class: Woman SubClassOf: Person EquivalentTo: Person that hasGender value female Class: Parent SubClassOf: Person EquivalentTo: Person that hasChild min 1 Class: Teenager EquivalentTo: Person that hasAge some integer[>= 13 , < 20] Class: Adult EquivalentTo: Person that hasAge some integer[>= 21] Class: Child EquivalentTo: Person and not (hasAge some integer[>= 21]) Class: YoungChild EquivalentTo: Person and not (Teenager or Adult) Class: Marriage EquivalentTo: CivilMarriage or ReligiousMarriage Class: ReligiousMarriage DisjointWith: CivilMarriage Class: CivilMarriage Class: Narcissist EquivalentTo: Person that loves Self Individual: male DifferentFrom: female Individual: female Individual: John Types: Person Facts: hasWife Mary, hasSon Bill, hasDaughter Susan, hasAge 33, hasGender male SameAs: Jack Individual: Mary Facts: hasSon Bill, hasDaughter Susan, hasAge 31, hasGender female Individual: Bill Types: not (Narcissist) Facts: hasAge 13, hasGender male Individual: Susan Facts: hasAge 8, hasGender female Individual: Jeff Types: hasChild exactly 2 Facts: hasWife Emily, hasChild Ellen, hasChild Jack, hasAge 77, loves Jeff Individual: Emily Types: hasAge some {39 , 49} Individual: Ellen Types: hasAge some integer[>= 15 , <= 21] Individual: Jack Facts: not hasAge "53"^^integer DifferentIndividuals: f:John f:Mary f:Bill f:Susan DifferentIndividuals: f:Jeff f:Emily f:Jack f:Ellen f:Susan SameIndividual: f:male g:masculine SameIndividual: f:female g:feminine EquivalentClasses: f:Adult g:Grownup EquivalentObjectProperties: f:hasChild g:child EquivalentDataProperties: f:hasAge g:age

13 Благодарности

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

14 Ссылки

[Профили OWL 2]
Язык Web-онтологий OWL 2:Профили Bernardo Cuenca Grau, Boris Motik, Zhe Wu, Achille Fokoue, Carsten Lutz. W3C Working Draft, 11 April 2008, http://www.w3.org/TR/2008/WD-owl2-profiles-20080411/. Latest version available at http://www.w3.org/TR/owl2-profiles/.
[OWL 2 Манчестерский синтаксис]
Язык Web-онтологий OWL 2: Манчестерский синтаксис. Matthew Horridge and Peter F. Patel-Schneider and others, 2008.
[Преобразование OWL 2 в RDF]
Язык Web-онтологий OWL 2:Преобразование в RDF-графы Bernardo Cuenca Grau, Boris Motik. W3C Working Draft, 11 April 2008, http://www.w3.org/TR/2008/WD-owl2-mapping-to-rdf-20080411/. Latest version available at http://www.w3.org/TR/owl2-mapping-to-rdf/.
[Семантики OWL 2]
Язык Web-онтологий OWL 2:Модельно-теоретические семантики Bernardo Cuenca Grau, Boris Motik. W3C Working Draft, 11 April 2008, http://www.w3.org/TR/2008/WD-owl2-semantics-20080411/. Latest version available at http://www.w3.org/TR/owl2-semantics/.
[Спецификация OWL 2]
Язык Web-онтологий OWL 2:Структурная спецификация и функциональный синтаксис Boris Motik, Peter F. Patel-Schneider, Ian Horrocks. W3C Working Draft, 11 April 2008, http://www.w3.org/TR/2008/WD-owl2-syntax-20080411/. Latest version available at http://www.w3.org/TR/owl2-syntax/.
[Синтаксис XML OWL 2]
Язык Web-онтологий OWL 2:XML-сериализация Bernardo Cuenca Grau, Boris Motik, Peter Patel-Schneider. W3C Working Draft, 11 April 2008, http://www.w3.org/TR/2008/WD-owl2-xml-serialization-20080411/. Latest version available at http://www.w3.org/TR/owl2-xml-serialization/.
[Типы данных XML Schema]
Схемы XML часть 2: Типы данных Второе издание. Paul V. Biron and Ashok Malhotra, eds. W3C Recommendation 28 October 2004.
[Обзор OWL]
Обзор OWL. W3C Recommendation 10 Feb 2004. McGuinness, van Harmelen, eds.
[Руководство OWL]
Руководство OWL. W3C Recommendation 10 Feb 2004. Smith, Welty, McGuinness eds.
[Ссылки OWL]
Ссылки OWL. W3C Recommendation 10 Feb 2004. Dean, Schreiber, eds.
[Семантики и абстрактный синтаксис OWL]
Семантики и абстрактный синтаксис OWL. W3C Recommendation 10 Feb 2004. Patel-Schneider, Hayes, Horrocks, eds.
[Язык Web-онтологий OWL: тестовые варианты]
Язык Web-онтологий OWL: тестовые варианты. W3C Recommendation 10 Feb 2004. Carroll, De Roo, eds.
[Язык Web-онтологий OWL: варианты использования и требования]
Язык Web-онтологий OWL: варианты использования и требования. W3C Recommendation 10 Feb 2004. Heflin, ed.

Этот документ является неофициальным переводом исходной английской версии. Может содержать неточности и ошибки. © PhD Щербак Сергей, 2008
Комментарии к переводу оставляйте здесь!|| На главную || Перепечатка?