Знание - прибыль!

Компьютерные технологии для отнологического моделирования. RDF и OWL

Эта страница представляет собой главу из нашего методического пособия
"Введение в онтологическое моделирование"
(нажмите для перехода к полной версии пособия в формате PDF).

Семантические технологии (Semantic Web) – это набор способов представления и использования информации в электронном виде. Лучше всего понять их сущность можно в сравнении с другими способами представления информации.

Наиболее естественным и привычным для нас является потоковое представление (текст, изображения, видео, звуки). Представленная в потоковом виде информация – это сигнал, для расшифровки и воспроизведения которого используются специальные аппаратные и программные средства. Как правило, программное обеспечение не анализирует содержимое (смысл) такого сигнала, полностью возлагая задачу его интерпретации на пользователя. Несколько особняком стоит текстовое представление: текст может анализироваться при помощи статистических и иных методов, которые облегчают поиск и структурирование информации в нем. Общим признаком, объединяющим все варианты потокового представления информации, является то, что воспринять ее в целостности может только человек.

Для обработки структурированной информации используется реляционное представление (таблицы, базы данных). Суть этого подхода состоит в разделении информации на метаданные, описывающие тип и формат информационных элементов, и собственно данные, несущие сведения о конкретных объектах, явлениях, их свойствах. Как правило, информация представляется в табличном виде. Каждая таблица хранит сведения о каком-либо типе объектов или явлений. Таблица состоит из столбцов, каждый из которых хранит информацию о каком-либо свойстве или связи объекта. Описания таблиц и столбцов являются метаданными, а их содержимое – данными. Наличие метаданных дает возможность строить программные алгоритмы обработки данных, то есть перекладывать часть задач по и обработке информации на вычислительную машину.

Семантические технологии представляют собой следующий шаг в развитии машинно-читаемых представлений информации. Они дают возможность воплотить в электронном виде семантические модели, построенные по принципам, описанным в предыдущем разделе, позволяют передавать содержащуюся в этих моделях информацию, и автоматически обрабатывать ее, в том числе – получать логические выводы на основании имеющихся в модели аксиом.

Технологическое воплощение семантических технологий несет на себе отпечаток истории их возникновения. Их развитие началось с идеи Semantic Web, семантической паутины, предложенной Tim Berners-Lee, одним из основателей Интернета. Суть идеи состояла в том, чтобы помимо потоковых данных (текста, изображений, видео), которые в основном образуют содержание всемирной сети, добавить туда публикацию информации, представленной в виде семантических моделей. Это сделает возможным машинную обработку такой информации, и произведет революцию в механизмах поиска в Интернете, что, конечно, будет иметь очень серьезные экономические последствия. Именно поэтому, на наш взгляд, практическая реализация идеи Semantic Web тормозится вот уже более десяти лет. Успехи на этом поприще свелись к разработке нескольких микроформатов – крайне ограниченных онтологий, позволяющих публиковать на сайтах некоторую информацию в машинно-читаемом виде (адреса, сведения о товарах), и опять же крайне ограниченной поддержке этих микроформатов поисковыми машинами. Это можно сравнить с изобретением и разработкой микропроцессоров только для того, чтобы создавать на них исключительно устройства, управляющие, например, движением лифтов. Очевидно, что реальное создание семантической паутины глубоко противоречит интересам известных поисковых машин, одним из основных источников доходов которых является контекстная реклама; полноценный семантический поиск сделал бы такую рекламу ненужной, и убил бы весь рынок.

Однако, благодаря усилиям энтузиастов семантической сети, мы получили набор технологий, принятых в виде рекомендаций или стандартов W3C, и набор open source программного обеспечения, на котором можно решать задачи, далекие от довольно узких целей Semantic Web. Потенциал этих технологий, на наш взгляд, серьезно недооценен. Тем интереснее разрабатывать методы их практического применения.

Итак, рассмотрим состав "технологического стека" Semantic Web.

Прежде всего, необходим базисный способ выражения информации, представленной в семантических моделях. Таким способом стал триплет (triple) – синтаксическая структура, состоящая из трех элементов:

Подлежащее Сказуемое Дополнение

Конечно, названия трем элементам триплета мы дали произвольно, но они отражают их суть. Подлежащее - это всегда объект модели. Сказуемое – свойство, значение которого мы хотим задать для этого объекта. Наконец, дополнение может быть или литералом (числовым, строковым значением), или другим объектом. Разумеется, объекты и свойства задаются их уникальными идентификаторами. Выбранные нами названия частей триплета удобны еще и потому, что соответствуют грамматической структуре простейшей фразы-утверждения в естественном языке, например: "Собака – является – животным".

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

Одним из краеугольных камней семантической модели являются уникальные идентификаторы объектов. В Semantic Web принято, чтобы эти идентификаторы имели вид URI – универсальных идентификаторов ресурсов, стандартизированных для сети Интернет. Таким образом, все идентификаторы в семантических моделях получают вид:

http://имя-хоста/онтология#идентификатор

