назад

Труды международной научно-технической конференции "Научные основы высоких технологий", Т. 2, стр. 212-217, Новосибирск, сентябрь, 1997 г.

ПРЕДСТАВЛЕНИЕ ЗНАНИЙ В СИСТЕМЕ РАСПРЕДЕЛЕННЫХ БАЗ ЗНАНИЙ И ДАННЫХ В INTERNET / INTRANET

Барсуков А.В., Гаврилов А.В., Олейник Е.В.

Новосибирский государственный технический университет, кафедра Вычислительной техники, Новосибирск, Россия

Постановка задачи.

В настоящее время в основном три изобретения в области информатики определяют пути ее развития;

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

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

Остановимся теперь на средствах управления базами данных. Не секрет, что в связи с ростом объемов носителей и скоростей передачи данных человечество просто тонет в огромном количестве информации. Все знания, которыми когда-либо обладал человек если уже не хранятся, то в ближайшем будущем будут храниться в компьютеризированном виде. Таким образом, если человеку нужна какая-либо конкретная информация, он может быть уверен, что где-то, на каком-то сервере и в какой-то базе данных эта информация уже хранится. Нужно только извлечь ее. Дальше начинаются сложности. Пользователь должен знать не только точный адрес нужного сервера, но и представлять себе, где именно на этом сервере и в каком виде хранится нужная ему информация. И это еще не все. Человек должен суметь сформулировать свой вопрос на языке, прямо скажем, далеком от естественного, например, на языке SQL. Только тогда он сможет добраться до нужной информации.

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

Итак:

Таким образом, мы пришли к выводу, что ни базы знаний с инструментарием экспертной системы, ни базы данных с языками запросов, ни поисковые машины Internet неискушенного человека удовлетворить не могут. Тогда и возникла идея объединить базы данных и базы знаний едиными концепциями и единым инструментарием и погрузить их в среду Internet / Intranet .

Язык представления данных и знаний IRL.

В качестве модели представления данных и знаний была выбрана сеть фреймов. Понятие фрейма широко используется в областях, связанных с искусственным интеллектом. Фрейм позволяет описывать как абстрактные объекты и понятия, так и конкретные объекты, имеющие точные числовые характеристики. Также представляется очень существенной возможность представления в виде фреймов иерархических объектов. Фрейм, как известно, состоит из слотов, описывающих конкретные свойства понятия или объекта. Для работы с фреймами был разработан специальный язык, названный нами Intelligent Request Language, или сокращенно IRL. Грамматика этого языка представлена ниже. Она относится к классу Q-грамматик, так как содержит правила вида N:empty. Грамматики этого типа допускают нисходящий грамматический разбор. Общий вид грамматики представлен ниже.

<ОписаниеПонятия>: <ИмяПонятия> <Предок> <Источник> <Состав> <ОписанияСлотов> { <Источник> <Состав> <ОписанияСлотов>

<Предок>: :<ИмяПредка> { {

<Источник>: <ИсточникДанных>=<ОписаниеИсточника> empty

<ОписаниеИсточника>: "<ИмяФайла>"; "<IP-адрес>";

<Состав>: <Состоит> { <ОписаниеСостава>

<ОписаниеСостава>: <ОписаниеПонятия> <ОписаниеКоличества> <ОписаниеСостава> }

<ОписаниеКоличества>: :<ЧислоВхождений>; ;

<ОписанияСлотов>: <ИмяСлота> <ЗначениеСлота> <ОписанияСлотов> }

<ЗначениеСлота>: <Число> <ЕдиницаИзмерения> <Продолжение> [<Число>,<Граница>] <ЕдиницаИзмерения> <Продолжение> "<Строка>" <Продолжение> ~<ОписаниеСтолбца> <ЕдиницаИзмерения> <Продолжение> #<ИмяСлота> <Продолжение> <ОписаниеПонятия> <Продолжение> ?;

<ЕдиницаИзмерения>: (<ИмяЕдиницы>) empty

<Граница>: <Число> > <

<Продолжение>: ; | <ЗначениеСлота>

<ОписаниеСтолбца>: <Столбец><ПродолжениеОписанияСтолбца>

<ПродолжениеОписанияСтолбца>: :<ИмяФайла>:<Столбец>=<Столбец><ПродолжениеОписанияСтолбца> empty

Достоинством языка IRL можно считать возможность описания двух таких важных сущностей, как наследование и включение. По нашему мнению, машинный язык может адекватно представлять устройство мира с человеческой точки зрения только в том случае, если он отображает эти понятия. Как видно из грамматики, в частном случае фрейм языка IRL может иметь только имя, и ничего больше. В этом случае он является описанием базового понятия, то есть, понятия, не имеющего предка. В качестве базовых понятий используются: 1. Действие (Action). 2. Свойство (Property). 3. Отношение (Relation). 4. Объект (Object).

Некоторые из базовых понятий имеют свойства (слоты), другие - нет. К числу первых относятся действие и отношение, к числу вторых - свойство и объект. Базовое действие имеет следующие слоты:

  1. Название.
  2. Объект действия.
  3. Субъект действия.
  4. Время действия.
  5. Место действия.
  6. Что имеется в начале действия.
  7. Что имеется в конце действия.

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

  1. Объект.
  2. Субъект.

При описании конкретного действия или отношения каждый слот получает соответствующее значение. Все остальные понятия наследуются из базовых. По умолчанию фрейм-потомок наследует все слоты фрейма-предка, а к ним уже может добавлять любое количество своих слотов. Кроме наследования, грамматика языка IRL позволяет реализовать такую важную вещь, как понятие включения. Для этого введен специальный слот <Состоит>. Объект может состоять из любого числа других объектов, которые, в свою очередь, могут быть составными. Если характеристика объекта может быть выражена с помощью чисел, то язык предоставляет следующие возможности:

Кроме понятий и объектов система SOCRAT может хранить отдельные факты и правила-продукции, или, говоря другими словами, каждый фрейм является своего рода правилом-продукцией. Остановимся для начала на фактах. Факт любого рода может быть представлен в виде фрейма, описывающего конкретное действие. Например, если мы хотим занести в базу знаний системы тот факт, что Колумб открыл Америку в 1492 году, это будет выглядеть следующим образом:

Открыл : Действие { Объект = "Колумб" Субъект = "Америка" Время действия = "1492 год" }

Фреймов с одинаковым названием в системе может храниться сколь угодно много. Нужно лишь, чтобы они отличались друг от друга. Благодаря уникальной конструкции файловой системы поиск нужного фрейма происходит очень быстро. Обратимся вновь к грамматике языка IRL. Слот <Источник> может присутствовать в любом фрейме, но он не является обязательным. Это значит, что если данные хранятся в конкретной базе данных, то мы ее указываем, а если нет - это будет факт общего вида, пример которого и был приведен выше. Следует остановиться еще на одном важном моменте. В реальной практике довольно редко встречаются обособленные файлы баз данных. Как правило, для увеличения быстродействия систем обработки данных информация хранится во множестве различных файлов, свяязанных между собой. Язык IRL позволяет описывать связанные базы данных. Мы не будем касаться конкретного синтаксиса. Приведем лишь общий вид некоторого факта, а именно: описание объекта "Фирма", данные о котором хранятся в одной базе данных, а данные о продукции, выпускаемой фирмой - в другой базе данных. Естественно, что эти базы должны быть связаны между собой.

Фирма : Искусственный_Объект { База данных = База данных { Связанные базы данных|Связанные Столбцы } Имя = База данных|Столбец; Телефон = База данных|Столбец; Продукция = Состоит {компьютер {База данных} } }

Заключение

Система "СОКРАТ" реализуется на языке программирования нового поколения - языке JAVA. Выбор этого языкового средства позволил естественным образом использовать в качестве логических ссылок URL-адреса в сети Internet Кроме того, за счет него система является переносимой на любую из существующий программных и аппаратных платформ. Система "СОКРАТ" ориентирована на использование в сети Internet / Intranet. На каждом из серверов, участвующих в организации распределенных баз знаний и данных, установлено ядро системы. База знаний каждого сервера хранит информацию о конкретной области человеческой деятельности или естествознания. На локальных машинах, подключенных к серверам, работают пользователи. Допустим, пользователь задает вопрос, ответ на который сервер в своей базе данных найти не может. В этом случае машина посылает сетевой запрос к другим серверам. Запрос формируется по особому алгоритму и передается с помощью специального транспортного протокола. Возможен и другой вариант - сервер просит уточнить пользователя, о чем именно идет речь, то есть пополняет свою базу знаний в процессе диалога.

В настоящее время реализованы следующие компоненты для работы с распределенными базами знаний и данных :

Контакты по тел. (3832)-46-02-19 и email: avg@xeopsa.cs.nstu.ru