Rules for the Semantic Web

Download Report

Transcript Rules for the Semantic Web

Языки запросов для OWL
Фазлиев А.З. (ИОА СО РАН)
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Содержание
Эволюция языков запросов в подходе Semantic Web
Запросы над RDF. SPARQL. Анализ примеров применения.
Правила и OWL. RuleML  SWRL. Анализ примеров применения.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Peter Haase, Jeen Broekstra, Andreas Eberhart and Raphael Volz,
A Comparison of RDF Query Languages, THE SEMANTIC WEB – ISWC 2004
Lecture Notes in Computer Science, 2004, Volume 3298/2004, 502-517, DOI: 10.1007/978-3-540-30475-3_35
«Мы считаем, что определение подходящего языка запросов RDF должно являться основным
приоритетом в стандартизации. Запросы являются базавой функциональностью необходимой для
почти всех приложений, связанных с подходом Semantic Web. …., стандартизация определенно
поможет становлению RDF заросов как инструментария, облегчит создание приложений и тем
самым в целом будет способствовать развитию Semantic Web.»
Поддержка RDF модели данных
Рассматриваемая модель данных прямым образом влияет на набор операций связанный с языком
запросов. Следовательно необходимо выделить основные концепты RDF и отметить их влияние на
требования к языку запросов RDF.
Абстрактная модель данных RDF Структура любого RDF документа представляет собой коллекцию
триад. Эта коллекция называется RDF графом. Каждая триада содержит отношение (свойство) между
двумя узлами (ресурсами) в графе. Такая абстрактная модель данных не зависит от конкретного
синтаксиса сериализации.
Формальная семантика и вывод RDF имеет формальную семантику, обеспечивающую зависимый
базис для рассуждения о смысле RDF графа. Такое рассуждение обычно называют следованием.
Правила следования (entailment rules) устанавливают каким образом неявная информация может быть
получена из явной. Таким образом, RDF языки запросов можно рассматривать как такое следование,
позволяющее обеспечить различие явных и неявных данных.
Поддержка типов данных в XML схеме XML типы данных можно использовать для представления
значений в RDF. XML схема обеспечивает расширенные рамки для определения новых типов данных в
RDF.
Свободная поддержка утверждений о ресурсах В общем случае не предполагается, что полная
информация о ресурсе может быть получена с помощью RDF запроса. Язык запросов должен допускать
неполноту или противоречивость информации.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Peter Haase, Jeen Broekstra, Andreas Eberhart and Raphael Volz,
A Comparison of RDF Query Languages, THE SEMANTIC WEB – ISWC 2004
Lecture Notes in Computer Science, 2004, Volume 3298/2004, 502-517, DOI: 10.1007/978-3-540-30475-3_35
Свойства языка запросов
- Выразительность Выразительность показывает насколько мощным может быть запрос в данном
языке. Типичным является то, что язык должен обеспечивать средства предлагаемые реляционной
алгеброй. Обычно выразительность ограничивает реализацию других свойств, таких как безопасность и
эффективное выполнение запросов.
- Замыкание Свойство замыкания требует чтобы результаты операции были элементами модели
данных. Это означает, что если язык запросов оперирует с графами, то ответы на запросы должен быть
графами.
-Адекватность Язык запросов называется адекватным если он использует все концепты, относящиеся к
модели данных. Это свойство дополняет свойство замыкания. Для замыкания результат запроса не
должен быть за пределами модели данных, а для адекватности – необходимо использовать все
концепты модели данных.
- Ортогональность Ортогональность языка запросов требует, чтобы все операции можно было
использовать независимо от контекста использования.
- Безопасность Язык запросов считается безопасным, если каждый синтаксически корректный запрос
возвращает конечное множество результатов (на конечном множестве данных). Типичными концептами
наоушающими безопасность являются рекурсия, отрицание и встроенные функции.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Peter Haase, Jeen Broekstra, Andreas Eberhart and Raphael Volz,
A Comparison of RDF Query Languages, THE SEMANTIC WEB – ISWC 2004
Lecture Notes in Computer Science, 2004, Volume 3298/2004, 502-517, DOI: 10.1007/978-3-540-30475-3_35
Перечень пожеланий
Некоторые важные черты не поддеживаются в языках RQL, SeRQL, TRIPLE, RDQL, N3, Versa или
поддерживаются недостаточно полно.
Группировка и агрегация Большинство вариантов языков поддерживают малую функциональность
группи ровки и агрегации. Такие функции как min, max, average и count обеспечивают важный
инструментарий для анализа данных.
Сортировка Удивительно, но за исключением Versa, ни один из языков не поддерживает сортировку и
упорядочение в ответе на запрос.
Адекватность Поддержка во всех языках специфических черт RDF, таких как контейнеры, коллекции,
типы данных XML Schema и описание структуры высказывания очень слабая. Т.к. эти черты
характеризуют модель данных, степень адекватности этих языков низкая.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Peter Haase, Jeen Broekstra, Andreas Eberhart and Raphael Volz,
A Comparison of RDF Query Languages, THE SEMANTIC WEB – ISWC 2004
Lecture Notes in Computer Science, 2004, Volume 3298/2004, 502-517, DOI: 10.1007/978-3-540-30475-3_35
RQL, SeRQL, TRIPLE, RDQL, N3, Versa
Ключевое различие в поддержке семантики RDF схемы.
Такие языки как N3 и Triple не делают различия между запросом и правилом. Т.о. логическая программа,
представляющая желаемую семантику RDF-S может дополнять запрос. SeRQL и RQL поддерживают
RDF-S семантику. В Versa прагматически поддерживают транзитивное замыкание с помощью
специального оператора. Хотя это не гибко, но решается большинство проблем. RDQL игнорирует RDF-S
семантику.
Ортогональность желательная черта т.к. она позволяет объединять множества простых операторов в
сложные конструкции. Только RQL, SeRQL, N3, и Versa поддержиают это свойство. Versa использует
множество ресурсов в качестве базовой структуры данных, тогда как RQL, N3 и SeRQL работают с
графами. Triple имитирует ортогональность через правила, а RDQL не поддерживает ее.
Читаемость и используемость языков. Синтаксически, RQL, RDQL и SeRQL подобны своим предкам
SQL. Triple и N3 связаны с правилами.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Два Semantic Web?
20.07.2015
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
7
Правила


Правила основаны на подмножестве логики первого
порядка + возможных расширения
Формализм базовых правил (в Semantic Web):


Semantic Web Rule Language (SWRL)
Answer Set Programming (ASP) (Datalog∨¬)
Правила
Выводы
20.07.2015
Ограничения
целостности
Реакции
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
8
Почему нам нужны онтологии и правила?


Онтологии основаны на дескриптивных логиках (и являются
частью классической логики).
 Web открытая среда.
 Многократное использование / интероперабельность.
 Онтология является моделью которую легко понять.
Правила являются частью логического программирования.
 Ради достижения разрешимости языки онтологий не
позволяют достигнуть необходимой выразительности
(например, конструирование составных свойств). С помощью
правил достигается большая выразительность.
 Существует эффективная поддержка логического вывода.
 Правила хорошо известны в практике.
20.07.2015
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
9
Правила + Онтологии

Все ещё не решенная задача!

Существуют разные подходы: SWRL, DLP (Grosof), dl-programs
(Eiter), DL-safe rules, Conceptual Logic Programs (CLP), AL-Log,
DL+log.

2 главные стратегии:

Семантическая интеграция (Однородные подходы)

Строгое семантическое разделение (Гибридные подходы)
20.07.2015
10
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Однородный подход
Как
онтологии так и правила содержатся в логическом языке.
 Нет различия между предикатами правил и предикатами
онтологий.
 Правила можно использовать для определения классов и
свойств онтологии.
 Примеры: SWRL, DLP
Онтологии
Правила
RDFS
20.07.2015
11
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Гибридный подход
 Интеграция со строгим семантическим разделениеммежду
двумя слоями.
 Онтология используется как концептуализация предметной
области.
 Правила не могут определять классы и свойства онтологии за
