- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Sat, 09 May 2009 13:53:08 +0200
- To: Adrian Paschke <adrian.paschke@gmx.de>
- CC: 'Gary Hallmark' <gary.hallmark@gmail.com>, 'Dave Reynolds' <der@hplb.hpl.hp.com>, 'Sandro Hawke' <sandro@w3.org>, 'RIF WG' <public-rif-wg@w3.org>
- Message-ID: <4A056EA4.6040205@inf.unibz.it>
Adrian Paschke wrote: >> Gary Hallmark wrote: >> >> ok, I can implement quantification over property names using Java >> reflection, so how about >> >> Frame ::= TERM '[' ((Const|Var) '->' TERM)* ']' > > That might lead to problems in round-tripping between frame languages and > relation based languages. > > A typical mapping from frames to relations would be > > ex:Customer1[ex:name -> "John"] > > -> > > ex:name(ex:Customer1 "John") > > > If quantification over properties is allowed, this would lead to > higher-order logic. No. One simply translates a frame a[b->c] to an atom of a ternary predicate ->(a,b,c). Jos > > -Adrian > > > On Fri, May 8, 2009 at 9:13 AM, Dave Reynolds <der@hplb.hpl.hp.com> wrote: >> 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 >> >> > > > -- +43 1 58801 18470 debruijn@inf.unibz.it Jos de Bruijn, http://www.debruijn.net/ ---------------------------------------------- Many would be cowards if they had courage enough. - Thomas Fuller
Received on Saturday, 9 May 2009 11:53:55 UTC