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