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>