КУРС «Базы данных»

advertisement
Курс «Экспертные системы»
Лекция № 2
КУРС «Экспертные системы»
***
Тема 1 «OWL язык описания онтологий для Web»
Лапшин В. А.
Онтологии в компьютерных системах.
М.: Научный мир, 2010.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 1
Курс «Экспертные системы»
Лекция № 2
Хотя термин «онтология» изначально философский, в информатике
он принял самостоятельное значение. Здесь есть два существенных
отличия:


Онтология в информатике должна иметь формат, который
компьютер сможет легко обработать;
Информационные онтологии создаются всегда с конкретными
целями — решения конструкторских задач; они оцениваются
больше с точки зрения применимости, чем полноты.
Необходимость в OWL
Рассмотрим OWL (Web Ontology Language — Язык Онтологии
Web) — язык, созданный для описания онтологии Web (World Wide
Web).
World Wide Web — это система связанных друг с другом с
помощью гиперссылок документов, которые можно получить через
Интернет.
Гипертекстовый документ отличается от обычного тем, что он
может содержать не только текст, но также и другую информацию:
рисунки, музыкальные и видеофайлы и т.п.
Такие документы можно просматривать с помощью специальной
программы — Web-браузера.
Рассмотрим наследника World Wide Web —так называемого
умного Web, или Semantic Web
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 2
Курс «Экспертные системы»
Лекция № 2
Необходимость в OWL
Semantic Web представляет собой следующее поколение World
Wide Web, в котором кроме гипертекстов содержатся описания
семантики этих документов, а также описания семантики
различных сервисов, предоставляющих эти документы конечным
пользователям.
Такие описания должны быть понятны не только людям, но и
компьютерам, иначе толку от таких описаний немного. Понимание
содержимого Web документов компьютерами дает программам
проводить более точный поиск информации в Web, автоматически
систематизировать эту информацию, а также обмениваться такой
информацией с другими программами.
Обычно, Semantic Web описывается как компонент грядущей
версии Web —так называемого Web 3.0.
Необходимость в OWL
Описание семантики Web в полной мере соответствует
определению онтологии, данному в предыдущей лекции.
Все онтологии Web имеют один и тот же смысловой оттенок,
который диктует цель написания этих документов — публикация
информации в Сети.
С этой точки зрения, все онтологии конкретных документов и
сервисы Web могут быть объединены в единую онтологию —
онтологию Web. Язык OWL, как представляется его авторам,
предназначен, главным образом, для описания этой онтологии.
Конечно, OWL можно использовать и для описания других
онтологий, как мы увидим далее, разработан даже специальный
редактор Protege, позволяющий удобно набирать информацию
относительно содержимого онтологий, описанных на языке OWL.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 3
Курс «Экспертные системы»
Лекция № 2
Язык XML
Основным элементом языка XML является так называемый тэг —
последовательность символов, которая используется
непосредственно для разметки документа. Тэг представляет собой
имя, заключенное в угловые скоби, например: <name>. Различают
начальный (start-tag) и заключающий (end-tag) тэги. Заключающий
тэг должен иметь то же имя, что и его начальный, но это имя
должно предваряться косой чертой.
<name>содержимое тэга</name>
Язык XML
Содержимое тэга —это обычно простой текст (который может быть
пустым),
а также может иметь и более сложную структуру. Начальные тэги
могут
иметь атрибуты, которые представляют собой пары вида (имя,
текст), и используются для задания дополнительной информации
отмечаемому участку текста.
<termdef id="dt-dog" tern="dog">
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 4
Курс «Экспертные системы»
Лекция № 2
Язык XML
Тэги могут вкладываться друг в друга, т.е. в содержимом
одного тэга может присутствовать другой. Таким
образом, можно задавать сложные структуры XML
документов.
<tag1>
<tag2>
</tag2>
</tag1>
Язык XML
Таким образом, XML-документ представляется деревом, элементы
которого-это тэги и размечаемые им участки текста, вершина
дерева отмечена главным тэгом документа.
<user-list>
<user id="1"
fname="Иван" sname="Брусенко"
age="39" sex="Мужской"/>
<user id="2"
fname="Шамиль" sname="Талимов"
age="37" sex="Мужской"/>
<user id="3"
fname="Татьяна" sname="Волковa"
age="23" sex="Женский"/>
</user-list>
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 5
Курс «Экспертные системы»
Лекция № 2
Язык XML
Раньше язык XML использовался для разметки документов,
которая была бы понятна компьютерам.
Сейчас XML используется для преобразования уже
структурированных данных в последовательную (текстовую)
форму и обратно. Это новое качество использования языка диктует
к нему новые требования.
Язык XML
Поэтому язык XML был существенно переработан, в языке
появились типы, различные форматы представления данных
различных типов и другие необходимые для передачи данных
свойств
Также определение структуры документа на более подходящий
способ, носящий название XML-схема (XML-schema). Схема
представляет собой определение структуры данных, которые
передаются в данном XML-документе, причем это определение
задается на языке XML.
В схеме документа можно задать новые типы, можно использовать
уже определенные в схеме самого языка XML. Схемы можно
хранить распределено в разных местах Интернет и загружать их по
мере необходимости.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 6
Курс «Экспертные системы»
Лекция № 2
Язык RDF
RDF (Resource Description Framework - Среда Описания
Ресурсов) представляет собой язык, позволяющий описывать
информацию, расположенную и Web.
В Semantic Web, когда говорят о каких-то сущностях Web,
называют эти сущности ресурсами.
RDF
представляет
собой
язык
для
описания
таких ресурсов.
Язык RDF
Главный элемент языка RDF - это тройка, или триплет.
Тройка представляет собой совокупность трех сущностей:
1. Субъект.
2. Объект.
3. Предикат.
Предикаты еще часто называют свойствами. Тройка имеет также
графическое представление в виде связи узел-дуга-узел:
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 7
Курс «Экспертные системы»
Лекция № 2
Язык RDF
Если необходимо хранить информацию о пользователях, то тройка
может представлять конкретное значение атрибута пользователя.
Имя атрибута выступает в качестве предиката, субъект - это
экземпляр класса «user», а объект это конкретное значение
свойства.
В
нашем
примере
в
качестве
уникального
идентификатора экземпляра класса «user» можно использовать его
атрибут «id». Тройка (fname,1,«Иван») представляет конкретное
значение атрибута «fname» экземпляра с идентификатором «1»
класса «user».
Язык RDF
С математической точки зрения, тройка представляет собой
экземпляр некоторого бинарного отношения.
Язык RDF основан на математическом аппарате дескриптивной
логики .
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 8
Курс «Экспертные системы»
Лекция № 2
Язык RDF
Ввиду того, что RDF предполагается использовать для описания
ресурсов, распределенных по разным участкам Web, необходимо
как-то решить проблему идентификации имен узлов и ребер RDF
графа, т.е. элементов троек.
Дли этого используется стандартный подход: каждый элемент
описывается посредством так называемого Унифицированного
Идентификатора Ресурса (URI - Uniform Resource Identifier).
Обычно URI представляет собой либо URL (Унифицированный
Указатель Ресурса — Uniform Resource Locator|), содержащий
информацию о местонахождении данного ресурса в Web, либо URN
(Унифицированное Имя Ресурса — Uniform Resource Name),
Позволяющего идентифицировать данный ресурс в некотором
пространстве имен.
Пространство имен представляет собой просто поименованное
множество имен и используется, чтобы обеспечить уникальность
этих имен в Web.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 9
Курс «Экспертные системы»
Лекция № 2
Язык RDF
URI позволяют также ссылаться на одни и те же сущности
Web из разных RDF- документов. В Semantic Web
используются три стандартных пространства имен:
• rdf. В этом пространстве имен задаются имена, которые
используются в RDF. URI для этого имени:
http://www.w3.org/1999/02/22-rdf-syntax-ns#
• rdfs. Здесь задаются имена, используемые в RDF
Schema. Его URI http://www.w3.Org/2000/01/rdf-schema#.
• owl Описываются имена, используемые в OWL. URI
для этого имени http://www.w3.org/2002/07/owl#
Чаще всего в RDF используются имена rdf :type, rdf:
isInstanceOf и rdf: Property. Поясним, как они
используются, на примере пользователей.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 10
Курс «Экспертные системы»
Лекция № 2
Схема RDF
Схема RDF (RDF Schema, RDFS) представляет собой
расширение языка RDF, позволяющее описывать простые
онтологии данных, находящихся в хранилищах RDF.
Так же как схема базы данных описывает структуру базы
данных в виде заголовков таблиц и связей между ними,
схема RDF позволяет описывать структуру RDF хранилища.
Структура описывает в терминах типов и отношений между
ними.
Схема RDF
В RDFS определен класс всех классов, который
обозначается как rdfs:Class.
Каждый класс задается как экземпляр класса классов
usr:user rdf:type rdfs:Class .
Говорит о том, что «usr:user» является экземпляром класса
rdfs:Class всех классов и, следовательно, классом.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 11
Курс «Экспертные системы»
Лекция № 2
Схема RDF
Свойства. В RDFS также существует класс всех свойств,
обозначаемый как rdf:Property.
Все свойства являются экземплярами этого класса, а сам он,
и свою очередь, является экземпляром класса rdfs:Class.
Схема RDF
Для того чтобы сказать, что значения некоторого свойства
являются экземплярами некоторого класса, т.е. чтобы задать
типы свойств, используется свойство
rdfs:range
Выражение
p rdfs:range С
Означает, что Р — это экземпляр класса rdf:Property, а С —
экземпляр класса rdfs:Class, и что все ресурсы, входящие в
качестве объектов в тройки, предикат которых — это
свойство Р, являются экземплярами класса С.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 12
Курс «Экспертные системы»
Лекция № 2
Схема RDF
Если rdfs:range позволяет задать тип значений, которые
будет принимать некоторое свойство, то свойство
rdfs:domain
позволяет задать класс, чьим атрибутом является данное
свойство.
Выражение
Р rdfs:domain С
Говорит о том, что Р - это экземпляр класса rdf:Property, а С
—экземпляр класса rdfs:Class, и что все ресурсы, входящие
в качестве субъектов в тройки. предикат которых это
свойстно Р, являются экземплярами класса С.
Схема RDF
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 13
Курс «Экспертные системы»
Лекция № 2
Схема RDF
Свойство rdfs:subClassOf представляет собой аналог
наследования в ООП
Выражение
C1 rdfs:subClassOf С2
означает, что тип С1 является подтипом типа С2, т.е. что
каждый экземпляр класса С1 является также и экземпляром
класса С2.
Если множество пар одного свойства является
подмножеством пар другого свойства, то можно ввести
соотношение вида «свойство—подсвойство». В RDFS это
делается с помощью свойства rdfs:subPropertyOf.
Выражение
P1 rdfs:subPropertyOf P2
говорит о том, что P1 и Р2 —это экземпляры класса rdf:
Property, и если есть тройка R1 P1 R2, то обязательно есть и
тройка R1 Р2 R2. Отношение rdfs:subPropertyOf является
транзитивным.
Идеология OWL
OWL построен как расширение RDF и RDFS. Это означает,
что базовый синтаксис языка по-прежнему представляет
собой XML, а основная конструкция это тройка языка RDF.
В этом контексте язык OWL можно рассматривать как
расширенный вариант RDFS, позволяющий не только
описывать Классы и свойства, но также задавать
ограничения на их использование. На языке дескриптивной
логики это означает, что логика, лежащая в основе OWL,
содержит кроме описания отношений также и аксиомы,
задающие coотношения между данными отношениями и
различного рода ограничения на последние.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 14
Курс «Экспертные системы»
Лекция № 2
Основы языка OWL
Классы
Базовым элементом языка OWL является класс всех
классов, определяемый как owl:Class.
Класс owl:Class — это экземпляр класса rdfs:Class,
рассмотренного нами выше. Следовательно, любой OWL
класс должен быть задан как экземпляр класса owl: Class.
Например, если мы хотим определить класс Human
(человек), то должны определить тройку
Human rdf:type owl:Class
которая в XML синтаксисе будет выглядеть следующим
образом:
<owl:Class rdf:ID="Human"/>
Основы языка OWL
В языке OWL присутствуют два предопределенных
класса:
• Класс owl:Thing (сущность), который обозначает
множество всех индивидов.
• Класс owl:Nothing (ничто), обозначающий пустое
множество.
Каждый класс OWL является дочерним классом класса
owl:Thing и родительским классом класса owl:Nothing.
Следовательно, дерево наследования в OWL образует так
называемую полную решетку.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 15
Курс «Экспертные системы»
Лекция № 2
Основы языка OWL
Наследование классов в языке OWL задается с помощью
конструкции rdfs:subClassOf, т.е. точно гак же, как и в языке
RDF Schema. Как и RDF Schema, тот факт, что один класс
является дочерним классом другого, означает, что все
экземпляры дочернего класса являются экземплярами
родительского класса.
Основы языка OWL
Свойства
В OWL существует разделение свойств на два класса:
Объектные свойства используются для связывания
индивидов друг с другом. Объектные свойства-это
экземпляры класса
owl: ObjectProperty
Свойства типов данных связывают индивидов с так
называемыми значениями типов данных (data values). Под
значениями здесь подразумеваются RDF литералы или типы
данных, определенные в XML Schema. Свойства типов
данных – это экземпляры класса owl:DatatypeProperty
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 16
Курс «Экспертные системы»
Лекция № 2
КУРС «Экспертные системы»
***
Тема 2 «Выполнение SPARQL-запросов средствами Protege 4»
ЯЗЫК ЗАПРОСОВ SPARQL
Обычно используется термин Хранилище RDF (RDF Store) для графа ,
ребра которого имеют ориентацию и помечены предикатами. Вершины
графа: субъекты и объекты.
Хранилище RDF выглядит как специфичным образом структурированная
база данных. Получение данных из реляционной базы данных производится
посредством задания запроса на языке SQL.
Подобный подход практикуется и для Хранилищ RDF.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 17
Курс «Экспертные системы»
Лекция № 2
ЯЗЫК ЗАПРОСОВ SPARQL
Консорциум W3 выбрал из множества диалектов
языка запросов язык SPARQL («спаркл»).
SPARQL – это рекурсивный акроним, который
расшифровывается как SPARQL Protocol and RDF
Query Language (SPARQL Протокол и Язык Запросов
RDF).
ЯЗЫК ЗАПРОСОВ SPARQL
Основным элементом SPARQL запроса является шаблон тройки
(triple pattern). Шаблон тройки – это тройка RDF в которой вместо
субъекта, предиката или объекта могут находиться переменные.
Переменные
обозначают
идентификаторами,
которые
начинаются со знака вопроса «?».
?user usr:fname “Иван”.
usr:user2 usr:sname ?name.
?user usr:fname ?name.
Каждая тройка заканчивается точкой.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 18
Курс «Экспертные системы»
Лекция № 2
ЯЗЫК ЗАПРОСОВ SPARQL
Вывести все экземпляры класса user, у которых usr:fname равно “Иван”.
Какое значение свойства usr:sname у экземпляра usr:user2?
Вывести все значения свойства usr:fname у всех экземпляров класса user
в хранилище.
Для ответа на эти вопросы анализатор запроса (SPARQL query engine)
произведет поиск в хранилище RDF и выведет все тройки, у которых на
месте переменных могут быть любые значения, а на других местах те же
ресурсы, что указаны в запросе.
ЯЗЫК ЗАПРОСОВ SPARQL
Обычно для поиска используют шаблоны графов. Шаблон графа
представляет собой множество шаблонов троек, с тем условием, что
переменные с одинаковыми именами должны подставляться в одни и
те же значения во всех тройках шаблона. Шаблон графа заключается в
фигурные скобки.
{
?user usr:fname “Иван”.
?user usr:sname ?sname.
}
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 19
Курс «Экспертные системы»
Лекция № 2
ЯЗЫК ЗАПРОСОВ SPARQL
Выводит все фамилии пользователей, у которых имя – это «Иван», а также
имена объектов, у которых usr:fname – это «Иван».
ЯЗЫК ЗАПРОСОВ SPARQL
Шаблоны графов можно логически комбинировать. Ключевое слово UNION
используется в качестве логического ИЛИ.
{
{
{?user usr:fname "Иван" .}
UNION
{?user usr:fname "Татьяна"
}
{?user usr:sname ?sname .}
}
Запрос выводит фамилии тех пользователей, имена которых «Иван» или
«Татьяна».
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 20
Курс «Экспертные системы»
Лекция № 2
ЯЗЫК ЗАПРОСОВ SPARQL
Запросы на языке SPARQL имеют четыре формы: select,
construct, ask, describe.
Инструментальные средства онтологий
ЯЗЫК ЗАПРОСОВ SPARQL
Select. Возвращает в качестве результата множество
значений переменных,которые последние принимают на
множестве троек, найденных по запросу.
select ?user ?sname
where
{
?user usr:fname "Иван" .
?uner usr:sname ?sname .
}
Выдаст в качестве результата таблицу
user
sname
"userl" "Брусенко"
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 21
Курс «Экспертные системы»
Лекция № 2
ЯЗЫК ЗАПРОСОВ SPARQL
Construct. Возвращает в качестве результата граф RDF, состоящий
из всех троек, описываемых данным запросом.
Construct {?user usr: sname ?sname}
where
{
{?user usr:fname "Иван" .}
UNION
{?user usr:fname "Татьяна" .}
}
Даст в результате
usr:user1 usr:sname "Брусенко" .
usr:user3 usr:sname "Волкова" .
Шаблон графа, который будет возвращен в качестве результата,
задается после ключевого слова «construct». Шаблон графа
запроса, как обычное условие запроса, специфицируется ключевым
словом «where».
ЯЗЫК ЗАПРОСОВ SPARQL
Ask Эту форму SPARQL запроса можно использовать для
того, чтобы проверить, есть ли в данном хранилище RDF
тройки, удовлетворяющие шаблону графа этого запроса.
Если таковые имеются, то возвращается «да», в противном
случае возвращается «нет». Никакой другой информации не
возвращается. Например, запрос
ask {?user usr:sname "Путин"}
для хранилища из примера даст и результате «нет», а
запрос
ask {?user usrrename "Галимов"}
напечатает «да».
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 22
Курс «Экспертные системы»
Лекция № 2
ЯЗЫК ЗАПРОСОВ SPARQL
Describe. Эта форма SPARQL запроса используется, чтобы
получить описание структуры данного хранилища RDF.
Формат возвращаемого результата определяется
анализатором запроса, а не задается пользователем, как
в запросах формы «construct». Можно получить информацию
о структуре всего хранилища или о структуре какого-то
его подграфа, это задается в шаблоне графа запроса.
Подробно эту форму запроса мы рассматривать не будем.
ЯЗЫК ЗАПРОСОВ SPARQL
Консорциум W3 также определил стандартную XML форму
результатов SPARQL запросов. Формат описан в
специальном документе под названием
«Формат XML результатов на SPARQL запросы»
SPARQL Query results XML Format. http://www.w3.org/TR/rdf-sparql-XMLres/
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 23
Курс «Экспертные системы»
Лекция № 2
Выполнение SPARQL-запросов средствами Protege 4
1. Выполнение запроса “по умолчанию”
В случае если закладка “SPARQL Query” не отображается, выполните
Window/Tabs/SPARQL Query, как показано на рис.
Выполнение SPARQL-запросов средствами Protege 4
Перейдите на закладку «SPARQL Query». На закладке представлен образец запроса по
умолчанию:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?subject ?object
WHERE { ?subject rdfs:subClassOf ?object }
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 24
Курс «Экспертные системы»
Лекция № 2
Выполнение SPARQL-запросов средствами Protege 4
Нажмите кнопку “Execute” для выполнения запроса. Результат запроса показан на рис.
В результате выполнения запроса переменной ?subject в соответствие будут установлены
классы, для которых характерно наличие свойства subClassOf. То есть классы, которые
являются потомками для других классов
Выполнение SPARQL-запросов средствами Protege 4
SELECT, CONSTRUCT, DESCRIBE, ASK, ORDER BY, DISTINCT, OFFSET, LIMIT.
При формировании каждого запроса используется шаблон
“субъект” => “предикат” => “объект”.
Переменные составляющие запроса обозначаются с помощью знака ? перед названием.
Возможны запрос, где все три компонента являются переменными.
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 25
Курс «Экспертные системы»
Лекция № 2
Выполнение SPARQL-запросов средствами Protege 4
Выполнить запрос, чтобы получить все возможные варианты троек : субъект
предикат объект.
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?subject ?predicat ?object
WHERE { ?subject ?predicat ?object. }
Выполнение SPARQL-запросов средствами Protege 4
© НИЯУ МИФИ Кафедра «Информатика и процессы управления», 2014 стр. 26
Download