- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Fri, 09 May 2008 00:27:13 -0700
- To: RIF WG <public-rif-wg@w3.org>
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