- From: Boley, Harold <Harold.Boley@nrc-cnrc.gc.ca>
- Date: Mon, 11 May 2009 18:26:16 -0400
- To: "RIF" <public-rif-wg@w3.org>
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