О нас | Наши проекты | Публикации | Контакты
Русский | English

Договор с АО «ИркутскНИИхиммаш» № 052013 НИР

Personal Knowledge Base Designer использовался при выполнении работ по договору с АО «ИркутскНИИхиммаш» № 052013 НИР «Разработка проблемно-ориентированного редактора продукционных БЗ для задач оценки технического состояния и остаточного ресурса».

В ходе выполенния проекта была расширена функциональность PKBD в части поддержки режима функционирования в форме проблемно-ориентированного редактора, а также разработана база знаний для прогнозирования развития деградационных процессов в нефтехимии. В качестве источника информации использовались предметные концептуальные модели, разработанные в сотрудничестве с экспертами АО «ИркутскНИИхиммаш».

Данные модели были подвергнуты содержательному анализу и трансформации с использованием PKBD. Из моделей выделялись фрагменты, содержащие причино-следственные и иные зависимости, достаточные для построения элементов базы знаний. В общей сложности было построено и проанализировано 26 conceptual models containing 256 concepts and 208 relationships. В результате анализа была разработана база знаний содержащая: 18 шаблонов фактов, 18 шаблонов правил, 4 начальных (initial) факта и 30 конкретных правил описывающих деградационные процессы коррозионной усталости, коррозионного растрескивания и водородного охрупчивания. На основе созданной продукционной модели сгенерирован код БЗ в формате CLIPS. Детальное описание применения приведено в работе:
Yurin A.Yu., Dorodnykh N.O., Nikolaychuk O.A., Grishenko M.A. Prototyping Rule-Based Expert Systems with the Aid of Model Transformations // Journal of Computer Science, 2018, 14 (5): 680-698.

Процесс разработки баз знаний на основе анализа рассмотренных концептуальных моделей может быть представлен в виде схемы (Рис.1).

Схема разработки баз знаний на основе анализа концептуальных моделей с использованием PKBD
Рис.1 Схема разработки баз знаний на основе анализа концептуальных моделей с использованием PKBD

Далее рассмотрим пример разработки фрагмента базы знаний согласно данной схеме на примере анализа одной концептуальной модели.

Этап 1. В результате анализа концептуальной модели (Рис.2, модель переведена на английский) были выделены основные сущности: механические нагрузки, метариал, технологическая среда, объект инцидента, наблюдаемое событие и наблюдаемый механизм. Каждая сущность характеризуется набором свойств. Между сущностями также определены отношения. Выделенные сущности преобразованы в шаблоны-фактов со слотами, а отношения – в шаблоны правил.

Пример анализируемой модели в форме UML диаграмм классов (IBM Rational Rose)
Рис.2 Пример анализируемой модели в форме UML диаграмм классов (IBM Rational Rose)

Этап 2. Полученные шаблоны были отредактированы с использованием мастеров PKBD (Рис.3). При этом каждому шаблону соотвествует RVML схема (Рис.4), обеспечивающая визуализацию представления.

Пример мастера редактирования описания шаблона
Рис.3 Пример мастера редактирования описания шаблона

RVML представление шаблона правила
Рис.4 RVML представление шаблона правила

Этап 3. На основе уточненных шаблонов созданы факты и правила-экземпляры (Рис.5-6).

Пример мастера ввода факта
Рис.5 Пример мастера ввода факта

RVML представление правила
Рис.6 RVML представление правила

Этап 4. Тестирование базы знаний осуществлялось с помощью специального мастера, который на основе начальных фактов (Рис.7) обеспечивает построение цепочки рассуждений с детализацией каждого шага (Рис.8).

Форма тестирования базы знаний: просмотр начальных фактов
Рис.7 Форма тестирования базы знаний: просмотр начальных фактов

Форма тестирования базы знаний: просмотр активированных правил
Рис.8 Форма тестирования базы знаний: просмотр активированных правил

Этап 5. По результатам тестирования возможно создание прототипа экспертной системы (Рис.9-10). При этом PKBD используется в качестве интерпретатора.

ЭС: ввод начальных фактов
Рис.9 ЭС: ввод начальных фактов

ЭС: просмотр активированных правил
Рис.10 ЭС: просмотр активированных правил

Также был получен CLIPS код (фрагмент):

(deftemplate exist-meh ;наблюдаемая механизм (slot caption-meh (default "CORROSION FATIGUE")) ;наименование (slot meh-cf (default 1)) ;коэффициент уверенности ) (deftemplate exist-kin ;наблюдаемая кинетика отказа (slot caption (default "KINETICS 'CORROSION FATIGUE'")) ;наименование (slot caption-meh (default "CORROSION FATIGUE")) ;ссылка на механизм (slot cf (default 1)) ;выявления событий - ) ;************************ Facts ******************************* (deffacts initial-settings (mechanical-stress-const ;mechanical-stress-const (stress-value 0) (cycle-frequency "HIGH") (cf 1) ) (technological-environment ;technological-environment (ph "ACTIVE") (properties-alternation "YES") (cf 1) ) (incident-object ;incident-object (cf "1") (caption "PIPE INTO PIPE") ) (material ;material (cf "1") (type "STEEL") (chemical-prop-alloying "LOW-ALLOY STEEL") ) ) ;************************* Rules ****************************** (defrule fai-mechanism-ky-1001 "правило выявления /механизма/: если имеются механические нагрузки высокой частоты и активная технологическая среда с чередующимися свойствами и материал низколегированная сталь и имеются дефекты изготовления то может возникнуть механизм коррозионная усталость" (mechanical-stress-const ;механические нагрузки (cycle-frequency "HIGH") ;----------- ) (technological-environment ;технологическая среда (ph "ACTIVE") ;водородный показатель (properties-alternation "YES") ;чередование свойств среды /да/нет/ ) (material ;материал (type "STEEL") ;вид (chemical-prop-alloying "LOW-ALLOY STEEL") ;легированность ) (making-defects ;дефекты изготовления (caption-technological-heredity ?id-th-m1) ;ссылка на технологическую наследственность ) => (assert (exist-event ;exist-event (caption "MECHANISM 'CORROSION FATIGUE'") ;может возникнуть /механизм/ (cf "0,9") ;ку )) (assert (exist-meh ;exist-meh (caption-meh "CORROSION FATIGUE") ;может возникнуть /механизм/ (meh-cf "0,9") ;ку )) ) (defrule fai-kinatics-ky-1001 "правило выявления /кинетики/: если наблюдается механизм коррозионная усталость то может возникнуть кинетика коррозионная усталость" (exist-event ;exist-event (caption "MECHANISM 'CORROSION FATIGUE'") ;наблюдается /механизм/ (cf ?x) ) => (assert (exist-kin ;exist-kin (caption "KINETICS 'CORROSION FATIGUE'") ;может возникнуть /кинетика/ (caption-meh "CORROSION FATIGUE") (cf ?x) )) ) (defrule fai-kinatic-events-ky-1001 "правило выявления /параметры/события кинетики/: если наблюдается кинетика коррозионная усталость то могут наблюдаться события: утечка рабочей среды через сквозные трещины и полный выброс рабочей среды" (exist-kin ;exist-kin (caption "KINETICS 'CORROSION FATIGUE'") ;наблюдается /кинетика/ (cf ?x) ) => (assert (exist-event ;exist-event (caption "LEAKAGE OF THE WORKING ENVIRONMENT THROUGH THE THROUGH CRACKS") ;может возникнуть /событие/ (probabilityrel "1") (caption-kin "KINETICS 'CORROSION FATIGUE'") (cf ?x) )) (assert (exist-event ;exist-event (caption "COMPLETE RESET OF THE WORKING ENVIRONMENT") ;может возникнуть /событие/ (probabilityrel "1") (caption-kin "KINETICS 'CORROSION FATIGUE'") (cf ?x) )) ) …

CFM спецификации (фрагмент):

[Metadata] ;exist-dam tempale_name=exist-dam edited_by_user=Yes [Fields] id-dam=val0:1 caption-dam=val1:1 dam-type=val2:1 dam-stress-type=val3:1 dam-mesto-zarozdenia=val4:1 dam-istochnik=val5:1 dam-mestopolozenie=String dam-orientacia=String dam-glubina=String dam-dlina=String dam-diametr=String dam-forma=String dam-kolichestvo=String dam-velichina-raskritia=String dam-tech-pered-razrusheniem=String dam-napravlenie=String caption-def=String id-def=String caption-meh=String dam-cf=val6:1 [Captions] id-dam=id-dam caption-dam=caption-dam dam-type=dam-type dam-stress-type=dam-stress-type dam-mesto-zarozdenia=dam-mesto-zarozdenia dam-istochnik=dam-istochnik dam-mestopolozenie=dam-mestopolozenie dam-orientacia=dam-orientacia dam-glubina=dam-glubina dam-dlina=dam-dlina dam-diametr=dam-diametr dam-forma=dam-forma dam-kolichestvo=dam-kolichestvo dam-velichina-raskritia=dam-velichina-raskritia dam-tech-pered-razrusheniem=dam-tech-pered-razrusheniem dam-napravlenie=dam-napravlenie caption-def=caption-def id-def=id-def caption-meh=caption-meh dam-cf=dam-cf [Values] val0:1=crack val1:1=perpendicularly;constructive_stress_concentrator_formed_by_the_intersection_of_holes;surface_damage;hole;crack val2:1=longitudinal;perpendicularly val3:1=corrosion_fatigue;longitudinal;single val4:1=semi-elliptic;single;corrosion_fatigue val5:1=corrosion_fatigue val6:1=1


RSS.The Knowledge Core Новости: