Introduction / Position

Hi All,

Here's some text which describes my current thinking, and which will 
essentially form the basis of any feedback I give in relation to the 
topics discussed by this group:

[[[
The set of things which URIs can name are called Resources in web 
architecture.

Resources are the key abstraction in web architecture, each resource is 
a conceptual mapping to a set of entities, not the entity that 
corresponds to the mapping at any particular point in time.

The term "resource" is itself a name for a resource, a conceptual 
mapping to the set of all things which can be referred to, used by, 
interacted with, or presented by machines - not the contents of this set 
at a particular point in time.

Since technological advancements are constantly being made, it is 
impossible to effectively define or constrain the set of things which 
are resources; as such, it is impossible to define or constrain the set 
of things which can be referred to by URIs.

URIs are human and machine friendly names which are used to refer to 
resources, they are references to a conceptual mapping.

The ways in which a resource referred to by a particular URI can be 
used, interacted with or presented are not defined or constrained by the 
lexical format of the URI, nor the specification relating to the scheme 
of the URI, nor any protocol relating to the scheme.

The ways in which a particular URI can be dereferenced are not defined 
or constrained by the lexical format of that URI. When the scheme of a 
URI relates to a protocol, then this is merely an indication of a well 
defined protocol which may be used as part of a dereferencing process.

The method of dereferencing a URI and the result of any dereferencing 
action, is determined entirely by the application doing the 
dereferencing. That is to say, the result of dereferencing a URI is 
entirely context specific, different applications may implement entirely 
different methods of dereferencing the same URI, producing entirely 
different results.

Each resource has an unbounded set of names, and that set of names can 
change at any time. As such, no name is the name for a resource, rather 
it is a temporary name for that resource.

A name which refers to one resource at a particular instant may refer to 
an entirely different resource the next instant. Moreover, at any given 
instant the same name may be used in different contexts to refer to 
entirely different resources.

As URIs are names, they share the ambiguities and characteristics of 
real world names, similarly as resources are conceptual mappings, they 
too share the same ambiguities and characteristics of real world 
conceptual mappings.

The lexical form of a URI does not have any universal significance, 
however both humans and machines are free to derive some indication of 
the thing being referred to from information derived from the lexical 
form of a URI, this is merely a belief state, which can be, and often 
is, invalidated by the act of dereferencing that URI.

URIs are both opaque strings and compound names, each component part of 
a URI is potentially a name for a distinct resource. URI syntax is 
constructed in such a way that the temporal variance and stability of 
the resource referred to by each component part increases exponentially 
from left to right.

The component parts of a URI are typically utilized within scheme 
specific processing of that URI, all except the tail component, the 
fragment identifier, which is separated from the rest of a URI prior to 
scheme specific dereferencing.

Whilst fragment identifiers are abstracted from the rest of a URI as 
part of scheme specific dereferencing, they play an important part in 
the dereferencing processing. Fragment identifiers enable, and are 
utilized by, secondary/layered protocols, and applications in the 
context specific dereferencing of a URI.

URIs containing fragments are often considered to name secondary 
resources, a resource only indirectly referenced by a primary resource, 
however this is only a technical constraint placed on first class 
transfer protocols to allow the process of dereferencing to be 
extensible, layered and context specific.

The presence of a fragment within a URI is not an indication that the 
URI names a "secondary resource", or that any "primary resource" exists. 
Each URI is an opaque name for a resource, no hierarchy between names or 
resources is inferred or indicated by the syntax of that URI. That is to 
say, the act of dereferencing involves taking a single opaque name, and 
dereferencing that opaque name. The successful dereferencing of an 
opaque name is not an indication that a URI comprising a subset of the 
component parts refers to any resource, or indeed that it is a name for 
anything.

Since all URIs are temporary references to conceptual mappings, they are 
not, and cannot be, persistent identifiers. Persistent identification 
can only be achieved via unambiguous representation or description of 
the identity of a thing, and shared understanding of that representation 
or description. Persistent identification cannot be by reference.

Persistent identification is beyond the scope, and possibility of URIs 
in Web Architecture. If entities require that a name be used as a 
persistent identifier within certain contexts, then it is the 
responsibility of that entity to ensure that any usage of that name 
within those contexts is consistent, with a well defined, shared 
meaning, this entails ensuring that the dereferencing of that URI within 
those contexts remains consistent and available over time. This is in 
the realm of the application, not the architecture.

Additionally, as URIs are temporary references to conceptual mappings, 
it is possible for a URI to refer to one conceptual mapping valid at 
time t1 in one context, and another conceptual mapping valid at time t2 
in another context. As such, it is possible for URIs including a domain 
name to refer to a conceptual mapping defined by a previous owner of 
that domain in certain contexts. Thus, the presence of a domain name 
within a URI does not indicate legal ownership, or responsibility, over 
that URI by any entity currently owning that domain name.

However, entities are legally responsible for things they say and do, 
and as such can be held accountable for any action they take, or 
information they provide, in response to a dereferencing action.

As of 2011, there remains much research and standardization work to be 
done in this respect, particularly with regards to the accountability 
and provenance of messages sent over the internet as a result of, and in 
relation to, a dereferencing action.

]]]

Hopefully that all makes sense, and once again, thanks for inviting me 
to comment.

Best,

Nathan

Received on Sunday, 16 January 2011 19:12:11 UTC