Re: question about frames

I think "f" could be useful for translating from OBR -> BLD.  I glossed 
over it at first because OBR does not support logical functions, so I'm 
not sure what to do if I get a logical function when translating from 
BLD -> OBR.  I guess the translator could know about "f" and nothing 
more just for roundtripping.


kifer@cs.sunysb.edu 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]
>>
>> 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?
>>     
>
> What you want to do is not possible *in principle* in a Horn-based language
> like BLD. The best you can do is to approximate this with a function symbol:
>
> forall ?x ?p and(f(?p)#Q  f(?p)[x->?x]) :- and(?p#P ?p[x->?x])
>
> or (depends on what you are up to)
>
> forall ?x ?p and(f(?x ?p)#Q  f(?p)[x->?x]) :- and(?p#P ?p[x->?x])
>
>
> What you want to do is possible in FLD, however. (More precisely, in an
> FLD-based extension of BLD.)
>
>
> 	--michael  
>
>   

Received on Friday, 9 May 2008 07:28:03 UTC