W3C

Evaluation and Report Language (EARL) 1.0

(not yet a) W3C Working Draft 21 June 2002

This version:
http://www.w3.org/WAI/ER/2002/06/21-earl1.html
Latest version:
http://www.w3.org/WAI/ER/EARL/
Previous version:
http://www.w3.org/WAI/ER/2002/06/12-earl1.html
Editors:
Wendy Chisholm, W3C
Sean B. Palmer

Abstract

This is a W3C Working Draft produced by the Evaluation and Repair Tools Working Group (ERT WG). The purpose of this document is to explain how and why to use the Evaluation and Report Language (EARL) 1.0. The Working Group encourages feedback about this document as well as implementation of the language in authoring tools, testing tools, search engines, and other relevant tools.

The Evaluation and Report Language (EARL) is a general-purpose language for representing conformance information on the Web. This specification describes how to use EARL to describe conformance and defines a basic vocabulary for this purpose.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/.

Send comments about this document to the Evaluation and Repair Tools Working Group. The archives for this list are publicly available.

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

Table of Contents

1. Introduction

When creating content to publish on the Web a developer runs a variety of tests:

If working on many pages, there can be a variety of errors to test further, fix, and republish.

Developers of authoring tools and user agents also test their software for bugs, conformance to specifications, accessibility, and usability.

EARL is a format for describing the results of these tests.

@@define:

@@ include stuff from:

User Scenarios

Web accessibility consultant

Scenario: A consultant evaluting a client's Web site. Uses a variety of evaluation tools to generate an accessibility report of the site.

@@describe when EARL is generated, where it is stored, how it is used (for each scenario).

Web site tester

Scenario: A tester evaluating a company's Web site. Uses a variety of evaluation tools to discover possible bugs on the site.

"power developer" that uses programming tools to produce site, not a WYSIWYG editor commonly used by less technical folk. QA folk use different tools than developers. (@@Jenae Andershonis would be good reviewer for this scenario)

Web site developer

Scenario: A developer maintaining a company's Web site. Fixes bug reports generated by the tester.

W3C Working Group

Scenario: A W3C Working Group is trying to meet their exit criteria for Candidate Recommendation. To do this they need to show at least two indepdenent implementations.

@@refering to test suites.

Person searching for specific data

Scenario: A person uses a Web search engine to find specific information. They are using a screen reader and want the results sorted with the accessible items listed first.

Technical support person

Scenario: A person provides technical support for an assistive technology. As the assistive technology runs on the user's machine, it logs when it runs into trouble. The user sends this log to technical support. Technical support is better able to assist the user.

Review Team

Scenario: A variety of people test the same tool. They compare their results to discover where they agree and disagree and to come to a final result.

Earl Base Organization

/* brief intro to RDF class/property model */

Evaluation

The class of all EARL evaluations, as asserted in an EARL document. A sub class of rdf:Statement. (An Evaluation is the most basic unit of EARL as it stands. An EARL document will always have at least one Evaluation asserted in it.)

Instances of the Evaluation class

Assertion

An assertion is a sub class of statement, where the subject is a TestSubject, the predicate a ResultProperty, and the object a TestCase. These could be free standing units - used outside of Evaluation(s) if required. N.B. Assertion is the domain of earl:assertedBy.

Instances of the Assertion class

Assertion Structure

Assertor

The class of entities making an assertion in EARL (e.g. running the test). This could be anonymous if required. There are two further sub classes of Assertor defined, but they are basically unused. An Assertor can be a Person or a Machine (but not both).

Instances of the Assertor class

TestSubject

The class of things which are being evaluated in an EARL evaluation - the things that are the subject of every assertion. This 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.

Instances of the TestSubject class

ResultProperty

The set of result properties in EARL; they are the range of rdf:predicate for all EARL Assertions.

Instances of the ResultProperty class

TestCase

The class of all TestCases. Conceptually, a TestCase is some resource to which another resource can be validated against - something for which it can be demonstrated that it passes or fails against (or otherwise). This may in fact include many things - validation classes, code test cases, or more subjective guidelines such as WCAG. Perhaps this is synonymous with "Class", and we're really just testing class membership? For example, validation is a test of whether a set of characters is in a particular document class. Testing against WCAG is testing for whether or not a document is in the class of accessible documents. Testing against a test file checks whether the code belongs to the "Pass" class created by the test file.

Instances of the TestCase class

3. Earl Details

Assertion Properties

assertedBy

For earl:assertedBy(y,x), in general, the assertor (x) asserts the assertion (y). EARL has specific classes for the domain/range

testMode

The test mode of some EARL assertion

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#Assertion

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#TestMode

TestMode

@@is TestMode a subclass of something else?

Instances of the TestMode class

Assertor Properties

name

The common proper name for some earl:Assertor. This is related to foaf:name.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#Assertor

The range for this property is: http://www.w3.org/2000/01/rdf-schema#Literal

contactInfo

For contactInfo(x, y), y is some some kind of generic contact information for y. This is a sub classable property. A strict domain is used rather than a restriction so that one may infer that the subject is an Assertor. Not that that information would actually help.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#Assertor

operator

for operator(x, y), y is the operator of x This is the operator of a machine (range undefined)

The domain of this property is:

os

The Operating System on which an assertion was run, or of which an Assertor uses.

