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