Massimo's remarks

Hi Ralph,
I had a last read of the spec this week (last call helps to push....;-)
BTW, compliments for the latest spec, it is really a great improvement 
over the past.
Just few technical comments, hope they are useful:

1) I think the BNF as it is is wrong. The problem is a systematic
lack of proper spacings. For example, [2] would give
<rdf:DescriptionID=....> since you have no space after the 
"<rdf:Description" part. This is systematic and occurs everywhere in 
these situations. The easy solution is just to add a space before
every attribute (eg, in [5] having ' ID="' in place of 'ID="').
2) The optional RDF:rdf tag issue:
 a) as it is now (in [1]) it is wrong: unfortunately optional tags 
    can't be expressed this way in BNF. The point is that 
    RDF ::= ['<rdf:RDF>'] description* ['</rdf:RDF>']
    can give things like
    '<rdf:RDF>' description*
    or
    description* '</rdf:RDF>'
    The proper way is to split the cases in advance, eg with something 
    like:
    RDF ::= description* | ('<rdf:RDF>' description* '</rdf:RDF>')
 b) In any case, the optional tag is not reflected in the final 
    RDF formal grammar ([6.1]), where the RDF:rdf tag is mandatory.
 c) just a warning that omitting the RDF tag can lead to non
    well-formed XML can be useful
3) RDF allows tags to be used both in compact form (self-closed, like 
   <rdf:Description .... />), or more generally in long form as in 
   <rdf:Description...> .... </rdf:Description>
   A word of warning that simultaneous use of these two forms within
   the same document can be dangerous for compatibility with SGML 
   processors can be useful.
4) The Bag container: as it is now, its model representation is 
   probably too specific; now, a bag with {Joe, Ann, Mary} has a 
   different model representation than {Ann, Joe, Mary}. This forces
   you to put much more effort in the model equivalence, or in other 
   words, makes the model representation unnecessarily fine-grained.
   The point is the use of RDF:_1 RDF:_2 etc. I agree this way is 
   consistent with Alt and Seq, but, here we're talking about a 
   different data structure, where the order doesn't matter. So,
   it would be probably better to encode this in the model 
   using just a unique rdf:_bag (for example) predicate. This is 
   a simple edit to do, and gives you the important property that 
   a Bag has one model representation and not many different ones,
   something not true now (and therefore, rather tricky imho...).

Ok, hoping this is of some help, and good luck with the (last! :-) edits. 

Cheers,
-Massimo

/---------------------------------------------------------------\
| Massimo Marchiori                    Room NE43-350            |
| The World Wide Web Consortium (W3C)  545 Technology Square    |
| MIT Laboratory for Computer Science  Cambridge, MA 02139, USA |
| WWW: http://w3.org/People/Massimo    Phone: +1 (617) 253 2442 |
| Email: massimo@w3.org                Fax:   +1 (617) 258 5999 | 
\---------------------------------------------------------------/

  

Received on Friday, 23 October 1998 18:16:20 UTC