← Back to team overview

unity-dev team mailing list archive

Re: [Ayatana-dev] Searching for applications, keywords and synonyms

 

On Thu, 2010-12-23 at 12:55 -0800, Dylan McCall wrote:
> Hi! I have a little itch to scratch :)
> 
> A while ago I sent a message off to Gnome Shell's mailing list on this
> topic, but there hasn't been much feedback yet. Still hoping to get
> the ball rolling, so… maybe we can start on this here!
> 
> It seems every new desktop shell promotes searching. In Unity, lots of
> features are built around search, so it is important that it works
> really well. Right now, the results for application search can be
> pretty erratic, making it only consistently useful for getting back to
> an application one already knows by name. It doesn't work for
> _discovering_ an application. For example, Unity as it is cannot
> reliably help someone wondering “how do I burn a music CD?”
> We can do way better than that.
> 
> Right now, in Maverick's Unity, a search checks an application's Name
> and Comment field. So, if an application wants to be search friendly,
> its developers have to cram as many relevant words as they possibly
> can into its one-sentence comment.
> If I search for “photo,” I get Cheese, F-Spot, GIMP and Shotwell (in
> that order).
> ”photos” gives me Cheese, F-Spot and Shotwell.
> “camera” gives me UFRaw.
> “photograph” gives me GIMP.
> “photography” gives me nothing.
> 
> I think a good solution to this problem involves the standard menu
> categories attached to the Desktop Menu Specification:
> http://standards.freedesktop.org/menu-spec/latest/apa.html
> The nice thing with this is most applications already do what we want.
> Poking through /usr/share/applications, I can see most apps on my
> system already describe themselves with good, logical sets of
> additional categories, like "Game;Simulation",
> "GNOME;GTK;Graphics;Viewer;Publishing;" or
> "GNOME;GTK;AudioVideo;Audio;Recorder;"
> 
> All this needs is that those categories be searchable. Right now, they
> aren't, but it could be easy enough to create a centralized _thing_
> that links registered menu categories to natural keywords relating to
> them. So, the Photography category gets “photography, photograph,
> camera, image.” (Where we make an assumption that the search system
> does partial string matching).
> For particular cases, comments come back into play but have a less
> prominent role. Perhaps a Keywords field could be gradually phased in,
> but it would be less urgent.
> 
> There are probably too many variables here to do something
> particularly controlled like the card sorting exercise. I was thinking
> about setting up a quick web app for people to match applications with
> different keywords (and then to manually match those keywords with
> categories).
> Any suggestions for this? :)
> 
> As for the rest of this thought: yeah, that's what I think would work.
> I'm curious if we can establish some agreement on whether search
> _needs_ fixing and how to go about it.
> I would love to help with this where I can, particularly figuring out
> that data set (and its localisation logistics).
> It would be really nice to have something portable so we can still be
> consistent with how applications are presented in different desktop
> environments.

I think this is a nice idea. The metadata for applications is definitely
a scarce resource and anything more rich would help the users a lot.

To kick it off I think it could be a good idea to simply Just Do It and
write  down an exhaustive list of keywords for the categories in
http://standards.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry. Given that I can easily hack it into unity-place-applications at least as a proof of concept to begin with. And we can see how it works in practice.

Given that it's just pure awesome when trying the prototype out we can
move it forwards and perhaps start up by creating a real translatable
project with the category keywords and either get it into
freedesktop.org, Gnome, or just as an Ubuntu package what ever makes
sense. At this point I can add support in unity-place-applications.

No promises, but at least this is a road forward :-)

Cheers,
Mikkel




Follow ups

References