This document describes the formal schema of the Evaluation and Report Language (EARL) 1.0. The Evaluation and Report Language is a standardized format to express 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 also provides reusable vocabulary for generic quality assurance and validation purposes. While this document focuses on the technical details of the specification, a companion document [Guide] describes the motivations for EARL and provides a tutorial introduction to its use.

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/.

The Evaluation and Repair Tools Working Group (ERT WG) encourages feedback about this document, Evaluation and Report Language (EARL) 1.0 Schema, by Web developers and researchers who have interest in software-supported evaluation and validation of Web sites. In particular, the group is looking for feedback about how robust and unambiguous the schema is, and how well it addresses use cases. Specific questions are also highlighted within the relevant sections of this document. Feedback on this draft should be sent to the Working Group's email list public-wai-ert@w3.org, whose archives are available, preferably before 14 january 2006, and in any case not after this draft is obsoleted by a new Editors' or W3C Working Draft. The editors hope to make this document obsolete with a replacement draft before the end of January 2006.

The purpose of the Evaluation and Report Language (EARL) 1.0 Schema is to define a common vocabulary to express test results. This document is an update for the previous EARL 1.0 Working Draft of 9 September 2005. It meets the requirements specified in the Requirements for the Evaluation and Report Language (EARL) 1.0, and incorporates change requests received since the September 2005 Working Draft, in particular implementing the decisions of the EARL Working Group at its face to face meeting in October 2005. While this document focuses on the technical details of the specification, a companion document [Guide] describes the motivations for EARL and provides a tutorial introduction to its use.

Please send comments to the mailing list of the ERT WG. The archives for this list are publicly available.

This is an Editors' Working Draft of the Evaluation and Report Language (EARL) 1.0 Schema. This document is intended to be published and maintained as a W3C Recommendation after review and refinement. 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 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 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 (Non-Normative)
  2. Core Vocabulary
  3. Extensibility
  4. Conformance


  1. EARL 1.0 Schema in RDF/XML
  2. EARL 1.0 Terms (Non-Normative)
  3. Document Changes (Non-Normative)
  4. References (Non-Normative)
  5. Contributors (Non-Normative)

1. Introduction (Non-Normative)

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

The Evaluation and Report Language (EARL) is a format 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 [Guide] to this specification provides more introductory material and explanation of the use cases for EARL.

1.1. Structure of EARL Results (Non-Normative)

EARL statements contain the following types of 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 can 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.

Mary Thompson claims on the 17th December
Test Subject
A Web page at http://www.example.org/mypage
Test Result
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.

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
Test Performed
The validity of the XHTML

1.2. Document Conventions and Audience

Editorial Comments (Non-Normative)

There are a niumber of known issues in this draft, that 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 that have not yet been discussed]

This subsection will be removed from the final version of the document, and editorial comments will have been resolved.

Audience of this document (Non-Normative)

This document is intended as a brief complete specification of the EARL 1.0 vocabulary. It assumes that the reader is familiar with the ideas of RDF and can read its XML serialisation as bare code. The assumed audience is developers who are implementing EARL in software or processes, or are seeking to understand the ideas, models, or properties and classes used in the EARL vocabulary. Readers who would like a more tutorial introduction to the language, with more explanation of its foreseen use cases, are referred to the EARL 1.0 Guide [Guide]. Readers who wish to understand more about RDF are advised to consider reading a general introduction, or reading the RDF Primer [RDF-PRIMER].

Requirement keywords

The key words must, required, should, may, and optional are used in accordance with RFC 2119 [RFC2119].


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]

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:

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

