3 March 2008 - 16:56Beyond Awesome

It’s been exactly four months since I first wrote about the AwesomeBar [ed.agadak.net], and how it would become awesome with adaptive learning, which makes Firefox give you the pages that you want with just a single letter typed in the location bar.

Firefox 3 Beta 4 will have this feature. ๐Ÿ˜€ Everyone will be able to play with it in just a couple weeks.

Adapted dropdown

Adaptive learning puts your most selected results first

The adaptive learning even works for the drop down menu without typing any words. So those who prefer using the mouse can benefit as well. But if you ever do select a page after typing some words, it will also learns to show those results when you click the auto-complete drop-down.

But that’s not all that’s new in Beta 4. There has been many improvements to the location bar since Places landed, and here’s a short list of changes since the first beta.

Beta 1: Search page titles and urls – not just the start of a domain; Match page tags
Beta 2: Two line view with title first; Emphasize first match in title then url
Beta 3: Global frecency for better ranking; Search bookmarked pages; Emphasize first match in both title and url; Unescape url-encoded URLs

Outside of adaptive learning for Beta 4, there’s also the ability to search with multiple words [ed.agadak.net]. I first wrote about the feature letting you find pages that match the domain and a word from the title.

It’s even better. You can also match against the tags you’ve added to pages, so you can just treat the tags as extra text in the page’s title, except they’re common across multiple pages. This means you can type a tag, a domain, and part of the title to get the exact page you want. As a bonus, the pages are treated like any other page, so they aren’t specially placed at the top of the list, and you don’t even need to type out the whole tag in the same order you tagged the page to match it. ๐Ÿ™‚

So what else is there?

Well, it’s already Beta 4, and there isn’t much time left to keep adding features. But I’ve got some neat things that are somewhat geared towards more advanced users. Whether or not they make it in for the final version of Firefox 3 is in the air. I’ve already implemented them, so we’ll just need to see if people have time to review and approve the changes.

Show tags and restrict to starred

Only search pages with a star

First up is being able to restrict search to certain pages [bugzilla.mozilla.org] such as those that you’ve bookmarked, which have a star in the drop-down. You can type a single “*” at the beginning of the search and do the multi-word search as normal, except only bookmarked pages are searched. Also, you might notice that pages will show which tags they have [bugzilla.mozilla.org] and where they match.

Restrict to history

Only search through history

On a similar note, you can also use “^” to find pages only from your history — pages that have not yet been given a star. I find myself using this type of search without additional search terms to find pages that I’ve frecently visited, and perhaps I would want to bookmark and tag them. One last special search is with “+” that restricts the search to tagged pages. Of course you can customize the character you want to type for the special search, so you can make it “!” or even “z” or more verbose “tagsรขโ‚ฌย. ๐Ÿ˜‰

Keyword search

Show the keyword search

Another feature helps show a powerful feature of Firefox. Keyword searches. ๐Ÿ™‚ Basically, they’re special bookmarks that you can create by opening the context menu on any search box of a website. You give the search a keyword, and then in the location bar, you type that keyword and the terms that you would have put into the box on the web page. You can easily search for content such as Wikipedia pages, YouTube videos, IMDB movie information, and more.

Except now, you get a keyword auto-complete entry [bugzilla.mozilla.org] showing which page you’ll be going to. Additionally, you can even reuse the same keyword for multiple searches because now you can pick which one gets used.

String searches

Search with phrases

Sometimes treating each word as a separate search isn’t quite enough, and what you really want is two words right next to each other. Perhaps you want to find that page that tells you how to bug mozzy (… ๐Ÿ˜› ), but all your searches for “bug moz” finds bugzilla bugs! Just put the phrase in quotes and you can search quoted strings [bugzilla.mozilla.org]!

Emphasize all search terms

Emphasize all matches for all words

You might have noticed in the previous screenshots, multiple parts of the result get emphasized. For Beta 4, it’ll only emphasize words that match as the phrase, so most of the time, if you type multiple words, it won’t emphasize anything. The screenshot above shows “amatching in all places [bugzilla.mozilla.org], not just the first. Additionally, all words/phrases [bugzilla.mozilla.org] are treated separately when showing matches.

