Новый язык, получивший название OWL, поможет запустить автоматизированные инструменты для глобальной сети нового поколения, предлагая такие усовершенствованные услуги, как более точный Web-поиск, интеллектуальные программные агенты и управление знаниями.
По словам Тима Бернерс-Ли, «основателя» WWW, Семантическая Сеть — развитие концепции существующей глобальной сети. Всей информации в ней придается четко определенное значение, что позволяет компьютерам и людям осуществлять совместную работу с гораздо большей эффективностью. Чтобы придать информации четко определенное значение нужно, в частности, создать язык онтологии, т. е. общий набор терминов, которые используются для описания и представления объектов в Internet. Именно для этого и создается язык OWL (Ontology Web Language), разработку которого одобрил консорциум W3C.
Языки семантической сети
Сегодня на переднем крае разработок в сфере Internet-стандартов находится Семантическая Сеть (Semantic Web, согласно терминологии W3C), архитектура которой предполагает наличие у любой информации, находящейся в сети, связанный с этой информацией точный смысл, который нельзя было бы перепутать даже в случае совпадения фраз или слов, встреченных в разных контекстах. Фактически это означает. что любая информация связана с некоторым неотделимым от нее контекстом. Семантическая Сеть активно использует язык XML для определения собственной структуры документов и язык RDF (Resource Definition Framework), предоставляющий удобную среду формализации метаданных и сведений о контексте. RDF создан консорциумом W3C и предназначен для описания метаданных, является подмножеством языка XML и имеет собственный язык RDF Schema для описания структуры документов. Однако RDF — это самый низкоуровневый из существующих языков описания метаданных, поскольку оперирует лишь понятиями связей примитивных сущностей, например, «объект A владеет субъектом Б». Со временем разработчикам Семантической Сети стало очевидно, что средств XML и RDF для представления информации и метаданных для построения полноценной семантически связанной сети недостаточно. RDF подобен ассемблеру, если сравнивать семантическую нагрузку отдельных конструкций языка, и слишком сложен для решения задачи подобного масштаба. Чистый XML, в свою очередь, являясь метаязыком, включает в себя RDF как подмножество, и не создан для какого-либо конкретного применения, а потому для построения семантической сети его также недостаточно. Поэтому консорциумом W3C и был создан язык онтологий OWL (Web Ontology Language).
Онтология определяет термины, с помощью которых можно описать предметную область. Использование онтологий особенно необходимо в приложениях-агентах, осуществляющих поиск и объединение информации из различных источников и из разных сред, в которых один и тот же термин может означать разные вещи. Несмотря на то, что DTD (Document Type Definition, формальное описание структуры XML-документов) в стандарте XML и схем XML (XML Schema) вполне достаточно для обмена данными между сторонами, которые заранее договорились о значении определений и терминов, отсутствие семантики в указанных средствах описания структуры серьезно ограничивает надежность выполнения задачи поиска и объединения данных при использовании новых XML-словарей. Например, элемент , встретившийся индексатору в разных документах, может означать либо курс валюты, либо оценку за экзамен, либо цену товара, или что-нибудь еще. И без точной информации о том, что именно в конкретном документе имеется в виду под этим элементом, поисковый агент не сможет со стопроцентной вероятностью вернуть именно то, что и требовалось пользователю.
Практически любой пользователь Сети хотя бы раз сталкивался с ситуацией, когда при поиске интересующей его информации он помимо прочего получал от поисковой машины множество бесполезных ссылок. Поскольку поиск информации осуществляется вне контекста, никакие уточнения запросов не смогут надежно найти именно то, что нужно. Для качественного осуществления поиска пользователю необходимо понимать все тонкости предметной области, включая ее лексику, термины, определения, иерархии сущностей — одним словом, досконально знать онтологию. Хорошо, если пользователь является экспертом предметной области, хотя даже в этом случае будет найдена лишняя информация, а что делать обычным пользователям? Язык OWL призван упростить процесс поиска, возложив необходимость знания предметной области и описание контекста поиска полностью на авторов документа и систему поиска, причем передача этих функций авторам документа должна быть незаметна для пользователя.
Онтология документа
Согласно принципам Семантической Сети, процесс создания электронных документов разбивается на две части: создание собственно документа, содержащего некоторые термины, и создание его онтологии. Онтология может описываться различными средствами и сегодня существует несколько языков описания онтологий, однако ввиду того, что в любой онтологии определяются термины и задаются логические связи между ними, точная семантика описываемых терминов и связей в различных языках будет одна и та же. Инженеры W3C справедливо заметили, что можно создать некоторый базисный язык, представляющий собой абстракцию языка онтологий и содержащий только логическую суть правил из онтологии. Такой язык уже создан и называется LBase — это исключительно математический язык, который опирается на аппарат математической логики и предикатов, и предназначен для машинных низкоуровневых логических выводов. Язык OWL записывает ту же самую онтологию, но более «человеческим» языком и в формате XML. Правила онтологии на этом языке можно записать примерно так: «Элемент A входит в коллекцию P, а коллекция P является собственностью объекта G». Предназначение OWL в том, чтобы интеллектуальные агенты, понимающие конструкции онтологии, могли работать с документами. Такие агенты предназначены для непосредственного контакта с пользователем и содержат системы логического вывода, которые оперируют вполне человеческими конструкциями вроде «Петя и Маша живут в доме № 7». Таким образом, получается, что правила, заданные в OWL, могут быть использованы только специальными системами вывода, понимающими язык описания семантики, и способными вычислять логические выводы, наподобие языка Пролог. Поскольку большая часть нагрузки Семантической Сети ложится на специальные поисковые машины, клиенту в большинстве случаев не понадобится иметь у себя какого-то специализированного программного обеспечения для работы с OWL.
Рассмотрим некоторые сценарии использования языка OWL, иллюстрирующие потребность в создании специального Web-языка онтологий. Поскольку онтология определяет термины конкретной области знаний, она должна описываться формальным языком, основанном на принципах математической логики. Тогда для классов объектов, их свойств и отношений между ними мы сможем сформулировать четкие, детализированные и целостные определения. В свою очередь, средства обработки онтологий смогут автоматически вывести некоторые заключения, основываясь на принципах математической логики. Идея эта не нова — несколько десятилетий назад на свет появился язык логического программирования Пролог для вывода из фактов, находящихся в базе знаний программы, новых фактов, опираясь на логические теоремы. Средства обработки онтологий могут предоставлять крайне полезные сервисы различным интеллектуальным приложениям: программам семантического поиска информации, программным агентам, системам принятия решений, системам распознавания речи и естественного языка, базам знаний, системам электронной коммерции.
OWL предоставляет три подмножества, имеющие различную степень детализации.
- OWL Lite предназначено для пользователей или приложений, которым необходима лишь классификационная иерархия сущностей и некоторые простые условия согласованности сущностей.
- OWL DL (Description Logic) рассчитано на пользователей, которым необходима максимальная степень выразительных возможностей языка без потери вычислительной полноты (без потери ни одного из семантических воплощений - содержательных толкований выводов, полученных формально-логическим путем) и разрешимости (вычисления будут закончены за конечное время). Уровень OWL DL ориентирован на существующие сегодня системы описания знаний и системы логического программирования.
- OWL Full рассчитано на пользователей, которым необходимы максимальные выразительные возможности языка и свобода выбора конечного формата RDF, но без каких-либо гарантий вычислительной полноты и разрешимости. OWL Full позволяет расширить смысл термина, взятого из какого-либо заданного словаря, и добавить его в онтологию.
Посмотрим теперь, как устроен язык OWL. Прежде чем использовать какое-либо множество терминов, необходимо точно указать словари. Название, или ссылка, на конкретный словарь терминов (онтологию) записывается в формате URI (unified resource identificator), что удобно, поскольку отпадает необходимость заведения дополнительной базы данных, содержащей имена всех онтологий — роль базы данных уникальных идентификаторов возлагается на распределенную базу данных доменных имен. Стоит особо подчеркнуть, что в базе не хранится информация об онтологиях — это просто удобный способ избежать коллизий имен. Это же имя будет служить пространством имен XML для используемой онтологии, поэтому в корневом XML-элементе файла онтологии объявляются все используемые онтологии как пространства имен:
После того, как определены пространства имен для онтологий, включается набор предположений об описываемой онтологии, сгруппированной внутри элемента . Также туда можно включить теги с комментариями, номерами версий и импортом других онтологий. Вот так выглядит типичное начало онтологии:
Онтология спиртных напитков на сайте site.org Онтология спиртных напитков ...
Элемент собирает внутри себя всю метаинформацию о документе. Его атрибут rdf:about содержит имя либо ссылку на описываемую онтологию. В случае если этот атрибут имеет пустое значение, что является стандартным случаем, имя онтологии будет соответствовать идентификатору URI пространства имен элемента .
Сценарии использования OWL
Web-порталы и корпоративные сайты
Портал позволяет пользователям, заинтересованным в конкретной тематике, получать новости, интерактивно общаться друг с другом, создавать виртуальные сообщества и т.п., причем простой индексации портала по рубрикам и тематикам для точного нахождения нужной информации по запросу может быть недостаточно. Для более интеллектуального обобщения разделов информации порталам необходимо определить свою онтологию, которая должна описывать терминологию, использующуюся в содержимом портала, и аксиомы, задающие правила использования этих терминов в контексте других терминов. Аксиомы также могут описывать новые термины, пользуясь уже определенными примитивными терминами из текущей или какой-либо другой онтологии. В сочетании с какими-либо фактами из предметной области из этих определений и аксиом можно вывести новые факты, которые, в свою очередь, могут быть получены пользователем при таком интеллектуальном поиске по порталу, но не могли быть получены ранее при обычном поиске. Например, если зарегистрированный пользователь портала ищет информацию о мышах, и в его регистрационных данных указано, что человек занимается компьютерами, то при хорошо спроектированной онтологии в процессе поиска больший приоритет будут иметь документы, содержащие информацию о компьютерных мышах, а не о грызунах. Разумеется, эффективность предложенной технологии зависит от создателей портала, публикующих информацию, поскольку им придется аннотировать все страницы метаинформацией, записанной на языке онтологий.
Онтологии весьма пригодились бы при систематизации данных на корпоративном портале для индексации и удобного поиска — несмотря на то, что многие крупные организации имеют собственную таксономию для организации внутренней информации, этого обычно недостаточно. Простая классификация сильно ограничивает возможности поиска и индексации, поскольку многие документы могут подпадать под разные категории, поэтому поиск по различным критериям будет намного эффективней, чем обычный поиск по ключевым словам. Кроме того, типичная проблема пользователей корпоративного портала состоит в невозможности пользования единой терминологией. Например, специалист из компьютерного отдела использует для описания какой-либо проблемы свой профессиональный жаргон, а специалист из отдела продаж плохо понимает полученный документ из-за того, что привык пользоваться другой терминологией. Разумеется, эта проблема решается другими средствами, но почти всегда создает дополнительную головную боль. В случае с OWL достаточно создать несколько онтологий терминов для различных типов пользователей, но со ссылками на соответствующие термины из других онтологий, чтобы одни термины могли транслироваться в другие автоматически.
Мультимедиа и разработка документации
OWL хорошо подходит для описания различных нетекстовых объектов, например, коллекций изображений, видео- или аудио-файлов. Очевидно, что для машины задача автоматического извлечения семантической метаинформации из мультимедиа-файлов пока неподъемна. С помощью OWL можно спроектировать систему описания содержимого мультимедиа-файлов, и затем осуществлять поиск, скажем, среди видеофайлов по их содержимому.
Документация бывает разных типов, каждый из которых имеет свою иерархическую структуру, использует свой набор перекрестных ссылок, который может быть задан как явно, так и неявно. Онтологии в этом случае уместно применять для построения единой информационной модели, чтобы в любой документации использовались четко определенные термины. Надо заметить, что онтология и таксономия (иерархическая классификация) не обязательно независимы, но вполне могут разрабатываться параллельно.
Интеллектуальные агенты
В Семантической Сети способны находиться агенты, осуществляющие поиск и объединение информации из различных источников, возможно даже из различных предметных областей. При построении какого-либо информационного сервиса в сети, информация может собираться из большого числа источников, например, порталов, сервисно-ориентированных сайтов, и т.п. Особенно актуальным это становится с появлением большого числа Web-служб.
Заключение
Язык онтологий OWL спроектирован для хранения и отображения большого количества разнородной информации и знаний, а также для поддержки семантики и связей между этими знаниями. В условиях, когда Internet уже насчитывает более 1 млрд. страниц, можно будет использовать интеллектуальных агентов Семантической Сети для упрощения и ускорения доступа к необходимой информации. Язык онтологий должны поддерживать системы формально-логических вычислений, на которых будет основана работа поисковых агентов. OWL предназначен для обмена метаинформацией между приложениями, практически избавляя пользователя от необходимости разбираться во всех тонкостях предметной области.
Петр Михаленко (peter@mikhalenko.ru) — разработчик компании «РосБизнесКонсалтинг«(Москва).