Bookie is a personal attempt to keep the bookmarks that I have at home synced with the bookmarks I have at work, and a way of solving my frustrations in sharing bookmarks with other people over computers. It also is an outgrowth of the bluesky good bookmarking and collaborative bookmark indexing. In addition, there are sites which attack this problem from another angle: Bookmarker and Web-Based Bookmark Managers.
Quite frankly, bookmark management sucks. Every person I know has a collection of bookmarks which have grown over months if not years. Not only the bookmarks themselves but the structure of the bookmark directory is critical. Yahoo's origin and real, underlying purpose is as a huge collection of well organized bookmarks. Yet while it is easy to send a URL over the web, sending branches or entire trees is impossible. It is impossible to share the same bookmarks folder with several people, so that all information can be synced over a department. And it's really hard to keep bookmarks synced between several locations.
The roaming access feature in Netscape goes in the right direction of solving these problems, but RDF is the perfect answer to these problems. Whenever a browser wants to see bookmarks, it can make a request to a central bookmark server, and receive streamed RDF. Likewise, whenever a bookmark or branch is submitted, RDF can be sent to the server and synced with all the other clients.
Most of the work is already done -- Mozilla already has an RDFXMLDataSource, and all that needs to be done on the client end is some work to hook it into the network layer, and a way to present that data as a treeview.
The more involved work is in writing a server which can parse RDF, construct an internal RDF graph, and can convert the internal RDF graph into an SQL database. And writing it out the other way.
serialized RDF <--> RDF graph <--> SQL database
Of course, this is barely scratching the surface of what Bookie could do -- it could invalidate useless bookmarks, keep a cache of bookmarks for you... it could keep private bookmark folders which you could only see by typing a password... It could provide folders with multiple parents so that you could have the equivalent of symlinks in folders... It could rearrange or delete bookmarks according to your own criteria (popularity, last updated)... You could have limited access to bookie allowing you to add only annotations to a bookmark, or submit links on an honor system so that the most popular float to the top... You could adjust your filter so that only the oldest or the newest bookmarks show up.
The server is done, although it still is read-only. You can import bookmarks into the database and you can read bookmarks out of the server. The mozilla client will connect to the server, but I've had some troubles getting the RDF from the server synced up with the user interface. There's also a client written in Swing which I'm using for debugging, which is teaching me the joys of asynchronous non-blocking network IO in Java.