User:Dria/On Tagging

From MozillaWiki
Jump to: navigation, search

Update: I've done a followup - On Tagging II

TagSymbol.png I invented this Tag Button Thursday morning.

Introduction

I was thinking about bookmarks the other night and about how much they suck and about how much I hate them.

First off, bookmarking as a concept is dead. We should let it go. Some other browsers have renamed bookmarks as "Favourites" but that's a pretty meaningless semantic/cosmetic change.

What follows is a somewhat haphazard brainstorm of my thoughts and ideas about bookmarking, browser history, and tagging.

Why not use a Social Bookmarking service?

Many would suggest that the new "Social Bookmarking" movement (and associated extensions, tools, visualizations, and such) is the answer to all my bookmarkish problems, but I disagree. Social bookmarking sites such as del.icio.us have two major and unacceptable drawbacks for me:

  1. I have absolutely zero interest in sharing (all of) my bookmarks. My bookmarks, for the most part, reflect my changing interests and surf habits over time. I would consider it a fairly serious breach of personal privacy were those to be tracked (or trackable). If I decide to share my bookmarks, I want the option for it to be anonymous, and I want it to be able to share only particular subsets of my entire collection.
  1. I don’t want to be dependent on an external online service for storing and retrieving my bookmarks. I want them to be local, with a backup/syncable version held in a secure central location. If that central location goes offline for whatever reason, I don’t want my bookmarks to go with it. I also don’t want ‘net lag to make accessing my bookmarks slow and crappy.

Bookmarks are Dead, All Hail Tagging

My idea is that we replace bookmarks entirely with the tagging concept. Instead of bookmarking a page, subscribing to an RSS feed, blah blah, you just tag it. Tagging an item automatically stashes that URL into your profile's tags file/database. If you're tagging a web feed, it automatically turns it into a Live bookmark (although we need to get rid of the "bookmark" term entirely...it's not a book).

As it stands, browsers are adding "there's a feed here" indicators to the address bar. Our browser treats that as a "Store this as a Live Bookmark" button (which is sort of unuseful, but whatever). My initial idea (which is probably crappy, but that's why we have Beltzner) is to add to or replace the Feed button (the orange thing) with a Tag button.

Here’s a (plausibly ill-informed) mockup of what I mean:

TagButton2.png

The idea is that when you click the tag button (that's the green thing I invented while drinking coffee one morning), it brings up a simple text field with a button. Like so (only with the right fonts and stuff):

TagDialog.png

Tags shouldn’t be limited to a single word. Comma-delimiting tags in the tagging dialog would eliminate the annoying tendency for people to tag things in CamelCaps or with spaces replaced with hypens (ie: MikeShaver, Mike-Shaver, mike.shaver, mikeShaver, mike_shaver, blah.) Just let users use spaces so tags don’t look like crap.

Tag Suggest

Another crazy concept would be a "Suggest" button that would have the browser search the page text for particular keywords based on a user�s previous tags and/or a set of tags we provide, like so:

TagSuggest.png

So, if I were on a page that contained words such as "Ajax" and "JavaScript" and "Turkey Pie", clicking the "Suggest" button would first search through my existing tags and, assuming these tags existed, would auto-populate the field with "AJAX", "JavaScript", and "Turkey Recipes". If nothing matched out of my existing catalog of tags, it could then default to checking against a tag-suggestion file that is provided with the browser (or obtained from the shared tagging database we host on a centralized server (see more on Syncing below)).

Once tags are suggested, the user would be able to change, add to, or remove anything in the textbox.

The suggest button could also search the MetaData of the web site for keywords as suggestions. If the concept of "tagging" catches on, web sites could include yet another MetaData field for "Suggested Tag Keywords."

Searching

TagSearch.png

Searching tagged items should not require bringing up the Tag Manager. Having something like the Search Bar (or integrating the Tag Search into the existing Search Bar), where I can just click, type, and hit "Enter" to get a nicely-formatted and fully-linked Tag Search result page in my browser that displays all my Tagged Items that fit the search, would be awesome. It should search both the tags and the titles/urls of tagged items for matches, not just tags.

TagSearchResults.png

Tag Management

Once tagged, the URL (of whatever type) can be retrieved in any number of ways. I think the default system for storing/retrieving tagged locations/items within the browser could be an iTunes-alike triple-paned interface that allows the creation of additional smart folders, "playlists" above and beyond the standard tagging, ratings, and display of the page (or Sage-ified RSS feed items), etc. A smaller, two-pane panel could be provided as an alternate.

Three-Pane Panel

Tagging a Feed should automatically do two things: add the URL as a visitable location, and add the Feed as a feed. Selecting the Feed would display a nicely formatted (via default Feed CSS) page in the main panel, while double-clicking would open the Feed itself in a new tab (or window or whatever, based on user prefs). This is how interaction with any tagged items in the Tag Manager would work, really – select displays it in the main panel, double-click opens the item in a new tab or window.

I drew another mockup:

TagManager3-small.png

The Tag Manager interface and behaviour would have to be designed extremely carefully, since this would be the primary interface where users would manage their tags. It has to be much, much better than our current Bookmark Manager interface.

Users should be able to drag Tags to Items, and Items to Tags, and Multiple Items to Tags, etc. Users should be able to interact with, add, modify, or delete tags or tagged items in all obvious/intuitive ways.

Two-Pane Panel

An alternative to the three-pane full-width panel would be a two-pane “sidebar�? style panel, like so:

TaggingTwoPanePanel.png

Find-Ahead Search

Both the three- and two-pane panels should have a "spotlight"-like find-ahead search box that filtered displayed items based on whatever is typed in the search box. (Beltzner’s suggestion.) This is illustrated in the two-pane panel above, but I forgot to put it in the three-pane.

Syncing

One thing that annoys me a great deal is that it’s very difficult for me to sync my bookmarks between machines. Ideally, we would provide a centralized service, akin to .mac, that would allow users to optionally sync all sorts of crazy things between machines: All profile settings (all apps), history (Ffox), tags (Ffox), Feed Subscriptions (Ffox or Tbird or whatever), Feed “Read�? status (Ffox, Tbird, whatever), mail rules (Tbird), mail accounts (TBird), junkmail filtering database (Tbird), calendars (Sunbird/Tbird), etc.

Tag Sharing

Users could be given the option of "Sharing" their Tag database. The sharing would be anonymous (ie: no user data is shared), but if shared, when they sync their tags with the central server, we could add those to a massive database of tagged items (including user ratings and such). That data could be mined and used for all kinds of interesting things: a central database of rated RSS feeds, a podcasts catalog, all kinds of awesome data for compiling a tag suggestion database, to just letting users browse around by tag and seeing what else is out there in the world. Etc. This central system should also be extraordinarily well-designed, as it could potentially be an incredibly rich resource.

Default Tags

There should possibly be a set of default tags into which particular types of items get automatically added. For example, if a user tags an RSS feed, that feed should automatically get tagged with "Feed", image files with "Image", audio files with "Audio", movie files with "Movie", etc. This would be fairly dependent upon file type recognition, of course. The result would be that in her Tag Manager, a user would be able to find all her feeds in the "Feeds" folder, even if she can’t remember what other tags she used, the title, or the URL. The browser should just do this, without any need for interaction on the user’s part.

And the same system could also record the language of the resource, according to the ISO-639 table.

History Integration

A user’s browsing History could be integrated with this tagging system, being nothing more complicated that a default auto-applied tag that stored every URL visited by the user until the user explicitly clears her History/Private Data. If a user never cleared her History or Private Data, she would be able to use the Tag Manager system to find any page she ever visited, search them, and tag them at her leisure.

Auto-Tagging

Optionally, the tagging system could automatically tag all items in history using the same algorithm used for the "Tag Suggest" feature mentioned earlier. These auto-tagged items would be flagged and filterable as such so they don’t pollute a user’s manually-tagged lists of items.

It would have to be extremely simple for a user to approve, disapprove, change, or delete auto-tags. Approval/Disapproval/Deletion should be no more than a one-click process, while changes should be similarly straightforward.

Bayesian Training

Bayesian training system could "learn" a user’s tagging habits and preferences over time and be used to continually improve the "Tag Suggest" and "Auto-Tag" features.

In Conclusion...

I like the concept of tagging, particularly when used for personal data such as bookmarks, RSS feeds, and the like. I think we can and should have some sort of system for tagging items in Firefox (and our other applications) that make it incredibly easy to do on any given page without having to visit other pages (like del.icio.us requires) or navigate a bunch of annoying menus. If I could click a single button then just auto-populate (via Suggest) some tags, or just quickly type in a set of tags, I’d probably tag every single page I spent more than 2 seconds reading. With the inclusion of a Tag Search in our Search Bar I would stop using Google as my default replacement for bookmarking, because I would actually be able to find what I’m looking for in my own bookmarks file without having to fight with the Bookmark Manager.

Other Resources

A lot of other people have been thinking and writing about this topic. Feel free to add to this list: