Intelligent Bookmarking [Draft]

I consider this a draft at this time, and will likely publish a more finalized version at a later date. Please read with that in mind.

Bookmarks suck. There I said it [5 seconds for public outrage]. I rarely use them. Instead I use the auto-complete functionality of the URL bar, and I know I’m not the only one. I decided to take a little time and discuss why bookmarks suck, pinpoint the problem, and suggest a solution. Why? Because bookmarks shouldn’t suck. They should be useful.

Problem

The problem can be summed up to basically three points which cause many people (in particular people who spend lots of time in a web browser) to not use bookmarks. I will attempt to discuss them as briefly as I can:

  1. Bookmark lists are overwhelming – people like me who spend a bit of time on the net quickly accumulate a list of hundreds of bookmarks (if not more). The lists are so long they become meaningless. Granted it’s almost impossible to remember some of those giant URLs. It’s just as hard to find what i really want in that list. Then factor in that the title’s aren’t exactly great (since most sites prefix their page titles with the site name), and I don’t take the time to make them any better on my own. The list becomes unmanageable. The alternative is to be anal and nest them in folders, clean up the titles, etc. But that’s time consuming. Assume that takes a mere 15 seconds per bookmark. With only 300 bookmarks that’s 4,500 seconds, or 75 minutes (over one hour!). That’s not something I’m willing to spend time on.
  2. Auto-complete is very good – typically my browsing habits consist of under 75 websites. I visit them somewhat regular. So they are already in auto-complete. by simply typing in “we” I already get Asa’s Blog. “pl” gets me to Planet Mozilla. “sl” gets me to slashdot “fa” gets me to fark.com, “cdw” gets me directly to the order status page of my hard drive due for delivery. “fed” gets me right to the package I’ve been tracking. Why do I need bookmarks? Just a few keystrokes. No scanning menu’s for what I need.
  3. The Google Factor – Google has played a key role in this. I saw a 300 GB Seagate drive on sale the other day at circuit city (which I did purchase BTW). How did I bookmark it? I didn’t. I just remembered circuit city had it. Then googled for it. Why? It’s quick and easy. Again, no scanning through long lists.

All three of the above share a few common characteristics. First of all, they are attempts to avoid an unmanageable list. You can call it “work avoidance”, “laziness”, or what ever you wish, but that’s what it is. The second is that these alternate methods serve two distinct methods of how most people remember things:

  1. Repetition – most people remember things they see over and over again. How many here know a phone number off the top of their heads if they wanted to purchase a mattress? 1-800-MATTRES (leave off the last ‘s’ for savings). Yea, that’s right! How many here know Jenny’s Phone Number? 867-5309 (that’s 7 digits, most people don’t do good with more than 4 or 5 chunks). How many people can name at least 4 products on the McDonald’s menu, and have McDonald’s less than 4X a year (hint: just about everyone, regardless of if you eat there). What do these share in common? Well a few are catchy, or have a jingle, but the common theme is repetition. McDonald’s pounds their product line into the human consciousness. I’d bet more people know the McDonald’s menu than know what’s going to be discussed on the Senate floor after summer recess. Why? Because McDonald’s repeats their product line over and over in commercials, billboards, newspapers, etc. You see it dozens of times a day. To find out what’s going on in government, you need to find out yourself (Check CSPAN). Likely not as often. Repetition helps memory. Kids do it to study for spelling tests.”M-I-S-S-I-S-S-I-P-P-I” Mississippi. Ah childhood memories horrors..
  2. Accessibility – scrolling down a menu is a drag. It’s good for short menu’s but quickly becomes cumbersome. More than 20 or so items and a menu starts to become meaningless. Keyboards can quickly sort data very well. A menu and a mouse don’t sort very well. That’s all there is to it.

Solution

Is there a better way? I propose that there most certainly is. At least 1 better way, and likely many, some even better than what I’m going to suggest. My methodology involves a few specific ideas:

  1. Metadata – We’ll use the dictionary definition here:

    n : data about data; “a library catalog is metadata because it describes publications”
    Source: WordNet ® 2.0, © 2003 Princeton University

    The only difference here is our library catalog is our bookmarks, and publications are websites. Not really a difference eh? No, that’s not coincidence, that’s bonified logic. We’ll be working on this concept in a few moments.

  2. Machine Learning – Again we’ll use an established definition, this time from Wikipedia

    Machine learning is an area of artificial intelligence concerned with the development of techniques which allow computers to “learn”. More specifically, machine learning is a method for creating computer programs by the analysis of data sets. Machine learning overlaps heavily with statistics, since both fields study the analysis of data, but unlike statistics, machine learning is concerned with the algorithmic complexity of computational implementations.
    Source: wikipedia.com

    Again pretty simple right?

  3. Usage Patterns – This goes with that whole repetition thing.

So what’s the fix?

Bookmark Metadata

That’s right, bookmark metadata. More than just a title. Most websites use meta tags on them. The two most common are keywords, and description. An intelligent bookmarking system would look at the page being bookmarked, and extract that information if known, in particular keywords. Take for example this link to Crucial.com’s Memory options for a Mac Mini

<title>Apple Mac mini (G4 – 1.42GHz) upgrades from Crucial.com</title>
<meta name="keywords" content="crucial memory, memory, computer memory, USB flash drive, Secure Digital, Memory Stick, SmartMedia, card reader, USB, USB upgrades, memory upgrade, ddr memory, ram memory, pc memory, ram, memory upgrades, ddr ram, pc2100, buy ram, ddr sdram, belarc advisor, ram upgrade, micron memory, memory ram, buy memory, cheap ram, compact flash, cheap memory, memory chips, pc100, sdram, laptop memory, computer ram, pc2100 ddr, memory configurator, micron, ddr pc2100, ram prices, pc133 memory, ram upgrades, sdram pc100, computer memory upgrade, compactflash, memory selector, Radeon 9800, ATi Radeon, radeon 9700 pro, memory module, how much ram, micron ram, compact flash cards, pc2100 ddr sdram, sdram memory, computer memory upgrades pc100 ram, radeon, flash card, pc133, video cards, pc2100 memory, radeon 9700">
</meta><meta name="description" content="Purchase Mac mini (G4 – 1.42GHz) upgrades from Crucial to get factory-direct pricing and outstanding service and support. For a limited time, FREE shipping on qualified orders.">
</meta>

See that yummy data? We can use that. How? Something along the lines of bayesian learning, we’ll discuss a bit more later on.

Intelligent Filtering

I should be able to go the URL bar and simply enter mac and see all Mac related websites (Apple.com, and of course that crucial memory upgrade I noted above). memory should bring up crucial.com. Entering cruc should bring up crucial as well. To separate history from bookmarks, the browser should have an icon to the right of the URL (similar to Safari’s RSS icon) that indicates if it’s history, or a bookmark. Based on my usage patterns, it should give weight to the appropriate item. For example if I enter mac and apple.com, and that crucial memory upgrade page appears second, and I repeatedly revisit crucial, crucial should come up first. Why? Because that’s easier.

[ mac|                                                   ]
 |apple.com                               (Bookmark)  |
 |crucial.com/foo/bar                     (Bookmark)  | 
 |macworld.com                            (History)   |
 | ...                                                | 
 +----------------------------------------------------+

No giant menu’s to find where that crucial memory page is, I could type in mac or memory or something to that effect. The above illustrates how I no longer need to navigate that menu. It’s integrated right into auto-complete, making for a real easy experience.

Intelligent Views

Camino’s Bookmarks view is rather good. In fact, it’s really good. I should be able to create a folder called mac and put associated bookmarks in there. Then when I use that keyword, I get all the bookmarks in that folder, in a higher priority than the machine learned bookmarks. Ideally when a new folder is created, it should attempt to auto-file my existing bookmarks for me. The end result could go in the current bookmarks menu. A computer generated (human edited) list of websites sorted and organized. Useful and relevant.

Machine Logic

Machine logic for this new functionality can be simple, or extremely complex. At it’s simplest form, it’s using the title, meta-description, and meta-keyword data, stripping it of punctuation (comma’s and such), delimited it by spaces, and creating a searchable index. In a more complex form, it’s figuring out how to group them based on patterns, probability, and user input. It could even go as far as using a dictionary file to get like terms, so computer also checks for PC. It can go as far as natural language, or suggest corrections (similar to Google’s correction functionality).

What advantage does this bring?

It improves the end-user experience of course. The end result is really pretty subtle, but good. First the days of scanning through a list of scrolling bookmarks no longer exists. That’s wonderful. The days of simply typing what you want and let your browser find it will be here. Your usage patterns will provide the browser with the information it needs to create a relevant, insightful, and useful auto-complete list.

Implementation

I haven’t implemented this, nor do I have plans to do so at this time. I think the plan could use some refinement, and the project would be better handled by someone with more experience (and time) than I typically have. I put this idea out there in hopes someone else will finally admit bookmarks suck, and help do something about it. Because lets face it, bookmarks suck. I would love to see it implemented, and ideally expanded upon so that it’s results are more relevant. Lists are bad, very bad. Simple queries are good. I know what I want. Why do I have to search an entire list? That’s the bottom line. Bookmarks were a good solution for their time. But not anymore. We can do better. Oh yea, Bookmarks suck, did I mention that?