Краткие сведения о спецификациях семантической паутины

URI (IRI)

Каждая сущность (ресурс), описываемая в онтологии, должна иметь уникальный идентификатор. Для этого используются URI или IRI. Отличие последнего заключается в возможности использования символов национальных алфавитов при указании имени ресурса за счет поддержки Unicode.

В общем случае структура URI (IRI) выглядит следующим образом:

URI = [схема ":"] ["//"] иерархическая-часть ["?" запрос] ["#" фрагмент]

Схема указывает на используемый сетевой протокол (http, ftp, file, mailto) или раздел (пространство имен) онтологии (xml, rdf, rdfs, owl).

Иерархическая часть содержит путь к ресурсу в виде сетевого адреса (www.gosuslugi.ru, www.co-ode.org/ontologies/pizza/pizza.owl, 127.0.1.01:80) или идентификатор ресурса в заданном пространстве имен (C:/Windows/explorer.exe, [email protected], Class, Thing). При онтологическом представлении знаний обычно указывает на расположения файла с онтологией (www.co-ode.org/ontologies/pizza/pizza.owl) или предопределенное ключевое слово используемой онтологической спецификации (Class, Thing).

Запрос содержит данные, организованные в неиерархической форме, которые, вместе с данными в иерархической части, служат для идентификации ресурса. В онтологиях обычно не используется.

Фрагмент позволяет осуществить косвенную идентификацию ресурса. Совместно со схемой и иерархической частью представляет полный идентификатор сущности (например, понятия или его экземпляра в конкретной онтологии). Пример полного идентификатора понятия (класса) Food в прикладной онтологии pizza.owl

http://www.co-ode.org/ontologies/pizza/pizza.owl#Food

В семантической паутине используются четыре стандартных пространства имен.

Таблица 4

Стандартные пространства имен

Спецификация Обозначение пространства имен URI
XML xsd http://www.w3.org/2001/XMLSchema#
RDF rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#
RDFS rdfs http://www. w3. org/2000/01/rdf-schema#
OWL owl http://www. w3. org/2002/07/owl#

Использование стандартного или определенного разработчиком онтологии пространства имен позволяет сократить описание идентификаторов сущности. В частности, в онтологии вместо указания полного идентификатора концептуального понятия Class спецификации OWL «http://www.w3. org/2002/07/owl#Class» достаточно указать «own:Class».

RDF, RDFS и OWL

RDF и OWL – языки представления информации (знаний), которые могут использоваться для описания онтологий как в семантической паутине, так и в различных прикладных информационных системах. RDFS является надстройкой над RDF и определяет его базовые конструкции (ресурс, класс, подкласс, тип данных, домен и т. п.). Если проводить аналогию с базами данных, то RDFS позволяет задать структуру БД, а RDF наполнить ее содержимым. OWL полностью включает в себя RDF и расширяет его возможности. В прикладных OWL-онтологиях значительная часть описания выполнена с помощью конструкций RDF и RDFS.

Как было отмечено выше, в качестве синтаксических конструкций для описания RDF- и OWL-онтологий используются различные способы. Наиболее распространенным является XML-описание в связи с широким распространением и поддержкой XML в большинстве современных языков программирования. В то же время оно является наиболее громоздким и трудночитаемым для человека. Более компактным и читабельным является формат JSON-LD. JSON стремительно набирает популярность и уже сейчас составляет серьезную конкуренцию XML. Другие способы описаний онтологий (Turtle, N-Triples, N-Quads и TriG), несмотря на компактность и читабельность, значительно проигрывают в популярности и поддержке со стороны разработчиков программного обеспечения.

Базовым элементом языка RDF является тройка (триплет, аксиома), которая состоит из субъекта, предиката и объекта.

Рис. 9. RDF-тройка «субъект – предикат – объект»

Предикат (свойство) представляет собой бинарное отношение между субъектом и объектом. В зависимости от контекста одна и та же сущность онтологии может выступать в любом из перечисленных качеств. Т.е. в одной тройке сущность может быть субъектом, в другой – предикатом, а в третьей – объектом.

Первые два элемента RDF-тройки (субъект и предикат) обязательно идентифицируются при помощи URI. Объект может быть как сущностью, идентифицируемой при помощи URI, так и RDF-литералом (строкой, числом, датой и т. п.).

Примеры определения RDF-троек для онтологии с пространством имен learning (нотация Turtle):

