Научная статья на тему 'Skbml - средство хранения и отображения баз знаний'

Skbml - средство хранения и отображения баз знаний Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
108
37
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Skbml - средство хранения и отображения баз знаний»

SKBML - СРЕДСТВО ХРАНЕНИЯ И ОТОБРАЖЕНИЯ

БАЗ ЗНАНИЙ

Г.Б. Евгенев, С.С. Крюков, А.А. Кокорев

В информационном обществе XXI века глобальным средством обмена информацией, включая базы знаний, является Интернет. Для того чтобы Интернет мог выполнять свои функции, он должен быть снабжен базовым языком передачи информации со стандартным синтаксисом. Наиболее известным и широко распространенным языком такого типа является разработанный в 1991 г. язык описания web-страниц HTML.

Вместе с тем HTML не пригоден для представления многих типов документов, например:

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

• баз данных;

• документов, которые должны быть представлены в виде иерархической структуры.

Для ликвидации этих недостатков в 1998 г. был разработан расширяемый язык разметки Extensible markup language, или XML. По сравнению с HTML, у XML чрезвычайно гибкий синтаксис, что позволяет использовать его для описания практически любого вида информации, от обычного текста до сложной базы данных. В этой связи он и назван расширяемым. Помимо этого, XML-документ в сочетании с таблицей стилей или традиционной HTML-страницей может быть отображен в web-браузере. Таким образом, XML обеспечивает идеальное решение при обработке все более расширяющегося потока информации увеличивающейся сложности, которая размещается в Интернете [1].

XML имеет следующие преимущества:

- простота и удобство структурирования, описания и обмена данными;

- простота чтения людьми и компьютерами;

- объектная ориентация;

- широкое распространение;

- общепринятость в глобальном масштабе.

В настоящее время происходит бурное развитие XML-приложений в самых разнообразных областях: в работе с базами данных, с векторной графикой, в форматировании математических формул, при обмене финансовой информацией и т.д. Имеются XML-приложения и в области искусственного интеллекта (ИИ), в частности, для простого (SRML) и расширенного (XRML) представления правил баз знаний. Однако в традиционных схемах баз знаний логический вывод на основе правил производит инвариантная машина вывода,

работающая в режиме интерпретации. Описываемая далее система экспертного программирования генерирует специализированные машины вывода для решения конкретных задач [2].

Система экспертного программирования БргШ ЕхРго

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

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

Очевидно, что повышение производительности программирования может быть достигнуто на основе использования наиболее перспективных технологий в этой области с дальнейшим их развитием. К числу таких технологий принадлежит объектно-ориентированное программирование (ООП) [3].

Концептуальной основой ООП являются следующие основные принципы [3]: абстрагирование, иерархичность, ограничение доступа, модульность.

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

Одно из наилучших определений ИИ приведено в работе [4]: «Искусственный интеллект -это одно из направлений информатики, целью которого является разработка аппаратно-программных средств, позволяющих пользователю-непрограммисту ставить и решать свои, традиционно считающиеся интеллектуальными задачи, общаясь с ЭВМ на ограниченном подмножестве естественного языка».

Одним из наиболее распространенных программных продуктов технологии ИИ являются

экспертные системы (ЭС). При построении ЭС были учтены уроки предшествующих исследований в области ИИ. Важнейшим из этих уроков явилось положение, согласно которому мощность ЭС обусловлена в первую очередь мощностью базы знаний, содержащей правила принятия решений, и только во вторую очередь - методами логического вывода, основанными на этих правилах. Как показал опыт развития ИИ, важнее иметь разнообразные специальные знания, а не общие процедуры вывода [5]. Это положение использовано в экспертном программировании, в котором программы, реализующие функции вывода, генерируются применительно к каждому набору правил, составляющих базу знаний. В итоге получается интегрированное программное средство, включающее и правила, и аналог машины вывода [6].

На рисунке 1 представлена функциональная схема системы экспертного программирования. Основным входом системы являются неформализованные знания в том виде, в котором они традиционно представляются в книгах, методиках, стандартах. На выходе формируются программные средства и формализованные знания, способы представления и хранения которых описываются здесь. Формализованные знания могут использоваться повторно для создания новых баз знаний. Процесс компьютеризации знаний производится с помощью инструментальной среды Sprut ExPro под управлением пользователя.

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

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

рый был бы способен покрыть все проблемы прикладного программирования.

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

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

Хранение данных продукционной базы знаний

Для хранения продукционной базы знаний необходимо построить концептуальную модель, определяющую логическую структуру данных. В нотации, принятой для XML в системе «XML Spy» фирмы «Altova Gmbh» (www.altova.com), модель базы знаний содержит в качестве обязательных составных частей словарь (Dictionary), а также множество правил-продукций (Rule) и методов (Method).

Словарь должен содержать набор терминов и может включать списки допустимых значений некоторых терминов, принадлежащих к числу перечисляемых переменных. Каждый метод, представляющий собой реализацию специализированной машины вывода, должен включать описание своей структуры (Structure), а также входные (Met_input) и выходные (Met_output) переменные, состоящие из набора терминов словаря.

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

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