platform

For platform(x, y), y is the platform on which x ran/runs. E.g. the platform on which the test(s) were run, or the general platform on which something runs

TestSubject Properties

format

The MIME type of the WebContent subject, as a literal.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#WebContent

The range for this property is: http://www.w3.org/2000/01/rdf-schema#Literal

reprOf

For reprOf(x, y), read that x is a representation of y, possibly derived from an HTTP GET transaction.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#WebContent

The range for this property is: http://www.w3.org/2000/01/rdf-schema#Resource

snapshot

Points to a snapshot of a serialization of the resource as it was when it was evaluated.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#TestSubject

The range for this property is: http://www.w3.org/DesignIssues/Generic#Fixed

ResultProperty Properties

confidence

for confidence(x, y), x has the confidence y

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#ResultProperty

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#ConfidenceLevel

ConfidenceLevel

How confident is the result of the test? Are you certain it fails? Uncertain that it passes?

Instances of the ConfidenceLevel class

validity

The validity state for an EARL ResultProperty.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#ResultProperty

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#Validity

Validity

The class of all EARL validity states.

Instances of the Validity class

TestCase Properties

excludes

for excludes(x, y), TestCriteria x exclude the Exclusion y

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#TestCriteria

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#Exclusion

id

A single guideline, checkpoint, etc.

The domain of this property is:

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#Id

level

This is a generic level of test criteria, for example, the priorities/levels in WCAG. These shouldn't be a string literal.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#Exclusion

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#TestCriteria

expectedResult

The expected result of a test case

operatorInstructions

For operatorInstruction(x, y), y is an operator instruction for x.

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#TestCase

The range for this property is: http://www.w3.org/2000/01/rdf-schema#Literal

purpose

For purpose(x, y), y is the (literal node) purpose of x

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#TestCase

The range for this property is: http://www.w3.org/2000/01/rdf-schema#Literal

repairInfo

for repairInfo(x, y), y is repair information for x

suite

A suite of checkpoints, guidelines, or any other form of rules that an earl:TestSubject can be evaluated against. e.g. WCAG 1.0

The domain of this property is:

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#Suite

testCriteria

The testCriteria for a TestCase

The domain of this property is: http://www.w3.org/2001/03/earl/1.0-test#TestCase

The range for this property is: http://www.w3.org/2001/03/earl/1.0-test#TestCriteria

TestCriteria

Instances of the TestCriteria class

4. Properties of Classes

Assertion
properties range of property instances of constraints comment
object TestCase      
subject TestSubject reprOf, UserAgent, Tool    
predicate ResultProperty cannotTell, fails, notApplicableTo    
assertedBy Assertor   Assertor can be a Person or Machine but not both .
testMode TestMode     The test mode of some EARL assertion
TestCase
properties range of property comment
id Id  
suite Suite suite of checkpoints/rules to evaluate against
testCriteria TestCriteria test criteria for a TestCase
operatorInstruction Literal For operatorInstruction(x, y), y is an operator instruction for x.
purpose Literal For purpose(x, y), y is the (literal node) purpose of x
     
ResultProperty
properties range of property comment
confidence ConfidenceLevel for confidence(x, y), x has the confidence y
validity Validity The validity state for an EARL ResultProperty.
     
     
Assertor
properties range of property comment subPropertyOf
contactInfo   For contactInfo(x, y), y is some some kind of generic contact information for y. This is a sub classable property. A strict domain is used rather than a restriction so that one may infer that the subject is an Assertor. Not that that information would actually help.  
email Email Generally, for earl:email(x, y) x has an email address of y. The URI of the object will normally start with "mailto:", and will not be a literal. This is not a sub property of foaf:mbox! That property can only be applied to people. contactInfo
name Literal The common proper name for some earl:Assertor. foaf:name
operator   for operator(x, y), y is the operator of x Assertor
TestCriteria
properties range of property comment subPropertyOf
excludes Exclusion for excludes(x, y), TestCriteria x exclude the Exclusion y  
id Id    
suite Suite suite of checkpoints/rules to evaluate against  
level   This is a generic level of test criteria, for example, the priorities/levels in WCAG. These shouldn't be a string literal.  
WebContent
properties range of property comment subPropertyOf
format Literal The MIME type of the WebContent subject, as a literal.  
reprOf rdfs:Resource For reprOf(x, y), read that x is a representation of y, possibly derived from an HTTP GET transaction.  
       
       
Exclusion
properties range of property comment subPropertyOf
id Id    
suite Suite suite of checkpoints/rules to evaluate against  
level   This is a generic level of test criteria, for example, the priorities/levels in WCAG. These shouldn't be a string literal.  
       
Suite
properties range of property comment subPropertyOf
id Id    
       
       
       
TestSubject
properties range of property comment subPropertyOf
snapshot DesignIssues:Fixed Points to a snapshot of a serialization of the resource as it was when it was evaluated.  
       
       
       
x
properties range of property comment subPropertyOf
       
       
       
       

5. Extensibility

@@describe how EARL can be extended. Use PageValet and HiSoft as examples? Create others?

6. Examples

User Scenarios

@@for each user scenario described above, create a sample piece of EARL.

7. References

User Scenarios

8. Appendix A: EARL Schema in XML RDF

9. Appendix B: EARL Schema in N3