· определение класса:

learning:человек rdf:type rdfs:Class ;

· определение подкласса:

learning:студент rdfs:subClassOf learning:человек ;

· определение свойств:

learning:имя rdf:type owl:DatatypeProperty ,

learning:фамилия rdf:type owl:DatatypeProperty ;

· создание экземпляра подкласса (индивида):

learning:студент1 rdf:type learning:студент ;

· связывание свойств с индивидами и указание их значений:

learning:студент1 learning:имя "Вася" ;

learning:фамилия "Иванов" .

В последнем примере использовано объединение RDF-троек для случая совпадения субъектов.

Несмотря на очевидные аналогии между RDF и объектно-ориентированным программированием (ООП), между ними имеется одно принципиальное различие. В ООП свойство (атрибут) определяется внутри класса и является его неотъемлемой составляющей. В RDF свойства определяются независимо от классов и могут связываться с ними с помощью RDF-троек в произвольном, но не лишенном смысла порядке. Так, одно и то же свойство («Возраст») может быть связано с различными классами или их экземплярами («Человек», «Автомобиль», «Семья»). Более того, экземпляры одного и того же класса могут обладать разными наборами свойств. Это предоставляет более гибкие возможности при определении классов по сравнению с ООП, но при этом может привести к «размыванию» самого понятия «класс».

В RDF/RDFS определены базовые классы, которые при создании прикладной онтологии выступают в качестве фундамента для определения классов и экземпляров предметной области. При описании RDF-троек базовые классы указываются в качестве объекта, т.е. в третьей позиции. В табл. 5 приводится список классов RDF/RDFS (http://www.w3.org/TR/rdf-schema).

Таблица 5

Классы RDF/RDFS

Класс Описание
rdfs:Resource Класс-ресурс, включает «всё»
rdfs:Literal Класс литеральных значений (например, текстовых строк или чисел)
rdf:langString Класс строковых литералов, интерпретация которых зависит от выбранного языка или системы кодирования
rdf:HTML Класс HTML-литералов
rdf:XMLLiteral Класс XML-литералов

Окончание табл. 5

Класс Описание
rdfs:Class Класс классов
rdf:Property Класс RDF-свойств
rdfs:Datatype Класс типов данных RDF
rdf:Statement Класс утверждений RDF
rdf:Bag Класс контейнеров с неупорядоченными элементами
rdf:Seq Класс контейнеров с упорядоченными элементами
rdf:Alt Класс контейнеров с элементами-альтернативами
rdfs:Container Класс RDF-контейнеров
rdfs:ContainerMembership Класс свойств «членства» в контейнерах: rdf:_1, rdf:_2, ..., все они являются подсвойствами свойства rdfs:member
rdf:List Класс RDF-списков

В том же документе определены базовые свойства, которые выступают в качестве предикатов RDF-троек (табл. 6).

Таблица 6

Свойства RDF/RDFS

Свойство Описание
rdf:type Субъект является экземпляром класса
rdfs:subClassOf Субъект является подклассом класса
rdfs:subPropertyOf Субъект является подсвойством свойства
rdfs:domain Домен свойства субъекта
rdfs:range Диапазон свойства субъекта
rdfs:label Человекочитаемое название субъекта
rdfs:comment Текстовое описание ресурса
rdfs:member Член ресурса субъекта
rdf:first Первый элемент списка
rdf:rest Оставшийся за первым элементом «хвост» списка
rdfs:seeAlso Дополнительная информация о субъекте
rdfs:isDefinedBy Определение ресурса субъекта
rdf:value Свойство, используемое для структурированных значений
rdf:subject Субъект RDF-утверждения
rdf:predicate Предикат RDF-утверждения
rdf:object Объект RDF-утверждения

OWL является дальнейшим развитием RDF/RDFS. Спецификация OWL определяет абсолютно новый синтаксис записи онтологий – функционально-ориентированный. При этом остается возможность записи онтологий в RDF-стиле. На рис. 10 приведены связи и взаимозаменяемость (двунаправленной стрелкой) между классами OWL и RDF/RDFS (http://www.w3.org/TR/owl2-rdf-based-semantics).

L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAYidITsQA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbESPzW7CMBCE70i8g7VIvYFTDginGIQqqNoL4qcPsI23 SUS8jmyTpG9fIyFxHM3MN5rVZrCN6MiH2rGG11kGgrhwpuZSw/dlP12CCBHZYOOYNPxRgM16PFph blzPJ+rOsRQJwiFHDVWMbS5lKCqyGGauJU7er/MWY5K+lMZjn+C2kfMsW0iLNaeFClt6r6i4nm9W w4/36qB2qjfHbXbdL5z8mH91Wr9Mhu0biEhDfIYf7U+jYakU3M+kIyDX/wAAAP//AwBQSwECLQAU AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4 bWwueG1sUEsBAi0AFAAGAAgAAAAhAGInSE7EAAAA3AAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA= " fillcolor="white [3201]" strokecolor="black [3200]" strokeweight="1pt">

rdfs : Literal
owl : Thing
owl : Ontology
rdfs : Resource
owl : ObjectProperty
owl : DataTypeProperty
owl : OntologyProperty
owl : AnnotationProperty
owl : Datatype
rdfs : Property
rdfs : Class
owl : Class

Рис. 10. Часть иерархии OWL в RDF-ориентированной семантике

Совокупность RDF-троек позволяет описать онтологию для конкретной предметной области. Ее можно визуализировать в виде ориентированного RDF-графа, если субъекты и объекты отобразить в виде узлов, а предикаты – в виде дуг. На рис. 11 представлен фрагмент такого RDF-графа для обучающей онтологии http://www.owl-ontologies.com/travel.owl.

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 11. RDF-граф

2.3. Лабораторная работа № 4
Построение онтологической модели в Protégé.
Создание классов

Цель работы: создание классов онтологической модели в Protégé.

Рекомендации по выполнению работы

Создание и разработка онтологий с помощью некоторых из указанных выше языков, а также выполнение SPARQL-запросов возможны в редакторе Protégé (http://protege.stanford.edu) (рис. 12).

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 12. Редактор онтологий Protégé

Перед созданием онтологии настраивается отображение в окне программы необходимых вкладок (рис. 13).

Назначение вкладок:

· Active Ontology – отображение IRI, общих характеристик (количества аксиом, классов, свойств, объектов и т. п.) и аннотации онтологии;

· Classes – просмотр и редактирование классов;

· Object Properties – просмотр и редактирование свойств-отношений между индивидами;

· Data Properties – просмотр и редактирование свойств-данных индивидов;

· Individuals by class – просмотр и редактирование экземпляров классов (индивидов);

· OWLVis и OntoGraf – визуализация онтологии в виде графа;

· SPARQL Query – выполнение запросов.

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 13. Выбор отображаемых вкладок

Классы создаются на вкладке «Classes». Добавить новый (удалить имеющийся) класс или подкласс можно с помощью кнопок панели инструментов или выбора пункта контекстного меню[14] (рис. 14).

В OWL базовым классом, на основе которого создаются классы онтологии, является класс «owl:Class». Остальные классы по отношению к нему являются дочерними подклассами (англ. Subclass). Классы одного уровня иерархии в Protégé называются родственными (англ. Sibling Class).

На вкладке «Применение» (англ. Usage) для класса, выделенного в иерархии, отображается его связь с родительскими и дочерними классами, его свойства, экземпляры и т. п.

Панель инструментов
Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 14. Вкладка «Classes»

В правой нижней панели «Описание» (англ. Description) можно указать дополнительные характеристики класса. Например, его эквивалентность другим классам (англ. Equivalent To) или невозможность принадлежности экземпляров класса другим классам (англ. Disjoint With) – запрет множественного наследования.

Свойства классов и их экземпляров (предикаты RDF-троек) делятся на два вида:

· свойства-отношения задаются на вкладке «Object Properties» и определяют некоторые отношения между двумя индивидами (экземплярами классов), т. е. субъектом и объектом RDF-тройки будут индивиды;

· свойства-данные задаются на вкладке «Data Properties» и определяют некоторые фактические характеристики индивидов (экземпляров классов), т. е. субъектом RDF-тройки будет индивид, а объектом значение характеристики в виде строки, числа, даты и т. п.

Создание и редактирование свойств-отношений выполняется на вкладке «Object Properties» (рис. 15).

Домен (англ. Domain) указывает, экземпляры каких классов в RDF-тройке при использовании данного свойства будут выступать в качестве субъектов, а диапазон (англ. Range) – в качестве объектов.

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 15. Вкладка «Object Properties»

На панели «Характеристики» (англ. Characteristics) выбираются дополнительные характеристики свойства: транзитивность (англ.Transitive), симметричность (англ. Symmetric), рефлексивность (англ. Reflexive) и т.п.

Создание и редактирование свойств-данных выполняется на вкладке «Data Properties».

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 16. Вкладка «Data Properties»

Краткие сведения о спецификациях семантической паутины - student2.ru   Рис. 17. Окно выбора типа данных
Домен указывает, для экземпляров каких классов данное свойство может быть использовано. Диапазон задает область допустимых значений (тип данных и ограничения), которые можно указывать для данного свойства экземпляру класса. Тип данных выбирается из стандартных типов XML (рис. 17).

Автоматическое построение и отображение графа онтологии и взаимосвязей между классами выполняется при выборе вкладок «OWLViz» и «OntoGraf».

а б
Краткие сведения о спецификациях семантической паутины - student2.ru Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 18. Варианты графического отображения онтологии: а – OWLViz; б – OntoGraf

Перед записью на диск (пункт меню «File / Save as …») можно выбрать формат (нотацию) хранения онтологии (рис. 19).

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 19. Выбор формата хранения онтологии

Задание на выполнение работы

А. Построить онтологическую модель в редакторе Protégé, включающую не менее 10 классов и подклассов. Для каждого класса и подкласса определить 1–2 свойства-отношения и 2–10 свойств-данных.

Б. Предметная область онтологии выбирается по индивидуальному заданию:

1) автомобили;

2) самолеты;

3) железная дорога;

