W3C W3C Incubator Report

W3C Content Labels

W3C Incubator Group Report Draft 0.6 19 June 2006

This version:
http://www.w3.org/2005/Incubator/wcl/XGR-report-20060619/
Previous version:
http://www.w3.org/2005/Incubator/wcl/XGR-report-20060607/
Latest version:
http://www.w3.org/2005/Incubator/wcl/XGR-wcl/
Authors:
Phil Archer, ICRA
Jo Rabin, Segala

Abstract

Need to write an abstract here

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of Final Incubator Group Reports is available. See also the W3C technical reports index at http://www.w3.org/TR/.

This is an early draft designed to act as a focus for discussion by the group. As can be seens, many points remain unresolved and substantial work is required to write several sections. The contents of this report should therefore be treated as indicative of the group's direction only.

This document was developed by the W3C Content Label Incubator Group.

Publication of this document by W3C as part of the W3C Incubator Activity indicates no endorsement of its content by W3C, nor that W3C has, is, or will be allocating any resources to the issues addressed by it. Participation in Incubator Groups and publication of Incubator Group Reports at the W3C site are benefits of W3C Membership.


Table of Contents

1 Introduction

The group was chartered to look for "... a way of making any number of assertions about a resource or group of resources." Furthermore "... those assertions should be testable in some way through automated means."

It quickly became apparent that the terminology used in that summation needed to be refined and clarified, however it was possible to construct a set of use cases that amply demonstrate the aims in more detail. A set of high level requirements was derived from the use cases that were then formalized for this report.

Throughout the Incubator Activity, decisions have been taken via consensus during regular telephone conferences and a face to face meeting. Discussion of the requirements and what can and cannot be inferred from a content label proving the most exhaustive. Based on that discussion it is possible to reformulate the output of the Web Content Labels Incubator Activity as:

"A way of making any number of assertions, using any number of vocabularies, about a resource or group of resources. The assertions are open to automatic authentication based on available data such as who made the assertions and when."

We have deliberately taken a very broad approach so that it is possible for both the resource creator and third parties to make assertions about all kinds of things, with no architectural limits on the kind of thing they are making claims about. For example, medical content labeling applications might be concerned with properties of the agencies and processes that produce web content (e.g.. companies, people, and their credentials). By contrast, a mobile content labeling application might be more concerned with kinds of information resource and their particular (and varying) representations as streams of bytes. That said, we have focused on Web resources rather than trying to define a universal labeling system for objects.

The group agreed early on that RDF provides the best technology as a basis for achieving this but that alternatives must be discussed explicitly. For this reason, we offer the following:

1.1 Participants

The companies who participated in WCL-XG are as follows:

* Original sponsor organization

The diverse membership reflects a widely recognized need to be able to "label content" for various purposes. These range from child protection through to scientific accuracy; from the identification of mobile-friendly and/or accessible content, through to the linking of thematically-related resources.

2 Detailed requirements

Based on the use cases and the original high level requirements that were derived from them, a set of more detailed requirements was established. These have been loosley categorized for easier comprehension and care has been taken to use relevant terms as defined in the glossary.

Fundementals

  1. It must be possible for both resource creators and third parties to make assertions about information resources
  2. The assertions must be able to be expressed in terms chosen from different vocabularies. Such vocabularies might include, but are not limited to, those that describe a resource's suitability for children, its conformance with accessibility guidelines and/or Mobile Web Best Practice, its scientific accuracy and the editorial policy applied to its creation. Existing vocabularies are preferred over newly defined ones
  3. It must be possible to group information resources and have cLabels refer to that group of resources. For example, cLabels can refer to all the pages of a Web site, defined sections of a Web site, or all resources on multiple Web sites.
  4. A cLabel must be the expression of assertions made only by the party that created it. It must not be necessary for assertions made by multiple parties to be included in a single cLabel.
  5. cLabels must support a single composite assertion taking the place of a number of other assertions. For example, WAI AAA can be defined as WAI AA plus a series of detailed descriptors. Other examples include mobileOK and age-based classifications.
  6. More than one cLabel can refer to the same resource or group of resources. Since conflicting labels are therefore permissible, the choice of which label(s) to trust lies with the end user.
  7. It must be possible for a resource to refer to one or more cLabels. It follows that there must be a linking mechanism between content and labels.
  8. cLabels must be able to point to any resource(s) independently of those resources.
  9. It must be possible to make assertions about cLabels using appropriate vocabularies. For example, a cLabel can have metadata describing who created it, what its period of validity is, how to provide feedback about it, a who last verified it and when.
  10. It must be possible for a cLabel to be associated with its metadata and vice versa.
  11. cLabels, metadata statements and individual assertions should have unique and unambiguous identifiers.

Fitting in with commercial or other large scale workflows

  1. It must be possible for cLabels and cLabel metadata to be authenticated.
  2. It must be possible to create and edit cLabels without modifying the resources they describe.
  3. It must be possible to identify a default cLabel for a group of resources and specify situations in which another cLabel overrides the default. i.e. it must be possible to say "everything on example.com is described by cLabel1 except resources in section A for which cLabel2 applies."

