- From: <jos.deroo@agfa.com>
- Date: Tue, 25 Oct 2005 01:39:31 +0200
- To: doug.foxvog@deri.org
- Cc: pfps@research.bell-labs.com, pfps@comcast.net, public-rule-workshop-discuss@w3.org, public-rule-workshop-discuss-request@w3.org
It is as if you can read our thoughts :-) It is indeed orders of magnitude w.r.t. reasoning efficiency. Since my use of Prolog in the 80's, I can't remember to have seen "calculating the optimal ordering of the order in which conjuncts in a rule antecedant should be tested" but I have some minimal experience that *deriving* explicit ordering is helping, e.g. by further nesting the ordered variants with explicit premises that test certain properties of the used predicates. -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ doug foxvog <doug.foxvog@deri.org> Sent by: public-rule-workshop-discuss-request@w3.org 24/10/2005 10:54 Please respond to doug.foxvog To: Jos De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER@AGFA cc: pfps@comcast.net, pfps@research.bell-labs.com, public-rule-workshop-discuss@w3.org Subject: Re: question about rules where the conclusions are rules jos.deroo@agfa.com wrote: >>>>>how does one call rules written in the form of A => (B => (C => D)) >>>>>which is of course the same as (A & B & C) => D >>>>>but I was just wondering wether there was a special name for the >>>>>former form.. >>>>I don't understand your question. >>>> >>>>Why wouldn't you call them ill-formed? Many, probably most, rule >>>>formalisms don't allow such rules. >>>My question is wether there is a name for rules such as e.g. >>> >>>@forAll :U, :V, :X, :Y, :Z. >>>{:U :hasProblem :V} >>>=> >>>{{:X r:applyToProblem :V. >>> :X r:hasInvestigation :Y} >>>=> >>>{{:Y r:modalityType :Z} >>> => >>> {:U :isRecommended :Z}}}. >>>I actually have no trouble to run such rules >>>and am investigating their utility in the context >>>of subgoal reordering. I just wanted to make sure >>>that I don't invent my own name for things that >>>are eventually having a well known name. >>I still don't understand. How are you running these rules? What do >>they mean? >> >>You can define these "nested" rules as an alternative syntax for some >>other sort of rule. However, if you really want the rules to act like >>they look, then it seems to me that you will be inferring *new* rules. >>How, then, does this interact with your rule system? >> >>Again, without you providing a meaning for these rules, I don't see a >>way to help. > For those "nested" rules I want to keep the first order logic > semantics, but am experimenting with an operational semantics > to indeed infer *new* rules and it is cwm that is hapily running > such rules. For a backward chainer like euler it is different, > but I'm having an experimental premature version that runs. > > The basic observation about "nested" rules is that there is > no need to reorder single triple premises. The target is be > explicit about the ordering (using "nested" rules) and have > a means to write rules that derive rules, so that machines > can be used to derive (optimal) explicitly reordered rules. This sounds like an attempt to make a Prolog-like rule system (in which conjuncts in the antecedant are checked in a specific order) out of a system which doesn't care about the order of conjuncts. This can greatly improve reasoning efficiency if the later conjuncts match large numbers of statements if their variables are unconstrained. A pure logical analysis does not consider efficiency, so the rule A => (B => (C => D)) can be simplified to (A & B & C) => D -- both being syntactic sugar for D OR ~C OR ~B OR ~A -- however, with a large knowledge base, the latter rule might take orders of magnitude more time to execute. In the example given above, the final conjunct, {:Y r:modalityType :Z}, is likely to have a large number of matches, expecially if a hierarchical submodality-supermodality taxonomy exists. I would be interested in the result of an investigation into calculating the optimal ordering of the order in which conjuncts in a rule antecedant should be tested. -- doug foxvog ========================================================== douglas foxvog doug.foxvog@deri.org +353 (91) 495 150 Digital Enterprise Research Institute (DERI) National University of Ireland, Galway Galway, Ireland http://www.deri.ie ==========================================================
Received on Monday, 24 October 2005 23:40:29 UTC