Semantic Web и продукционная модель знаний

Содержание

Слайд 4

OWL RDF

OWL RDF

OWL RDF OWL RDF

Слайд 5

RDF

Horst, H. J. Combining RDF and Part of OWL with Rules:

RDF Horst, H. J. Combining RDF and Part of OWL with Rules:
Semantics, Decidability, Complexity.
etc

Hayes

Слайд 6

RDF

Horst, H. J. Combining RDF and Part of OWL with Rules:

RDF Horst, H. J. Combining RDF and Part of OWL with Rules:
Semantics, Decidability, Complexity.
etc

Hayes

Sesame
Virtuoso

Слайд 7

Логическая модель

Логическая модель

Слайд 8

Логическая модель

Pallet
Hawk
Racer
Fact

Логическая модель Pallet Hawk Racer Fact

Слайд 9

Логическое программирование

Логическое программирование – общее название для языков программирования, программы которых состоят

Логическое программирование Логическое программирование – общее название для языков программирования, программы которых
из продукций.
Prolog
Datalog
Числа Фибоначчи:
F(0,0)
F(1,1)
F(X+Y,N+2) :- F(X,N), F(Y,N+1), N>1
?F(X,100)

Слайд 10

Стратегии вычисления продукций

Forward-chaining, (bottom-up)
Последовательное применение продукций к фактам, а

Стратегии вычисления продукций Forward-chaining, (bottom-up) Последовательное применение продукций к фактам, а затем
затем и к комбинациям
фактов и выведенных фактов
Достоинства:при ответе на запрос не требуется никакого логического вывода
Недостатки: генерация избыточного количества фактов
(попробуйте посчитать числа Фибоначчи)
Backward-chaining, (top-down)
Сначала целью вывод объявляется запрос пользователя.
Ризонер пытается найти факты для текущей цели, если их нет,
то ищется продукции, которые могут быть использованы для текущей цели.
Найденная продукция объявляется текущей целью вывода и процесс повторяется.
Преимущества: нет порождения избыточных фактов
Недостатки: для сложных графов вычисления не эффективны,
некоторые цели могут проходится много раз.

Слайд 11

Что еще можно делать с продукциями?

Мы используем комбинированную стратегию. При этом применяются

Что еще можно делать с продукциями? Мы используем комбинированную стратегию. При этом
продукции к фактам, но мы ограничиваем множество всех продукций, только теми, которые могут быть действительно необходимы для ответа на запрос.
Существуют разные способы это сделать:
Алгоритм magic set
Стратификация
Алгоритм Rete
Переупорядочивание продукций
Мы используем зависимость продукций по предикатам

Слайд 12

Граф зависимости продукций

Запрос:
?a(x)
Продукции:
R1: a(x) :- p(x), q(x)
R2: p(y) :- p1(y)
R3: p(k) :-

Граф зависимости продукций Запрос: ?a(x) Продукции: R1: a(x) :- p(x), q(x) R2:
p1(k)
R4: q(z) :- q1(z)

Слайд 13

Генерация SQL

Предикат p(x) опрделеляет множество :
Select * from F where F.s

Генерация SQL Предикат p(x) опрделеляет множество : Select * from F where
like “P”
Join
a(x) :- p(x), q(x)
p(x) – S1
q(x) – S2
Select * from S1 join S2
Union
p(y) :- p1(y) //S3
p(k) :- p2(k) //S4
Select * from S3 union S4
Вложенный подзапрос:
S1 = S3 union S4 = Select * from (Select * from S3 union S4)

Слайд 14

Генерация продукций

Продукции => SQL

+ Совмещение SQL запросов с семантическими к реляционной СУБД

Генерация продукций Продукции => SQL + Совмещение SQL запросов с семантическими к реляционной СУБД

Слайд 15

Генерация продукций

Продукции => SQL

+ Совмещение SQL запросов с семантическими к реляционной СУБД

SPARQL

Генерация продукций Продукции => SQL + Совмещение SQL запросов с семантическими к
=>

+ Инфраструктура для семантических приложений

Слайд 16

Генерация продукций

Продукции => SQL

+ Совмещение SQL запросов с семантическими к реляционной СУБД

SPARQL

Генерация продукций Продукции => SQL + Совмещение SQL запросов с семантическими к
=>

+ Инфраструктура для семантических приложений

+ Быстрая инфраструктура для семантических приложений:
на 20% быстрее, чем Jess (Rete)