[AppStream] Adding Age Classification to AppData files

Richard Hughes hughsient at gmail.com
Tue Mar 8 08:32:29 UTC 2016


Hi all,

I wrote a bit about why I think age ratings are required inside
software centers:
https://blogs.gnome.org/hughsie/2016/03/07/age-ratings-in-gnome-software-introducing-oars/

I don't think it makes sense to hide or restrict games based on an
age, but as a parent it sure would find it useful to know if a game I
install for my daughter has any unsuitable content. I've put together
a proposal called OARS, and I've asked the Common Sense Media group to
work with me on the classifications and the questions we ask
developers on a web-form. In the meantime, I'd like to talk about what
I think should go upstream, i.e. into the actual AppData file. I think
it makes sense to do the mapping from "drugs-narcotics=intense" ->
"18+" in the client program as it will change depending on country and
also user preference. It's a little bit of work taking these
classifications and turning them into a minimum-age rating for an
application, but I'll of course share all my results and research
under a GPL license.

So, the proposal(s). I think something like this inside the
<component> tag would be a good idea. Don't get too worried about the
rating IDs themselves, that needs a lot more work with people cleverer
than me:

  <classification type="oars-1.0">
    <rating id="violence-cartoon">moderate</rating>
    <rating id="violence-fantasy">mild</rating>
    <rating id="violence-realistic">none</rating>
    <rating id="violence-bloodshed">none</rating>
    <rating id="violence-sexual">none</rating>
    <rating id="drugs-alcohol">mild</rating>
    <rating id="drugs-narcotics">mild</rating>
    <rating id="drugs-tobacco">none</rating>
    <rating id="sex-nudity">none</rating>
    <rating id="sex-themes">none</rating>
    <rating id="language-profanity">mild</rating>
    <rating id="language-humor">none</rating>
    <rating id="social-chat">mild</rating>
    <rating id="social-audio">none</rating>
    <rating id="social-contacts">none</rating>
    <rating id="gambling-general">none</rating>
  </classification>

An optimisation would perhaps be to change:

    <rating id="sex-nudity">none</rating>
    <rating id="sex-themes">none</rating>

->

    <rating id="sex">none</rating>

i.e. if all the subcategories are the same, then just set a parent
category. We could even split out the parent/child groups:

    <rating group="drugs" id="narcotics">none</rating>
    <rating id="social::chat">mild</rating>
    <rating id="social/chat">mild</rating>

Although I'm not sure if that makes it any clearer. I'm not sure about
the name of <rating> or of the <classification> and I'm open for ideas
here. Rating specifically might be too close to the idea of a "star
rating" and get confused.

On the oft-quoted metadata bloat issue, I think this extra data would
only really be required for games, and I only think a tiny subset of
games would ship this data initially. We'd obviously focus on the 18+
games first and then move down the age range.

So, comments?

Richard


More information about the AppStream mailing list