Абриаль 2.0 http://www.artint.ru/packin/abrial А.И.Пацкин [mailto:aleksandr@tochka.ru]
[ README 2.0 ] Абриаль 2.0 ] Введение (1.6) ] Обзор (1.6) ] Публикации ] Глоссарий ] Оглавление ] Руководство ]

README 2.0


Руководство
README 2.0
Абриаль 2.0
Введение (1.6)
Обзор (1.6)
Публикации
Глоссарий
Оглавление

Здравствуйте! В данном документе содержатся основные сведения по программе Абриаль версии 2.0. Если Вам нужна краткая инструкция по использованию последней версии программы (2.0), ее можно посмотреть в документе Абриаль 2.0. Полное руководство, отражающее состояние до версии 1.6 содержится в документе Руководство.

Аннотация продукта

  • Как продукт Абриаль 2 представляет собой среду для быстрой разработки сложных активных баз знаний и приложений на их основе. По заданной пользователем структуре данных система сама автоматически строит интерфейс для просмотра и изменения данных. Добавление новых типов данных мгновенно отражается на автоматически изменяемом интерфейсе и может быть тут же испытано, что, однако, не затрагивает ранее введенные данные и их структуру.

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

    • Интерфейс гипертаблиц является развитием методологии традиционных электронных таблиц. Гипертаблицы без какой-либо предварительной настройки мгновенно представляют наглядный, прозрачный и полный доступ к данным по навигации и по изменению.

    • Гипертекстовый интерфейс программы является развитием идеологии "всемирной паутины" (веба, WWW) и расширяет обычное представление интернета в виде виртуального множества страниц на представление множества взаимосвязанных объектов, заключенных в гипертекстовые оболочки. Эти оболочки отображающие объекты данных на интерфейс обычного интернет-броузера, формируются динамически встроенной в программу Абриаль объектно-ориентированной системой программирования Абрис 1. при этом используется набор текстовых шаблонов/макросов, которые могут находиться либо внутри объектов базы знаний или хранится в виде отдельных файлов. Гипертекстовым интерфейсом программы можно пользоваться:

      • либо в локальном варианте - на одном компьютере,

      • либо в серверном варианте: через интернет - по протоколу HTTP.

      Оба варианта для пользователя выглядят одинаково.
  • Данные базы знаний имеют вид сети , состоящей из множества объектов , соединенных между собой множеством многосторонних связей (отношений). Все метаданные , описывающие структуру сети и вычислительные механизмы, хранятся в этой же сети в виде объектов и связей.

  • Часть связей между объектами хранится в явном виде, а часть - рассчитывается "на лету" по заданным пользователем ассоциациям , т.е. виртуальным отношениям. Ассоциации в отличие от традиционных функций действуют не только в одном направлении - от аргумента к результату, а во всех логических направлениях, что поднимает возможности разработчика на качественно новый уровень.

  • Для контроля целостности и произведения сложных расчетов в ядро системы встроен эффективный продукционный механизм , основанный на правилах и управлении событиями . Мощь этого вычислительного аппарата позволяет решать в среде Абриаля такие сложные задачи в области искусственного интеллекта (в частности - по обработке естественно-языковых текстов), с которыми не справляются традиционные вычислительные модели.

  • Внешний формат (или язык представления) данных достаточно удобен для ручной обработки человеком, и в то же время достаточно прост для программной обработки.

Новые технологии

С более общей точки зрения Абриаль представляет собой исследовательскую и демонстрационную программу для испытания нескольких новых информационных технологий.

А именно:

  1. Новая "изотропная " модель (организация) данных, сутью которой является полный отказ от односторонних ссылок.

  2. Новая "гипертабличная " организация навигационного интерфейса пользователя с сетевыми данными. Гипертаблицы это - "Электронные таблицы для объектных сетей".

  3. Новая вычислительная модель: ассоциации , обобщающие понятие функции и эффективный продукционный механизм основанный на управляемых событиями правилах .

  4. И, наконец, датацентрическая организация удаленного взаимодействия пользователя с распределенными объектно-сетевыми базами данных.

