[RIF][PRD] ACTION-767: Review PRD

I did a complete read before F2F12 (and gave Christian the color
original):
http://lists.w3.org/Archives/Public/www-archive/2009Jan/0005.html

When I now revisited this, I found that most comments are still valid,
from typo to technical. Two examples:

4.2.4 Conflict resolution
The intuitive conflict resolution principle ('rule' is not a good term
here)
of specificity should be mentioned, explaining why it's not part of the
RIF conflict resolution strategy.

8 Presentation syntax
This should probably come (much) earlier so sequential readers will see
it
before heavy use is made of it. Alternatively, it could go into an
appendix,
which can be more conveniently (forward-)referenced from several places.

Could you revisit those 2009Jan/0005.html comments?

Further suggestions are given in "-...->" syntax below.

-- Harold


ruleset
-->
rule set

RIF-Core provides a rich set of datatypes and built-ins
-->
RIF-Core is based on a rich set of datatypes and built-ins

RIF-Core is intended to be the common core of all RIF dialects, and it
has been designed, also, to be a useful common subset of RIF-BLD and
RIF-PRD. 
-->
RIF-Core is intended to be the common core of all RIF dialects, and it
has been designed, in particular, to be a useful common subset of
RIF-BLD and RIF-PRD. 

RIF-PRD includes and extends RIF-Core, and, therefore, it inherits all
its features.
-->
RIF-PRD includes and extends RIF-Core, and, therefore, RIF-PRD inherits
all RIF-Core features.

However, the conclusion of rules interchanged using RIF-Core can also be
interpreted, according to RIF-Core operational semantics
-->
However, the conclusion of rules interchanged using RIF-Core can also be
interpreted, according to RIF-PRD's operational semantics

<A customer becomes a "Gold" customer as soon as his cumulative
purchases during the current year top $5000>;
-"as soon as" would call for an explicit temporal representation in
Example 1.2->
<A customer becomes a "Gold" customer when his/her cumulative purchases
during the current year top $5000>; 

As a production rule interchange format, RIF-PRD specifies an abstract
syntax that shares most features with many concrete production rule
languages, and it associates the abstract construct with normative
semantics and a normative XML concrete syntax.
-?->
As a production rule interchange format, RIF-PRD specifies an abstract
syntax that shares most features with many concrete production rule
languages, and it associates the abstract constructs with normative
semantics and a normative XML concrete syntax.

Some constructs, however, are not associated with a formal semantics in
RIF: they permit, in particular, to attach free annotations to other,
semanticfull, constructs.
-->
Some constructs, however, are not associated with a formal semantics in
RIF: they permit, in particular, to attach free annotations to other,
semantically described, constructs.

Forall ?customer ?purchasesYTD (
 If   And( ?customer#ex:Customer
           ?customer[ex:purchasesYTD->?purchasesYTD]
           External(pred:numeric-greater-than(?purchasesYTD 5000)) )
 Then Do( Modify(?customer[ex:status->"Gold"]) ) )
-role tags are always lower case->
Forall ?customer ?purchasesYTD (
 if   And( ?customer#ex:Customer
           ?customer[ex:purchasesYTD->?purchasesYTD]
           External(pred:numeric-greater-than(?purchasesYTD 5000)) )
 then Do( Modify(?customer[ex:status->"Gold"]) ) )

When several rules are found to be executable at the same time, during
the rule execution process, a conflict resolution strategy is used to
determine the order of rules to execute.
-?->
When several rules are found to be executable at the same time during
the rule execution process, a conflict resolution strategy is used to
select the rule to execute.

In the remainder of this document, the prefix ex1 stands for the
namespace of this example: http://example.com/2009/prd2#. 
-->
In the remainder of this document, the prefix ex1 stands for the
fictitious namespace of this example: http://example.com/2009/prd2#. 

Any remaining tie is broken arbitrarily, and a single rule instance is
kept for firing.
-->
Any remaining tie is broken arbitrarily, and a single rule instance is
kept for firing
(to simplify debugging, implementations MAY brake ties in a
reproduceable manner).

(?arg; act:print(?arg))
-?->
(?strm ?arg; act:print(?strm ?arg))

The value of the argument MUST be printed to an output stream, to be
determined by the user implementation. 
-the dual act:read would be nice but was omitted since it affects the
semantics?->
The value of the argument ?arg MUST be printed to output stream ?strm. 

Received on Monday, 11 May 2009 22:27:02 UTC