Re: question about frames

Gary Hallmark wrote:
> 
> I'm wondering how to write some simple rules using frames because frames 
> map to the Java beans that Oracle Business Rules uses as its facts 
> better than relations.  Or so I hoped.  The problem I seem to be having 
> is with frame OIDs.  I don't want to have to specify them in a rule 
> conclusion.  For example, consider the simple rule using relations p and q:
> 
> forall(?x) Q(?x) :- P(?x)
> 
> How do I do this using frames instead of relations?  I think I want
> 
> forall(?x, ?p) and(exists(?q) ?q#Q[x->?x]) :- ?p#P[x->?x]

Frames are quite different from relations, so there is not always a 
straightforward translation; it would depend on the meaning of the 
relations.
In case you have unary relations and the relations signify something 
like "class membership" you could write the following:

forall ?x ?x#Q :- ?x#P

Best, Jos

> 
> Unfortunately this is illegal in BLD because heads cannot be formulas, 
> only atomic.  How can I conclude (assert) that frame a instance exists 
> without giving its OID?  Or do we need some kind of gensym builtin for 
> this?
> 

-- 
Jos de Bruijn            debruijn@inf.unibz.it
+390471016224         http://www.debruijn.net/
----------------------------------------------
An expert is a person who has made all the
mistakes that can be made in a very narrow
field.
   - Niels Bohr

Received on Thursday, 8 May 2008 08:56:22 UTC