- 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
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?
yes
> Can lists contain objects? (eg rif:local and rif:iri consts that
> represent frames, or something?)
yes
> 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
all).
> 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.
Yes.
> 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
lists.
>
> 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
--
-- michael
Received on Saturday, 11 April 2009 03:40:57 UTC