Web Architecture Illustrated

Dan Connolly
inspired by Ian Jacobs and Tim Berners-Lee, and others

see also: notes about these diagrams

A Web Resource

A URI identifies a resource, which has a representation.


This is something of an idealization. We present a refinement below, where consider each Resource to be a mapping from protocol messages to actual referents. Protocol messages act like interpretations (or perhaps possible worlds) in this way.

Internet Media Types

The resource is represented in multiple data formats; i.e. multiple Internt Media Types.


Fragment Identifiers

Each Internet Media Type tells how to evaluate a fragment identifier as an expression with respect to the data of a representation in that media type. For example, the HTML specification says how to evaluate a fragment identifier given an HTML document.

fragment identifiers

URI References

URI references facilitate exporting a self-referential group of resources from a smaller context to a larger context.

fragment identifiers

Communication Protocols

Representations are communicated between agents via messages in communication protocols, e.g. HTTP.

Messages provide context in which to interpret URIs.

agent/message etc.

This RDF ontology connects my earlier work formalizing HTTP caching in larch and various bits of research into logic and protocols (e.g. Guha's thesis on contexts) with recent www-tag sw-meaning discussions of the meaning of URIs as referring expressions in data formats and formal systems:

  1. represents(m, i, r)
  2. ?MSG cyc:ist { ?RES log:uri ?I; log:content ?REPR }.
  3. { ?MSG :body ?REP; :subject [ :identifies ?RES ] } => { ?RES w:representation ?REP }.
    ?I :identifies ?RES. ?RES ?M ?REF.
  4. ?I :identifies ?RES. ?M :binding [ :arg ?RES; :value ?REF].