It’s easy to believe that social tagging started with del.icio.us and social voting started with digg. However, Xerox PARC had developed such functions in a system called Tapestry more than 15 years ago. The system was described in a 1992 Communications of the ACM article. (Official ACM link here. A “publicly” available pdf version here. A slide presentation here.) From the article:

“The Tapestry system was designed and built to support collaborative filtering. Collaborative filtering simply means that people collaborate to help one another perform filtering by recording their reactions to documents they read. Such reactions may be that a document was particularly interesting (or particularly uninteresting). These reactions, more generally called annotations, can be accessed by others’ filters.” (Emphasis theirs.)

This paper, in fact, was the first to coin the term ‘collaborative filtering,’ which over the years had evolved to mean the special case of automated recommendation using implicit feedback (i.e. Amazon style). Tapestry was architected for the general case. It assumed that “some annotations are themselves complex objects, and those annotations are more simply stored as separate records with pointers back to the document they annotate.” This design would sound familiar to anyone who had implemented a “modern” social tagging and voting system. See, for example, the design of Askeet.

It’s interesting to read a paper from 15 years ago and get some historical perspective. Xerox PARC had gotten the skeleton design of Web 2.0 functions before there was Web 1.0! It’s always amusing to read things like this too:

“Filtering on incoming documents is a very computationally intensive task. Imagine a Tapestry system with hundreds of users, each with dozens of filter queries, running on a document stream of tens of documents per minute.”

Yeah… We all need to thank the electrical engineers that make Moore’s law a reality…