исключением некоторых специальных отношений.
Пример: Answer Set Programming (ASP)
Ontologies
Rules
RDFS
20.07.2015
?
12
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Запросы над RDF. SPARQL
Поиск RDF данных
RDF граф может содержать значительное число утверждений, но как
можно найти и манипулировать данными находящимися в графе и
представляющими для пользователей?
SPARQL
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Что такое запрос?
Запрос - это вопрос.
Ответ на него требует понимания:
RDF
граф
•Запрос
•Запрашиваемая вещь
•Отношение между ними
SPARQL
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Общая структура оператора выборки в языке SQL
SELECT [ ALL | DISTINCT ] select_item_commalist
FROM table_reference_commalist
[ WHERE conditional_expression ]
[ GROUP BY column_name_commalist ]
[ HAVING conditional_expression ]
[ ORDER BY order_item_commalist ]
select_item ::= value_expression [ [ AS ] column_name ] | [
correlation_name . ]
order_item ::= value_expression [ collate_clause ] [ { ASC | DESC } ]
table_reference ::= table_primary | joined_table
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Типы запросов
SelectQuery::='SELECT' ( 'DISTINCT' | 'REDUCED' )? (Var+ | '*' )
'FROM' ( DefaultGraphClause | NamedGraphClause )*
'WHERE'? GroupGraphPattern
('ORDER' 'BY' OrderCondition+)? LimitOffsetClauses?
Форма SELECT возвращает переменные и их привязки непосредственно.
ConstructQuery ::= 'CONSTRUCT' ConstructTemplate
'FROM' ( DefaultGraphClause | NamedGraphClause )*
'WHERE'? GroupGraphPattern
('ORDER' 'BY' OrderCondition+)? LimitOffsetClauses?
Форма запроса CONSTRUCT возвращает один RDF-граф, определенный графовым
шаблоном. В результате получается RDF-граф, сформированный путем взятия каждого
решения запроса в последовательности решений, замены на переменные в графовом
шаблоне и объединения триплетов в единый RDF-граф посредством объединения
множества.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Типы запросов
DescribeQuery ::= 'DESCRIBE' ( VarOrIRIref+ | '*' )
'FROM' ( DefaultGraphClause | NamedGraphClause )*
'WHERE'? GroupGraphPattern
('ORDER' 'BY' OrderCondition+)? LimitOffsetClauses?
Форма DESCRIBE возвращает единственный результирующий RDF-граф, который
содержит RDF-данные о ресурсах. Эти данные не предписаны запросом SPARQL, где
клиенту запроса необходимо знать структуру RDF в источнике данных. Однако вместо этого
данные определены обработчиком SPARQL-запроса. Шаблон запроса используется для
создания результирующего набора. Форма DESCRIBE берет каждый из ресурсов,
установленных в решении, вместе с любыми ресурсами, непосредственно названных по IRI,
и формирует единый RDF-граф, взяв описание (description), которое может поступить из
любой доступной информации, в том числе и из целевого набора данных RDF. Описание
определяется сервисом запросов.
AskQuery ::='ASK'
'FROM' ( DefaultGraphClause | NamedGraphClause )*
'WHERE'? GroupGraphPattern
Приложения могут использовать форму ASK для тестирования, имеет ли шаблон
запроса решение.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
DatasetClause
::=
'FROM' ( DefaultGraphClause | NamedGraphClause )
DefaultGraphClause
::=
SourceSelector
NamedGraphClause
::=
'NAMED' SourceSelector
SourceSelector
::=
IRIref
WhereClause
::=
'WHERE'? GroupGraphPattern
GroupGraphPattern
::=
'{' TriplesBlock? ( ( GraphPatternNotTriples | Filter ) '.'? TriplesBlock? )* '}'
TriplesBlock
::=
TriplesSameSubject ( '.' TriplesBlock? )?
TriplesSameSubject
::=
VarOrTerm PropertyListNotEmpty | TriplesNode PropertyList
VarOrTerm
::=
Var | GraphTerm
GraphTerm
::=
IRIref | RDFLiteral | NumericLiteral | BooleanLiteral | BlankNode | NIL
PropertyListNotEmpty
::=
Verb ObjectList ( ';' ( Verb ObjectList )? )*
Verb
::=
VarOrIRIref | 'a'
VarOrIRIref
::=
Var | IRIref
ObjectList
::=
Object ( ',' Object )*
Object
::=
GraphNode
GraphPatternNotTriples
::=
OptionalGraphPattern | GroupOrUnionGraphPattern | GraphGraphPattern
OptionalGraphPattern
::=
'OPTIONAL' GroupGraphPattern
GraphGraphPattern
::=
'GRAPH' VarOrIRIref GroupGraphPattern
SolutionModifier
::=
OrderClause? LimitOffsetClauses?
OrderClause
::=
'ORDER' 'BY' OrderCondition+
OrderCondition
::=
( ( 'ASC' | 'DESC' ) BrackettedExpression ) | ( Constraint | Var )
LimitOffsetClauses
::=
( LimitClause OffsetClause? | OffsetClause LimitClause? )
LimitClause
::=
'LIMIT' INTEGER
OffsetClause
::=
'OFFSET' INTEGER
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Запрос:
SELECT ?title
WHERE
{
<http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title .
}
Этот запрос, выполненный над вышеприведенными данными, имеет единственное
решение:
Результат запроса:
"SPARQL Tutorial"
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. CONSTRUCT. Написание простого запроса
Данные:
<http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> "SPARQL Tutorial" .
Запрос:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE
{ ?x foaf:name ?name .
?x foaf:mbox ?mbox }
Результат запроса:
name
mbox
"Johnny Lee Outlaw"
"Peter Goodguy"
<mailto:[email protected]>
<mailto:[email protected]>
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. CONSTRUCT. Множественные соответствия
Данные:
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Johnny Lee Outlaw" .
_:a foaf:mbox <mailto:[email protected]> .
_:b foaf:name "Peter Goodguy" .
_:b foaf:mbox <mailto:[email protected]> .
_:c foaf:mbox <mailto:[email protected]> .
Запрос:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX org: <http://example.com/ns#>
CONSTRUCT { ?x foaf:name ?name }
WHERE { ?x org:employeeName ?name }
Результаты:
@prefix org: <http://example.com/ns#> .
_:x foaf:name "Alice" .
_:y foaf:name "Bob" .
которые могут быть сериализованы в RDF/XML следующим образом:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/" >
<rdf:Description>
<foaf:name>Alice</foaf:name>
</rdf:Description>
<rdf:Description>
<foaf:name>Bob</foaf:name>
</rdf:Description>
</rdf:RDF>
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. CONSTRUCT. Построение RDF-графов
В SPARQL есть несколько форм запросов. Форма запроса SELECT возвращает привязки переменных.
Форма запроса CONSTRUCT возвращает RDF-граф. Граф строится на базе шаблона, который
применяется для генерации RDF-триплетов на основе результатов соответствия графовому шаблону
запроса.
Данные:
@prefix org: <http://example.com/ns#> .
_:a org:employeeName "Alice" .
_:a org:employeeId 12345 .
_:b org:employeeName "Bob" .
_:b org:employeeId 67890 .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix : <http://example.org/book/> .
@prefix ns: <http://example.org/ns#> .
:book1 dc:title "SPARQL Tutorial" .
:book1 ns:price 42 .
:book2 dc:title "The Semantic Web" .
:book2 ns:price 23 .
Ограничение строковых значений
Функции SPARQL-фильтров, например, regex, позволяют тестировать RDFлитералы. Функция regex соответствует только простым (plain) литералам без
тега языка.
Запрос:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE { ?x dc:title ?title
FILTER regex(?title, "^SPARQL")
}
Результат запроса:
title"SPARQL Tutorial"
Ограничение числовых значений
Фильтры SPARQL могут накладывать ограничения на арифметические
выражения.
Запрос:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX ns: <http://example.org/ns#>
SELECT ?title ?price
WHERE { ?x ns:price ?price .
FILTER (?price < 30.5)
?x dc:title ?title . }
Результат запроса:
Title
price
“The Semantic Web”
23
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. CONSTRUCT. Ограничения RDF-термина
Данные:
Данные:
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:givenname "Alice" .
_:a foaf:family_name "Hacker" .
_:b foaf:firstname "Bob" .
_:b foaf:surname "Hacker" .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
Запрос:
CONSTRUCT { ?x vcard:N _:v .
_:v vcard:givenName ?gname .
_:v vcard:familyName ?fname }
WHERE { { ?x foaf:firstname ?gname } UNION { ?x foaf:givenname ?gname } .
{ ?x foaf:surname ?fname } UNION { ?x foaf:family_name ?fname } . }
создает свойства vcard в соответствии с информацией FOAF:
Результат:
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> .
_:v1 vcard:N
_:x .
_:x vcard:givenName "Alice" .
_:x vcard:familyName "Hacker" .
_:v2 vcard:N
_:z .
_:z vcard:givenName "Bob" .
_:z vcard:familyName "Hacker" .
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. CONSTRUCT. Шаблоны с безымянными вершинами
Шаблон может создать RDF-граф, содержащий безымянные вершины. Область
действия меток безымянных вершин распространяется в пределах шаблона для
каждого решения. Если одна и та же метка фигурирует в шаблоне дважды, тогда для
каждого решения запроса будет создана одна безымянная вершина, однако разные
решения запроса сгенерируют разные безымянные вершины для триплетов.
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix site: <http://example.org/stats#> .
_:a foaf:name "Alice" .
_:a site:hits 2349 .
_:b foaf:name "Bob" .
_:b site:hits 105 .
_:c foaf:name "Eve" .
_:c site:hits 181 .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX site: <http://example.org/stats#>
Запрос:
CONSTRUCT { [] foaf:name ?name }
WHERE
{ [] foaf:name ?name ;
site:hits ?hits .
}
ORDER BY desc(?hits)
LIMIT 2
Результат:
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:x foaf:name "Alice" .
_:y foaf:name "Eve" .
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. Влияние Solution Modifiers на CONSTRUCT
Данные:
Приложения могут использовать форму ASK для тестирования, имеет ли шаблон
запроса решение. Никакая информация о возможных решениях запроса не
возвращается, просто выполняется проверка наличия решения.
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK { ?x foaf:name "Alice" }
Yes
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK { ?x foaf:name "Alice" ;
foaf:mbox <mailto:[email protected]> }
no
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SPARQL. Примеры. ASK
@prefix foaf:
<http://xmlns.com/foaf/0.1/> .
_:a foaf:name
"Alice" .
_:a foaf:homepage <http://work.example.org/alice/> .
_:b foaf:name
"Bob" .
_:b foaf:mbox
<mailto:[email protected]> .
Правила и OWL. RuleML  SWRL.
Слоёный пирог
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Выразительность
Слой правил
SWRL
Слой
онтологий
OWL-DL
Концептуализация
предметной области
20.07.2015
27
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Пример
680 р.
Корзина
Покупка1
100 р.
Покупка2
Покупка3
230 р.
350 р.
Цена всех покупок есть сумма цен каждой покупки
Такой вывод в OWL не поддерживается
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. SWRL
SWRL сочетает
OWL(Lite\DL) и RuleML
Пример
hasPrice(?x1,?p1) &
hasPrice(?x2,?p2) &
lessThan(?p1,p2) =>
isCheaper(?x1,?x2)
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Перекрывание классической логики и
логических программ
(1)
(2)
(3)
FOL:
(4)
(5)
(6)
(7)
(Все за исключением (6)),
(2)+(3)+(4): DLs
(4): Description Logic Programs (DLP),
(3): Classical Negation
(4)+(5): Horn Logic Programs,
(4)+(5)+(6): LP
(6): Non-monotonic features (like NAF, etc.)
(7): ^head and, ∨body
20.07.2015
30
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Эволюция
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Разрешимость
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Предистория. Datalog
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Пример правила в SWRL
hasPrice(?x1,?p1) & hasPrice(?x2,?p2) & lessThan(?p1,p2) =>
isCheaper(?x1,?x2)
В абстрактном синтаксисе это правило можно записать в виде:
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Пример правила в RDF
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Архитектура
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила. Модифицированная архитектура
Хранилище
отнологий
OWL
T-box, A-box
Изменение
онтологий
SPARQL
правила
Машина
вывода
SPARQL
запросы
SWRL
Интерфейс
пользователя
SPARQL
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
SWRL





