- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Sun, 16 Nov 2008 18:06:22 -0500
- To: "Adrian Paschke" <Adrian.Paschke@gmx.de>
- Cc: cleo@us.ibm.com, gary.hallmark@oracle.com, Harold.Boley@nrc-cnrc.gc.ca, kifer@cs.stonybrook.edu, public-rif-wg@w3.org
On Sun, 16 Nov 2008 22:15:47 +0100 "Adrian Paschke" <Adrian.Paschke@gmx.de> wrote: > 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 -> ?Street > ex:postal_code -> "NE3456" > ex:city -> "New York" > ex:country -> "USA" > ] What is ?Date = ex:Date[...] and so on? Did you mean # instead of =? Unfortunately even ?Date#ex:Date[...] is not allowed and must be written as And(?Date#ex:Date ?Date[...]). Regarding the verbosity, the absence of nesting increases the size of a spec relatively insignificantly, as is obvious from your example (only variables are repeated). What this does lead to is the absence of locality in the specification. This was expected (after all, nested frames were not invented for nothing). The features were voted in or out by the WG. Unfortunately, things were in reverse: first vote and only then use cases. michael
Received on Sunday, 16 November 2008 23:07:07 UTC