Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
hekate:alsvfd [2008/11/18 00:02]
gjn created
hekate:alsvfd [2019/06/27 15:49] (current)
Line 1: Line 1:
 ====== The XTT^2 ALSV(FD) Specification ====== ====== The XTT^2 ALSV(FD) Specification ======
  
-**Author**: Grzegorz J. Nalepa, based on the work with Antoni ​Ligêza+**Author**: Grzegorz J. Nalepa, based on the work with Antoni ​Ligęza
  
 **Version**: ​ Draft 2008Q3 **Version**: ​ Draft 2008Q3
  
 +//Please put bigger remarks/​discussusion,​ to the [[hekatedev:​alsvfd|ALSV(FD) development page]]//
  
 ===== Introduction to Attributive Logics ===== ===== Introduction to Attributive Logics =====
Line 13: Line 14:
  
 The description of AL presented here is based on several papers, including ​ The description of AL presented here is based on several papers, including ​
-  * [[hekate:​hekate_bibliography#​ali2005thebook|(ali2005thebook)]] +  * [[hekate:bib:​hekate_bibliography#​ali2005thebook|(ali2005thebook)]] 
-  * [[hekate:​hekate_bibliography#​ali2008flairs|(ali2008flairs)]] +  * [[hekate:bib:​hekate_bibliography#​ali2008flairs|(ali2008flairs)]] 
-  * [[hekate:​hekate_bibliography#​gjn2008ruleapps|(gjn2008ruleapps)]] +  * [[hekate:bib:​hekate_bibliography#​gjn2008ruleapps|(gjn2008ruleapps)]] 
-  * [[hekate:​hekate_bibliography#​ali2008aaia|(ali2008aaia)]]+  * [[hekate:bib:​hekate_bibliography#​ali2008aaia|(ali2008aaia)]] 
 +  * [[hekate:​bib:​hekate_bibliography#​gjn2009flairs-salrules(gjn2009flairs-salrules)]]
  
 ===== ALSV(FD) ===== ===== ALSV(FD) =====
Line 22: Line 24:
 In SAL (//Set Attributive Logic//) as well as in its current version ALSV(FD), the very basic idea is that attributes can take //atomic// or //set// values. ​ In SAL (//Set Attributive Logic//) as well as in its current version ALSV(FD), the very basic idea is that attributes can take //atomic// or //set// values. ​
  
-After [[hekate:​hekate_bibliography#​ali2005thebook|(ali2005thebook)]] it is assumed that an //​attribute//​ A_i is a function (or partial function) of the form +After [[hekate:bib:​hekate_bibliography#​ali2005thebook|(ali2005thebook)]] it is assumed that an //​attribute//​ A_i is a function (or partial function) of the form 
 <​latex>​ <​latex>​
 $A_{i}\colon O \to D_{i}$. $A_{i}\colon O \to D_{i}$.
Line 35: Line 37:
  
 The basic element of the language of //Attribute Logic with Set Values over Finite Domains// (ALSV(FD) for short) are attribute names and attribute values. ​ The basic element of the language of //Attribute Logic with Set Values over Finite Domains// (ALSV(FD) for short) are attribute names and attribute values. ​
-For simplicity of presentation no objects are considered here; in practice, the same attribute applied to two (or more) different objects can be considered as two (or more) new, different, object-labelled attributes. ​+For simplicity of presentation no objects are considered here; in practice, the same attribute applied to two (or more) different objects can be considered as two (or more) new, different, object-labelled attributes.  Moreover, unless two (or more) different objects are considered at the same time, no explicite reference to an object is necessary.
  
 Let us  consider: Let us  consider:
Line 45: Line 47:
 be all the attributes such that their values define the state of the system under consideration. ​ be all the attributes such that their values define the state of the system under consideration. ​
 It is  assumed that the overall domain //D// is divided into //n// sets (disjoint or not),  It is  assumed that the overall domain //D// is divided into //n// sets (disjoint or not), 
-D= D_1 u D_2 u ... u D_n, +D = D_1 u D_2 u ... u D_n, 
 where D_i is the domain related to attribute ​ where D_i is the domain related to attribute ​
 A_i, i=1,2, ... ,n.  A_i, i=1,2, ... ,n. 
  
 Any domain D_i is assumed to be a finite (discrete) set.  Any domain D_i is assumed to be a finite (discrete) set. 
-The set can be ordered, partially ordered, or unordered; in case of ordered (partially ordered) sets some modifications of notation ​is allowed. ​+The set can be ordered, partially ordered, or unordered; in case of ordered (partially ordered) sets some modifications of the notation ​are allowed. ​
  
 As we consider dynamic systems, the values of attributes can change over time (or state of the system). ​ As we consider dynamic systems, the values of attributes can change over time (or state of the system). ​
 We consider both //simple// attributes of the form  We consider both //simple// attributes of the form 
-A_i : T -> D_{i}+A_i : T -> D_i
 (i.e. taking a single value at any instant of time) and  (i.e. taking a single value at any instant of time) and 
 //​generalized//​ ones of the form  //​generalized//​ ones of the form 
-A_i:  T -> 2^D_i+A_i:  T -> 2^D_i 
 (i.e. taking a set of values at a time); here //T// denotes the time domain of discourse. (i.e. taking a set of values at a time); here //T// denotes the time domain of discourse.
  
Line 63: Line 65:
  
 The legal atomic formulae of ALSV for //simple attributes//​ are presented in the Table 1. The legal atomic formulae of ALSV for //simple attributes//​ are presented in the Table 1.
 +
  
 <​latex>​ <​latex>​
 \begin{table} \begin{table}
-  ​\centering +  \begin{tabular}{|l|l|l|l|}
-  ​\begin{tabular}{|p{12mm}|p{25mm}|p{10mm}|p{15mm}|}+
     \hline     \hline
 Syntax & Description &​Relation ​ & Example\\ \hline \hline Syntax & Description &​Relation ​ & Example\\ \hline \hline
Line 84: Line 86:
 is a shorthand for $A_{i} \in D_{i}\setminus V_{i}$.&​ \texttt{notin}&​ \\ \hline is a shorthand for $A_{i} \in D_{i}\setminus V_{i}$.&​ \texttt{notin}&​ \\ \hline
   \end{tabular}   \end{tabular}
-  \caption{Simple attribute formulas syntax} 
-  \label{tab:​saf-ss} 
 \end{table} \end{table}
 </​latex>​ </​latex>​
 +
 +{{:​hekate:​salrules-flairs-table1.png|}}
 +
 Table 1: Simple attribute formulas syntax Table 1: Simple attribute formulas syntax
  
Line 94: Line 97:
 <​latex>​ <​latex>​
 \begin{table} \begin{table}
-  ​\centering +  \begin{tabular}{|l|l|l|l|}
-  ​\begin{tabular}{|p{12mm}|p{25mm}|p{12mm}|p{15mm}|}+
     \hline     \hline
-Syntax & Description &​Relation &​Example\\ ​  ​\hline ​    ​\hline+Syntax & Description & Relation & Example\\ ​  ​\hline ​    ​\hline
  
 $A_{i} = V_{i}$ & %\label{atom-set-equal} $A_{i} = V_{i}$ & %\label{atom-set-equal}
-equal to $V_{i}$ (and nothing more)& \texttt{eq}&​ \\\hline+equal to $V_{i}$ (and nothing more) & \texttt{eq} & \\\hline
  
 $A_{i} \neq V_{i}$ & %\label{atom-set-notequal} $A_{i} \neq V_{i}$ & %\label{atom-set-notequal}
-different from $V_{i}$ (at at least one element)&​ \texttt{neq}&​ \\\hline+different from $V_{i}$ (at at least one element) & \texttt{neq} & \\\hline
  
 $A_{i} \subseteq V_{i}$ & %\label{atom-set-subset} $A_{i} \subseteq V_{i}$ & %\label{atom-set-subset}
-being a subset of $V_{i}$&​ \texttt{subset}&​ \\\hline %\texttt{subseteq}&​+being a subset of $V_{i}$ & \texttt{subset} & \\\hline %\texttt{subseteq} &
  
 $A_{i} \supseteq V_{i}$ & %\label{atom-set-supset} $A_{i} \supseteq V_{i}$ & %\label{atom-set-supset}
-being a superset of $V_{i}$&​ \texttt{supset}&​ \\\hline %\texttt{superseteq}&​+being a superset of $V_{i}$ & \texttt{supset}&​ \\\hline %\texttt{superseteq} &
  
-$A \sim V$ & %\label{atom-set-sim} +$A \sim V_{i}$ & %\label{atom-set-sim} 
-having a non-empty intersection with $V_{i}$ or disjoint to $V_{i}$&​ \texttt{sim}&​ \\\hline+having a non-empty intersection with $V_{i}$ ​<del>or disjoint to $V_{i}$</​del> ​& \texttt{sim}&​ \\\hline
  
 $A_{i} \not\sim V_{i}$ & %\label{atom-set-notsim} $A_{i} \not\sim V_{i}$ & %\label{atom-set-notsim}
-having ​a non-empty intersection with $V_{i}$ or disjoint to $V_{i}$&​ +having ​an empty intersection with $V_{i}$ ​(or disjoint to $V_{i}$
-\texttt{notsim}&​ \\ \hline+\texttt{notsim} & \\ \hline
   \end{tabular}   \end{tabular}
-  \caption{Generalised attribute formulas syntax} 
-  \label{tab:​gaf-ss} 
 \end{table} \end{table}
 </​latex>​ </​latex>​
-Table 2: Generalised ​attribute formulas syntax+ 
 +{{:​hekate:​salrules-flairs-table2.png|}} 
 + 
 +Table 2: Generalized ​attribute formulas syntax
  
 In case V_i is an empty set (the attribute takes in fact no value) we shall write A_i = ' '. In case V_i is an empty set (the attribute takes in fact no value) we shall write A_i = ' '.
  
-See [[hekate:alsvdf#any and null]]+See [[hekate:alsvfd#any and null]]
  
 More complex formulae can be constructed with //​conjunction//​ ''​^'' ​ ($\wedge$) and //​disjunction//​ ''​v'';​ More complex formulae can be constructed with //​conjunction//​ ''​^'' ​ ($\wedge$) and //​disjunction//​ ''​v'';​
Line 139: Line 142:
 Various notational conventions extending the basic notation can be used.  Various notational conventions extending the basic notation can be used. 
 For example, in case of domains being ordered sets, relational symbols such as  For example, in case of domains being ordered sets, relational symbols such as 
->, >=, <, =< + >, >=, <, =< 
 can be used with the straightforward meaning. can be used with the straightforward meaning.
  
Line 148: Line 151:
 The semantics of A_i=t is that the attribute takes //all// the values of //t// (the so-called //internal conjunction//​) while the semantics of  The semantics of A_i=t is that the attribute takes //all// the values of //t// (the so-called //internal conjunction//​) while the semantics of 
 A_i \in t  A_i \in t 
-is that it takes //one// or //some// of the values of //t// (the so-called //internal disjunction//​).+is that it takes //​one// ​(in case of simple attributes) ​or //​some// ​(in case of generalized attributes) ​of the values of //t// (the so-called //internal disjunction//​).
  
 As an example for the necessity of SAL one can consider the specification of working days (denoted with //WDay//) given as As an example for the necessity of SAL one can consider the specification of working days (denoted with //WDay//) given as
Line 235: Line 238:
 \end{table} \end{table}
 </​latex>​ </​latex>​
 +
 +{{:​hekate:​salrules-flairs-table3.png|}}
 +
 Table 3: Inference rules for atomic formulae for simple attributes Table 3: Inference rules for atomic formulae for simple attributes
  
Line 264: Line 270:
 \end{table*} \end{table*}
 </​latex>​ </​latex>​
 +{{:​hekate:​salrules-flairs-table4.png|}}
 +
 Table 4: Inference rules for atomic formulae for generalized attributes Table 4: Inference rules for atomic formulae for generalized attributes
 +
 +FIXME 
 +(The rules must be checked; simple rules are for matching preconditions to the state formula. More complex rules can be for establishing truth-value propagation among atoms of preconditions within a table).
 +8-O 8-O 8-O
  
 In Tables 3 and 4 the conditions are //​satisfactory//​ ones.  In Tables 3 and 4 the conditions are //​satisfactory//​ ones. 
Line 306: Line 318:
 \end{table} \end{table}
 </​latex>​ </​latex>​
 +
 +{{:​hekate:​salrules-flairs-table5.png|}}
 +
 Table 5: Inconsistency conditions for pairs of atomic formulae Table 5: Inconsistency conditions for pairs of atomic formulae
  
Line 312: Line 327:
 The Table can be used for analysis of determinism of the system, i.e. whether satisfaction of precondition of a rule implies that the other rules in the same table cannot be fired. ​ The Table can be used for analysis of determinism of the system, i.e. whether satisfaction of precondition of a rule implies that the other rules in the same table cannot be fired. ​
  
 +
 +
 +===== ALSV(FD) and State, State Representation and Inference =====
 +
 +
 +When processing information,​ the current values of attributes form the state of the inference process. The values of attributes can, in general, ​ be modified in the following three ways:
 +  - by an independent,​ external system,
 +  - by the inference process, and
 +  - as some clock-dependent functions.
 +The first case concerns attributes which represent some process variables, which are to be incorporated in the inference process, but depend only of the environment and external systems. As such, the variables cannot be directly influenced by the XTT system. Examples of such variables may be the external temperature,​ the age of a client or the set of foreign languages known by a candidate. Values of such variables are obtained as a result of some measurement or observation process. They are assumed to be put into the inference system via a //​blackboard//​ communication method; in fact they are written directly into the internal memory whenever their values are obtained or changed.
 +
 +The second case concerns the values of attributes obtained at certain stage of reasoning as the result of the operations performed in RHS of XTT. The new values of the attributes can be:
 +  * asserted to global memory (and hence stored and made available for any components of the system), or
 +  * kept as values of internal process variables.
 +The first solution is offered mostly for permanent changes; before asserting new values typically and appropriate retract operation is to be performed so as to keep a consistent state. In this way also the history (trajectory) of the system can be stored, provided that each value of an attribute is stored with a temporal index.
 +The second solution is offered for value passing and  calculations which do not require permanent storage. For example, if a calculated value is to be passed to some next XTT component and it is no longer used after, it is not necessary to store it in the global memory.
 +
 +==== The State of the System ====
 +
 +The current state of the system is considered as a complete set of values of all the attributes in use at a certain instant of time. The concept of the state is similar to the one in dynamic systems and state-machines. The representation of the state should satisfy the following requirements:​
 +  -  the specification is //​internally consistent//,​
 +  -  the specification is //​externally consistent//,​
 +  -  the specification is //​complete//,​
 +  -  the specification is //​deterministic//,​
 +  -  the specification is //​concise//​.
 +The first postulate says that the specification itself cannot be inconsistent at the syntactic level. For example, a simple attribute (one taking a single value) cannot take two different values at the same time. In general, assuming independence of the attributes and no use of explicit negation, each value of an attribute should be specified once.
 +The second postulate says, that only //true// knowledge (with respect to the external system) can be specified in state. In other words, facts that are syntactically correct but false cannot occur in the state formula.
 +The third postulate says, that //all// the knowledge true at a certain instant of time should be represented within the state.
 +The four postulate says that there can be no disjunctive knowledge specification within the state.
 +Finally, the fifth postulate says that no unnecessary,​ dependent knowledge should be kept in the state. In databases and most of the knowledge bases this has a practical dimension: only true facts are represented explicitly.
 +
 +The current values of all the attributes are specified with the contents of the knowledge-base (including current sensor readings, measurements,​ inputs examination,​ etc.). From logical point of view it is a formula of the form:
 +<​latex>​
 +$(A_{1}=S_{1})\wedge(A_{2}=S_{2})\wedge \ldots \wedge (A_{n}=S_{n})$
 +</​latex>​
 +where $S_{i} = d_{i}$ ($d_{i}\in D_{i}$) for simple attributes and $S_{i}= V_{i}$, ($V_{i}\subseteq D_{i}$) for complex. ​
 +
 +In order to cover realistic cases some explicit notation for covering unspecified,​ unknown values is proposed; this is so to deal with the data containing the NULL values imported from a database.
 +The first case refers to unspecified value of an attribute as a consequence of inappropriateness. A formula of the form 
 +$A=\bot$ ​
 +means that the attribute $A$ takes an empty set of values (no value at all) at the current instant of time (or forever) for the object under consideration. For example, the attribute ''​Maiden_Name''​ or ''​The_Year_of_Last_Pregnancy''​ for a man is not applicable and hence it takes no value for all men.
 +%%
 +The second case refers to a situation that the attribute may be applied to an object, but it takes no value. This will be denoted as //​A=\emptyset//​. ​
 +For example, the formula ''​Phone_Number''​=//​\emptyset//​ means that the considered person has no phone number.
 +%%
 +The third case is for covering the ''​NULL''​ values present in relational databases. A formula of the form 
 +//​A=\mathtt{NULL}//​
 +means that attribute $A$ takes an unspecified value.
 +
 +
 +==== State and rule firing ====
 +
 +In order to fire a rule all the precondition facts defining its LHS must be true within the current state. The verification procedure consists in matching these fact against the state specification. A separate procedure concerns simple (single-valued) attributes, and a separate one is applied in case of complex attributes.
 +The following tables provide a formal background for preconditions matching and rule-firing procedure:
 +Tab.~6 ​
 +defines when a precondition of the form //A\propto d// is satisfied with respect to given state,
 +and
 +Tab.~7 ​
 +defines the principles for matching precondition defined with set-valued attributes against the state formula.
 +
 +
 +{{:​hekate:​salrules-flairs-table6.png|}}
 +Table 6: Inference principles for firing rules, case of single-valued attributes.
 +
 +{{:​hekate:​salrules-flairs-table7.png|}}
 +
 +Table 7: Inference principles for firing rules, case of general attributes.
  
 ===== ALSV Rules ===== ===== ALSV Rules =====
Line 359: Line 441:
 for complex. for complex.
  
-==== Any and NULL ==== +==== ANY and NULL ====
-FIXME ALi+
 In case the value of A_i is unspecified we shall write A_i = NULL (a database convention). ​ In case the value of A_i is unspecified we shall write A_i = NULL (a database convention). ​
  
Line 367: Line 448:
 The semantics can be: "any value",​ "not important",​ etc. The semantics can be: "any value",​ "not important",​ etc.
  
 +The solution:
 +  * in preconditions,​ we can only use //ANY//, i.e. an atom such as ''​A=_''​ can be specified, meaning "any value",​ "all possible values of the attribute",​ "we don't care"
 +  * on the other hand, attribute A unspecified,​ in the state formula means ''​A=NULL'',​ so we store NULL in state
 +  * here we come to an inference rule: ''​A=NULL''​ ==> ''​A=_''​. Seems to be valid... This rules should be optionally disabled/​enabled in the inference engine.
 +
 +FIXME It seems, we could have three types of NULL-like values: Not-applicable,​ Potentially-applicable but taking no value empty/​no-defined,​ Applicabe-and-takin-value but unknown.
  
hekate/alsvfd.1226962944.txt.gz · Last modified: 2019/06/27 16:00 (external edit)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0