Re: HTTP Range Middle ground?

Paul Prescod wrote:

>
> I don't follow. Web sites are served by servers. The responder is just
> the responder. It is a thing that listens for HTTP methods and does
> stuff. If RDF is to reason about these things then we need to
> distinguish them (whether in URI syntax or RDF assertions or otherwise)
> from objects that they may be proxies for like robots or human beings.

What seems to be an entirely straighforward declaration that an HTTP URI
identifies a server breaks down on considering something like Akamai's ESI
http://www.akamai.com/en/resources/pdf/esioverview.pdf . Where exactly is
the resource in that diagram?

>
> I don't think anyone would suggest different syntaxes for Aurelius the
> computer versus Aurelius the Emporer. But some would say that it would
> bad practice to use an HTTP URI to represent either of them and at the
> same time use that URI to represent an HTTP responder that proxies for
> them because how would you decide which properties apply to the proxy
> and which to the proxied object?

I hope that we all agree that it is bad practice to use any one URI to
directly identify any two different things, whether they be a person vs. a
document, or an apple vs. an orange.

>
> IMO, each URI denotes a particular entity. It is obviously bad for a
> single URI to address two entities. That's Fact 1.

What is an entity? A single URI might certainly address two distinct network
entities. A single URI might also denote a range of interpretations.

>
> SW folks are encouraged use HTTP URIs so we can address a responder in
> addition to identifying a logical SW entity. Fact 2.

By entity do you mean "resource"? Its just that RFC 2396 also defines the
term "entity"

>
> We are using the address of one resource as the name of another resource
> because it is convenient and has important network effects. But what if
> we need to talk about the responder. What is its name?

Bernie? Is the issue that we have a finite number of names? Ok suppose we
grant you this point. Still which responder gets to use the HTTP name: the
server? what if the server is a cluster?, the proxy? what if there are a
chain of proxies? the disc cache? what if the user has a RAID array? etc...

In any case you can always talk about the Responder using RDF thus:

<ex:Responder>
        <ex:listensToEndpointFor rdf:resource="http://example.com/foo" />
</ex:Resonder>

That is, rather than giving the responder its own name, you can refer to it
just as I might use the phrase "Paul Prescod's website". We can make this
implicit in OWL/RDFS via:

<rdf:Property rdf:ID="listensToEndpointFor">
    <rdfs:domain rdf:resource="#Responder" />
</rdf:Property>

>
> There are some resources that we expect to respond to
> GET/PUT/POST/DELETE and other resources (like the emperor) that we do
> not. This strikes me as undeniable.

This might be one way to categorize resources.

> ... Or to put it another way, at the
> HTTP level, two URIs should only be said to address the same resource if
> the behaviour of the two is indistinguishable in terms of HTTP messages.

Absolutely and most vehemently not. You can only know the past behavior in
terms of HTTP responses, not predict the future. A user might provide the
same copy of a document at two different locations, i.e. as two different
files on a hard drive. Are these files identical? Yes they are bitwise
identical. But they are not the same resource. One of the files might be
edited at any point in time, or replaced with something entirely different.

> But at the Semantic Web level it might make perfect sense to say that
> these two URIs name the same resource:
>
> http://www.dictionary.com/Aurelius#
> http://www.encarta.com/Aurelius#
>
> Even if their HTTP behaviour is totally different. Is it equally valid
> to say that these two URIs represent the same resource:
>
> http://www.dictionary.com/Aurelius
> http://www.encarta.com/Aurelius

you mean by saying:

<http://www.dictionary.com/Aurelius> owl:sameAs
<http://www.encarta.com/Aurelius> .

You can say that but it might have logically unintended consequences, or
might simply entail a logical contradiction e.g.

"1"^^xsd:integer owl:sameAs "2"^^xsd:integer .

You can say that but it doesn't make it true.

>
> Maybe. But if so then how do I make an assertion that says that the HTTP
> responder resources are actually totally different (e.g. when it comes
> to caching, supported methods etc.)? I really don't care HOW that
> assertion is made but it seems clear to me that it should be STANDARIZED
> and not ad hoc.

Umm... why not:

<http://example.org/foo> owl:differentFrom <http://example.org/bar>

Now you could say that they have different cache's, supported methods, etc.
in RDF as well (that would be easy).

Jonathan

Received on Wednesday, 30 July 2003 18:27:52 UTC