Re: [TED] ACTION-294: Propose a treatment of sequences

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