Warning:
This wiki has been archived and is now read-only.

DesignPrinciples

From XML Hypermedia Community Group
Jump to: navigation, search

XML Hypermedia Design Principles

XML Hypermedia Community Group Note July 20, 2012

This version:

Latest version:

Editor: XML Hypermedia Community

Status of this document

This is a Note composed by the XML Hypermedia Community Group, based on the XML Linking Language (XLink) Design Principles, for use by the XML Hypermedia Community Group and other parties interested in enabling XML to provide the basic elements necessary for RESTful interaction on the World Wide Web. It reflects the rough consensus of the XML Hypermedia Community. This document will be updated over time, in particular to reflect the on-going evolution of hypermedia vocabularies expressed in XML and derived markup languages. The design principles described herein have been thoroughly discussed, and are in part based on the principles that informed the design of XML and XLink, with the added benefit of hindsight. Comments are welcome and will be given due consideration. Please send any comments to the XML Hypermedia Community Group mailing list.

For the current status of the XML Hypermedia Community Group, see http://www.w3.org/community/xmlhypermedia/.

Abstract

This document explains the design principles behind the XML Hypermedia affordance “vowels” and the XML hypermedia vocabulary design space enabled by virtue of these vowels. The objective of defining the vowels is to enable the design of hypermedia vocabularies in any document considered to be XML, such that those documents may be readily navigable over the Web by user-agents.

XML Hypermedia Design Principles

Version 1.0

Table of Contents

1. XML Hypermedia Vowels’ Design Principles

1.0 The XML Hypermedia vowels shall be designed to reflect the Web architectural style
1.1 The XML Hypermedia vowels shall be based on their homologues from existing Web hypermedia vocabularies, to the greatest extent possible.
1.2 The XML Hypermedia vowels shall allow backwards-compatible hypermedia vocabulary design
1.3 The XML Hypermedia vowels shall be useful in any vocabulary of XML transferred through Web infrastructure
1.4 The XML Hypermedia vowels design shall be prepared carefully, in respect of the past and future of XML and the Web.
1.5 The XML Hypermedia vowels design shall be formal and simple
1.6 XML Hypermedia vowels shall be recognizable by Web programmers 
1.7 XML Hypermedia vowels are intended to be used in XML-based Web resources to allow reference to other Web resources
1.8 XML Hypermedia vowels will allow XML Web vocabulary designers to design links appropriate to their needs.
1.9 XML Hypermedia vowels must follow the Rule of Least Power


2. XML Hypermedia Vocabulary design space

3. References


1. XML Hypermedia Vowels Design Principles

1.0 The XML Hypermedia vowels shall be designed to reflect the Web architectural style

This goal follows from the overall goal of XML itself, which is reflected in the Abstract section of the XML specification, and which is explained by Tim Bray’s annotation here. However, Goal Number 1 of XML, that is, “XML shall be straightforwardly usable over the Internet” seems to have a slightly different interpretation by Tim, here. However, it would seem that the intent of the originators of XML was to make it interoperable and useful on the Web, and that is somewhat reflected in Rick Jelliffe’s discussion of this goal, here. That is the spirit of the current principle. The XML Hypermedia vowels will be designed to reflect the architectural style of the best elements Web architecture, known specifically as Representational State Transfer. This implies the following:

  • The constraints which define REST shall be reflected in the design of the XML Hypermedia vowels, namely:
    • identification of resources – URI, or possibly nowadays IRIs
    • manipulation of resources through representations – data, metadata & meta-metadata are parts of the representation
    • self-descriptive messages – message metadata is linked to public standards and specifications eg URI, Media Types, Language codes etc.
    • hypermedia as the engine of application state