W3C home > Mailing lists > Public > public-rif-wg@w3.org > May 2009

Re: Two issues with RIF-Core

From: Dave Reynolds <der@hplb.hpl.hp.com>
Date: Fri, 08 May 2009 17:13:55 +0100
Message-ID: <4A045A43.2050203@hplb.hpl.hp.com>
To: Sandro Hawke <sandro@w3.org>
CC: Gary Hallmark <gary.hallmark@gmail.com>, RIF WG <public-rif-wg@w3.org>
Sandro Hawke wrote:
>>> 2. PRD and Core allow frame properties to be TERMs, i.e. Frame ::=
>>> TERM '[' (TERM '->' TERM)* ']'
>>> This is likely to be a problem for most production rule engines. It
>>> would be much easier if Frame ::= TERM '[' (Const'->' TERM)* ']'
>> Agreed.
> I'm not sure this is a good idea.
> Partly for the sake of argument, let me suggest an alternative.  Take
> frames out of Core and PRD.  If we restrict frames as you're proposing,
> then (as far as I can tell) they don't actually provide any
> functionality.  Wherever you were using s[p->o], just use p(s,o).  Why
> have two parallel features that provide exactly the same functionality?
> As I understood it, the whole point of frames was to allow for
> quantifying over predicates.
> Dave, with this change, how would you implement RDFS (etc) rules?

Sorry, I was misunderstanding the suggested change and spoke without 
thinking clearly. Must have been still asleep.

I assumed, wrongly, that what Gary was trying to do was to exclude Lists 
and external functions from frame slots, not stop you using vars to 
quantify over slot names.

You are right, forcing frame slots to be only constants would be too 
strong and would invalidate their use in RDF.

I withdraw my "Agreed" and will go get some more caffeine to see if I 
can get my brain working again.


[Though of course frames are just syntactic sugar for something like 
rif:triple(s,p,o), they don't provide any added expressivity.]

Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Friday, 8 May 2009 16:14:58 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:47:55 UTC