Vincent Quint, INRIA
10 February 2006
The ubiquitous web has many facets. This note focuses on information resources, more specifically on multimedia resources. To enable the ubiquitous web, information resources shared through the web should be usable and understandable in many different contexts without requiring information providers to dramatically change the way they produce and serve information. The key issue is adapting existing resources to the environment where they are actually used. To achieve effective adaptation several mechanisms should be provided by the web infrastructure. Some of them are already available, some others are currently under development, but some are still missing. This note tries to identify them.
Most techniques developed for device independence contribute to the ubiquitous web. To allow information to be efficiently delivered everywhere at any time, the delivery context must be described in a machine-readable manner. CC/PP is a step in that direction. It describes the capabilities of a user agent and the preferences of its user. DCI is adding another step by providing Web applications access to dynamic properties representing the context.
With these technologies and their further developments, the context can be described and this description can be accessed by applications. The fine-grained and complete description of the context requires a lot of information that has to be maintained and updated. One can imagine network accessible repositories of properties that describe terminals, communication networks, etc. The problem is to make sure that such repositories are properly managed. But, at least, CC/PP and DCI constitute the framework for this, and make it possible to guide the adaptation process of information resources.
Adaptation involves a broad range of techniques. CSS for instance can rearrange layout
or change colors to respect display constraints. ACSS can even change
modality, if a display can not be used. Alternate content can be specified in
SMIL and in SVG with the
switch element. This mechanism is now
being extended and generalized with DISelect, a language for content
filtering and selection that can be used in combination with any XML
All these languages perform certain types of transformations which are especially useful for content adaptation. When more complex transformations are needed, XSLT can enter into play. It is very efficient for transforming structure, but it does not help when the media objects themselves have to be transformed. Then, other specific tools have to be employed for each type of media and for each format.
Structure transformation itself still poses problems. Existing languages can not guarantee that certain properties will be maintained after transformation. Validity, for instance is an issue. Even a carefully written XSLT transformation can generate invalid documents and there is no way to check whether a transformation could lead to invalid documents.
Another difficulty that current languages have to face is transforming streamed data. With these data, transformations for adaptation have to be performed on the fly, with only a partial view of the document to be transformed. This is another challenge for transformation languages.
Before transformation can take place, and even when the context is properly described, a negotiation is needed to find out exactly how the content must be adapted. The adaptation process may have some constraints or limitations that do not fit well with the context as described originally. A negotiation dialog may allow both the user agent and the adapter to find out a compromise, an intermediate form that the adapter can produce and the terminal can accept.
Negotiation is a long standing issue that still has to be solved. Although some progress was made with HTTP 1.1, this protocol does not provide all the flexibility needed for efficient content adaptation. In particular, the goal of negotiation in HTTP is to select the best variant among a set of statically predefined versions of a resource. Dynamic generation of adapted content based on context description and real negotiation is not yet possible.
Context descriptions, negotiation protocols and transformation languages are the basic building blocks for efficient adaptation in the ubiquitous web. When it is available, the adaptation functionality provided by these blocks has still to be distributed across the web. It involves at least the servers that own information resources and the clients that present them to users. But we cannot expect that all servers and clients will be modified in the short term to fully implement the required features. However, there is one way to make adaptation happen soon, which is using proxies.
A proxy may offer adaptation services without requiring changes to clients or servers. It can talk to both of them and perform adaptation in between. Knowing only the type of hardware and software from the client, it can query a database and get all the detailed properties, that will allow it to negotiate content with the server. A server able to negotiate will return a content that the proxy can forward immediately to the client. If the server has no way to adapt content, if it stores a single version of the content, or if it is not able to negotiate, the proxy may receive the content and transform before forwarding it to the client and satisfying its constraints.
Implementing an adaptation proxy is not an easy task, but it is an efficient way to introduce possibly sophisticated adaptation without changing the existing web infrastructure.
[Submitted to the W3C Workshop on the Ubiquitous Web]