- From: Danny Ayers <danny@panlanka.net>
- Date: Tue, 10 Apr 2001 11:22:45 +0600
- To: "Sandro Hawke" <sandro@w3.org>, <www-rdf-interest@w3.org>
<- Issue 1: RDF M&S Does Not Provide Sets
<-
<- The argument against them I've heard is "we don't have an enforcement
<- mechanism" (for duplicates, so use bags) or "we have to provide them
<- in some order" (so use lists).
<-
<- I think those arguments against defining a vocabulary for
<- communicating information about set membership are, to put it mildly,
<- weak.
<-
<- On the first point, you don't need to provide an enforcement
<- mechanism. If someone says "X contains 3" and then "X contains 3"
<- again, well, you know "X contains 3". No problem.
IANAL, but don't we still need to be able to tell the difference between
e.g. {1, 2, 3, 4} and {1, 3, 2, 3, 3, 3, 4, 3}?
<- On the second: it doesn't matter if you have extraneous data. In set
<- theory, people say "x={3,4}" and they know it's the same as "x={4,3}".
<- Yes, syntacticly the elements appear as a list, but the set whose
<- elements were enumerated by the list is the name no matter what order
<- of enumeration is used. The extraneous ordering information is simply
<- ignored.
Sounds reasonable to me, but one of the popular arguments about 'why RDF is
broke' is that without core standardisation (the discussion has been around
representing negation, quantification etc, but I think I'm ok to generalise)
then different systems will interpret data in different ways. Which is it to
be - extraneous information considered safe? or considered harmful?
<- Issue 2: Completeness of Knowledge ("Closed" collections)
<-
<- There is a significant difference between "The set X contains the
<- numbers 3 and 4" and "The set X contains *only* the numbers 3 and 4."
<- Given only the information in the first form, you cannot answer
<- whether 5 is in X.
<-
<- RDF collections at present only provide incomplete knowledge, so
<- people have to frame their queries as being about a different set.
<- "Is 5 in X?" cannot ever be answered negatively, so you have to ask
<- "Is 5 in the set of things you currently know to be in X?" I think
<- this is broken.
I'm not sure about this - I can't see anything wrong with asking "Is 5 in
the set of things you currently know to be in X?", in fact it sounds
preferable to me - dealing with metadata (what you know about X) rather data
(what is in X).
<- 4) LISP-style lists: predicates First and Rest, object TheEmptyList.
<-
<- - a little complicated
There is definitely elegance to LISP-style lists, though personally I can't
judge how appropriate they would be in this context - the RDF model is
pretty much object-orientated (maybe transformed a little) - how well does
the mix of lists & objects work in e.g. CLOS?
I certainly don't think this approach would be any more complicated than
using _1, _2 etc - it may just be the syntax, but that looks incredibly
ugly to me.
<- 5) ...? anything else?
<-
<- It's tempting to think in terms of the syntax where it looks like the
<- list is complete:
<-
<- <list id=foo>
<- <li>a
<- <li>b
<- </list>
<-
<- but in the abstract systax (think of the graph) that closing
<- information is lost as the RDF parsers seem to handle it. (As is the
<- ordering, if you don't turn the "li" predicate into "_1"...)
The parser looks like a red herring there - we know that
foo contains a
foo contains b
though we have the same problem you discussed earlier in asking about foo
containing c
if we get our information from the infoset then we have the order, if we get
it from the XML syntax we don't
<- For making Sets from Lists:
<-
<- 1) an Emumeration predicate, relating a set to a list which
<- contains all the same elements at least once
<-
<- 2) an ElementSet predicate, the inverse of Enumeration
<-
<- 3) ...? anything else?
I don't think this kind of thing is such a problem - if it can be expressed
in one form, then the others can be derived (I'm thinking like enumeration
<-> iteration <-> recursion).
<- To bring this together in an example, I'm trying to represent RDF
<- queries in RDF (ie to reify them). I think the right approach looks
<- in n3 like:
<- :myQuery q:statements { ... bunch of statements ... };
<- q:variables ( ... list of terms in the statements
<- which are variables ...).
<- but the conversion of the "bunch of statements" and "list of terms"
<- into proper RDF Sentences is subject to a resolution to the issues
<- raised here. My current vote is for (4) lisp-lists and (1) a set
<- enumeration predicate. If anyone has any objection to these, I'd be
<- interested in hearing it.
Personally I'd give a vote for these, but the state of my chad would depend
on hearing from someone who has spent a lot of time juggling together lists
and objects.
-99
Received on Tuesday, 10 April 2001 01:26:17 UTC