This document is also available in these non-normative formats: XML.
This note considers the semantics of metadata in which the subject of the metadata (the "data") is specified using a URI that may be used in a retrieval request on the Web. This situation is complicated in that agents might obtain different information on different retrieval operations, raising the question of what the subject of the metadata is, and what might be true or not of it.
It is proposed that the practical purpose of the "information resource" abstraction in Web architecture is to supply suitable subjects for this kind of metadata. Relating "information resources" to metadata in this way makes concrete the value proposition for the proposal that a URI should name a generic entity that is instantiated by results of retrieval requests that use that URI. It is hoped that this analysis will be of use in future work aimed at strengthening or modifying consensus around this rule.
This document is an editors' copy that has no official standing.
This report has been developed by the AWWSW Task Group of the W3C Technical Architecture Group in connection with TAG issue 57 [issue-57], "Mechanisms for obtaining information about the meaning of a given URI".
Publication of this draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time.
Please send comments on this document to the publicly archived TAG mailing list firstname.lastname@example.org (archive). Much of the initial development of this document was discussed on the email@example.com mailing list, with archive at http://lists.w3.org/Archives/Public/public-awwsw/.
It is common to say things like "the title of http://example/hen is 'Trouvée'", or, in a machine-readable language such as Turtle,
<http://example/hen> dc:title "Trouvée".
with the intent of saying something about what you get from a retrieval (on the Web, generally) using the URI 'http://example/hen'. This manner of speaking is mysterious in two ways. First, retrieving using the URI might yield different results at different times or at the same time to different clients. For example, there may be differences in layout, format, or content as the host improves its site or adapts to client preferences, or changes in marginal advertising from one client to another. Because there is variability in what you get, it may be that some results may have that title, while others don't. Is this a problem? If not, why not?
Second, the statement suggests that there exists something that has that title, the thing that the URI refers to. What is the nature of that thing and what can we say about it? Is it some particular retrieval result, or some other kind of entity that is somehow related to all retrieval results?
This note is a post hoc reconstruction of Web metadata intended to answer these questions. It proceeds in three stages. First, the idea of generic information entities that have metadata is introduced, without any particular reference to the Web. Second, it is suggested that there are generic information entities on the Web associated with URIs. Third, it is suggested that while these entities are fundamentally independent of their names, it is useful to name them using the URIs with which they're associated, as opposed to some other kind of name.
We are using "Web metadata" as a shorthand to describe a particular situation. There is much metadata on the Web for which attention to complications introduced by retrieval using a URI is not relevant, including embedded metadata (e.g. XMP) and traditional bibliographic records. These other aspects of metadata on the Web will not be covered in this note.
Metadata is data about data or information about information. Typical metadata includes information about some information entity's content (title, word count, topic, format, language, etc.) and provenance (author, publisher, publication date, revision history, etc.). Because metadata is information about information, it might be stated of any kind of information entity, such as a document, image, or audio recording.
The same metadata may apply to multiple information entities, as when an HTML document and a PDF document both have the same title, author, date, word count, topic, and so on as a consequence of having been generated from a common source. It will be useful to have a term to apply in the situation where metadata does not explicitly specify a particular subject, so define a "metadata predicate" to be metadata of this sort. In this case we would have a metadata predicate that is true of documents that have a particular title, author, and so on (whatever is common to the HTML and PDF versions), while the metadata predicate "is an HTML document" would be true of one format but not the other.
The situation where collections of information entities are related to one another in some way (e.g. via revision, translation, or reformatting) is quite common. People often play a grammatical trick in this situation, where a class of related entities is treated as if it were a single generic entity. For a non-information example, we might say "the tapir has a prehensile snout" referring not to an individual tapir but to tapirs in general. If there were a tapir in front of us the statement would indeed be true of that specific tapir, but "the tapir" refers not to that tapir but to a "generic tapir". The specific tapir might be said to "instantiate" the generic one.
Similarly, if we say "Elizabeth Bishop wrote that poem about a hen" then "that poem about a hen" refers not to some specific information entity with a definite length, layout, and format, but to a class of information entities that have in common, among other things, that they're by Elizabeth Bishop and are poems. The specific entity that I read and the one that you read may differ, but if so it will be in ways that are not important to what we're talking about. (See [GR].)
The reason we consider these generic entities to exist is so that we can say things about them as if they were specific - i.e. so that we can apply predicates to them - and avoid the need to express a universal quantification ("every tapir") explicitly. A metadata predicate therefore holds of a generic information entity when, and only when, it holds of the specific information entities that instantiate the generic information entity.
Put formally, if M is a metadata predicate and G is a generic information entity,
We now relate this idea to the Web. The Web works as follows: A set of governing specifications (, etc.) and namespaces (e.g. DNS) "authorize" servers and APIs to yield certain specific information entities  in response to retrieval requests using a given URI. Let's say that in this situation a specific information entity (SIE) is "authorized for" the URI. This formulation is neutral with regard to protocol, but HTTP is an important point of reference: With a properly functioning infrastructure, an HTTP request GET U will yield a 200 OK response carrying Z only when Z is authorized for U.
When only one SIE is authorized for a URI, a server, cache, or API will yield that SIE (or fail to yield any). The set of authorized SIEs may vary over time. Application scenarios in which multiple SIEs are authorized at one time for a single URI include content negotiation variants (such as versions in multiple language), SIEs that vary depending on user identity or session state, or overlapping cache lifetimes (Expires:) for different versions of a changing document.
The following defines what it means for a generic information entity to be "on the Web" at a given URI:
(This "on the Web" really transcends the physical apparatus of the World Wide Web, since we could have URIs that by agreement have authorized SIEs that are accessed in some other way than via Web retrievals.)
We take as axiomatic that for any nonempty class of SIEs there is a generic information entity that is instantiated by those and only those specific information entities. This lets us say:
Now where does this get us? To say that any SIE retrieved from "http://example/hen" has (or will have) "Trouvée" as its title, we can write (in Turtle [turtle])
[wa:hasInstanceUri "http://example/hen"] dc:title "Trouvée".
(where wa:hasInstanceUri is the name for the "on the Web at" property in some yet-to-be-standardized vocabulary). This is a useful thing to say, since it is predictive: It tells someone that if they retrieve using URI, they will get something with that dc:title. They may not see the exact same SIE that the agent who wrote the metadata saw, but it will be close enough that the metadata still applies.
The agent that authorizes SIEs for a URI is in a good position to write metadata relating to that URI, since they can ensure that the metadata is true for any SIE they authorize. On the other hand, other agents can be correct in writing metadata, if they know something about how the controlling agent manages its namespace (web site). Guaranteed correctness is not always necessary, however, and metadata may just express a reasonable or useful belief. One can be confident when there is a credible and irrevocable public commitment regarding authorized SIEs, as there is for, say, the data: URI scheme, but the SIEs authorized for http: scheme URIs, as the http: scheme is currently formulated, ultimately depend on those institutions such as ICANN that in practice control domain names, making such all statements of metadata contingent.
The following diagram illustrates the various entities involved and their relationships. Dashed lines indicate relationships that are equivalent to universally quantified statements.
A common practice is to use an absolute URI as a name for a (generic) information entity that is on the Web at that URI. This practice is parsimonious: It would be more complicated than necessary for a single URI to be used on the Web in one way, and to name in another way. If this is done for the above example, we would write
<http://example/hen> dc:title "Trouvée".
to give the title of the information entity on the Web at 'http://example/hen'. Because using URIs like this is common — some might say obvious — practice, such a statement is often understood, without further explanation, as saying something about SIEs retrieved using the given URI.
However, use of URIs in this way is not a foregone conclusion. In RFC 3986 , for example, a representation can be any encoding of the state of the resource "identified" by the URI in question, and many people have taken this to mean that the representation might merely describe the URI's referent, not instantiate it. Should there be any doubt as to whether the URI will be understood as referring to the generic resource at that URI, one might write
<http://example/hen> wa:hasInstanceUri "http://example/hen". <http://example/hen> dc:title "Trouvée".
to be explicit about what one means.
In the event that the URI is unavailable to name the information entity because it is already used to name something else, then a different name can be used to refer to an information entity on the Web at that URI. In Turtle, this could be blank node notation such as [wa:hasInstanceUri "http://example/hen"], or a different URI:
:poem wa:hasInstanceUri "http://example/hen". :poem dc:title "Trouvée".
Whether we can expect in general that a retrieval-enabled URI will be understood as a name for a (generic) information entity with instances authorized (potentially retrievable) using that URI is the essence of the heated httpRange-14 debate [issue-14], which is essentially a turf war over use of the URI namespace. Those who consider it important to write Web metadata have an interest in using URIs in the manner described above, since it gives obvious names to entities on the Web and therefore an easy way to say things about them. Those who don't care about talking about the Web in this way may see an opportunity to put the URIs in question to uses better suited to their applications. If the httpRange-14 rule ([issue-14-resolved] clause a) is not generally respected, then the meaning of all retrieval-enabled URIs will be put in doubt, and new notational conventions for metadata similar to the above constructions using wa:hasInstanceUri will have to be instituted for use in potentially all Web metadata.
The "generic information entities" of this note coincide with the "generic resources" described by Berners-Lee [GR]. They extend Berners-Lee's abstraction by adding a theory of metadata.
There has been some debate over the possible differences between "specific information entity" as defined above, "fixed resource" as defined in [GR], "entity" as defined in [rfc2616], and "representation" (the type, not the role or relationship) as defined in [webarch]. These are all quite similar and it is possible that they do not differ in any consequential way.
"Generic information entity" is defined quite differently from the term "information resource" found in [webarch], but the abstraction may serve better than "information resource" in many of the contexts in which the term "information resource" is currently used. It is even conceivable that the present abstraction is what the authors of AWWW meant, in which case it might be socially feasible to replace the AWWW definition of "information resource" with the present one, adjusting the meaning of the term "information resource", which has become familiar, to a more useful purpose.
David Booth, Harry Halpin, Michael Hausenblas, Nathan Rixham, and Alan Ruttenberg contributed to the creation of this note. Thanks to Taylor Campbell and Stéphane Corlosquet for comments on drafts.