Saturday, January 05, 2008

Feeds, set theory, and an Atom DOM

Some time ago I wrote a brief study comparing internet computer science with fundamental maths. I argued that they should coincide, because fundamental maths represents thousands of years of experience about modelling concepts - which after all, is what computer science is all about too.

Missing from the internet (I wrote) was one maths subject, probably the most fundamental of all - set theory, concerning unordered collections of objects. Basic set operations include cardinality (i.e. number of members), union, and intersect - remember those Venn diagrams!

I've belatedly realised, of course, that there is a very important use indeed of set theory on the web - RSS. Feeds are sets! Originally designed to be a blogging platform, RSS (or equivalently, Atom, its better formed sibling) is showing up in all sorts of other places (tagging, email / calendar apps, photo sharing, ...) because it executes perfectly such a simple and powerful concept. The members of a feed set are URLs, which can represent anything - that's why RSS is so powerful.

Indeed, libraries and services such as Yahoo! Pipes have emerged to offer many of the concepts of set theory, including the basics functions of cardinality, union, and intersect, plus slightly more advanced ones.

An Atom DOM

The one thing that maths teaches about sets are that they're critical to pretty much everything else. I would expect web developers to discover the same thing; I wouldn't be surprised if a native browser 'Atom DOM', offering the basic set functions, sprung up. After all, we already have a DOM for XML and HTML, the other two web formats!

What would an Atom DOM look like?

At its most basic level, you'd just need an object to represent the feed, exposing its properties and the elements in the feed, alongside perhaps the feed's cardinality. This alone would save lots of effort for Ajax developers!

For me, the methods of the feed object would be more interesting. Membership, subsets (perhaps created via user-defined filters), union, intersect, cartesian products, power sets, sorts - each would provide a wealth of opportunities for developers.

I doubt that an Atom DOM will exist for several years; the Atom working group has disbanded for a few years, having successfully published its version 1.0 recommendation.

But if an Atom DOM were implemented, it would be tremendously powerful for web developers. Thousands of years of fundamental maths can't be wrong!

No comments: