WebSchemas/Audience
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: