[contents]


Abstract

This document describes the schema of the Evaluation and Report Language (EARL) 1.0. The Evaluation and Report Language is a standardized format to describe test results. The primary motivation for developing this language is to facilitate the exchange of test results between Web accessibility evaluation tools in a vendor neutral and platform independent format. It will also provide reusable vocabulary for generic Web quality assurance and validation purposes. While this document focuses on the technical details of the specification, a companion document describes the motivations for EARL and provides a tutorial introduction to its use. [Editor's note: link EARL Guide once available]

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 current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This is a working group internal draft of the schema for the Evaluation and Report Language (EARL) 1.0. Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This Working Draft is expected to be published and maintained as a W3C Recommnedation after review and refinement. The ERT Working Group encourages feedback about this Working Draft by Web developers and researchers with interest in software supported evaluation and validation of Web sites. Please send comments to the mailing list of the Evaluation and Repair Tools Working Group (ERT WG). The archives for this list are publicly available.

This document was produced under the 5 February 2004 W3C Patent Policy. The Working Group maintains a public list of patent disclosures relevant to this document; that page also includes instructions for disclosing [and excluding] a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy.

This document has been produced as part of the W3C Web Accessibility Initiative (WAI). The goals of the Evaluation and Repair Tools Working Group (ERT WG) are discussed in the Working Group charter. The ERT WG is part of the WAI Technical Activity.


Table of Contents

  1. Introduction
  2. Core Vocabulary
  3. Extensibility
  4. Conformance
  5. Acknowlegements
  6. References

Appendices


1. Introduction

This section is informative.

Evaluation and Report Language (EARL) is a language to express test results. Test results include bug reports, test suite evaluations, and conformance claims. The test subject might be a Web site, an authoring tool, a user agent or some other entity. Thus, EARL is flexible. It enables any person, entity, or organization to state test results for any thing tested against any set of criteria.

Stating test results in EARL creates a variety of opportunities. The data can be

A companion document to this specification is intended to provide more introductory material and explanation of the use cases for EARL.

[Editor's note: this section will be synchronized with the EARL Guide as it is being developed.]

1.1. Structure of Test Results

EARL statements contain the following information:

The context information
This can include information about who or what ran the test, the date the test was run, and other information about the test was performed.
The test subject
This may include: Web pages, tools (e.g. accessibility checkers, validators), and user agents
The result
Did the test subject pass or fail the test? How certain can we be?
Test criteria
What are we evaluating the test subject against? This could be a specification, a set of guidelines, a test from a test suite, or some other test case.

Prose examples that demonstrate the above structure:

Example 1: a person carries out a manual evaluation of a Web page against a test criteria

Context
Mary Thompson claims on the 17th December
Test Subect
A Web page at http://www.example.org/mypage
Test Result
Passed
Test performed
Checkpoint 1.1 of the Web Content Accessibility Guidelines 1.0

Example 2: an evaluation tool carries out automated evaluation of a Web page against a test criteria

Context
The W3C Markup Validator claims as of 2004-04-14T14:00:04+1000
Test Subject
The XHTML returned from a GET request to the URI http://www.example.org/yourpage
Test Result
Failed
Test Performed
The validity of the XHTML

Conventions Used in this Document

There are many issues noted which need to be resolved in future drafts. Comments are specifically requested on any of these issues, which are marked as follows:

[Editor's note: there are some items that the working group has discussed but not reached consensus, and others that are known issues which have not yet been discussed]

Must, Should, May, should be used in accordance with RFC 2119 [MSM]

Where RDF terms are used in their abbreviated form (e.g. Assertion or foaf:Person), if no namespace is provided the term is in the EARL namespace. The following prefixes are used in examples throughout this document

earl
The EARL namespace http://www.w3.org/WAI/ER/EARL/nmg-strawman# which is described in this document
foaf
The FOAF namespace http://xmlns.com/foaf/0.1/ which is also where the terms are described [FOAF]
dc
The Dublin Core elements namespace http://purl.org/dc/elements/1.1/ whose terms are described in [DC]
dct
The Dublin Core terms namespace http://purl.org/dc/terms/ also described at [DCT]
rdf
The RDF namespace http://www.w3.org/1999/02/22-rdf-syntax-ns# described in [RDF]

1.2. An RDF Vocabulary

[Editor's note: should this be normative?]

EARL is defined as an RDF vocabulary. The Resource Description Framework (RDF) [RDF] is a general-purpose language for describing information in a way that is machine-understandable.

EARL is an RDF vocabulary used to make statements about how a resource performed against a test. In common with other RDF it assumes that other voacbularies will be used as appropriate.

For more information on RDF, please refer to the following references:

2. Core Vocabulary

This chapter is normative.

Namespace

The namespace for EARL as specified in this draft is http://www.w3.org/WAI/ER/EARL/nmg-strawman#.

[Editor's note: Versioning terms during the process of developing the vocabulary is an issue the group is working on. It is possible that a new namespace will be used for a final version of the vocabulary]

2.1. Assertion

An assertion is a statement about the results of performing a test. This is the fundamental part of an EARL statement.

An assertion must have at least the following properties:

Asserted By
The assertion must be asserted by an assertor. The property assertedBy is defined by this specification.
Subject
The thing that is being tested for conformance to some requirement. The property subject is defined by this specification.
Test Case
The requirement that is being tested. The property testCase is defined by this specification.
Result
The result of the test - whether the subject passes or fails the test case (or there is some other result). The property result is defined by this specification.
Mode
How the test was performed - as an automated computer process, by a human making a subjective judgement, or otherwise. The property mode is defined by this specification.

Example 3: instance of an assertion expressed as an RDF/XML fragment

<earl:Assertion rdf:about="http://example.org/#assertion-1">
  <earl:subject rdf:resource="http://example.org/#someID02495"/>
  <earl:result rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#pass"/> 
  <earl:mode rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#manual"/> 
  <earl:testcase rdf:resource="http://example.org/#tc-1"/>   
  <earl:assertedBy rdf:resource="http://example.org/#assertor123" />
</earl:Assertion>

2.2. Assertor

An assertor states the results of a test (i.e. an assertor asserts and assertion). An assertor must be either a person or a tool of class Assertor which is defined by this specification. An assertor must belong to one of the following types:

Person
The Assertor is a human being. This uses the FOAF vocabulary term Person for a person. There should be identifying information including a name, and a uniquely identifying property such as email address or an encrypted email address. Again, the properties name, mbox and mbox_sha1sum are defined by FOAF [FOAF].
[Editor's note: the use of FOAF is subject to review of the stability of these terms.]
[Editor's note: the current requirements on properties to identify the tester are subject to revision.]
Person using software
A person may have made their evaluation with the help of a tool. In this case EARL provides PersonUsingTool class, and the usingTool and user properties to identify the people and tools concerned.
Software
The Assertor is software, such as a black box testing tool of some sort or an evaluation and repair tool. Software must have a title (using the Dublin Core property title) and may have version information (using Dublin Core terms)
[Editor's note: the current requirements on properties to identify a tool are subject to revision.]
[Editor's note: Tool used to be a sub class of Assertor. The term Tool has been deprecated in favour of Software, which may also be a Test Subject.]

The assertor in the following example is a person using software. Their personal email address is used to uniquely identify them, in both unencrypted and encrypted forms (it is not necessary to use both of these methods, but it is permitted). The test was done using a tool called "My Favourite Tool".

Example 4: instance of an assertor expressed as an RDF/XML fragment

<earl:PersonUsingTool rdf:about="http://example.org/#assertor123">
  <earl:user>
    <foaf:Person>
      <foaf:name>Bob B. Bobbington</earl:name>
      <foaf:mbox rdf:resource="mailto:bob@example.org"/>
      <foaf:mbox_sha1sum>1a9daad476f0158b81bc66b7b27b438b4b4c19c0</foaf:mbox_sha1sum>
    </foaf:Person>
  </earl:user>
  <earl:usingTool>
    <earl:Software rdf:about="http://example.com/toolshop/MFT#20050101b2">
      <dc:title xml:lang="en">My Favourite Tool</dc:title>
    </earl:Software>
  </earl:usingTool>
</earl:Assertor>

Test Subject

The class of things that have been evaluated. It needs to be qualified with some type of information in order to make it unambiguous. You may use an unambiguous property, or unambiguous constellation of properties.

Different Test Subjects

Software
A piece of software such as an authoring tool, browser, or evaluation and repair tool.
Web Content
Information on the World Wide Web. This should include enough information to identify the content actually tested, taking account of content type and language negotiation and similar factors that can change the content actually served.

Example 5: instance of an assertion expressed as an RDF/XML fragment

<earl:Software rdf:about="http://example.org/#someID02495"/>
  <dc:title xml:lang="en">TestThisTool version 4</dc:title> 
  <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#gDate">2005-06-25</dc:date> 
</earl:Software>

Test Result

The result of the test. This must have a validity property, whose value must be one of the Validity Levels

or a customised subClass of these.

It may also include a description, using the Dublin Core description property. This is meant to be human-readable text or markup (for example HTML included as an XML Literal). This can be inserted by a tool or by a human evaluator.

There is a confidence property which allows an evaluator to assert their confidence in the result. This may be used where a tool wants to assert that it has difference levels of confidence about two possible results (for example low confidence that a test has been passed, but also high confidence that it is not applicable.

[Editor's note: there are currently value specified as confidence values, of high, medium, and low, but these are under discussion and may be removed or significantly revised since it is not yet clear how to ensure that they can be used interoperably]

The following example shows a result with a validity of fail and a description of the problem in XHTML:

Example 6: instance of an assertion expressed as an RDF/XML fragment

<earl:result rdf:parseType="Resource">
  <earl:validity rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#fail"/>
  <dc:description rdf:parseType="Literal">
    <div xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
      <p>The <code>table</code> element is not allowed to appear
        inside a <code>p</code> element</p>
    </div>
  </dc:description>
</earl:result>

Test Case

A Test Case is a test - usually one that can either be passed or failed. This may include many things such as validation requirements, code test cases, checkpoints from guidelines such as Web Content Accessibility Guidelines 1.0 [WCAG10], etc. These should be identified with a URI.

A Test Case may be a compound test, or may be a part of a larger compound test. These relations can be described using Dublin Core's hasPart or isPartOf properties.

[Editor's note: This class is included for convenience, since it allows various useful properties to be described in simple standard RDF. The working group will deprecate this class if they find an appropriate replacement from a language designed for describing test cases, something which is beyond the scope of the current specification.]

The following example uses the Test Case class to identify a test case for an Assertion.

Example 7: instance of an assertion expressed as an RDF/XML fragment

<earl:testCase>
  <earl:Testcase rdf:about="http://example.org/#tc-1">
    <dc:title xml:lang="en">A sample test</dc:title>
  </earl:Testcase>    
</earl:testcase>

The value of the testCase property is by definition a Test Case, so the above example can be shortened to:

Example 8: instance of an assertion expressed as an RDF/XML fragment

<earl:testCase rdf:resource="http://example.org/#tc-1" />

Test Mode

The value of the mode property must be exactly one test mode (or subclass of a test mode - see extensibility for more explanation). The modes defined are

Manual (earl:manual)
Where the test was performed based on a person's judgement. This includes the case where that judgement was aided through the use of a tool, although this should be noted with the usingTool property.
Automatic (earl:automatic)
Where a computer program or similar has done an automated test and generated a result without human assistance.
Heuristic (earl:heuristic) [Editor's note: this property is under discussion and may be changed]
This property was designed to cover assertions which are made by inference, for example based on several existing test results.

Example 9: instance of an assertion in manual mode

<earl:Assertion rdf:about="http://example.org/#assertion-1">
  <earl:mode rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#manual"/> 
</earl:Assertion>

3. Extensibility

Because it is written as an RDF vocabulary EARL is extensible; that is, it is simple to add new terms or otherwise modify them to fit your own specific application demands more closely. EARL was designed to be extended. You may think of it as a core set of structures and terms. In addition, the working group expects to work on at least a couple of areas and extend the specification before publishing it as a Recommendation.

[Editor's note: there will be examples of extending EARL provided in a later draft]

4. Conformance

The EARL vocabulary uses OWL [OWL] to provide formal constraints on what is valid EARL.

[Editor's note: the topic of conformance requirements beyond those implicit in the vocabulary definition will be discussed, and results will be incorporated into a future draft.]

5. Acknowledgements

[Editor's note: needs updating]

EARL is the result of the work of a great many people. In particular important contributions to the specification have been made by Shadi Abou-Zahra, Chrisoula Alexandraki, Myriam Arrue, Gabriele Bartolini, Giorgio Brajnik, Dan Brickley, Karl Dubost, Nick Gibbins, Al Gilman, Dominique Hazael-Massieux, Nadia Heninger, Ian Hickson, Carlos Iglesias, Leonard Kasday, Nick Kew, Johannes Koch, Jim Ley, William Loughborough, John Lutts, Charles McCathieNevile, Libby Miller, Tom Martin, Dave Pawson, Eric Prud'hommeaux, Pierre Queinnec, Chris Ridpath, Romain Roure, Aaron Swartz, Olivier Thoreaux, Paul Walsh and Rob Yonaitis.

The editors would particularly like to thank Sean B Palmer and Daniel Dardailler, who edited EARLier versions of EARL specifications.

The editors apologise for any names left out of this list, and will endeavour to rectify any errors noted in comments.

6. References

[Editor's note: needs updating]

[DCT]
Dublin Core terms - DCMI. Available at ...
[EARL-Background]
EARL Background Material - Sean B. Palmer (2001)
[EARL-Imps]
EARL Implementations
[EVOLVE]
Evolvability - Tim Berners-Lee (1998)
[FOAF]
FOAF vocabulary definition - Dan Brickley et al. Available at http://xmlns.com/foaf/0.1/
[OWL]
Web Ontology Language -
[RDF]
Resource Description Framework (RDF) Model and Syntax Specification - Ora Lassila and Ralph R. Swick. (1999) W3C Recommendation.
[RDF-PRIMER]
RDF Primer - Frank Manola and Eric Miller (2002) W3C Working Draft.
[RDF-Schema]
RDF Vocabulary Description Language 1.0: RDF Schema - Dan Brickley, R.V. Guha. (2002) W3C Working Draft.
[RDF-XML-DIFFS]
Why RDF model is different from the XML model - Tim Berners-Lee (1998)
[WCAG10]
Web Content Accessibility Guidelines 1.0 - Wendy Chisholm, Gregg Vanderheiden, Ian Jacobs. (1999) W3C Recommendation.

Appendix A: EARL 1.0 Schema

[Editor's note: We should make a schema available at the namespace URI, which includes OWL information on deprecated terms]

<?xml version="1.0" encoding='UTF-8'?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:earl="http://www.w3.org/WAI/ER/EARL/nmg-strawman#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xmlns:owl="http://www.w3.org/2002/07/owl#">

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion">
    <rdfs:label xml:lang="en">An assertion</rdfs:label>
    <rdfs:comment xml:lang="en">Parent node that contains all parts of an assertion</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#assertedBy"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#mode"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#result"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#subject"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#testcase"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#assertedBy">
    <rdfs:label xml:lang="en">asserted by</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertor"/>
  </rdf:Property>
  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#result">
    <rdfs:label xml:lang="en">result</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestResult"/>
  </rdf:Property>
    <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#subject">
    <rdfs:label xml:lang="en">subject</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestSubject"/>
  </rdf:Property>
  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#testcase">
    <rdfs:label xml:lang="en">testcase</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestCase"/>
  </rdf:Property>
  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#mode">
    <rdfs:label xml:lang="en">mode</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestMode"/>
  </rdf:Property>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertor">
    <rdfs:label xml:lang="en">Assertor Class</rdfs:label>
    <rdfs:comment xml:lang="en">Person or evaluation tool that claims assertions</rdfs:comment>
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:type="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Software"/>
      <owl:Thing rdf:type="http://www.w3.org/WAI/ER/EARL/nmg-strawman#PersonUsingTool"/>
      <owl:Thing rdf:type="http://xmlns.com/foaf/0.1/Person">
        <rdfs:subClassOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/name"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
              </owl:minCardinality>
          </owl:Restriction>
          <owl:Restriction>
            <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/mbox"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
              </owl:minCardinality>
          </owl:Restriction>
          <owl:Restriction>
            <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/mbox_sha1sum"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
              </owl:minCardinality>
          </owl:Restriction>
        </rdfs:subClassOf>
      </owl:Thing>
    </owl:oneOf>
  </rdfs:Class> 

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#usingTool">
    <rdfs:label xml:lang="en">Using the tool </rdfs:label> 
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#PersonUsingTool"/> 
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Software"/> 
  </rdf:Property>

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#user">
    <rdfs:label xml:lang="en">Using the tool </rdfs:label> 
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#PersonUsingTool"/> 
    <rdfs:range>
      <owl:Thing rdf:type="http://xmlns.com/foaf/0.1/Person">
        <rdfs:subClassOf rdf:parseType="Collection">
          <owl:Restriction>
            <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/name"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
              </owl:minCardinality>
          </owl:Restriction>
          <owl:Restriction>
            <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/mbox"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
              </owl:minCardinality>
          </owl:Restriction>
          <owl:Restriction>
            <owl:onProperty rdf:resource="http://xmlns.com/foaf/0.1/mbox_sha1sum"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
              </owl:minCardinality>
          </owl:Restriction>
        </rdfs:subClassOf>
      </owl:Thing>
    </rdfs:range>
  </rdf:Property> 

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Software">
    <rdfs:label xml:lang="en">Software Tool</rdfs:label>
    <rdfs:comment xml:lang="en">A tool that can perform tests or be the subject of testing</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/title"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/terms/hasVersion"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestCase">
    <rdfs:label xml:lang="en">Test Case</rdfs:label>
    <rdfs:comment xml:lang="en">Test case against which subjects are tested</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/terms/hasPart"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/terms/isPartOf"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestMode">
    <rdfs:label xml:lang="en">Test Mode</rdfs:label>
    <rdfs:comment xml:lang="en">Mode in which tests were conducted</rdfs:comment>
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#manual">
        <rdfs:label xml:lang="en">Manual Testing Mode</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed by a human</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#automatic">
        <rdfs:label xml:lang="en">Automatic Testing Mode</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed by a tool</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#heuristic">
        <rdfs:label xml:lang="en">Heuristic Testing Mode</rdfs:label>
        <rdfs:comment xml:lang="en">Result was derived from other results</rdfs:comment>
      </owl:Thing>
    </owl:oneOf>
  </rdfs:Class>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestResult">
    <rdfs:label xml:lang="en">Test Result</rdfs:label>
    <rdfs:comment xml:lang="en">Result from conducting test cases on subjects</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/description"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#confidence"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#validity"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#confidence">
    <rdfs:label xml:lang="en">Confidence Level Property</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestResult"/> 
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#ConfidenceLevel"/> 
  </rdf:Property>
  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#validity">   
    <rdfs:label xml:lang="en">Validity Level Property</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestResult"/> 
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#ValidityLevel"/> 
  </rdf:Property>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#ValidityLevel">
    <rdfs:label xml:lang="en">Validity Level</rdfs:label>
    <rdfs:comment xml:lang="en">Nominal value of the result</rdfs:comment>
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#pass">
        <rdfs:label xml:lang="en">Pass</rdfs:label>
        <rdfs:comment xml:lang="en">Test passed</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#fail">
        <rdfs:label xml:lang="en">Fail</rdfs:label>
        <rdfs:comment xml:lang="en">Test failed</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#cannotTell">
        <rdfs:label xml:lang="en">Can Not Tell</rdfs:label>
        <rdfs:comment xml:lang="en">Outcome of the test is uncertain</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#notApplicable">
        <rdfs:label xml:lang="en">Not Applicable</rdfs:label>
        <rdfs:comment xml:lang="en">Test is not applicable to the subject</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#notTested">
        <rdfs:label xml:lang="en">Not Tested</rdfs:label>
        <rdfs:comment xml:lang="en">Test has not been carried out</rdfs:comment>
      </owl:Thing>
    </owl:oneOf>
  </rdfs:Class>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#ConfidenceLevel">
    <rdfs:label xml:lang="en">Confidence Level</rdfs:label>
    <rdfs:comment xml:lang="en">Level of confidence in the given result</rdfs:comment>
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#high">
        <rdfs:label xml:lang="en">High Confidence</rdfs:label>
        <rdfs:comment xml:lang="en">Validity of the result is certain</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#medium">
        <rdfs:label xml:lang="en">Medium Confidence</rdfs:label>
        <rdfs:comment xml:lang="en">Validity of the result is not sure</rdfs:comment>
      </owl:Thing>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#low">
        <rdfs:label xml:lang="en">Low Confidence</rdfs:label>
        <rdfs:comment xml:lang="en">Validity of the result is questionable</rdfs:comment>
      </owl:Thing>
    </owl:oneOf>
  </rdfs:Class>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestSubject">
    <rdfs:label xml:lang="en">Test Subject</rdfs:label>
    <rdfs:comment xml:lang="en">Subject of the assertion</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/terms/hasPart"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/terms/isPartOf"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/date"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:minCardinality>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
          </owl:maxCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/title"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/description"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#WebContent">
    <rdfs:label xml:lang="en">Web Content</rdfs:label>
    <rdfs:comment xml:lang="en">Subjects that are available on the Web</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#httpRequest"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#httpResponse"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/location"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
      <owl:Restriction>
        <owl:onProperty rdf:resource="http://purl.org/dc/elements/1.1/format"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0
          </owl:minCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </rdfs:Class>

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#httpRequest">
    <rdfs:label xml:lang="en">http-request</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#WebContent"/> 
  </rdf:Property>

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#httpResponse">
    <rdfs:label xml:lang="en">http-response</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#WebContent"/> 
  </rdf:Property>
</rdf:RDF>

Appendix B: EARL 1.0 Terms

The following terms are defined by this specification:

Classes in the EARL namespace
Class URI Label Required properties Allowable types Optional properties
http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion Assertion
  • earl:subject
  • earl:result
  • earl:mode
  • earl:testcase
  • earl:assertedBy
http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertor Assertor
  • earl:Software
  • earl:PersonUsingTool
  • foaf:Person
http://www.w3.org/WAI/ER/EARL/nmg-strawman#PersonUsingTool
  • earl:user
  • earl:usingTool
http://www.w3.org/WAI/ER/EARL/nmg-strawman#Software Software tool dc:title dct:hasVersion
http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestCase Test case
  • dct:hasPart
  • dct:isPartOf
http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestMode Test mode
  • earl:manual
  • earl:automatic
  • earl:heuristic
http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestResult Test Result earl:validity
  • earl:confidence
  • dc:description
http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestSubject Test Subject dc:date
  • dct:hasPart
  • dct:isPartOf
  • dc:title
  • dc:description
http://www.w3.org/WAI/ER/EARL/nmg-strawman#WebContent Web Content
  • earl:httpRequest
  • earl:httpResponse
  • dc:location
  • dc:format
http://www.w3.org/WAI/ER/EARL/nmg-strawman#ValidityLevel Validity Level
http://www.w3.org/WAI/ER/EARL/nmg-strawman#ConfidenceLevel Confidence Level
http://www.w3.org/WAI/ER/EARL/nmg-strawman#high High Confidence
http://www.w3.org/WAI/ER/EARL/nmg-strawman#medium Medium Confidence
http://www.w3.org/WAI/ER/EARL/nmg-strawman#low Low confidence
http://www.w3.org/WAI/ER/EARL/nmg-strawman#pass Pass
http://www.w3.org/WAI/ER/EARL/nmg-strawman#fail Fail
http://www.w3.org/WAI/ER/EARL/nmg-strawman#notTested Not tested
http://www.w3.org/WAI/ER/EARL/nmg-strawman#cannotTell Cannot tell
http://www.w3.org/WAI/ER/EARL/nmg-strawman#notApplicable Not Applicable

[Editor's note: There should be more linking around the different parts of the spec - schema, terms table, etc.]

Properties in the EARL namespace
Term URI Label Domain Range
http://www.w3.org/WAI/ER/EARL/nmg-strawman#httpResponse HTTP response information earl:WebContent unspecified
http://www.w3.org/WAI/ER/EARL/nmg-strawman#httpRequest HTTP request information earl:WebContent unspecified
http://www.w3.org/WAI/ER/EARL/nmg-strawman#validity validity earl:TestResult earl:ValidityLevel
http://www.w3.org/WAI/ER/EARL/nmg-strawman#confidence confidence earl:TestResult earl:ConfidenceLevel
http://www.w3.org/WAI/ER/EARL/nmg-strawman#mode mode earl:Assertion earl:TestMode
http://www.w3.org/WAI/ER/EARL/nmg-strawman#usingTool using the tool earl:PersonUsingTool earl:Software
http://www.w3.org/WAI/ER/EARL/nmg-strawman#user user earl:PersonUsingTool foaf:Person
http://www.w3.org/WAI/ER/EARL/nmg-strawman#assertedBy asserted by earl:Assertion earl:Assertor
http://www.w3.org/WAI/ER/EARL/nmg-strawman#subject result earl:Assertion earl:TestResult
http://www.w3.org/WAI/ER/EARL/nmg-strawman#subject subject earl:Assertion earl:TestSubject
http://www.w3.org/WAI/ER/EARL/nmg-strawman#testcase test case earl:Assertion earl:TestCase

Appendix C. Semantic Changes

New terms

New terms have been introduced to the vocabulary, sometimes as replacements for deprecated terms that existed in EARLier drafts, sometime to introduce new funtionality

This draft

Software
This term replaces the deprecated Tool and is not a subclass of Assertor, so can be used to describe any type of tool.
PersonUsingTool
This term provides a class of Assertor which describes an evaluator whoes decision is assisted by a particular tool or tools.
usingTool, user
These are properties of a Person using a tool, designed to identify the people and tools concerned.
httpRequest, httpResponse
These are placeholder properties for describing WebContent

Deprecated terms

A number of terms have been deprecated, either in favour of terms from existing widely-used vocabularies, or because their use is somehow problematic. While this deprecation is provisional, no RDF has been published formally noting them as deprecated (for example through OWL). A quick guide to terms that have been provisionally deprecated:

This draft

format, reprOf
Both of these terms are deprecated in favour of a more comprehensive approach to describing Web content.
Tool
This term was deprecated in favour of the more generic Software class
UserAgent, platform
These terms were deprecated as they did not seem to be useful except in a very particular use case.
message
This term was deprecated in favour of the Dublin Core term description.
Person, name, email, contactInfo
These terms are currently deprecated in favour of equivalent terms from the FOAF vocabulary.

Working group change plans

The working group is considering several open issues which would lead to extending the current vocabulary before it reaches recommendation.

As well as issues noted in the draft, the following issues are under active consideration:

Evidence

A mechanism to provide further evidence used to make a claim. This could be a copy of the web content analysed for a particular test, or a rule describing how may tests are required to pass some compund test, and pointers to the individual results that together satisfy the rule.

Location

Within Web content, for the use case of testing accessibility, it is very valuable to point to the location(s) that cause the test to pass or fail. This is also true of software interfaces and various other kinds of subject. THe working group has agreed in principle to include a mechanism for recording this information in an EARL report, but has not yet developed or found the necessary terms.

HTTP transaction information

There are currently placeholder properties httpRequest and httpResponse for HTTP transaction information. The group expects to develop these further, either themselves or with an existing vocabulary.

Confidence

This is under review by the working group. It is not clear how the currently defined model can be used interoperably, and whether there is an alternative approch that would allow for a more interoperable statement of confidence in some results.

Appendix D: Document History

(see also appendix C Semantic Changes, which describes semantic changes to the terms in the vocabulary.

Differences between this draft and EARL 1.0 draft of 12 December 2002

Differences between 0.95 and 1.0 draft of 12 December 2002

[Editor's note: need to complete this section.]