W3C home > Mailing lists > Public > public-rif-wg@w3.org > April 2009

Re: Support of lists in PRD

From: Michael Kifer <kifer@cs.sunysb.edu>
Date: Fri, 10 Apr 2009 23:40:09 -0400
To: Sandro Hawke <sandro@w3.org>
Cc: Changhai Ke <changhai.ke@fr.ibm.com>, public-rif-wg@w3.org
Message-ID: <20090410234009.4f3457ff@kiferserv>

On Fri, 10 Apr 2009 13:48:40 -0400
Sandro Hawke <sandro@w3.org> wrote:

> > This is to express my high-level opinion about the support of lists in PRD.
> > Maybe we have a slot to discuss this during the F2F. I put this in itemized
> > form to be more synthetic.
> > 
> > ·        The notion of field typed as a list (or a collection) should exist.
> > ·        For a list or a collection, it would be good to have indication about
> > the cardinality (min and max), and the type of element. The information is very
> > useful in authoring the rules.
> > ·        PRD 1.0 should support simply operators like:
> > *        Length: take the length and write tests on it.
> > *        Contains: does the list contain such and such element?
> > *        Equality: Equality between 2 lists
> > *        Extraction of elements, like getFirst(), getElement(n), getLast().
> > ·        Later on (for PRD 2.0?), we could use the list / collection as a
> > support for aggregates, like üthe average revenue of all the customers in the
> > list, and in the action part have a construct to loop on the elements of the
> > lists.
> > 
> > Every serious data model or object model have lists and collections, so PRD
> > should definitely support the lists / collections, with the simple operations
> > described above.
> Some follow-up questions...
> Can lists contain other lists?


> Can lists contain objects?  (eg rif:local and rif:iri consts that
> represent frames, or something?)


> If so, would expect some kind of type/class constraints on these objects?

BLD does not have any kind of type constraints (or any kind of constraints at

> Can lists contain variables?  For example, the list [1, ?x, 3], with a
> variable in it, can "contain" anything, but once it does and ?x is
> bound, then it only contains 1, 3, and that thing.


>  This is Prolog's
> list behavior, and people on the telecon the other day said it was fine
> for PRD, but I suspect on closer inspection it will turn out to be a
> real problem.

If it is a problem for core or prd then they can restrict what can occur in the

> Can you construct a list?     Something like:
>          if p(?x) and q(?y) 
>          then 
>             create new list x : [?x ?y]
>             assert pq(x)

In PRD? I suppose yes.

> In terms of functions/operators (getFirst, ...) how does this look:
>      http://www.w3.org/TR/xpath-functions/#sequence-functions

In BLD these functions are not needed, but they might be needed in PRD.


    -- michael
Received on Saturday, 11 April 2009 03:40:57 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:34:04 GMT