Неформализованные знания

Решения пользователя

Компьютеризация знаний

Формализованные знания

Sprut ExPro

Программные средства

Рис. 1. Функциональная схема системы экспертного программирования

Механизм имеет множество альтернативных реализаций, в число которых входят четыре основных: формулы (Formula), таблицы (Table), запросы к базам данных (Query) и программы (Program). Формулы пишутся в традиционном представлении с использованием идентификаторов терминов из словаря. Таблицы могут быть много-входовыми и содержать несколько уровней заголовков (Head) и боковиков (Side), сформированных из терминов словаря с ограничениями. Множество ячеек (Cell) таблицы содержат одно или несколько значений выходных переменных. Запросы к базам данных пишутся в традиционном представлении и позволяют получить один или несколько наборов выходных переменных. В последнем случае окончательный выбор остается за пользователем. Программы могут быть представлены в форме exe-модулей или в форме dll. В случае механизма типа запроса к базе данных или вызова подпрограммы в правиле производится согласование с идентификаторами терминов словаря имен полей таблицы базы данных или входных и выходных переменных подпрограммы.

Итак, мы описали форму, которой должно соответствовать сохраняемое на языке XML содержание базы знаний. Генерация содержания базы знаний на этом языке производится системой Sprut ExPro (на рисунке 1 это отображено в виде стрелки «Формализованные знания»).

Представим фрагмент XML-модели простой базы знаний «Определение свойств редуктора», состоящей из четырех правил. <?xml version="1.0" encoding="UTF-8"?>

<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by 1 (1) -->

<KNOWLEDGE_BASE xmlns="http://knowledge_base.com/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://knowledge_base.com/namespace C:\PROGRA~1\Altova\XMLSPY~1\SKBML.xsd"> <Dictionary>

<Term Ident="Mt" Name="Момент крутящий на выходном валу, Нм" Type="real"/>

<Term Ident="nt" Name="Частота вращения на выходе, об/мин" Type="real"/>

<Term Ident="RaspOs$" Name="Расположение вход. и выход. осей" Type="string"/>

<AssList Ident="RaspOs$" Term_Name="Расположение вход. и выход. осей" Term_Value="параллельное"/>

<AssList Ident="RaspOs$" Term_Name="Расположение вход. и выход. осей" Term_Value="перпендикулярное"/> </Dictionary>

<Rule IdRule="PR1" RulName="Расчет мощности электродвигателя" RulAuthor="Евгенев Г.Б."> <Rule_input>

<Term Ident="nt" Name="Частота вращения на выходе, об/мин" Type="real"/>

<Term Ident="Mt" Name="Момент крутящий на выходном валу, Нм" Type="real"/> </Rule_input> <Rule_output>

<Term Ident="Nz" Name="Мощность электродвигателя потребная, кВт" Type="real"/> </Rule_output> <Mechanism>

<Formula Formula="Nz=Mt*nt/(0.8*9740)"/>

</Mechanism>

</Rule>

<Method IdMet="Privod" MetName="Определение свойств редуктора" MetAuthor="Евгенев Г.Б.">

<Structure Rank="1" IdRule="PR1" RulName="Расчет мощности электродвигателя"/>

<Structure Rank="2" IdRule="PR2" RulName="Выбор электродвигателя"/>

<Structure Rank="3" IdRule="PR3" RulName="Расчет заданного передаточного отношения"/>

<Structure Rank="4" IdRule="PR4" RulName="Выбор типа редуктора"/>

<Met_input>

<Term Ident="Mt" Name="Момент крутящий на выходном валу, Нм" Type="real"/>

<Term Ident="nt" Name="Частота вращения на выходе, об/мин" Type="real"/>

<Term Ident="RaspOs$" Name="Расположение вход. и выход. осей" Type="string"/> </Met_input> <Met_output>

<Term Ident="TypRed$" Name="Тип редуктора" Type="string"/>

<Term Ident="Nst" Name="Количество ступеней" Type="integer"/>

<Term Ident="urz" Name="Передаточное отношение редуктора заданное" Type="real"/>

<Term Ident="nh" Name="Частота вращения на входе, об/мин" Type="real"/>

<Term Ident="MarEd$" Name="Марка электродвигателя" Type="string"/> </Met_output>

</Method> </KNOWLEDGE_B AS E>

Первая строка содержит указание на то, что далее следует текст на языке XML с указанием версии и кодировки. Во второй строке содержится комментарий с указанием средства, с помощью которого была разработана приведенная выше модель структуры документа. В последующих трех строках - служебная информация, в частности, расположение и имя файла, содержащего концептуальную модель (SKBML.xsd). Текст XML-моде-ли считается правильным (валидным), если он полностью соответствует этой концептуальной модели.