Encoding labels for humans and machines

  1. It must be possible to express cLabels and cLabel metadata in a machine readable way.
  2. The machine readable form of a cLabel and cLabel metadata must be defined by a formal grammar
  3. cLabels must provide support for a human readable summary of the claims it contains
  4. It must be possible to express cLabels and cLabel metadata in a compact form
  5. Vocabularies and authentication data must be formally encoded and support URI references

3 The abstract model of content labels

The requirements in the previous section can be expressed in a more programmatic way as follows. A Content Label (cLabel) can carry a variety statements such as:

cLabel {
  That resource R has the property P1 is true
  That resource R has Property P2 that has value V
  That resource R meets WCAG 1.0 AA is true
  That resource R was created in accordance with satisfactory procedures is 
true
}

Where R may be either a single resource identified by its own URI or a group of resources. Membership of a group R may be defined either by pattern matching based on URIs or with reference to specified properties of resources. The latter case includes, but is not limited to, properties such as creation date, ISAN number etc.

Further, it is necessary to be able to make statements like:

metadata {
  cLabel was created by $organization
  {
    has the e-mail address mail@organization.org
    has a homepage at $url
    has a feedback page at $URL
    ...
  }
  cLabel was created on $date
  cLabel was last reviewed by $person
}

Finally, it is necessary to be able to send a real-time request to $organization seeking automatic confirmation that it was responsible for creating the cLabel, i.e. authenticating the label and the claims made. This amounts to making statements like:

authentication {
metadata and cLabel verified by $organization  
  { has email sss ... }
verified on $date}

Such a discussion leads us to the abstract model of cLabels as described in figure 3.1 and the following text.

UML Dagram of abstract model for content labels

Figure 3.1 Schematic diagram of the abstratc model for content labels.

cLabelMetadata to be merged into cLabel for abstract model

A Vocabulary collects together a number of related properties or aspects of a resource that may be useful in saying things about that resource. Those properties or aspects are identified by terms of the vocabulary. Each term is identified by a descriptor, may have constraints associated with values that are appropriate for us with that descriptor, and possible other information such as test suites for checking value assignment. The scope of use of the vocabulary as a whole as well as the scope of individual terms may be noted.

An expression is a statement in respect of a resource that the aspect of the resource denoted by a descriptor chosen from a specific vocabulary has a certain value. A valid expression makes reference to a vocabulary term that exists and whose chosen value conforms to the constraints specified in the vocabulary.

An assertion is a specific type of expression which is said to be true by the entity that makes it.

A claim is a specific type of assertion, whose veracity can be ascertained - either by reference to the test conditions described in the relevant vocabulary term, or by observation and interpretation of the meaning of the term as given in its scope notes.

A label is an abstraction, which is specific type of resource and contains Assertions and Claims in respect of a Group of Resources.

A cLabel is a specific type of label that has assertions describing the circumstances of its creation.

cLabelMetadata makes assertions about a cLabel. In turn, assertions may be made about both a cLabel and its metadata in a certificate.

3.1 Grouping resources

The grouping of resources is a fundamental aspect of content labels. Although it is very much a current hot topic, the basics are clear. It will be possible to define groups of resources based on a list of domain names, with support for specific inclusion or exclusion of sub-domains. Further support will be provided for pattern matching against URIs and for matching of properties of resources once resolved from a URI. Taken together, these pieces of data will define a group of resources to which a cLabel can be applied.

It is also agreed that it should be as simple as possible to define a group and specifically that knowledge of regular expressions must not be required, i.e. the burden should fall on the processing engine. There is, however, some debate over whether regular expressions should be supported at all in defining a group or whether the need for this can be obviated by a sufficiently expressive framework that allows a label creator to specify a scheme, port no. leading or trailing section of a path etc.

4 Content label semantics

As defined in the glossary, a content label is a set of assertions made using one or more vocabularies to describe a resource or group of resources. In turn, an assertion is an expression that is claimed to be true.

It follows that a cLabel SHOULD be taken as the expression of an opinion held by an individual, organization or automaton at a particular point in time. It cannot be taken as proof, in a logical sense, that one or more of the assertions expressed in the cLabel is true as an empirical fact.

Furthermore, the content label is limited by the vocabularies used. That is, clients MUST NOT make any inference about a resource or group or resources based on the absence of any descriptor. To give a simple example of this. if a content label describes a resource solely in terms of its color, no inference can be drawn about its shape.

5 System architecture

Content Labels can be used in a variety of systems and it is not the XG's intention to define a single architecture. However. we do recommend that the following elements are present in any complete system.

  1. Content Labels served either from the labeled site or from a labeling authority
  2. Metadata about a given cLabel giving detail of who created it, when, its period of validity and so on (see WCL Vocabulary)
  3. An authentication route through which a client can make an automated request to the LA
  4. An API through which an LA makes available labels for a given resource (see RDF Model below)
  5. An API though which an LA makes all its labels available as a single download

Then we should reference

And we could posit the general statement that cLabels constitute a single data point that could be used in any framework.

Need to be able to do simple things like embed labels in their metadata and embed that metadata in the content that they refer to.

6 Encodings

Given the use cases and the detailed requirements derived from them, The Content Label Incubator Group believes that RDF provides the best and most appropriate technology for content labels. Section 6.1 describes the RDF-based model and describes a small set of classes and properties that are the basis for defining labeling schemes. A specific labeling scheme is created by defining instances of these classes and using the properties to define the relationships between those instances.

That said, the group has been careful to express its aims independently of any particular technology and recognizes that other approaches are equally possible and may be more appropriate, or just feel more natural, to some people. For this reason, we have sketched out some initial ideas for other encodings in section 6.2. These are not fully worked through but are offered as hints for others to follow if they so wish.

6.1 RDF Model

The RDF model is based substantially on work done under the QUATRO project which ran under the European Union's Safer Internet Programme [SIP]. The project in turn took ideas developed under previous working groups. The model developed under QUATRO is known as RDF Content Labels [RDF-CL], the original documentation for which remains available. Note: the model presented here is not a simple copy of RDF-CL. Many changes and simplifications have been made under the WCL-XG.

The concepts used in the RDF model are first introduced by way of an extended example. These are then formalized in the schema description.

6.1.1 Introducing the Extended example

A typical labeling scheme consists of one or more categories that group together related descriptors for which there are defined legal values and zero or more descriptors that have no value. The presence of the latter indicates that a particular feature is claimed to be true of the resource being described.

To create a trivial example, a labeling authority (LA) might define "Appearance" as a category within which there are descriptors for:

  • Color with legal values of Black, Red and Green
  • Percentage transparency (pt) with legal values between 0 and 30.

The LA further defines "Matt" and "Shiny" properties that are either true or false.

Assuming relevant namespace declarations have been made, an example of a cLabel written in RDF and serialized XML might then be:

<wcl:ContentLabel>
  <ex:color>Green</ex:color>
  <ex:pt>20</ex:pt>
  <ex:shiny>true</ex:shiny>
</wcl:ContentLabel>

Example 1: The core of a basic cLabel

This simply means that, according to the example labeling scheme, the labeled resource is green, 20% transparent and shiny.

To extend the example, a complete set of cLabels might be created as shown in Example 2 and made available at http://resources.example.com/labels.rdf.

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:wcl="http://www.w3.org/2004/12/q/contentlabel#"
  xmlns:ex="http://labelingauthority.example.org/vocabulary#">

  <wcl:ContentLabel rdf:ID="label_1">
    <ex:color>Green</ex:color>
    <ex:pt>20</ex:pt>
    <ex:shiny>true</ex:shiny>
  </wck:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_2">
    <ex:color>Red</ex:color>
    <ex:pt>10</ex:pt>
    <ex:matt>true</ex:matt>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_3">
    <ex:color>Black</ex:color>
    <ex:pt>0</ex:pt>
</wcl:ContentLabel>

</rdf:RDF>

Example 2: An RDF/XML instance containing 3 cLabels

Resources can now be created that link to specific cLabels. Any number of resources that appear shiny and green with 20% transparency can include the link tag below (or its HTTP Response header equivalent):

<link rel="meta" href="http://resources.example.com/labels.rdf#label_1" type="application/rdf+xml" />

Similar tags can be included to identify resources to be red, 10% transparent and matt, or, black and 0% transparent.

6.1.2 Restricting the scope of a cLabel

Any resource, anywhere on the Web can link to a cLabel using the mechanism described above. There are circumstances where this is a useful facility. Equally, however, a content provider or labeling authority may wish to restrict the scope of their labels. This is achieved by using the wcl:Scope class within the wcl:Ruleset as shown in example 3.

The Scope class (a sub class of wcl:Ruleset) is provided so that hosts can easily be listed in a separate RDF instance if required. Whether this is done or not, the same SPARQL query will give the list of hosts.

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:wcl="http://www.w3.org/2004/12/q/contentlabel#"
  xmlns:ex="http://labelingauthority.example.org/vocabulary#">

  <wcl:Ruleset>
    <wcl:hasScope>
      <wcl:Scope>
        <wcl:host>resources.example.co.uk</wcl:host>
        <wcl:host>resources.example.com</wcl:host>
      </wcl:Scope>
    </wcl:hasScope>
  </wcl:Ruleset>

  <wcl:ContentLabel rdf:ID="label_1">
    <ex:color>Green</ex:color>
    <ex:pt>20</ex:pt>
    <ex:shiny>true</ex:shiny>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_2">
    <ex:color>Red</ex:color>
    <ex:pt>10</ex:pt>
    <ex:matt>true</ex:matt>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_3">
    <ex:color>Black</ex:color>
    <ex:pt>0</ex:pt>
  </wcl:ContentLabel>

</rdf:RDF>

Example 3: A repeat of example 2 with host restrictions applied

Example 3 declares the same cLabels as example 2, however, an agent MUST only consider the labels applicable to URIs that match either of the wcl:host elements declared within the wcl:Scope class. That is, URIs on the resources.example.com or resources.example.co.uk hosts. If a resource from another host links to the cLabel, an agent MUST disregard the description.

cLabels may be applied to subdomains of the listed hosts. In our examples with declared hosts of resources.example.com and resources.example.co.uk, cLabels would also be applicable to, for instance, http://search.resources.example.com, and http://support.resources.example.co.uk.

