OWL ontology
Явную формальную спецификацию, представляющую информацию о некой предметной области, называют онтологие. owl, в противоположность [rdf] и rdfs, которые ограничены бинарными предикатами и иерархией классов, предоставляет язык онтологии. В настоящий момент используется owl2, который синтаксически основан на rdf и rdfs.
Идиомы выразительности owl2
- классификация
- вхождение (членство) в класс
- равенство и эквивалентность
- непересекаемость
- различие
- комбинация классов
- локальный диапазон свойств (rdfs позволяет определеить диапазон только глобально)
- транзитивность, уникальность и обратность свойств
- ограничение кардинальности свойств
- непротиворечивость (согласованность)
- логический вывод
owl реализует концепцию открытого мира (утверждение не о чем либо нельзя трактовать как единственно верное утверждение). Основная проблема owl - баланс между экспрессивностью и разрешимостью. Чем более выразителен язык онтологии, тем менее разрешим в вычислительном смысле логический вывод. По этой причине прдложены два диалекта: OWL2 Full и OWL2 DL. Full основан на rdf и позволяет переопределять примитывы rdf, что обеспечивает полную совместимость с последним и высокую выразительность, но снижает разрешимость. DL работает исключительно с дискрипторными логиками и ограничивает применеение примитивов, с целью реализовать логический вывод за приемлемое время. odl2 dl неполностью совместим с rdf.
Синтаксисы owl
- функциональный
- owl/xml
- манчестерский
- rdf/xml
- turtle
Дополнительные типы owl
Для поддержки дополнительных примитивов owl вводит новые типы свойств:
- объектные свойства (связывают одни экземпляры класса с другими, часто экземлпыры называются индивидами)
- свойства типов данных (связыват индивидов с литералами)
- свойства аннотаций (не участвуют в логическом выводе в owl dl)
- свойства top и bottom - первое связывает все индивиды, второе не связыват никакие. Из этих свойств наследуются некоторые другие свойства для связывания различных индивидов и литералов.
- транзитивные свойства
- симметричные и ассиметричные свойства
- функциональные и обратно функциональные свойства
- рефлексивные (устанавливающие связь с самим собой) и иррефлексивные свойства.
Кроме того, предоставляются аксимомы свойств (соотнесение комбинации свойств, классов и экземпляров с определенным классом), в том числе:
- домены и пересечения доменов
- диапазоны свойств
- обратные свойства
- непересекающиеся свойства
- эквивалентные свойства
- цепочки свойств
Предоставляются аксиомы классов в виде утверждения ресурс имеет тип <class>
(утверждениями принято называть то, что некий ресурс имеет некий тип):
- наиболее общий класс Thing - все классы являются его подклассом
- класс Nothing - никто не является его подклассом
- отношения класс-подкласс
- эквивалентность
- трюк метамоделирования (рассмотрение индивидов в качестве классов)
- перечисления
- непересекающиеся классы
- дополнение классов
- пересечение
- непересекающееся объединение
Аксиомы классов с ограничением на свойства (ограничивают набор индивидов условием, что они имеют определенные свойства):
- универстальные ограничения (ограничение на класс A и свойство b означает, что для любого члена класса A все свойства принадлежат определенному классу, по сути это диапазон свойств, определенный локально)
- ограничение существования
- необходимые и достаточные условия
- ограничения на значения
- ограничения кардинальности
- ограничения на диапазон значений и типы данных
- самоограничения
Кроме того, предоставляются утверждения об индивидах (называемые фактами):
- утверждения о классах и свойствах (принадлежность)
- утверждение об идентичности индивидов
- отрицание
Профили языка owl
- OWL2 EL расширяет дискрипторную логику за счет EL-логики (подходит для приложений с очень большим числом классов и свойств)
- OWL2 QL эффективно работает с онтологиями, содержащими относительно простые определения классов
- OWL2 RL - подмножество языка owl2 full.
Логический вывод
OWL2 совместно с RDF реализует логику предикатов. В owl разработчик сам определяет набор правил для логического вывода и свободен использовать любые машины логического вывода. Для обмена правилами используется RIF формат. Дополнительно правила можно выразить на языке SWRL (реализация логики Хорна)
В [sparql] предусмотрен формат SPIN для выражения правил, который вводит оператор CONSTRUCT
owl повзоляет реализовывать как монотонные правила (если вывод делан, то он останется неизменным со временем), так и немнотонные. Кроме того, можно реализовать дедуктивные правила (если A и B, то C тоже истинно) и реативные (если A и B, то выполнить C).