For the very observant crowd, you might have already noticed the screenshots have a smaller font size for the page title [bugzilla.mozilla.org]. But additionally, the number of rows has been reduced from 10 to 6 [bugzilla.mozilla.org]. Hopefully, being able to find pages with multiple words against the title, url, and tags in additional adaptive learning will lessen the need to show 10 results by default. There will be fewer results for you to scan, but you can also filter pages more easily by typing another word that you know to be in the title or url.

We’ve come a long way since Firefox 2, and we’re getting really close to shipping Firefox 3. But hopefully there’ll be some time to get in at least some of these features. ๐Ÿ™‚

23 Comments | Tags: AwesomeBar, Mozilla

19 January 2008 - 10:04Another Way to Awesome

For the work on the AwesomeBar [ed.agadak.net], I’ve noted before that getting relevant results [ed.agadak.net] in the location bar to select is important before the adaptive behavior is useful.

A friend of mine pointed out that if he knew multiple words in the title, typing both resulted in no results instead of seeing some results if he typed a word individually. This is because Beta 2 tries to match the whole input against either the title or url of a page.

bug auto complete

Drilling down results with 3 words matching the title

Instead of getting rid of all those good results, we can treat each word separately and match them in different places in the title. This lets the user incrementally filter out results by typing words s/he see from the current results.

But what if you knew the domain and a word in the title? No problem! ๐Ÿ˜€

apple.com air

Matching the url and title at the same time

Here’s some builds that you can use to test things out: Win32 zip (installer exe), OS X dmg, Linux tbz2 [build.mozilla.org].

These include the incoming changes for “global frecency” as well as adaptive learning. So as an additional bonus, the browser will learn which pages you’ve selected after drilling down and show it first the next time — even when you’ve only typed the first word. (I haven’t changed the UI, so it doesn’t show which words matched, but the results will be there.)

There has been plenty of work by developers to get the results to show up immediately, so comments on performance are appreciated. ๐Ÿ™‚

Edit: I just realized things might be initially slow because of the “global frecency” migration for existing profiles. So if you don’t do anything in the browser.. leave the room, grab a drink for a few minutes, things should go faster after it calculates some frecencies for your pages.

11 Comments | Tags: AwesomeBar, Mozilla

6 January 2008 - 7:42Not Just Awesome

It’s been over two months since I first posted about the AwesomeBar [ed.agadak.net], and some of you have been able experience the power of the learning behavior. Frequently visited sites are easily accessed with just a single letter. These “automatic bookmarks” bubble up to the top of the location bar autocomplete list just after selecting a result once.

However, I noticed that the list contained many “random” results below the adaptive learning results for these single-letter-bookmarks. Looking at the highlighted portions, they would be in the middle of words and all over the url. Or in the case of ‘p’, the list would contain pages that matched http which isn’t too useful when searching.

Confused match

Random results for ‘n’ (or ‘p’) in Beta 2

The adaptive learning won’t be useful if the user can’t find anything of interest to select out of the list. Sure, one could keep typing and typing to filter out more pages and find something specific, but that requires typing more.. (and people are lazy! ๐Ÿ˜› )

So I decided to improve the quality of the pre-adaptive results [bugzilla.mozilla.org]. Now matches near the beginning of the title or on word boundaries (and ends of words) are given preference. The same applies to the url, so matches near the front (like the domain) are preferred as well. Matching more helps as well, so top level pages are preferred over sub-pages with long, mysterious ?queries. ๐Ÿ™‚

Awesome p match

Preference for matches near the beginning

However, even with smarter matching of the title or url, the ordering might not be the one you want. Perhaps you have a page with the same title on the internet and locally for development, and you want one over the other. Only so much can be done without making things overly complex and slow, so that’s where the adaptive learning can fill in the gap.

