Ubiquity 0.5 Preview Release

Havi Hoffman

23

Today Mozilla Labs is releasing a preview of the next major version of Ubiquity. Ubiquity 0.5 brings a slew of new features like localization and more natural command names (along with the inevitable new bugs). Before we release Ubiquity 0.5 proper, we first need your feedback on the new features and your help with testing and finding bugs.

Download the extension here. Works in Firefox 3.0 and 3.5.

The First International Ubiquity

The new language options on the Ubiquity settings page

The new language options on the Ubiquity settings page

Ubiquity is an experiment in natural-language interfaces, but “natural language” doesn’t mean just English! Since before the first release of Ubiquity, we’ve been pondering how it could be generalized to work for non-English speakers.

The original Ubiquity input parser — the part of Ubiquity that takes what you typed and matches it to what you want to do — was based on a lot of assumptions about English that are not necessarily true in other languages. Some languages don’t use spaces between words; some have the verb come at the end of the sentence. Some languages put different endings on nouns to identify what part of the sentence they are. (If all this grammar talk makes your head spin with fuzzy memories of high-school Latin, you’re not alone.)

Ubiquity 0.5 features a new input parser re-written from scratch to support many languages. Adding new languages to it does not require writing new code, so people don’t have to be programmers to contribute to localization. A new parser localization tutorial will walk you through teaching Ubiquity the grammar of your language.

Ubiquity 0.5 also supports the localization of commands bundled with Ubiquity. At launch, Ubiquity 0.5 will have commands localized in Danish, English, and Japanese. More languages are planned for the near future. We also have a new tutorial that shows how you can get involved in translating Ubiquity commands to your language.

Ubiquity in Japanese mode

Ubiquity in Japanese mode

Ubiquity in Danish mode

Ubiquity in Danish mode

New Interactive Tutorial

We’ve improved the first-run experience of Ubiquity fairly dramatically, based on some user testing. In particular, inspired by the tutorial levels in video games, we’ve created an interactive tutorial that takes you by the hand and walks you through each step of using Ubiquity. It’s aware of where you are, so it can always tell you exactly what to do next.

The interactive tutorial in action

The interactive tutorial in action

No More Hyphens

Due to a limitation in the old parser, command names couldn’t have spaces in them. That’s why we had a lot of commands with hyphens: “add-to-calendar”, “close-all-tabs”, etc. These hyphens were ugly, hard to type, and not very natural-language. Thanks to the fact that the new parser supports spaces, we can now have much more natural command names. We’ve also standardized the command names in a way that we hope will make Ubiquity overall easier to learn.

Spaces in command names!

Spaces in command names!

Suggestions while you wait

Ubiquity suggestions are now fully asynchronous. What does that mean? Previously, Ubiquity could only show you suggestions based on what it already knew. But with the new improved architecture, it is capable of making network calls to help figure out what your input means, and it can then update the suggestion list in real time to show you new possibilities that it finds. For example, you can now type “pasta” into Ubiquity; before, it wouldn’t have known what to do with this input. But now, by making network calls to web services, it recognizes “pasta” as a type of restaurant, and suggests the Yelp command to find pasta places near you:

The old version of Ubiquity wouldn't know what to do with this input.

The old version of Ubiquity wouldn't know what to do with this input.

Updating Your Commands

The new version of the parser has a new API for command developers. Unfortunately, this means that custom Ubiquity commands will need to be updated in order to work with the new version. Fortunately, the required updates are very minor; they mostly have to do with how commands declare their arguments. We have written a tutorial on how to convert your existing commands to work with the new parser. There is also an updated Command Development tutorial if you are writing new commands from scratch for the new version.

How To Get Involved

Thanks

Special thanks to our amazing community members, who really stepped up to make this release possible. They put their blood, sweat, and tears (and weekends) into making Ubiquity 0.5 what it is:

Thanks in particular to:

  • Mitcho (Michael Yoshitaka) the linguist of the Ubiquity team, for doing the majority of the design and implementation work on this new parser and localization infrastructure.
  • Seth Bindernagel of the Mozilla localization department for his valuable advice.
  • Christian Sonne, for working very hard to single-handedly create the Danish translation.
  • Masahiko Imanaka (marsf), for contributing the majority of the Japanese translations.
  • Heather Kofke-Egger for writing documentation, tracking bugs, and giving technical support to users.
  • Brandon Pung for his work on the asynchronous noun detection features.
  • Satoshi Murakami (satyr) for numerous bug fixes.
  • Blair McBride (Unfocused) for many contributions.
  • Fernando Takai (fern) for working on the command search engine.
  • Zac Lym (indolering) for his usability research.

Release Notes

The full release notes for 0.5 list many fixed bugs and minor features not mentioned above.

–Jono DiCarlo, on behalf of the Ubiquity team

