Monday, May 03, 2004

Eugene Eric Kim's Manifesto for Collaborative Tools

Eugene Eric Kim has written A Manifesto for Collaborative Tools, in which he argues that there is a pressing need to improve our collaborative tools, and this need boils down to being "people-centric when designing and building applications, and [working] with other developers to make our tools more interoperable." The article elaborates on these themes and points to some directions for addressing the issues. He ends with a handy list of references to related work. I agree that it's an important issue, and I think he has some worthwhile things to say. Some of my comments on it follow.

Regarding interoperability, this is how we should be trying to make tools work: "[y]our PIM application may already allow you to link a person's name in your calendar to that person's contact information within the same application. However, it should also allow you to link to that person's contact information in another application, to the email with directions to the meeting place, to the document containing the agenda, to the instant messenging transcript where you arranged the meeting, and so forth, all independent of the tools or file formats being used."

I think his notion of a shared conceptual framework, as a solution for the interoperability issue, is an important one. To illustrate this notion, while there a numerous relational database systems, they all have at their core the relational model, and can all speak SQL. Kim suggests that a shared conceptual framework for collaborative software "would provide a common vocabulary for thinking about and discussing these tools, and would also reveal opportunities for standardization". He goes on to provide some good examples of the elements that could go into such a framework, including backlinks ("links from other documents pointing to the document in question"), fine-grained linking, and a standard document model ("do for documents what relational algebra and SQL did for databases").

Kim suggests that XML, in itself, is not the best way to provide the kind of features he talks about. His criticism of XML is of it being a syntax for representing information: "[t]he syntax used to express a document is ultimately irrelevant. What's needed is a standard way to express and manipulate the fundamental constructs of a document, regardless of the syntax". He then explains why a better solution would involve "a standard language for expressing graph-like data models (such as RDF) and standard APIs for manipulating these data models". In such a solution "the actual syntax of the data would be rendered mostly irrelevant". What it would enable us to do is "things such as [creating] a link from a word processing document to a function in source code without having to translate either document into some intermediate format."

Kim notes a useful bit of practical advice in relation to user interfaces. As Kim points out, the user-interface is one obvious way to make software more people-centric. When considering why the software user-interfaces are not better, he claims that "[t]he problem with usability is not a lack of good ideas; it's that most of these ideas never make it into real applications" and suggest one solution would be for [r]esearchers [to write] plugins for widely-used open source applications, such as the Mozilla Web browser, instead of developing prototypes from scratch", also suggesting that "[o]pen source developers should be scouring academic publications for ideas, rather than simply duplicating the user interfaces in commercial products."

A minor niggle, but I was a bit surprised to see him make a rather unfair claim against the semantic web idea "[w]hile the futuristic applications promised by the Semantic Web have failed to crop up, some of the resulting work is quietly making an impact in different ways" - unfair, because if we're talking about its practical impact its clearly still rather early days!

No comments:

Post a Comment