- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Fri, 08 May 2009 17:13:55 +0100
- 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. Dave [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