Листинг 3. Индивидуальный элемент OWL

Листинг 2. Пример класса OWL

Компоненты онтологического языка Web на основе OWL

Основные компоненты OWL включают классы, свойства и индивидуальные элементы.

 

Классы

 

Классы - это основные блоки онтологии OWL. Класс - это концепция в домене. Классы обычно образуют таксономическую иерархию (т.е. систему подкласс-надкласс).

Классы определяются с помощью элемента owl:Class. В языке OWL существует два заранее определенных класса: owl:Thing и owl:Nothing. Первый из них является наиболее общим и включает все, второй - это пустой класс. Любой класс, определяемый пользователем, является подклассом класса owl:Thing и надклассом класса owl:Nothing. Примеры классов в области банковского дела могут включать классы Счет (Account) или Клиент (Customer).

В листинге 2 представлен пример класса OWL.

 

 

 

<owl:Class rdf:ID="SavingsAccount">

<rdfs:subclassOf rdf:resource="#Account"/>

</owl:Class>

 

Код в листинге 2 указывает, что элемент SavingAccount - это класс, являющийся подклассом класса Account.

OWL поддерживает шесть основных способов описания классов. Самый простой - это класс с именем (named). Другие типы - это классы пересечений (intersection), объединений (union), дополнений (complement), ограничений (restrictions) и классы перечислений (enumerated). В листинге 2 представлены два из этих способов описания классов: класс ограничений определяет SavingAccount как подкласс класса с именем Account. Ссылку на полный пакет спецификаций классов W3C OWL можно найти в разделе Ресурсы.

 

Свойства

 

Свойства включают две основные категории:

· свойства объекта (Object properties), которые связывают индивидуальные элементы между собой;

· свойства типов данных (Datatype properties), которые связывают индивидуальные элементы со значениями типов данных, такими как целые числа, числа с плавающей запятой и строки. Для определения типов данных OWL использует схему XML.

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

·

· функциональная: для любого объекта свойство может принимать только одно значение (например, возраст, рост или вес человека);

· обратно-функциональная: два различных индивидуальных элемента не могут иметь одно и то же значение. Например, у каждого человека свой уникальный номер банковского счета или так называемый SSN (social security number)1;

· симметричная: если свойство связывает элемент А с элементом В, то из этого можно сделать вывод, что оно также связывает элемент В с элементом А. Примеры симметричных свойств включают выражения типа "является братом (сестрой)" или "такой же, как";

· транзитивная: если свойство связывает элемент А с элементом В, а элемент В с элементом С, то можно предположить, что оно также связывает элемент А с элементом С. Например, если А выше В, а В выше С, то А выше С.

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

Индивидуальные элементы

Индивидуальные элементы - это элементы классов; свойства могут связывать их друг с другом. Например, индивидуальный элемент Smith может быть описан как элемент, принадлежащий классу Person (индивидуум). Свойство hasEmployer (имеет работодателя) может связывать его с другим индивидуальным элементом - Webify Solutions, указывая, таким образом, что Smith работает в компании Webify Solutions.

 

В листинге 3 приведен пример индивидуального элемента OWL.

 

 

 

<owl:Thing rdf:about="SmithAccount">

<rdfs:type="#Account"/>

</owl:Class>

 

Элемент rdf:type - это свойство RDF, которое связывает индивидуальный элемент с тем классом, к которому он принадлежит. Листинг 3 указывает, что элемент SmithAccount принадлежит к типу Account.