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

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