- From: Dan Connolly <connolly@w3.org>
- Date: Tue, 15 May 2001 22:58:59 -0500
- To: pat hayes <phayes@ai.uwf.edu>
- CC: Jonathan Borden <jborden@mediaone.net>, www-rdf-logic@w3.org
pat hayes wrote: [...] > >What a URI denotes is an abstract resource; you cannot, > >in the general case, directly observe it (i.e. you > >can't "read" it); you can only indirectly observe it > >by, for example, sending HTTP GET messages to it, > >and having it reply with a representation of its state. > > Picky, picky. Someone might say that you never REALLY read a paper > page, either, you just react to the photons that bounce off its > surface. But thats just a switching-levels kind of argument. Well, yes, I'm suggesting that you've got your levels mixed up (w.r.t. the standard definition of URL/URI). Let's take a less-fuzzy example: in C, extern int *iptr; *ipr = 1; someFunc(); fprintf("current value: %d\n", *iptr); the variable iptr holds a pointer, like a URI; what it points to isn't the number 1, but a slot in memory that at one point during the program's execution, holds the number one. Your saying "a URL denotes a piece of text you can read" would be like saying "iptr points to the number 1". It doesn't. It points to a piece of memory from which you might get the number one; but you might get a different number next time you try. > Actually I think I disagree with this characterization. I (my > computer) send GETs to a computer, and it sends me back a > representation of its state, but that representation IS the web > page/file/whatever is at that URL (at the moment I go looking, of > course). Or at any rate, it is a copy of it. No; the contents of a file (a byte sequence) is not the file (a mutable object whose state at any given time is a byte sequence). The value stored in a database cell is not the cell. A picture of me is not me. Just because the current trading price of ATT was $100 at one time does not mean that $100 is equal to the function that returns the trading price of ATT given the current time. You might think of a resource (what a URI denotes) as a function from requests to responses, much like a variable is a function from the state of the program to a value. > >If it's a URI of the form NETADDR#NAME , > > Yes, but I was careful to say URL, not URI. [Well, it's not hard to find documentation that says that URLs include #fragments. But now I understand what you meant by 'URL'...] > Of course if we allow a > pointer to a file that contains a name, then we will eventually get > to names. That # sign has a meaning, right? Only in the 'standard interpretation'. At the level of the axiom I'm asking you to accept, it's just one of the characters used in a logical name, like an X or a Y or a Z. > It attaches a URL to a > logical name. Of course *that* is a logical name, sure. But is the > relationship between that and its denotation anything like that > between http://www.coginst.uwf.edu/~phayes and a rather scruffy > webpage? I suggest it is, at the logical level... that is: between http://www.coginst.uwf.edu/~phayes and a resource whose present state is a rather scruffy web page. At the operational level, yes, it behaves quite differently. In the general case, these things are names, and they take on meaning (that is: agents may/should learn/infer things about what they denote) by use in communications protocols. > For example, you can't even send GET messages to most things > that might be referred to by names. Right; that's what makes URIs special: the globally deployed communications protocols for learning about what they denote; most of the present protocols take advantage of the hierarchical structure of the names to route their queries; but newer ones, like freenet, do not. > >you can't > >even send messages to it; you can only send messages > >to NETADDR; then you might learn about what > >NETADDR#NAME denotes by interpreting some statements > >that mention NETADDR#NAME (or more likely, its > >short-form #NAME) in the response message. > >(an agent may, of course, consult any other source > >to find clues about the meaning > >of NETADDR#NAME.) > > > >Just take as an axiom that the relationship between > >a URI and a resource *is* the same as the relationship > >between a logical name and what it denotes. Try it > >on for size for a while. > > Well, I have tried that. But what I can't get to fit is doing that at > the same time as believing that URLs are URIs. If URLs are logical > names, how in hell is my computer so good at finding their unique > denotations, when it is so hopeless at finding any others? If I type > "Neptune" it doesnt fetch me a planet. Huh? This is a fallacy of undistributed middle: All URIs are names. My computer can find [out about] denotations of URIs. -> my computer should be able to find out about denotations of all names. cf http://www.intrepidsoftware.com/fallacy/undist.htm [not that you're not familiar with that fallacy; it's just a nifty reference that I like to keep handy by citing it often.] > Actually, more seriously: it may be that I do not know quite what a > "resource" is. This term seems central to W3C lore but doesnt seem to > be defined anywhere. Is there any kind of write-up on what it means? The standard one is RFC2396: [[[ Resource A resource can be anything that has identity. [...] ]]] -- http://www.ietf.org/rfc/rfc2396.txt But I'm acutally using an extension of that definition; that definition says that what NETRES denotes is a resource i.e. that every resource is named by a URI (with no #NAME); I'm also using resource to mean what NETRES#NAME denotes, as well as things without URI-names (e.g. real numbers); perhaps I should stop doing that, and call them 'object' or 'thing' in the general case. (see discussion in the uri mailing list: subject "Are URI-References bound to resources?" e.g. http://lists.w3.org/Archives/Public/uri/2001May/0024.html) > In particular, what kind of thing would NOT be a resource? As few things as possible without going paradox-nutso. i.e. I don't expect the set of all sets that are not members of themselves to be a resource/object/thing, but I don't want to constrain the universe of discourse any more than I have to. > > > OK, so. Point taken. But then you have to fess up to the fact that > > > the relationship between any kind of machine-processable inferencing > > > and this standard interpretation has to be grounded in some > > > non-logical machinery. > > > >Yes, I've already fessed up to that... > > OK, I hadnt read this before. But what I meant was that the reasoners > that we are all going to build one day will need to be built in some > non-reasoner way, in the sense that there isnt going to be any > logical way that they can tell that the intended interpetation is > being used. That doesn't surprise me; is that unusual? I don't have much experience/intuitions about 'intended interpretation's and such. [...] > >To specify the protocols that govern the Web, it is > >essential to realize that in fact, the Web is a sort of > >mass hallucination shared among all the people and > >machines distributed around the globe who accept > >the principles of Web Architecture, much the way > >businesses and consumers accept the principles of an > >economy based on paper currency. > > The trouble with this metaphor is that its the *machines* that have > to be having the mass hallucination in the case of URLs. I could > write a random URL-generator and go away, and my poor dumb laptop > would go on getting hits all by itself; but if all the people went > away, there really wouldnt be any money at all. Hmm... I don't see much of a problem with that; in particular, if the people went away, but the bank computers continued to trade on our behalf (i.e. in a manner authorized by us), and then we came back, we'd likely accept what the computers say about the results of those trades as a reflection of the amount of money we actually own, no? People and computers look very similar in Web Architecture; they're all sorta just agents. [...] > >But your expectations are not the sort of "2+2=4" > >certainty. > Yes, but thats a different point. OK, so maybe I excerpted too much, or maybe the essay wasn't really on target at all. And actually, I think the situation is somewhat more complex than the "every URI denotes exactly one resource" picture that I'm painting; I actually think maybe URIs denote different things in different contexts; for some purposes, you might claim that http://www.coginst.uwf.edu/~phayes *is* a sequence of characters starting with <html ... and that the price of AT&T *is* $100, not a function of time. And you can lift these bindings into other contexts that do consider time etc. The business of co-reference in Contexts: A Formalization and Some Applications http://www-formal.stanford.edu/guha/guha-thesis.ps Guha, Feb 10, 1995 seem to be a good way of modelling how names work in the Web. See esp. the definition of corefer on p.23 and the examples of dropping an argument to a function and making an assumption about the domain of a context on p.28. If you think of each protocol message as a context (or perhaps: having a context; I'm not sure yet) it seems to work out nicely. -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Tuesday, 15 May 2001 23:59:03 UTC