|
Навигация
|
Главная » Xml Онтологии в компьютерных системахИсточник: rsdn Что такое онтология МотивацияХотя термин "онтология" сейчас достаточно популярен в программистском сообществе, четкого его понимания еще не сложилось. Знания о том, что такое онтологии, и как их использовать при создании информационных систем, до сих пор являются чем-то эзотерическим, доступным только избранным специалистам по обработке знаний. Другое мнение состоит в том, что онтологии представляют собой нечто абстрактное, неприменимое на практике "игрушечное знание", которым занимаются в своих "отвлеченных сферах" так называемые "crazy scientists", в просторечье именуемые "ботанами". Между тем, термин "онтология" совсем не сложен для понимания и был придуман для достижения вполне практических целей. В этой статье автор постарается объяснить, для чего были придуманы онтологии, и как их можно использовать при построении информационных систем.Конечно, представить в журнальной публикации подробную онтологию использования онтологий в компьютерных системах не представляется возможным. Для полноценного описания всех аспектов такого использования необходима целая книга. В связи с этим автор рад представить свою книгу "Онтологии в компьютерных системах", изданную в 2010 году в издательстве "Научный мир" [1]. Онтологии, упрощенно говоря, представляют собой описания знаний, сделанные достаточно формально, чтобы быть обработаны компьютерами. Такие формальные описания используются в самых различных и порой достаточно неожиданных областях компьютерной науки. Далее мы рассмотрим, какие обстоятельства привели к возникновению термина "онтология", а также опишем некоторые популярные аспекты его использования при написании программ. Онтологии как интерфейсы интеллектуальных системТермин "онтология" впервые появился в работе Томаса Грубера [2], в которой рассматривались различные аспекты взаимодействия интеллектуальных систем между собой и с человеком. Интеллектуальными системами называются программы, которые моделируют некоторые аспекты интеллектуальной деятельности человека. Конечно, любая программа занимается таким моделированием в той или иной степени, ведь именно в этом и состоит ценность компьютера для человека - компьютерная система позволяет освободить человека от выполнения какой-то однотипной деятельности. Эта деятельность может быть весьма сложной и изощренной, но она всегда однотипна: компьютерная система, созданная, например, для редактирования графики, не может быть использована для управления комбайнами во время сенокоса. В этом смысле знания, которые закладывает в программу ее создатель (т.е. алгоритм этой программы), всегда статичны, они не меняются (конечно, за исключением очень конкретных знаний, которые мы называем "данными программы"). Интеллектуальная система в этом смысле более универсальна - в ней знание о том, что надо делать в процессе исполнения программы, не вшито в программу раз и навсегда, но может меняться. Если так, то эти знания необходимо передавать программе как данные, т.е. возникает необходимость их описания.Знания, которые заложены в компьютерных программах, можно разделить на два сорта:
Томас Грубер рассматривал вопросы взаимодействия интеллектуальных систем между собой, а также с человеком. Идея Грубера состояла в том, чтобы позволить интеллектуальным системам обмениваться между собой заложенными в них знаниями о мирах задач. Если внутри интеллектуальной системы знания о мире могут быть закодированы как угодно, то для обмена этими знаниями с другой интеллектуальной системой необходимо предоставить описание этих знаний. Это описание должно быть в достаточной степени формальным, чтобы быть понятным другой системе, а также должен быть известен язык этого описания. Кроме того, описание должно быть понятно также и человеку. Для этого Грубер предложил описывать знания двумя способами:
Составление описания декларативного знания обычно требует большой работы и определенных навыков. Для обозначения этой работы, а также ее результата, Грубер ввел в обиход специальный термин "концептуализация". Описание он называл "спецификацией". Таким образом, онтология по Груберу определяется как спецификация концептуализации . Современное понимание термина "онтология"
Зачем нужно описывать содержимое Web-страницыОнтологии содержимого Web-страниц необходимы поисковым программам для улучшения качества поиска по Web. Идея построения спецификаций концептуализаций содержания Web-страниц находится в основании концепции так называемого Умного Web или Semantic Web . Semantic Web представляет собой следующее поколение World Wide Web, в котором кроме гипертекстовых документов содержатся описания семантики этих документов, а также описания семантики различных сервисов, предоставляющих эти документы конечным пользователям. Обычно о Semantic Web рассказывают как о компоненте грядущей версии Web - так называемом Web 3.0. Каким на самом деле будет Web 3.0, мы можем только предполагать, но очевидно, что одним из главных его компонентов будет Semantic Web, в котором каждая Web-страница предоставляет также онтологию своего содержимого.
Идеи умного Web давно были восприняты сообществом W3, в результате чего уже на протяжении более десяти лет ведутся работы по воплощению этих идей в жизнь. Первой задачей, которую необходимо решить для этого, является разработка стандартного языка, который был бы понятен всем поисковым программам. На настоящий момент разработаны два таких языка:
Язык RDFЯзык RDF [6] разработан для того, чтобы описывать содержимое Web. В Semantic Web, когда говорят о каких-то сущностях Web, называют эти сущности ресурсами. RDF представляет собой язык для описания таких ресурсов. Ввиду того что описания семантики документов должны быть понятны компьютерам, необходимо разработать специальные программы-агенты, которые производили бы такое чтение. Также необходимо обеспечить возможность обмена информацией между различными программными агентами. Таким образом, под RDF подразумевается не только сам язык, но также и различные дополнительные программные модули, необходимые для обеспечения полноценного чтения и обмена информацией, записанной на этом языке. Этот факт подчеркивается в названии языка RDF.Главный элемент языка RDF-это тройка, или триплет. Тройка представляет собой совокупность трех сущностей:
С математической точки зрения, тройка представляет собой экземпляр некоторого бинарного отношения. Отношение - это множество последовательностей, состоящих в точности из n элементов для некоторого заранее определенного натурального числа n. Если n = 2, то отношение называется бинарным, т.е. бинарное отношение представляет собой множество пар. Например, отношение "семейные пары" задает множество пар элементов вида ("муж", "жена"). Каждая тройка определяет одну пару из некоторого бинарного отношения, но кроме этого дополнительно задает еще имя отношения, т.е. если имеется пара ("муж", "жена") отношения "семейные пары", то эту пару можно выразить тройкой ("муж", "семейные пары", "жена"). Для полноценного описания, кроме задания отношений, необходимо еще задать ограничения на их содержимое. Например, для отношения "семейные пары" необходимо уточнить, что первый элемент каждой пары этого отношения должен быть мужчиной, а второй - женщиной. Для задания такого ограничения необходимо ввести понятия "мужчина" и "женщина", после чего задать ограничение, выражающее тот факт, что если имеется тройка вида ("имя 1", "семейные пары", "имя 2"), то сущность "имя 1" должна быть экземпляром понятия "мужчина", а сущность "имя 2" - экземпляром понятия "женщина". Это делается посредством т.н. высказываний . Для высказываний существует свой язык, включающий переменные и логические операции. В качестве логических операций могут выступать: логическое "или" (дизъюнкция), логическое "и" (конъюнкция) и логическое следование (импликация). Имеются также кванторы существования и всеобщности, позволяющие ограничивать область применения высказывания. Язык RDF основан на математическом аппарате дескрипционной логики [7]. Дескрипционная логика (Description Logic - DL) базируется на формализмах семантических сетей [8] и фреймов [9], но использует аппарат математической логики. В математической логике производится явное разделение на синтаксис и семантику. Синтаксис задает язык, с помощью которого записываются различные высказывания об элементах мира данной логической системы. Семантика задает ту часть описываемого мира, которая удовлетворяет заданным ограничениям. Таких частей может быть более одной или даже бесконечно много. Каждая такая часть мира называется моделью данной логической системы. Опишем ограничения, налагаемые на синтаксис и семантику дескрипционных логик. СинтаксисЯзык любой дескрипционной логики состоит из следующих элементов:
В Semantic Web используются три стандартных пространства имен:
СемантикаВ математической логике в качестве модели логической системы обычно используется некоторое множество, назовем его M. Каждому элементу множества унарных предикатных символов дается в соответствие некоторое унарное отношение на этом множестве, а каждому элементу множества бинарных предикатных символов - бинарное отношение. Иначе говоря, каждому имени понятия соответствует некий класс-подмножество множества M, а каждому имени роли - бинарное отношение на множестве M. Если задаются какие-то ограничения на отношения, то они должны выполняться на всех отношениях. Каждое такое задание соответствия между именами и отношениями на множестве M (обозначим его через I) будем называть моделью данной дескрипционной логики, или ее интерпретацией. Интерпретация логической системы в некотором множестве представляет собой классический подход, но в RDF используется также интерпретация на графе. Иначе говоря, в качестве моделей может выступать граф, представляющий собой описанные выше тройки. Подробности об интерпретациях на графах можно узнать из документа [14].В дескрипционных логиках проводится различие между т.н. терминологическим компонентом - TBox (terminological box) и компонентом суждений - ABox (assertional box). TBox содержит высказывания, касающиеся иерархии понятий, т.е. задающие отношения между понятиями, а ABox содержит высказывания, характеризующие отношения индивидов и понятий. Например, высказывание "каждый пользователь - это человек" задает отношение между понятиями "пользователь" и "человек", следовательно, принадлежит множеству TBox. Высказывание "Иван является пользователем" задает отношение между индивидом "Иван" и понятием "человек" и принадлежит множеству ABox. В дескрипционной логике элементы множества TBox представляют собой ограничения, задаваемые исключительно унарными предикатами (понятиями), в этом состоит их отличие от высказываний множества ABox. Различение высказываний на TBox и ABox полезно, если рассматривать возможность построения процедуры логического вывода на моделях дескрипционных логик. Высказывания из TBox задают свойства "классификации", а высказывания из ABox - свойства, которые можно условно назвать свойствами "проверки экземпляра". Логический вывод по этим множествам может существенно различаться по производительности, поэтому имеет смысл реализовать отдельные алгоритмы вывода для каждого компонента. Имеется множество стандартных видов дескрипционной логики, задаваемых различными ограничениями на виды отношений, которые в этих видах логики могут быть заданы. Здесь мы их перечислять не будем, обратимся лучше к конкретному примеру. Пример спецификации онтологии на RDFПредположим, что имеется некая база данных, содержащая информацию о пользователях. Информация о пользователе содержит следующие поля:
Схема RDFСхема RDF (RDF Schema, RDFS [15]) представляет собой расширение языка RDF, позволяющее описывать простые онтологии данных, находящихся в хранилищах RDF. Так же, как схема базы данных описывает структуру базы данных в виде заголовков таблиц и связей между ними, схема RDF позволяет описывать структуру RDF-хранилища. Структура описывает хранилище в терминах типов и отношений между ними. На самом деле, как в этом чуть позже убедится читатель, схема RDF позволяет описывать только классификации с некоторыми дополнительными отношениями. Чтобы описать более сложные виды отношений, необходимо привлекать более мощные средства, такие, как OWL.В RDFS можно задавать классы, которые определяются в дескриптивной логике как унарные отношения. Для этого в RDFS определен специальный объект rdfs:Class - класс всех классов. Вообще, каждый объект RDF - это экземпляр класса rdfs:Resource, и rdfs:Class здесь не исключение. Но, с другой стороны, rdfs:Resource - это класс, а значит должен быть определен как экземпляр объекта rdfs:Class. Таким образом, объекты rdfs:Resource, и rdfs:Class определяются рекурсивно посредством друг друга - случай нередкий в языках описания онтологий. Как уже говорилось выше, сказать, что данный объект является экземпляром данного класса, можно с помощью rdf:type. Например,
Для того чтобы сказать, что значения некоторого свойства являются экземплярами некоторого класса, т.е. чтобы задать типы свойств, используется свойство rdfs:range. Выражение:
В RDFS также определены элементы, позволяющие задавать контейнеры (классы, унаследованные от rdfs:Container) и коллекции (класс rdf:List). Для подробного ознакомления со всеми элементами словаря RDF читатель может обратиться к официальному описанию RDFS на сайте консорциума W3 [15]. Язык OWLOWL (Web Ontology Language [17]) представляет собой язык, предназначенный для описания онтологий и разработанный консорциумом W3 специально для этих целей. OWL построен как расширение RDF и RDFS. Это означает, что основная конструкция - это тройка языка RDF. В этом контексте язык OWL можно рассматривать как расширенный вариант RDFS, позволяющий не только описывать классы и свойства, но также задавать ограничения на их использование. На языке дескрипционной логики это означает, что логика, лежащая в основе OWL, содержит кроме описания отношений также и аксиомы, задающие соотношения между данными отношениями и различного рода ограничения последних.Базовым элементом языка OWL является класс всех классов, определяемый как owl:Class. Класс owl:Class - это экземпляр рассмотренного выше класса rdfs:Class. Любой OWL-класс должен быть задан как экземпляр класса owl:Class. Например, если мы хотим определить класс Human (человек), то должны задать тройку
В OWL существует разделение свойств на два класса:
Язык OWL позволяет описывать различные характеристики классов и свойств, которые обычно задаются как разного рода ограничения на структуру связей между своими экземплярами. Эти ограничения выражаются в виде предопределенных соотношений, называемых в языке OWL аксиомами. В этом состоит основное отличие языка OWL от RDFS. Эти ограничения позволяют выражать в онтологии более тонкие вещи, чем с помощью RDFS. Например, в языке OWL имеется аксиома owl:equivalentClass, которая позволяет сказать, что множества экземпляров двух данных классов совпадают. Например, можно задать класс с именем ГенеральныйДиректор, а можно еще сказать о классе ГлаваКомпании. Тогда можно определить эквивалентность этих классов следующим образом:
Таких ограничений в языке OWL множество. Но все они подобраны таким образом, чтобы не снизить производительность алгоритма логического вывода по фактам, которые описаны в онтологии. Более подробную информацию о языке OWL читатель может почерпнуть из [16]. Синтаксис XML удобен для чтения машинами, но не слишком удобен для человека. Поэтому обычно документы с онтологиями, написанными на языке OWL, не редактируют непосредственно, а используют для редактирования специализированные программы. Одна из таких программ называется Protégé [18]. Эта программа бесплатна для использования и может быть загружена с сайта проекта Protégé [18]. OWL-код, записанный в файле онтологии, представляется непосредственно в виде коллекций классов и их свойств, а также в виде различных их ограничений, как это описано выше. Программа Protégé предоставляет возможность задавать запросы на языке SPARQL [19] к открытой онтологии, а также производить различные логические манипуляции над онтологией. Кроме программ редактирования онтологий имеется большое количество реализаций Web-сервисов онтологий - хранилищ библиотек онтологий. Такие хранилища подобны серверам баз данных, предоставляемых разработчиками сервиса программистам, которые наполняют содержимое этих сервисов конкретными данными. Существуют как коммерческие, так и бесплатные реализации таких сервисов. Один из наиболее популярных сервисов такого рода называется OWLIM [20], написан на Java и, как декларируется его разработчиками, представляет собой быстрейшую на сегодняшний день реализацию хранилища. Более подробный список реализаций RDF-хранилищ приведен в [1]. Заключение В данной работе сделана попытка в популярной форме познакомить читателя с понятием онтологии и приложениями этого понятия в компьютерных системах. Чтобы изложение не было слишком абстрактным, было приведено описание одного конкретного примера использования онтологий в Интернет - описания содержимого Web-страниц в виде онтологий. Для таких описаний консорциумом W3 разработаны специальные языки: RDF и OWL. В статье было приведено их краткое изложение. К сожалению, ограничения объема, налагаемые на журнальную статью, не дают возможности рассказать о понятии "онтология" подробно. Заинтересованный читатель может получить подробную информацию в книге "Онтологии в компьютерных системах" [1]. В этой книге рассмотрены различные аспекты применения онтологий в информационных системах, и многие из этих применений не ограничиваются Интернет. Автор надеется, что приведенная в работе информация будет полезна читателю не только в качестве "расширения кругозора", но и даст пищу для реализаций конкретных проектов в самых различных областях информатики. Список литературы
Глоссарий терминов по электронному документообороту, использованных в MoReq (документация, FAQ). Чего ждать от Google Summer of Code 2012?. Экзамен Tivoli 891: IBM Tivoli Federated Identity Manager V6.1 Implementation. Oracle: работать с текстовыми документами очень просто. Sybase RFID ENTERPRISE 2.0 - решения для обработки данных и обслуживания RFID-устройств с поддержкой сервис-ориентированных архитектур. Главная » Xml |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |