About | Projects | Publications | Contacts
Русский | English

Case Study 1: The IrkutskNIIHimmash project № 052013

Personal Knowledge Base Designer was used in the project of Irkutsk research and design institute of chemicaland petrochemical engineering (IrkutskNIIHimmash) № 052013 «Development of the domain-specific editor for rule-based knowledge base engineering in the case of problems of assesment of technical conditions and residual life».

In this project the PKBD functionality was expanded in terms of supporting the domain-specific editor mode, and a knowledge base for predicting the development of degradation processes in the petrochemical industry was developed. The conceptual models developed in collaboration with IrkutskNIIHimmash experts were used as a source of information. These models were subjected to meaningful analysis and transformation using PKBD. Fragments containing cause-and-effect and other dependencies sufficient for building knowledge base elements were extracted from the models. 26 conceptual models containing 256 concepts and 208 relationships were built and analyzed. As a result of the analysis, a knowledge base was developed. This knowledge base contains 18 templates for facts, 18 templates for rules, 4 initial facts and 30 specific rules describing the degradation processes of corrosion fatigue, corrosion cracking and hydrogen embrittlement. On the basis of the created rule-based model the code for the knowledge base in the CLIPS format is generated. The detail description of the application is presented in:
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.

The process of knowledge bases engineering based on the analysis of the conceptual models can be presented in the form of a diagram (Fig.1).

The diagram of knowledge base engineering based on the analysis of conceptual models using PKBD
Fig.1 The diagram of knowledge base engineering based on the analysis of conceptual models using PKBD

Next, let’s consider the example of developing a fragment of the knowledge base according to this diagram by analyzing one conceptual model.

Step 1. As a result of the analysis of the conceptual model (Fig.2, the model is translated into English) the main concepts were identified: mechanical stress, metarial, technological environment, the object of the incident, event and mechanism. Each concept is characterized by a set of properties. Relationships are also defined between concepts. Extracted concepts are converted to fact templates with slots, and relationships are converted to rule templates.

The example of the analyzed model in the form of a UML class diagram (IBM Rational Rose)
Fig.2 The example of the analyzed model in the form of a UML class diagram (IBM Rational Rose)

Step 2. The resulting templates were edited using PKBD wizards (Fig.3). In this case, each template coresponds to the RVML scheme (Fig.4).

An example of the template editing wizard
Fig.3 An example of the template editing wizard

RVML representation of the rule template
Fig.4 RVML representation of the rule template

Step 3. Facts and rules were created on the basis of defined templates (Fig.5-6).

An example of the fact creation wizard
Fig.5 An example of the fact creation wizard

RVML rule representation
Fig.6 RVML rule representation

Step 4. Testing the knowledge base was carried out with the aid of a special wizard. This wizard uses the initial facts (Fig.7) and makes a logical inference with details for each step (Fig.8).

A GUI form of testing knowledge base: the initial facts preview
Fig.7 A GUI form of testing knowledge base: the initial facts preview

A knowledge base testing GUI form: the activated rules preview
Fig.8 A knowledge base testing GUI form: the activated rules preview

Step 5. It is possible to create a prototype of the expert system (Fig.9-10) dased on the test results. PKBD is used as an interpreter for the ES created.

An expert system GUI form: entering initial facts
Fig.9 An expert system GUI form: entering initial facts

An expert sytem GUI form: activated rules preview
Fig.10 An expert sytem GUI form: activated rules preview

A fragment of CLIPS code obtained:

(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) )) ) …

A fragment of CFM specifications:

[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 News:

03.03.2020
PKBD 4.2020.0303
01.02.2018
PKBD 4.2018.0201
28.10.2016
PKBD 4.2016.1028
15.10.2015
PKBD 3.2015.1015