- From: David Booth <dbooth@w3.org>
- Date: Mon, 27 Jan 2003 00:07:05 -0500
- To: Sandro Hawke <sandro@w3.org>
- Cc: "Jonathan Borden" <jonathan@openhealth.org>, Tim Berners-Lee <timbl@w3.org>, www-tag@w3.org
At 12:02 AM 1/24/2003 -0500, Sandro Hawke wrote: > > URIs should denote cars or pictures of cars. If a "#" is a part of a URI, > > then Sandro's proposal[7] is mixture of the two approaches. If a "#" is > > *not* a part of a URI, then Sandro's proposal[7] is an example of the > > "different context" approach. > >I consider "#" to be part of a URI, so yes, my proposal is an odd >mixture. In general, I favor the context approach; I do too, because it has the crucial benefit of not requiring everyone to agree on which of the two kinds of things (e.g., the car or the picture of the car) a URI is supposed to denote. (Though I will say, I find the mixture of the "different names"[4] and "different context"[5] approach to be aesthetically displeasing!) Here's a fuller explanation. Suppose the TAG or a standards body were to take the "different names"[4] approach and "clarify" RFC2396 by declaring something to the effect of: "a URI always identifies only one thing, and in TimBL's car example, that thing would be the picture of the car, rather than the car itself" Therefore, anyone who writes a language that claims to use true URIs and properly conforms to RFC2396 would be implicitly agreeing to those semantics. Fine so far. However, you can never control how someone might (legitimately) *refer* to that specification. It is *impossible* to stop someone from: (a) defining a useful language L1 that uses URL-like strings that are required to conform to the URL *syntax* defined in RFC2396; and (b) clearly stating that the URL-like strings used in L1 are not true URLs because they do not have the *semantics* of URLs as defined in RFC2396; and (c) declaring that in language L1, such unadorned strings are used to identify the *car*, rather than the *picture* of the car, because, in the applications for which L1 was designed, those are the things that far more often need to be identified; and (d) providing some other convention (using either the "different names"[4] or "different context"[5] approach) for referring to the *picture* of the car. Such a language would not in any way be anti-social, in error, or in violation of RFC2396. Nonetheless, it would mean that if you came across a statement like: http://x.org/mycar #is #beautiful you would have no way of knowing whether the statement was talking about the car or the picture of the car, UNLESS you knew what language the statement was written in. I.e., if you knew that the statement was written in language L1, then you would know that http://x.org/mycar was referring to the *picture* of the car. If it wasn't, then you might guess that the statement was referring to the car, according to RFC2396. On the other hand, if the TAG or a standards body were to make the *opposite* choice, and declare that an RFC2396 URI always identifies the *picture* of the car, then you have the same problem all over again, the other way around. Someone could define a useful language L2 that uses URL-like strings to identify the cars instead of the pictures of cars. Thus, once again if you came across a statement like: http://x.org/mycar #is #beautiful you would have no way of knowing whether the statement was talking about the car or the picture of the car, UNLESS you knew what language the statement was written in. But is this really a problem? No. If you know that the statement is written in L1, then http://x.org/mycar clearly refers to the car; but if the statement is written in L2, then http://x.org/mycar clearly refers to the *picture* of the car. It is only a problem if you do NOT know what language the statement is written in. But since you ALWAYS have to know what language the statements are written in anyway (if you wish to determine the semantics), the only problem is that you will simply have to remember that different languages do things differently -- which you have to do anyway. In short, if the TAG were to follow the "different names" approach, and were to declare which kind of thing a URI *always* denotes (i.e., the car or the picture of the car), people could still *legitimately* use strings that look and smell like URIs but have different semantics from what RFC2396 or any other standard might say. That's a *good* thing. >the proposal [7] >is a hopefully-clever hack to allow RDF to have disambiguated >identifiers without any change to the syntax or formal semantics. >(The only change is to the social meaning of identifiers.) > > > 7. http://www.w3.org/2002/12/rdf-identifiers/ > > -- sandro 1. http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm#ViewSourceEffect 2. http://www.w3.org/TR/webarch/#uri-use (section 2.2.3) 3. http://www.w3.org/TR/webarch/#uri-use (section 2.2.5) 4. http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm#DifferentNames 5. http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm#DifferentContext 6. http://lists.w3.org/Archives/Public/www-tag/2003Jan/0287.html 7. http://www.w3.org/2002/12/rdf-identifiers/ -- David Booth W3C Fellow / Hewlett-Packard Telephone: +1.617.253.1273
Received on Monday, 27 January 2003 00:07:31 UTC