- From: Gary Hallmark <gary.hallmark@oracle.com>
 - Date: Tue, 26 Jun 2007 00:00:03 -0700
 - To: RIF WG <public-rif-wg@w3.org>
 
I find the pairs really tedious.  How about
class LIST
    subclass EnumeratedList
       property element : TERM*
    subclass RecursiveList
       property element : TERM+
       property rest : TERM
Friendly syntax could be
EnumeratedList::= 'List' '(' TERM* ')'
RecursiveList::= 'List' '(' TERM+ '|' TERM')'
A fully striped XML instance of List(a ?Y c) is (pending details from 
Sandro)
<EnumeratedList>
    <element><Const value="a"/></element>
    <element><Var name="Y"/></element>
    <element><Const value="c"/></element>
</EnumeratedList>
A fully striped XML instance of List(a ?Y | ?Z) is
<RecursiveList>
    <element><Const value="a"/></element>
    <element><Var name="Y"/></element>
    <rest><Var name="Z"/></rest>
</RecursiveList>
Semantic "footnote": the rest TERM must be a LIST , a Var that unifies 
with a LIST, or a Uniterm function that returns (unifies with) a LIST.
Boley, Harold wrote:
> I worked on the abstract syntax for a modified list proposal:
> http://www.w3.org/2005/rules/wg/wiki/Core/List_Constructor
>
> -- Harold
>
>
>   
Received on Tuesday, 26 June 2007 07:00:16 UTC