- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Sun, 11 May 2008 12:13:59 +0100
- To: Michael Kifer <kifer@cs.sunysb.edu>
- Cc: Jos de Bruijn <debruijn@inf.unibz.it>, Gary Hallmark <gary.hallmark@oracle.com>, RIF WG <public-rif-wg@w3.org>
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). Dave -- Hewlett-Packard Limited Registered Office: Cain Road, Bracknell, Berks RG12 1HN Registered No: 690597 England
Received on Sunday, 11 May 2008 11:14:34 UTC