Слайд 2
RDFS
RDFS – язык описания словарей для RDF.
RDF Schema
определяет классы, свойства и другие ресурсы.
RDFS является семантическим расширением
RDF.
Слайд 3
Система классов и свойств языка
RDFS
класс
свойство
-домен
-диапазон
сравнение с
системой классов ООП.
Слайд 4
Определим свойство «автор» с доменом «Документ» и диапазоном
«Человек».
Пример (начало)
Автор
Документ
Человек
Слайд 5
a-la RDF (дескриптивная логика):
Класс («Документ»);
Класс («Человек»);
Свойство («автор», «Документ»,
«Человек»).
В случае появления дополнительной информации о свойствах «Документа»,
нет необходимости изменять описание класса «Документ». Достаточно добавить новое свойство с соответствующим доменом.
Пример (окончание)
a-la Java:
Класс «Документ»
{
«Человек» «автор»
}
Слайд 6
Классы (1)
Ресурсы могут объединяться в группы называемые классами.
Члены класса называются экземплярами класса.
Экземпляры и классы являются
ресурсами RDF.
Свойство rdf:type используется для того, чтобы указать, что ресурс является экземпляром класса
Слайд 7
Классы (2)
RDF отделяет класс от множества его экземпляров
(т.н. экстенсионала).
Два класса с одинаковыми экстенсионалами считаются различными,
если они имеют разные наборы свойств (интенсионалы).
Слайд 8
Пример (интенсионал и экстенсионал)
Рассмотрим множества
A = {0,
2, 4, 6, 8},
B = {x, | x
= 2k, k = 0..4, k - целое},
C – множество неотрицательных четных чисел меньших 10.
В этом примере множество А описывается своим экстенсионалом, множества В и С описываются интенсионалами, т.е. используя характеристические свойства данного множества.
Парадокс Рассела.
Примечательно, что RDF нарушает одну из основных аксиом теории множеств: классу RDF не запрещено быть экземпляром самого себя.
Слайд 9
Классы (3)
Группа ресурсов, являющихся классами в RDFS описывается
термином rdfs:Class
Отношение «подкласс-надкласс», описывается RDFS свойством rdfs:subClassOf.
Любой класс
по определению является подклассом самого себя.
В спецификации по RDFS определены также списки, коллекции и контейнеры ресурсов, текстовые пометки и комментарии для создания удобных для чтения примечаний к ресурсам.
Слайд 12
Реификация
или материализация утверждений
К реификации прибегают, когда необходимо сделать
утверждение об утверждении RDF
Для этого используется специальный класс rdf:Statement
и его свойства rdf:subject, rdf:predicate, rdf:object.
Каждое RDF утверждение является экземпляром класса rdf:Statement
Слайд 13
Пример (начало)
Утверждение об авторстве исходного утверждения:
Утверждение 1:
«товар Т имеет цену х». Допустим, что оно сделано
Ивановым Иваном Ивановичем на языке RDF.
Требуется высказать утверждение 2 о том, что именно Иванов И.И. сделал утверждение 1.
Слайд 14
Пример (продолжение)
Товар Т
rdf:Property имеет цену
Цена х
rdf:Statement Утверждение 1 *
rdf:subject
Т *
rdf:predicate имеет цену *
rdf:object х *
rdf:Statement Утверждение 1 +
rdf:Property сделано автором +
Человек Иванов Иван
Иванович +
Важный момент: Косвенные утверждения.
Слайд 15
Пример (окончание)
имеет цену
Т
Х
Утверждение 1
Иванов Иван Иванович
сделано автором
rdf:subject
rdf:predicate
rdf:object
rdf:Statement
Цена
Товар
rdf:type
rdf:type
rdf:type
Человек
rdf:type
Слайд 16
Возможности RDF, RDF Schema
обобщенный способ работы с метаданными
ориентирован на программное обеспечение в качестве конечного потребителя информации
позволяет
осуществлять автоматическую обработку Web-ресурсов
- поиск
- каталогизацию
- генерацию иерархических карт сайтов
Слайд 17
Ограничения языка RDF, RDF Schema
Открытость и расширяемость RDF
ведет к тому, что «кто угодно (т.е. любой пользователь
RDF) может сказать что угодно (т.е. фиксировать произвольное утверждение) о чем угодно (т.е. о любом ресурсе Сети)» используя RDF.
RDF не запрещает делать бессмысленных утверждений или утверждений не согласующихся с другими. Следовательно, нет никакой гарантии целостности и непротиворечивости RDF-описаний.
Вся ответственность за проверку целостности ложится на получателей (конечных пользователей) метаданных, т.е. на разработчиков приложений обрабатывающих RDF.
Слайд 18
Способы представления RDF-описаний (1)
XML синтаксис
August
16, 1999
en
Слайд 19
Способы представления RDF-описаний (2)
N3 (N-Triples) синтаксис (удобный для
чтения человеком, но еще и расширяющий исходную модель RDF)
exstaff:85740 .
"August 16, 1999" .
"en" .
Слайд 20
Краткие итоги (RDF)
RDF – язык описания метаданных в
Сети
Модель данных RDF – ориентированный граф
RDF граф строится на
основе элементарных высказываний (триплетов)
Форма высказываний – бинарное отношение (S,P,O)
RDF чрезвычайно выразителен (кто угодно может сказать что угодно о чем угодно)
RDFS служит для определения словарей RDF.
Слайд 21
OWL
OWL (Web Ontology Language) – язык представления онтологий
в Web. Фактически это словарь расширяющий набор терминов определенных
RDFS.
OWL-онтологии могут содержать описания классов, свойств и их экземпляров.
Слайд 22
Исторические предшественники OWL
DAML, OIL, SHOE, XOL
OWL является рекомендацией
W3C и объединяет лучшие черты своих предшественников
Слайд 23
Три диалекта OWL
OWL Lite (простота)
OWL DL (полнота и
разрешимость)
OWL Full (выразительная мощь)
Каждый из этих диалектов (кроме Lite)
является расширением предыдущего.
Как следствие:
Любая OWL Lite онтология является OWL DL онтологией, а любая OWL DL онтология является OWL Full онтологией.
Слайд 24
Структура OWL онтологии
Заголовок
версия
примечания
импортируемые онтологии
Тело
описания классов, свойств и индивидов
в форме аксиом
Слайд 25
OWL. Базовые элементы. Классы (1)
Различия в смысле owl:Class
для диалекта Full и DL
Специальные классы
Thing
Nothing
Слайд 26
OWL. Базовые элементы. Классы (2)
6 способов определения класса
1.
идентификатором класса (URI)
2. перечислением всех экземпляров класса
3. ограничением свойства
4.
пересечением 2 и более определений классов
5. объединением 2 и более определений классов
6. дополнением определения класса
Слайд 27
OWL. Базовые элементы. Классы (3)
Простейшая аксиома, определяющая именованный
класс:
Все что постулирует эта аксиома – существование класса
с именем “Human”.
Конструкции OWL для определения сложных аксиом классов:
rdfs:subClassOf - говорит о том, что экстенсионал одного класса (подкласс) полностью входит в экстенсионал другого (надкласс).
owl:equivalentClass - говорит о том, что экстенсионалы двух классов совпадают.
owl:disjointWith - говорит о том, что экстенсионалы двух классов не пересекаются.
Слайд 28
OWL. Базовые элементы. Свойства (1)
Две основные категории OWL
свойств:
объектные свойства (owl:ObjectProperty)
связывают между собой индивиды
свойства-значения (owl:DatatypeProperty)
связывают индивиды
со значениями данных
Оба класса свойств являются подклассами класса rdf:Property
Простейший пример аксиомы свойства:
Всё что постулирует эта аксиома – существование некоторого свойства "hasParent" связывающего экземпляры owl:Thing друг с другом.
Слайд 29
OWL. Базовые элементы. Свойства (2)
Конструкции для построения аксиом
свойств (начало):
Конструкции RDF Schema:
rdfs:subPropertyOf
(определяет подсвойство данного свойства),
rdfs:domain (определяет домен) и
rdfs:range (определяет диапазон)
Отношения между свойствами:
owl:equivalentProperty (определяет эквивалентное свойство) и
owl:inverseOf (определяет обратное свойство)
Слайд 30
OWL. Базовые элементы. Свойства (3)
Конструкции для построения аксиом
свойств (окончание)
Ограничения глобальной кардинальности: owl:FunctionalProperty (определяет
однозначное свойство – однозначное отображение домена свойства на диапазон) и
owl:InverseFunctionalProperty (взаимоднозначное отображение домена свойства на его диапазон, т.е. определяет существование однозначного свойства обратного данному свойству)
Логические характеристики свойства: owl:SymmetricProperty (определяет свойство как симметричное данному) и
owl:TransitiveProperty (определяет транзитивное свойство)
Слайд 31
OWL. Базовые элементы. Индивиды (1)
Индивиды определяются при помощи
аксиом индивидов (фактов)
2 вида фактов:
(1) Факты о членстве
индивидов в классах и о значении свойств индивидов.
(2) Факты об идентичности индивидов
Слайд 32
OWL. Базовые элементы. Индивиды (2)
Пример аксиомы первого вида:
rdf:ID="ЛебединоеОзеро">
Данная аксиома постулирует сразу 2
факта:
(а) существует некоторый индивид класса “Балет” имеющий имя “ЛебединоеОзеро”;
(б) этот индивид связан свойством “имеетКомпозитора” с индивидом: “Чайковский” (определенным где-то в другом месте).
Первый факт говорит о членстве в классе, второй – о значении свойства индивида.
Слайд 33
OWL. Базовые элементы. Индивиды (3)
Для описания фактов об
идентичности индивидов используются аксиомы идентичности
Вспомогательные конструкции OWL:
owl:sameAs постулирует, что
две ссылки URI ссылаются на один и тот же индивид.
owl:differentFrom постулирует, что две ссылки URI ссылаются на разные индивиды.
owl:AllDifferent предоставляет средство для определения списка попарно различных индивидов.
Слайд 35
Языки запросов к RDF хранилищам.
Логический вывод над
RDF-графами и онтологиями
Представление знаний в машинопонятном формате не имело
бы никакого смысла, если бы к этим знаниям нельзя было обращаться, автоматически их обрабатывать и пополнять.
Имеются две близкие задачи:
Первая задача связана с извлечением имеющихся в хранилище знаний – запросами к хранилищу (asking, querying).
Вторая задача связана с применением логического вывода над имеющимися знаниями (reasoning, entailment).
Слайд 36
SPARQL
Синтаксис запроса (упрощенный)
SELECT
FROM
WHERE
{ .
FILTER
}
v_list – список имен переменных
onologyURI –
ссылка на онтологию
template_list – список шаблонов
filter_expr – ограничения на значения переменных
Слайд 37
Пример SPARQL (1)
Данные RDF в виде триплетов (S,
P, O):
(Foo1, category, “Total Members”);
(Foo1, rdf:value, 199);
(Foo2, category, “Total
Members”);
(Foo2, rdf:value, 200);
(Foo2, category, “CATEGORY X”);
(bar, category, “CATEGORY X”);
(bar, rdf:value, 358).
Слайд 38
Пример SPARQL (2)
SPARQL - Запрос:
SELECT ?cat ?val
WHERE {?x rdf:value ?val. ?x category ?cat.
FILTER(?val>=200).}
Предложение SELECT
описывает переменные cat и val, значение которых необходимо вычислить.
Предложение WHERE накладывает шаблоны вида (S, P, O).
Внутри шаблона можно использовать связанные переменные - x
Предложение FILTER накладывает ограничение на значения переменной val извлеченных значения
Семантика запроса: выдайте все объекты cat предиката category, субъект которого (x) является также субъектом предиката rdf:value со значением val, не меньшим 200. Вместе со значениями cat выдать соответствующие значения val.
Слайд 39
Пример SPARQL (3)
Ход выполнения запроса:
На место переменной x
могут быть подставлены Foo1, Foo2 и bar, причем Foo2
может быть подставлен дважды.
При подстановке Foo1 значение переменной val не удовлетворяет ограничению в предложении FILTER. Во всех других случаях все условия запроса выполнены (см. результат).
Результат выполнения запроса:
[["Total Members", 200], ["CATEGORY X", 200],
["CATEGORY X", 358]]
Слайд 40
Заключение. Основные вехи на пути к Semantic Web
Широкое
распространение Web стандартов (рекомендаций W3C)
XML
RDF/RDFS
OWL
SPARQL
RIF (Rule Interchange Format)
Наличие свободно распространяемых каркасов для разработки Semantic Web приложений
Jena Framework (Java)
Drive RDF Parser (C#)
Массовая разработка и использование онтологий!!!
Слайд 41
Заключение. Semantic Web «прилив»