PRD review, part 2 Operational Semantics of Conditions

Hi All,

Here Part II, Operational Semantics of Conditions

The definition of an operational semantics for production rules is certainly
appealing since several reference semantics already exit in literature and
many PR engines only discuss an operational semantics. Nevertheless, it is
not necessarily the best way, since there have been many different
operational semantics implemented, in particular if we also consider
negation-as-failure and assert/retract actions - a unifying declarative
semantics seems to be the better approach. Also, concerning the structure of
the PRD draft, it would be better to define notations and basic
terminologies first and then define a general (declarative) semantics for
production rule systems (without NAF)m instead of a separated semantics only
for conditions with NAF.

To define an operational semantics as normative, i.e. to which implementers
MUST be compliant (as stated in section 2.2.1) would mean we exclude all
other operational semantics. That is very dangerous; then we really need to
prove that our normative operational semantics is the most appropriate
semantics as compared to all other operational semantics and we need to
ensure that it can handle all frequently used, important cases in production
rule systems. Looking through the current description of the operational
semantics for the condition part, it's not clearly defined and I already
missing several things, e.g. with respect to equality, not, treatment of
exceptions, variables,.

In short, the semantics approach for Production Rules needs a thorough
discussion and needs to be defined e.g. to capture the non-deterministic
nature of production rule systems in the possible course of actions. 


2.2.1. working memory (WM) is never explicitly mentioned only the
abbreviation WM is introduced
2.2.2.2. variable bindings only to constants is an oversimplification, even
many classical production rule systems support more expressive bindings 
2.2.3.1 and 2.2.3.2. the distinction between Uniterm and ExtTerm needs to be
discussed, Uniterms could be also defined as ExTerms
2.2.3.3. What about assignments to variables via Equal? Syntactically this
would be a minimal approach, otherwise we would need to define a new
assignment function and give it a semantics 
2.2.3.6. What does it mean in the operational semantics if we now speak of a
frame to be true? We have not defined that before, but defined everything in
terms of matching against ground values in the WM
2.2.5. beside aggregations and variable-constant bindings further variable
bindings need to be supported and semantically defined

Part III will follow.

Best, Adrian

Received on Saturday, 16 February 2008 10:50:11 UTC