Re: question about frames

> Jos de Bruijn wrote:
> > 
> > 
> >> Thanks for clear answers to a not-so-clear question.  Let me expand 
> >> just a bit.  In my PR system (OBR), the action that corresponds most
> >> closely to a rule "head" or conclusion is the so-called "assert new" 
> >> action.  This action creates a new java object (a frame instance of a 
> >> given class) , initializes its javabean properties (slots) with given 
> >> values, and asserts it to Jess.
> >>
> >> I want to translate some subset of my rules to BLD, namely rules 
> >> without negation, aggregation, or actions other than assert new.
> >>
> >> Here is a simple rule (fusing OBR and BLD syntax):
> >>
> >> IF and(?p#P ?p[x->?x]) THEN assert new Q[x->?x]
> >>
> >> Do I translate to this:
> >>
> >> forall ?x ?p (Q(?x) :- and(?p#P ?p[x->?x]))
> >>
> >> That seems a little wrong.  OBR doesn't support relations, only 
> >> frames, but it lets one use frames instead of relations. But BLD 
> >> doesn't really let one dispense with relations and use only frames.  
> >> Is this also an issue for RDF + RIF?
> > 
> > This is not an issue for RIF-RDF.  If people want to use relations in 
> > their rules about RDF data they can do so.  However, they need to keep 
> > in mind that there is no connection between frames and relations, other 
> > than the connections made in the rules.
> True but several uses of RDF rules involve asserting RDF relations 
> involving bNodes which is essentially what Gary needs.
> A correct modelling of bNodes as existential vars goes beyond Horn of 
> course but existing rule language which support bNode introduction are 
> typically treating bNodes as skolem constants. We did talk at one point 
> about having some distinguished function symbol for building such skolem 
> approximations to bNodes. Wouldn't that would give Gary a standardized 
> "f" he could use?

Gary needed a Skolem function, not Skolem constant.
A Skolem function is just a function with a unique name, which is what I
basically suggested. A compiler might provide such a thing as a convenience
(so that the user will not have to check for uniqueness by himself).
For a while I thought that it would be nice to add this as a language
construct, but then I became doubtful whether this is needed in an exchange
language, where code is generated by external compilers from external


> Dave
> -- 
> Hewlett-Packard Limited
> Registered Office: Cain Road, Bracknell, Berks RG12 1HN
> Registered No: 690597 England

Received on Friday, 9 May 2008 14:50:08 UTC