Обзор
|
Данный обзор был написан на этапе версии 1.6. когда верхним пользовательским интерфейсом были гипертаблицы, и поэтому обзор не охватывает тему веб-интерфейса и основного средства его программирования - языка Абрис. В остальном обзор сохраняет актуальность. Обзор идеологии Абриаля (1.6)В данном обзоре рассматриваются различные теоретические аспекты системы Абриаль, на фоне смежных и конкурирующих технологий и идеологий. Обзор призван помочь локализовать место системы на карте информационных технологий. Сокращения:ИИ - Искусственный Интеллект АннотацияАбриаль представляет собой программное средство для построения и анализа сложных объектно-сетевых баз данных. С практической точки зрения, Абриаль - это сетевая объектная СУБД со встроенной системой программирования, умеющая автоматически строить навигационный интерфейс пользователя для доступа к данным. Форматом хранения базы данных является может служить текст на специальном языке представления данных Abrial DDL. Этот язык может использоваться для программной передачи данных между Абриалем и другими СУБД. С помощью Абриаля пользователь может быстро строить БД, от простейших до сверхсложных, структуру которых трудно отобразить на бумаге, или реализовать с помощью реляционных и объектно-ориентированных технологий. В теоретическом плане, Абриаль представляет собой программу для испытания и демонстрации нескольких новых информационных технологий:
Концепция единой среды.Главная цель данной разработки - построение универсальной логической среды для решения задач Искусственного Интеллекта. В Абриале реализован принцип единой среды, в которой все потенциально изменяемые пользователем данные, т.е. собственно данные, метаданные, различные настройки, и в том числе интерфейса, а также весь функциональный материал, т.е. правила, ассоциации и т.д. представлены в виде объектов. В результате применения этого принципа для доступа и изменения всех данных в системе пригоден один и тот же инструментарий, что существенно упрощает использование Абриаля по сравнению с системами, хранящими различные категории данных в разных средах. Основная идея.Научно исследовательская разработка должна содержать новую, уникальную идею. Для Абриаля стержневой идеей является особая организация данных на самом нижнем уровне, на уровне модели памяти, так называемая "изотропная" модель. Суть её в тотальном отказе от использования односторонних ссылок, древовидной организации и объектной вложенности любого рода. Тут главное - это тотальный отказ от ссылок. Вместо ссылок в сети данных используются двусторонние и многосторонние связи. Реализация изотропной модели в Абриале позволила на более высоких уровнях получить гипертабличную навигацию и уникальную модель вычислений. Гипертаблицы.Автоматическое создание интерфейса.Преимущество Абриаля как программного продукта, состоит в том, что Вы можете создать буквально за несколько минут достаточно сложную систему данных. Вы задаёте только структуру данных, и Абриаль автоматически строит интерфейс пользователя для навигации и редактирования сети объектов. Этот интерфейс основан на "гипертаблицах". (Есть еще "гипердеревья", но этот тип интерфейса более пригоден для изучения устройства сети, нежели для практической работы). В работе гипертаблицы отчасти напоминают интернет-броузер, (как Internet Explorer) или электронные таблицы (как Excell). Однако, в отличие от этих программ, роль веб-дизайнера или роль создателя электронных таблиц берёт на себя Абриаль. При этом вместо гипертекстов для доступа к данным используются гипертаблицы (и гипердеревья). Стоит подчеркнуть, что выполнение наиболее трудоёмкой части конструирования информационных систем, т.е. построение интерфейса пользователя, перелагается с пользователя на программу, реализующую через стандартные интерфейсы доступ для всех возможных направлений одинаково эффективным способом. Абриаль и объектные СУБД.Отметим, что обычно для СУБД (прежде всего объектных СУБД, или для СУБД, основанных на XML) нужно заранее выбрать несколько "основных" путей доступа и ими ограничиться, т.к. остальные направления доступа не могут быть реализованы эффективно, поскольку они не были предусмотрены на базисном уровне структуры данных, а будут требовать поиска с перебором вариантов. Пороки вложенности и ориентированности.Например, для основанной на XML базы данных Книги-Авторы, заранее нужно выбрать: либо объекты-книги будут, "вложены в писателей", либо объекты-писатели в книги. И один из двух путей доступа, т.е. от писателя к его книгам, либо от книги к её авторам - будет не эффективным (что на практике очень часто значит - "будет невозможен"). Для Абриаля этой проблемы нет, т.к. все пути доступа изначально имеются в наличии и предельно эффективны. Абриаль и реляционная идеология.Что касается реляционных СУБД, то здесь тоже проблема неравноправности различных путей доступа остаётся, хотя теоретически её можно частично преодолеть и приблизиться к модели Абриаля. Если проиндексировать все атрибуты всех отношений, и сделать наборы SQL-запросов для выборки объектов по каждому элементу домена, то на логическом уровне для пользователя можно было бы смоделировать среду, сходную с Абриалем на на реляционной базе данных. С этой идеи и начинался Абриаль, только на этой стадии развития он назывался ИНФО-Т. Однако такая система всё равно уступала бы Абриалю как по своим возможностям, так и по удобству работы пользователя. Абриаль существенно опирается на списочную информацию, в то время как реляционные СУБД не поддерживают на базисном уровне списки (последовательности) данных. Данные, метаданные и программный материал в этих системах хранятся в различных формах, и для каждой необходим отдельный инструментарий доступа. В Абриале всё это находится в единой среде и имеет единый инструментарий. Но главное различие между Абриалем и реляционными СУБД лежит совершенно в иной плоскости. Отношение к отношениюРеляционная философия опирается на отношение, как основную единицу хранения данных и основной объект манипулирования данными. Отношение в техническом плане проецируется на некую таблицу, на некий набор данных, лежащий в определенном месте на некотором о компьютере и доступный как единое целое. При этом объекты в пользовательском смысле вынужденно разбросаны по многим таблицам и очень вероятно, что эти таблицы находятся на разных компьютерах. Т.е. объекты пользователя и объекты хранения принципиально несовместимы, или, так сказать, перпендикулярны друг другу. Такое положение можно было терпеть и строить системы, динамически конвертирующие отношения в объекты, как, например, упоминавшаяся выше система ИНФО-Т, пока всё хозяйство СУБД находилось на одном компьютере, или, уже с трудом, это проходило для локальных сетей с малым числом серверов. Конец реляционной философии.Но в нынешних "послереволюционных" реалиях, т.е. после свершившейся в ИТ веб-революции, для баз данных, распределенных в глобальной сети, это противоречие невозможно дальше прятать. Можно сказать, что для глобальных сетей реляционный подход изжил себя. (Кстати, именно этим определяется повальное увлечение СУБД на XML в последние годы). В свою очередь, Абриаль не опирается на понятие "отношение" в классическом смысле, т.е. на отношение, как объект операций. "Отношение" в Абриале это не таблица, не объект, а тип связей. Хотя можно по-прежнему мыслить всё множество однотипных связей, как классическое отношение, в Абриале не предусмотрено никаких операций над таким множеством, т.к. предполагается, что это множество необъятно, и однотипные связи находятся на бесчисленном множестве компьютеров, любой из которых потенциально может оказаться недоступен. Абриаль и глобальная сеть.Таким образом, отношение в Абриале утратило свою роль основного опорного элемента навигации и манипулирования данными. В Абриале эта роль перешла к объекту. Объект превратился в реальный сгусток информации, доступный для манипуляций как единое целое и являющийся таким же естественным узлом навигации, каким в WWW является веб-документ (страница). Т.е. в практическом, инженерном плане, объект в парадигме Абриаля проецируется на файл или иной набор данных, находящийся внутри одного узла сети. Но все междуобъектные связи должны потенциально пересекать междуузловое пространство глобальной сети. Т.е. в переделе желательно, чтобы любые два логически связанных объекта могли быть на разных серверах интернета. Антиглобализм Абриаля.Эту идеологию можно назвать модным ныне словом "антиглобализм". Для функционирования сети Абриаля как активной распределенной системы, вследствие полной взаимной связанности объектов отпадает надобность в использовании глобальных механизмов, например таких, как просмотр отношений и различных индексов, просеивание базы данных через образцы, сборка мусора в лисповском стиле и так далее. Здесь стоит отметить, кстати, что "антиглобализм" Абриаля отличает его не только от реляционной модели, но и от систем логического программирования, в частности пролога. Как правило, эти системы основаны на языках семейства лиспа, смолтока, джавы, или, по крайней мере, на лисповской модели данных (модели памяти),использующей односторонние ссылки. Односторонние ссылки, в свою очередь, требуют глобальных механизмов для своей поддержки (например, глобальной сборки мусора). Глобальные механизмы не позволяют распространить такую систему за пределы одного компьютера. Ergo: классическое логическое программирование невозможно распространить на глобальную сеть. Абриаль решает эту проблему за счет отказа от односторонних ссылок. Всеобщее заблуждение.На эти утверждения, вообще говоря, можно возразить, что областей и систем логического программирования очень много, и нельзя огульно все эти системы считать существенным образом опирающимися на односторонние ссылки и на глобальные механизмы. Конечно, обоснование столь смелого утверждения - тема отдельной статьи, а не этого краткого обзора. Однако я могу и тут объяснить, на чём основана моя уверенность. На самом деле между внешним представлением данных и программ, которое бросается в глаза даже при поверхностном знакомстве с системой, и базисной моделью памяти, скрытой глубоко в недрах системы, существует очень простая, прямая и крепкая взаимосвязь. А именно: если для представления данных или функциональных конструкций используются вложенные выражения любого формального языка, т.е. сложные формульные конструкции, то на базисном уровне этому неизбежно соответствует древовидная ссылочная модель памяти, которую без глобальных механизмов обеспечить невозможно. А теперь зададимся вопросом: кто, где и когда за последние 30 лет развития в этой области мог предложить бы систему логического программирования без какого-либо внешнего формализма? Такого автора просто никто бы не понял. Это притом, что все примеры во всех статьях излагались в основном в формульном виде, и все интерфейсы к таким программам делались в телетайпном стиле, т.е. в стиле командной строки. Конечно, оконные и объектные интерфейсы строятся тоже, и есть множество систем манипуляции с графами, и графические иллюстрации в статьях, но всё это имеется в качестве "гарнира", в то время как "основным блюдом" остаётся языковый формализм с вложенными выражениями и со всеми вытекающими отсюда проблемами. Программирование без языка программирования.И вот, Абриаль как раз и является такой системой, (и в этом претендует на определённое первенство), где отброшены за ненадобностью не только ссылки и древовидные вложенные конструкции, но и вообще внешний языковый формализм. Строго говоря. он отброшен не совсем, а с центральной роли идеологической платформы он переведен на периферийную роль формата в базе данных. Архитектура Абриаля проста: есть ядро, т.е. сеть объектов и виртуальная машина, и есть гипертабличный интерфейс, открывающий пользователю полный доступ к этому ядру, полный как функционально, так и в отношении объёма. Всё объекты логической модели пользователя доступны для просмотра и изменения через гипертаблицы. Поэтому формальный язык как таковой, для работы с системой не нужен, хотя в ряде ситуаций может дать дополнительные удобства. Таким образом, Абриаль можно отнести к системам программирования без языка программирования. По справедливости, надо признать тут пальма первенства принадлежит электронным таблицам (программе VisiCalc), но о них отдельный разговор будет ниже, а пока нужно закончить сравнение с системами логического программирования. Абриаль и продукционные системыСказанное выше можно было истолковать так, что Абриаля имеет преимущество только на больших распределённых базах данных. Это не так. На базах данных любого размера модель данных Абриаля позволяет организовать вычисления принципиально новым способом. Речь идет о задачах в области Искусственного Интеллекта, которые, в силу их сложности трудно решать классическими процедурными (функциональными) моделями (в том числе и с помощью ООП), а специально разработанные для них продукционные модели, и вообще модели логического программирования, дают слишком низкую эффективность. Это связано, прежде всего, с широким использованием образцов в этих моделях. Сравнение с образцами ведёт к массе бессмысленных проверок, к зависимости времени вычисления от числа образцов, от числа объектов в базе данных и от порядка условий в образцах. В объектной сети Абриаля всё связанно со всем во всех направлениях, благодаря чему продукционные вычисления, включающие сложные сравнения с образцами, удаётся организовать оптимальным образом. Делается необходимый минимум проверок, отсутствует зависимость от порядка условий, от общего размера базы данных и от количества образцов в системе. Практически вычисления проходят так же быстро, как если бы работала программа на Си, написанная для этой задачи неким супер-программистом, роль которого исполняет сам Абриаль. Абриаль и Объектно-Ориентированное Программирование (ООП)Несколько слов об отношениях между Абриалем и ООП. В Абриале есть объекты, есть классы и наследование (множественное). Однако, строго говоря, Абриаль не относится к ООП системам. И это принципиальное различие. Абриаль не опирается на инкапсуляцию и полиморфизм. Почему нет инкапсуляции.Инкапсуляция означает упрятывание сложностей структуры и поведения в некую непрозрачную оболочку объекта (черный ящик). При этом все связи объекта с внешним миром, или возможно, другие объекты скрыты внутри этой оболочки и реализуются внешне только через поведенческие реакции объекта на внешние раздражители. Это противоречит идеологии Абриаля во-первых тем, что упрятывать внутри объекта можно только односторонние, ориентированные связи, а все связи Абриаля должны быть проходимы во все стороны. Во-вторых, вложенность одних объектов в другие означала бы придание какого-то особого системного статуса отношению PART-OF. Но это было бы нецелесообразно, т.к. функции PART-OF реализованы в Абриале иным, более универсальным образом, и вводить для них специальное отношение не имело смысла. Почему нет полиморфизма.Полиморфизм означает способность разнородных по своей внутренней сути объектов реагировать на некие однотипные раздражители сходным образом, поддерживая тем самым иллюзию поведенческой однотипности. Но это существенным образом опирается на понятие инкапсуляции, вложенности и ориентированности объектных интерфейсов. Ничего этого в Абриале нет, и можно сказать, что объекты Абриаля есть вывернутые наизнанку, внутренностями наружу, объекты ООП. Причина развода с ООП.Разрыв с идеологией ООП был глубоко продуманным и взвешенным решением. По своей сути идеология ООП предназначена и адекватна для построения технических, инструментальных, функциональных сред. В инструментальной среде всё изначально ориентировано, поскольку всё изначально имеет некую функцию. Тут концепция черного ящика прекрасно работает. Но задачи Искусственного Интеллекта заставляют нас заниматься моделированием и отражением реального, нерукотворного мира, причем мир этот познается постепенно и понимается во всей полноте, а не в рамках какого-либо одного вида деятельности. И поэтому все возможные черные ящики приходится выворачивать наизнанку. Если нет ориентации на деятельность, то нет и понятия снаружи/внутри. Абриаль и электронные таблицыТехника работы с гипертабличным интерфейсом Абриаля имеет много общего с обычными электронными таблицами. Так же просто передвигаемся по клеткам таблицы, так же просто меняем форму представления (например, заголовки столбцов), так же, как там, меняя данные в одной клетке, видим результат в других клетках. Можно сказать, что Абриаль это электронные таблицы для объектных сетей. Однако, отмечая сходство, следует ясно понимать, в чем различие. Во-первых, гипертаблицы Абриаля представляют собой только проекцию сложной сетевой структуры, а электронные таблицы представляют собой фундаментальную структуру данных. Во-вторых, в обычных электронных таблицах направление вычислений предопределено заранее: одни клетки играют роль исходных данных, другие (с формулами) показывают результат вычислений, причем обратное невозможно. В Абриале, вообще говоря, аргументы и результаты могут меняться местами, благодаря способности вычислительной модели работать во всех направлениях. Почему не графическая навигация.Многие считают, что навигация по объектным сетям может базироваться только на визуализации различных графовых структур, т.е. схем, состоящих из прямоугольников, кружочков и стрелочек. За отсутствие такого представления не раз критиковали Абриаль. Это вполне естественно ожидать от людей привыкших и в быту и в профессиональной деятельности изучать сложные системы через призму таких схем. Однако выбор именно гипертабличного интерфейса в качестве основного есть осознанный и на сегодня, видимо, единственно возможный выбор. Дело в том, что как бы не были наглядны графовые схемы, для них пока не найдено универсальной парадигмы навигации. При увеличении размера и сложности сети достоинства графового представления оборачиваются неудобствами. Даже самые рядовые участки абриалевской сети в графической форме образовали бы такую путаницу линий, которую было бы невозможно внятно спроецировать на плоскость. А гипертаблицы при увеличении сложности сети просто растут в высоту и ширину, отчего сложность навигации качественно не увеличивается. А поскольку гипертаблица всегда изображает локальный вид из одного узла навигации (объекта), то общий размер (необъятность) сети не влияет на сложность навигации. Глобальная база данных.Хотя текущая версия Абриаля работает с локальными базами данных расположенными на одном компьютере и загружаемыми в виртуальную память полностью, целью дальнейшего развития Абриаля как информационной системы является распространение этих баз данных на глобальную сеть, т.е. создание на их основе глобальной базы данных. Это понятие отличается просто от большой распределённой БД тем, что глобальная БД должна быть децентрализована, и опираться на механизмы, независимые по эффективности от общего размера БД. Глобальная БД должна быть устойчива к возможности отключения (недоступности) любого подмножества входящих в её состав компьютеров. Другими словами, помимо сегодняшнего гипертекстового интернета, т.е. WWW или Веба, со временем должен появиться аналогичный интернет из данных (DataWeb) в форме объектных сетей, и гипертабличный интерфейс Абриаля является прототипом будущих броузеров для этого "дейтавеба". ВЕБриальНо даже в своём нынешнем варианте (для локальных БД) Абриаль имеет Веб-версию, работающую на веб-сервере в качестве CGI-скрипта. И эта веб-версия, называемая ВЕБриалем, кардинально упрощает технологию размещения баз данных в интернете для сетевого доступа. ВЕБриаль представляет собой простую альтернативу сложной и шаткой этажерке из разнородных технологий, применяемых сегодня для связи Интернет-СУБД. Разработка и поддержка баз данных в интернете, это, вообще говоря, одна из самых ресурсоёмких и массовых задач в мире современных ИТ. Она состоит из создания трех крупных слоёв: 1) веб-дизайна, 2) проектирования приложения 3) проектирования самой БД. Чрезвычайно трудоёмок процесс связывания этих слоёв. ВЕБриаль кардинально упрощает ситуацию тем, что сводит всю разработку практически к одной 3-й задаче, а на всё остальное требуется не более двух-трех минут. А именно - нужно поместить готовый файл на сервер и сделать простую ссылку на него на веб-странице. Это уже опробовано и работает сейчас в интернете с довольно значительной по объёму БД по тезаурусу Роже (словарю синонимов английского языка). Абриаль и задачи Искусственного ИнтеллектаКроме линии развития в качестве информационной системы, с прицелом на глобальные сети, существует другая, не менее важная линия развития - приложение прогрессивных свойств вычислительной модели Абриаля для решения задач ИИ. В первую очередь это Представление Знаний (KR - Knowledge Representation) и Обработка Естественного Языка (NLP-Natural Language Processing). Здесь основные надежды на некий прорыв возлагаются на главное свойство продукционной вычислительной модели Абриаля: эффективность её работы не зависит от общего размера БД, от количества правил и сложности образцов. Что такое нормальный фундамент для общего NLP, т.е. полная БД по языку, например английскому? Это, прежде всего порядка сотни тысяч слов, опутанных определяющих эти слова отношениями. Это что-то около десяти тысяч грамматических правил со сложными образцами. (Здесь порядок цифр приводится только для масштаба). И хотя в анализе одного конкретного предложения текста затрагиваются единицы слов, и используются в среднем десяток правил, но продукционные вычислительные модели в вычислении так или иначе задействуют весь массив данных (~100000) да ещё умножают его на количество правил (~10000). Даже самые продвинутые продукционные техники, так называемые Rete-алгоритмы, делают много абсолютно бессмысленных действий и зависят по эффективности от количества правил или от других глобальных характеристик БД. В результате они захлёбываются в таких объёмах. А другие, более эффективные, но не продукционные методы использовать не получается, из-за того, что требуется слишком сложное программирование. Абриаль решает указанную дилемму. Программировать правила тут так же просто как в любой продукционной системе, даже еще проще, т.к. можно не заботиться о порядке условий в образцах. Но работает продукционный процесс так же быстро, как классическая функционально-процедурная модель, где конкретные функции вызываются прямо, и ничего лишнего в процесс вычислений не вовлекается. В результате анализ одной фразы естественной речи будет происходить приемлемо быстро. И достигается всё это, в конечном счете, благодаря базисной модели данных, где все объекты связаны между собой симметрично проходимыми связями. А.И. Пацкин. 04-01-02,03-02-02 |
|