Основные элементы OWL

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

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

Простые именованные классы (Class) и подклассы (rdfs:subClassOf). Наиболее фундаментальные понятия в какой-либо области должны соответствовать классам, которые находятся в корне различных таксономических деревьев. Каждый индивид в мире OWL является членом класса owl:Thing, т. е. каждый определенный пользователем класс автоматически является подклассом owl:Thing. Специфичные для данной области корневые классы определяются простым объявлением именованного класса. OWL также определяет пустой класс, owl:Nothing.

Пример: создание классов Университет, Регион и Учащийся.

<owl:Class rdf:ID="Университет"/>

<owl:Class rdf:ID="Регион"/>

<owl:Class rdf:ID="Учащийся"/>

Определения могут быть расширяющимися и распределенными. Синтаксис rdf:ID="Регион" используется, чтобы ввести название как часть его определения. Теперь внутри документа на класс Регион можно ссылаться с помощью #Регион, например, rdf:resource="#Регион". Другие онтологии могут ссылаться на это название, используя его полную форму ="https://www....../ university #Регион".

Другая форма ссылок использует синтаксис rdf:about="&ont;#x", чтобы расширить определение ресурса. Использование данного синтаксиса – ключевой элемент в создании распределенной онтологии. Это позволяет расширить импортированное определение x, не изменяя оригинал документа, и конструировать большие онтологии из блоков. Т. е. существует возможность обращения к классам, которые определены в других OWL-конструкциях, используя их же идентификаторы.

Фундаментальным таксономическим конструктором для классов является rdfs:subClassOf. Он связывает более частный класс с более общим. Например, связь классов Университет и ВУЗ может быть описана так:

<owl:Class rdf:ID="Университет">

<rdfs:subClassOf rdf:resource="#ВУЗ" />... </owl:Class>

Если X – подкласс Y, то каждый представитель X – также представитель Y. Отношение rdfs:subClassOf является транзитивным: если X – подкласс Y и Y – подкласс Z, то X – подкласс Z.

Определение класса состоит из двух частей: указания названия (или ссылки) и списка ограничений. Каждое из непосредственно содержащихся в определении класса выражений ограничивает (уточняет) свойства представителей определенного класса. Представители класса принадлежат к пересечению указанных ограничений.

Индивиды. Для определения индивида достаточно объявить его членом класса.

<Регион rdf:ID="РегионЦентральногоПобережья" />

Отметим, что следующая запись идентична по значению приведенной ранее:

<owl:Thing rdf:ID="РегионЦентральногоПобережья" />

<owl:Thing rdf:about="#РегионЦентральногоПобережья">

<rdf:type rdf:resource="#Регион"/>

</owl:Thing>

Здесь rdf:type – это свойство RDF, которое связывает индивида с классом, членом которого он является.

Существует проблема различия между классом и индивидом в OWL. Класс – это просто название и совокупность свойств, которые описывают набор индивидов. Индивиды – это члены этих наборов. Таким образом, классы должны соответствовать естественно образованным наборам вещей в рассматриваемой области, а индивиды – реальным объектам, которые могут быть сгруппированы в эти классы. При создании онтологий это различие часто может «размываться»: в определенных контекстах класс может считаться индивидом или подклассом другого класса.

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

Определение свойств ObjectProperty, DatatypeProperty, rdfs:subPropertyOf, rdfs:domain, rdfs:range

Свойство – это бинарное отношение. Различают 2 типа свойств:

· свойства-значения – отношения между представителями классов и RDF-литералами или типами данных, определяемых XML Schema;

· свойства-объекты – отношения между представителями двух классов. Заметим, что слово «объект» в названии не связано с термином rdf:object.

При определении свойства существует множество способов ограничить это отношение. Можно определить домен и диапазон свойства. Например:

<owl:ObjectProperty rdf:ID="студентУниверситета">

<rdfs:domain rdf:resource="#Университет"/>

<rdfs:range rdf:resource="#Учащийся"/>

</owl:ObjectProperty>

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

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

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

Свойства, как и классы, могут образовывать иерархию. Например:

<owl:Class rdf:ID="ИнформацияОГруппе" />

<owl:Class rdf:ID="НомерГруппы">

<rdfs:subClassOf rdf:resource="# ИнформацияоГруппе" />

...

</owl:Class>

<owl:ObjectProperty rdf:ID="обладаетИнформациейоГруппе">

<rdfs:domain rdf:resource="# студентУниверситета" />

<rdfs:range rdf:resource="# ИнформацияОГруппе" />

</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="имеетНомерГруппы">

<rdfs:subPropertyOf rdf:resource="# обладаетИнформациейоГруппе " />

<rdfs:range rdf:resource="#НомерГруппы" />

...

</owl:ObjectProperty>

Здесь отношение rdfs:subPropertyOf означает, что нечто со значением X свойства имеетНомерГруппы также имеет свойство обладаетИнформациейоГруппе со значением X.

Следующий пример вводит свойство расположенВ, которое связывает вещи (Thing) с регионами, в которых они расположены.

<owl:ObjectProperty rdf:ID="расположенВ">

...

<rdfs:domain rdf:resource="https://www.w3.org/2002/07/owl#Thing" />

<rdfs:range rdf:resource="#Регион" />

</owl:ObjectProperty>

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

Выделенное ранее ограничение подкласса

<owl:Restriction>

<owl:onProperty rdf:resource="# студентУниверситета"/>

<owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>

</owl:Restriction>

определяет неименованный класс, который представляет набор вещей по крайней мере с одним свойством студентУниверситета. Такие классы называются анонимными.

Свойства и типы данных. С войства различаются по тому, связывают ли они индивидов с индивидами (свойства-объекты) или индивидов с типами данных (свойства-значения). Свойства-значения могут иметь диапазон литералов RDF или простых типов, определенных в XML Schema datatypes.

OWL использует большинство встроенных типов XML Schema, ссылки на которые осуществляются посредством URI «https://www.w3.org/2001/ XMLSchema». Эти типы, а также тип rdfs:Literal формируют номенклатуру встроенных типов данных OWL. При этом все «OWL-рассуждатели» обязаны поддерживать типы xsd:integer и xsd:string.

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

Свойство транзитивности TransitiveProperty. Свойства могут быть объявлены транзитивными (переходными). Это означает, что если пара (x, y) – представитель транзитивного свойства P и пара (y, z) – представитель свойства P, то пара (x, z) – также представитель P.

Свойство симметрии SymmetricProperty. Свойства могут быть объявлены симметричными. Тогда, если пара (x, y) – представитель симметричного свойства P, то пара (y, x) – также представитель P.

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

Свойство инверсии inverseOf. Одно свойство может быть представлено как инверсия другого. Если свойство P1 представлено как инверсия свойства P2, то если X связан с Y свойством P2, то Y связан с X свойством P1.

Свойство обратной функциональности InverseFunctionalProperty. Свойства могут быть объявлены обратнофункциональными. Если свойство обратнофункционально, то инверсия этого свойства функциональна, Т. е. инверсия данного свойства имеет не больше одного значения для каждого индивида. Эта характеристика также известна как недвусмысленное (однозначное) свойство.

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

В OWL Full можно пометить DatatypeProperty как обратнофункциональное. Это позволяет идентифицировать строку как уникальный ключ. В OWL DL литералы (строковые значения) отделены от owl:Thing, и поэтому OWL DL не разрешает применять InverseFunctional к DatatypeProperty.

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

Свойства allValuesFrom (все значения) и someValuesFrom (некоторые значения). До сих пор все механизмы ограничения свойств были глобальными в том смысле, что они относились ко всем представителям данного свойства. Следующие 2 свойства – allValuesFrom и someValuesFrom – локальные по отношению к содержащему их классу.

Ограничение owl:allValuesFrom требует, чтобы для каждого представителя данного класса, который имеет данное свойство, все значения этого свойства являлись представителями класса, заданного в пункте owl:allValuesFrom:

<owl:Class rdf:ID="Университет">

<owl:Restriction>

<owl:onProperty rdf:resource="#долженбытьЗарегистрирован" />

<owl:allValuesFrom rdf:resource="#МинистерствоОбразования" />

</owl:Restriction>

... </owl:Class>

Университет должен быть зарегистрирован в Министерстве Образования. Ограничение allValuesFrom на свойство долженбытьЗарегистрирован накладывается только для класса Университет и не действует на другие учреждения.

owl:someValuesFrom действует похожим образом. Оно означает, что по крайней мере одно из указанных свойств объекта класса должно указывать на индивида указанного класса resource.

Свойство кардинальности. Параметр owl:cardinality позволяет указать точное количество элементов в связи. Например, указание года создания университета можно описать:

<owl:Class rdf:ID="Университет">

<rdfs:subClassOf>

<owl:Restriction>

<owl:onProperty rdf:resource="#имеетГодСоздания"/>

<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>

</owl:Restriction>

</rdfs:subClassOf> </owl:Class>

В примере свойство «имеетГодСоздания» задается как функциональное, т. е. по смысловому значению это эквивалентно тому, что каждый Университет имеет не более одного «ГодаСоздания». Применение этого свойства к Университету с ограничением кардинальности задает более строгое отношение: «каждый Университет имеет строго один ГодСоздания».

Выражения кардинальности со значениями 0 или 1 являются частью OWL Lite. Это позволяет пользователю уточнить отношения «по меньшей мере один», «не более одного» и «точно один». Позитивные целочисленные значения, помимо 0 и 1, разрешены в OWL DL; owl:maxCardinality может использоваться для указания верхнего предела, а owl:minCardinality – для нижнего. В комбинации друг с другом они могут использоваться для ограничения кардинальности свойства в пределах числового интервала.

Свойство «иметь значение» hasValue (OWL DL). hasValue позволяет определять классы, основанные на существовании специфических значений свойства. Т. е. индивид будет членом такого класса всякий раз, когда по крайней мере одно из его значений свойства будет равно ресурсу, указанному с помощью hasValue.

Как и для allValuesFrom и someValuesFrom, это локальное ограничение.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: