New Expert SysTem
Index | Mail | Česky
  
  
  
  
  
  
  
  

Knowledge Base


Elements of Knowledge Base

Knowledge base containts 5 „classes of knowlage“, which were described above (attributes, propositions, rules, contexts, integrity restrictions), and following global properties:

  • base description;
  • name of the expert, who affords knowledges to the base;
  • name of the knowledge engineer, who creates the base;
  • date of the creation;
  • weight range;
  • global context threshold;
  • global condition threshold;
  • implicit inference mechanism;
  • default weight of propositions;
  • global priority.

Knowledge base is stored in the file, which has the syntax based onto XML.


Basic Syntax of Base

 <base>
  <global>
  ...
  </global>
  <attributes>
  ...
  </attributes>
  <contexts>
  ...
  </contexts>
  <rules>
   <apriori_rules>
   ...
   </apriori_rules>
   <logical_rules>
   ...
   </logical_rules>
   <compositional_rules>
   ...
   </compositional_rules>
  </rules>
  <integrity_constraints>
  ...
  </integrity_constraints>
</base>
    


Syntax of Global Property

<global>
 <description> string </description> <!-- base -->
 <expert> string </expert> <!-- name of expert -->
 <knowledge_engineer> string </knowledge_engineer> <!-- name of knowledge engineer -->
 <date> date </date> <!-- date of creation -->
 <inference_mechanism>standard | logical | neural | hybrid</inference_mechanism> <!-- inference mechanism -->
 <weight_range> number </weight_range> <!-- weight range -->
 <default_weight>unknown | irrelevant</default_weight><!-- implicit weight of proposition -->
 <global_priority>first | last | minlength | maxlength | type | user</global_priority>
 <context_global_threshold> number </context_global_threshold> 
 <condition_global_threshold> number </condition_global_threshold> 
</global>    


Syntax of Attributes

<attribute>
 <id> string </id>
 <name> string </name>
 <type>binary | single | multiple | numeric</type>
 <scope>case | environment</scope> 
 <sources>
  <source>
   <source_type>infer | user | external_file | external_function</source_type>
   <source_file> string </source_file>
   <function> string </function>
   <parameters> string </parameters>
  </source>
  ...
 </sources>
 <comment> string </comment>
 <actions>
  <action>
   <function> string </function>
   <parameters> string </parameters>
   <action_threshold> string </action_threshold>
  </action>
 </actions> 
 
 <propositions><!-- not for binary attributes -->
  <proposition>
   <id> string </id>
   <name> string </name>
   <weight_function><!-- only for numeric attributes -->
    <fuzzy_lower_bound> number </fuzzy_lower_bound>
    <crisp_lower_bound> number </crisp_lower_bound>    
    <crisp_upper_bound> number </crisp_upper_bound>    
    <fuzzy_upper_bound> number </fuzzy_upper_bound>        
   </weight_function>
   <comment> string </comment>
   <actions>
    <action>
     <function>string</function>
     <parameters>string</parameters>
     <action_threshold> string </action_threshold>     
    </action>
   </actions> 
  </proposition>
  ...
 </propositions>
</attribute>
    


Syntax of Rules

Apriori rules

<apriori_rule>
 <id> string </id>
 <priority> number </priority> 
 <conclusions>
  <conclusion>
   <id_attribute> string </id_attribute>   
   <id_proposition> string </id_proposition>
   <negation> binary </negation>
   <weight> number </weight>
  </conclusion>
  ...
 </conclusions>
 <actions>
  <action>
   <function> string </function>
   <parameters> string </parameters>
  </action>
 </actions> 
 <comment> string </comment>
</apriori_rule>
    

logical and compositional rules

<logical_rule> / <compositional_rule>
 <id> string </id>
 <priority> number </priority> 
 <id_context> string </id_context>
 <context_threshold> number </context_threshold>
 <condition_threshold> number </condition_threshold> <!--  only for logicl rules  -->
 <condition>
  <conjunction>
   <literal>
    <id_attribute> string </id_attribute>
    <id_proposition> string </id_proposition>
    <negation> binary </negation>
   </literal>
   ...
  </conjunction>
  ...
 </condition>
 <conclusions>
  <conclusion>
   <id_attribute> string </id_attribute>
   <id_proposition> string </id_proposition>
   <negation> binary </negation>
   <weight> number </weight>
  </conclusion>
  ...
 </conclusions>
 <actions>
  <action>
   <function> string </function>
   <parameters> string </parameters>
  </action>
 </actions> 
 <comment> string </comment>
</logical_rule> / </compositional_rule>
    


Syntax of Contexts

<context>
 <id> string </id>
 <comment> string </comment>
 <condition>
  <conjunction>
   <literal>
    <id_attribute> string </id_attribute>
    <id_proposition> string </id_proposition>
    <negation> binary </negation>
   </literal>
   ...
  </conjunction>
  ...
 </condition>
</context>    
    


Syntax of Integrity Restrictions

<integrity_constraint>
 <id> string </id>
 <name> string </name>
 <condition>
  <conjunction>
   <literal>
    <id_attribute> string </id_attribute>
    <id_proposition> string </id_proposition>
    <negation> binary </negation>
   </literal>
   ...
  </conjunction>
  ...
 </condition>
 <conclusions>
  <conclusion>
   <id_attribute> string </id_attribute>
   <id_proposition> string </id_proposition>
   <negation> binary </negation>
   <weight> number </weight>
  </conclusion>
  ...
 </conclusions>
 <comment> string </comment>
</integrity_constraint>