Далее следует содержание словаря, во фрагменте которого три термина и один список значений. Объект «Термин» (Term) имеет три атрибута: идентификатор (Ident), наименование (Name) и тип (Type). «Список значений» (AssList) относится к термину «Расположение вход. и выход. осей» и содержит два значения - «параллельное» и «перпендикулярное».

После словаря приведено описание одного из правил «Расчет мощности электродвигателя». Объект «Правило» (Rule) имеет три атрибута: идентификатор (IdRule), наименование (RulName) и автор (RulAuthor). Данное правило имеет две входных переменных «Частота вращения на выходе, об/мин», а также «Момент крутящий на входном валу, Нм» и выходную переменную «Мощность электродвигателя потребная, кВт». Механизм содержит формулу

Nz=Mt*nt/(0.8*9740).

Последним описан объект «Метод». Как и «Правило», он имеет три атрибута: идентификатор (IdMet), наименование (MetName) и автор (MetAuthor). «Структура» (Structure) метода имеет три атрибута: ранг (Rank), идентификатор правила (IdRule) и наименование правила (RulName). Правила метода упорядочены по мере определения необходимых для каждого входных и управляющих переменных. Описания входных и выходных переменных метода аналогичны соответствующим описаниям у правил.

Отображение данных продукционной базы знаний

Данные XML-модели базы знаний должны быть представлены в наглядной и удобной форме. Наиболее распространенным и мощным средством отображения является язык HTML. Для автоматического преобразования XML-модели в HTML фирмой «Altova Gmbh» (www.altova.com) разработан XSLT Designer.

Преобразование производится за четыре шага: загрузить концептуальную модель XML-докумен-та (например SKBML.xsd), назначить рабочий XML-документ (например Privod.xml), в режиме «drag and drop» сформировать схему элементов в окне системы (рис. 2), в окне встроенного Internet Explorer получить результат, представленный ни-

Входные свойства

Выходные свойства

urz Передат. отношение ре- REAL 29

дуктора зад.

Словарь метода

имя наименование тип вход выход вид

Mt Момент крутящий на выходном валу, Нм REAL * вход

nt Частота вращения на выходе, об/мин REAL * вход

МИЗ: "PR1 " - Расчет мощности электродвигателя

Входные свойства

имя наименование тип значение

nt Частота вращения на выходе, об/мин REAL

Mt Момент крутящий на выходном валу, Нм REAL

Механизм - Формула

Nz = Mt*nt/(0.8*9740) Выходные свойства

имя наименование тип значение

Nz Мощность электродвигателя потребная, кВт REAL

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

На основе объектно-ориентированного подхода разработана новая технология программирования, объединяющая в себе лучшие качества ЭС и ООП. Для представления и хранения данных баз знаний применен прогрессивный язык XML и связанные с ним информационные технологии. Опыт использования этой технологии показал, что она реализует основную концепцию ИИ, обеспечивая пользователю-непрограммисту возможность ставить и решать свои, традиционно считающиеся интеллектуальными задачи, общаясь с компьютером на ограниченном подмножестве естественного языка.

С применением экспертного программирования разработаны большие промышленные базы знаний конструкторского и технологического назначения. База знаний проектирования технологических процессов механической обработки для системы СПРУТ-ТП (www.sprut.ru) включает более 3000 правил. В процессе работы над этой базой, в частности, было автоматически сгенерировано 56589 операторов языка типа Паскаль со средней производительностью 700 операторов в день.

Список литературы

1. Янг М.Дж. XML. Шаг за шагом: Практ. пособ. /Пер. с англ. - М: Изд-во ЭКОМ, 2002.- 384 с.

2. Евгенев Г.Б. Системология инженерных знаний: Учеб. пособ. для вузов - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. -520с.

3. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. / Пер. с англ. - М.: Бином; СПб.: Невский диалект, 1998. - 560с.

4. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. - СПб: Питер, 2000.- 384 с.

5. Попов Э.В. Экспертные системы: Решение неформализованных задач в диалоге с ЭВМ. - М.: Наука, 1987. - 288с.

6. Евгенев Г.Б., Кобелев А.С., Борисов С.А. Технология экспертного программирования. // Информационные технологии. - 2002. - №3. - С.2 - 9.

имя наименование тип значение

№ст Количество ступеней INTEGER 2

TypRed$ Тип редуктора STRING цилиндрический

MarEd$ Марка электродвигателя STRING 132M

nh Частота вращения на входе, об/мин REAL 2900

же.

Метод: "PRIVOD" - Метод агента "Привод"

МИЗ Метода

ранг имя наименование

1 PR1 Расчет мощности электродвигателя

2 PR2 Выбор электродвигателя

3 PR3 Расчет заданного передаточного отношения

4 PR4T Выбор типа редуктора

имя наименование тип значение

RaspOs$ Расположение вход. и выход. осей STRING параллельное

Mt Момент крутящий на выходном валу, Нм REAL 500

nt Частота вращения на выходе, об/мин REAL 100

i Надоели баннеры? Вы всегда можете отключить рекламу.