Intensional (versioned) web sites

Besides the development  of  Lucid, for a long while I’ve been working on another application of intensionality, namely intensional web pages – pages whose exact content depends on an implicit context. Unlike with Lucid, the contexts are not lists of natural numbers but rather lists of parameter settings – originally, based on the algebra of contexts John Plaice  and I developed back in 1993 in

Plaice, J. and W.W. Wadge, “A new approach to version control,” IEEE Transactions on Software Engineering, pp. 268-276, 1993.

Originally these contexts were intended to specify versions of software systems but we soon realized that they could equally well be used to specify versions of web pages. In its simplest form a context is a list (sum) of parameter settings, for example


My students and I worked on a series of authoring systems where a web designer could specify a whole family of web pages without having to specify each member in  full individually. The idea was to break the web page (or site) into parts not  all of which are sensitive to all the parameters. For example, the images might be independent of the language parameter so there is no need to clone both English and French versions of the same graphic. The goal was that a relatively small collection of files could be used by a system that automatically generates a requested version of the web page or site.

The basic principle is that of best fit.  This means that when selecting a component of the web page we use the file whose version (context)  label most closely approximates the requested version. For example, if the value of the language parameter is French and we need a component called banner.jpg we look first to see if the author has provided a French version of the banner (one whose version label includes lang:french). If there is a specifically French version of the banner supplied, we use it, otherwise we use the generic language-independent version that presumably has been supplied. (If there is none, we have an error situation).

The first such authoring system was called Intensional HTML and was developed by myself and then MSc student Gord Brown. A web site was specified by a family of HTML files (as usual) except that each file could be available in in a number of versions each labeled with a context. The IHTML server assembled pages according to the best fit rule described above.

All the links on an IHTML site had a version parameter associated with them, sent along with the http request when the link is followed. This meant that by default the person browsing the site is browsing a fixed particular version of the site (say, the English language summary version with graphics).

One vital feature of IHTML was the transversion link, which was like an ordinary link with an extra attribute which specified a modification to the current context.  This allowed the web author to produce an English language page with a link to the French version of the site. Following this link had the effect changing the presentation language to French. Furthermore following links on the French version of the page takes the reader to French versions of the linked pages.

IHTML was unfortunately short lived. The authoring process proved very cumbersome and the system required a specially altered server. A few example sites were posted, including MSc student Taner Yildirim’s bilingual Turkish-English home page and an ambitious site that generated French language sentences. (The idea was to treat them all as versions of a generic sentence).

IHTML was followed by a series of more sophisticated authoring systems, the latest of which is operational. They’ll be described in a future post.


About Bill Wadge

I am a Professor in Computer Science at UVic.
This entry was posted in research. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s