{"id":20,"date":"2006-12-16T02:40:19","date_gmt":"2006-12-16T10:40:19","guid":{"rendered":"http:\/\/mozillalabs.com\/2006\/12\/introducing-operator\/"},"modified":"2006-12-16T02:40:19","modified_gmt":"2006-12-16T10:40:19","slug":"introducing-operator","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/labs\/2006\/12\/introducing-operator\/","title":{"rendered":"Introducing Operator"},"content":{"rendered":"<p><strong>Introducing Operator, a Microformat Detection Extension for Firefox 2<\/strong><\/p>\n<p>Today <a href=\"http:\/\/labs.mozilla.com\/\">Mozilla Labs<\/a> is releasing <a href=\"https:\/\/addons.mozilla.org\/firefox\/4106\/\">Operator<\/a>, a microformat detection extension developed by <a href=\"http:\/\/www.kaply.com\/weblog\/\">Michael Kaply<\/a> at IBM.  <a href=\"https:\/\/addons.mozilla.org\/firefox\/4106\/\">Operator<\/a> demonstrates the usefulness of semantic information on the Web, in real world scenarios.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/operator.jpg\" height=\"100\" width=\"440\" align=\"\" border=\"0\" hspace=\"4\" vspace=\"4\" alt=\"Operator\" longdesc=\"\" \/><\/p>\n<p>Here are some examples of things you can do with this release of <a href=\"https:\/\/addons.mozilla.org\/firefox\/4106\/\">Operator<\/a>, and with the Web as it exists today.<\/p>\n<p><strong>Yahoo! Local <\/strong><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/plusOperator.jpg\" height=\"16\" width=\"16\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Plusoperator\" longdesc=\"\" \/><strong> Your Address Book<\/p>\n<p><\/strong>With Operator you can send the phone number of your favorite pizza place from <a href=\"http:\/\/local.yahoo.com\/\">Yahoo! Local<\/a> to your address book, without having to type anything.  Click through for the full image:<\/p>\n<p><a href=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/yahooLocal+addressBook.jpg_large.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/yahooLocal+addressBook.jpg\" height=\"224\" width=\"440\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Yahoolocal+Addressbook\" longdesc=\"\" \/><\/a><br \/>\n<strong><br \/>\nUpcoming.org <\/strong><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/plusOperator.jpg\" height=\"16\" width=\"16\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Plusoperator\" longdesc=\"\" \/><strong> Calendar<\/strong> <img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/plusOperator.jpg\" height=\"16\" width=\"16\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Plusoperator\" longdesc=\"\" \/> <strong>Maps<\/strong><\/p>\n<p>If you view an event at <a href=\"http:\/\/upcoming.org\/\">Upcoming.org<\/a> you can easily add the event to your calendar to see if you are free, or map the location of the event to see where it will take place.<\/p>\n<p><a href=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/upcoming+calendar+map.jpg_large.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/upcoming+calendar+map.jpg\" height=\"348\" width=\"440\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Upcoming+Calendar+Map\" longdesc=\"\" \/><\/a><br \/>\n<strong><br \/>\nBlog Post Tag <\/strong><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/plusOperator.jpg\" height=\"16\" width=\"16\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Plusoperator\" longdesc=\"\" \/> <strong>Flickr<\/strong><\/p>\n<p>Let&#8217;s say you are viewing <a href=\"http:\/\/fredericiana.com\/2006\/12\/08\/reusing-the-firefox-summit-lanyard\/\">Fred&#8217;s post<\/a> about the Mozilla lanyards given out at the <a href=\"http:\/\/wiki.mozilla.org\/FirefoxSummit\/2006\/Schedule\">Firefox Summit<\/a>, and you decide you want to view more photos of the Firefox Summit.  With Operator, you can easily navigate from Fred&#8217;s post to the &#8220;Firefox Summit&#8221; tag on <a href=\"http:\/\/www.flickr.com\/\">Flickr<\/a>.<\/p>\n<p><a href=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/summit1.jpg_large.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/summit1.jpg\" height=\"220\" width=\"440\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Summit1\" longdesc=\"\" \/><\/a><\/p>\n<p><a href=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/summit2.jpg_large.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/summit2.jpg\" height=\"220\" width=\"440\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Summit2\" longdesc=\"\" \/><\/a><br \/>\n<strong><br \/>\nFlickr <\/strong><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/plusOperator.jpg\" height=\"16\" width=\"16\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Plusoperator\" longdesc=\"\" \/> <strong>Maps<\/strong><\/p>\n<p>Now let&#8217;s say you want to know where the above <a href=\"http:\/\/www.flickr.com\/photos\/dbaron\/299291151\/\">picture<\/a> was taken.  Because the photograph is <a href=\"http:\/\/en.wikipedia.org\/wiki\/GeoTagging\">geotagged<\/a>, you can use Operator to quickly push its&#8217; coordinates to Google maps.<\/p>\n<p><a href=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/summit3.jpg_large.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/summit3.jpg\" height=\"220\" width=\"440\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Summit3\" longdesc=\"\" \/><\/a><\/p>\n<p>This works for <a href=\"http:\/\/www.flickr.com\/photos\/orangelimey\/318193520\/\">any<\/a> of the millions of geotagged pictures on Flickr.<\/p>\n<p><a href=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/flickr+maps2.jpg_large.jpg\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/flickr+maps2.jpg\" height=\"322\" width=\"440\" align=\"\" border=\"0\" hspace=\"0\" vspace=\"0\" alt=\"Flickr+Maps2\" longdesc=\"\" \/><\/a><\/p>\n<p>Operator requires information on the Web to be encoded using microformats, and since this method for semantically encoding information is relatively new, not all sites are using microformats yet.  However, Operator works great with any blog that uses <a href=\"http:\/\/microformats.org\/wiki\/rel-tag\">rel-tag<\/a>, and the sites <a href=\"http:\/\/local.yahoo.com\/\">Yahoo! Local<\/a>, <a href=\"http:\/\/www.flickr.com\">Flickr<\/a>, and <a href=\"http:\/\/upcoming.org\/\">Upcoming.org<\/a>, all of which contain millions of pieces of information expressed using microformats.  As more sites begin to semantically encode data with microformats, Operator will automatically work with them as well.<\/p>\n<p>If you are not familiar with microformats, Alex Faaborg has been posting about microformats throughout the week. These posts serve as a good introduction:<\/p>\n<ul>\n<li><a href=\"http:\/\/blog.mozilla.org\/faaborg\/2006\/12\/11\/microformats-part-0-introduction\/\">Part 0: Introduction to Microformats<\/a><\/li>\n<li><a href=\"http:\/\/blog.mozilla.org\/faaborg\/2006\/12\/12\/microformats-part-1-structured-data-chaos\">Part 1: Structured Data Chaos<\/a><\/li>\n<li><a href=\"http:\/\/blog.mozilla.org\/faaborg\/2006\/12\/13\/microformats-part-2-the-fundamental-types\">Part 2: The Fundamental Types<\/a><\/li>\n<\/ul>\n<p>Operator isn&#8217;t the first microformat detection extension for Firefox, previously microformat detection in Firefox was possible with the <a href=\"https:\/\/addons.mozilla.org\/firefox\/2240\/\">Tails Export<\/a> extension by <a href=\"https:\/\/addons.mozilla.org\/firefox\/10200\/author\/\">Robert de Bruin<\/a>.  Operator builds on Tails Export by having a user interface that is based around actions the user can take, instead of data types.  Operator also includes support for the microformats <a href=\"http:\/\/microformats.org\/wiki\/geo\">geo<\/a> and <a href=\"http:\/\/microformats.org\/wiki\/rel-tag\">rel-tag<\/a>, and is compatible with Firefox 2.<\/p>\n<p>After using Operator for awhile, you will find yourself quickly transferring structured data to your favorite applications without typing a single letter, you will be hoping around the Web without navigating on hyperlinks, and you will be remixing services in ways that are really useful.<\/p>\n<p>The combination of microformated content on the Web and the Operator extension for Firefox results in a kind of data cross pollination that we think is very exciting.<\/p>\n<p><strong>Operator as Tool for Adding Microformated Content to Your Web Site<\/strong><\/p>\n<p>[Update: Additional technical information about Operator can be found on <a href=\"http:\/\/www.kaply.com\/weblog\/\">Michael Kaply&#8217;s blog<\/a>]<\/p>\n<p>In addition to demonstrating why microformats are important to end users, Operator can also be used as a tool for testing microformated content you have added to your Web site.  Operator&#8217;s creator Michael Kaply explains:<\/p>\n<blockquote><p>In creating Operator my goals were to create something that was useful to microformat developers as well as users looking to explore microformats. As such, the Operator Toolbar can be displayed in two modes: Microformats mode and Actions mode.<\/p>\n<p>In Microformats mode, each button on the toolbar represents a microformat. When you select an individual entry from the submenu on the button all the handlers available for that microformat are displayed. You can also change the options so that the default handler for that microformat is invoked when an individual entry is selected, as opposed to displaying all the handlers. In addition, you can choose to use a more descriptive name (for instance Contact(s) instead of hCard).<\/p><\/blockquote>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/people.mozilla.com\/~faaborg\/files\/20061215-introducingOperator\/microformatMode.jpg\" height=\"166\" width=\"440\" align=\"\" border=\"0\" hspace=\"4\" vspace=\"4\" alt=\"Microformatmode\" longdesc=\"\" \/><\/p>\n<blockquote><p>I have added some other useful features for developers. When you hold down the Shift key and select an entry in a microformats submenu, it displays the internal representation of the selected microformat item. When you hold down the Ctrl key and select an entry in a microformats submenu, it displays the source of the selected microformat item. Also, if debug mode is turned on in options, when an invalid microformat is detected, the menu text is changed to &#8220;Invalid &#8211; select for more details.&#8221; If you select the menu item, it will give you a message indicating what we believe is incorrect about the entry.<\/p>\n<p>The Operator extension is also very extensible, allowing for not only the creation of additional microformats, but also the addition of handlers to existing microformats. There are sample files provided in the directory where the extension is installed for both of these cases. To use the new microformat or handler, place it in a directory called &#8220;microformats&#8221; in your profile directory.<\/p>\n<p>I know I will get a few questions about some things, so I thought I\u2019d handle them here as well.<\/p>\n<p><em>Q: Why didn\u2019t you use the XSLT transforms from Brian Suda to export to iCal and vCard?<br \/>\n<\/em><br \/>\nA: Brian has done some great work, and I did take a look at those in the beginning but decided against them mainly because I needed more flexibility in my code to access the individual items in the microformats. Because of this, I parse the microformats myself and store the data in Javascript. Also, I wanted all the code in the extension to be original. I realize my export is not anywhere near as complete as Brian\u2019s \u2013 that\u2019s being worked on.<\/p>\n<p><em>Q: Aren\u2019t the Tails and Tails Export extensions good enough? Why do we need more extensions in the microformat space?<br \/>\n<\/em><br \/>\nA: The Tails and Tails Export extensions are great and they provided my first glimpse at using microformats in the browser. I quickly discovered though that the interfaces they provided (sidebar and status bar)  were not what I was looking for and it was not easy to add custom handlers and microformats. My goal with this new work was to make it easy to tailor the microformat concept for the end user as well as provide more options for developers working on microformats.<\/p><\/blockquote>\n<p><strong>Get Operator<\/strong><\/p>\n<p>You can <a href=\"https:\/\/addons.mozilla.org\/firefox\/4106\/\">download Operator at addons.mozilla.org<\/a>.<\/p>\n<p><strong>Comments<\/strong><\/p>\n<p>If you are interested in commenting, please use <a href=\"http:\/\/groups.google.com\/group\/mozilla.dev.apps.firefox\/browse_frm\/thread\/bca5a231d634f87a\/4361d223cc01b53f#4361d223cc01b53f\">this thread in mozilla.dev.apps.firefox<\/a>, or comment below.<\/p>\n<p><!-- technorati tags start --><\/p>\n<p style=\"text-align:right;font-size:10px\">Technorati Tags: <a href=\"http:\/\/www.technorati.com\/tag\/microformats\" rel=\"tag\">microformats<\/a><\/p>\n<p><!-- technorati tags end --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducing Operator, a Microformat Detection Extension for Firefox 2 Today Mozilla Labs is releasing Operator, a microformat detection extension developed by Michael Kaply at IBM. Operator demonstrates the usefulness of semantic information on the Web, in real world scenarios. Here &hellip; <a class=\"go\" href=\"https:\/\/blog.mozilla.org\/labs\/2006\/12\/introducing-operator\/\">Continue reading<\/a><\/p>\n","protected":false},"author":51,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/posts\/20"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/users\/51"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/labs\/wp-json\/wp\/v2\/tags?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}