- •Интеллектуальные информационные системы
- •Введение
- •1. Логика предикатов первого порядка
- •1.1. Основы логики предикатов первого порядка
- •1.2. Основы Пролога
- •Примеры использования дизъюнкции в Прологе
- •1.3. Назначение и основные возможности swi-Prolog
- •Некоторые операции и предикаты swi-Prolog
- •1.4. Лабораторная работа № 1 Представление фактов и правил в Прологе
- •1.5. Лабораторная работа № 2. Рекурсия в Прологе
- •1.6. Лабораторная работа № 3. Обработка списков в Прологе
- •Списки и их составные части
- •2. Онтологии
- •2.1. Онтологии и семантическая паутина
- •2.2. Краткие сведения о спецификациях семантической паутины
- •Стандартные пространства имен
- •Классы rdf/rdfs
- •Свойства rdf/rdfs
- •2.3. Лабораторная работа № 4 Построение онтологической модели в Protégé. Создание классов
- •2.4. Лабораторная работа № 5 Построение онтологической модели в Protégé. Создание экземпляров классов
- •2.5. Лабораторная работа № 6 Выполнение sparql-запросов в Protégé
- •Модификаторы
- •3. Эвристические алгоритмы
- •3.1. Методы поиска решений с использованием графов
- •Сравнительная характеристика методов
- •3.2. Лабораторная работа № 7 Решение оптимизационной задачи с использованием эвристического алгоритма
- •Характеристика дополнительных ограничений скорости и мероприятий по их устранению
- •Варианты заданий на выполнение лабораторной работы
- •4. Нечеткие множества
- •4.1. Основы теории нечетких множеств и нечеткой логики
- •4.2. Лабораторная работа № 8. Решение прикладной задачи с использованием нечетких множеств
- •5. Генетические алгоритмы
- •5.1. Эволюционные вычисления
- •5.2. Лабораторная работа № 9. Решение оптимизационной задачи с использованием генетического алгоритма
- •Исходная популяция
- •Популяция после скрещивания
- •Расчет значений целевой функции
- •Популяция после редукции
- •Варианты заданий
- •6. Искусственные нейронные сети
- •6.1. Распознавание образов
- •6.2. Лабораторная работа № 10. Распознавание образов с использованием искусственной нейронной сети
- •Варианты заданий на выполнение лабораторной работы
- •Заключение
- •Библиографический список
- •Оглавление
- •Интеллектуальные информационные системы
- •6 80021, Г. Хабаровск, ул. Серышева, 47
- •Интеллектуальные информационные системы
2.2. Краткие сведения о спецификациях семантической паутины
1. 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, Vasya@mail.ru, 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».
2. 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
