Home

20010407 What is a (Web-) resource?

Things to observe before continuing:
In this text I make a distinction between a (Web-) resource and an entity, and I assume that the URI-space is the Web.

The URI-specification defines an infinite number of strings that are the possible set of valid URIs. This creates an abstract space (actually called a namespace, but don't let this confuse you), wherein each unique point in the space is a unique URI. Using URIs, we can navigate in this space. A resource is a "port" to other possible disjoint spaces (e.g. the real world, the network called Internet - the IP-space, etc.). The definition of a resource could be: a (Web-) resource is a pair (URI, mapping-to-point-in-another-or-the-same-space). The mapping can be both abstract and definite (an abstract mapping is, for example, when a resource is mapped outside the "computer world" to a person, and a definite mapping is e.g. to a file accessible thru the Internet). An entity is the name for the thing that a (Web-) resource could map onto (e.g. a person, a file, or an abstract thing). The picture below illustrates this.

URI and resource

Thus, a (Web-) resource is a pair consisting of the URI and a mapping function (abstract or definite).

What is a URL then? A URL is a URI that has a special syntax making the mapping to the entity (a point in another space) explicitly stated in the string. Thus, a URL is a (Web-) resource representing the entity that the URL maps to. Since we can't move things into the abstract space, we need to represent them by using (Web-) resources.

This gives rise to a lot of questions:

  1. Is a URL always a (Web-) resource, e.g. even if the definite mapping does not map onto any entity? (e.g. XML namespaces, without retrievable schema)
  2. Could two different resources be "identical"?
  3. Could two different resources represent the same entity?

Answers:

  1. Yes, a URL is (according to my definition) always a resource since a resource is a pair (URI, mapping) and the URL has the mapping encoded in the string. (Thus, a URL that identifies a namespace should be treated as a (Web-) resource.)
  2. A resource is a pair; therefore, to be "identical" the have to have the same URI and mapping.
  3. Yes, but two different (Web-) resources will represent the same entity.

What is a URN then? The problem with this question is the intersection of the set of URNs and URLs (i.e. that a URI could be a URN, URL, or both [RFC2396]). A URN without a resolution service is a (Web-) resource that has an abstract mapping to an entity. A URN with a resolution service is a (Web-) resource where the mapping is to another (Web-) resource - a URL. (The previous is only valid if a URL could be an entity, i.e. could a mapping inside the same space justify it being called a resource. Does this lead to a contradiction?)

This gives also rise to one question: (at least for now ;))

  1. How could two URNs that do not have a resolution service be compared to see if they represent the same entity (maps to)?

Answer:

  1. Since the mapping is abstract, the comparison has to be done by something that could interpret the mappings. Mapping two URNs to something in our space (e.g. a chair), it would not be possible to use a machine to make the comparison.

Using a URL to identify an abstract thing (e.g. a feeling) is similar to using a VOID pointer in a programming language and uses it as an identifier (not as a pointer). Does this mean that a URN without a resolutions service should be used to represent abstract entities on the Web? Yes, I think so now, but at this point I am not sure.

To summarize: URIs and URNs identifies (Web-) resources. The differences between them are the mapping.

This is far from complete. This is only what I think at the moment.

(This makes a lot of my previous work a bit "weak" in terms of how I use the word resource. E.g. the picture should be not use the text "A resource e.g. a Web page" but instead "A Web-resource representing a Web page".

Home