1.3. About RDF Vocabularies (Non-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 vocabularies will be used as appropriate.

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

2. Core Vocabulary

The EARL 1.0 specification defines an RDF Vocabulary that consists of classes and properties. This section describes the core vocabulary and gives brief examples of its usage. Later sections describe extensibility of EARL 1.0; and conformance to EARL 1.0.

2.1. Assertion

An Assertion is a statement about the results of performing a test. The earl:Assertion class relates the required instances of an Assertor, Test Subject, Test Requirement, and Test Result to a specific Assertion. It can also provide information about the Test Mode, Methodology and Evidence used in generating the result. It is the fundamental unit of an EARL statement or set of statements.

An Assertion must have at least the following properties:

The Assertion must be asserted by an assertor. The assertor is a human or software, or groups of these, that determine the result.
The thing that is being tested against some requirement is the subject of the assertion.
The requirement that is used to test a subject is the test requirement of the assertion.
The result of the test - whether the subject passes or fails the test case (or there is some other result).

An Assertion may also include the following optional properties:

This property may be used to describe the other results which were used to derive a result by inference.
[Editors' note: the group is waiting for a proposal on whether this is best modelled as an RDF Collection, or through some other method to describe a list of Assertions]
There are sometimes various methods that can be used to test for the same requirement. This property allows the tester to declare which methodology was used to determine the result given, or in the case of a derived result the ruleset that was used to combine other results. There is currently no particular vocabulary specified for this.
The mode in which the test was performed - as an automated computer process, by a human making a subjective judgement, or otherwise.

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

<earl:Assertion rdf:ID="#assertion">
  <earl:assertedBy rdf:resource="#assertor"/>
  <earl:subject rdf:resource="#subject"/>
  <earl:requirement rdf:resource="#testcase"/>   
  <earl:result rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#pass"/> 
  <earl:methodology rdf:resource="http://example.com/some/method#used"/>

2.2. Assertor

An Assertor determines the results of a test (i.e. an assertor asserts and assertion). An earl:Assertor must be either a SingleAssertor (a Person, Agent, or Software), or Compound Assertor.

An Assertor must belong to one of the following types:

There is a single Assertor responsible for making the Assertion, of one of the following types:
The Assertor is a human being. This uses the FOAF vocabulary term foaf:Person to describe a person. There should be identifying information including a name, and a uniquely identifying property such as email address or an encrypted email address. The properties foaf:name, foaf:mbox and foaf: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.]
The Assertor is an Agent, as defined in [FOAF]. foaf:Person is a subclass of this class, which also has subclasses of foaf:Organisation and foaf:Group.
The Assertor is a piece of Software, such as a black box testing tool of some sort or an evaluation tool.
[Editor's note: the current requirements on properties to identify a tool are subject to revision, please see section software for more information]
The Assertor is a compound group of persons and/or softwares. Each group must have at least one primary Assertor identified by the earl:mainAssertor property, and may, have secondary Assertor identified by the earl:helpAssertor property, as well as an optional description identified by the Dublin Core dc:description property.
Since the range of both these properties are earl:Assertor class, the instances can be a Person, Agent, Software, or recursively another Compound Assertor

Example 4: an Assertor that is a person called Bob B. Bobbington.

<foaf:Person rdf:ID="bob">
  <foaf:name>Bob B. Bobbington</foaf:name>
  <foaf:mbox rdf:resource="mailto:bob@example.org"/>

Example 5: an Assertor that is a piece of software called Cool Tool.

<earl:Software rdf:ID="tool">
  <dc:title xml:lang="en">Cool Tool</dc:title>
  <dc:description xml:lang="en">My favorite tool!</dc:description>

Example 6: the Assertor from example 3 is the person from example 4 using the software from example 5.

<earl:compoundAssertor rdf:ID="assertor">
  <earl:mainAssertor rdf:resource="#bob"/>
  <earl:helpAssertor rdf:resource="#tool"/>

2.3. Test Subject

The Test Subject is the class of things that have been tested. The earl:TestSubject class must have exactly one date specified by the Dublin Core dc:date property. It may also have any of the following properties:

Human readable title for the subject (e.g. "Home Page")
Human readable description of the subject (e.g. "Node page of the Web site"
Relationship to other subjects that are part of this subject
Relationship to other subjects of which this subject is a part of

This class is intentionally generic to serve a wide variety of usages. For more specific use cases, the EARL earl:WebContent or earl:Software classes can be used in place to describe Web Content or Software that is being tested.

Example 7: Java applet that is part of a Web application

<earl:TestSubject rdf:ID="#applet">
  <dc:title xml:lang="en">Login Applet</dc:title> 
  <dc:description xml:lang="en">Java applet that is used for system login</dc:description> 
  <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#gDate">2005-06-25</dc:date> 
  <dct:isPartOf rdf:resource="http://example.org/"/> 

2.4. Test Requirement

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

A Test Requirement may be a single test, or may be a part of a larger compound test suite. These relations may be described using Dublin Core's dct:hasPart or dct:isPartOf properties. Additionally, the Web location or a description for the test may be included by using the Dublin Core dc:location or dc:description properties.

[Editor's note: The earl:TestRequirement 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.]

Example 8: instance of a test requirement that is described with a title and its relationship to a test suite.

<earl:TestRequirement rdf:ID="html">
  <dc:title xml:lang="en">HTML Test Suite</dc:title>
  <dc:description xml:lang="en">Tests specifically for the Hyper Text Markup Language</dc:title>
  <dct:isPartOf rdf:resource="http://example.org/tests/#all"/>
  <dct:hasPart rdf:resource="http://example.org/tests/#282"/>

Example 9: test requirements that don't need to be described further can be shortened as follows:

<earl:testcase rdf:resource="http://www.w3.org/TR/WCAG10/wai-pageauth.html#tech-text-equivalent"/>

@@Do we need this example? It doesn't seem to make any sense to have it. And if we do, was it meant to refer to the property testCase (now requirement) or the class Testcase (now TestRequirement)??

2.5. Test Mode

The Test Mode must be exactly one of the following pre-defined values, or subclasses of them (see section Extensibility for more explanation):

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 additionally noted through the earl:compoundAssertor class of the Assertor.
Where a computer program or similar has done an automated test and generated a result without human assistance.
Where a person or organisation has run an automated test and generated a result, which may include the use of human judgement.
[@@Does this replace the software-aided judgement above, or only be used for compound claims where some results come from tools and others from people? My memory is that the latter is what was meant]
This property was designed to cover assertions which are made by inference, for example based on several existing test results. The earl:evidence property may be used to point to a list of Assertions used to produce results in this mode

Example 10: instance of an assertion that has been carried out in manual mode

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

2.6. Test Result

The actual result of the test. This must have exactly one earl:validity properties to describe a Validity Level. It may also include a Confidence Level, using the EARL earl:confidence properties; or a description, using the Dublin Core dc:description property. The description is meant to be human-readable text or markup (for example HTML included as an XML Literal), and should include an identification for the natural language.

[Editor's note: the confidence property is still under discussion, please refer to the Confidence Level for more information]

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

Example 11: A test result with a validity and a description property

<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>

2.6.1. Validity Level

Outcome of a test. The Validity Level must be one of the following pre-defined values, or subclasses of them (see section Extensibility for more explanation):

An assertor claims a test passed successfully.
The Test Subject did not meet the criteria defined by the Test Case.
An Assertor can not tell for sure what the outcome of the test is. Usually this happens when an automated test requires human judgement to make a definite decision.
The Test Requirement is not applicable to the given Test Subject.
Test has not been carried out. This is useful for reporting as well as for other uses of progress monitoring.

2.6.2. Confidence Level

Confidence in the result by an Assertor. This may be used where a tool wants to assert that it has different 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). The values of the confidence level should be defined either as RDF values, or using a datatype, in order to allow others to work interoperably with them.

[Editor's note: We will have an example of how to do this in a future draft, and further discussion in the [Guide].]

2.7. Software

A piece of software such as an authoring tool, browser, or evaluation tool. Software must have a title (using the Dublin Core property dc:title) and may have descriptions, version information, and Web location (using the Dublin Core terms dc:description, dct:hasVersion, and dc:location). Additionally, if it is used as a Test Subject then it inherits additional properties such as dc:date (required) as well as dct:isPartOf and dct:hasPart (optional).

[Editor's note: earl:Tool used to be a sub class of Assertor in previous versions of this Working Draft but it has been deprecated in favour of earl:Software, which may also be reused as a Test Subject.]

Example 12: The software which was an Assertor in example 5 is now being described as a Test Subject.

<earl:Software rdf:about="#tool">
  <dc:title xml:lang="en">Cool Tool</dc:title>
  <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#gDate">2005-06-25</dc:date> 

2.8. 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. This class is intended to be used as a test subject but can be reused for other purposes (outside EARL) as well. The Web content class has the following properties:

Format of the Web resource. For example "text/HTML", "image/PNG" or other mime types that are returned from the Web server.
The URL or other types of pointers that identify an address for the resource.
HTTP request sent by the client to the server in order to initiate a response
HTTP response (except the actual payload of the date) sent by the server to the client

A member of the Web Content class may include several request/response sequences to document the content and language negotiation that took place before the content was finally sent.

[Editor's note: the request/response properties of this class are still being refined]

3. Extensibility

Because EARL is written as an RDF vocabulary, it is extensible; that is, it is simple to add new terms or otherwise modify (for example by subclassing) them to fit your own specific application demands more closely. EARL was designed to be generic for usages in quality assurance but can be extended to fit particular domains better. EARL is a core set of structures and terms. In addition, the working group expects to work on at least a couple of areas and perhaps extend the specification (especially with respect to Web accessibility evaluation) 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.]

Appendix A: EARL 1.0 Schema in RDF/XML

[Editor's note: need to 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#"

  <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: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: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:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#requirement"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
        <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

  <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: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:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#requirement">
    <rdfs:label xml:lang="en">requirement</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#TestRequirement"/>
  <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:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#evidence">
    <rdfs:label xml:lang="en">evidence</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#methodology">
    <rdfs:label xml:lang="en">methodology</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertion"/>
  <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"/>

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertor">
    <rdfs:label xml:lang="en">Assertor</rdfs:label>
    <rdfs:comment xml:lang="en">Persons or evaluation tools that claim assertions</rdfs:comment>
    <owl:oneOf rdf:parseType="Collection">
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#SingleAssertor"/>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#CompoundAssertor"/>
  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#SingleAssertor">
    <rdfs:label xml:lang="en">Single Assertor</rdfs:label>
    <rdfs:comment xml:lang="en">One 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://xmlns.com/foaf/0.1/Person">
      <owl:Thing rdf:type="http://xmlns.com/foaf/0.1/Agent">

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#CompoundAssertor">
    <rdfs:label xml:lang="en">Compound Assertor</rdfs:label>
    <rdfs:comment xml:lang="en">Group of persons or evaluation tools that claim assertions</rdfs:comment>
    <rdfs:subClassOf rdf:parseType="Collection">
        <owl:onProperty rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#mainAssertor"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#mainAssertor">
    <rdfs:label xml:lang="en">Main Assertor</rdfs:label>
    <rdfs:comment xml:lang="en">Assertor mainly responsible for determining assertion result</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#CompoundAssertor"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertor"/>
  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#helpAssertor">
    <rdfs:label xml:lang="en">Help Assertor</rdfs:label>
    <rdfs:comment xml:lang="en">Assertor assisting to determine assertion result</rdfs:comment>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#CompoundAssertor"/>
    <rdfs:range rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Assertor"/>
  <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:onProperty rdf:resource="http://purl.org/dc/elements/1.1/date"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1

  <rdfs:Class rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#TestRequirement">
    <rdfs:label xml:lang="en">Test Requirement</rdfs:label>
    <rdfs:comment xml:lang="en">A requirement against which subjects are tested</rdfs:comment>

  <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 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 rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#mixed">
        <rdfs:label xml:lang="en">Mixed Testing Mode</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed by a person or organisation using a tool</rdfs:comment>
      <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>

  <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: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:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1

  <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 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"/> 

  <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 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 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 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 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>

  <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>

  <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:onProperty rdf:resource="http://purl.org/dc/elements/1.1/title"/>
        <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1

  <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>

  <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: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"/> 

  <!-- Deprecated and replaced terms -->
    <rdf:Description rdf:about="#testCase">
      <owl:sameAs rdf:resource="#requirement" />

    <rdf:Description rdf:about="#Testcase">
      <owl:sameAs rdf:resource="#TestRequirement" />

    <rdf:Description rdf:about="#singleAssertor">
      <owl:sameAs rdf:resource="#SingleAssertor" />

    <rdf:Description rdf:about="#compoundAssertor">
      <owl:sameAs rdf:resource="#CompoundAssertor" />


Appendix B: EARL 1.0 Terms (Non-Normative)

The following terms are defined by this specification:


Classes in the EARL namespace
Name Label required properties Allowable types optional properties
earl:Assertion Assertion
earl:Assertor Assertor
earl:SingleAssertor Single Assertor
earl:CompoundAssertor Compound Assertor earl:mainAssertor earl:helpAssertor
earl:TestSubject Test Subject dc:date
  • dct:hasPart
  • dct:isPartOf
  • dc:title
  • dc:description
earl:TestRequirement Test Requirement
  • dct:hasPart
  • dct:isPartOf
  • dc:title
  • dc:description
  • dc:location
earl:TestMode Test mode
earl:TestResult Test Result earl:validity
earl:ValidityLevel Validity Level
earl:ConfidenceLevel Confidence Level
earl:Software Software tool dc:title
  • dct:hasVersion
  • dc:description
  • dc:location
earl:WebContent Web Content


Properties in the EARL namespace
Name Label Domain Range
earl:assertedBy asserted by earl:Assertion earl:Assertor
earl:subject subject earl:Assertion earl:TestSubject
earl:requirement requirement earl:Assertion earl:TestRequirement
earl:result result earl:Assertion earl:TestResult
earl:mode mode earl:Assertion earl:TestMode
earl:methodology methodology earl:Assertion rdf:Resource
earl:evidence evidence earl:Assertion [Editors' note: To be determined. Either an rdf Collection, or some other list of, earl:Assertions]
earl:mainAssertor Main Assertor earl:CompoundAssertor earl:Assertor
earl:helpAssertor Help Assertor earl:CompoundAssertor earl:Assertor
earl:validity validity earl:TestResult earl:ValidityLevel
earl:confidence confidence earl:TestResult earl:ConfidenceLevel
earl:httpResponse HTTP response information earl:WebContent [Editors' note: to be specified]
earl:httpRequest HTTP request information earl:WebContent [Editors' note: to be specified]


Values in the EARL namespace
Name Label Used In
earl:manual Manual earl:TestMode
earl:automatic Automatic earl:TestMode
earl:mixed Mixed earl:TestMode
earl:heuristic Heuristic earl:TestMode
earl:pass Pass earl:ValidityLevel
earl:fail Fail earl:ValidityLevel
earl:notTested Not tested earl:ValidityLevel
earl:cannotTell Cannot tell earl:ValidityLevel
earl:notApplicable Not Applicable earl:ValidityLevel

Appendix C: Document Changes (Non-Normative)

This section records current changes and future plans for changes as the nd theworking draft matures to Recommendation level.

Differences between this draft and the EARL 1.0 Schema draft of 9 September 2005

Differences between the EARL 1.0 Schema draft of 9 September 2005 and the EARL 1.0 draft of 12 December 2002

New terms

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

Terms added since the EARL 1.0 Schema draft of 9 September 2005.

This property can be used to list information used to infer a result automatically.
This property can be used to describe a testing methodology or a set of rules for inferring a result.
This value extends the range of allowed values of the test mode.
This property has replaced the deprecated testCase as the base property for a requirement that the test subject has been tested against.
This class has replaced the deprecated Testcase as the base container class for a requirement that the test subject has been tested against.

Terms added between the EARL 1.0 Schema draft of 9 September 2005 and the EARL 1.0 draft of 12 December 2002.

This class replaces the deprecated Tool. It can be used to decribe a assertor tools or test subjects.
SingleAssertor, CompoundAssertor
These classes are derivatives of an Assertor to help describe complex groups of person and/or tool evaluators.
mainAssertor, helpAssertor
These properties of a compound assertor can be used to describe the specific roles of evaluators within a group.
httpRequest, httpResponse
These are placeholder properties for describing WebContent (or a "Delivery Unit" on the Web).

Deprecated terms

A number of terms that existed in earlier drafts 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:

high, medium and low
These values for the confidence property were deprecated in favour of authors defining their usage in a way that encourages interoperability.
This term was deprecated in favour of a more comprehensive approach to describing Web content.
This property was replaced by the requirement property.
This class was replaced by the TestRequirement class.
UserAgent, Tool
These terms were deprecated in favour of the more generic Software class.
This term was deprecated as it did not seem to be widely accepted and implemented.
message, format
These terms were deprecated in favour of the Dublin Core terms dc:description and dc:format.
Person, name, email, contactInfo
These terms were 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:


A mechanism to provide further evidence used to make a claim. The working group has included the evidence property but has not yet determined the most useful model for the list of statements used in evidence of an inferred result.


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. An extensive amount of work has been done on such vocabularies, and this material couldd be included as soon as the next draft of this specification.


This is under review by the working group. The current draft requires that developers who use this property provide some means of identifying the way its values are determined in order to allow interoperable use of those values.

Appendix E: References (Non-Normative)

The Dublin Core Metadata Element Set - DC Recommendation, 20 December 2004.
The Dublin Core Metadata Terms - DC Recommendation, 13 June 2005.
FOAF Vocabulary Specification - Working Draft, 3 June 2005.
Evaluation and Report Language (EARL) 1.0 Guide - Editors' Draft 14 December 2005. C. Velasco, J. Koch, S. Abou-Zahra eds.
OWL Web Ontology Language - W3C Recommendation, 10 February 2004.
RDF/XML Syntax Specification (Revised) - W3C Recommendation, 10 February 2004. D. Beckett ed.
RDF Primer - W3C Recommendation, 10 February 2004. F. Manola, E.Miller eds.
RDF Vocabulary Description Language 1.0: RDF Schema - W3C Recommendation, 10 February 2004. D. Brickley, R.V. Guha eds.
Why RDF model is different from the XML model - Paper, September 1998. T. Berners-Lee.
Key words for use in RFCs to Indicate Requirement Levels - IETF RFC, March 1997.
Web Content Accessibility Guidelines 1.0 - W3C Recommendation, 5 May 1999. W. Chisholm, I. Jacobs, G. Vanderheiden eds.

Appendix F: Contributors (Non-Normative)

EARL is the result of the work of many people over the past. The editors would particularly like to thank Wendy Chisholm, Sean B Palmer, and Daniel Dardailler, whose contributions have included editing the first versions of the EARL specifications, and the late Leonard Kasday who set the work in motion to develop EARL. The editors apologise for any names left out of this list, and will endeavour to rectify any errors noted in comments.

Contributors to this and/or previous Working Drafts

Shadi Abou-Zahra, Chrisoula Alexandraki, Myriam Arrue, Gabriele Bartolini, Giorgio Brajnik, Dan Brickley, Karl Dubost, Nick Gibbins, Al Gilman, Dominique Hazaël-Massieux, Nadia Heninger, Sandor Herramhof, Ian Hickson, Björn Höhrmann, Carlos Iglesias, Nick Kew, Johannes Koch, Jim Ley, William Loughborough, John Lutts, Charles McCathieNevile, Libby Miller, Tom Martin, Yehya Mohamed, Dave Pawson, Eric Prud'hommeaux, Pierre Queinnec, Chris Ridpath, Romain Roure, Christophe Strobbe, Aaron Swartz, Olivier Thoreaux, Carlos Velasco and Rob Yonaitis.