MultipleCorrectBehaviors
SandroHawke wrote this, but no longer believe/supports it. A simpler view is that some URIs (all 'traditional' ones, all non-MCB ones) denote services.
A few definitions to get us onto the same footing:
- Resource is the universal class. Every entity, quality, state,
action, concept, ... everything is a Resource. Some other words for the universal class are "object" and "thing". This term is usually capitalized both to emphasize that it is being used in a specialized sense and perhaps because it is a class name and we like the convention of capitalizing class names.
- A URI is a character string conforming to the familiar RFC:2396 syntax.
(Technically it is either an absolute URI-Reference or a relative URI-Reference used in a context with a suitable base URI.)
- A URI identifies exactly one Resource. DanConnolly wonders if that's overly simplistic.
SandroHawke, who wrote the original text here, now agrees it is, since it ignores the essential point of ModelTheory and assumes a SingleIntendedModel. The "identifies" relation is similar to "denotes", "refers to", and "names" but it is single-valued (unambiguous) across all normal usage contexts. The "identifies" relation SHOULD be stable over time, but some instability in the mapping is tollerable. Web pages whose content varies over time (like http://www.cnn.com) exibit a stable "identifies" relation, but the Resource itself has varying representation or information content.
- The controlling authority of a URI is the
social entity (like a person or corporation) who has the authority to specify which Resource is identified by the URI. Not all URIs have a controlling authority, and the controlling authority of a URI may change over time.
An observation:
- There are two kinds of Resources. Call them MCB Resources and Non-MCB Resources.
MCB Resources are relatively new to the web; Non-MCB Resources are the traditional one, like web pages.
Here's the MCB test for a Resource, R:
- Imagine a URI U1 with controlling authority A1. A1 declares
that U1 identifies R, and no one has reason to disagree.
- Imagine a URI U2 with controlling authority A2. A2 declares
that U2 identifies R, and no one has reason to disagree.
- Imagine both U1 and U2 provide some useful functionality to users via web user agents (browsers).
- Could a user experience significant difference between U1 and U2? If so,
R is an MCB Resource.
The key here is that A1 and A2 are providing different but useful user-experiences through their two URIs. With conventional, Non-MCB Resources, that means that U1 and U2 identify different Resources. But with MCB Resources, it is possible.
Examples of MCB Resources:
- Winston Churchill
- 2003-04-04T12:33:54Z
- The Sun
- The American Civil War
- the set of last-call issues for RDF Core WG
- the physical machine known as mail.w3.org
(a 350 MHz PentiumII with 256 MB RAM, as of this writing)
- the X-10 power controller sandro once put on the web
so people could turn his lights on and off
Examples of non-MCB Resources:
- The W3C front page
- The URoulette front page
- The URoulette random redirector
- The web-forms interface to the above X-10
power controller.
Try running the test. Imagine two URIs for Winston Churchill. Imagine the URIs are browsable. Imagine one leads to facts about his personal life, while another leads to facts about his political career. Each is useful; each is different. No one is lying, no one is wrong. One Resource, Multiple URIs, Multiple Correct Behaviors. Winston is an MCB Resource.
On the contrary, imagine two URIs for the W3C front page. Perhaps http://www.w3.org and http://www.w3.org/2003/04/front-page/proxy. In our imagination (and perhaps in real life) they exibit the same behavior. No problem. Now imagine another URI, http://www.w3.org/2003/04/front-page/copy, which exhibits a slighly different behavior: it gives the same content as the first did at 2003-04-04T20:03Z. One Resources, Multiple URIs, Multiple Behaviors .... but only one is correct. Either the second URI's behavior is incorrect, or the second URI is actually identifying a different resource. The W3C front page (like all web pages) is a Non-MCB Resource.
Put differently:
- An MCB (Multiple Correct Behaviors) Resource is one which could potentially be identified by
multiple URIs which provide users with significantly different web-user-agent experiences. With a non-MCB Resource, if you have more than one URI identifying the Resource, all such URIs must exhibit essentially the same behavior.
TagIssue:httpRage-14 could be seen as this: Can MCB Resources can be identified with non-fragment (no-#) HTTP URIs?
There are some more intuitive names for Non-MCB Resources, but each of them is misleading on some counts:
- "Information Resource", but in conventional usage, people can also
be information resources.
- "Network-Accessible Resource", but a networked computer can also
be considered a network resource
- "Conceptual Work", ... this might be okay. When something is
a mental artifact, certain behaviors can probably be said to be more correct than others. Needs more thought.
The act of making MCB Resource URIs "work" in web user agents raises a spectre of ambiguity, since users may reasonably assume such URIs identify web sites. There are some options thought, see WhenBrowsableAndUnambiguousCollide.