Московский государственный университет имени М.В.Ломоносова
Опубликован: 05.11.2008 | Доступ: свободный | Студентов: 1319 / 247 | Оценка: 4.32 / 4.15 | Длительность: 11:59:00
ISBN: 978-5-9963-0007-5
Специальности: Программист
Лекция 6:

Языки описания онтологий. Основные синтаксические структуры: классы, отношения, аксиомы

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >

Реификация (материализация, овеществление утверждений)

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

Для этого используется специальный класс rdf:Statement и его свойства rdf:subject, rdf:predicate и rdf:object. Каждое RDF-утверждение является экземпляром класса rdf:Statement. По свойствам (и их значениям) можно однозначно идентифицировать само утверждение. Обладая этой информацией, возможно фиксировать утверждения об утверждениях.

Пример. В базе данных электронного магазина хранится информация о том, что некий товар ( Т ) имеет цену х. Данное утверждение (1) (товар Т имеет цену х ) может быть выражено Ивановым Иваном Ивановичем на языке RDF. Если далее потребуется высказать утверждение (2) о том, кто именно сделал утверждение (1), можно использовать механизм реификации (рис. 6.3).

Товар             Т                         #
rdf:Property      имеет цену                #
Цена              х                         #
---------------------------------------------
rdf:Statement     Утверждение 1             *
rdf:subject       Т                         *
rdf:predicate     имеет_цену                *
rdf:object        х                         *

rdf:Statement     Утверждение 1             +
rdf:Property      сделано                   +
Человек           Иванов Иван Иванович      +
Использование механизма реификации.

Рис. 6.3. Использование механизма реификации.

Отметим один важный момент: фиксация только тех утверждений, которые помечены " * ", не означает, что товар Т действительно имеет цену х. Даже вместе с утверждениями, помеченными " + ", вся информация, которую мы узнаём - это: "некто Иванов Иван Иванович сделал утверждение о товаре Т, что он имеет цену х ". Но не более того! Значение х цены товара Т фиксируется тройкой строк, помеченных " # ".

Понятно, что новое утверждение (высказывание об Утверждении 1) также может быть подвергнуто реификации, поскольку синтаксически не отличается от Утверждения 1 (оно также является экземпляром класса rdf:Statement ).

Далее приводится полный список классов и свойств RDF/RDFS.

Таблица 6.1. Классы RDFS
Имя класса Пояснение
rdfs:Resource Класс-ресурс, включает "всё"
rdfs:Literal Класс литеральных значений, текстовых строк или чисел
rdf:XMLLiteral Класс XML-литералов
rdfs:Class Класс классов
rdf:Property Класс RDF-свойств
rdfs:Datatype Класс типов данных RDF
rdf:Statement Класс утверждений
rdf:Bag Класс неупорядоченных контейнеров
rdf:Seq Класс упорядоченных контейнеров
rdf:Alt Класс контейнеров-альтернатив
rdfs:Container Класс RDF-контейнеров
rdfs:ContainerMembership Класс свойств "членства" в контейнерах: rdf:_1, rdf:_2, ..., все они являются подсвойствами свойства rdfs:member
rdf:List Класс RDF-списков
Таблица 6.2. Свойства RDFS
Имя свойства Пояснение Домен Диапазон
rdf:type Субъект является экземпляром класса rdfs:Resource rdfs:Class
rdfs:subClassOf Субъект является подклассом класса rdfs:Class rdfs:Class
rdfs:subPropertyOf Субъект является подсвойством свойства rdf:Property rdf:Property
rdfs:domain Домен свойства субъекта rdf:Property rdfs:Class
rdfs:range Диапазон свойства субъекта rdf:Property rdfs:Class
rdfs:label Человекочитаемое название субъекта rdfs:Resource rdfs:Literal
rdfs:comment Текстовое описание ресурса rdfs:Resource rdfs:Literal
rdfs:member Член ресурса субъекта rdfs:Resource rdfs:Resource
rdf:first Первый элемент списка rdf:List rdfs:Resource
rdf:rest Оставшийся за первым элементом "хвост" списка rdf:List rdf:List
rdfs:seeAlso Дополнительная информация о субъекте rdfs:Resource rdfs:Resource
rdfs:isDefinedBy Определение ресурса субъекта rdfs:Resource rdfs:Resource
rdf:value Свойство, используемое для структурированных значений rdfs:Resource rdfs:Resource
rdf:subject Субъект RDF-утверждения (см. "реификация") rdf:Statement rdfs:Resource
rdf:predicate Предикат RDF-утверждения (см. "реификация") rdf:Statement rdfs:Resource
rdf:object Объект RDF-утверждения (см. "реификация") rdf:Statement rdfs:Resource

Возможности и ограничения языка RDF (RDF Schema)

Сам по себе RDF не является стандартом метаданных, как, например, Dublin Core, FOAF, vCard. Все, что он "умеет", - это фиксировать утверждения о ресурсах, их свойствах и значениях этих свойств.

Важные свойства языка:

  • обобщенный способ работы с метаданными;
  • ориентация на программное обеспечение в качестве конечного потребителя информации;
  • возможность осуществлять автоматическую обработку Web-ресурсов:
    • поиск;
    • каталогизацию;
    • генерацию иерархических карт сайтов.

Недостатки RDF

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

Способы представления RDF-описаний

Ниже приводится пример двух способов представления RDF графов: в форме XML-документа (часто более удобной для автоматической обработки) и в форме последовательностей троек - так называемый N Triple или N3 синтаксис (удобный для восприятия человеком).

XML-синтаксис
<?xml version="1.0"?>
<rdf:RDF 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:exterms="http://www.example.org/terms/">

<rdf:Description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
</rdf:Description>

<rdf:Description rdf:about="http://www.example.org/index.html">
<dc:language>en</dc:language>
</rdf:Description>

</rdf:RDF>
N3-синтаксис (удобный для чтения человеком и расширяющий исходную модель данных RDF)
<ex:index.html> <dc:creator> exstaff:85740 .
<ex:index.html> <exterms:creation-date> "August 16, 1999" .
<ex:index.html> <dc:language> "en".

На этих примерах можно заметить "тяжеловесность" XML-синтаксиса RDF по сравнению с N3-синтаксисом. Но он более удобен для сериализации RDF-графов.

Из вышесказанного о RDF и метаданных можно сделать вывод, что RDF имеет довольно слабые (по объему) выразительные средства и не основан на каком-либо логическом формализме. Это язык описания метаданных, причем метаданных в широком смысле слова: имеющих произвольную структуру и смысл. Пожалуй, единственный принцип, которому следует RDF, это основной лозунг Web. RDF - универсальный инструмент и поэтому требует настройки для решения конкретных специализированных задач. Способ такой "настройки" состоит в расширении RDF при помощи словарей. Перейдем к рассмотрению одного из расширений RDF для области проектирования и представления онтологий.

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >