Листинг 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.