'

Языки запросов для OWL

Понравилась презентация – покажи это...





Слайд 0

Языки запросов для OWL Фазлиев А.З. (ИОА СО РАН)


Слайд 1

Содержание Эволюция языков запросов в подходе Semantic Web Запросы над RDF. SPARQL. Анализ примеров применения. Правила и OWL. RuleML ? SWRL. Анализ примеров применения. Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 2

Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 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 запроса. Язык запросов должен допускать неполноту или противоречивость информации.


Слайд 3

Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 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 Свойства языка запросов - Выразительность Выразительность показывает насколько мощным может быть запрос в данном языке. Типичным является то, что язык должен обеспечивать средства предлагаемые реляционной алгеброй. Обычно выразительность ограничивает реализацию других свойств, таких как безопасность и эффективное выполнение запросов. - Замыкание Свойство замыкания требует чтобы результаты операции были элементами модели данных. Это означает, что если язык запросов оперирует с графами, то ответы на запросы должен быть графами. Адекватность Язык запросов называется адекватным если он использует все концепты, относящиеся к модели данных. Это свойство дополняет свойство замыкания. Для замыкания результат запроса не должен быть за пределами модели данных, а для адекватности – необходимо использовать все концепты модели данных. - Ортогональность Ортогональность языка запросов требует, чтобы все операции можно было использовать независимо от контекста использования. - Безопасность Язык запросов считается безопасным, если каждый синтаксически корректный запрос возвращает конечное множество результатов (на конечном множестве данных). Типичными концептами наоушающими безопасность являются рекурсия, отрицание и встроенные функции.


Слайд 4

Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 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 и описание структуры высказывания очень слабая. Т.к. эти черты характеризуют модель данных, степень адекватности этих языков низкая.


Слайд 5

Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 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 связаны с правилами.


Слайд 6

04.03.2015 7 Два Semantic Web? Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 7

04.03.2015 8 Правила Правила основаны на подмножестве логики первого порядка + возможных расширения Формализм базовых правил (в Semantic Web): Semantic Web Rule Language (SWRL) Answer Set Programming (ASP) (Datalog?¬) Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 8

04.03.2015 9 Почему нам нужны онтологии и правила? Онтологии основаны на дескриптивных логиках (и являются частью классической логики). Web открытая среда. Многократное использование / интероперабельность. Онтология является моделью которую легко понять. Правила являются частью логического программирования. Ради достижения разрешимости языки онтологий не позволяют достигнуть необходимой выразительности (например, конструирование составных свойств). С помощью правил достигается большая выразительность. Существует эффективная поддержка логического вывода. Правила хорошо известны в практике. Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 9

04.03.2015 10 Правила + Онтологии Все ещё не решенная задача! Существуют разные подходы: SWRL, DLP (Grosof), dl-programs (Eiter), DL-safe rules, Conceptual Logic Programs (CLP), AL-Log, DL+log. 2 главные стратегии: Семантическая интеграция (Однородные подходы) Строгое семантическое разделение (Гибридные подходы) Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 10

04.03.2015 11 Однородный подход Как онтологии так и правила содержатся в логическом языке. Нет различия между предикатами правил и предикатами онтологий. Правила можно использовать для определения классов и свойств онтологии. Примеры: SWRL, DLP Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 11

04.03.2015 12 Гибридный подход Интеграция со строгим семантическим разделениеммежду двумя слоями. Онтология используется как концептуализация предметной области. Правила не могут определять классы и свойства онтологии за исключением некоторых специальных отношений. Пример: Answer Set Programming (ASP) ? Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 12

Запросы над RDF. SPARQL Поиск RDF данных Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года RDF граф может содержать значительное число утверждений, но как можно найти и манипулировать данными находящимися в графе и представляющими для пользователей? SPARQL


Слайд 13

Что такое запрос? Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года Запрос - это вопрос. Ответ на него требует понимания: RDF граф Запрос Запрашиваемая вещь Отношение между ними SPARQL


Слайд 14

Общая структура оператора выборки в языке 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 года


Слайд 15

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. Типы запросов


Слайд 16

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 года SPARQL. Типы запросов


Слайд 17

Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 18

Данные: <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> "SPARQL Tutorial" . Запрос: SELECT ?title WHERE { <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title . } Этот запрос, выполненный над вышеприведенными данными, имеет единственное решение: Результат запроса: "SPARQL Tutorial" Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года SPARQL. Примеры. CONSTRUCT. Написание простого запроса


