Hypermedia: data as a first-class element
as i prepare for my Hypermedia Workshop for REST Fest 2010 this september, i am reviewing lots of material regarding hyper [media | text | data | etc.]. along the way, i pulled up the always entertaining slide deck from Roy T. Fielding's talk at ApacheCon Europe - 2008. the deck itself is notable for it's clarity and simplicity. i still enjoy reviewing it years after i first saw it.
SPOILER ALERT: i love the "Relaxation" section (e.g. "Clearly it's time to start messing with minds.")
his summary of Hyper[text|media] is a case in point. i've included a re-working of this part of this presentation (see slide 50) as an example of his clean and direct approach. BTW - the next three items are lifted directly from his slides w/o editing.
- non-linear documents
"By 'hypertext,' I mean non-sequential writing - text that branches and allows choices to the reader, best read at an interactive screen. As popularly conceived, this is a series of text chunks connected by links which offer the reader different pathways"
- selectable GUI controls
"Hypertext is a computer-supported medium for information in which many interlinked documents are displayed with their links on a high-resolution computer screen."
- data-guided controls
"The simultaneous presentation of information and controls such that the information becomes the affordance through which the user obtains choices and selects actions. Hypertext does not need to be HTML on a browser; machines can follow links when they understand the data format and relationship types"
data as first-class elements
note that Fielding's description of hyper[media|text|data] is more than just linking text (non-linear documents) or enhancing the user interface (selectable GUI controls) and is not limited to a particular data format (HTML). for Fielding, "simultaneous presentation of information and controls" means the message is more than raw data - it also contains application controls. in addition, Fielding asserts these controls are "the affordance through which the user obtains choices." IOW, the details on how users can change the current state of the application is contained within the message itself (not in the application code running in the client).
this view of hypermedia elevates the role the message itself plays in the design & implementation of distributed network applications and is a key aspect of the REST architectural style defined in Fielding's dissertation. the importance of this aspect of Fielding's work has been acknowledged in the book Software Architecture: Foundations, Theory, and Practice (2010):
"REST not only gives data elements first-class status, they surpass in importance both processing and connecting elements."
in my current work, this understanding that data itself can be a first-class element in software architecture has lead to my study of Hypermedia Types; their nature, role, and influence on the design and implementation of distributed network applications. the results of that study can be applied directly to the process of actively designing and documenting (hyper)media-types when implementing WWW applications.