- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Tue, 30 Oct 2007 10:20:09 -0700
- To: Christian de Sainte Marie <csma@ilog.fr>
- CC: RIF WG <public-rif-wg@w3.org>
Christian, Thank you very much for getting the ball rolling on this issue. My overall comment is that the proposed syntax diverges too far from BLD (at least for a first attempt) and that the semantics is still very unclear, but that's not surprising because of the mix of operational semantics in the introductory sections with the model-theoretic BLD semantics that have been more or less cut-and-pasted from BLD. I think a more modest proposal would be to start with BLD, add assert, retract, and "call builtin" actions, and remove function symbols (so Uniterms are always predicate symbols). You propose: Ruleset ::= Rule* RULE ::= ' FORALL ' Var* [' ( ' BINDINGMODE ' ) '] ' SUCH THAT ' PATTERN* ' IF ' CONDITION ' THEN ' ACTION* BINDINGMODE ::= "collect" I prefer Ruleset ::= RULE* RULE ::= ' Forall ' Var+ ' ( ' RULE ' ) ' | Implies | ACTION Implies ::= CONDITION ' -> ' ACTION* I understand that "collect" is nice to support aggregation, but I'd rather this be a special builtin that also worked for BLD. Actions: Modify probably only makes sense for frames. I think the only thing you can execute is a builtin. Need to adopt BLD syntax for builtins, if/when we have one. Conditions: The notion of pattern and slot test expressions is a quaint relic from CLIPS that I'd rather not carry forward. I don't see why classification should be different for PRD v. BLD. I would just add "Not" and remove nested Uniterms (function symbols): CONDITION ::= 'And' ' ( ' CONDITION* ' ) ' | 'Or' ' ( ' CONDITION* ' ) ' | 'Exists' Var+ ' ( ' CONDITION ' ) ' | ATOMIC | Not ATOMIC ::= Uniterm | Equal | CLASSIFICATION | Frame Uniterm ::= Const ' ( ' (TERM* | (Const ' -> ' TERM)*) ' ) ' Equal ::= TERM '=' TERM CLASSIFICATION ::= TERM ' # ' TERM | TERM ' ## ' TERM Frame ::= (TERM | CLASSIFICATION) ' [ ' (TERM ' -> ' (TERM | Frame))* ' ] ' TERM ::= Const | Var Const ::= LITERAL '^^' SYMSPACE Var ::= '?' VARNAME Not ::= 'Not' '(' CONDITION ')' Semantics: A big issue here is agreeing what the semantics are (regardless of how we write it down). E.g. p(a) -> assert(q(a)) assert(p(a)) retract(q(a)) Do the above 3 rules entail q(a)? Does the order of the rules matter? Christian de Sainte Marie wrote: > > All, > > I just uploaded my (much awaited :-) PRD strawman on the wiki [1] ([2] > for the more readable TR form). > > It has still no examples in it, nor an XML syntax (that one will be > easy to derive from BLD's); and, generally, many things are still > missing, including a section on BLD and PRR compatibility (but I > designed it with BLD and PRR compatibility in mind, so, that should > not be too difficult either). > > But I hope that it clear enough to make sense without them (hmmm... > Yes, I know: I do not have a strong record there... :-) > > [1]http://www.w3.org/2005/rules/wg/wiki/PRdialect > [2] > http://burns.w3.org/cgi-bin/wiki_tr?source=http%3A%2F%2Fwww.w3.org%2F2005%2Frules%2Fwg%2Fwiki%2FPRdialect&Go=Go > > > Disclaimer: this is *not* ILOG's strawman. It has not been endorsed or > reviewed in any way by ILOG and it does not represnet ILOG official or > unofficial view. Of course, it is influenced by ILOG rule language and > engine, since those are the ones I know best: but I do not even know > them that good (actually, I certainly know BLD and PRR better than I > know IRL :-)... I am not even sure that ILOG will like it (I certainly > hope, and I think, they will, and the other vendors too; but I did not > check yet). So, again no particular ILOG hat on my head, here. Not > sure that it is fitting for a chair to submit a strawman, but if it > is, I am comfortable to submit this with my chair's hat on. If not, > consider my chair's hat is off (and so I have no hat at all; and now I > got a cold... c'est malin!). > > Christian > > > > -- Oracle <http://www.oracle.com> Gary Hallmark | Architect | +1.503.525.8043 Oracle Server Technologies 1211 SW 5th Avenue, Suite 800 Portland, OR 97204
Received on Tuesday, 30 October 2007 17:22:18 UTC