If it is necessary to restrict the scope of the labels further, this can be achieved by provding one or more wcl:hasURI properties for the wcl:Scope class. Labels MUST only be applied to URIs that are within at least one host AND that match all Perl 5 regular expressions given in wcl:hasURI elements. This is particularly useful where several users may have space on a common host, as is often the case with personal websites on their ISP's domain.

6.1.3 Identifying default labels

It is possible to define a default cLabel for the group of resources identified in the wcl:Ruleset class using the hasDefaultLabel property.

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:wcl="http://www.w3.org/2004/12/q/contentlabel#"
  xmlns:ex="http://labelingauthority.example.org/vocabulary#">

  <wcl:Ruleset>
    <wcl:hasScope>
      <wcl:Scope>
        <wcl:host>resources.example.co.uk</wcl:host>
        <wcl:host>resources.example.com</wcl:host>
      </wcl:Scope>
    </wcl:hasScope>
    <wcl:hasDefaultLabel rdf:resource="#label_1" />
  </wcl:Ruleset>

  <wcl:ContentLabel rdf:ID="label_1">
    <ex:color>Green</ex:color>
    <ex:pt>20</ex:pt>
    <ex:shiny>true</ex:shiny>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_2">
    <ex:color>Red</ex:color>
    <ex:pt>10</ex:pt>
    <ex:matt>true</ex:matt>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_3">
    <ex:color>Black</ex:color>
    <ex:pt>0</ex:pt>
  </wcl:ContentLabel>

</rdf:RDF>

Example 4: A repeat of example 3 with a default label declared

In this example, everything on the resources.example.com and resources.example.co.uk hosts is described by label 1. This can be overwritten by linking the resource directly to specific labels or via rules (discussed below),

It is expected that, for the sake of optimization, agents will locate the wcl:Ruleset class first to quicky ascertain whether the RDF instance carries information that can be applied to the resource in question (by checking for hosts) and, if so, find any default data supplied.

6.1.4 Rules for identifying a label

In examples 2 and 3, a resource was linked to a specific cLabel. A content provider will need to include a specific link to the correct label in each resource. This is shown diagrammatically in figure 6.1 below.

Figure 1. Each resource includes a link to a specific label within the RDF instance at labels.rdf

Figure 6.1. Each resource includes a link to a specific label within the RDF instance at labels.rdf.

This will be a convenient approach for some providers. However, we began to extend this in example 4 with the introduction of a default label. We now add a simple set of application rules that can be used to override that default. This will allow resources to be linked to a single RDF instance containing multiple labels. An agent can process those rules to select the correct cLabel for a given resource. This is shown diagrammatically in figure 6.2.

Figure 2. A simple rule set allows all content to link to the same RDF instance and the correct label to be identified.

Figure 6.2. A simple rule set allows all content to link to the same RDF instance and the correct label to be identified.

The advantage of this system is that a content management system or suite of servers can be configured to include exactly the same link tag with all resources, for example:

<link rel="meta" href="http://resources.example.com/labels.rdf" type="application/rdf+xml" />

The labels for an entire website, no matter its size, can be managed by editing a single file. Example 5 shows how such rules can be encoded.

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:wcl="http://www.w3.org/2004/12/q/contentlabel#"
  xmlns:ex="http://labelingauthority.example.org/vocabulary#">

  <wcl:Ruleset>
    <wcl:hasScope>
      <wcl:Scope>
        <wcl:host>resources.example.co.uk</wcl:host>
        <wcl:host>resources.example.com</wcl:host>
      </wcl:Scope>
    </wcl:hasScope>
    <wcl:hasDefaultLabel rdf:resource="#label_1" />

    <wcl:rules rdf:parseType="Collection">

      <rdf:Description>
        <wcl:hasURI>sectionA</wcl:hasURI>
        <wcl:hasLabel rdf:resource="#label_2" />
      </rdf:Description>

      <rdf:Description>
        <wcl:hasProperty>
          <ex:ManufacturingTime>
            <ex:after>12.00</ex:after>
          </ex:ManufacturingTime>
        </wcl:hasProperty>
        <wcl:hasLabel rdf:resource="#label_3" />
      </rdf:Description>

    </wcl:rules>

  </wcl:Ruleset>

  <wcl:ContentLabel rdf:ID="label_1">
    <ex:color>Green</ex:color>
    <ex:pt>20</ex:pt>
    <ex:shiny rdf:resource="http://www.w3.org/2004/12/q/contentlabel#true" true</>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_2">
    <ex:color>Red</ex:color>
    <ex:pt>10</ex:pt>
    <ex:matt>true</ex:matt>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_3">
    <ex:color>Black</ex:color>
    <ex:pt>0</ex:pt>
  </wcl:ContentLabel>

</rdf:RDF>

Example 5. A similar listing to previous examples with added application rules.

Example 5 shows that the rules are presented in an ordered list. The first rule states that the resources resolved by dereferencing any URI that matches the Perl 5 regular Expression "sectionA" will be associated with label 2. When combined with the rest of the available data, it can be seen that everything in section A of resources.example.com and resources.example.co.uk is red, 10% transparent and matt.

The second rule relates not to the URI of the resource but to its properties. Specifically in this case, the example vocabulary allows us to construct a rule that says "anything created after midday is Black and opaque."

