|
Б Р А В О - Описание технологии
Проблемы построения информационных систем (см необходимость технологии) привели к необходимости
создания нового инструмента для их решения. Такой инструмент должен представлять собой некоторую "среду решения задачи",
которая обеспечивала бы решение задачи в терминах самой задачи.
"Среда решения задачи", содержащая средства представления и хранения информации, средства разработки, принципы построения и
решения задач - является технологией, которая получила название "БРАВО".
При разработке технологии основное внимание было уделено принципам отображения Предметной Области (ПО) в формальную систему.
Именно способ отображения информации, точность и полнота отображения, отличают одну технологию от другой.
Достижение качественного отображения информации с возможностью передачи различных смысловых оттенков невозможно без
хорошего понимания законов образования знаний и законов выражения их смыслового содержания в конкретном языке.
Кроме этого важное значение имеет внутренняя организация знаний в формализованной системе, принципы хранения и обработки
знаний, которые обеспечивали бы гибкость организации знаний и эффективную работу с ними различных прикладных алгоритмов.
Законы отображения сущностей ПО в ее знаковой (семиотической) модели, а также правила построения и интерпретации в ПО различных языковых конструкций
являются Формальной Семантикой. Создание теории формальной семантики, являющейся непротиворечивой и обеспечивающей строгость представления знаний и их интерпритацию,
сделало возможным разработку языка описания знаний "DSL", который обладает выразительными возможностями адекватными естественному языку.
Любая информация, составляющая знания о Предметной Области, может быть отнесена к одной из Семантических Категорий:
"Признак", "Объект", "Логическое Объединение", "Семантическая Координата (Параметр)",
"Взаимосвязь", "Ситуация", "Событие", "Процесс".
Причем одни семантические категории могут включать в себя другие. Принципиально возможно выделение новых категорий
при решении специфических задач (например, для решения математических задач возможно выделение категорий, соответствующих
математическим категориям). Каждой категории соответствуют свои правила отображения и интерпритации. В DSL категории отображаются соответствующими
синтаксическими конструкциями. Любая конструкция является "лексемой" и может быть использована для построения новых конструкций.
Формирование модели Предметной Области состоит из двух частей: формирование лексики, составляющей ПО, и формирование ситуаций, описывающих состояние и изменение ПО.
В соответствии с этим в Модели ПО выделены две части: Лексическая Модель (ЛМ) и Информационная Модель (ИМ).
Основу Лексической Модели составляют Признаки, задающие набор значений для дифференцации сущностей, Объекты, составляющие "точки пересечения" информации и
Взаимосвязи, обеспечивающие соотнесение сущностей. Все сущности ПО вне зависимости от Семантической Категории могут образовывать различные иерархии:
Общее-Частное, Часть-Целое и др. Лексическая Модель не описывает Предметную Область, а только задает "элементы", необходимые для
построения описаний. Сами описания формируется по следующей схеме:
1. Формируются предложения, отображающие некоторые факты ПО. Количество и вид используемых предложений определяются ЛМ и могут быть в
любой момент расширены (это касается и любых других элементов ЛМ).
2. Полученные предложения группируются с использованием различных Логических Объединений ("И", "ИЛИ", "ИСКЛ.ИЛИ" и т.п.) в Ситуации.
3. Отнесение ситуаций ко времени и месту образует События.
4. Все события составляют Процессы, причем одно и тоже событие может входить в различные процессы.
Все описания, составляют Информационную Модель. Пользователю предоставляется возможность группировать описания в некоторые
множества и задавать их физическое расположение. Поскольку ВСЯ информация выражена на DSL, то множества не зависят от содержания информации и
в любой момент описание может быть перенесено между множествами. Такая гибкость позволяет оптимизировать ИМ для решения конкретных задач.
Лексическая Модель и Информационная Модель образуют единую Модель Предметной Области. Для решения конкретной задачи строится своя Модель, но при
ее построении широко используются существующие фрагменты моделей, описывающие типовые решения. Модель может наращиваться и изменяться в любой
момент времени. Уже на первых шагах построения модели можно оценить правильность принятых решений.
Для работы пользователя с Моделью создаются прикладные интерфейсы, обеспечивающие формирование соответствующих описаний. Такие интерфейсы
являются внешними по отношению к Модели и могут быть просто изменены.
Для решения задач, пользователю предоставляются следующие компоненты технологии:
- Ядро системы (База Знаний)
-
Ядром системы является система управления знаниями с языком представления знаний "DSL". Основными задачами ядра
является формирование Модели ПО и ее эксплуатация. Система обеспечивает эффективное хранение, извлечение и обработку информации в Модели.
Пользователю предоставляются различные интерфейсы доступа к Модели и программные средства для ее создания и обслуживания.
Все ядро системы написано на языке программирования С++, что обеспечивает его высокую эффективность и возможность перенесения на различные операционные платформы.
- Интерфейс прикладного программирования
-
В качестве языка прикладного программирования используется "Java". Для критичных к скорости выполнения пользовательских
процедур используется C++. Принципиально возможна реализация интерфейса и с другими языками программирования.
Интерфейс к ядру системы реализован в виде набора классов, основными из которых являются:
Dis - обеспечивает построение "DSL" описаний. Этот класс соответствует понятию "лексема" и является "кирпичиком"
для построения любых описаний. Пользовательская процедура составляет необходимое описание при помощи Dis, причем при построении описаний широко используются
различные шаблоны, и передает его на вход класса Model. Результат также получается в виде соответствующей Dis.
Model - обеспечивает сохранение, извлечение, поиск и удаление Dis из Модели. В этом классе также предоставляется интерфейс по созданию Модели и
интерфейс к "службе имен", обеспечивающей формирование уникальных идентификаторов для сущностей.
Остальные классы соответствуют различным вспомогательным объектам: Дата/Время, обработчик исключений, трассировка и др.
В Java также вынесен интерфейс к "Библиотеке управляющих элементов", позволяющий использовать их точно так же, как и стандартные элементы,
предоставлямые в Java.
- Библиотека управляющих элементов
-
Для организации интерфейса с пользователем реализована библиотека интерфейсных элементов, которая обеспечивает
представление в удобном для пользователя виде сущностей, хранящихся в Модели
(см Пример экранной формы интерфейса).
В библиотеке можно выделить несколько классов элементов:
- отображение простых характеристик (дата, строка, число, деньги, и др);
- отображение структурных характеристик (дерево характеристик, списки объектов, иерархические списки объектов, таблица);
- отображение описаний (древовидное отображение, отображение с закладками, отображение на основании пользовательских элементов);
- средства комбинирования (позволяют любой элемент сделать в виде выпадающего элемента);
- средства поддержки диалогов (базовый класс пользовательских диалогов, закладки);
- вспомогательные элементы (библиотечные кнопки, командный элемент, шрифты, подсказки, шаблоны);
- доступ к универсальному клиенту;
Список существующих элементов постоянно расширяется.
- Конструктор модели и Транслятор DSL
-
Разработка Модели может осуществлятся как непосредственно на языке "DSL" в текстовых файлах, так и при
помощи Конструктора модели. Для преобразования текстовых файлов в Модель, а также выгрузки Модели в текстовые файлы
используется Транслятор DSL. Текстовый режим удобен для формирования больших массивов информации (например, для конвертирования
существующих данных). Конструктор обеспечивает отображение в наглядной форме структуры модели
(см Пример структуры модели: Общее-Честное,
Часть-Целое) и
ее модификацию. Модификация осуществляется путем переноса мышью управляющего элемента на соответствующий элемент модели
(в качестве управляющего элемента может выступать и другой элемент модели). Результатом воздействия может быть как непосредственное
выполнение команды, так и диалог с пользователем для получения или изменения информации. При этом Конструктор отслеживает все необходимые
изменения и не позволяет вводить семантически неправильную информацию. Такой подход обеспечивает интуитивно-понятный
интерфейс и существенно облегчает построение модели.
Транслятор и Конструктор удачно дополняют друг друга и позволяют более эффективно формировать и заполнять Модель.
- Универсальный клиент (Bis)
-
Работа с Моделью пользователем осуществляется при помощи универсально клиента Bis
(см Пример экранной формы универсально клиента).
Bis обеспечивает отображение
и редактирование любой сущности Модели в электронной карточке, при этом пользователь может открыть любое количество необходимых
ему карточек. Между карточками возможен переход по объектам (гипер-объект). Cit также обеспечивает построение запросов,
вызов операций пользователя, вызов отчетов, печать, работу со справочниками и обслуживание модели. Cit может быть сконфигурирован
на решение любой задачи. Для этого пользователю предоставляется возможность настройки навигационной панели объектов, списка операций,
отчетов, типовых запросов. Настраиваются также панель инструментов и меню системы.
- Типовые компоненты
-
В процессе решения задачи пользователю предоставляется возможность оформления своих решений в виде некоторых компонентов.
Компонент является независимым интерфейсным элементом и может быть использован повторно, при этом работа с компонентом
осуществляется так же, как и с любым другим элементом интерфейса. Использование компонентов упрощает разработку и дальнейшее
сопровождение программы. Наличие существующих типовых компонентов обеспечивает быструю разработку и адаптацию программы
для нужд пользователя.
- Типовые решения
-
Технология "БРАВО" не только предоставляет инструмент для решения задачи, но и упорядочивает, структурирует
само решение. Это позволяет решать задачу более универсально, т.е. решение, использованное в одной задаче, может быть применено
и для решения другой. Существующие средства абстрагирования, также делают решения более универсальными. Решение, которое обладает
достаточной универсальностью и может быть адаптировано при помощи изменения модели, называют механизмом.
Разработчиками системы уже созданы некоторые механизмы, которые могут быть успешно использованы для решения различных задач.
|
|