- 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