4) флора;

5) фауна;

6) искусственный интеллект;

7) информационные системы;

8) библиотека;

9) персонал компании;

10) медицина;

11) строительство;

12) астрономия;

13) физика;

14) путешествия;

15) населенные пункты;

16) география;

17) гаджеты;

18) вооруженные силы;

19) книжный магазин;

20) недвижимость;

21) печатное издательство;

22) гостиница;

23) авиакомпания;

24) рекламное агентство;

25) игровая индустрия.

В. Отчет должен содержать:

· титульный лист;

· описание задания;

· копии экранов программы (по одной с описанием класса, свойства-отношения и свойства-данных);

· граф онтологии (OWLViz или OntoGraf);

· текст онтологии, сохраненной в формате «Turtle Syntax»;

· вывод.

2.4. Лабораторная работа № 5
Построение онтологической модели в Protégé.
Создание экземпляров классов

Цель работы:создание экземпляров классов онтологической модели
в Protégé.

Рекомендации по выполнению работы

Экземпляры классов в онтологии называются индивидами (англ. Individual). Аналогичным понятием в ООП является объект, но в RDF (OWL) оно зарезервировано за одним из элементов RDF-тройки. В RDF-тройке индивид указывается в качестве субъекта, класс – объекта. Связь между индивидом и классом, представителем которого он является, задается пре­ди­катом «rdf:type».

Создание и редактирование индивидов выполняется на вкладке «Individuals by class».

Панель инструментов
Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 20. Вкладка «Individuals by class»

Для добавления индивида необходимо в верхней левой панели «Иерархия классов» (англ. Class hierarchy) выбрать класс, которому он принадлежит, а в панели инструментов нижней левой панели «Экземпляр» (англ. Instances) нажать на первую кнопку. После этого в появившемся окне необходимо указать его имя.

В нижней правой панели «Прикрепленные свойства» (англ. Property assertions) для индивида отображаются его свойства-отношения и свойства-данные.

Для их добавления необходимо нажать на иконку серого круга с плюсом после надписи «Object property assertions» («Data property assertions») и в появившемся окне (рис. 21 и 22) определить свойство.

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 21. Окно добавления свойства-отношения

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 22. Окно добавления свойства-данных

После добавления индивидов граф онтологии на вкладке «OntoGraf» можно существенно расширить (рис. 23).

Узлы, помеченные желтыми кружками, являются классами и подклассами онтологии, фиолетовыми ромбами – индивидами. В части дуг графа приняты следующие обозначения:

· синяя сплошная линия – связь между родительским и дочерним классами;

· фиолетовая сплошная линия – связь между классом и индивидом;

· штриховая линия – свойство-отношение между индивидами классов.

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 23. Частичный граф онтологии

Задание на выполнение работы