It is possible to construct rules that have more than one hasURI and/or hasProperty property. In such circumstances, all conditions must be met for the rule to be satisfied.

6.1.5 Provenance of a label

As the use cases and detailed requirements make clear, cLabel metadata is of great importance. Since a wcl:Ruleset and cLabels are themselves resources, the full expressivity of RDF and related technologies can be used to describe them. Where cLabels and a wcl:Ruleset are delivered in a single RDF instance, an RDF description rdf:about that instance can be created that typically will give details of things like who created the data and when. In example 2 we suggested that the RDF instance be available at http://resources.example.com/labels.rdf. Thus we could create a description like that shown in Example 6 below.

<rdf:Description rdf:about="">
  <dc:creator>
    <foaf:organization>
      <foaf:isPrimaryTopicOf rdf:resource="http://example.org/foaf.rdf" />
    </foaf:organization>
  </dc:creator>
  <wcl:authorityFor>http://labelingauthority.example.org/vocabulary#</wcl:authorityFor>
<rdf:Description> 

Example 6: The creator of the RDF instance is declared, along with the namespace(s) for which it is responsible.

As a single RDF instance may contain cLabels from any number of LAs, and, indeed, any other RDF data, WCL provides a facility for an LA to declare for which descriptions (i.e. which namespaces) it is responsible. We further define a set of vocabulary terms that can be used that SHOULD be used when providing cLabel metadata [Link to this].

6.1.6 Classifications

In the examples given so far, we have created content labels that provide detailed descriptions of resources. As well as this granular approach, there is support for broad classifications that may or may not need further processing to be understood. Example 7 below shows the wcl:hasDefaultClassification and wcl:hasClassification.

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:wcl="http://www.w3.org/2004/12/q/contentlabel#"
  xmlns:ex="http://movies.example.org/vocabulary#">

  <wcl:Ruleset>
    <wcl:hasScope>
      <wcl:Hosts>
        <wcl:host>resources.example.com</wcl:host>
      </wcl:Hosts>
    </wcl:hasScope>
    <wcl:hasDefaultLabel rdf:resource="#label_1" />
    <wcl:hasDefaultClassification rdf:resource="http://movies.example.org/ratings#PG" />
    <wcl:rules rdf:parseType="Collection">

      <rdf:Description>
        <wcl:hasURI>disasterShip</wcl:hasURI>
        <wcl:hasLabel rdf:resource="#label_2" />
        <wcl:hasClassification rdf:resource="http://movies.example.org/ratings#Teen" />
      </rdf:Description>

    </wcl:rules>

  </wcl:Ruleset>

  <wcl:ContentLabel rdf:ID="label_1">
    <ex:violence>mild</ex:violence>
    <ex:peril>mild</ex:peril>
    <ex:language>none</ex:language>
    <ex:sex>mildInnuendo</ex:sex>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_2">
    <ex:violence>mild</ex:violence>
    <ex:peril>frequent</ex:peril>
    <ex:language>occasional</ex:language>
    <ex:sex>occasional</ex:sex>
  </wcl:ContentLabel>

</rdf:RDF>

Example 7: Showing the use of broad classifications as well as granular descriptions

Example 7 shows that, by default, everything on resources.example.com is classified as "PG" by movies.example.org. The rule states, however, that if the URI matches the Perl 5 regular expression disasterShipthen the resource has been classified as "Teen." and that a full description is provided by label 2.The wcl:hasClassification property MAY either be included in a rule as shown or in a cLabel.

6.1.7 Inclusions

It is recognized that in providing detailed descriptions of resources, differences between those descriptions may be relatively slight. This has the potential to lead to a great deal of repetition between labels. For this reason, a wcl:include is provided, as exemplified below.

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:wcl="http://www.w3.org/2004/12/q/contentlabel#"
  xmlns:ex1="http://labelingauthority.example.org/vocabulary#"
  xmlns:ex2="http://morelabels.example.org/vocabulary#">

  <wcl:Ruleset>
    <wcl:hasScope>
      <wcl:Hosts>
        <wcl:host>resources.example.com</wcl:host>
      </wcl:Hosts>
    </wcl:hasScope>
    <wcl:hasDefaultLabel rdf:resource="#label_1" />
    <wcl:rules rdf:parseType="Collection">

      <rdf:Description>
        <wcl:hasURI>sectionA</wcl:hasURI>
        <wcl:hasLabel rdf:resource="#label_2" />
      </rdf:Description>

    </wcl:rules>

  </wcl:Ruleset>

  <wcl:ContentLabel rdf:ID="label_1">
    <wcl:include rdf:resource="#block_A" />
    <wcl:include rdf:resource="#block_C" />
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="label_2">
    <wcl:include rdf:resource="#block_B" />
    <wcl:include rdf:resource="#block_C" />
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="blockA">
    <ex1:color>Green</ex1:color>
    <ex1:tp>20</ex1:tp>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="blockB">
    <ex1:color>Red</ex1:color>
    <ex1:tp>10</ex1:tp>
  </wcl:ContentLabel>

  <wcl:ContentLabel rdf:ID="blockC">
    <ex2:shape>Square</ex2:shape>
    <ex2:material>Glass</ex2:material>
  </wcl:ContentLabel>

</rdf:RDF>

Example 8. Showing the use of inclusions to avoid repeating descriptions

As can be seen in example 8, we define three blocks of description. Block C describes shape and material whereas blocks A and B are the ones we saw in earlier examples. By including these blocks we can see that, by default, all resources at resources.example.com are square, made of glass, green and 20% transparent. Those in section A, however, are still square and made of glass but are now red and 10% transparent.

NB. WCL makes it a condition that a given wcl:Ruleset can only define one default label and this can be overridden by one other cLabel at a time. This does not prevent multiple Rulesets defining multiple labels for the same resources.

To Do

  1. Extend Scope discussion and rules in light of Grouping discussion
  2. Write in actual schema description
  3. Include clabel metadata vocab definitions
  4. Show an extension - suggest use RDF-CL's frequent/occasional scenes stuff
  5. All the stuff we've forgotten so far...

6.2 Other methods

RSS/Atom

Steve Ives has sent this:

<?xml version="1.0"?>
<rss>
   <channel>
      <title>Mobilestreams</title>
      <link>http://www.tastefultunes.com/</link>
      <description>Find tasteful ringtones at this site.</description>

      <!-- use one of these for crawl/refresh/frequency -->
      <ttl>1440</ttl>
      <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
      <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>

      <!-- future idea: define a collection of default values for
           item fields up top, saves repeating prices etc -->

      <!-- the tags below start off from RSS, but then
           mix in tag names from Dublin Core and iTunes RSS.
           Namespacing could be added, but has been left out
           to keep the appearance more simple. -->

           
      <!-- list of items -->

      <item>
         <title>Crazy</title>
         <link>URL to page that will provide the item (buy link)</link>
         <description>Optional description of item</description>

         <!-- date when the item was added/released,
              could help annotate a search result with
              "new" if its recently published -->
         <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>

         
         <!-- unique ID for the item to assist in comparing new
              crawls of this file from the previous crawl. 
              Doesn't need to be a URL, but using a URL helps
              ensure uniqueness, but any string will do.
               -->
         <guid>http://www.tastefultune.com/catalog.html#item573</guid>

         <!-- 'type' is dublin core, and we could spec a starting
              vocabulary, e.g.
                 music
                 realtone
                 polyphonic
                 video ringtone
                 video
                 game
                 wallpaper
                 theme
                 -->
         <type>music</type>

         <!-- 'creator' is DC,
              'author' is itunes (with podcasts in mind) -->
         <creator>Grarls Barkley</creator>

         <!-- 'rights' is DC -->
         <rights>Copyright 2006 Grarls Barkley</rights>
         
         <!-- borrow the image tag idea from itunes -->
         <image href="http://www.tastefultunes.com/images/item573"/>
         
         <!-- 'format' is dublin core, but DC doesn't spec
              the contents. So we could propose IMT, or "auto" -->
         <format>audio/mpeg</format>

         <!-- borrow duration if wanted from itunes -->
         <duration>180</duration>
         
         <!-- scope for many other properties of the asset, e.g.
            dimensions
            color depth
            frame rate
            etc
            -->

         <!-- borrow category from itunes, maybe don't nest the
              levels like itunes does.
              Need a vocabulary for these categories.
              -->
         <category>Alternative</category>


         <!-- price could be a simple string, including
              currency symbol, idea is just to repeat the
              string in any search result rather than try to
              understand it.
              Pricing needs to be able to address all kinds
              of options, e.g. subscriptions, multibuys,
              conditional discounts, first time purchases.
              A plain string might be the easiest way to
              leave this open - afterall, it's the owners
              site that will be performing the transaction. -->
         <price>$11.99</price>

         
         <!-- One problem still to address: how to handle multiple instances of the same item, but in different formats. Writing a script to build this file from a database may need logic to spot this. Yahoo are proposing media groups, where each different version is it's own <item> but has a tag that declares itself part of a group. Might be better to instead list the available formats inside the one item tag, but this is a bit (not much) harder to generate with a script. 
            However, if this version of the system assumes the target site will do the handset type resolution, then don't need to catalog the type information, but extraction script will still need to list one item per collection of formats that item is available in. -->
      </item>

      <item>
        ....
      </item>

      ....
      
  </channel>
</rss>

Steve also notes areas for future work

Need to do the same for Atom

Kjetil's stuff on XPath

Pantelis's stuff on microformats here

7 Glossary

The following terms are used throughout this report. Definitions have been collected from W3C glossaries where possible and provided a priori where necessary.

Assertion Any expression which is claimed to be true. [W3C definition source]

Authenticate, (n. authentication) To provide evidence that assertions made in a cLabel, cLabel metadata or a certificate are the authentic view of the entity that created them. Such evidence will typically be acquired by direct communication with that entity.

Certificate A cLabel containing assertions about the veracity of claims made in another cLabel.

Certification The process of verification of claims and the creation of a certificate.

Claim An assertion whose truth can be assessed by an independent party.

Content Label, cLabel A set of assertions made using one or more vocabularies to describe a resource or group of resources.

Content provider An entity (individual, organization or automaton) that provides resources in response to requests, whether or not the resource was created by that entity.

