W3C home > Mailing lists > Public > public-rif-wg@w3.org > November 2008

Re: [UCR] Review UCR (action-624)

From: Stella Mitchell <cleo@us.ibm.com>
Date: Sun, 16 Nov 2008 18:41:32 -0500
To: "Adrian Paschke" <Adrian.Paschke@gmx.de>
Cc: gary.hallmark@oracle.com, Harold.Boley@nrc-cnrc.gc.ca, kifer@cs.stonybrook.edu, public-rif-wg@w3.org
Message-ID: <OFFF52767D.457842D3-ON85257503.0081ADE6-85257503.0082253F@us.ibm.com>
Hi Adrian,

I think that  ex:provide("eShop" ?buyer[ex:card->?x ex:addr->?y]) is 
allowed and nested functions (functions within functions) and functions as 
frame slots and values are also allowed.  The example use to have a frame 
as a value of a frame slot, which is not allowed.  You imply below that 
nested functions might help? 

In current 4.2, in both examples you're missing an "ex:"  before name 
(slot name) on the ?Street line.


"Adrian Paschke" <Adrian.Paschke@gmx.de> 
11/16/2008 04:15 PM

Stella Mitchell/Watson/IBM@IBMUS, gary.hallmark@oracle.com, 
Harold.Boley@nrc-cnrc.gc.ca, kifer@cs.stonybrook.edu
[UCR] Review UCR (action-624)

Stella, Gary, (and Michael and Harold),

I already incorporated most of your comments in the new version of RIF 

You both noted for use case 4.2 


that there are many places that use "nested frame syntax" and that this is 
illegal, e.g., ex:provide("eShop" ?buyer[ex:card->?x ex:addr->?y]). 

However, the proposed solution 

   ?buyer[ex:card->?x ex:addr->?y] 
    ex:provide("eShop" ?buyer)
is incorrect, too. It would mean that we need two facts to fire the rule 
(for a production rule) or prove the two goals (for derivation rules). 

Moreover, the formalization of the rules without nested frames (or nested 
functions) becomes very verbose, as you can see in 4.2. For instance, the 
definition of the customer object "Alice" which becomes a very complicated 
rule without nested frames. 

 ex:Alice[ex:card -> ?card ex:deliveryAddr -> ?deliveryAddr] :- 
   ?Date = ex:Date[ex:month -> 12 ex:year -> 2012] 
   ?Person = ex:Person[ex:lastname -> "Sure" ex:firstname -> "Alice"] 
   ?Street = ex:Street[name -> "North Street" number -> 111] 
   ?card= ex:Card[ ex:type -> "Visa" 
                            ex:holder ->  ?Person 
                            ex:number -> "123456789" 
                            ex:code -> "123" 
                            ex:expiry -> ?Date 
  ?deliveryAddr = ex:DeliveryAddress[ ex:name -> ?Person 
                                                        ex:street -> 
                                                        ex:postal_code -> 
                                                        ex:city -> "New 
                                                        ex:country -> 

Any ideas?


Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
Received on Sunday, 16 November 2008 23:42:17 UTC

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