Нужно понимать, что такой способ записи идентификаторов – чистая условность. Идентификатор не имеет никакого отношения к протоколу http, "имя-хоста" может быть вымышленным и не соответствовать ни одному реально существующему сайту, названия онтологии и последняя (уникальная) часть идентификатора формируются произвольно, да и символа # перед идентификатором может не быть. В общем, URI вполне можно воспринимать просто как строку, которая формируется по определенному шаблону исключительно для обеспечения читаемости человеком.

Существуют общепринятые онтологии, например, FOAF, предназначенная для выражения информации о персонах. Такие онтологии имеют собственное пространство имен (первую часть идентификатора – грубо говоря, "http://имя-хоста/онтология"; например, для FOAF пространство имен - http://xmlns.com/foaf/0.1/).

Следующий набор технологий, которые мы рассмотрим, применяются для сериализации онтологических моделей (т.е. для сохранения моделей в файлы). Здесь можно выделить логический и синтаксический уровень: логический уровень определяет принципы и правила передачи смыслового содержания онтологий, а синтаксический – способы преобразования этого смысла в последовательности символов.

Существуют несколько «языков» для записи семантических моделей, основными из которых являются RDF/RDFS и OWL. RDF/RDFS позволяют записывать простейшие факты об объектах, классах и свойствах. OWL описывает сложные взаимоотношения классов и свойств. Отношения между RDF/RDFS и OWL достаточно сложны: с одной стороны, OWL использует некоторые выражения предшествующих стандартов, такие как предикат принадлежности к типу (rdf:type); с другой стороны, он переопределяет такие их выражения, как тип сущности «класс» (owl:Class вместо rdfs:Class – здесь есть нюанс в определении класса для разных диалектов OWL); с третьей стороны, некоторые из таких переопределенных выражений используются реже, чем их аналоги из предшествующего стандарта: rdfs:subClassOf используется чаще, чем его аналог owl:subClassOf. В общем, на практике онтология обычно представляет собой смесь из выражений всех трех стандартов.

OWL имеет несколько «диалектов»: устаревший и очень упрощенный OWL Lite, наиболее часто используемый OWL DL (Description Logic), и богатый по возможностям OWL Full. Одно из различий между OWL DL и OWL Full состоит в том, что для OWL DL гарантируется вычислимость любого логического выражения, а для OWL Full – нет. С другой стороны, OWL Full позволяет, например, сделать какую-либо сущность классом и индивидуальным объектом одновременно, что бывает необходимо в сложных моделях. Далее нашем рассказе мы везде будем подразумевать использование OWL DL. Наконец, существует новая версия стандарта – OWL 2. В ней определены так называемые профили OWL, налагающие на возможности языка различные ограничения: OWL RL, OWL QL и др.

Стандартами предусмотрены разные синтаксисы, позволяющие сохранять OWL или RDF/RDFS в файл. Наиболее распространенным является хорошо известный XML. Используется также синтаксис Turtle, более лаконичный, и позволяющий легче «видеть» триплеты в коде.

Программное обеспечение для работы с RDF/RDFS/OWL включает редакторы, визуализаторы, а также машины логического вывода (английский термин – reasoner). Последние предназначены для того, чтобы проверять онтологии на наличие противоречий, а также автоматически делать выводы (т.е. продуцировать новые триплеты) на основании правил и имеющихся в модели фактов. Наиболее популярным свободно распространяемым редактором онтологий является Protégé.

Понятно, однако, что работать с моделями в файловом режиме крайне неудобно, а в многопользовательском режиме – практически невозможно. Поэтому существуют программные продукты класса Triple store – хранилища триплетов, функционирующие аналогично базам данных. Наиболее известные решения такого класса – Apache Jena, Virtuoso, Sesame, GraphDB и множество других. В том числе, создать triple store можно на основе Oracle 11g. Хранилища триплетов имеют программные интерфейсы, позволяющие обращаться к ним из различных средств программирования, использовать машины логического вывода. Существует также стандарт SPARQL, описывающий программный интерфейс и синтаксис запросов к онтологическим моделям; уже из его названия очевидна аналогия с языком SQL. Программный продукт, предоставляющий SPARQL-интерфейс к содержимому хранилища триплетов, называется точкой доступа SPARQL (SPARQL endpoint).

Хранилища триплетов реализуют импорт онтологий из файлов RDF/RDFS/OWL, но обычно не поддерживают экспорт в них. Также нужно отметить, что не все продукты одинаково реализуют правила конвертации из OWL в «чистые» триплеты (см. документ «OWL 2 Web Ontology Language Mapping to RDF Graphs»), поэтому результаты импорта OWL в хранилище триплетов зависят от программной реализации.

Еще одним интересным классом семантического ПО являются системы, поддерживающие работу с контролируемым естественным языком. Они позволяют записывать выражения, однозначно транслирующиеся в OWL, на подмножестве естественного языка (английского, русского и т.д.). На естественном языке можно и задавать запросы машине логического вывода. Правда, синтаксические правила контролируемого языка в современных реализациях получаются достаточно ограниченными. Примером такого продукта является FluentEditor от компании Cognitum. Существует и ПО, позволяющее восстанавливать онтологические модели из текста – например, ABBYY Compreno.

Следующая глава: Простые онтологические модели: создание классов. Редактор Protégé