cLabel metadata Data about a content label. Typically this will include who created the cLabel, when it was created and for how long it is valid etc. cLabel metadata is itself a cLabel.

Descriptor An aspect of a resource about which it is possible to make assertions. For example, color, size and shape. A descriptor becomes a vocabulary term when it is associated with possible values.

Expression An instance of a vocabulary term and its value.

Information resource A resource which has the property that all of its essential characteristics can be conveyed in a message. [W3C definition source]

Labeling Authority (acronym LA) An organization that provides infrastructure for the generation and authentication of content labels.

Resource Anything that might be identified by a URI. [W3C definition source]

Resource creator The individual or organization that created the resource.

Schema (pl., schemata) A document that describes an XML or RDF vocabulary. Any document which describes, in a formal way, a language or parameters of a language.[ W3C definition source]

Trustmark A sign (machine processable and/or human perceivable) that a certificate has been issued.

Valid A cLabel is valid if it has an associated schema or schemata and if it complies with the constraints expressed therein. [Adapted W3C definition]

Verification The process of assessing the correctness of claims.

Vocabulary A collection of vocabulary terms, usually linked to a document that defines the precise meaning of the descriptors and the domain in which the vocabulary is expected to be used. When associated with a schema, attributes are expressed as URI references. [This definition is an amalgam of those provided in Composite Capability/Preference Profiles (CC/PP): Structure and Vocabularies 1.0 and OWL Web Ontology Language Guide.]

Vocabulary term An attribute that can describe one or more resources using a defined set of values or data type. Attributes may be expressed as a URI reference. See also descriptor and expression.

Well-formed Syntactically legal. [W3C definition source]

8 Links and references

RDF
http://www.w3.org/RDF
QUATRO
http://www.quatro-project.org/
SIP
http://europa.eu.int/saferinternet
RDF-CL
http://www.w3.org/2004/12/q/doc/content-labels-schema.htm
[SPARQL]
SPARQL Query Language for RDF

9 Acknowledgements

The editors acknowledge significant written contributions from:


Appendix 1

The use cases

Use Case 1: Profile matching

The original use case given in the charter has been simplified by reducing the number of essential actors to three:

One can imagine a range of scenarios with very similar characteristics that amount to "sub-use cases."

Sub use case 1A: END USER discovers content appropriate to their device ["MobileOK"]

Diagrammatic representation of use case 1A

Fig 1. Diagrammatic version of sub-use case 1A.

  1. END USER visits portal
  2. END USER's device profile is extracted with reference to a separate metadata store
  3. END USER searches for a topic of interest.
  4. PORTAL PROVIDER matches END USER's device profile with contentprofiles provided by CONTENT PROVIDER.
  5. PORTAL PROVIDER provides search results matching this topic.
  6. PORTAL PROVIDER filters results based on the metadata encoded in the content with regard to the "mobile friendliness" of the content/presentation in question and the known properties of the device profile according to business rules.

Sub use-case B: END USER discovers content appropriate to their age-group ["Child Protection"]

Diagrammatic representation of use case 1B

Fig 2. Diagrammatic version of sub-use case 1B.

  1. END USER visits portal
  2. END USER's user profile is extracted from a repository, perhaps the portal's own.
  3. END USER searches for a topic of interest.
  4. PORTAL PROVIDER matches END USER's age with content profiles provided by CONTENT PROVIDER.
  5. PORTAL PROVIDER provides search results matching this topic.
  6. PORTAL PROVIDER filters results based on the metadata encoded in the content with regard to the "child friendliness" of the content/presentation in question and the known age of the user according to local business rules.

Use case 2: Trustmark Scheme operator to content portal

The Example Trustmark Scheme reviews online traders, providing a trustmark for those that meet a set of published criteria. The scheme operator wishes to make its trustmark available as machine readable code as well as a graphic so that content aggregators, search engines and end-user tools can recognize and process them in some way.

The trustmark operator maintains a database of sites it has approved and makes this available in two ways:

First, the labelled site includes a link to the database. This can be achieved in a variety of ways such as an XHTML Link tag, an HTTP Response Header or even a digital watermark in an image. A user agent visiting the site detects and follows the link to the trustmark scheme's database from which it can extract the description of the particular site in real time.

Secondly, the scheme operator makes the full database available in a single file for download and processing offline.

Since the actual data comes directly from the trustmark scheme operator, it is not open to corruption by the online trader and can therefore be considered trustworthy to a large degree. To reduce the risk of spoofing, however, the data is digitally signed.

Use case 3: Website to end-user

Mrs Chaplin teaches 7 year olds at her local school. An IT enthusiast, she makes her teaching materials available through her personal website. She adds metadata to her material that describes the subject matter and curriculum area. In order to gain wider trust in her work she submits her site for review by her local education authority and a trustmark scheme. Both reviewers offer Mrs Chaplin a digitally signed, machine-readable version of their trustmark that she can add to her site. She merges these into a single pool of metadata to which she adds content descriptors from a recognized vocabulary that declare the site to contain no sex or violent content. She adds her own digital signature to the metadata. The set of digital signatures allow user-agents to identify the origin of the various assertions made. As in use case 2, links from the content itself point to this metadata.

Since the metadata is on the website itself, user agents are unlikely to take the assertions made in the metadata at face value. Unlike the trustmark operator, the local authority does not operate a web service that can support the label, it does, however, digitally sign its labels and publishes its public key on its website. This can be used to verify that it is indeed the local education authority that issued the relevant data in the label.

Separately, a user-agent can interrogate the trustmark operator's database in real time to check whether Mrs Chaplin is authorized to make the assertions relevant to their namespace. Furthermore, the use of a recognized vocabulary for the content description means that a content analyser trained to work with that vocabulary can give a probabilistic assessment of the accuracy of the relevant data.

Taken together, these multiple sources of data can provide confidence in the quality of the content and the local authority trustmark which is not directly testable. The multiple data sources may be further supported by recognising that Mrs Chaplin's work is cited in many online bookmarks, blog entries and postings to education-related message boards.

Use Case 4: Rich Metadata for RSS/ATOM

Dave Cook's website offers reviews of children's films and the site is summarized in both RSS and ATOM feeds. Most of the films reviewed have an MPAA rating of G and/or British Board of Film Classification rating of U. This is declared in a rating for the channel as a whole. However, Dave includes reviews of some films rated PG-13 or 12 respectively which is declared at the item level and overrides the channel level metadata.

The actual rating information comes from an online service operated by the relevant film classification board itself and is identified using a URL and human-readable text. The movie itself is identified by either an ISAN number or the relevant Internet Movie Database entry ID number. As with use case 2, trust is implicit given the source of the data, which is indicated by a link to Dave's site's policy.

Separately, Fred combines Dave Cook's and other review feeds to provide alternative reviews of the movies by transforming the ATOM feeds into RDF and creating an aggregate view using SPARQL queries.

Use Case 5: MLK and the KKK

Fred operates an antiracism education site which aggregates and curates content from around the Web. Fred wants to label the resources that he aggregates such that educational and other institutions may harvest the resources and associated commentary and metadata automatically for reuse within their instructional support systems, etc.

One of the ways in which Fred wants to curate resources is to say about them that they are pedagogically useful but politically noxious. For example, some sites on the Web make claims about Martin Luther King, Jr that are motivated by a racist ideology and are historically indefensible. Fred's vocabulary allows him to claim that such resources are pedagogically useful for purposes of analysis, but that they are otherwise suspicious and should only be consumed by students in an age-appropriate manner or with appropriate supervision, etc. In other words, Fred needs to be able to make sharply divergent claims about resources: (1) that they are noteworthy, and (2) that they are, from his perspective, dangerous or noxious or troublesome.

Use Case 6: Scalar Classification

A company named Advance Medical Inc. reviews medical literature on the Web based on a range of quality criteria such as effectiveness and research evidence. The criteria may be changed according to current scientific and professional developments. The review process leads to literature being classified as belonging to one of 5 levels as follows.

The company produces label data that declares the classification level value and provides a summary of each document. The label data is stored in a metadata repository which can be accessed via the Web.

M.D. Smith uses the label data in the repository to make decisions about heath care for specific clinical circumstances.

Requirements

The following requirements have been approved by the group.

  1. It must be possible to group resources and to make assertions that apply to the group as a whole (This is fundamental to all use cases)
  2. It must be possible to self-label (use cases 2 - 4)
  3. To provide as complete a description as possible, labels must be able to contain unambiguous assertions using more than one vocabulary (all use cases, especially 3)
  4. It must be possible for a content provider to make reference to third party labels (use case 2)
  5. It must be possible to make assertions about the accuracy of claims made in a label (use case 2)
  6. The system must be readily usable within a commercial workflow, allowing a content provider to apply metadata to a large number of resources in one step and to separate the activity of labelling from that of content creation, where desired (use case 1).
  7. The system must support a concept of default and override metadata. The mechanism that is used to determine where overrides apply should be based on the full concept of a URI rather than, for example, just a web URL. (Use case 1, 2, 4)
  8. It should be possible to ascertain unambiguously who created the label, using techniques such as digital signatures, S/MIME etc. (use cases 2, 3 and perhaps 5)
  9. It must be possible for a labeling organization to make all its labels available as a single database (use case 2)
  10. It should be possible to include assertions from an unlimited number of vocabularies in a single content label. Assertions from each vocabulary may be subject to its own verification mechanism (use case 3)
  11. Labels should support a human-readable summary as well as the machine-readable code (all).
  12. Labels should validate to formal published grammars (all)
  13. It must be possible to encode labels in a compact/efficient form (all)
  14. It must be possible to identify whether labels are self-applied or created by a third party. (use case 2)
  15. It must be possible to discover a feedback mechanism for reporting false claims (all, especially use case 2)
  16. It must be possible to associate labels with a 'time to live' and/or 'expiry date' (all, especially user case 2)
  17. It must be possible to discover the date and time when a label was last verified and by whom. (all, especially use case 2)
  18. It must be possible to describe the process by which data in labels is to be verified (use case 3)

Although not a testable requirement, the group has further resolved the principle that adding labels to resources should be easy and intuitive. It is recognized that this is likely to be made so through implementation but the design of the system should nonetheless be mindful of the principle (use case 3).