WebSchemas/Audience

From W3C Wiki


This is an archived WebSchemas proposal Audience schema for schema.org. See Proposals listing for more. Note: active schema.org development is now based at github



Overview

This page describes schema.org proposal (second version, first one can be found here), containing necessary types and properties to describe Internet content audience.

Vocabulary changes summary

Add type Thing->Intangible->Audience - already done

Add property audience to type CreativeWork (done) and Product.

audience property expects schema.org/Audience or rdf:type object.

Thing->Intangible->Audience->PeopleAudience

Property Type Description
minAge Number Minimal age recommended for viewing content
maxAge Number Maximal age recommended for viewing content
gender Text People target gender.
healthCondition MedicalCondition Human health condition, when a webpage becomes more relevant.










Thing->Intangible->Audience->PeopleAudience->ParentAudience

Property Type Description
childMinAge Number Minimal age of the child.
childMaxAge Number Maximal age of the child.






Adding recommendations

First, add an abstract type Thing->Intangible->Audience (done)

Add property audience to type CreativeWork (done) and Product.

Every subclass of Audience type must contain some recommendations. A recommendation can be or an enumeration, or a complex type object. I expect necessary types can be added as soon as we need them.

Age recommendations

As you might think, the first goal of recommendations is to protect children from adult content (porn, violence, etc.). But I doubt all the porn sites will gladly markup their content. But they aren't our primary goal, because we don't want negative constraints, we do want positive recommendations. I think we should stimulate publishers to label their target audience explicitly.

Hence, there is an age recommendation:

Thing->Intangible->Audience->PeopleAudience

Property Type Description
minAge Number Minimal age recommended for viewing content
maxAge Number Maximal age recommended for viewing content
gender Text Recommended gender
healthCondition MedicalCondition Human health condition, when a webpage becomes more relevant.










This class can be used in many ways:

1) Means: this is a game for children

<!--Game for children-->
<div itemscope itemtype="http://schema.org/CreativeWork">
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
        <meta itemprop="minAge" content="7"/>
        <meta itemprop="maxAge" content="13"/>
    </span>
    <object>... some flash game ...</object>
</div>

2) Means: this is an adult movie

<!--Porn movie-->
<div itemscope itemtype="http://schema.org/VideoObject">
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
        <!--Since it has no maxAge, it has no upper age limit-->
        <meta itemprop="minAge" content="18"/>
    </span>
    <object>... some video object ...</object>
</div>

Gender recommendations

Second useful targeting property is gender (Text). Here is the recommendation type:

An example (target site):

<body itemscope itemtype="http://schema.org/WebPage">
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
        <meta itemprop="gender" content="female"/>
    </span>
    ... Some woman clothes here ...
</body>

Another example (target):

<body itemscope itemtype="http://schema.org/WebPage">
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
        <meta itemprop="gender" content="male"/>
    </span>
    ... Web page content here ...
</body>

Health condition

Add healthCondition property to PeopleAudience type. It allows marking up products and services as intended for people with specific medical conditions.

Examples: Maternity clothes

<div itemscope itemtype="http://schema.org/Product">
    <span itemprop="name">Maternity clothes</span>
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
        <span itemprop="healthCondition" itemscope itemtype="http://schema.org/MedicalCondition">
            <meta itemprop="name" content="Pregnancy"/>
        </span>
    </span>
</div>

Special design for visually impaired person

<div itemscope itemtype="http://schema.org/WebPage">
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
        <span itemprop="healthCondition" itemscope itemtype="http://schema.org/MedicalCondition">
            <link itemprop="url" href="http://en.wikipedia.org/wiki/Visual_impairment"/>
        </span>
    </span>
    ... content here ...
</div>

Recommendations for parents

Third recommendation type I want to propose: content for parents. There is a lot of sites for parents in the Internet, and they are all different depending on child age. So, there can be some recommendation based on child age: Thing->Intangible->Audience->PeopleAudience->ParentAudience

Property Type Description
childMinAge Number Minimal age of the child.
childMaxAge Number Maximal age of the child.






An example can look so:

<div itemscope itemtype="http://schema.org/Article">
    <span itemprop="audience" itemscope itemtype="http://schema.org/ParentAudience">
        <meta itemprop="childMinAge" content="2"/>
        <meta itemprop="childMaxAge" content="5"/>
    </span>
    <h2 itemprop="name">Teaching your child reading</h2>
    <div itemprop="text">
        Bored to read books for your children?
    </div>
</div>

Type recommendations

Though we can create many subtypes of schema.org/Audience, we cannot cover the whole type taxonomy. That's why audience property can contain a link to rdf:type object.

For example, http://www.tacticaltech.org/toolkitsandguides can contain following markup:

<body itemscope itemtype="http://schema.org/WebPage">
    <link itemprop="audience" href="http://schema.org/NGO"/>
    ... some HTML here...
</body>

Medical/Health, LRMI and TechArticle alignment

Medical/Health, TechArticle and LRMI proposals contain similar issues, these proposals can be merged together.

These proposals need some minor changes to share common audience schema:


For Medical/Health (approved by Aaron Brown):

a) move Thing->Intangible->Enumeration->Audience to Thing->Intangible->Audience

b) move MedicalAudience to have base types Audience and MedicalEnumeration


For LRMI (changes by Greg Grossmeier):

a) Create Thing > Intangible > Audience > EducationalAudience

b) EducationalAudience type will have a property 'educationalRole' (expected type: schema.org/Text)

c) remove 'intendedEndUserRole' from LRMI proposal and use EducationalAudience 'educationalRole' instead


For TechArticle (ok from Kenley Lamaute):

a) create Thing->Intangible->Audience->PeopleAudience->TechnicalAudience type with property 'technicalAudience' (expected type: schema.org/Text)

b) remove 'technicalAudience' property from TechArticle type and use common 'audience' property instead

How to Join the Discussion

No way yet

Related

There are some works on adult content markup:

  • rtalabel.org - alive, but only restrictive model
  • ICRA - closed, see icrafail.pdf
  • PICS - replaced by RDF in general, POWDER in particular
  • POWDER - recent W3C recommendation, last update in 2009. Also the additional-xml-file format seems to be unconvenient for our purposes

Also some current schema.org proposals with similar ideas: