Вводная статья
|
Данный документ в
основном повторяет содержание статьи ".Пацкин А.И. Программа
ABRIAL - конструктор баз знаний в системе ИНФО-Т. Труды 7-й национально
конференции по искусственному интеллекту КИИ-2000. Переславль-Залесский 2000."
Программа Абриаль представляет собой конструктор баз знаний (БЗ). Данные или знания, с которыми работает Абриаль, состоят, из множества объектов и множества фактов (или высказываний об этих объектах). Все объекты принадлежат определённым типам, называемым классами объектов. Факты также имеют типы, называемые отношениями. Часть объектов могут иметь имена, позволяющие описывать факты, касающиеся этих объектов, в тексте на формальном языке. Факты рассматриваются в Абриале не сами по себе, а как связи между объектами. То есть всё множество объектов и связующих эти объекты фактов образует некоторую сеть, по которой, с помощью Абриаля можно эффективно путешествовать, и которую можно строить и перестраивать с помощью представляемого Абриалем наглядного и привычного для большинства пользователей гипертабличного интерфейса. Объекты и факты.Например, есть два объекта с именами "Алексей" и "Петр". Оба объекта имеют тип (принадлежат к классу) "Человек". Записывается это так Алексей:Человек И есть факт Родитель(Алексей,Петр) что означает "Алексей есть отец Петра". Слово Родитель здесь означает имя отношения, к которому относится данный факт. Позже мы узнаем, что и отношения, такие как "Родитель", и классы, такие как "Человек", представлены в БЗ самостоятельными объектами дескрипторами. При этом слова "Родитель" и "Человек" есть ни что иное, как имена этих дескрипторов. Используемая здесь система обозначений не является точным описанием формального языка Абриаля, хотя очень похожий формат записи используется в системе и на самом нижнем уровне представления знаний. Пока эта нотация нужна нам для приведения в тексте конкретных примеров. Отношение Родитель является бинарным или двухместным отношением. Возможны также унарные или одноместные отношения и факты, например факт Белая(Роза) говорит о существовании объекта Роза, обладающего свойством Белая. Система допускает и многоместные или N-арные отношения, например факт Получил(Иванов И.И.,Май,Зарплата,1000) связывает четыре объекта, и смысл этого факта очевиден: Иванов получил зарплату за Май в размере 1000 (евро:-). Заметим, что последний объект из этой четверки, именно число 1000, не имеет имени, но зато имеет внутри себя значение, в данном случае - числовое, хотя могут быть объекты, содержащие строчные значения. Кстати отметим, что и сами имена, являются не чем-то внутренне присущим объекту; на самом деле, имена есть самостоятельные объекты строчного типа. Но пока, на данном уровне рассмотрения, мы можем считать, что объекты и их имена есть одно целое. Особенностью непоименованных объектов-значений является то, что, как правило, они участвуют в одном и только одном факте, и их можно без ущерба для понимания, рассматривать просто как часть этого факта. Взгляд на факты изнутри объектов.Итак, Абриаль работает со знаниями, представленными в виде объектов и фактов. Однако читателю, знакомому с проблематикой БЗ, должно быть известно, что существует множество систем для работы с данными, устроенными приблизительно таким образом. Поэтому нужно объяснить, зачем понадобилось к тысяче систем добавлять тысяча первую. Во-первых, большая часть систем представления знаний, манипулирует фактами и объектами, рассматривая их как бы со стороны, т.е. именно в таком ракурсе, как это представлено в примерах выше. Это естественно, и выглядит наиболее удобным для формально-языкового подхода. Действительно, в факт, записанный в виде формулы, вместо простого имени или значения можно подставить сколь угодно сложное выражение и таким образом строить некую грамматику, призванную выражать всё более сложные взаимосвязи вроде бы наиболее интуитивно понятным способом. Но это не только не естественно, а даже наоборот - неприемлемо, если мы хотим построить объектный броузер, т.е. программу, позволяющую пользователю путешествовать по сети из объектов. Для такого путешествия необходим другой взгляд на факты, именно взгляд со стороны объектов, или, другими словами, взгляд изнутри объекта. Абриаль среди множества похожих систем выделяет именно такой объектный взгляд. Не следует смешивать это с объектно-ориентированным подходом (ООП). Хотя Абриаль имеет некоторые пересечения с идеологией ООП, (классы, наследование и т.д.), но с точки зрения фундаментальных принципов, идеи Абриаля во многом противоречат ООП. Связи и аспекты.С точки зрения объекта факты выглядят в системе Абриаль как связи данного объекта с другими объектами. Например, факт Родитель(Алексей,Петр) Выглядит изнутри объекта Алексей как .....Сын=Петр...... а изнутри объекта Петр как .....Отец=Алексей..... Здесь появляется понятие аспекта. Аспект это одна из сторон отношения. Каждой объектной позиции внутри факта (или отношения) соответствует аспект. "Сын" и "Отец" в данном примере есть два аспекта отношения "Родитель". Таким образом, объект, если смотреть изнутри него, выглядит как бы окруженный множеством аспектов. В каждом аспекте объекта находится один или несколько фактов. Например, имея три факта Родитель(Алексей,Федор) мы видим их изнутри объекта Алексей таким образом .....Сын=(Федор,Иван,Петр)... т.е. наименование отношения заменено аспектом, а первая позиция фактов (примыкающая к объекту "Алексей" и потому - общая) отброшена. Тут мы кстати наталкиваемся на одно принципиальное отличие Абриаля от систем логического программирования (язык Пролог) или реляционных СУБД (язык SQL и т.п.). Именно: в Абриале возможно произвольное упорядочивание фактов внутри объекта по любому аспекту. Так в нашем примере может отражаться порядок старшинства сыновей (т.е. фактов по аспекту "Сын"), что может быть принципиально важно допустим, для темы престолонаследия :). Ни Пролог, ни реляционные СУБД не имеют базисных средств для такого упорядочивания. Более того: такое упорядочивание в корне противоречит основам указанных идеологий. Таким образом, в системе Абриаль мы не видим фактов, как таковых, вместо них мы видим множество аспектов некоторого объекта, а внутри этих аспектов наборы связей с другими объектами. Особенности системы Абриаль.Итак, мы определили, что Абриаль относится к классу систем, работающих с объектными сетями, т.е. развивает классические идеи: ER-сетей Чена, бинарных сетей Абриаля (в честь которого программа получила имя), а также, так называемых семантических сетей. Но систем такого рода довольно много, и требуется определить особенности и претензии на новизну, выделяющие Абриаль среди этого множества. Перечислим эти особенности.
|
|