не рассчитан, то разработка отнимет очень много времени и сил. В частности, есть набор нюансов при работе с сессиями, начиная с использования AJAX и интеграции с Hibernate, и заканчивая проблемами системного управления сессиями при увеличении масштабируемости системы.
Литература
1. PrimeFaces ShowCase [Электронный ресурс]. - Режим доступа: http://www.primefaces.org/showcase/ - Дата доступа: 26.04.2016.
2. Çivici Ç. PrimeFaces User Guide 5.3 [Электронный ресурс]. - Режим доступа: http://www.primefaces.org/docs/guide/primefaces user guide 5 3.pdf- Дата доступа: 26.04.2016.
3. Zeroturnaround [Электронный ресурс]. - Режим доступа: http://zerotumaround.com/rebellabs/the-curious-coders-java-web-frameworks-comparison-spring-mvc-grails-vaadin-gwt-wicket-play-struts-and-jsf/ - Дата доступа: 26.04.2016.
4. Zeroturnaround [Электронный ресурс]. - Режим доступа: http://zeroturnaround.com/rebellabs/top-4-java-web-frameworks-revealed-real-life-usage-data-of-spring-mvc-vaadin-gwt-and-j sf/ - Дата доступа: 26.04. 2016
5. Zeroturnaround [Электронный ресурс]. - Режим доступа: http://javasource.ru:5050/articles.xhtml?artlink=jsf-lifecycle - Дата доступа: 26.04. 2016
УДК 004.89
НОТАЦИЯ ДЛЯ ПРОЕКТИРОВАНИЯ БАЗ ЗНАНИЙ ПРОДУКЦИОННЫХ
ЭКСПЕРТНЫХ СИСТЕМ910
Юрин Александр Юрьевич, к.т.н., ведущий научный сотрудник, заведующий лабораторией, Институт динамики и теории управления им. В.М. Матросова СО РАН (ИДСТУ СО РАН), Иркутск; доцент кафедры Института кибернетики им. Е.И. Попова, Иркутский национальный исследовательский университет (ИрНИТУ), Иркутск, iskander@icc.ru
Введение
Проектирование программного обеспечения для решения различных предметных задач требует создания специализированных программных инструментальных средств, новых подходов или расширения и модификации уже существующих.
Одной из разновидностей прикладного программного обеспечения являются экспертные системы (ЭС), моделирующие процесс рассуждения эксперта при принятии им решений. Центральным элементом ЭС является база знаний (БЗ), представленная множеством систематизированных знаний, описывающих закономерности какой-либо предметной области, при ее создании решаются задачи концептуализации, формализации и моделирования предметной области на определенном языке представления знаний. В настоящий момент можно выделить несколько направлений к повышению эффективности создания экспертных систем и систем, основанных на знаниях:
• Применение систем онтологического и когнитивного моделирования, CASE-средств (Protégé, FreeMind, Xebece, TheBrain, XMind, IBM Rational Rose, StarUML и др.), которые позволяют создать графические модели, соответствующие ключевым абстракциям программного обеспечения. Однако, большинство из подобных систем не охватывают все этапы создания баз знаний и экспертных систем и не обеспечивают
9 Работа выполнена при частичной финансовой поддержке РФФИ, проект № 15-07-03088
10 Лауреат номинации "Лучший доклад по UML-моделированию". Автор доклада награждается правом бесплатной публикации одного доклада по данной тематике на следующей конференции
48
комплексность процесса разработки: от модели предметной области до программного кода, в некоторых случаях позволяя получить лишь графические изображения структур баз знаний. За исключением Protégé, который позволяет синтезировать ограниченный набор элементов баз знаний, в частности, на CLIPS/COOL.
• Применение специализированных редакторов баз знаний и оболочек экспертных систем (Expert System Designer, Expert System Creator, ARITY Expert Development Package, CxPERT, Exsys Developer и др.), которые позволяют реализовать формализованное описание понятий предметной области и структур баз знаний на определенном ЯПЗ, но обладают низкой интеграционной способностью с системами визуального моделирования и модулями интерпретации знаний, в большинстве случаев поддерживая один определенный ЯПЗ.
• Применение интегрированных сред разработки и унифицированных подходов, которые обеспечивают охват всех этапов жизненного цикла систем, основанных на знаниях, и интеграцию первых двух направлений. При наличии в данной области решений, таких как АТ-ТЕХНОЛОГИЯ [1], необходимо отметить общую тенденцию к использованию концептуальных моделей при создании баз знаний и ориентацию на непрограммирующих пользователей [2-7], активно развиваются подходы к созданию интеллектуальных систем на основе онтологий и семантических технологий [8], предназначенные для применения в сети Интернет. При этом остается актуальным создание отчуждаемых от сред разработки многоплатформенных экспертных систем, что обусловлено необходимостью перенесения разработок на другую технологическую или программную платформу (операционную систему или ЯПЗ).
Нотация Rule Visual Modeling Language
Одним из решений данной проблемы является использование подходов, основанных на порождающем программировании [9], в частности, модельно-управляемом подходе - Model Driven Development (MDD) и его разновидностях, например, Model Driven Architecture (MDA) [10-12] - концепции реализации MDD от Object Management Group (OMG).
Подход MDA/MDD [10-12] - перспективное направление в области программной инженерии, предполагающее разработку программных систем на основе трансформации и интерпретации информационных моделей. Основные задачи данного направления связаны с разработкой методов и средств, автоматизирующих и снижающих сложность (трудоемкость) разработки программных систем.
Важным аспектом применения MDA является визуальное моделирование. При этом MDA традиционно использует UML (Unified Modeling Language) для построения моделей предметной области [12]. Необходимо отметить, что применение MDA для решения определенных задач (т.е. его специализация) требует использования расширений UML [13]. Расширения позволяют учесть особенности: предметной области (телекоммуникации, здравоохранение и т.д.), архитектуры (реальное время, безопасность и т.д.) или языков программирования и формализмов (CORBA, Prolog и т.д.). Язык UML не предназначен для наглядного и однозначного представления причинно-следственных зависимостей, по этой причине предлагается разработать его расширение - Rule Visual Modeling Language (RVML) и использовать его в составе инструментария [14] для представления продукций.
Rule Visual Modeling Language основан на UML (Таблица 1) и в качестве основных элементов использует понятия «класс» и «ассоциация». Данная нотация позволяет описать причинно-следственные отношения и абстрагироваться от языков программирования продукционных баз знаний.
В свою очередь, уточнение отдельных элементов нотации (приоритет правила (В), значение коэффициента уверенности (КУ), значение слота «по умолчанию») позволяет
учесть особенности некоторых языков программирования баз знаний, например, CLIPS (C Language Integrated Production System).
Таблица 1. Описание основных элементов RVML
Элемент
Шаблон
Условие правила (факт-антецедент)
Изображение элемента
Имя шаблона
КУ
_ I I
<имя слота> <знак> <значение>
Факт (консеквент)
Узловой элемент правила («Ядро»)
Имя правила
КУ В
Связь между элементами
Оператор действия: добавление факта
- + -
Оператор действия: удаление факта
---
Пример применения нотации RVML
Рассмотрим пример применения нотации RVML на примере проектирования баз знаний продукционных экспертных систем.
Рис. 1 - Пример диаграммы классов UML
В результате решения задач идентификации и концептуализации строится концептуальная модель предметной области, например, в форме диаграммы классов иЖЬ (Рис.1). В данном примере рассмотрена задача создания базы знаний продукционной
экспертной системы для прогнозирования развития деградационных процессов, наблюдаемых в деталях машин и конструкций на нефтехимических производствах. В частности, построенная концептуальная модель позволяет выделить такие предметные понятия, как: механизм деградационного процесса (exist-mech), материал объекта (material), технологическая среда (technological-environment) и др., а также отобразить связи между ними. Для создания модели использовалось CASE-средство IBM Rational Rose.
Используя средство автоматизации - специализированный редактор Personal Knowledge Base Designer [14], разработанная концептуальная модель анализируется [15] и на ее основе формируются элементы базы знаний: шаблоны фактов и обобщенные правила (Рис.2). Дальнейшее заполнение шаблонов фактов и обобщенных правил (их конкретизация) позволяет получить не только их графическое отображение в виде RVML (Рис.3) но и программный код баз знаний, например, на CLIPS.
Рис. 2 - Пример обобщенного правила в нотации RVML
Рис 3 - Пример правила в нотации RVML 51
Фрагмент программного кода CLIPS, соответствующего примеру на Рис.3:
(deftemplate mechanical-stress-const ;механические нагрузки -
статические/постоянные/
(slot stress-const-type) ;вид статических нагрузок/внутреннее
давление/мпа//сосредоточенная нагрузка /мн//распределенная нагрузка/ (slot stress-value (default 0)) ; величина нагрузок
(slot tension-type) ;вид напряжения /растягивающие / сжимающие / сдвига/ (slot tension-value) ;величина напряжения (slot cycle-amplitude) ;амплитуда цикла (slot cycle-frequency) ;частота цикла
(slot cycle-asymmetry) ;коэффициент асимметрии цикла (slot cycle-average-value) ;среднее значение цикла (slot speed) ;скорость (slot speed-up) ;ускорение
(slot max-stress-value) ;максимальное значение нагрузок (slot cf (default 1)) ;коэффициент уверенности
)
(deftemplate incident-object ;объект инцидента (slot cf (default 1)) ;коэффициент уверенности (slot caption (default "НЕТ ДАННЫХ")) ;наименование объекта
)
(deftemplate technological-environment ;/рабочая/ технологическая среда (slot contents-molecular-hydrogen) ;содержание молекулярного водорода /меньше 10% об/от 10% до 50% об/больше 50 % об/
(slot ph (default "НЕЙТРАЛЬНАЯ")) ;водородный показатель /меньше 0-7 /рабочая среда кислая, кислотность увеличивается к нулю/, = 7 /рабочая среда нейтральная/, больше 7-15 /рабочая среда щелочная, щелочные свойства увеличиваются к 15//
(slot radiation) ;радиация /термическая / электромагнитная / ионизирующая/
(slot properties-alternation) ;чередование свойств среды /да/нет/
(slot environment-humidity) ;влажность среды
(slot environment-flash) ;температура вспышки паров среды
(slot cf (default 1)) ;коэффициент уверенности
(deftemplate material ;материал
(slot cf (default 1)) ;коэффициент уверенности (slot caption (default "НЕ ОПРЕДЕЛЕН")) ;наименование (slot type (default "СТАЛЬ")) ;вид
(slot mechanical-prop-strength-limit) ;предел прочности (slot mechanical-prop-yield-limit) ;свойства стойкости (slot resistance-prop-corrosion) ;стойкость к коррозии (slot resistance-prop-temperature) ;температурная стойкость (slot resistance-prop-wear) ;химические свойства (slot chemical-prop-alloying) ;структура
(slot structure-prop-class) ; структурный класс /мартенситный / ферритный/
defrule dam-mechanism-ky-1001 "правило выявления /механизма/" mechanical-stress-const ;механические нагрузки cycle-frequency "ВЫСОКАЯ") ;-----------
technological-environment ;технологическая среда ph "АКТИВНАЯ") ;водородный показатель
properties-alternation "ДА") ;чередование свойств среды /да/нет/
incident-object ;объект инцидента caption ?id-inc-obj) ;код
material ; материал type "СТАЛЬ") ; вид
(chemical-prop-alloying "НИЗКОЛЕГИРОВАННАЯ СТАЛЬ") ;легированность
)
=>
(assert
(exist-event ;exist-event
(caption "МЕХАНИЗМ 'КОРРОЗИОННАЯ УСТАЛОСТЬ'") ;может возникнуть /механизм/
(cf "0,9") ;ку
))
)
Интерпретация и исполнение полученного кода в редакторе позволяет проверить адекватность разработанных баз знаний и произвести их быстрое прототипирование.
Заключение
Эффективное создание экспертных систем и баз знаний для решения задач в различных предметных областях требует разработки и использования специализированного программного инструментария и новых нотаций, либо расширения и адаптации существующих, с целью создания их «профилей» или расширений.
В работе предлагается нотация Rule Visual Modeling Language (RVML), используемая в качестве дополнения к UML при проектировании баз знаний в рамках модельно-управляемого подхода к разработке экспертных систем, приводится описание основных элементов и пример ее применения.
Предлагаемая нотация позволяет:
• использовать отдельные графические примитивы для отображения всех элементов продукций (а не стереотипы или типизированные классы как в UML);
• присваивать отдельным фактам субъективные вероятности в виде коэффициентов уверенности;
• более наглядно отображать тип выполняемых действий (добавление, удаление, остановка).
В качестве программного средства поддержки нотации использован специализированный редактор Personal Knowledge Base Designer [14].
Нотация и редактор используется в учебном процессе в Иркутском национальном исследовательском техническом университете (ИрНИТУ) при выполнении лабораторных работ по курсам «CASE-средства» и «Инструментальные средства информационных систем». Работа выполнена при частичной финансовой поддержке РФФИ, проект № 15-0703088.
Литература
1. Рыбина Г.В. Инструментальные средства построения динамических интегрированных экспертных систем: развитие комплекса АТ-ТЕХНОЛОГИЯ // Искусственный интеллект и принятие решений. - 2010. - №1. - С. 41-48.
2. Аликин С.С., Жидаков В.П. Разработка платформы создания экспертных систем с применением метапрограммирования // Фундаментальные проблемы радиоэлектронного приборостроения. - 2012. - Т.12. -№6. - С. 80-83
3. Гаврилова Т.А. Онтологический подход к управлению знаниями при разработке корпоративных информационных систем // Новости искусственного интеллекта. - 2003. - № 2. - С. 24-29.
4. Ермаков А.Е., Найденова К.А. Инструментальное средство для автоматизированного создания экспертных систем // Программные продукты и системы. - 2013. - №3. - С. 107-114
5. Стенников В.А., Барахтенко Е.А., Соколов Д.В. Применение онтологий при реализации концепции модельно-управляемой разработки программного обеспечения для проектирования теплоснабжающих систем // Онтология проектирования. - 2014. - №4 (14). -С. 54-68.
6. Nofal M., Fouad K.M. Developing Web-Based Semantic Expert Systems // International Journal of Computer Science (2014), vol. 11 (1), pp. 103-110.
7. Ruiz-Mezcua, B., Garcia-Crespo, A., Lopez-Cuadrado, J. & Gonzalez-Carrasco, I. (2011). An expert system development tool for non AI experts // Expert Systems with Applications (2011), vol.38, pp. 597-609.
8. Голенков В.В., Гулякина Н.А. Принципы построения массовой семантической технологии компонентного проектирования интеллектуальных систем // Открытые семантические технологии проектирования интеллектуальных систем (OSTIS-2011): материалы Междунар. научн.-техн.конф. Минск, 10-12 февраля 2011 г.) - Минск: БГУИР, 2011. - С. 21-58.
9. Чернецки К., Айзенекер У. Порождающее программирование: методы, инструменты, применение / Пер. с англ. - СПб: Питер, 2005. - 736 с.
10. Грибачев К.Г. Delphi и Model Driven Architecture. Разработка приложений баз данных. - СПб: Питер, 2004. - 352 с.
11. Frankel D. Model Driven Architecture: Applying MDA to Enterprise Computing. - New York: Wiley, 2003, 352 p.
12. OMG Model Driven Architecture. URL: http://www.omg.org/mda/ (дата обращения: 10.07.2015)
13. De Miguel M., Jourdan J., Salicki S. Practical experiences in the application of MDA // LNCS. -2002. - Vol. 2460. - Pp. 128-139.
14. Personal Knowledge Base Designer. URL: http://www.knowledge-core.ru/index.php?p=pkbd (дата обращения: 12.11.2015).
15. Дородных Н.О., Юрин А.Ю. Использование диаграмм классов UML для формирования продукционных баз знаний // Программная инженерия. - 2015. - №4. - С. 3-9.
УДК 004.042 004.415.22
РЕАЛИЗАЦИЯ АВТОМАТНОГО ПОДХОДА К ПРОГРАММИРОВАНИЮ НА
ОСНОВЕ ОА-ПАРАДИГМЫ11
Салибекян Сергей Михайлович, к.т.н., доцент Национального исследовательского университета «Высшая школа экономики», Московский институт электроники и математики, Москва,
salibek@yandex.ru
Введение
Автоматный подход к организации вычислительного процесса нашел широкое применение как в области трансляции искусственных языков (абстрактный автомат) [1], так и в области логического управления техническими объектами (структурный автомат). Автоматная парадигма может быть реализована как схемотехнически, так и программно на базе других парадигм вычислительного процесса. Достаточно много работ посвящено реализации автоматного подхода на базе императивной парадигмы вычислительного процесса [2]. В частности, существует автоматное программирование (или программирование с явным выделением состояний) [3,4]. Однако авторы незаслуженно обходят вниманием реализацию автоматного подхода на базе вычислительной системы (ВС), работающей по принципу dataflow (управлением вычислениями с помощью потока данных). Задача нашего исследования - заполнить этот пробел.
В парадигме dataflow [5] вычислительный процесс представляет собой передачу операндов, оформленных в виде токенов (совокупность операнда и его служебной информации) между исполнительными (вычислительными) устройствами. Автоматный подход предполагает наличие нескольких состояний и переход ВС в процессе вычислений из одного состояния в другое. Первый подход асинхронный (хотя встречается и синхронный
11 Статья рекомендована к опубликованию в журнале "Прикладная информатика"
54