There are builds available for people to try: Win32 zip (installer exe), OS X dmg, Linux tbz2 [build.mozilla.org]. These contain the changes for smarter matching results as well as the adaptive learning.

Adaptive n match

Adaptive results up top in addition to smarter matching
(The highlighted portion doesn’t necessarily correspond to the smart-matched portion.)

So hopefully with these combined, people will need only to type a fewer letters to find a page they want initially and then type a single letter to find it again. (Are people lazy or am I making them lazy? .. I mean efficient! ๐Ÿ˜€ )

9 Comments | Tags: AwesomeBar, Mozilla

4 November 2007 - 20:50SmartBar to AwesomeBar

One of the most useful features in Firefox 3 is the smarter location bar which now selects pages from your history and bookmarks if your input matches any part of them. For comparison, Firefox 2 would only match the beginning of the URL – typically the domain name.

Firefox 3 Smart Bar

Firefox 3 searches text from the URL and title

When the “smart” bar first landed, I was somewhat disoriented because I was so used to typing domain names to browse history and Firefox didn’t give those results back. For example, I would type “en” (for en.wikipedia.org) but get random results that happened to match “component,” “en-US,” “engineering,” etc.

There were some changes to the location bar to help address these issues, but more importantly, I soon learned to use it by typing in words from the middle of the URL or title. For example, I now type the course number 426 [cs.uiuc.edu] instead of typing out the whole “cs.uiuc.edu…” and scrolling down to pick that one out of the other classes that show up in my history. I can’t even use Firefox 2 in the computer labs anymore because it doesn’t have the “SmartBar” — others share [dietrich.ganx4.com] this same experience [blog.mozilla.com]. ๐Ÿ˜‰

While the SmartBar is pretty smart, it can get confused sometimes. It currently ranks the results based on how often you’ve visited that page, so if you visit bugzilla.mozilla.org every day, typing any letter that matches the page will have it ranked first. This is fine by itself, but if you happen to visit other pages like planet.mozilla.org but not as frequently as bugzilla, Firefox will place bugzilla above planet if you type “moz”.

Firefox 3 Confused Bar

Bugzilla is placed over other pages because it’s most frequently visited

That’s not really too big of an issue because I happen to always go to those pages by typing other words: bugzilla.mozilla.org and planet.mozilla.org. However, if I wanted to visit mozillazine, Firefox puts other pages ahead of it. Every time I type “moz,” I only want to select the mozillazine entry. I want that entry to be the first result.

In comes AwesomeBar! ๐Ÿ˜€ That’s exactly what I’ve done for adaptive learning url bar autocomplete [bugzilla.mozilla.org]. Firefox will remember the text you typed and the page you selected, so next time when you give a similar input, Firefox will give a higher rank to those pages. It even matches partial inputs, so I can even type just “p” from planet, and Firefox knows to put that above other pages that just happen to also match “p”.

Firefox 3 Awesome Bar

Firefox 3 could predict what you want with feedback-driven adaptive learning

Continuing my example of bugzilla, planet, mozillazine.. The first time around, I type “mozillazine” and press down and enter to select the entry. Next time, when I type just “moz,” Firefox remembers that I selected forums.mozillazine.org and places it as the first result.

Assuming that I can convince some people that we should have this in Firefox 3, we can potentially get this in as early as Beta 2. There’s still a lot of opportunity for other adaptive techniques throughout Firefox, but even just looking at the AwesomeBar, there’s room to make it even smarter — adapting to shifting behavior. For example, Firefox has learned that you always visit planet when typing “plan,” but you’ve started doing development and now frequent xulplanet. Firefox could then realize it should give less ranking to planet.m.o and give more to xulplanet.

I’m sure others will come in and create great new adaptive techniques for Firefox. In the mean time, I’ll need to continue working on my Ph.D. research which happens to be somewhat related — making new adaptive compiler techniques that take advantage of key hardware features. ๐Ÿ™‚

(Post date bumped up for planet.mozilla.org.)

45 Comments | Tags: AwesomeBar, Mozilla, Ph.D.