Re: question about frames

> 
> Michael Kifer wrote:
> >> 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.
> 
> Of course.
> 
> > A compiler might provide such a thing as a convenience
> > (so that the user will not have to check for uniqueness by himself).
> 
> Indeed. So rif:new (to use Gary's suggested name) would not itself be a 
> function symbol but a directive which would translate to a unique 
> function symbol for each rule (or a functional symbol with an additional 
> argument unique to the rule).


Not a directive. This is precisely what a Skolem function is.


	--michael  


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

Received on Sunday, 11 May 2008 16:16:01 UTC