Слайд 19

Данные: @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Johnny Lee Outlaw" . _:a foaf:mbox <mailto:jlow@example.com> . _:b foaf:name "Peter Goodguy" . _:b foaf:mbox <mailto:peter@example.org> . _:c foaf:mbox <mailto:carol@example.org> . Запрос: 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" <mailto:jlow@example.com> "Peter Goodguy" <mailto:peter@example.org> Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года SPARQL. Примеры. CONSTRUCT. Множественные соответствия


Слайд 20

В 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 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-графов


Слайд 21

Данные: @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-термина


Слайд 22

Шаблон может создать 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. Шаблоны с безымянными вершинами


Слайд 23

Данные: @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


Слайд 24

Приложения могут использовать форму 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:bob@work.example> . 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:alice@work.example> } no Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года SPARQL. Примеры. ASK


Слайд 25

Правила и OWL. RuleML ? SWRL. Слоёный пирог Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 26

04.03.2015 27 Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 27

Правила. Пример Цена всех покупок есть сумма цен каждой покупки Такой вывод в OWL не поддерживается Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 28

Правила. SWRL SWRL сочетает OWL(Lite\DL) и RuleML Пример hasPrice(?x1,?p1) & hasPrice(?x2,?p2) & lessThan(?p1,p2) => isCheaper(?x1,?x2) Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 29

04.03.2015 30 Перекрывание классической логики и логических программ (1) (7) (6) (5) (4) (3) (2) FOL: (Все за исключением (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 Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 30

Правила. Эволюция Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 31

Правила. Разрешимость Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 32

Правила. Предистория. Datalog Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 33

Правила. Пример правила в SWRL hasPrice(?x1,?p1) & hasPrice(?x2,?p2) & lessThan(?p1,p2) => isCheaper(?x1,?x2) В абстрактном синтаксисе это правило можно записать в виде: Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 34

Правила. Пример правила в RDF Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 35

Правила. Архитектура Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 36

Правила. Модифицированная архитектура Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 37

04.03.2015 38 SWRL Расширение аксиом OWL добавлением формул Хорна Максимальная совместимость с OWL Встроенный в OWL (такая же семантика) Общая формула: a1 ? … ? an < b1 ? . . . ? bk Ограничения Отрицание, логическое сложение (или) Неразрешимость Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 38

Пример правила в RuleML Отношение может быть n-арным (n= 0, 1, 2, : : : ) в RuleML. Пример: Покупатель обладает правом скидки, если он в предыдущий год потратил 20000 рублей. head (унарное отношение): Покупатель обладает правом скидки. body (триарное отношение): он заплатил . . . Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 39

Правила с многими атомами в Antecedent Скидка для покупателя продукта равна 5% если покупатель привелегированный, продукт сезонный. Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


Слайд 40

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 Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года Абстрактный синтаксис


Слайд 41

Выражение правил без использования 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 года


Слайд 42

Правила в 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 года


Слайд 43

Пример 4.1-1 Правило (Антецедент Р(х,у)&Q(y,z), Консиквент R(х,z)) Примером правил является случай когда из пары свойств 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 года Анализ примеров. Примеры правил


Слайд 44

Пример 4.1-2 Правило (Антецедент С(х), Консиквент С(х)) Из более простого правила следует, что Студенты являются Персонами, как в 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 года Анализ примеров. Примеры правил


Слайд 45

Пример 4.1-3 Общим использованием для правил является перенесение значений свойстваот одного индивида к другому, связанному с ним. Пример выражает факт того, что стиль объекта искусства является стилем присущим его создателю. 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 года Анализ примеров. Примеры правил


Слайд 46

Пример 4.1-4 Полезно включать OWL описания в правила, вместо использования поименованных классов. Предыдущее правило можно уточнить в части указании уникальности стиля. 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)))(I-variable(z)))) Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года Анализ примеров. Примеры правил


Слайд 47

Запись примера 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 синтаксис


Слайд 48

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> Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года Анализ примеров. RDF синтаксис


Слайд 49

04.03.2015 50 Вопросы ? Второй симпозиум «Онтологическое моделирование: состояние, направления исследований и применения», Казань, 11-12 октября 2010 года


×

HTML:





Ссылка: