In the software center we allow the user to search using case-insensitive keywords, for instance searching for ‘excel’ could match Libreoffice Calc or many other free software spreadsheet applications. At the moment we use the translated keywords set in the desktop file, any extra <keyword>
entries in the AppData file, and then fall back to generating tokens from the name, summary and description using a heuristic. This heuristic works most of the time, but a human can often do much better when we know what the most important words are. I’ve started emailing maintainers who do not have any keywords in their application (using the <update_contact>
details in the AppData file), but figured I should also write something here.
So, what do I want you to do? If you have no existing keywords, I would like you to add some keywords in the desktop file or the AppData file. If you want the keywords to be used by GNOME Shell as well (which you probably do), the best place to put any search terms is in the keywords section of the desktop file. This can also be marked as translatable so non-English users can search in their own language. This would look something like Keywords=3D;printer;
(remember the trailing semicolon!)
The alternative is to put the keywords in the AppData file so that they are only used by the software center and not the desktop shell. You can of course combine putting keywords in both places. The AppData keywords can also be translated, and would look like this:
<keywords> <keyword>3D</keyword> <keyword>printer</keyword> </keywords>
Of course, you don’t have to do a release with this fix straight away, and if you have a stable branch it would be a good thing to backport this as well if it does not add translated strings or you have no string freeze policy. Nothing bad will happen if you ignore this request, but please be aware that matches from keywords are ordered higher in the search results than other partial matches from the name or summary. You also don’t have to add keywords that are the same as the application name or package name, as these are automatically added as case insensitive search tokens. If you don’t have any keywords then your application will still be visible in the various software centers, but it may be harder to find.
Comments welcome.
If I’m not mistaken, one of the difference between the two methods presented is that the .desktop file permits to have a different number of keywords than in english, which is a good thing for i18n (there’s not always a one-to-one relation between two languages for describing the role of an application). So it should probably be highly preferred.
Well, you can translate the AppData too, just use <_keyword> if you’re using intltool, or translate manually doing <keyword xml:lang=”it”>Videogioco</keyword>
You’re missing the point, the problem is the *number* of keywords, that is not necessarily the same in all languages.
In which case you make a good point. :)
Should Add-ons be adding keywords to metainfo.xml?
Would be good to know because we have [this going on](https://fedoraproject.org/wiki/Workstation/AddonAppdata)
You certainly can do; any keywords added to the metainfo get promoted to the “parent” application for the search.
Neat. What else get’s promoted? Do screenshots?
This page [1] should probably mention its ok to include other fields (as long as they are valid appdata). (Assuming that is a true statement).
[1] http://www.freedesktop.org/software/appstream/docs/sect-Quickstart-Addons.html
No, screenshots don’t get promoted, but probably should do. Anything else you think it makes sense to promote?
I think screenshots should not be promoted: add-ons might be overly specific and it could detract from the first impression of the main app.
OTOH, a package manager GUI or a webpage or whatever could be free to display those screenshots in some way with the add-on. [joke-based-on-stereotypes]Probably not a Gnome one, very likely a KDE one.[/joke-based-on-stereotype]
Well the promotion is a client-side thing, so it’s completely up to the client.
> for instance searching for ‘excel’ could match Libreoffice Calc
The AppData specification for <description> says “Do not use possibly trademarked product names when referring to competitors.” Which seems like good advice.
Is it ok (or even recommended) to use the names of competing proprietary applications in <keywords>? This seems a bit more “gray-area”. And it seems like it would be useful (as in your example), especially for the important case of users new to Free Software.
I know YANAL but I’d value your thoughts none-the-less…
Yes, I think using competitors product name as a keyword (like “photoshop”) should okay in this instance and IIRC this is also what Fedora Legal said. I’d be much less happy recommending using the vendor name as a keyword, or even including the product name in the description. If you’re at all worried perhaps leaving them out is a good idea as what I say should really *not* be considered legal advice :)