Friday, September 21, 2007

Semantic FileSystems

LinkLens is a web 2.0 app (if that actually means anything). I guess I'm saying it uses ajax to let you do drag and drop in a web browser. However there has been lots of work in the past on "semantic filesystems" and a couple of years back I wrote a shell script that simulates the same sort of behaviour on the unix command line:

http://www.neurogrid.net/sfs/SemanticFileSystems.htm

However I didn't really work out a good way to tell anyone about it (till now - thanks blogger) and my ideas have been superseded by events on the ground. For example someone built a filesystem that supports this kind of associativity directly:

https://gna.org/projects/tagfs

I really want to write an academic paper that pulls all this stuff together ...

LinkLens Thoughts

So, I was wondering how I could pull together my thoughts on semantic file systems and my linklens prototype, and it occurred to me I could start a blog on blogger so here we are.

Anyhow, I just added user login support to my linklens system:

http://www.linklens.org/

which means it is closer to being practically useful.

Linklens is my attempt to merge what I think are the best features of folksonomies and hierarchies in a web 2.0 style. It is still a very rough prototype, but the main idea is that everything is a tag. In delicious we have urls and tags; in flickr we have photos and tags; in linklens everything is a tag and you can associate anything with anything else.

The main idea is that there is always a context, which may contain a number of things. Say you have created an item titled "whales" with some text describing something about whales. You can drag this into the context and the linklens system will show you everything associated with this context. Create things while this context is in place, or drag them in from places like the list of recent objects and they will be automatically be associated with the "whales" object. Drag more items into the context and the linklens system takes the intersection, showing only those items associated with all objects in the context.

So sets of things in your context are a bit like your file path in a hierarchical system. On your computer you might have things like: C:/My Documents/ProjectX/Reports and this path would specify a folder that contained a number of items. In linklens you would drag three objects into the context (i.e. My Documents, ProjectX and Reports) and see the same set of stuff. It would be a location that you would add and remove things to and from, just like in the hierarchical file system, but the ordering of the path elements would not matter, and objects in that "location" could easily exist in lots of other locations.

A lot of work is still needed to make this really usable, but I'm hoping to make incremental improvements. What I'd really like to do is find some way to benchmark a linklens style interface against pure folksonomy and pure hierarchical systems, but I'm not sure what would be an appropriate task. As an academic I'd love to publish a paper on this stuff ...