Re: question about rules where the conclusions are rules

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