Re: What do the ontologists want (what URIs denote)

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