This document describes the formal schema of the Evaluation and Report Language (EARL) 1.0. The Evaluation and Report Language is a standardized vocabulary 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/.

This 6 June 2006 Editors' Draft of the Evaluation and Report Language (EARL) 1.0 Schema is and 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 meetings in October 2005 and February 2006 (see history of document changes). This document is intended to be published and maintained as a W3C Recommendation after review and refinement.

The working group encourages feedback about this document, Evaluation and Report Language (EARL) 1.0 Schema, by developers and researchers who have interest in software-supported evaluation and validation of Web sites. In particular, the group is looking for feedback on the following questions:

Please send comments on this document to the public email list of the working group public-wai-ert@w3.org. The archives of the working group mailing list are publicly available.

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 has been produced by the Evaluation and Repair Tools Working Group as part of the WAI Technical Activity.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; 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) must disclose the information in accordance with section 6 of the W3C Patent Policy.

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:

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.
Test subject
This can include: Web pages, tools (e.g. accessibility checkers, validators), and user agents
Test result
Did the test subject pass or fail the test? How certain can we be?
Test requirement
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 criteria.

Prose examples that demonstrate the above structure:

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

Mary Thompson claims on the 17th December
Test Subject
A Web page at http://www.example.org/mypage
Test Result
Test requirement
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 requirement
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, recommended, 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 is the fundamental unit of an EARL statement or set of statements.

An Assertion must have at least the following properties:

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 requirement (or there is some other result).

An Assertion may also include the following optional properties:

The mode in which the test was performed - as an automated computer process, by a human, 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="#requirement" />
  <earl:result rdf:resource="#result" />

2.2. Assertor

An Assertor determines the results of a test (i.e. an assertor asserts and assertion). An earl:Assertor must belong to one of the following types:

There is a single entity responsible for making the Assertion, it must be 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 preferably an encrypted email address. The properties foaf:name, foaf:mbox and foaf:mbox_sha1sum are defined by FOAF [FOAF].
The Assertor is an Agent, as defined in [FOAF]. An Agent is a super class of foaf:Person, foaf:Organisation and foaf:Group which can all be used to describe an Assertor.
The Assertor is a piece of Software, such as a black box testing tool of some sort or an evaluation tool.
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 optional title and description identified by the [DC] dc:title and dc:description properties respectively.

