How to write your own bookmarking tool and why

(NOTE: This is a work-in-progress. Last edited: 02nd May 2006.)

I have never been fully satisfied with an available bookmarking tool. Each tool has its own set of cool features to offer. But there never has been one tool that offers all. This made me think, “Why not write my own bookmarking tool? What will it take to write one?”

This is an entry in progress. I intend to update this entry as I try out various things and write about my own experiences.

WHY my own bookmarking tool???

Although the title mentions 'How' first, let us look at the 'Why' aspect of it. Requirements lead to implementation.

Let us look at the question: “Why do people bookmark something?”

If you do a Google search on “Why do * bookmark”, you are bound to see some analyses done by people. There is some formal research done on this topic, and I will have to go through these papers. However, the stupid answer that you will find in the informal analyses is 'To retreive it later'.

Ok, let us go ahead with this stupid answer and ask the next question, why would someone want to retreive it later?

I see a bookmarking tool as an aid in Personal Knowledge Management (PKM).

If you are looking at bookmarking tools from a research angle, then the reason you would want to bookmark URLs and retreive them later is to use the information in the URL when you need it and make some analysis with the information. There are problems with existing bookmarking tools if you want to use them for this purpose.

There are chances that you bookmark something to share it with people, but that is not the problem that I am trying to solve here. Existing bookmarking tools are good enough to solve this latter requirement, although there is scope to make them better.

There are also chances that you bookmark something for some purpose that I don't know and again I don't guarantee that writing your bookmarking tool will help.

Let us now look at the problems with existing bookmarking tools in information extraction and analysis.

As a first step, let us look at what the requirements are and then see why existing bookmarking tools cannot help us in our requirements.

The first and foremost thing that I would like to see in bookmarking tools when I am using it in research work is to be able to enter information then and there about what the resource contains, why it is useful to me and how it is related to other bookmarks that I have. I should then be able to get an overall picture of the problem in hand, by using the information about all the bookmarks that I have for that particular problem. More often than not, you learn new concepts or technologies and then you would want to delve into this topic and learn more about it. This goes on and on.

Soon, this would result in a network of concepts, where different items are related to each other in some way.

So, the reasoning is quite clear. A bookmarking tool should aid us in creating this network and also retreive information from it when required. The retreival should be as efficiently done as possible (remember usability?).

Let's now look at existing bookmarking tools and see why they cannot help us solve this problem.

Most online bookmarking tools are not written for personal knowledge management. They are for people who want to store links somewhere and possibly share it with a group of people. The most you can expect from these tools are a set of fields to fill in clippings, comments etc. I have not seen a single bookmarking tool that allows me to relate information between bookmarks. (I need to have a look at Connotea). You cannot expect these tools to do more than this because the average user would not want a whole bunch of boxes to be filled just to store that damn URL.

But then I want more. I want bookmarking tools to be extensible. I also feel that there are people out there who feel the same.

The fields that they provide are static and may not serve the purpose for all people. I would like to add my own fields and/or edit them when required.

Ok, ok, now tell me HOW do I write one???

There are many ways we can solve this problem. One easy solution I found was to use Lazybase. Lazybase allows anyone to design, create and share a database of whatever they like.

Ok, so how can we use Lazybase to create our own bookmarking tool?

Here are the steps to create a bookmarking tool using Lazybase:

1. Create a database and name it whatever you want. I would call it “BookmarkDB”.
2. Create an item type named “Resource”, which has the following fields: Name, Keyword, URL, Bookmark Date, Clipping, Rating, Category, Read (Yes/No), Comments, Related To etc.
3. Create a bookmarklet for “Resource” and make sure URL is extracted from Page URL, Name is extracted from Page Title, Clipping is extracted from Selected Text.
4. Drag and drop the bookmarklet onto your bookmark toolbar.
5. You can define as many item types as you want to capture the relationship between the bookmarks. For example, you could define an item type “Relationship” and have two URL's as its fields and a third field to define the kind of relationship (why the 2 are related).
6. You are ready!

The actual design of the BookmarkDB and the item types and their relationship is upto you. You can in-fact make it a collaborative experience by adding an item type 'Person' and then adding this to your 'Resource' to identify 'who' bookmarked a particular URL. All you need to do is share the 'edit' URL of your database with those who you would want to collaborate with. If you want to export all your bookmarks, you can use the CSV file option to export all the bookmarks.


The solution is not perfect, but good enough. I have been using Furl for quite some time now and I will miss the 'page copy' that Furl does.

But then, with the number of bookmarks that I have and the way I want to use them, I feel Furl does not serve me well.


Google, Yahoo! and innovation

Google recently released “Google calendar“. Time and again, Google reminds me of Jeremy Zawodny's blog, Google is building Yahoo 2.0 – Google trying to re-build what Yahoo and others have built, but provide one killer feature that makes it irresistible.

Ok, if you search for comparsions of the Yahoo and Google services, you are bound to get thousands of entries. I don't want to do the same here. But there are some things that I would like to highlight from my own personal experience.

I have tried out a lot of the Yahoo services. Same is the case with Google. Although Yahoo has a lot of features, the innovation seems to have stopped. The mail, address book, calendar, note services are still in the pre-Web 2.0 phase. (Yeah they have been promising a new look and feel, but where is it??? I am waiting). Google on the other hand started off in the early Web 2.0 phase, and has added some product or the other to its portfolio, not to mention adding petty features to existing products.

Another striking difference has been the kind of integration that exists between the services. Yahoo started with lots of services. Each service was on offer individually, least bothered about what other services offer and how the 2 could be related. For example, Yahoo's calendar service seems disintegrated from Mail. Then there is a briefcase service to store files and attachments. The chat service is different; there are different kinds of searches. There are different kinds of bookmarking services. The list goes on and on.

Contrast this with Google. Google started off providing services one after the other, carefully keeping them tightly integrated. (Is this slow poison? 🙂 Get users to use one service and lure them into the rest?) Google seems to be building a 'single page interface'. “For all your requirements on the web use Google.”, that's what they seem to say. You can use the calendar from the mail interface, your chat logs are in your mail. You have ample space to store all your mail (you don't need a briefcase), the search is always there no matter where you are, search something, if you find it interesting save it, label it and search for it later.

This does not mean Google has done it all right. There is a lot still left to be done. The ultimate aim seems to be – get me all my information on demand – get me the information, wherever I want it, whenever I want it, get me only the information I want, and all the information I want, instantly.

All this translates to: A great expectation from Yahoo's new service. Do they have this kind of service integration? Or is it just old things in new clothing? I am waiting.