А. В онтологической модели по варианту, выбранному в лабораторной работе № 4, определить для каждого класса 2–5 индивидов. Для каждого индивида задать 2–5 свойств-отношения/свойств-данных.

Б. Отчет должен содержать:

· титульный лист;

· описание задания;

· копии экранов программы с описанием двух индивидов разных классов;

· граф онтологии OntoGraf;

· текст онтологии, сохраненной в формате «RDF/XML»;

· вывод.

2.5. Лабораторная работа № 6
Выполнение SPARQL-запросов в Protégé

Цель работы:Выполнение SPARQL-запросов в Protégé.

Рекомендации по выполнению лабораторной работы

По аналогии с базами данных для RDF и OWL онтологических моделей возможно выполнение запросов с целью извлечения знаний, содержащихся в них.

Запрос начинается с ключевого слова «SELECT», после которого указываются:

· переменные, отображаемые в результатах запроса;

· условие «WHERE», задающее ограничения (правила) на выборку результатов.

Переменные, используемые в запросе должны начинаться со знака «?».

Условие может включать в себя несколько RDF-троек (подусловий), после каждой из которых ставится «.». Считается, что такие подусловия соединены конъюнкцией (логическим И). В условие могут включаться дополнительные конструкции (графовые шаблоны):

· FILTER – ограничение на значения переменных;

· OPTIONAL – допущение отсутствия значения для переменной в RDF-тройке;

· UNION – объединение результатов нескольких частей запроса (объединение дизъюнкцией (логическим ИЛИ)).

В запросе можно указать дополнительные параметры (модификаторы) (табл. 7).

Таблица 7

Модификаторы

Модификатор Положение Назначение
DISTINCT после слова SELECT гарантирует уникальность решений (исключает дублирование результатов)
REDUCED после слова SELECT предписывает выдачу всех решений, включая повторы
ORDER BY после раздела WHERE {} сортировка решений (результатов)
OFFSET <n> после раздела WHERE {} предписывает исключить из выборки n первых решений
LIMIT <n> после раздела WHERE {} ограничивает количество выдаваемых решений

Выполнение запросов осуществляется на вкладке «SPARQL Query» (рис. 24).

Префикс онтологии
Запрос
Результаты запроса
Запуск запроса на выполнение
Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 24. Вкладка «SPARQL Query»

Перед выполнением запросов рекомендуется указать сокращенное имя (префикс) онтологии, чтобы в дальнейшем не было необходимости указания полного IRI для ее элементов (классы, свойства, индивиды).

На рис. 24 показан стандартный запрос, отображаемый при первом открытии данной вкладки. Он предписывает вывести все подклассы (переменная ?subject) для всех классов (переменная ?object), определенных в онтологии.

Ниже приводятся несколько запросов с использованием модификаторов и графовых шаблонов (рис. 25, 26).

Показать фамилию, имя и группу 3 студентов (LIMIT 3), пропустив первых 2 (OFFSET 2), в виде отсортированного списка по фамилии (ORDER BY ASC(?fam)).

Показать фамилию, имя и номер квартиры студентов, у которых этот номер меньше 40 (FILTER (?number < 40)).

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 25. Запрос с модификаторами

Краткие сведения о спецификациях семантической паутины - student2.ru

Рис. 26. Запрос с графовым шаблоном

Задание на выполнение работы

А. Протестировать в Protégé с помощью SPARQL-запросов онтологическую модель, разработанную по варианту, выбранному в лабораторной работе № 4.

Б. Отчет должен содержать:

· титульный лист;

· описание задания;

· копии экранов программы с 5–7 SPARQL-запросами, содержащими модификаторы и графовые шаблоны;

· вывод.

Контрольные вопросы

1. Дайте определение понятия «онтология».

2. Перечислите основные языки онтологического представления знаний.

3. Перечислите основные составляющие (типы элементов) онтологии.

4. Опишите структуру URI(IRI).

5. Перечислите нотации для описания онтологий RDF/RDFS и OWL.

6. Дайте характеристику RDF-тройки.

7. Назовите основные отличия представления предметной области с помощью онтологий RDF/RDFS и языков объектно-ориентированного программирования.

8. В чем заключается отличие свойств-отношений от свойств-данных в RDF/RDFS?

9. Для чего используется SPARQL?

10. Перечислите основные элементы (разделы) SPARQL-запроса.

ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ

Наши рекомендации