23 responses

  1. K Mcfey wrote on :

    The download link is broken…

  2. Timofei wrote on :

    Oh gawd, I don’t like the backwards incompatibility thing at all. Is there at least a way to provide both old and new parser version of my commands in a single file? Say, a command can obviously have both “takes”, “modifiers” and “arguments” filled out, but there is no way to provide two different preview/execute functions for the old and new parser because they take different number of arguments! How can I update my commands without breaking them for people who are still using an old version of Ubiquity?

  3. Wahooney wrote on ::

    There is something seriously funky with 0.5…

    I’m trying yo map an address and I type:
    map

    And I get suggestions to do everything *except to map*!

    This isn’t an isolated incident either, I try googling something by typing “google” and it asks if I want to add it to my google calender, gmail it or any of googles other services, except search?!

    Same for wikipedia, I type “wikipedia” and it asks to look for wikipedia in wikicommons…

    I’m sure you guys get the picture.

  4. Adam wrote on :

    not there for me can I download ?

    I just have Simpliquity, 0.1 Skin and Custom

  5. Объявления Минск wrote on ::

    I can leave only eng. comments?

  6. jonlyles wrote on ::

    I’m glad to see an update this is my favorite extension and has a lot of potential

  7. jonoscript wrote on :

    @Adam:
    The skin used in the images is called “Ubiquity Evolved”.
    If you have a recent version of Ubiquity, it should be included already.
    Just type “skin” into the Ubiquity command line — it will suggest “change ubiquity skin”. Hit return and it will open the Settings page, where you can switch your skin to “ubiquity evolved”.

  8. Adam wrote on :

    How do I get the skin used in these screenshots please

  9. G wrote on :

    Great update. One thing that is really annoying is that when I’m typing a command, the command suggestions come in and out very quickly. And since the ubiquity takes up a lot of space, it almost makes it seem like the left side of my screen is flickering.

  10. Adam wrote on :

    what is the skin used in the images here ! I really want it :D

  11. R4M0N wrote on :

    This Add-on is one impressive piece of coding. Congratulations to the programmers.

  12. jonoscript wrote on :

    @Mitchell McKenna: Use the “list ubiquity commands” command and then look for commands that are shown with strikethrough and a little red bubble that says “old api”. If they’re not commands that you need, you can then unsubscribe from the feeds. A likely culprit is the “image editing commands” feed — those commands were moved to an experimental feed for 0.5, but upgrading the extension won’t automatically unsubscribe you from the feed. If you do it manually, you’ll stop getting the message.

  13. Geakz wrote on ::

    Nice work. Installed on my work PC and ready to download at home. Ctrl + Spacebar = RAWKS

  14. Mitchell McKenna wrote on ::

    Also getting the error: “Some verbs were not loaded as they are not compatible with parser 2″
    What the best way to fix this?

  15. Andre wrote on :

    Man this thing is so awesome I do not understand why people say it ain’t working

  16. Phil wrote on :

    Thanks for translating it to danish!

  17. Moody Loner wrote on :

    Firefox 3.0.11 / Ubiquity 0.5

    I am getting an error on browser opening: “Some verbs were not loaded as they are not compatible with parser 2″

    Which means, I cannot use the email selected text / URLs – ‘help email’ comes up but I cannot access my gmail contacts as normal. I have been using ubiquity for quite a while now and have seen the gmail contact connectivity break before, I believe it was a sometime known issue but I’ve never had this ubiquity notification before.

  18. iamjoe wrote on :

    Performance is an issue overall.
    The parser takes too long to map my typing to the command I want to invoke.

    E.g. By the time I have typed “wiki ubiquity” and hit the enter button nothing happens… no tab is opened. It seems like the reasoner is invoked every time a character is typed, but cannot present the result before I hit enter.

  19. Matt wrote on ::

    You guys are doing a great job! Very nice introduction tutorial.

    I posted my idea for the ubiquity user interface here: http://www.dvq.co.nz/web-design/mozilla-ubiquity-user-interface-mock-up/

  20. Garbled wrote on :

    Thank you thank you THANK YOU for killing those hyphens. (*Whew*) They were my only major complaint.

  21. jonoscript wrote on :

    There is a known bug in 0.5pre that degrades performance heavily when text is selected. We are working on making a patch for this bug as quickly as possible.

  22. jonoscript wrote on :

    If you go to the command list page ( use “list ubiquity commands”) then any commands that are not compatible with parser 2 will be shown with a strikethrough and a red bubble that says ‘old api’. If it’s not a command that you need, you can then unsubscribe from the feed.

    The ‘image editing commands” feed is a likely culprit. For 0.5pre we removed that feed (moving the image editing commands to an experimental feed) because those image editing commands were buggy and seldom used. But if you upgrade from 0.1.8 to 0.5pre, it doesn’t automatically unsubscribe you from the image editing commands feed.

  23. jonoscript wrote on :

    The skin used in the images is called “Ubiquity Evolved”.
    If you have a recent version of Ubiquity, it should be included already.
    Just type “skin” into the Ubiquity command line — it will suggest “change ubiquity skin”. Hit return and it will open the Settings page, where you can switch your skin to “ubiquity evolved”.