На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

SKBML– средство хранения и отображения баз знаний

Статья опубликована в выпуске журнала № 2 за 2006 год.
Аннотация:
Abstract:
Авторы: Евгенев Г.Б. () - , Крюков С.С. () - , Кокорев А.А. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 9459
Версия для печати
Выпуск в формате PDF (1.41Мб)

Размер шрифта:       Шрифт:

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

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

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

·     баз данных;

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

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

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

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

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

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

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

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

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

Система экспертного программирования Sprut ExPro

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

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

Очевидно, что повышение производительности программирования может быть достигнуто на основе использования наиболее перспективных технологий в этой области с дальнейшим их развитием. К числу таких технологий принадлежит объектно-ориентированное программирование (ООП) [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), представляющее собой логическое выражение, составленное из терминов словаря с помощью логических связок. Если предусловие отсутствует, то правило выполняется всегда.

Механизм имеет множество альтернативных реализаций, в число которых входят четыре основных: формулы (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_BASE>

Первая строка содержит указание на то, что далее следует текст на языке 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.

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

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

ранг

имя

наименование

1

PR1

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

2

PR2

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

3

PR3

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

4

PR4T

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

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

имя

наименование

тип

значение

RaspOs$

Расположение вход. и выход. осей

STRING

параллельное

Mt

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

REAL

500

nt

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

REAL

100

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

имя

наименование

тип

значение

Nст

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

INTEGER

2

TypRed$

Тип редуктора

STRING

цилиндрический

MarEd$

Марка электродвигателя

STRING

132M

nh

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

REAL

2900

urz

Передат. отношение редуктора зад.

REAL

29

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

имя

наименование

тип

вход

выход

вид

Mt

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

REAL

*

 

вход

nt

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

REAL

*

 

вход

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

имя

наименование

тип

значение

nt

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

REAL

 

Mt

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

REAL

 

Механизм - Формула Nz = Mt*nt/(0.8*9740) Выходные свойства

имя

наименование

тип

значение

Nz

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

REAL

 

На основе объектно-ориентированного подхода разработана новая технология программирования, объединяющая в себе лучшие качества ЭС и ООП. Для представления и хранения данных баз знаний применен прогрессивный язык 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.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=504
Версия для печати
Выпуск в формате PDF (1.41Мб)
Статья опубликована в выпуске журнала № 2 за 2006 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: