Архитектура Базы Знаний БРАВО.

Содержание

Введение.

Раздел 1.

Текст раздела 1.

Раздел 2.

Текст раздела 2.

Раздел 3.

Текст раздела 3.

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

"Среда решения задачи", содержащая средства представления и хранения информации, средства разработки, принципы построения и решения задач - является технологией, которая получила название "БРАВО".

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

Законы отображения сущностей ПО в ее знаковой (семиотической) модели, а также правила построения и интерпретации в ПО различных языковых конструкций являются Формальной Семантикой. Создание теории формальной семантики, являющейся непротиворечивой и обеспечивающей строгость представления знаний и их интерпритацию, сделало возможным разработку языка описания знаний "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 может быть сконфигурирован на решение любой задачи. Для этого пользователю предоставляется возможность настройки навигационной панели объектов, списка операций, отчетов, типовых запросов. Настраиваются также панель инструментов и меню системы.
Типовые компоненты
В процессе решения задачи пользователю предоставляется возможность оформления своих решений в виде некоторых компонентов. Компонент является независимым интерфейсным элементом и может быть использован повторно, при этом работа с компонентом осуществляется так же, как и с любым другим элементом интерфейса. Использование компонентов упрощает разработку и дальнейшее сопровождение программы. Наличие существующих типовых компонентов обеспечивает быструю разработку и адаптацию программы для нужд пользователя.
Типовые решения
Технология "БРАВО" не только предоставляет инструмент для решения задачи, но и упорядочивает, структурирует само решение. Это позволяет решать задачу более универсально, т.е. решение, использованное в одной задаче, может быть применено и для решения другой. Существующие средства абстрагирования, также делают решения более универсальными. Решение, которое обладает достаточной универсальностью и может быть адаптировано при помощи изменения модели, называют механизмом. Разработчиками системы уже созданы некоторые механизмы, которые могут быть успешно использованы для решения различных задач.