Системные требования

  • ОС Windows 98/ME/NT4/2000/XP и выше (возможно годится и 95 - не пробовал)

  • Internet Explorer версии 5.0 и выше (входит в состав стандартных программ Windows начиная с Win98 SE. (Насчет IE версии 4 - не уверен).

  • Процессор - Pentium и совместимые с ним (Celeron, Athlon, Duron...) практически все Windows совместимые компьютеры с не старше 97-го года рождения пригодны.

  • Оперативной памяти - не менее 16М.

Краткое описание продукта

Общее устройство среды.

Приложение в среде системы Абриаль 2 имеет датацентрическое устройство: оно представляет собой активную базу данных, заключенную в активную интерфейсную оболочку. Активность реализуют производящие вычисления  конструкции, встроенные и в саму базу данных, и/или в интерфейсную оболочку.

Общая организация данных (модель данных).

Основополагающей новацией в системе Абриаль 2 является её модель данных, имеющая ряд общих черт с объектной, реляционной и с логической (предикатной) моделями представления данных, и в то же время отличная от этих моделей в одном очень существенном аспекте: модель Абриаля изотропная , это значит, что тут полностью исключены односторонние ссылки, а вместо них используются двухсторонние и многосторонние связи, проходимые во всех направлениях качественно одинаковым образом.

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

Пользователь в среде Абриаля работает не с именами-идентификаторами-указателями объектов, а с самими объектами . Сие означает, что имя нигде не представляется пользователю в виде слепого куска текста - везде по нему можно "кликнуть" мышью и "развернуть" соответствующий объект. Имя легко может быть изменено или даже удалено совсем, без ущерба работоспособности системы объектов: имена нигде не используются для ссылок на объекты - это всего лишь визуальные ярлыки для пользователя.

Организация пользовательского интерфейса.

Основной пользовательский интерфейс высшего уровня в Абриале 2 - это гипертекст , т.е. последовательность генерируемых системой страничек на языке HTML, организующих работу пользователя в стиле просмотра большого виртуального сайта в интернете, т.е. в веб-стиле.

У системы Абриаль 2 есть две варианта: локальный (он же клиентский) и серверный.

  • Через локальный вариант пользователь обращается к базе данных, расположенной на том же самом компьютере.

  • С серверным вариантом программы, имеющим форму CGI-скрипта, и расположенным на веб-сервере (MS IIS) вместе с базой данных, пользователь работает через любой броузер с любой платформы, обращаясь к серверному варианту программы через интернет по протоколу HTTP.

Работа в среде локального варианта Абриаля функционально неотличима от работы с той же базой данных через интернет и серверный вариант. Внешнее различие между локальным и серверным вариантами может проявляться только в величине времени отклика.

Язык гипертекстовых макросов Абрис 1.

Работа обоих вариантов в режиме гипертекста не только выглядит для пользователя одинаково, но и организована принципиально одинаковым образом, различаются только мелкие детали реализации. А именно: страничка посылаемая пользователю собирается из множества текстовых заготовок, называемых веб-шаблонами или макросами . Библиотеки макросов могут содержаться как внутри соответствующей базы данных, так и отдельно - в виде текстовых файлов в специальных директориях. В любом случае макросы/шаблоны содержат внутри себя HTML-текст со вставками на специальном языке Абрис 1.

Первоначально с системой поставляется некоторая стандартная библиотека макросов, позволяющая манипулировать базами данных и дающая доступ по просмотру для всех (а для изменения - для большинства) структур данных. В дальнейшем доступ к различным базам данных, к объектам различных классов, к различным аспектам одних и тех же объектов, и даже просто к отдельным объектам может быть индивидуализирован и развит пользователем. Это осуществляется за счет добавления своих макросов в библиотеки, сделанных на основе стандартных, а также заменой или корректировкой стандартных макросов.

Язык Абрис 1 позволяющим полноценно, гибко и компактно строить интерфейсную оболочку вокруг данных. Абрис 1 реализован как своего рода расширение HTML. К языку добавляются специфические теги, имена которых начинаются со знака #. Этот язык имеет строго функциональный стиль, что легче и нагляднее интегрирует его внутрь текста HTML. Это выгодно отличает его от языков JavaScript, VBScript, Perl, PHP и тому подобных скриптовых языков, встраиваемых в HTML, но имеющим процедурный стиль, резко контрастирующий с декларативным стилем самого HTML.

Технология макросов на языке Абрис 1 аналогична другим технологиям серверных включений: SSI, ASP, .NET,... однако от последних отличается более тесной интеграцией как с базой данных, так и с языком отображения - HTML. Но наиболее принципиальное отличие - это обратная связь : отображение объектов данных на гипертекст является двусторонним . На экране отображается не просто интерпретируемый броузером набор символов. В изображении сохраняется объектная семантика, то есть объектные ссылки и другие элементы объектного управления, непосредственно пригодные для объектной навигации и манипуляции объектами.

Язык Абрис 1 - объектно-ориентированный, вызов метода с одним и тем же именем может иметь разные реализации для разных классов объектов. Но в отличие, например, от JavaScript, объекты здесь не есть объекты среды исполнения программы, а резидентные объекты базы данных. В языке нет объектов времени исполнения, которые, поднимая уровень абстракции, существенно усложняют работу с языками типа JavaScript. И более того: в языке Абрис всего один тип данных - строки символов. Эти факторы кардинальным образом, фактически - на порядки, упрощает и ускоряет процесс разработки, без какого-либо ограничения мощности.

Гипертаблицы

В дополнение к гипертекстовому веб-интерфейсу локальный вариант программы предоставляет пользователю для непосредственного доступа к данным еще один вид интерфейса, а именно: гипертаблицы . Гипертаблица - это своеобразный аналог электронных таблиц (типа MS Excell) предназначенный для навигации и манипулирования сетями объектов содержащихся в базах данных. Через гипертаблицы пользователь может быстро передвигаться по объектной сети во всех возможных логических направлениях и попутно строить и перестраивать эту сеть, в частности - изменяя инкрустированные в этой сети элементарные значения данных, числа и текстовые строки.

Ячейки гипертаблиц либо содержат простые значения данных редактируемые по месту (как в обычных электронных таблицах) или являются гиперссылками. Переход по гиперссылке производится либо щелчком мыши, либо нажатием клавиши Enter, что разворачивает ячейку в другую таблицу, смежную, логически связанную с исходной.

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

Вычислительные модели ядра и оболочки

Общее строение приложения в среде системы Абриаль 2 таково: есть некоторое ядро, представляющее собой активную базу данных, и есть настраиваемая и активная  гипертекстовая интерфейсная оболочка. Таким образом активность или функциональность, или проще говоря, программный материал, может содержаться как в ядре системы, так и в оболочке. Но поскольку функциональность ядра, (самой базы данных), отражает внутренние взаимосвязи и ограничения, присущие данным, или то, что принято называть бизнес - логикой, а функциональность оболочки ориентирована на конкретные задачи внешнего представления, естественно ожидать, что принципы организации вычислений (т.е. вычислительные модели) в ядре и в оболочки должны существенно различаться.

Для вычислений в оболочке выбран более традиционный объектно-ориентированный стиль языка Абрис 1. По существу в страничку вставляются вызовы функций/методов/макросов и выражения, построенные из таких вызовов, которые в результате вычисления возвращают некий результирующий текст, подставляемый в данную точку. Это классический процесс макрогенерации. Ориентация вложенности функциональных выражений здесь естественно вытекает из ориентации: снаружи - пользователь / внутри - база данных.

Однако, для связей внутри самой базы данных никакой предопределенной ориентации не существует. Что снаружи, а что внутри, что считать аргументом функции, а что - результатом, - заранее сказать нельзя: эта ориентация может меняться в процессе расчетов. В связи с этим внутри ядра приложения, внутри базы данных, применяются принципиально иные, не функциональные и не ориентированные вычислительные механизмы. Они основаны на ассоциациях (виртуальных отношениях) и на управляемых событиями продукционных правилах. Вычислительная модель ядра (или модели) являются оригинальной авторской разработкой. Её применение в существенной степени избавляет разработчика от заботы о порядке вычислений, в частности о порядке вложенности выражений. Все программистские конструкции представляют собой декларативные утверждения с малым числом локальных переменных. Задача решается методом "муравьиной кучи". В результате применения этой вычислительной модели радикальным образом возрастает мощность, производительность, и надежность программирования. Крайне сложные могут решаться на порядок быстрее и дешевле, и появляется возможность решения сверхсложных задач, которые были не под силу традиционным вычислительным моделям.

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

Система хранит данные в виде текстов на специальном языке представления данных, внешне напоминающем упрощенный язык Пролог. Простота текстового представления данных на внешних носителях может быть выгодно использована для низкоуровнего доступа к данным, в частности - для реструктуризации, массового ввода данных, и вообще - для всевозможных видов передачи данных в обе стороны между Абриалем и другими СУБД.

История разработки

Программа разработана в Российском НИИ Искусственного Интеллекта. Автор программы - Александр Иосифович Пацкин. По существу эта разработка явилась синтезом двух независимых направлений исследовательских работ.

Далее удобнее излагать от первого лица. Моей целью было построение среды, пригодной для решения сложных задач искусственного интеллекта. Главной проблемой я считал представление знаний, фундаментальную недостаточность существующих систем представления знаний. К 99-му году, когда я пришел в РосНИИ ИИ, мне удалось построить удовлетворяющую меня универсальную среду представления знаний, а на ее базе объектно-ориентированную систему программирования. (Называлось это творение - Адам-99). В основе лежала идея изотропной сети, где все односторонние ссылки были заменены двусторонними связями.

Что касается вычислительных моделей, я считал ООП - магистральным путем развития, и саму реализацию идей ООП в полном объеме на своей платформе считал большим успехом. Но в РосНИИ ИИ как раз больший упор делался на новые вычислительные модели, а интерес к моделям данных и представлению знаний был вторичен. Естественно, руководивший институтом Александр Семёнович Нариньяни, отказался поддерживать мою работу в чистом виде, и условием такой поддержки поставил мой переход в лагерь Data Driven (DD) - это большая категория вычислительных моделей, где вычисления производятся не по команде извне, а по готовности исходных данных. В этом духе были построены основные разработки института. Это не противоречило моим планам, у меня не было амбиций в области вычислительных моделей, но DD мне казалось слишком экзотической идеологией, и я опасался в ней увязнуть надолго. Быстро взять на вооружение что-то из разработок института - не получалось по ряду причин, например, разработанная под руководством А.С. Нариньяни программа UniCalc (Уникальк) производила расчеты с недоопределенным числами, но численные методы и тем более недоопределенность мне были совершенно неинтересны. Тем не менее, в работе Уникалька были заманчивые вещи: множество ограничений на данные в форме равенств и неравенств казалось бы независимые друг от друга, действовали совместно, как единая вычислительная структура, и (без как-либо извне заданного порядка) производили результат - некое приближенное решение "системы уравнений". Т.е. вместо программы на входе задавались множество утверждений - каким должен быть результат. В этом, собственно говоря, и проявлялись достоинства подхода DD. И это было крайне интересно реализовать для нечисловых данных, и без недоопределенности, т.е. не для интервалов, а для точных значений. А.С. Нариньяни заразил меня уверенностью, что всё можно проделать в сжатые сроки, но не давил - ни по срокам, ни по качественным рамкам проекта, лишь бы это были базы данных и DD "в одном флаконе". Итак я взялся за дело с чистого листа, включил в систему все лучшие свои замыслы на тот момент, а опыта к тому моменту уже было накоплено предостаточно - это была уже десятая система (язык) программирования моего изобретения (Абриаль-99 был девятой). И еще: сразу избавился от "проблемных" наработок, которые, как чемодан без ручки - тащить было тяжело, а выбросить - жалко.

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

В 2001-м была создана сетевая (серверная) версия Абриаля (ВЕБриаль) - CGI-скрипт на сервере MS IIS, и на платформе Абриаля были реализованы две сравнительно большие базы данных, два гиперсловаря : Тезаурус Роже - для английского, и словарь Зализняка - для русского. В последнем, помимо зализняковской грамматики была проделана самостоятельно морфологическая сегментация - разбиение русских слов на морфемы.

В 2002-м идея интерфейса через гипертекст в стиле CGI была перенесена из серверного варианта на основной - настольный вариант программы и значительно продвинута. В результате получился полноценный объектно-ориентированный язык (Абрис 1) для отображения данных Абриаля на HTML-интерфейс пользователя, и в конце года был достигнут важный рубеж: через HTML-формы стало возможным вводить и изменять данные, а не только осуществлять навигацию по готовым данным, как было до этого момента. Это означало, что Абриаль стал полноценной средой разработки визуальных приложений для сложных баз данных. Кроме того, в середине года для быстрой разработки структуры БД был сделан Конструктор Схем - группа форм в основной программе.

Начало 2003-го ушла на отладку и построение гипертекстовой оболочки системы, и вот сейчас - в августе 2003-го, система выпускается в свет.

Условия распространения, варианты кооперации.

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

Сохранить для версии 2.0 бесплатную регистрацию, действовавшую для предыдущих версий, не представляется возможным. Стоимость регистрации 3000 рублей (в дальнейшем цифра может быть изменена, её следует уточнить на сайте или по e-mail). Величину и форму оплаты нужно согласовать с автором по электронной почте.

Порядок регистрации описан ниже.

Зарегистрировавшиеся пользователи программы могут рассчитывать...

  • ...на немедленное снятие всех функциональных ограничений программы,
  • ...на помощь и поддержку по электронной почте (в разумных пределах),
  • ...на оперативное получение информации о новых функциях и версиях,
  • ...на скидки и льготы при приобретении следующих версий.

Предлагаемые варианты сотрудничества. Вы можете:

  • купить регистрацию, и оказать этим помощь разработчикам.
  • заключить договор о передаче технологии. Разрабатывать свою систему вы будете своими силами, а с нашей стороны будут предоставлены сопровождение и консультации.
  • заказать нам полное изготовление прикладной информационной системы на базе Абриаля.
  • скооперироваться для совместного развития технологий Абриаля в коммерческие продукты и услуги, и для продвижения этих продуктов и услуг на рынок. В этом варианте от Вас потребуются серьёзные финансовые вложения.
  • предложить свои варианты, которые будут внимательно рассмотрены.

Регистрация.

Для регистрации нужно проделать следующее:

  1. Написать автору о своем желании зарегистрироваться, уплатив вышеозначенную сумму (или сообщить свои предложения об уплате части суммы натурой, напр. выполнением работ для проекта). В письме также просьба Вас сообщить свое имя, место проживания, род занятий, почему Вас заинтересовала программ. (Если Вы собираетесь заплатить полностью, то все это всего лишь пожелание, не обязательное условие, но без указания имени с Вами будет трудно связываться и общаться).
  2. Получить от нас описание вариантов оплаты (или согласие с Вашими предложениями).
  3. Уплатить оговоренную сумму (или выполнить оговоренные условия).
  4. Сообщить об этом нам по электронной почте и в это же письмо вставить отдельной строкой комбинацию Номер:Имя, полученную из установленной у Вас программы следующим образом:
    1. через меню "Помощь" войти в окно Регистрация.
    2. Находящиеся там Номер Программы и Имя Пользователя (которое должно быть введено Вами при установке и может быть изменено в окне регистрации) нужно извлечь и...
    3. ...прислать мне по электронной почте в форме Номер:Имя. Для более удобного переноса комбинации Номер:Имя в текст электронного письма в окне Регистрация имеется кнопка "Копировать". Эта кнопка заносит комбинацию Номер:Имя в буфер. Затем при написании электронного письма достаточно нажать Shift-Insert и запомненная в буфере комбинация вставится в Ваше письмо.
  5. В ответ на Ваше письмо, Вам будет прислан регистрационный код, который...
  6. ...нужно занести в свободное поле окна регистрации и нажать "Применить".
  7. При вторичном входе в окно регистрации оно изменит свой облик (Имя станет недоступным) - это значит, что Вы успешно зарегистрировались.

Состав устанавливаемых файлов:

  • abrial.exe программа Абриаль
  • config.ab - файл настроек (первичного распределения памяти).
  • SYSTEM-X.AB - системный файл (расширения стандартного ядра БД).
  • _bases.ab - файл реестра баз данных - необходим для работы оболочки
  • current_style.txt - файл содержащий имя текущего стиля отображения оболочки
  • tem\*.txt  - шаблоны/макросы стандартной оболочки
  • LANG\*.ini - файлы локализаций под разные языки - по одному файлу на язык. По умолчанию используется RUS.ini
  • IMG\ - картинки кнопок для оболочки
  • inc\ - папка с JScript-программами, обеспечивающими, редактирование HTML на страничках видных пользователю.
  • doc\*.* все текстовые инструктивные материалы, в том числе данный файл readme.htm
  • test\ - папка с примерами баз знаний

Контактная информация

Автор программы:
 Александр Иосифович Пацкин.
E-Mail:
aleksandr@tochka.ru
packin@narod.ru
Странички:
http://packin.narod.ru/pro
http://www.artint.ru/packin/abrial/
Организация:
Российский Научно-исследовательский Институт Искусственного Интеллекта (РосНИИ ИИ)
Сайт института:
 http://www.artint.ru
Телефон:
 155-45-30
Директор:
 Александр Семёнович Нариньяни.
E-Mail:
 narin@aha.ru

А.И. Пацкин. 05 августа 2003г.  


Все права защищены. © 2000-2003 РосНИИ ИИ
http://www.artint.ru
Copyright. © 2000-2003 by RRIAI
Александр Иосифович Пацкин [mailto:aleksandr@tochka.ru].
03 сентября, 2003

К началу документа.

Hosted by uCoz