Расширение аксиом OWL добавлением
формул Хорна
Максимальная совместимость с OWL
Встроенный в OWL (такая же
семантика)
Общая формула:
a1 ∧ … ∧ an ← b1 ∧ . . . ∧ bk
Ограничения


20.07.2015
Отрицание, логическое сложение (или)
Неразрешимость
38
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Пример правила в RuleML
Отношение может быть n-арным (n= 0, 1, 2, : : : ) в RuleML.
Пример: Покупатель обладает правом скидки, если он в
предыдущий год потратил 20000 рублей.
head (унарное отношение): Покупатель обладает правом скидки.
body (триарное отношение): он заплатил . . .
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила с многими атомами в Antecedent
Скидка для покупателя продукта равна 5% если покупатель
привелегированный, продукт сезонный.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Абстрактный синтаксис
axiom ::= rule
rule ::= 'Implies(' [ URIreference ] { annotation } antecedent consequent ')'
antecedent ::= 'Antecedent(' { atom } ')'
consequent ::= 'Consequent(' { atom } ')‘
atom ::= description '(' i-object ')'
| dataRange '(' d-object ')'
| individualvaluedPropertyID '(' i-object i-object ')'
| datavaluedPropertyID '(' i-object d-object ')'
| sameAs '(' i-object i-object ')'
| differentFrom '(' i-object i-object ')'
| builtIn '(' builtinID { d-object } ')'
builtinID ::= URIreference
i-object ::= i-variable | individualID
d-object ::= d-variable | dataLiteral
Выражение правил без использования SWRL
Некоторые правила можно выражать используя только DL:
т.е. правила в этих случаях являются «синтактическим сахаром»
Предыдущее SWRL’s правило:
FastComputer(?c)  Computer(?c) ^ hasCPU(?c;
?cpu)^hasSpeed(?cpu; ?sp) ^ HighSpeed(?sp)
Это правило используя только DL может быть выражено в виде:
Computer  hasCPU.
hasSpeed:HighSpeed
FastComputer
Перевод правил из SWRL в DL зависит от числа переменных в
разделяемых переменных между consequent и antecedent



Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Правила в SWRL, но не в дескриптивной логике
Некоторые нетривиальные правила можно переводить из SWRL в DL,
но в SWRL можно использовать правила которые нельзя
сформулировать в дескриптивной логике
Пример:
hasUncle(?nephew; ?uncle) 
hasParent(?nephew; ?parent) ^ hasBrother(?parent; ?uncle)
Такое правило нельзя перевести в дескриптивную логику:
• две разных переменных в consequent
Хотя нельзя сделать вывод о том, что hasUncle(Bob; Bill) следует из
свойств hasParent(Bob; Mary) и hasBrother(Mary; Bill), отношение
hasUncle можно использовать явно или неявно.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Примером правил является случай когда из пары свойств hasParent
и hasBrother следует свойство hasUncle. Неформально можно
записать:
hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)
В абстрактном синтаксисе:
Implies(Antecedent(hasParent(I-variable(x1) I-variable(x2))
hasBrother(I-variable(x2) I-variable(x3)))
Consequent(hasUncle(I-variable(x1) I-variable(x3))))
Из этого правила следует, что если у матери Вани с именем Маша
есть брат Коля, то у Вани есть дядя Коля.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Анализ примеров. Примеры правил
Пример 4.1-1 Правило (Антецедент Р(х,у)&Q(y,z), Консиквент
R(х,z))
Из более простого правила следует, что Студенты являются
Персонами, как в Student(?x1) ⇒ Person(?x1).
Implies(Antecedent(Student(I-variable(x1)))
Consequent(Person(I-variable(x1))))
Такое использование правил дублирует возможности свойства
subclassOf. Логично было бы описать так
Class(Student partial Person)
or
SubClassOf(Student Person)
что дает возможность для автоматического вывода в OWL.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Анализ примеров. Примеры правил
Пример 4.1-2 Правило (Антецедент С(х), Консиквент С(х))
Общим использованием для правил является перенесение
значений свойстваот одного индивида к другому, связанному с ним.
Пример выражает факт того, что стиль объекта искусства является
стилем присущим его создателю.
Artist(?x) & artistStyle(?x,?y) & Style(?y) & creator(?z,?x) ⇒
style/period(?z,?y)
Implies(Antecedent(Artist(I-variable(x))
artistStyle(I-variable(x) I-variable(y))
Style(I-variable(y))
creator(I-variable(z) I-variable(x)))
Consequent(style/period(I-variable(z) I-variable(y))))
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Анализ примеров. Примеры правил
Пример 4.1-3
Пример 4.1-4
Artist(?x) & (≤1 artistStyle)(?x) & creator(?z,?x) ⇒ (≤1
style/period)(?z)
Implies(Antecedent(Artist(I-variable(x))
(restriction(artistStyle maxCardinality(1)))(I-variable(x))
Style(I-variable(y))
creator(I-variable(z) I-variable(x)))
Consequent((restriction(style/period maxCardinality(1)))(Ivariable(z))))
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Анализ примеров. Примеры правил
Полезно включать OWL описания в правила, вместо
использования поименованных классов. Предыдущее правило
можно уточнить в части указании уникальности стиля.
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Анализ примеров. RDF синтаксис
Запись примера 5.1-2 в RDF/XML синтаксисе:
Пример 6.1-1
<swrl:Variable rdf:ID="x1"/>
<swrl:Variable rdf:ID="x2"/>
<swrl:Variable rdf:ID="x3"/>
<ruleml:Imp>
<ruleml:body rdf:parseType="Collection">
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&eg;hasParent"/>
<swrl:argument1 rdf:resource="#x1" />
<swrl:argument2 rdf:resource="#x2" />
</swrl:IndividualPropertyAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&eg;hasSibling"/>
<swrl:argument1 rdf:resource="#x2" />
<swrl:argument2 rdf:resource="#x3" />
</swrl:IndividualPropertyAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&eg;hasSex"/>
<swrl:argument1 rdf:resource="#x3" />
<swrl:argument2 rdf:resource="#male" />
</swrl:IndividualPropertyAtom>
</ruleml:body>
<ruleml:head rdf:parseType="Collection">
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&eg;hasUncle"/>
<swrl:argument1 rdf:resource="#x1" />
<swrl:argument2 rdf:resource="#x3" />
</swrl:IndividualPropertyAtom>
</ruleml:head>
</ruleml:Imp>
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года
Анализ примеров. RDF синтаксис
This example is a repetition of Example 5.1-3 using RDF/XML syntax:
Пример 6.1-2
<swrl:Variable rdf:ID="x"/>
<swrl:Variable rdf:ID="y"/>
<swrl:Variable rdf:ID="z"/>
<ruleml:Imp>
<ruleml:body rdf:parseType="Collection">
<swrl:ClassAtom>
<swrl:classPredicate rdf:resource="&ulan;Artist"/>
<swrl:argument1 rdf:resource="#x" />
</swrl:ClassAtom>
<swrl:ClassAtom>
<swrl:classPredicate rdf:resource="&aat;Style"/>
<swrl:argument1 rdf:resource="#y" />
</swrl:ClassAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&aatulan;artistStyle"/>
<swrl:argument1 rdf:resource="#x" />
<swrl:argument2 rdf:resource="#y" />
</swrl:IndividualPropertyAtom>
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&vra;creator"/>
<swrl:argument1 rdf:resource="#x" />
<swrl:argument2 rdf:resource="#z" />
</swrl:IndividualPropertyAtom>
</ruleml:body>
<ruleml:head rdf:parseType="Collection">
<swrl:IndividualPropertyAtom>
<swrl:propertyPredicate rdf:resource="&vra;style/period"/>
<swrl:argument1 rdf:resource="#z" />
<swrl:argument2 rdf:resource="#y" />
</swrl:IndividualPropertyAtom>
</ruleml:head>
</ruleml:Imp>
Вопросы ?
20.07.2015
50
Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года