[Editor's note: should the following note be in this document or rather in the Guide document?]

Note: since the range of both the earl:mainAssertor and the earl:helpAssertor properties of the Compound Assertor reference earl:Assertor classes, these 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 (see also example 13).

<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: a Compund Assertor of the person from example 4 using the software from example 5.

<earl:compoundAssertor rdf:ID="assertor">
  <dc:title xml:lang="en">Bob using Cool Tool</dc:title>
  <dc:description xml:lang="en">Bob doing semi-automated testing</dc:description>
  <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. 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.

The earl:TestSubject class may have any of the following properties:

Human readable title for the subject (e.g. "Home Page")
Human readable description of the subject (e.g. "Main entry page to the Web site")
Date on which the subject was tested (or when it was identified if more appropriate)
Relationship to other subjects that are part of this subject
Relationship to other subjects of which this subject is a part of

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

<earl:TestSubject rdf:ID="subject">
  <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 using the Dublin Core dc:identifier property.

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, a title or description for the test requirement may be included by using the Dublin Core dc:title 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="requirement">
  <dc:title xml:lang="en">HTML Test 282</dc:title>
  <dc:description xml:lang="en">Test 282 of the HTML test suite</dc:title>
  <dct:isPartOf rdf:resource="http://example.org/tests/html/"/>
  <dct:hasPart rdf:resource="http://example.org/tests/html/#617"/>

2.5. Test Mode

The (optional) Test Mode information is used to simplify some commonly used querries on how the testing was carried out. When provided, it must reflect the information provided by the Assertor, and it must be exactly one of the following pre-defined values (or subclasses of them):

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 computer program or similar was primarily responsible for generating a result, even if with some human assistance. This should be additionally noted through the earl:compoundAssertor class of the Assertor.
Where there is no detailed information about the test mode available. This includes when testing is carried out by organizations or groups of assertors, and the exact testing process is not disclosed.
This property was designed to cover assertions which are made by inference, for example based on several existing test results.

Example 9: the assertion from example 3 was carried out in semi-automatic mode.

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

2.6. Test Result

The actual result of the test. It includes both machine-readable values as well as human-readable description of the results (typically error messages).

A Test Result must have exactly one of the following properties:

The Validity Level is a machine-readable value that describes the result.

A Test Result should include the following properties:

A short title for the result, for example the error code generated by an evaluation tool.
A human-readable text or markup (for example HTML included as an XML Literal), and should therefore include an identification for the natural language.

A Test Result may also include the following properties:

The Confidence Level is an application-specific value to describe the accuracy of the result. This is especially useful for results based on heuristics.
Each Instance Location can contain several types of pointers to locate the occurence of the result within the Test Subject. A Test Result may contain several instances of this class to describe any number of occurences
[Editor's note: this property (and class) are still under active discussion and development by the working group. The working group has not yet reached consensus on these terms.]

Example 10: A test result with a validity of fail and a description of the problem in English, and encoded in XHTML format.

<earl:result rdf:ID="result">
  <earl:validity rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#fail"/>
  <dc:title xml:lang="en">Invalid Markup (code #353)</dc:title>
  <dc:description rdf:parseType="Literal" xml:lang="en">
    <div 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):

An assertor claims a test passed successfully.
The Test Subject did not meet the criteria defined by the Test Requirement.
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.

Example 11: The result from example 10 has a confidence level of 87 (the interpretation of this value is application specific)

<earl:result rdf:about="#result">
  <earl:confidence rdf:datatype="http://www.w3.org/2001/XMLSchema#int">87</earl:confidence>

2.6.3. Instance Location

[Editor's note: methods for pointing to specific instances of a result within a test subject are currently under active discussion and development by the working group. The working group has not yet reached consensus on this class.]

Example 12: To be developed.


2.7. Software Tool

A piece of software such as an authoring tool, browser, or evaluation tool. Software should have a title using the Dublin Core property dc:title; and may have descriptions, version information, and a home page using the Dublin Core terms dc:description, dct:hasVersion, as well as the FOAF term foaf:homepage.

While the software class is often used to describe evaluation tool assertors, a software could also be a Test Subject (for example to test compliance of an authoring tool to the Authoring Tool Accessibility Guidelines). In this case, it inherits the optional properties dc:date, dct:isPartOf and dct:hasPart from the Test Subject class.

Example 13: The software which was an Assertor in example 5 is now a Test Subject.

<earl:Software rdf:about="#tool">
  <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#gDate">2005-06-25</dc:date> 
  <dct:isPartOf rdf:resource="http://example.org/tools/"/>
  <dct:hasPart rdf:resource="http://example.org/tools/cool/#module-1"/>

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.
[Editor's note: this term will be replaced in the next version of this document. The purpose of the term will however remain unchanged.]
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

Note: an instance 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 intended to make use of HTTP vocabulary in RDF that will be published in a separate document.]

3. Extensibility

[Editor's note: Is this section suitable for this document or should it be rather moved to the Guide document?]

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.

4. Conformance

[Editor's note: this section has been rewritten by the editor and does not yet represent the consensus of the Working Group.]

An EARL report is a set of instances of the Assertor class called assertions. Each assertion contains information about a single test that was carried out. EARL does not prescribe how to group tests into a report since this is highly application and end-user specific. For example, a reports generated for Web developers may contain more detailed results in order to repair bugs while reports generated for project managers may contain aggregated results with less detail on the specific issues. EARL does not require these assertions to be in a single file, database, or other form of repository; RDF parsers should be able to work with distributed information provided they have access.

A valid EARL report must validate against the formal RDF grammar, and must adhere to the constraints defined by this document. In case of discrepancy, the normative reference is Appendix A: EARL 1.0 Schema in RDF/XML. Note: to support XML based applications, EARL reports should be represented in (a compact) RDF/XML format when it is being exported or published outside an application. However, EARL processors should be able to parse valid reports in other RDF formats such as N3.

If the core EARL vocabulary is extended for specific purposes (for example by subclassing terms), the RDFS (including relevant OWL constraints etc.) must be provided so that RDF parsers can process the introduced vocabulary correctly. Furthermore, any extensions must ensure the integrity and validity of the core EARL vocabulary in order to ensure interoperable exchange of EARL reports.

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

  <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">Has 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">Has 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">Has 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#mode">
    <rdfs:label xml:lang="en">Has 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</owl:minCardinality>

  <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: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</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed by a human only</rdfs:comment>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#automatic">
        <rdfs:label xml:lang="en">Automatic</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed by a tool only</rdfs:comment>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#semiauto">
        <rdfs:label xml:lang="en">Semi-Automatic</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed primarily by a tool, and human assistance</rdfs:comment>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#mixed">
        <rdfs:label xml:lang="en">Mixed</rdfs:label>
        <rdfs:comment xml:lang="en">Test was performed by a combination of persons and tools</rdfs:comment>
      <owl:Thing rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#heuristic">
        <rdfs:label xml:lang="en">Heuristic</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:minCardinality>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>

  <rdf:Property rdf:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#validity">   
    <rdfs:label xml:lang="en">Has Validity</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">Has Confidence</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:about="http://www.w3.org/WAI/ER/EARL/nmg-strawman#instance">
    <rdfs:label xml:lang="en">Has Instance</rdfs:label>

  <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</owl:minCardinality>

  <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">With 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">With HTTP Response</rdfs:label>
    <rdfs:domain rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#WebContent"/> 

  <!-- Deprecated Terms -->
  <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"/>

  <!-- 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 Allowable types required properties recommended properties optional properties
earl:Assertion Assertion    
earl:Assertor Assertor      
earl:SingleAssertor Single Assertor      
earl:CompoundAssertor Compound Assertor   earl:mainAssertor  
earl:TestSubject Test Subject    
  • dc:title
  • dc:description
  • dc:date
  • dct:hasPart
  • dct:isPartOf
earl:TestRequirement Test Requirement     dc:identifier
  • dc:title
  • dc:description
  • dct:hasPart
  • dct:isPartOf
earl:TestMode Test mode      
earl:TestResult Test Result   earl:validity
  • dc:title
  • dc:description
earl:ValidityLevel Validity Level      
earl:ConfidenceLevel Confidence Level        
earl:Software Software Tool     dc:title
  • dct:hasVersion
  • dc:description
  • foaf:homepage
earl:WebContent Web Content     dc:location [Editor's note: this term will be replaced by another.]


Properties in the EARL namespace
Name Label Domain Range
earl:assertedBy Asserted By earl:Assertion earl:Assertor
earl:subject Has Subject earl:Assertion earl:TestSubject
earl:requirement Has Requirement earl:Assertion earl:TestRequirement
earl:result Has Result earl:Assertion earl:TestResult
earl:mode Has Mode earl:Assertion earl:TestMode
earl:mainAssertor Main Assertor earl:CompoundAssertor earl:Assertor
earl:helpAssertor Help Assertor earl:CompoundAssertor earl:Assertor
earl:validity Has Validity earl:TestResult earl:ValidityLevel
earl:confidence Has Confidence earl:TestResult earl:ConfidenceLevel
earl:instance Has Instance [Editors' note: to be specified.] [Editors' note: to be specified.]
earl:httpRequest With HTTP Request earl:WebContent [Editors' note: to be specified.]
earl:httpResponse With HTTP Response 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:semiauto Semi-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 the working draft matures to Recommendation level.

Difference to the previous published Working Draft

This section describes differences between this draft and the EARL 1.0 Schema draft of 9 September 2005.

Difference to the first published Working Draft

This section describes the changes made since 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 previous published Working Draft

earl:mixed and earl:semiauto
These values extend the range of allowed values of the test earl:TestMode.
earl:requirement and earl:TestRequirement
Replace earl:testCase and earl:Testcase respectively.
This property is part of the earl:InstanceLocation class which will be added in later drafts.

Terms added since the first published Working Draft

This class replaces the deprecated earl:Tool. It can be used to decribe a assertor tools or test subjects.
earl:SingleAssertor, earl:CompoundAssertor
These classes are derivatives of an Assertor to help describe complex groups of person and/or tool evaluators.
earl:mainAssertor, earl:helpAssertor
These properties of a compound assertor can be used to describe the specific roles of evaluators within a group.
earl:httpRequest, earl: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:

This was intended to provide a method for describing the justification used to infer a claim based on other claims. It has been deprecated for now.
This was intended to provide a link for what method was used for a particular test. It has been deprecated as unnecessary.
high, medium and earl:low
These values for the earl: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 earl:requirement property.
This class was replaced by the earl:TestRequirement class.
earl:UserAgent, earl:Tool
These terms were deprecated in favour of the more generic earl:Software class.
This term was deprecated as it did not seem to be widely accepted and implemented.
earl:message, earl:format
These terms were deprecated in favour of the Dublin Core terms dc:description and dc:format.
earl:Person, earl:name, earl:email, earl: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.