- From: Babich, Alan <ABabich@filenet.com>
- Date: Mon, 20 Jul 1998 17:08:41 -0700
- To: "'Saveen Reddy'" <saveenr@microsoft.com>, www-webdav-dasl@w3.org, Jim Davis <jdavis@parc.xerox.com>
* MY POSITION > - Alan Babich: need to advertise types in QSD Yes, that's the brief version of my position. To expand on it a bit, I think we only need to be explicit about the most fundamental five datatypes in the QSD, and should lump all others into "other" for 1.0, in order to limit the problem to whats important and leave things open for future extensions. * OBSCURE DEAD PROPERTIES As far a PROPPATCH setting the value of a property: PROPPATCH does not normally have to specify the type of the value, because in practice the server knows what the type of the value is (for properties). What most (maybe even all) existing systems do that are serious about properties (e.g., document management systems, RDBMS's, etc.) is to insist that all the values of a property are drawn from a datatype domain defined by the schema. As a consequence, all values are homogeneous for a property. In other words, common practice does not allow the possibility of obscure dead properties. If DASL 1.0 ignored the concept of properties for which the server accepts values from multiple domains (e.g., multiple character sets or multiple collation sequences) that are determined by the client at run time, I think we would be OK. In other words, if DASL 1.0 ignored obscure dead properties, I think we would be OK. * CHARACTER SETS AND COLLATING SEQUENCES As input to our decision process, let me try to give a simplified summary of the relevant part of what I think SQL does, since SQL is one important use case, and a lot of thought has been put into it. There are three levels of SQL conformity: entry level, intermediate, and full SQL. In intermediate and full SQL, one can name the character repertoire of a string literal. In full SQL and only full SQL one can use a collate clause to designate the use of a named collating sequence in certain parts of a query. There is a default character repertoire and default collating sequence for every property and string literal. (The case sensitivity aspect is generally considered as part of the definition of the collating sequence.) When comparing a property against a string literal, the default collating sequence of the property and the literal is used unless overridden. If the default collating sequence of the property and the literal are not the same, an explicit specification of the collating sequence is required (but is only possible in full SQL). If two explicit collate clauses conflict, that is a syntax error. If one of the two operands has an explicit collate clause and the other is coercible, the explicit collating sequence is used. <collate clause> is "COLLATE mycatalog.myschema.mycollation" (mycatalog and myschema are optional). It is important to note that an explicit collate clause does not decorate the operator, it decorates the operand(s). I have two hopes for possible simplification. (1) I hope that UCS is sufficient, i.e., that for 1.0 we don't have to make specification of different character sets possible. This would not just affect DASL, it would affect PROPFIND and PROPPATCH, i.e., WebDAV. (2) I hope we can consider explicitly overriding collating sequences (other than just a global overriding default derived from locale) to be an advanced feature, i.e., post 1.0. Alan Babich > -----Original Message----- > From: Saveen Reddy [mailto:saveenr@microsoft.com] > Sent: July 17, 1998 12:52 PM > To: Saveen Reddy (Exchange); www-webdav-dasl@w3.org; Jim Davis > Subject: Re: datatyping is not needed > > > Comments below ... > > -----Original Message----- > From: Jim Davis <jdavis@parc.xerox.com> > To: Saveen Reddy (Exchange) <saveenr@exchange.microsoft.com>; > www-webdav-dasl@w3.org <www-webdav-dasl@w3.org> > Date: Wednesday, July 15, 1998 12:14 AM > Subject: RE: datatyping is not needed > > > >At 11:50 PM 7/14/98 PDT, Saveen Reddy (Exchange) wrote: > > > >> then a plausible > >>scenario exists where detatyping is required for obscure > dead properties. > >>Some implementations will allow searching (even if the > query is not as > >>efficient for some "famous" property). > > > >While I confess that I can recognize this scenario as > *possible*, still I > >don't find it very probable. Without indexing, it's hard > for me to believe > >in exhaustive search. I can admit that in some cases it > might be done, > >still I also don't find it nearly as strong as the other > scenarios. I > >wouldn't call DASL a failure if it didn't have it. > > > > OK, I disagree about how likely this is. I believe the use of > obscure dead > properties + exhaustive search (as painful as that might be for server > performance) is probably the lowest bar for implementing a > dav server and > because of that bound to be likely. > > >And I am troubled by the notion of post-facto imposing 'typing' on > >properties people stored, and by the added work we'll have > to do to define > >this precisely. Just to take one example, the (obscure > dead) property > >'foo' on resources R1 and R2 has values "BABE" and "FAD" > respectively. Now > >if we sort by 'foo' and the client says nothing about the > datatype, then R1 > >comes before R2 because the string "BABE" is alphabetically > before "FAD". > >But if the client asserts that these are really numbers expressed in > >hexadecimal, then it's the other way around. Will we > *require* that all > >compliant DASL servers support all the type coercions? And > remember, once > >we define it, we can't easily be rid of it. > > > If I understand you correctly you are saying: we shouldn't > define any type > casting in the query. I suspect we may be closer to agreement > than it may > first appear. > > Here's my attempt to summarize the views ... (someone tell me > if I have this > incorrect) > - Jim Davis: don't need type casting in the query > - Alan Babich: need to advertise types in QSD > - Saveen Reddy: Type casting I'm not sure about, but clients > do need a way > to set the type of a property with PROPPATCH, because > naturally this will > affect how a query (even without type casting gets done). > With either type > casting or setting the type with PROPPATCH we can't avoid the issue of > typing. > > >I think we have some very hard pieces of work ahead of us > without getting > >into this. Consider all the open issues not yet resolved, > surely we are > >better off letting this one go? I mean, we still have to > figure out what > >content based retrieval to support, and whether and how to > support any > >structure query. These are surely way more central and > important than > >sorting on the obscure dead? > > > Sorting of the obscure dead may not be so important, but > *query criteria* > using the obscure dead is, IMO. > > Even if we simply drop type casting from the query, we still > have to address > how the server will deal with types in the query (for example > under what > criteria is a string equivalent to another string). Without type > casting/coercion thrown into the mix this just doesn't seem > that complex. > > -Saveen > >
Received on Monday, 20 July 1998 20:11:42 UTC