4. Структура базы знаний.
Логическая структура БЗ представлена в двух файлах древовидной структуры (рис. 3), содержащие категорино - понятийные деревья соответственно дерева ДЕЙСТВИЯ и дерева ПРОДУКТА. Структура этих файлов одинакова. Каждой вершине дерева соответствует одна запись. Первые 4 байта файла содержат максимальный идентификатор записи
(вершины). Идентификатор присваивается каждой записи, является уникальным в файле и используется для различных ссылок на запись. В частности идентификатор записи идентифицирует различные об'екты в других файлах, связанные с данной вершиной. Как будет показано ниже, каждай вершине соответствует список научных работ, идентификатор которого совпадает с идентификатором вершины. Записи файлов имеют следующую структуру.
смещение длина содержимое
0 1 (n) Длина имени вершины.
1 n Имя вершины.
n+1 4 Ссылка на вершину справа или 0.
n+5 4 Ссылка на левую вершину нижнего уровня
или 0.
n+9 4 Идентификатор записи (списка рефератов).
Последнее поле может использоваться как указатель на объекты
в других файлах, содержащие, например, знания в виде продукций или программных модулей или других информационных объектов по желанию пользователя. Таким образом последнее поле записи является интерфейсом для связи логичиской структуры БЗ с рабочей областью (базой данных). Очевидно, что таких рабочих областей может быть несколько, причем никаких ограничений на их структуру и количество нет.
В состав программного обеспечения входит модуль, предоставляющий пользователю удобные средства для корректировки структуры и содержимого обоих файлов. Что позволяет производить изменения в логической структуре БЗ не только на этапе ее разработки, но и на этапе эксплуатации. При этом защита знаний от разрушения осуществляется путем предупреждения и подробного объяснения возможных последствий таких действий.
Логическая структура рабочей области БЗ, реализованной в данной версии
системы состоит из трех файлов библиотечной структуры. Каждому дереву
категорино - понятийного пространства (КПП) ставится в соответствие файл библиотечной структуры(рис. 4), содержащий списки идентификаторов научных трудов, ассоциированных с данной вершиной дерева.
Идентификатором списка является идентификатор соответствующей вершины.
Точка категорино - понятийного пространства или пара записей (вершин из
обоих деревьев) содержит два идентификатора, которым в библиотеках списков рефератов соответствуют два списка. Идентификаторы рефератов, содержащиеся одновременно в обоих списках, будут составлять список рефератов для данного элемента КПП. Необходимо отметить, что один и тот же идентификатор может содержаться в одном списке несколько раз. Это является следствием того, что данный элемент знаний ассоциирован одновременно с несколькими элементами КПП и этот список соответствует вершине, входящей во все или часть из этих элементов. Этот пример иллюстрируется элементом знаний с идентификатором "ИД 11" на рис. 2.
Таким образом, на ряду с двумя файлами древовидной структуры база знаний содержит еще три файла библиотечной структуры - две библиотеки списков научных трудов и библиотека, содержащая информацию (тексты) о научных трудах. Все три файла имеют одинаковую структуру (рис. 4). Основной информационной единицей данных файлов является раздел, имеющий свой уникальный в пределах
файла идентификатор.Оглавление библиотечного файла является одним из разделов библиотеки и
может находиться в любом ее месте. Отличие оглавления от остальных разделов заключается в том, что этот раздел не имеет своего идентификатора, а ссылка на него находится в описателе файла, находящегося в начале файла
(первые шесть байт файла). Оглавление, как раздел библиотеки, состоит из
элементов длинной 10 байт, содержащих необходимую для работы с разделом информацию: идентификатор раздела, длину раздела, ссылку на раздел (адрес относительно начала файла).
Библиотеки списков рефератов содержат разделы переменной длины. Каждый раздел является списком идентификаторов элементов знаний. Длина идентификатора равнвна 4-ем байтам. Количество идентификаторов определяется из длины раздела. Раздел библиотеки, содержащей собственно элемент знаний в виде реферата научной работы, должен быть разделен на фрагменты в соответствии с формулой исследования. При этом разделителем служит символ '\1' (код 01). Первый фрагмент раздела содержит атрибуты статьи (18 байтпо одному на каждый атрибут) и ее название. Далее по формуле исследования.
Атрибуты реферата, заполняемые автором:
байт значение
0 Наличие эксперимента
1 Использование известной методики эксперимента
2 Использование новой (автора) методики эксперимента
3 Подтверждение гипотезы экспериментом
4 Наличие известной теоретической методики расчета
5 Наличие новой(автора) теоретической методики расчета
6 Наличие известной эмпирической методики расчета
7 Наличие новой(автора) эмпирической методики расчета
8 Степень согласованности расчетных и эмпирических
данных по десятибальной шкале
Атрибуты реферата, заполняемые рецензентом:
байт значение
9 Ошибочность методики
10 Неправильное применение методики
11 Ошибочность в оценке гипотезы
12 Подтверждение известной гипотезы
13 Подтверждение новой(автора) гипотезы
14 Степень согласованности расчетных и эмпирических
данных по десятибальной шкале
15-18 Резерв.
Такая структура БЗ позволяет проводить практически независимо друг
от друга процессы построения логической структуры БЗ (категорино -
понятийное пространство) и непосредственно наполнение базы конкретными
знаниями. Ограничение здесь только одно - сначала необходимо создать
элемент КПП и только после этого помещать в него знания. При любых изменениях в структуре КПП элемент знаний остается в БЗ (и может быть ассоциирован с любым другим элементом КПП) до тех пор пока он ассоциирован хотя бы с одним элементом КПП, оставшимся в БЗ. Таким образом, сама проблема трансляции данных при изменении логической структуры отпадает.