Am I not an agent making use of a URI who is attempting to infer properties from it? Like that it represents a SuDoc, and in particular what that SuDoc is? If this kind of talmudic parsing of the TAG reccommendations to figure out what they _really_ mean is neccesary, I stand by my statement that the environment those TAG documents are encouraging is a confusing one. Jonathan Houghton,Andrew wrote: >> From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of >> Jonathan Rochkind >> Sent: Tuesday, April 14, 2009 10:21 AM >> To: [log in to unmask] >> Subject: Re: [CODE4LIB] resolution and identification (was Re: >> [CODE4LIB] registering info: uris?) >> >> Over in: http://www.w3.org/2001/tag/doc/URNsAndRegistries-50-2006-08- >> 17.html >> >> They suggest: "URI opacity 'Agents making use of URIs SHOULD NOT >> attempt to infer properties of the referenced resource.'" >> >> I understand why that makes sense in theory, but it's entirely >> impractical for me, as I discovered with the SuDoc experiment (which >> turned out to be a useful experiment at least in understanding my own >> requirements). If I get a URI representing (eg) a Sudoc (or an ISSN, >> or an LCCN), I need to be able to tell from the URI alone that it IS a >> Sudoc, AND I need to be able to extract the actual SuDoc identifier >> from it. That completely violates their Opacity requirement, but it's >> entirely infeasible to require me to make an individual HTTP request >> for every URI I find, to figure out what it IS. >> > > Jonathan, you need to take URI opacity in context. The document is correct > in suggesting that user agents should not attempt to infer properties of > the referenced resource. The Architecture of the Web is also clear on this > point and includes an example. Just because a resource URI ends in .html > does not mean that HTML will be the representation being returned. The > user agent is inferring a property by looking at the end of the URI to see > if it ends in .html, e.g., that the Web Document will be returning HTML. If > you really want to know for sure you need to dereference it with a HEAD > request. > > Now having said that, URI opacity applies to user agents dealing with *any* > URIs that they come across in the wild. They should not try to infer any > semantics from the URI itself. However, this doesn't mean that the minter > of a URI cannot create a policy decision for a group of URIs under their > control that contain semantics. In your example, you made a policy > decision about the URIs you were minting for SUDOCs such that the actual > SUDOC identifier would appear someplace in the URI. This is perfectly > fine and is the basis for REST URIs, but understand you created a specific > policy statement for those URIs, and if a user agent is aware of your policy > statements about the URIs you mint, then they can infer semantics from > the URIs you minted. > > Does that break URI opacity from a user agents perspective? No. It just > means that those user agents who know about your policy can infer semantics > from your URIs and those that don't should not infer any semantics because > they don't know what the policies are, e.g., you could be returning PDF > representations when the URI ends in .html, if that was your policy, and > the only way for a user agent to know that is to dereference the URI with > either HEAD or GET when they don't know what the policies are. > > > Andy. > >