You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2283 lines
113 KiB
2283 lines
113 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
|
<title>Developer Guide for Evaluation and Report Language (EARL) 1.0</title>
|
|
<link rel="stylesheet" type="text/css" href="main.css" />
|
|
<link rel="stylesheet" type="text/css"
|
|
href="http://www.w3.org/StyleSheets/TR/W3C-WD" />
|
|
</head>
|
|
|
|
<body>
|
|
<p align="center">[<a href="#contents" rel="contents">contents</a>]</p>
|
|
<!--// head //-->
|
|
|
|
<div id="head" class="head">
|
|
<p><a href="http://www.w3.org/"><img width="72" height="48" alt="W3C"
|
|
src="http://www.w3.org/Icons/w3c_home" /></a></p>
|
|
|
|
<h1><a id="title" name="title">Developer Guide for Evaluation and Report
|
|
Language (EARL) 1.0</a></h1>
|
|
|
|
<h2><a id="w3c-doctype" name="w3c-doctype">W3C Working Draft 10 May
|
|
2011</a></h2>
|
|
<dl>
|
|
<dt>This version:</dt>
|
|
<dd><a
|
|
href="http://www.w3.org/TR/2011/WD-EARL10-Guide-20110510/">http://www.w3.org/TR/2011/WD-EARL10-Guide-20110510/</a></dd>
|
|
<dt>Latest version:</dt>
|
|
<dd><a
|
|
href="http://www.w3.org/TR/EARL10-Guide/">http://www.w3.org/TR/EARL10-Guide/</a></dd>
|
|
<dt>Previous version:</dt>
|
|
<dd><a
|
|
href="http://www.w3.org/TR/2009/WD-EARL10-Guide-20091029/">http://www.w3.org/TR/2009/WD-EARL10-Guide-20091029/</a></dd>
|
|
<dt>Editors:</dt>
|
|
<dd>Carlos A Velasco, Fraunhofer Institute for Applied Information
|
|
Technology FIT</dd>
|
|
<dd>Shadi Abou-Zahra, <acronym
|
|
title="World Wide Web Consortium">W3C</acronym>/<acronym
|
|
title="Web Accessibility Initiative">WAI</acronym></dd>
|
|
<dt>Previous Editors:</dt>
|
|
<dd>Johannes Koch (until November 2010 while at Fraunhofer Institute for
|
|
Applied Information Technology FIT)</dd>
|
|
</dl>
|
|
|
|
<p class="copyright"><a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
|
|
2011 <a href="http://www.w3.org/"><acronym
|
|
title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
|
|
href="http://www.csail.mit.edu/"><acronym
|
|
title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
|
|
href="http://www.ercim.eu/"><acronym
|
|
title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
|
|
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
|
|
<a
|
|
href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
|
|
and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
|
|
use</a> rules apply.</p>
|
|
</div>
|
|
<hr />
|
|
|
|
<h2><a id="abstract" name="abstract">Abstract</a></h2>
|
|
|
|
<p>This document provides guidance for developers on implementing Evaluation
|
|
and Report Language (EARL) 1.0 in software tools and process. EARL is a
|
|
vocabulary, the terms of which are defined across a set of specifications and
|
|
technical notes, that is used to describe test results. The primary motivation
|
|
for developing this vocabulary 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 terms for generic
|
|
quality assurance and validation purposes.</p>
|
|
|
|
<p>While this document provides developer guidance for using and implmenting
|
|
EARL, <a href="http://www.w3.org/TR/EARL10-Schema/">Evaluation and Report
|
|
Language (EARL) 1.0 Schema</a> defines the core terms of the vocabulary, and
|
|
other specifications provide additional terms for representing HTTP exchanges
|
|
between clients and servers, <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF10/"><acronym
|
|
title="Hyper Text Transfer Protocol">HTTP</acronym> Vocabulary in <acronym
|
|
title="Resource Description Framework">RDF</acronym> 1.0</a>, for representing
|
|
web content itself, <a
|
|
href="http://www.w3.org/TR/Content-in-RDF10/">Representing Content in RDF
|
|
1.0</a>, or for specifying particular locations within or sections of content,
|
|
<a href="http://www.w3.org/TR/Pointers-in-RDF10/">Pointer methods in RDF
|
|
1.0</a>. An <a href="http://www.w3.org/WAI/intro/earl.php">Evaluation and
|
|
Report Language (EARL) Overview</a> is also available.</p>
|
|
|
|
<div id="sotd">
|
|
<h2><a id="status" name="status">Status of this document</a></h2>
|
|
|
|
<p><em>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 <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
|
|
http://www.w3.org/TR/.</em></p>
|
|
|
|
<p>This 10 May 2011 Working Draft of the Developer Guide for Evaluation and
|
|
Report Language (EARL) 1.0 provides an introduction to EARL and defines
|
|
conformance requirements for software tools supporting EARL. It is a complete
|
|
resource with different working examples, and it implements the decisions of
|
|
the Evaluation and Repair Tools Working Group (ERT WG) to date. This document
|
|
is intended to be published and maintained as a W3C Recommendation after review
|
|
and refinement.</p>
|
|
|
|
<p>The Evaluation and Repair Tools Working Group (ERT WG) encourages feedback
|
|
about this document, Developer Guide for Evaluation and Report Language (EARL)
|
|
1.0, by developers and researchers who have interest in software-supported
|
|
evaluation and validation of websites, and by developers and researchers who
|
|
have interest in Semantic Web technologies for content description, annotation,
|
|
and adaptation. In particular, the Working Group is looking for feedback on the
|
|
<a href="#conformance">section on conformance</a> and suggestions for the <a
|
|
href="#serialization">section on serialization</a> that is currently under
|
|
consideration.</p>
|
|
|
|
<p>Please send comments on this Developer Guide for Evaluation and Report
|
|
Language (EARL) 1.0 document by <strong>10 June 2011</strong> to <a
|
|
href="mailto:public-earl10-comments@w3.org">public-earl10-comments@w3.org</a>
|
|
(publicly visible <a
|
|
href="http://lists.w3.org/Archives/Public/public-earl10-comments/">mailing list
|
|
archive</a>).</p>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>This document has been produced by the <a
|
|
href="http://www.w3.org/WAI/ER/">Evaluation and Repair Tools Working Group (ERT
|
|
WG)</a> as part of the <a href="http://www.w3.org/WAI/Technical/Activity">Web
|
|
Accessibility Initiative (WAI) Technical Activity</a>.</p>
|
|
|
|
<p>This document was produced by a group operating under the <a
|
|
href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C
|
|
Patent Policy</a>. The group does not expect this document to become a W3C
|
|
Recommendation. W3C maintains a <a rel="disclosure"
|
|
href="http://www.w3.org/2004/01/pp-impl/32094/status">public list of any patent
|
|
disclosures</a> 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 <a
|
|
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
|
|
Claim(s)</a> must disclose the information in accordance with <a
|
|
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
|
|
6 of the W3C Patent Policy</a>.</p>
|
|
</div>
|
|
<hr />
|
|
|
|
<div id="toc">
|
|
<h2><a accesskey="c" id="contents" name="contents">Table of Contents</a></h2>
|
|
<ol id="tocList">
|
|
<li><a href="#introduction">Introduction</a>
|
|
<ul>
|
|
<li><a href="#audience">1.1 Audience of this Document</a></li>
|
|
<li><a href="#conventions">1.2 Document Conventions</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#about">About Evaluation and Report Language (EARL)</a>
|
|
<ul>
|
|
<li><a href="#structure">2.1 Structure of EARL</a></li>
|
|
<li><a href="#uses">2.2 Uses of EARL</a></li>
|
|
<li><a href="#limitations">2.3 Limitations of EARL</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#using">Using the Evaluation and Report Language (EARL)</a>
|
|
<ul>
|
|
<li><a href="#report-comp">3.1 Basic report components</a></li>
|
|
<li><a href="#report-assert">3.2 Putting the pieces together</a></li>
|
|
<li><a href="#report-access">3.3 An accessibility example</a></li>
|
|
<li><a href="#report-negot">3.4 Identifying unambiguously the
|
|
resource</a></li>
|
|
<li><a href="#advanced">3.5 Advance usage</a>
|
|
<ul>
|
|
<li><a href="#extension">3.5.1 Extending the vocabularies</a></li>
|
|
<li><a href="#combine">3.5.2 Merging reports from different
|
|
sources</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#conformance">Conformance for EARL 1.0 Tools and Reports</a>
|
|
<ul>
|
|
<li><a href="#EARL10Reports">4.1 Conforming EARL 1.0 Reports</a></li>
|
|
<li><a href="#HTTP-graphs">4.2 Conforming HTTP-in-RDF Graphs</a></li>
|
|
<li><a href="#Content-graphs">4.3 Conforming Content-in-RDF
|
|
Graphs</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#serialization">Serializations of EARL Reports</a></li>
|
|
</ol>
|
|
|
|
<h3>Appendices<a id="appendices" name="appendices"></a></h3>
|
|
<ol id="tocApp" type="A">
|
|
<li><a href="#references">References</a></li>
|
|
<li><a href="#contributors">Contributors</a></li>
|
|
<li><a href="#changes">Document changes</a></li>
|
|
</ol>
|
|
</div>
|
|
<hr />
|
|
|
|
<h2><a id="introduction" name="introduction">1. Introduction</a></h2>
|
|
|
|
<p>This document is a guide to the Evaluation and Report Language (EARL) 1.0
|
|
for developers of software tools and proccesses. It provides an introduction to
|
|
EARL and its uses, defines conformance requirements for tools supporting EARL,
|
|
and describes approaches for serializing EARL data in different formats.</p>
|
|
|
|
<p>EARL is a vocabulary, the terms of which are defined across a set of
|
|
specifications and technical notes, that is used to describe test results in a
|
|
machine-readable format. This set of specifications includes:</p>
|
|
<ul>
|
|
<li><a href="http://www.w3.org/TR/EARL10-Schema/">Evaluation and Report
|
|
Language (EARL) 1.0 Schema</a></li>
|
|
<li><a href="http://www.w3.org/TR/HTTP-in-RDF10/"><acronym
|
|
title="Hyper Text Transfer Protocol">HTTP</acronym> Vocabulary in <acronym
|
|
title="Resource Description Framework">RDF</acronym> 1.0</a></li>
|
|
<li><a href="http://www.w3.org/TR/Content-in-RDF10/">Representing Content in
|
|
RDF 1.0</a></li>
|
|
<li><a href="http://www.w3.org/TR/Pointers-in-RDF10/">Pointer Methods in RDF
|
|
1.0</a></li>
|
|
</ul>
|
|
|
|
<p>An <a href="http://www.w3.org/WAI/intro/earl.php">Evaluation and Report
|
|
Language (EARL) Overview</a> is also available.</p>
|
|
|
|
<h3><a name="audience" id="audience">1.1 Audience of this Document</a></h3>
|
|
|
|
<p>The assumed audience of this document is developers of software tools and
|
|
processes, who want to implement EARL. This includes developers of quality
|
|
assurance tools, in particular developers of web accessibility evaluation
|
|
tools, web authoring tools, and web quality assurance tools.</p>
|
|
|
|
<p>This document assumes that the reader is familiar with the Resource
|
|
Description Framework (RDF) and can read its XML serialization. Readers who
|
|
wish to understand more about RDF should read a general introduction or the RDF
|
|
Primer [<a href="#ref-rdf-primer">RDF-PRIMER</a>]. This document is also
|
|
written with consideration for developers who are more accustomed to XML than
|
|
RDF, but reader is cautioned about notable differences between the syntax-based
|
|
nature of XML and the semantic-based nature of RDF.</p>
|
|
|
|
<h3><a name="conventions" id="conventions">1.2. Document conventions</a></h3>
|
|
|
|
<h4><a name="keywords" id="keywords">Keywords</a></h4>
|
|
|
|
<p>The keywords <strong class="keyword">must</strong>, <strong
|
|
class="keyword">required</strong>, <strong
|
|
class="keyword">recommended</strong>, <strong class="keyword">should</strong>,
|
|
<strong class="keyword">may</strong>, and <strong
|
|
class="keyword">optional</strong> in this document are used in accordance with
|
|
<acronym title="Request For Comments">RFC</acronym> 2119 [<a
|
|
href="#ref-rfc2119">RFC 2119</a>].</p>
|
|
|
|
<h4><a name="namespaces" id="namespaces">Namespaces</a></h4>
|
|
|
|
<p>The <acronym title="Resource Description Framework">RDF</acronym>
|
|
representation of the vocabulary defined by this document uses the namespace
|
|
<code>http://www.w3.org/ns/earl#</code>. The prefix <code>earl</code> is used
|
|
throughout this document to denote this namespace. Other prefixes used
|
|
throughout this document include:</p>
|
|
<ul>
|
|
<li><code>cnt</code> - Representing Content in RDF namespace <code><a
|
|
href="http://www.w3.org/2011/content#">http://www.w3.org/2011/content#</a></code>
|
|
(defined by [<a href="#ref-cnt">Content</a>])</li>
|
|
<li><code>dct</code> - Dublin Core (DC) namespace <code><a
|
|
href="http://purl.org/dc/terms/">http://purl.org/dc/terms/</a></code>
|
|
(defined by [<a href="#ref-dc">DC</a>])</li>
|
|
<li><code>doap</code> - Description of a Project (DOAP) namespace <code><a
|
|
href="http://usefulinc.com/ns/doap#">http://usefulinc.com/ns/doap#</a></code>
|
|
(defined by [<a href="#ref-doap">DOAP</a>])</li>
|
|
<li><code>foaf</code> - Friend of a Friend (FOAF) namespace <code><a
|
|
href="http://xmlns.com/foaf/0.1/#">http://xmlns.com/foaf/0.1/#</a></code>
|
|
(defined by [<a href="#ref-foaf">FOAF</a>])</li>
|
|
<li><code>http</code> - <acronym
|
|
title="Hyper Text Transfer Protocol">HTTP</acronym> Vocabulary in RDF
|
|
namespace <code><a
|
|
href="http://www.w3.org/2011/http#">http://www.w3.org/2011/http#</a></code>
|
|
(defined by [<a href="#ref-http">HTTP</a>])</li>
|
|
<li><code>ptr</code> - Pointer Methods in RDF namespace <code><a
|
|
href="http://www.w3.org/2009/pointers#">http://www.w3.org/2009/pointers#</a></code>
|
|
(defined by [<a href="#ref-ptrs">Pointers</a>])</li>
|
|
<li><code>rdf</code> - RDF namespace <code><a
|
|
href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a></code>
|
|
(defined by [<a href="#ref-rdf">RDF</a>])</li>
|
|
<li><code>rdfs</code> - RDF Schema namespace <code><a
|
|
href="http://www.w3.org/2000/01/rdf-schema#">http://www.w3.org/2000/01/rdf-schema#</a></code>
|
|
(defined by [<a href="#ref-rdfs">RDFS</a>])</li>
|
|
<li><code>xsd</code> - <acronym
|
|
title="Extensible Markup Language Schema">XMLS</acronym> namespace <code><a
|
|
href="http://www.w3.org/2001/XMLSchema#">http://www.w3.org/2001/XMLSchema#</a></code>
|
|
(defined by [<a href="#ref-xmls">XMLS</a>])</li>
|
|
</ul>
|
|
|
|
<h2><a id="about" name="about">2. About Evaluation and Report Language
|
|
(EARL)</a></h2>
|
|
|
|
<p>The Evaluation and Report Language (EARL) is a vocabulary to describe test
|
|
results in a machine-readable format. EARL supports the <em>test reporting</em>
|
|
stage in the testing process, as described by different standards on testing,
|
|
such as <acronym
|
|
title="Institute of Electrical and Electronics Engineers">IEEE</acronym> 829 <a
|
|
href="#ref-ieee829">[IEEE-829]</a>. Stages in the testing process include:</p>
|
|
|
|
<div class="figure">
|
|
<img alt="Elements of the testing process, described in the coming paragraphs."
|
|
id="fig1" name="fig1" src="images/testingProcess.png" />
|
|
|
|
<p><strong>Figure 1.</strong> Stages in the testing processes.</p>
|
|
</div>
|
|
<ol>
|
|
<li><strong>Test Plan</strong>, which prescribes the scope, approach,
|
|
resources, and schedule of the testing activities.</li>
|
|
<li><strong>Test Specification</strong>, which describes the test cases and
|
|
the test procedures for carrying out individual tests.</li>
|
|
<li><strong>Test Execution</strong>, which covers the actual execution of the
|
|
tests according to the test plan and specification.</li>
|
|
<li><strong>Test Reporting</strong>, which deals not only with the creation
|
|
of test results (i.e. reports), but may include their post-processing (e.g.
|
|
filtering, aggregation, summarization, etc.).</li>
|
|
</ol>
|
|
|
|
<p>EARL vocabulary can be used to describe resources to be tested as defined by
|
|
the <em>test plan</em>, test cases and criteria as defined by the <em>test
|
|
specification</em>, and outcomes of the <em>test execution</em> stages. More
|
|
importantly, EARL provides a format to uniformly record these and other
|
|
elements in semantically rich testing reports.</p>
|
|
|
|
<h3><a id="structure" name="structure">2.1 Structure of EARL</a></h3>
|
|
|
|
<p><span class="note">[Editor note: this section overlaps with <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#classes">section "2. Classes" of EARL
|
|
1.0 Schema</a> and will be reviewed after further review and
|
|
refinement.]</span></p>
|
|
|
|
<p>The terms of EARL are defined using the Resource Description Framework <a
|
|
href="#ref-rdf">[RDF]</a>, which is technology to express semantic data in a
|
|
machine-readable format. Like any RDF vocabulary, EARL is a collection of
|
|
statements about resources, each with a subject, a predicate (or verb), and an
|
|
object. RDF statements describe resources and relationships, such as in the
|
|
following example:</p>
|
|
<pre><#someone> <#checks> <#resource> .
|
|
<#resource> <#fails> <#test> .</pre>
|
|
|
|
<p>EARL provides a standardized vocabulary to describe specific resources and
|
|
relationships that are relevant to test reporting. The core construct of EARL
|
|
is an <strong><em>Assertion</em></strong>, which describes the context and
|
|
outcome of an individual test execution. It contains the following
|
|
information:</p>
|
|
<dl>
|
|
<dt><em>Assertor</em></dt>
|
|
<dd>This can include information about who or what ran the test. For
|
|
example human evaluators, automated accessibility checkers, or
|
|
combinations of these.</dd>
|
|
<dt><em>Test Subject</em></dt>
|
|
<dd>This can include web content (such as web pages, videos, applets,
|
|
etc.), software (such as authoring tools, user agents, etc.), or other
|
|
<em>things</em> being tested.</dd>
|
|
<dt><em>Test Criterion</em></dt>
|
|
<dd>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 testable statement.</dd>
|
|
<dt><em>Test Result</em></dt>
|
|
<dd>What was the outcome of the test? A test result could also include
|
|
contextual information such as error messages or relevant locations
|
|
within the test subject.</dd>
|
|
</dl>
|
|
|
|
<h4><a name="ClassesExamples" id="ClassesExamples">Examples</a></h4>
|
|
|
|
<div class="example">
|
|
<p><strong><a name="example-1" id="example-1">Example 1</a>:</strong> A person
|
|
carries out a manual evaluation of a web page to an accessibility
|
|
requirement.</p>
|
|
<dl>
|
|
<dt>Assertor</dt>
|
|
<dd>Bob B. Bobbington</dd>
|
|
<dt>Test Subject</dt>
|
|
<dd>A web page located at <code>http://www.example.org/page.html</code></dd>
|
|
<dt>Test Criterion</dt>
|
|
<dd>Success Criterion 1.1.1 of the Web Content Accessibility Guidelines
|
|
(WCAG) 2.0</dd>
|
|
<dt>Test Result</dt>
|
|
<dd>Passed</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<div class="example">
|
|
<p><strong><a name="example-2" id="example-2">Example 2</a>:</strong> A
|
|
software application carries out automated validation of a web page to a
|
|
technical specification.</p>
|
|
<dl>
|
|
<dt>Assertor</dt>
|
|
<dd>The <acronym title="World Wide Web Consortium">W3C</acronym> Markup
|
|
Validator located at <code>http://validator.w3.org/</code></dd>
|
|
<dt>Test Subject</dt>
|
|
<dd>The <acronym
|
|
title="Extensible Hyptertext Markup Language">XHTML</acronym> returned
|
|
from a GET request to the <acronym
|
|
title="Universal Resource Identifier">URI</acronym>
|
|
<code>http://www.example.org/page.html</code> at
|
|
<code>2004-04-14T14:00:04+1000</code></dd>
|
|
<dt>Test Criterion</dt>
|
|
<dd>The validity of the XHTML code</dd>
|
|
<dt>Test Result</dt>
|
|
<dd>Failed, the <code><li></code> element on line 53, char 7 was not
|
|
closed.</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<h3><a id="uses" name="uses">2.2 Uses of EARL</a></h3>
|
|
|
|
<p>As a standardized machine-readable format, EARL facilitates processing of
|
|
test results, such as those generated by automated or semi-automated web
|
|
accessibility evaluation tools. Web authoring tools and quality assurance
|
|
software can aggregate such test results to support website developers in
|
|
developing high quality web content. EARL has been specifically designed to
|
|
support a broad variety of uses cases, including the following:</p>
|
|
<dl>
|
|
<dt><strong>Combining results from software tools</strong></dt>
|
|
<dd>Quality assurance testing, such as web accessibility evaluation, is
|
|
often carried out by combinations of software tools and human evaluators.
|
|
For instance, different evaluators may be testing different parts of a
|
|
website, and single a evaluator may be using one or more software tools
|
|
for testing or recording test results. Some tests might be fully
|
|
automatable, and may be executed without any human intervention. Partial
|
|
reports from different software tools can be combined, by using EARL as
|
|
the standardized format for expressing test results.</dd>
|
|
<dt><strong>Exchanging data between software tools</strong></dt>
|
|
<dd>A standardized format for expressing test results also allows software
|
|
tools to exchange data. In particular, testing tools such as checkers and
|
|
validators can be more easily integrated into authoring tools, such as
|
|
content management systems. Testing tools can also be integrated into
|
|
quality assurance tools that help process and analyze the test results,
|
|
or that provide customized reports of the test results for different
|
|
audiences.</dd>
|
|
<dt><strong>Querying and analyzing test reports</strong></dt>
|
|
<dd>EARL provides fine-grained data about the context and outcome of test
|
|
results, including information about the tested resources and the testing
|
|
modalities, to allow many different types of queries and analysis. For
|
|
instance, queries can be used to generate customized reports for managers
|
|
who want a higher-level view, project managers who want information
|
|
specific to the resources they are managing, and developers who want
|
|
detailed bug reports about errors they need to fix. The nature of RDF
|
|
also allows semantic inference and other approaches for advanced data
|
|
mining.</dd>
|
|
<dt><strong>Benchmarking software testing tools</strong></dt>
|
|
<dd>EARL can also be used to compare the results provided by different
|
|
testing tools, such as web accessibility evaluation tools. In particular,
|
|
it can be used to compare the results provided from executing test suites
|
|
that have normalized outcome, and so benchmark deviations such as false
|
|
positives and false negative generated by different testing tools.</dd>
|
|
<dt><strong>Evaluating dynamic and multilingual websites</strong></dt>
|
|
<dd>EARL includes vocabulary to describe comprehensively web resources,
|
|
including any parts of the entire <acronym
|
|
title="Hyper Text Transfer Protocol">HTTP</acronym> exchange between a
|
|
client and a server. This is particularly useful to record HTTP headers
|
|
relevant for language and content negotiation, as well as the actual
|
|
content received from the server and that has been tested. Moreover, user
|
|
interaction with a website can be recorded, to help describe the
|
|
particular context of the test execution.</dd>
|
|
<dt><strong>Annotating web resources with metadata</strong></dt>
|
|
<dd>Test results can also be used to describe the availability or lack of
|
|
particular features of the resources tested. As RDF data, EARL test
|
|
results are particularly useful as metadata for describing features of
|
|
web content in a machine-readable format. For instance, EARL reports
|
|
could be associated with web resources using RDFa <span
|
|
class="note">[provide reference]</span>, and can be processed by
|
|
RDF-aware browsers and search-engines to serve particular user
|
|
preferences.</dd>
|
|
</dl>
|
|
|
|
<h3><a id="limitations" name="limitations">2.3 Limitations of EARL</a></h3>
|
|
|
|
<p><span class="note">[Editor note: this section will be extended and refined
|
|
in later iterations</span></p>
|
|
|
|
<p>It is important to consider potential security and privacy issues when using
|
|
EARL. For instance, test results expressed in EARL could contain sensitive
|
|
information such as the internal directory structure of a web server, username
|
|
and password information, parts of restricted Web pages, or testing modalities.
|
|
The scope of this document is limited to the use of the EARL vocabulary:
|
|
security and privacy considerations need to be made at the application level.
|
|
For example, certain parts of the data may be restricted to appropriate user
|
|
permissions, encrypted or obfuscated.</p>
|
|
|
|
<h2><a id="using" name="using">3. Using the Evaluation and Report Language
|
|
(EARL)</a></h2>
|
|
|
|
<p class="note">[Editor note: this entire section will be revised and refined
|
|
in later iterations.</p>
|
|
|
|
<p><acronym title="Evaluation and Report Language">EARL</acronym> is not a
|
|
standalone vocabulary and builds on top of many existing vocabularies that
|
|
cover some of its needs for metadata definition. This approach avoids the
|
|
re-creation of applications already established and tested like the Dublin Core
|
|
elements. The referenced specifications are:</p>
|
|
<ul>
|
|
<li><a href="http://dublincore.org/documents/dcmi-terms/">Dublin Core
|
|
Metadata Initiative (DCMI) Terms</a>. Dublin Core is a metadata standard
|
|
for describing digital resources, often expressed in XML. The
|
|
aforementioned document is an up-to-date specification of all metadata
|
|
terms maintained by the Dublin Core Metadata Initiative. Included are the
|
|
fifteen terms of the Dublin Core Metadata Element Set, which have also been
|
|
published as <acronym
|
|
title="Internet Engineering Task Force">IETF</acronym> <acronym
|
|
title="Request For Comments">RFC</acronym> 5013 <a
|
|
href="#ref-rfc-5013">[RFC5013]</a>, <acronym
|
|
title="American National Standards Institute">ANSI</acronym>/<acronym
|
|
title="National Information Standards Organization">NISO</acronym> Standard
|
|
Z39.85-2007 <a href="#ref-nisoz3985">[NISOZ3985]</a> and <acronym
|
|
title="International Standards Organisation">ISO</acronym> Standard 15836
|
|
<a href="#ref-iso15836">[ISO15836]</a>. RDF Schema versions of the DCMI
|
|
term declarations are available at <a
|
|
href="#ref-dcmischemas">[DCMISCHEMAS]</a>.</li>
|
|
<li><a href="http://www.foaf-project.org/">Friend of a Friend (FOAF)
|
|
project</a>. The FOAF project is about creating a Web of machine-readable
|
|
resources describing people, the links between them, and the things they
|
|
create and do <a href="#ref-foaf">[FOAF]</a>.</li>
|
|
<li>Representing Content in RDF <a href="#ref-content">[Content-RDF]</a>.
|
|
This is an RDF vocabulary to semantically represent any type of content,
|
|
either on the Web or in any storage media.</li>
|
|
<li><acronym title="Hypertext Transfer Protocol">HTTP</acronym> vocabulary in
|
|
RDF <a href="#ref-httprdf">[HTTP-RDF]</a>. This is an RDF vocabulary used
|
|
to represent HTTP requests and responses. It is useful to identify online
|
|
resources accessed via HTTP(S), which cannot be uniquely resolved via a URI
|
|
<a href="#ref-uri">[URI]</a>. Typical examples are Web servers accessed via
|
|
content negotiation, Web applications using the POST method, etc.</li>
|
|
<li>Pointer Methods in RDF <a href="#ref-pointers">[Pointers-RDF]</a>. This
|
|
is an RDF vocabulary to enable pointing in an accurate way to certain parts
|
|
within a document, particularly HTML and XML documents.</li>
|
|
</ul>
|
|
|
|
<p>These vocabularies are referenced via namespaces in the corresponding RDF
|
|
serialization. The list of the <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#namespaces">normative namespaces</a>
|
|
can be found in the EARL 1.0 Schema. RDF can be serialized in many equivalent
|
|
ways, but its XML presentation <a href="#ref-rdf-xml">[RDF/XML]</a> is the
|
|
preferred method and will be used throughout this document. </p>
|
|
|
|
<h3><a id="report-comp" name="report-comp">3.1 Basic report components</a></h3>
|
|
|
|
<p>In the following sections, we will construct an <acronym
|
|
title="Evaluation and Report Language">EARL</acronym> report with several
|
|
examples of each component of the report. The root element of any EARL report
|
|
is an RDF node, in which we declare the namespaces used to define additional
|
|
classes and/or properties.</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example301" name="example301"><strong>Example 3.1.</strong></a> The
|
|
root element of an EARL report [<a href="data/report_rx439.rdf"
|
|
title="EARL report only with root element." type="">download file for example
|
|
3.1</a>].</p>
|
|
<pre> <rdf:RDF
|
|
xmlns:earl="http://www.w3.org/ns/earl#"
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
|
|
|
|
<!-- ... -->
|
|
|
|
</rdf:RDF></pre>
|
|
</div>
|
|
|
|
<p>Next, let us assume that we want to express the results of an <acronym
|
|
title="eXtensible HyperText Markup Language">XHTML</acronym> validation in a
|
|
given document with the <a href="http://validator.w3.org/">W3C HTML
|
|
Validator</a>. The tested document can be found in the fictitious URL
|
|
<code>http://example.org/resource/index.html</code> and has the following HTML
|
|
code:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example302" name="example302"><strong>Example 3.2.</strong></a> An
|
|
XHTML document to be validated [<a href="data/example_am27.html"
|
|
type="">download file for example 3.2</a>].</p>
|
|
<pre> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
<head>
|
|
<title>Example of project pages</title>
|
|
</head>
|
|
<body>
|
|
<h1>Project description</h1>
|
|
<h2>My project name</h2>
|
|
|
|
<!-- ... -->
|
|
</body>
|
|
</html></pre>
|
|
</div>
|
|
|
|
<p>This document has three errors that will constitute the basis of our EARL
|
|
report:</p>
|
|
<ol>
|
|
<li>Error: Line 14, column 7: document type does not allow element
|
|
"<code>li</code>" here; missing one of "<code>ul</code>", "<code>ol</code>"
|
|
start-tag.</li>
|
|
<li>Error: Line 15, column 6: end tag for "<code>li</code>" omitted, but
|
|
OMITTAG NO was specified.</li>
|
|
<li>Error: Line 16, column 9: there is no attribute "<code>alt</code>".</li>
|
|
</ol>
|
|
|
|
<p>The first step is to define <strong>who</strong> performed the test, either
|
|
a human being or a software tool. This is noted in the EARL framework as an
|
|
<code>Assertor</code>. Let us consider different use cases. First, let us
|
|
assume that only the W3C HTML Validator performed the test. This could be
|
|
expressed as an <code>Assertor</code>:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example303" name="example303"><strong>Example 3.3.</strong></a> A
|
|
generic tool as an <code>Assertor</code> [<a href="data/report_gh438.rdf"
|
|
type="">download file for example 3.3</a>].</p>
|
|
<pre> <earl:Assertor rdf:about="http://validator.w3.org/about.html#">
|
|
<dct:title xml:lang="en">W3C HTML Validator</dct:title>
|
|
<dct:description xml:lang="en">
|
|
W3C Markup Validation Service, a free service that checks Web documents in formats like HTML and XHTML for conformance to W3C Recommendations and other standards.
|
|
</dct:description>
|
|
</earl:Assertor>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>Notice that the <code>Assertor</code> class provides a mechanism by which to
|
|
specify more information by leveraging standard Dublin Core properties like
|
|
<code>dct:title</code> and <code>dct:description</code>. This is not the only
|
|
possible serialization of this report. An alternative, expressed in N3, could
|
|
be:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example304" name="example304"><strong>Example 3.4.</strong></a> An
|
|
<code>Assertor</code> expressed in N3 notation [<a href="data/report_ju243.n3"
|
|
type="">download file for example 3.4</a>].</p>
|
|
<pre> @prefix earl: <http://www.w3.org/ns/earl#> .
|
|
@prefix dct: <http://purl.org/dc/terms/> .
|
|
|
|
<http://validator.w3.org/about.html#>
|
|
a earl:Assertor ;
|
|
dct:description """W3C Markup Validation Service, a free service that checks Web documents in formats like HTML and XHTML for conformance to W3C Recommendations and other standards."""@en ;
|
|
dct:title "W3C HTML Validator"@en .
|
|
</pre>
|
|
</div>
|
|
|
|
<p>An <code>Assertor</code> is a generic type. EARL allows the use of certain
|
|
FOAF classes like <code>Agent</code>, <code>Organisation</code>, or
|
|
<code>Person</code> to provide more semantic information on the type of
|
|
assertor. Additionally, EARL defines the <code>Software</code> class to declare
|
|
tool assertors. Thus, our W3C Validator could be described more adequately in
|
|
the following way:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example305" name="example305"><strong>Example 3.5.</strong></a> A
|
|
<code>Software</code> assertor [<a href="data/report_ok762.rdf"
|
|
type="">download file for example 3.5</a>].</p>
|
|
<pre> <earl:Software rdf:about="http://validator.w3.org/about.html#">
|
|
<dct:title xml:lang="en">W3C HTML Validator</dct:title>
|
|
<dct:hasVersion>0.7.1</dct:hasVersion>
|
|
<dct:description xml:lang="en">
|
|
W3C Markup Validation Service, a free service that checks web documents in formats like HTML and XHTML for conformance to W3C Recommendations and other standards.
|
|
</dct:description>
|
|
</earl:Software>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>Notice the aditional property, <code>dct:hasVersion</code>, indicating the
|
|
version of the software. Let us consider now the case where the assertor is a
|
|
person. This can be expressed as in the following example:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example306" name="example306"><strong>Example 3.6.</strong></a> A
|
|
<code>Person</code> as an EARL assertor [<a href="data/report_wl583.rdf"
|
|
type="">download file for example 3.6</a>].</p>
|
|
<pre> <foaf:Person rdf:ID="john">
|
|
<foaf:mbox rdf:resource="mailto:john@example.org"/>
|
|
<foaf:name>John Doe</foaf:name>
|
|
</foaf:Person>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>We could combine assertors as well. The typical example could be an expert
|
|
evaluator and a software tool, which perform the analysis. This set of
|
|
assertors can be expressed under the umbrella of a <code>foaf:Group</code>. We
|
|
should define who is the main assertor within a <code>foaf:Group</code> through
|
|
the <code>mainAssertor</code> property (notice in the example how the person is
|
|
defined as a blank node):</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example307" name="example307"><strong>Example 3.7.</strong></a> A
|
|
<code>foaf:Group</code> (software tool and person) as an assertor [<a
|
|
href="data/report_mr472.rdf" type="">download file for example 3.7</a>].</p>
|
|
<pre> <foaf:Group rdf:ID="assertor01">
|
|
<dct:title>John Doe and the W3C HTML Validator</dct:title>
|
|
<earl:mainAssertor rdf:resource="http://validator.w3.org/about.html#"/>
|
|
<foaf:member>
|
|
<foaf:Person>
|
|
<foaf:mbox rdf:resource="mailto:john@example.org"/>
|
|
<foaf:name>John Doe</foaf:name>
|
|
</foaf:Person>
|
|
</foaf:member>
|
|
</foaf:Group>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>The second step is to define <strong>what</strong> was analyzed, the tested
|
|
resource. For that, EARL defines the <code>TestSubject</code> class. This class
|
|
is a generic wrapper for things to be tested like Web resources
|
|
(<code>cnt:Content</code>) or software (<code>earl:Software</code>). In this
|
|
case, the <a href="#example302">Example 3.2</a> could be represented as:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example308" name="example308"><strong>Example 3.8.</strong></a> A
|
|
<code>TestSubject</code> with some Dublin Core properties (non-abbreviated
|
|
RDF/XML serialization) [<a href="data/report_xd488.rdf" type="">download file
|
|
for example 3.8</a>].</p>
|
|
<pre> <rdf:Description rdf:about="http://example.org/resource/index.html">
|
|
<dct:title xml:lang="en">Project Description</dct:title>
|
|
<dct:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2006-02-14</dct:date>
|
|
<rdf:type rdf:resource="http://www.w3.org/ns/earl#TestSubject"/>
|
|
</rdf:Description>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>Using the Representing Content in RDF vocabulary (via the
|
|
<code>cnt:ContentAsText</code> class), we could insert the content of the test
|
|
XHTML file into the report:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example309" name="example309"><strong>Example 3.9.</strong></a> A
|
|
test subject expressed as <code>cnt:ContentAsText</code> (notice that the
|
|
special XML characters have been escaped because the document is not
|
|
well-formed to be expressed as an XML Literal) [<a href="data/report_cy384.rdf"
|
|
type="">download file for example 3.9</a>].</p>
|
|
<pre> <cnt:ContentAsText rdf:about="http://example.org/resource/index.html">
|
|
<dct:title xml:lang="en">Project Description</dct:title>
|
|
<dct:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2006-02-14</dct:date>
|
|
<cnt:characterEncoding>UTF-8</cnt:characterEncoding>
|
|
<cnt:chars>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
|
|
|
|
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
|
|
|
|
&lt;html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
|
|
&lt;head&gt;
|
|
&lt;title&gt;Example of project pages&lt;/title&gt;
|
|
&lt;/head&gt;
|
|
&lt;body&gt;
|
|
&lt;h1&gt;Project description&lt;/h1&gt;
|
|
&lt;h2&gt;My project name&lt;/h2&gt;
|
|
&lt;p&gt;The strategic goal of this project is to make you understand EARL.&lt;/p&gt;
|
|
|
|
&lt;ul&gt;
|
|
&lt;li&gt;Here comes objective 1.
|
|
&lt;li&gt;Here comes objective 2.&lt;/li&gt;
|
|
&lt;/ul&gt;
|
|
&lt;p alt="what?"&gt;And goodbye ...&lt;/p&gt;
|
|
&lt;/body&gt;
|
|
&lt;/html&gt;
|
|
</cnt:chars>
|
|
</cnt:ContentAsText>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>The third step is to define the <strong>criterion</strong> used for testing
|
|
the resource. EARL defines test criteria under the umbrella of the
|
|
<code>TestCriterion</code> class. This class has two subclasses,
|
|
<code>TestRequirement</code> and <code>TestCase</code>, depending on whether
|
|
the criterion is a high level requirement, composed of many tests, or an atomic
|
|
test case. In our example, we are testing validity against the <a
|
|
href="http://www.w3.org/TR/xhtml1/">XHTML 1.0</a> Strict specification, which
|
|
could be expressed in the following way via the <code>TestRequirement</code>
|
|
class:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example310" name="example310"><strong>Example 3.10.</strong></a> A
|
|
<code>TestRequirement</code> with some Dublin Core properties [<a
|
|
href="data/report_zk483.rdf" type="">download file for example 3.10</a>].</p>
|
|
<pre> <earl:TestRequirement rdf:about="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<dct:title xml:lang="en">XHTML 1.0 Strict Document Type Definition</dct:title>
|
|
<dct:description xml:lang="en">DTD for XHTML 1.0 Strict.</dct:description>
|
|
</earl:TestRequirement>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>The fourth step is to specify the <strong>results</strong> of the test.
|
|
There were three errors discovered by the W3C Validator that need to be
|
|
presented as <code>TestResult</code>s. In this case, we present only the
|
|
errors, but it is also possible to present positive results. In the example
|
|
below, we present the message errors as text messages within XHTML snippets. We
|
|
will see later how to improve the machine-readability of such results.</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example311" name="example311"><strong>Example 3.11.</strong></a>
|
|
Results of the tests with the validator [<a href="data/report_ni222.rdf"
|
|
type="">download file for example 3.11</a>].</p>
|
|
<pre> <earl:TestResult rdf:ID="error1">
|
|
<dct:description rdf:parseType="Literal">
|
|
<div xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>Error - Line 14 column 7: document type does not allow element
|
|
<code>li</code>here; missing one of
|
|
<code>ul</code>, <code>ol</code> start-tag.</p>
|
|
</div>
|
|
</dct:description>
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
|
|
<earl:TestResult rdf:ID="error2">
|
|
<dct:description rdf:parseType="Literal">
|
|
<div xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>Error - Line 15 column 6: end tag for
|
|
<code>li</code> omitted, but OMITTAG NO was specified.</p>
|
|
</div>
|
|
</dct:description>
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
|
|
<earl:TestResult rdf:ID="error3">
|
|
<dct:description rdf:parseType="Literal">
|
|
<div xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
<p>Error - Line 16 column 9: there is no attribute
|
|
<code>alt</code>.</p>
|
|
</div>
|
|
</dct:description>
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
</pre>
|
|
</div>
|
|
|
|
<h3><a id="report-assert" name="report-assert">3.2 Putting the pieces
|
|
together</a></h3>
|
|
|
|
<p>The final step is to merge together the created components. The <acronym
|
|
title="Evaluation and Report Language">EARL</acronym> statements for this
|
|
purpose are called <code>Assertion</code>s, and have four key properties:
|
|
<code>earl:assertedBy</code>, <code>earl:subject</code>, <code>earl:test</code>
|
|
and <code>earl:result</code>. Each of them serves to point to the corresponding
|
|
assertors, test subjects, test requirements, and results, respectively. From
|
|
our previous examples, we could build our first complete report with our three
|
|
assertions:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example312" name="example312"><strong>Example 3.12.</strong></a>
|
|
Results of the tests with the W3C Validator [<a href="data/report_an583.rdf"
|
|
type="">download file for example 3.12</a>].</p>
|
|
<pre> <earl:Assertion rdf:ID="ass1">
|
|
<earl:result rdf:resource="#error1" />
|
|
<earl:test rdf:resource="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
|
|
<earl:subject rdf:resource="http://example.org/resource/index.html" />
|
|
<earl:assertedBy rdf:resource="#assertor01" />
|
|
</earl:Assertion>
|
|
<earl:Assertion rdf:ID="ass2">
|
|
<earl:result rdf:resource="#error2" />
|
|
<earl:test rdf:resource="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
|
|
<earl:subject rdf:resource="http://example.org/resource/index.html" />
|
|
<earl:assertedBy rdf:resource="#assertor01" />
|
|
</earl:Assertion>
|
|
<earl:Assertion rdf:ID="ass3">
|
|
<earl:result rdf:resource="#error3" />
|
|
<earl:test rdf:resource="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
|
|
<earl:subject rdf:resource="http://example.org/resource/index.html" />
|
|
<earl:assertedBy rdf:resource="#assertor01" />
|
|
</earl:Assertion>
|
|
</pre>
|
|
</div>
|
|
|
|
<h3><a id="report-access" name="report-access">3.3 An accessibility
|
|
example</a></h3>
|
|
|
|
<p>Our next example presents the results of an accessibility test in a given
|
|
Web resource. Let us consider a simple XHTML page, which presents the image of
|
|
a cat:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example313" name="example313"><strong>Example 3.13.</strong></a> An
|
|
XHTML document to be verified [<a href="data/example_ic03.html"
|
|
type="">download file for example 3.13</a>].</p>
|
|
<pre> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
<head>
|
|
<title>A cat's photography</title>
|
|
</head>
|
|
<body>
|
|
<h1>A cat's photography</h1>
|
|
<p>Image of a cat who likes
|
|
<acronym title="Evaluation and Report Language">EARL</acronym>, although it
|
|
seems quite tired.
|
|
<img src="../images/cat.jpg" alt="Image of a white cat with black spots."/>
|
|
</p>
|
|
</body>
|
|
</html></pre>
|
|
</div>
|
|
|
|
<p>We have in this case a software tool called "Cool Tool" that performs a test
|
|
against the <a
|
|
href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65">Common Failure
|
|
F65</a> from the (X)HTML techniques for WCAG 2.0 <a
|
|
href="#ref-wcag20">[WCAG20]</a>. This technique proofs the existence of the
|
|
<code>alt</code> attribute for given (X)HTML elements like <code>img</code>.
|
|
The software can be represented as:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example314" name="example314"><strong>Example 3.14.</strong></a> A
|
|
<code>Software</code> assertor [<a href="data/report_lm104.rdf"
|
|
type="">download file for example 3.14</a>].</p>
|
|
<pre><earl:Software rdf:about="http://example.org/cooltool/">
|
|
<dct:title xml:lang="en">Cool Tool accessibility checker</dct:title>
|
|
<dct:hasVersion>1.0.c</dct:hasVersion>
|
|
<dct:description xml:lang="en">A reliable compliance checker for Web Accessibility</dct:description>
|
|
</earl:Software>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>The test requirement can be represented as:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example315" name="example315"><strong>Example 3.15.</strong></a> A
|
|
<code>TestCase</code> for a WCAG 2.0 technique [<a href="data/report_lm208.rdf"
|
|
type="">download file for example 3.15</a>].</p>
|
|
<pre> <earl:TestCase rdf:about="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65">
|
|
<dct:title xml:lang="en">Failure of Success Criterion 1.1.1 from WCAG 2.0</dct:title>
|
|
<dct:description xml:lang="en">Failure due to omitting the alt attribute on img elements, area elements, and input elements of type image.</dct:description>
|
|
</earl:TestCase>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>We can make the test result more amenable to machine processing by making
|
|
use of the Pointers <a href="#ref-pointers">[Pointers-RDF]</a> vocabulary. In
|
|
this case, we identify the line number where the test was compliant:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example316" name="example316"><strong>Example 3.16.</strong></a> A
|
|
<code>TestResult</code> with a pointer [<a href="data/report_lm499.rdf"
|
|
type="">download file for example 3.16</a>].</p>
|
|
<pre> <ptr:LineCharPointer rdf:ID="pointer">
|
|
<ptr:lineNumber>15</ptr:lineNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
|
|
<earl:TestResult rdf:ID="result">
|
|
<earl:pointer rdf:resource="#pointer" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#passed" />
|
|
</earl:TestResult>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>Which leads to the following assertion:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example317" name="example317"><strong>Example 3.17.</strong></a>
|
|
Accessibility <code>Assertion</code> [<a href="data/report_lm499.rdf"
|
|
title="HTML file to be validated." type="">download file for example
|
|
3.17</a>].</p>
|
|
<pre> <earl:Assertion rdf:ID="assert">
|
|
<earl:result rdf:resource="result" />
|
|
<earl:test rdf:resource="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65" />
|
|
<earl:subject rdf:resource="http://example.org/resource/index.html" />
|
|
<earl:assertedBy rdf:resource="http://example.org/cooltool/" />
|
|
</earl:Assertion>
|
|
</pre>
|
|
</div>
|
|
|
|
<h3><a id="report-negot" name="report-negot">3.4 Identifying unambiguously the
|
|
resource</a></h3>
|
|
|
|
<p>There are cases where the identification of a resource on the Web requires
|
|
more than a URL. This occurs typically when the user agent and the server
|
|
exchange HTTP messages via <a
|
|
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html#sec12">Content
|
|
Negotiation</a> to deliver the best possible alternative to the client. A
|
|
common scenario appears when the user expresses a preference for given
|
|
languages with a ranking via the <a
|
|
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">Accept-Language</a>
|
|
header. Under those circumstances, it is necessary to use the HTTP vocabulary
|
|
in RDF <a href="#ref-httprdf">[HTTP-RDF]</a> to identify correctly the
|
|
<code>TestSubject</code>.</p>
|
|
|
|
<p>Let us assume that our exemplary Web server can deliver under the URL
|
|
<code>http://example.org/resource/index.html</code> two versions (English and
|
|
Spanish) of a given XHTML page. The English version can be seen in <a
|
|
href="#example313">Example 3.13</a>. The Spanish version can be seen in the
|
|
listing below:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example318" name="example318"><strong>Example 3.18.</strong></a> An
|
|
XHTML file resource in Spanish [<a href="data/example_jd03.html"
|
|
type="">download file for example 3.18</a>].</p>
|
|
<pre> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html lang="es" xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
|
|
<head>
|
|
<title>Fotografia de un gato</title>
|
|
</head>
|
|
|
|
<body>
|
|
<h1>Fotografia de un gato</h1>
|
|
<p>Imagen de un gato al que le gusta
|
|
<acronym title="Evaluation and Report Language" xml:lang="en" lang="en">EARL</acronym>, aunque aparenta estar muy cansado.
|
|
<img src="../images/cat.jpg" />
|
|
</p>
|
|
</body>
|
|
|
|
</html></pre>
|
|
</div>
|
|
|
|
<p>The English resource can be represented as:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example319" name="example319"><strong>Example 3.19.</strong></a> RDF
|
|
representation of <a href="#example313">Example 3.13</a> [<a
|
|
href="data/report_cn001.rdf" type="">download file for example 3.19</a>].</p>
|
|
<pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:earl="http://www.w3.org/ns/earl#"
|
|
xmlns:dct="http://purl.org/dc/terms/"
|
|
xmlns:cnt="http://www.w3.org/2008/content#"
|
|
xmlns:http="http://www.w3.org/2006/http#"
|
|
xml:base="http://www.example.org/resource/content_001#">
|
|
|
|
<cnt:ContentAsBase64 rdf:ID="content1">
|
|
<cnt:bytes rdf:datatype="http://www.w3.org/2001/XMLSchema#base64Binary">PD94bWwgdmVyc2lv...</cnt:bytes>
|
|
</cnt:ContentAsBase64>
|
|
|
|
<http:Response rdf:ID="response1">
|
|
<http:httpVersion>1.1</http:httpVersion>
|
|
<http:statusCodeNumber>200</http:statusCodeNumber>
|
|
<http:sc rdf:resource="http://www.w3.org/2008/http-statusCodes#200" />
|
|
<http:reasonPhrase>OK</http:reasonPhrase>
|
|
<http:headers rdf:parseType="Collection">
|
|
<http:MessageHeader>
|
|
<http:fieldName>Vary</http:fieldName>
|
|
<http:hdrName rdf:resource="http://www.w3.org/2008/http-headers#vary" />
|
|
<http:fieldValue>Accept-Language</http:fieldValue>
|
|
</http:MessageHeader>
|
|
<!-- ... -->
|
|
</http:headers>
|
|
<http:body rdf:resource="#content1" />
|
|
</http:Response>
|
|
|
|
<http:Connection rdf:ID="connection1">
|
|
<http:connectionAuthority>www.example.org:80
|
|
</http:connectionAuthority>
|
|
<http:requests rdf:parseType="Collection">
|
|
<http:Request rdf:resource="#request1" />
|
|
</http:requests>
|
|
</http:Connection>
|
|
|
|
<http:Request rdf:ID="request1">
|
|
<http:httpVersion>1.1</http:httpVersion>
|
|
<http:methodName>GET</http:methodName>
|
|
<http:mthd rdf:resource="http://www.w3.org/2008/http-methods#GET" />
|
|
<http:abs_path>/resource/index.html</http:abs_path>
|
|
<http:headers rdf:parseType="Collection">
|
|
<http:MessageHeader>
|
|
<http:fieldName>Accept-Language</http:fieldName>
|
|
<http:hdrName rdf:resource="http://www.w3.org/2008/http-headers#accept-language" />
|
|
<http:fieldValue>en</http:fieldValue>
|
|
</http:MessageHeader>
|
|
<!-- ... -->
|
|
</http:headers>
|
|
<http:resp rdf:resource="#response1" />
|
|
</http:Request>
|
|
|
|
</rdf:RDF></pre>
|
|
</div>
|
|
|
|
<p>The Spanish one could be represented as:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example320" name="example320"><strong>Example 3.20.</strong></a> RDF
|
|
representation of <a href="#example318">Example 3.18</a> [<a
|
|
href="data/report_cn002.rdf" type="">download file for example 3.20</a>].</p>
|
|
<pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:earl="http://www.w3.org/ns/earl#"
|
|
xmlns:dct="http://purl.org/dc/terms/"
|
|
xmlns:cnt="http://www.w3.org/2008/content#"
|
|
xmlns:http="http://www.w3.org/2006/http#"
|
|
xml:base="http://www.example.org/resource/content_002#">
|
|
|
|
<cnt:ContentAsBase64 rdf:ID="content2">
|
|
<cnt:bytes rdf:datatype="http://www.w3.org/2001/XMLSchema#base64Binary"
|
|
>PD94bWwgdmVyc2lvbj...</cnt:bytes>
|
|
</cnt:ContentAsBase64>
|
|
|
|
<http:Response rdf:ID="response2">
|
|
<http:httpVersion>1.1</http:httpVersion>
|
|
<http:statusCodeNumber>200</http:statusCodeNumber>
|
|
<http:sc rdf:resource="http://www.w3.org/2008/http-statusCodes#200" />
|
|
<http:reasonPhrase>OK</http:reasonPhrase>
|
|
<http:headers rdf:parseType="Collection">
|
|
<http:MessageHeader>
|
|
<http:fieldName>Vary</http:fieldName>
|
|
<http:hdrName rdf:resource="http://www.w3.org/2008/http-headers#vary" />
|
|
<http:fieldValue>Accept-Language</http:fieldValue>
|
|
</http:MessageHeader>
|
|
<!-- ... -->
|
|
</http:headers>
|
|
<http:body rdf:resource="#content2" />
|
|
</http:Response>
|
|
|
|
<http:Connection rdf:ID="connection2">
|
|
<http:connectionAuthority>www.example.org:80</http:connectionAuthority>
|
|
<http:requests rdf:parseType="Collection">
|
|
<http:Request rdf:resource="#request2" />
|
|
</http:requests>
|
|
</http:Connection>
|
|
|
|
<http:Request rdf:ID="request2">
|
|
<http:httpVersion>1.1</http:httpVersion>
|
|
<http:methodName>GET</http:methodName>
|
|
<http:mthd rdf:resource="http://www.w3.org/2008/http-methods#GET" />
|
|
<http:abs_path>/resource/index.html</http:abs_path>
|
|
<http:headers rdf:parseType="Collection">
|
|
<http:MessageHeader>
|
|
<http:fieldName>Accept-Language</http:fieldName>
|
|
<http:hdrName rdf:resource="http://www.w3.org/2008/http-headers#accept-language" />
|
|
<http:fieldValue>es</http:fieldValue>
|
|
</http:MessageHeader>
|
|
<!-- ... -->
|
|
</http:headers>
|
|
<http:resp rdf:resource="#response2" />
|
|
</http:Request>
|
|
|
|
</rdf:RDF></pre>
|
|
</div>
|
|
|
|
<p>Strictly speaking, for the representation of the <code>TestSubject</code>,
|
|
only the <code>http:Response</code> object is needed. However, it is
|
|
recommended to use the <code>http:Request</code> and
|
|
<code>http:Connection</code> objects to facilitate the replicability of the
|
|
results. The replicability of the results is also time-dependent as the
|
|
resources may change over time. Therefore, timestamps or modification dates in
|
|
the reports are also recommended.</p>
|
|
|
|
<p>We are now in the situation to allow our Cool Tool accessibility checker
|
|
(see <a href="#example314">Example 3.14</a>) to produce accurate reports on
|
|
both versions of the page. The evaluation report for the English resource
|
|
(assuming the same test requirement of <a href="#example315">Example 3.15</a>)
|
|
looks like the following snippet:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example321" name="example321"><strong>Example 3.21.</strong></a>
|
|
Evaluation report for the English XHTML resource [<a
|
|
href="data/report_lm801.rdf" type="">download file for example 3.21</a>].</p>
|
|
<pre><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:earl="http://www.w3.org/ns/earl#"
|
|
xmlns:dct="http://purl.org/dc/terms/"
|
|
xmlns:cnt="http://www.w3.org/2008/content#"
|
|
xmlns:ptr="http://www.w3.org/2009/pointers#"
|
|
xml:base="http://www.example.org/earl/report1#">
|
|
|
|
<earl:Assertion rdf:ID="assert">
|
|
<earl:result rdf:resource="result" />
|
|
<earl:test rdf:resource="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65" />
|
|
<earl:subject rdf:resource="http://www.example.org/resource/content_001#response1" />
|
|
<earl:assertedBy rdf:resource="http://example.org/cooltool/" />
|
|
</earl:Assertion>
|
|
|
|
<earl:Software rdf:about="http://example.org/cooltool/">
|
|
<dct:title xml:lang="en">Cool Tool accessibility checker</dct:title>
|
|
<dct:hasVersion>1.0.c</dct:hasVersion>
|
|
<dct:description xml:lang="en">A reliable compliance checker for Web Accessibility</dct:description>
|
|
</earl:Software>
|
|
|
|
<earl:TestCase rdf:about="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65">
|
|
<dct:title xml:lang="en">Failure of Success Criterion 1.1.1 from WCAG 2.0</dct:title>
|
|
<dct:description xml:lang="en">Failure due to omitting the alt attribute on img elements, area elements, and input elements of type image.</dct:description>
|
|
</earl:TestCase>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer">
|
|
<ptr:lineNumber>15</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://www.example.org/resource/content_001#content1a" />
|
|
</ptr:LineCharPointer>
|
|
|
|
<earl:TestResult rdf:ID="result">
|
|
<earl:pointer rdf:resource="#pointer" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#passed" />
|
|
</earl:TestResult>
|
|
|
|
</rdf:RDF></pre>
|
|
</div>
|
|
|
|
<p>And the evaluation report for the Spanish resource looks like the
|
|
following:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example322" name="example322"><strong>Example 3.22.</strong></a>
|
|
Evaluation report for the Spanish XHTML resource [<a
|
|
href="data/report_lm802.rdf" type="">download file for example 3.22</a>].</p>
|
|
<pre> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:earl="http://www.w3.org/ns/earl#"
|
|
xmlns:dct="http://purl.org/dc/terms/"
|
|
xmlns:cnt="http://www.w3.org/2008/content#"
|
|
xmlns:ptr="http://www.w3.org/2009/pointers#"
|
|
xml:base="http://www.example.org/earl/report2#">
|
|
|
|
<earl:Assertion rdf:ID="assert">
|
|
<earl:result rdf:resource="result" />
|
|
<earl:test rdf:resource="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65" />
|
|
<earl:subject rdf:resource="http://www.example.org/resource/content_002#response2" />
|
|
<earl:assertedBy rdf:resource="http://example.org/cooltool/" />
|
|
</earl:Assertion>
|
|
|
|
<earl:Software rdf:about="http://example.org/cooltool/">
|
|
<dct:title xml:lang="en">Cool Tool accessibility checker</dct:title>
|
|
<dct:hasVersion>1.0.c</dct:hasVersion>
|
|
<dct:description xml:lang="en">A reliable compliance checker for Web Accessibility</dct:description>
|
|
</earl:Software>
|
|
|
|
<earl:TestCase rdf:about="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65">
|
|
<dct:title xml:lang="en">Failure of Success Criterion 1.1.1 from WCAG 2.0</dct:title>
|
|
<dct:description xml:lang="en">Failure due to omitting the alt attribute on img elements, area elements, and input elements of type image.</dct:description>
|
|
</earl:TestCase>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer">
|
|
<ptr:lineNumber>16</ptr:lineNumber>
|
|
<ptr:charNumber>9</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://www.example.org/resource/content_002#content2a" />
|
|
</ptr:LineCharPointer>
|
|
|
|
<earl:TestResult rdf:ID="result">
|
|
<earl:pointer rdf:resource="#pointer" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
|
|
</rdf:RDF></pre>
|
|
</div>
|
|
|
|
<p>Notice how both the result and the location of the element analyzed (in this
|
|
case the <code><img></code> element in the page) is different in both
|
|
reports.</p>
|
|
|
|
<h3><a id="advanced" name="advanced">3.5 Advance usage</a></h3>
|
|
|
|
<p>This section presents some advanced use of the vocabularies. In particular,
|
|
we will show an example demonstrating the extensibility of the vocabulary
|
|
(without losing its interoperability) and another example showing how to merge
|
|
reports from different sources.</p>
|
|
|
|
<h4><a id="extension" name="extension">3.5.1 Extending the vocabularies</a></h4>
|
|
|
|
<p>Let us assume a software product (Cool Validator 2.0) that validates XML
|
|
documents on the Web against given DTDs or XML Schemas. According to the XML
|
|
specification <a href="#ref-xml">[XML]</a>, there are two types of errors:</p>
|
|
<dl>
|
|
<dt>Fatal errors</dt>
|
|
<dd>Errors after which the parser must not continue processing. Typically,
|
|
these are well-formedness problems.</dd>
|
|
<dt>Errors</dt>
|
|
<dd>Violations of the specification. These are normally violations of the
|
|
validity constraints.</dd>
|
|
</dl>
|
|
|
|
<p>The product defines an additional category, <strong>warning</strong>, which
|
|
are errors reported by the underlying <a href="http://www.saxproject.org/">SAX
|
|
parser</a>. These are basically violations not included in the XML
|
|
specification, and allow the product to continue its normal processing work.
|
|
With these elements in mind, the following RDF Schema was developed:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example401" name="example401"><strong>Example 4.1.</strong></a> RDF
|
|
Schema in the namespace <code>http://example.org/ns/xmlval#</code> for the
|
|
error extensions of Cool Validator, which contains new classes, extensions of
|
|
<code>earl:Fail</code> [<a href="data/xmlval.rdfs" type="">download file for
|
|
example 4.1</a>].</p>
|
|
<pre> <rdfs:Class rdf:ID="FatalError">
|
|
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Fatal error when processing the XML file (well-formedness)</rdfs:label>
|
|
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> 1.0</owl:versionInfo>
|
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/ns/earl#Fail" />
|
|
</rdfs:Class>
|
|
<rdfs:Class rdf:ID="Error">
|
|
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Error when processing the XML file (validation constraint)</rdfs:label>
|
|
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> 1.0</owl:versionInfo>
|
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/ns/earl#Fail" />
|
|
</rdfs:Class>
|
|
<rdfs:Class rdf:ID="Warning">
|
|
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> Warning when processing the XML file (parser issues)</rdfs:label>
|
|
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"> 1.0</owl:versionInfo>
|
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/ns/earl#Fail" />
|
|
</rdfs:Class></pre>
|
|
</div>
|
|
|
|
<p>A user of the aforementioned validator defines her own XML Schema (see <a
|
|
href="#example402">Example 4.2</a>) for an e-commerce application. The schema
|
|
defines some restrictions in an order element, against which running Web
|
|
Services payloads must be verified. To facilitate this process and provide via
|
|
the Web Service a more user-friendly error feedback to her customers, she uses
|
|
this validator.</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example402" name="example402"><strong>Example 4.2.</strong></a> XML
|
|
Schema for the ordering Web Service [<a href="data/report_vz530.rdf"
|
|
type="">download file for example 4.2</a>].</p>
|
|
<pre><xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema" elementFormDefault = "qualified">
|
|
|
|
<xsd:element name = "order">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element ref = "item" maxOccurs = "unbounded"/>
|
|
</xsd:sequence>
|
|
<xsd:attribute name = "orderid" use = "required" type = "xsd:ID"/>
|
|
<xsd:attribute name = "customer" use = "required" type = "xsd:integer"/>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name = "item">
|
|
<xsd:complexType>
|
|
<xsd:sequence>
|
|
<xsd:element ref = "quantity"/>
|
|
<xsd:element ref = "unitprice"/>
|
|
</xsd:sequence>
|
|
<xsd:attribute name = "itemid" type = "xsd:ID"/>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:element name = "quantity" type = "xsd:unsignedLong"/>
|
|
<xsd:element name = "unitprice">
|
|
<xsd:complexType>
|
|
<xsd:simpleContent>
|
|
<xsd:extension base = "xsd:float">
|
|
<xsd:attribute name = "currency" use = "required" type = "currencyType"/>
|
|
</xsd:extension>
|
|
</xsd:simpleContent>
|
|
</xsd:complexType>
|
|
</xsd:element>
|
|
<xsd:simpleType name = "currencyType">
|
|
<xsd:restriction base = "xsd:string">
|
|
<xsd:enumeration value = "euros"/>
|
|
<xsd:enumeration value = "dollars"/>
|
|
<xsd:enumeration value = "pounds"/>
|
|
</xsd:restriction>
|
|
</xsd:simpleType>
|
|
|
|
</xsd:schema></pre>
|
|
</div>
|
|
|
|
<p>Customer X sends as a SOAP payload the following order:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example403" name="example403"><strong>Example 4.3.</strong></a> SOAP
|
|
payload for Customer X [<a href="data/order1.xml" type="">download file for
|
|
example 4.3</a>].</p>
|
|
<pre><order xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:noNamespaceSchemaLocation = "order.xsd"
|
|
orderid = "oj_384" customer = "12345">
|
|
|
|
<item itemid = "cat_34894">
|
|
<quantity>2</quantity>
|
|
<unitprice currency = "dollars">40.88</unitprice>
|
|
</item>
|
|
</order></pre>
|
|
</div>
|
|
|
|
<p>Which is evaluated through the Cool Validator, producing the following EARL
|
|
report:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example404" name="example404"><strong>Example 4.4.</strong></a> First
|
|
XML validation report [<a href="data/report_vz530.rdf" type="">download file
|
|
for example 4.4</a>].</p>
|
|
<pre><earl:Software rdf:about="http://example.org/coolvalidator/20/">
|
|
<dct:title xml:lang="en">Cool Validator</dct:title>
|
|
<dct:hasVersion>2.0</dct:hasVersion>
|
|
<dct:description xml:lang="en">The best XML validator of the world.</dct:description>
|
|
</earl:Software>
|
|
|
|
<earl:TestCase rdf:about="http://example.org/customers/schemas/order.xsd">
|
|
<dct:title xml:lang="en">Ordering Web Service Schema</dct:title>
|
|
</earl:TestCase>
|
|
|
|
<earl:TestResult rdf:about="#result">
|
|
<earl:info>The end-tag for element type "quantity" must end with a '&gt;' delimiter.</earl:info>
|
|
<earl:pointer rdf:resource="#pointer" />
|
|
<earl:outcome rdf:resource="http://example.org/ns/xmlval#FatalError" />
|
|
</earl:TestResult>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer">
|
|
<ptr:charNumber>9</ptr:charNumber>
|
|
<ptr:lineNumber>7</ptr:lineNumber>
|
|
<ptr:reference rdf:resource="#order" />
|
|
</ptr:LineCharPointer>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>This customer is aware of the EARL extensions of the Cool Validator, and can
|
|
interpret the results from the perspective of the XML specification, correcting
|
|
accordingly her SOAP client. Customer Y, who sent the following payload:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example405" name="example405"><strong>Example 4.5.</strong></a> SOAP
|
|
payload for Customer Y [<a href="data/order2.xml" type="">download file for
|
|
example 4.5</a>].</p>
|
|
<pre> <order xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:noNamespaceSchemaLocation = "order.xsd"
|
|
orderid = "oj_490" customer = "67890">
|
|
|
|
<item itemid = "cat_30922">
|
|
<quantity>4.0</quantity>
|
|
<unitprice currency = "euro">783.30</unitprice>
|
|
</item>
|
|
</order></pre>
|
|
</div>
|
|
|
|
<p>cannot interpret this extension of the vocabulary sent in another report.
|
|
However, by supporting the EARL standard and standard subclassing mechanisms of
|
|
Semantic Web vocabularies, this customer is still in the position of
|
|
interpreting the outcome of the error messages and can act accordingly.</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example406" name="example406"><strong>Example 4.6.</strong></a>
|
|
Second XML validation report translated to standard EARL [<a
|
|
href="data/report_bx429.rdf" type="">download file for example 4.6</a>].</p>
|
|
<pre><earl:TestResult rdf:ID="result1">
|
|
<earl:pointer rdf:resource="#pointer1" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#Fail" />
|
|
<earl:info>The value '4.0' of element 'quantity' is not valid.</earl:info>
|
|
</earl:TestResult>
|
|
|
|
<earl:TestResult rdf:ID="result2">
|
|
<earl:pointer rdf:resource="#pointer2" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#Fail" />
|
|
<earl:info>The value 'euro' of attribute 'currency' on element 'unitprice' is not valid with respect to its type, 'currencyType' [euros, dollars, pounds].</earl:info>
|
|
</earl:TestResult>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer1">
|
|
<ptr:charNumber>33</ptr:charNumber>
|
|
<ptr:lineNumber>6</ptr:lineNumber>
|
|
<ptr:reference rdf:resource="#order" />
|
|
</ptr:LineCharPointer>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer2">
|
|
<ptr:charNumber>38</ptr:charNumber>
|
|
<ptr:lineNumber>7</ptr:lineNumber>
|
|
<ptr:reference rdf:resource="#order" />
|
|
</ptr:LineCharPointer>
|
|
</pre>
|
|
</div>
|
|
|
|
<h4><a id="combine" name="combine">3.5.2 Merging reports from different
|
|
sources</a></h4>
|
|
|
|
<p>Using EARL, reports from different sources can be combined to obtain more
|
|
information or refine existing ones. We take as starting point an XHTML file,
|
|
which contains two images. One of them lacks of an alternative text attribute.
|
|
In the other one, the attribute is present, but it reflects the size of the
|
|
image in bytes.</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example407" name="example407"><strong>Example 4.7.</strong></a> An
|
|
XHTML document to be tested [<a href="data/example_ot48.html" type="">download
|
|
file for example 4.7</a>].</p>
|
|
<pre> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
<head>
|
|
<title>My photo album</title>
|
|
</head>
|
|
<body>
|
|
<h1>My photo album<</h1>
|
|
<p>These are two nice photos I took yesterday:</p>
|
|
<ul>
|
|
<li>Image of a cat who likes
|
|
<acronym title="Evaluation and Report Language">EARL</acronym>, although it seems quite tired:
|
|
<img src="../images/cat.jpg" />
|
|
</li>
|
|
<li>Image of a fir tree:
|
|
<img src="../images/fir_tree.jpg" alt="98211 bytes" />
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></pre>
|
|
</div>
|
|
|
|
<p>An accessibility evaluator who wants to verify the compliance of this page
|
|
against success criteria 1.1.1 from WCAG 2.0 <a href="#ref-wcag20">[WCAG20]</a>
|
|
is using for its accessibility test two tools:</p>
|
|
<ul>
|
|
<li>The already known Cool Tool checker (see <a href="#example314">Example
|
|
3.14</a>) and</li>
|
|
<li>The Exemplary Compliance checker (see <a href="#example408">Example
|
|
4.8</a> below).</li>
|
|
</ul>
|
|
|
|
<div class="example">
|
|
<p><a id="example408" name="example408"><strong>Example 4.8.</strong></a>
|
|
Exemplary Compliance as a <code>Software</code> assertor [<a
|
|
href="data/report_ys583.rdf" type="">download file for example 4.8</a>].</p>
|
|
<pre> <earl:Software rdf:about="http://example.org/excompliance/">
|
|
<dct:title xml:lang="en">Exemplary Compliance checker</dct:title>
|
|
<dct:hasVersion>3.2</dct:hasVersion>
|
|
<dct:description xml:lang="en">The compliance checker for Web Accessibility</dct:description>
|
|
</earl:Software>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>The selected tools test, among others, the following WCAG 2.0 techniques:</p>
|
|
<ul>
|
|
<li><a href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65">Common
|
|
Failure F65</a></li>
|
|
<li><a href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F30">Common
|
|
Failure F30</a></li>
|
|
</ul>
|
|
|
|
<p>The Cool Tool checker provides the following report:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example409" name="example409"><strong>Example 4.9.</strong></a>
|
|
Extract from the Cool Tool report [<a href="data/report_kd803.rdf"
|
|
type="">download file for example 4.9</a>].</p>
|
|
<pre> <earl:TestResult rdf:ID="result1">
|
|
<earl:pointer rdf:resource="#pointer1" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
<earl:TestResult rdf:ID="result2">
|
|
<earl:pointer rdf:resource="#pointer2" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#cantTell" />
|
|
</earl:TestResult>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer1">
|
|
<ptr:lineNumber>17</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
<ptr:LineCharPointer rdf:ID="pointer2">
|
|
<ptr:lineNumber>20</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>In this section of the report, we can observe that the tool is able to
|
|
identify correctly the error in the first image, but it is unable to discern
|
|
whether the alternative attribute of the second image corresponds to its size.
|
|
However, the Exemplary Compliance checker is able to download the image, check
|
|
its size, and compare it to the content of the alternative attribute. This tool
|
|
produces the following report:</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example410" name="example410"><strong>Example 4.10.</strong></a>
|
|
Extract from the Exemplary Compliance checker report [<a
|
|
href="data/report_pu392.rdf" type="">download file for example 4.10</a>].</p>
|
|
<pre> <earl:TestResult rdf:ID="result1">
|
|
<earl:pointer rdf:resource="#pointer1" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
<earl:TestResult rdf:ID="result2">
|
|
<earl:pointer rdf:resource="#pointer2" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer1">
|
|
<ptr:lineNumber>17</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
<ptr:LineCharPointer rdf:ID="pointer2">
|
|
<ptr:lineNumber>20</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>Finally, our evaluator creates a new assertor group, which members include
|
|
the evaluator and the two tools. The report that she delivers to her customer
|
|
contains only the assertions that are final, substituting the undefined
|
|
outcomes by those from the tool that is able to verify adequately the
|
|
technique. Our evaluator can take decisions on this regard because the use of
|
|
the EARL Pointers vocabulary allows her to compare exactly the location of the
|
|
assertion.</p>
|
|
|
|
<div class="example">
|
|
<p><a id="example411" name="example411"><strong>Example 4.11.</strong></a>
|
|
Extract from the final accessibility report [<a href="data/report_db309.rdf"
|
|
type="">download file for example 4.11</a>].</p>
|
|
<pre> <foaf:Group rdf:ID="assertgroup">
|
|
<dct:title>John Doe and the W3C HTML Validator</dct:title>
|
|
<earl:mainAssertor rdf:resource="http://example.org/persons/jdoe/" />
|
|
<foaf:member rdf:resource="http://example.org/excompliance/" />
|
|
<foaf:member rdf:resource="http://example.org/cooltool/" />
|
|
</foaf:Group>
|
|
<foaf:Person rdf:about="http://example.org/persons/jdoe/">
|
|
<foaf:mbox rdf:resource="mailto:jane@example.org" />
|
|
<foaf:name>Jane Doe</foaf:name>
|
|
</foaf:Person>
|
|
<earl:Software rdf:about="http://example.org/cooltool/">
|
|
<dct:title xml:lang="en">Cool Tool accessibility checker</dct:title>
|
|
<dct:hasVersion>1.0.c</dct:hasVersion>
|
|
<dct:description xml:lang="en">A reliable compliance checker for Web Accessibility</dct:description>
|
|
</earl:Software>
|
|
<earl:Software rdf:about="http://example.org/excompliance/">
|
|
<dct:title xml:lang="en">Exemplary Compliance checker</dct:title>
|
|
<dct:hasVersion>3.2</dct:hasVersion>
|
|
<dct:description xml:lang="en">The compliance checker for Web Accessibility</dct:description>
|
|
</earl:Software>
|
|
|
|
<earl:TestCase rdf:about="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F65">
|
|
<dct:description xml:lang="en">Failure due to omitting the alt attribute on img elements, area elements, and input elements of type image.</dct:description>
|
|
<dct:title xml:lang="en">Failure of Success Criterion 1.1.1 from WCAG 2.0</dct:title>
|
|
</earl:TestCase>
|
|
<earl:TestCase rdf:about="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/F30">
|
|
<dct:description xml:lang="en">Failure of Success Criterion 1.1.1 and 1.2.1 due to using text alternatives that are not alternatives.</dct:description>
|
|
<dct:title xml:lang="en">Failure of Success Criterion 1.1.1 and 1.2.1 from WCAG 2.0</dct:title>
|
|
</earl:TestCase>
|
|
|
|
<earl:TestResult rdf:ID="result1">
|
|
<earl:pointer rdf:resource="#pointer1" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
<earl:TestResult rdf:ID="result2">
|
|
<earl:pointer rdf:resource="#pointer2" />
|
|
<earl:outcome rdf:resource="http://www.w3.org/ns/earl#failed" />
|
|
</earl:TestResult>
|
|
|
|
<ptr:LineCharPointer rdf:ID="pointer1">
|
|
<ptr:lineNumber>17</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
<ptr:LineCharPointer rdf:ID="pointer2">
|
|
<ptr:lineNumber>20</ptr:lineNumber>
|
|
<ptr:charNumber>5</ptr:charNumber>
|
|
<ptr:reference rdf:resource="http://example.org/resource/index.html" />
|
|
</ptr:LineCharPointer>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>This example demonstrates how the use of simple Semantic Web technologies
|
|
enables the combination of EARL assertions to produce improved and more
|
|
accurate reports.</p>
|
|
|
|
<h2><a id="conformance" name="conformance">4. Conformance for EARL 1.0 Tools
|
|
and Reports</a></h2>
|
|
|
|
<p class="note">[<a name="note1" id="note1">Editor's note:</a> ERT WG is
|
|
looking for feedback on this entire section.]</p>
|
|
|
|
<p>This section defines conformance requirements for software tools and
|
|
processes, to ensure a consistent implementation and exchange of the EARL 1.0
|
|
vocabulary. The following applies to tools conforming with EARL 1.0:</p>
|
|
<ol type="A">
|
|
<li>Conforming EARL 1.0 reports adhere to the requirements listed in <a
|
|
href="#EARL10Reports">4.1 Conforming EARL 1.0 Reports</a></li>
|
|
<li>Software tools that produce conforming EARL 1.0 reports can provide them
|
|
in valid RDF/XML notation</li>
|
|
<li>Software tools that process conforming EARL 1.0 reports can accept them
|
|
in valid RDF/XML notation</li>
|
|
</ol>
|
|
|
|
<h3><a name="EARL10Reports" id="EARL10Reports">4.1 Conforming EARL 1.0
|
|
Reports</a></h3>
|
|
|
|
<p>Conforming EARL 1.0 reports are valid RDF graphs with:</p>
|
|
<ol>
|
|
<li>At least one <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertion">Assertion</a></li>
|
|
<li>Exactly one <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a>,
|
|
referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#assertedBy">earl:assertedBy</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertion">Assertion</a>
|
|
<ol type="a">
|
|
<li>Exactly one identifying name (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/title">dct:title <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
<code><a href="http://xmlns.com/foaf/spec/#term_name">foaf:name <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
or <code><a href="http://usefulinc.com/ns/doap#name">doap:name <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a></li>
|
|
<li>At most one description (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/description">dct:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
or <code><a
|
|
href="http://usefulinc.com/ns/doap#description">doap:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a></li>
|
|
<li>Any number of attributes, referenced by <code><a
|
|
href="http://xmlns.com/foaf/spec/#term_nick">foaf:nick <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
<code><a href="http://xmlns.com/foaf/spec/#term_mbox">foaf:mbox <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
or <code><a
|
|
href="http://xmlns.com/foaf/spec/#term_homepage">foaf:homepage <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a> that
|
|
is also of type <code><a
|
|
href="http://xmlns.com/foaf/spec/#term_Agent">foaf:Agent <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li>Any number of members, referenced by <code><a
|
|
href="http://xmlns.com/foaf/spec/#term_member">foaf:member <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a> that
|
|
is also of type <code><a
|
|
href="http://xmlns.com/foaf/spec/#term_Group">foaf:Group <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li>At most one main assertor, referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10/#mainAssertor">earl:mainAssertor</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a> that
|
|
is also of type <code><a
|
|
href="http://xmlns.com/foaf/spec/#term_Group">foaf:Group <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
</ol>
|
|
</li>
|
|
<li>Exactly one <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test Subject</a>,
|
|
referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#subject">earl:subject</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertion">Assertion</a>
|
|
<ol type="a">
|
|
<li>Exactly one identifying title (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/title">dct:title <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
<code><a href="http://xmlns.com/foaf/spec/#term_name">foaf:name <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
or <code><a href="http://usefulinc.com/ns/doap#name">doap:name <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test
|
|
Subject</a></li>
|
|
<li>At most one description (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/description">dct:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
or <code><a
|
|
href="http://usefulinc.com/ns/doap#description">doap:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test
|
|
Subject</a></li>
|
|
<li>At most one date (as defined by <a
|
|
href="http://www.w3.org/TR/xmlschema-2/#isoformats">XML Datatypes</a>),
|
|
referenced by <code><a href="http://purl.org/dc/terms/date">dct:date
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code>, for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test
|
|
Subject</a></li>
|
|
<li>Any number of relationships, referenced by <code><a
|
|
href="http://purl.org/dc/terms/hasPart">dct:hasPart <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
or <code><a href="http://purl.org/dc/terms/isPartOf">dct:isPartOf <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
between any instances of <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test
|
|
Subject</a></li>
|
|
</ol>
|
|
</li>
|
|
<li>Exactly one <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestCriterion">Test
|
|
Criterion</a>, referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#test">earl:test</a></code>, for
|
|
each <a href="http://www.w3.org/TR/EARL10-Schema/#Assertion">Assertion</a>
|
|
<ol type="a">
|
|
<li>Exactly one identifying title (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/title">dct:title <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestCriterion">Test
|
|
Criterion</a></li>
|
|
<li>At most one description (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/description">dct:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
or <code><a
|
|
href="http://usefulinc.com/ns/doap#description">doap:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestCriterion">Test
|
|
Criterion</a></li>
|
|
<li>Any number of relationships, referenced by <code><a
|
|
href="http://purl.org/dc/terms/hasPart">dct:hasPart <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
or <code><a href="http://purl.org/dc/terms/isPartOf">dct:isPartOf <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
between any instances of <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestCriterion">Test
|
|
Criterion</a></li>
|
|
</ol>
|
|
</li>
|
|
<li>Exactly one <a href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a>, referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#result">earl:result</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Assertion">Assertion</a>
|
|
<ol type="a">
|
|
<li>Exactly one date (as defined by <a
|
|
href="http://www.w3.org/TR/xmlschema-2/#isoformats">XML Datatypes</a>),
|
|
referenced by <code><a href="http://purl.org/dc/terms/date">dct:date
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code>, for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a></li>
|
|
<li>Exactly one <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#OutcomeValue">Outcome
|
|
Value</a>, referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#outcome">earl:outcome</a></code>,
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a>
|
|
<ol type="i">
|
|
<li>Exactly one identifying title (per language), referenced by
|
|
<code><a href="http://purl.org/dc/terms/title">dct:title <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code>, for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#OutcomeValue">Outcome
|
|
Value</a></li>
|
|
<li>Exactly one description (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/description">dct:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code>, for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#OutcomeValue">Outcome
|
|
Value</a></li>
|
|
</ol>
|
|
</li>
|
|
<li>At most one identifying title (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/title">dct:title <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a></li>
|
|
<li>At most one description (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/description">dct:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
or <code><a
|
|
href="http://usefulinc.com/ns/doap#description">doap:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a></li>
|
|
<li>At most one additional information (per language), referenced by
|
|
<code><a href="http://www.w3.org/TR/EARL10/#info">earl:info</a></code>
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a></li>
|
|
<li>Any number of pointer methods, referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10/#pointer">earl:pointer</a></code> for
|
|
each <a href="http://www.w3.org/TR/EARL10-Schema/#TestResult">Test
|
|
Result</a></li>
|
|
</ol>
|
|
</li>
|
|
<li>At most one <a href="http://www.w3.org/TR/EARL10-Schema/#TestMode">Test
|
|
Mode</a>, referenced by <code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#mode">earl:mode</a></code>, for
|
|
each <a href="http://www.w3.org/TR/EARL10-Schema/#Assertion">Assertion</a>
|
|
<ol type="a">
|
|
<li>Exactly one identifying title (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/title">dct:title <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestMode">Test
|
|
Mode</a></li>
|
|
<li>Exactly one description (per language), referenced by <code><a
|
|
href="http://purl.org/dc/terms/description">dct:description <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
for each <a href="http://www.w3.org/TR/EARL10-Schema/#TestMode">Test
|
|
Mode</a></li>
|
|
</ol>
|
|
</li>
|
|
<li>Exactly one identifying name (per language), referenced by <code><a
|
|
href="http://usefulinc.com/ns/doap#name">doap:name <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>, for
|
|
each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Software">Software</a></li>
|
|
<li><a href="#HTTP-graphs">Conforming HTTP-in-RDF graphs</a>, for each <a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test Subject</a>
|
|
that is also of type <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ResponseClass">http:Response <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code></li>
|
|
<li><a href="#Content-graphs">Conforming Content-in-RDF graphs</a>, for each
|
|
<a href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test Subject</a>
|
|
that is also of type <code><a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentClass">cnt:Content <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code></li>
|
|
</ol>
|
|
|
|
<p><strong>Note:</strong> subclasses or subproperties of terms share the same
|
|
type. They are therefore considered to be equivalent entities in adhering to
|
|
any of the above requirements. Also, instances in multiple languages of the
|
|
<em>same entity</em> (such as title or description) are considered to be a
|
|
single occurrence of the entity.</p>
|
|
|
|
<p>In addition, it is strongly recommended that EARL 1.0 reports are also valid
|
|
RDF graphs with:</p>
|
|
<ol>
|
|
<li>Each <a href="http://www.w3.org/TR/EARL10-Schema/#Assertor">Assertor</a>
|
|
is also one of the following types:
|
|
<ul>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Software">earl:Software</a></code></li>
|
|
<li><code><a href="http://xmlns.com/foaf/spec/#term_Agent">foaf:Agent
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li><code><a href="http://xmlns.com/foaf/spec/#term_Person">foaf:Person
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li><code><a
|
|
href="http://xmlns.com/foaf/spec/#term_Organization">foaf:Organization
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li><code><a href="http://xmlns.com/foaf/spec/#term_Group">foaf:Group
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
</ul>
|
|
</li>
|
|
<li>Each <a href="http://www.w3.org/TR/EARL10-Schema/#TestSubject">Test
|
|
Subject</a> is also one of the following types:
|
|
<ul>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Software">earl:Software</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentClass">cnt:Content
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ResponseClass">http:Response
|
|
<img src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
<li><code><a
|
|
href="http://xmlns.com/foaf/spec/#term_Document">foaf:Document <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link"
|
|
/></a></code></li>
|
|
</ul>
|
|
</li>
|
|
<li>Each <a href="http://www.w3.org/TR/EARL10-Schema/#TestCriterion">Test
|
|
Criterion</a> is also one of the following types:
|
|
<ul>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestRequirement">earl:TestRequirement</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#TestCase">earl:TestCase</a></code></li>
|
|
</ul>
|
|
</li>
|
|
<li>Each <a href="http://www.w3.org/TR/EARL10-Schema/#TestMode">Test Mode</a>
|
|
is one of the following instances:
|
|
<ul>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#automatic">earl:automatic</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#manual">earl:manual</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#semiAuto">earl:semiAuto</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#undisclosed">earl:undisclosed</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#unknownMode">earl:unknownMode</a></code></li>
|
|
</ul>
|
|
</li>
|
|
<li>Each <a href="http://www.w3.org/TR/EARL10-Schema/#OutcomeValue">Outcome
|
|
Value</a> is one of the following instances:
|
|
<ul>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#passed">earl:passed</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#failed">earl:failed</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#cantTell">earl:cantTell</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#inapplicable">earl:inapplicable</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#untested">earl:untested</a></code></li>
|
|
</ul>
|
|
Or is an instance of one of the following classes (or sublcasses thereof):
|
|
<ul>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Pass">earl:Pass</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#Fail">earl:Fail</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#CannotTell">earl:CannotTell</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#NotApplicable">earl:NotApplicable</a></code></li>
|
|
<li><code><a
|
|
href="http://www.w3.org/TR/EARL10-Schema/#NotTested">earl:NotTested</a></code></li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
|
|
<h3><a name="HTTP-graphs" id="HTTP-graphs">4.2 Conforming HTTP-in-RDF
|
|
Graphs</a></h3>
|
|
|
|
<p>Conforming HTTP-in-RDF graphs are valid RDF graphs with:</p>
|
|
<ol>
|
|
<li>Exactly one connection authority, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#connectionAuthorityProperty">http:connectionAuthority</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ConnectionClass">Connection</a></li>
|
|
<li>At most one <acronym>RDF</acronym> collection, referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#requestsProperty">http:requests</a></code>,
|
|
with any number of <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#RequestClass">Request</a>
|
|
instances, for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ConnectionClass">Connection</a></li>
|
|
<li>Exactly one <acronym>HTTP</acronym> version, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#httpVersionProperty">http:httpVersion</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageClass">Message</a></li>
|
|
<li>At most one <acronym>RDF</acronym> collection, referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#headersProperty">http:headers</a></code>,
|
|
with any number of <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageHeaderClass">Message
|
|
Header</a> instances, for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageClass">Message</a></li>
|
|
<li>Exactly one message body, referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#bodyProperty">http:body</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageClass">Message</a></li>
|
|
<li>At most one date, specified by <code><a
|
|
href="http://dublincore.org/documents/dcmi-terms/#terms-date">dct:date <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>, for
|
|
each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageClass">Message</a></li>
|
|
<li>Exactly one method name, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#methodNameProperty">http:methodName</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#RequestClass">Request</a></li>
|
|
<li>Exactly one request <acronym
|
|
title="Uniform Resource Identifier">URI</acronym>, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#requestURIProperty">http:requestURI</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#RequestClass">Request</a></li>
|
|
<li>At most one <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MethodClass">Method</a>, referenced
|
|
by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#mthdProperty">http:mthd</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#RequestClass">Request</a></li>
|
|
<li>At most one <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ResponseClass">Response</a>,
|
|
referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#respProperty">http:resp</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#RequestClass">Request</a></li>
|
|
<li>Exactly one status code value, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#statusCodeValueProperty">http:statusCodeValue</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ResponseClass">Response</a></li>
|
|
<li>Exactly one reason phrase, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#reasonPhraseProperty">http:reasonPhrase</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ResponseClass">Response</a></li>
|
|
<li>At most one <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#StatusCodeClass">Status Code</a>,
|
|
referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#scProperty">http:sc</a></code>, for
|
|
each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ResponseClass">Response</a></li>
|
|
<li>Exactly one field name, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#fieldNameProperty">http:fieldName</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageHeaderClass">Message
|
|
Header</a></li>
|
|
<li>Exactly one field value, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#fieldValueProperty">http:fieldValue</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageHeaderClass">Message
|
|
Header</a></li>
|
|
<li>At most one <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#HeaderNameClass">Header Name</a>,
|
|
referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#hdrNameProperty">http:hdrName</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageHeaderClass">Message
|
|
Header</a></li>
|
|
<li>At most one <acronym>RDF</acronym> collection, referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#headerElementsProperty">http:headerElements</a></code>,
|
|
with any number of <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#HeaderElementClass">Header
|
|
Element</a> instances, for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#MessageHeaderClass">Message
|
|
Header</a></li>
|
|
<li>Exactly one header element name, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#elementNameProperty">http:elementName</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#HeaderElementClass">Header
|
|
Element</a></li>
|
|
<li>At most one header element value, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#elementValueProperty">http:elementValue</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#HeaderElementClass">Header
|
|
Element</a></li>
|
|
<li>At most one <acronym>RDF</acronym> collection, referenced by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#paramsProperty">http:params</a></code>,
|
|
with any number of <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ParameterClass">Parameter</a>
|
|
instances, for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#HeaderElementClass">Header
|
|
Element</a></li>
|
|
<li>Exactly one parameter name, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#paramNameProperty">http:paramName</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ParameterClass">Parameter</a></li>
|
|
<li>Exactly one parameter value, specified by <code><a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#paramValueProperty">http:paramValue</a></code>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/HTTP-in-RDF/#ParameterClass">Parameter</a></li>
|
|
</ol>
|
|
|
|
<h3><a name="Content-graphs" id="Content-graphs">4.3 Conforming Content-in-RDF
|
|
Graphs</a></h3>
|
|
|
|
<p>Conforming Content-in-RDF graphs are valid RDF graphs with:</p>
|
|
<ol>
|
|
<li>At most one character encoding, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#characterEncodingProperty"><code>cnt:characterEncoding</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentClass">Content</a></li>
|
|
<li>Any number of relationships, referenced by <code><a
|
|
href="http://purl.org/dc/terms/hasFormat">dct:hasFormat <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code> or
|
|
<code><a href="http://purl.org/dc/terms/isFormatOf">dct:isFormatOf <img
|
|
src="http://www.w3.org/Icons/tr.png" alt="external link" /></a></code>,
|
|
between any instances of <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentClass">Content</a></li>
|
|
<li>Exactly one byte sequence, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#bytesProperty"><code>cnt:bytes</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsBase64Class">ContentAsBase64</a></li>
|
|
<li>Exactly one character sequence, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#charsProperty"><code>cnt:chars</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsTextClass">ContentAsText</a></li>
|
|
<li>Exactly one XML rest, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#restProperty"><code>cnt:rest</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsXMLClass">ContentAsXML</a></li>
|
|
<li>At most one leadingMisc, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#leadingMiscProperty"><code>cnt:leadingMisc</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsXMLClass">ContentAsXML</a></li>
|
|
<li>At most one document type delcaration, referenced by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#dtDeclProperty"><code>cnt:dtDecl</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsXMLClass">ContentAsXML</a></li>
|
|
<li>Exactly one XML version, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#versionProperty"><code>cnt:version</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsXMLClass">ContentAsXML</a></li>
|
|
<li>At most one XML character encoding, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#declaredEncodingProperty"><code>cnt:declaredEncoding</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsXMLClass">ContentAsXML</a></li>
|
|
<li>At most one XML standalone declaration, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#standaloneProperty"><code>cnt:standalone</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#ContentAsXMLClass">ContentAsXML</a></li>
|
|
<li>Exactly one document type name, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#doctypeNameProperty"><code>cnt:doctypeName</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#DoctypeDeclClass">DoctypeDecl</a></li>
|
|
<li>At most one public identifier, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#publicIdProperty"><code>cnt:publicId</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#DoctypeDeclClass">DoctypeDecl</a></li>
|
|
<li>At most one system identifier, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#systemIdProperty"><code>cnt:systemId</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#DoctypeDeclClass">DoctypeDecl</a></li>
|
|
<li>At most one internal subset, specified by <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#internalSubsetProperty"><code>cnt:internalSubset</code></a>,
|
|
for each <a
|
|
href="http://www.w3.org/TR/Content-in-RDF/#DoctypeDeclClass">DoctypeDecl</a></li>
|
|
</ol>
|
|
|
|
<h2><a id="serialization" name="serialization">5. Serializations of EARL
|
|
Reports</a></h2>
|
|
|
|
<p class="note"><strong>Note:</strong> this section will be added to refer the
|
|
reader to best practices and existing references in RDF/XML serializations
|
|
(possibly providing a DTD or XML Schema for EARL); RDF->JSON conversion (in
|
|
particular if we do end up providing an XML Schema or DTD); binary RDF (work in
|
|
progress at W3C); or other formats that may be useful to tool developers.</p>
|
|
|
|
<h2><a id="references" name="references">Appendix A: References</a></h2>
|
|
<dl>
|
|
<dt><a id="ref-content" name="ref-content">[Content-RDF]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/Content-in-RDF10/">Representing Content
|
|
in RDF</a>. <code>http://www.w3.org/TR/Content-in-RDF10/</code></dd>
|
|
<dt><a id="ref-dcmischemas" name="ref-dcmischemas">[DCMISCHEMAS]</a></dt>
|
|
<dd><a href="http://dublincore.org/schemas/rdfs/">DCMI term declarations
|
|
represented in RDF schema language</a>.
|
|
<code>http://dublincore.org/schemas/rdfs/</code></dd>
|
|
<dt><a id="ref-earl" name="ref-earl">[EARL-Schema]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/EARL10-Schema/">Evaluation and Report
|
|
Language 1.0 Schema</a>.
|
|
<code>http://www.w3.org/TR/EARL10-Schema/</code></dd>
|
|
<dt><a id="ref-foaf" name="ref-foaf">[FOAF]</a></dt>
|
|
<dd><a href="http://xmlns.com/foaf/spec/">FOAF Vocabulary Specification
|
|
0.91</a>. Namespace Document 2 November 2007 - OpenID Edition.
|
|
<code>http://xmlns.com/foaf/spec/</code></dd>
|
|
<dt><a id="ref-httprdf" name="ref-httprdf">[HTTP-RDF]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/HTTP-in-RDF10/">HTTP Vocabulary in
|
|
RDF</a>. <code>http://www.w3.org/TR/HTTP-in-RDF10/</code></dd>
|
|
<dt><a id="ref-ieee829" name="ref-ieee829">[IEEE-829]</a></dt>
|
|
<dd><a href="http://ieeexplore.ieee.org/servlet/opac?punumber=5976">IEEE
|
|
Standard for Software Test Documentation</a> (IEEE Std 829-1998). ISBN
|
|
0-7381-1444-8 SS94687.
|
|
<code>http://ieeexplore.ieee.org/servlet/opac?punumber=5976</code></dd>
|
|
<dt><a id="ref-iso15836" name="ref-iso15836">[ISO15836]</a></dt>
|
|
<dd><a
|
|
href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=52142">Information
|
|
and documentation - The Dublin Core metadata element set</a>. ISO
|
|
15836:2009.
|
|
<code>http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=52142</code></dd>
|
|
<dt><a id="ref-nisoz3985" name="ref-nisoz3985">[NISOZ3985]</a></dt>
|
|
<dd><a href="http://www.niso.org/standards/z39-85-2007/">ANSI/NISO Z39.85 -
|
|
The Dublin Core Metadata Element Set</a>. NISO, May 2007.
|
|
<code>http://www.niso.org/standards/z39-85-2007/</code></dd>
|
|
<dt><a id="ref-pointers" name="ref-pointers">[Pointers-RDF]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/Pointers-in-RDF10/">Pointer Methods in
|
|
RDF</a>. <code>http://www.w3.org/TR/Pointers-in-RDF10/</code></dd>
|
|
<dt><a id="ref-rdf" name="ref-rdf">[RDF]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">Resource
|
|
Description Framework (RDF) Model and Syntax Specification</a>. W3C
|
|
Recommendation, 22 February 1999.
|
|
<code>http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/</code></dd>
|
|
<dt><a id="ref-rdf-primer" name="ref-rdf-primer">[RDF-PRIMER]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/rdf-primer/">RDF Primer</a>. W3C
|
|
Recommendation, 10 February 2004.
|
|
<code>http://www.w3.org/TR/rdf-primer/</code></dd>
|
|
<dt><a id="ref-rdfs" name="ref-rdfs">[RDFS]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/rdf-schema/">RDF Vocabulary Description
|
|
Language 1.0: <acronym
|
|
title="Resource Description Framework">RDF</acronym> Schema</a>. W3C
|
|
Recommendation, 10 February 2004.
|
|
<code>http://www.w3.org/TR/rdf-schema/</code></dd>
|
|
<dt><a id="ref-rdf-xml" name="ref-rdf-xml">[RDF-XML]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML Syntax
|
|
Specification (Revised)</a>. W3C Recommendation 10 February 2004.
|
|
<code>http://www.w3.org/TR/rdf-syntax-grammar/</code></dd>
|
|
<dt><a id="ref-rdf-xml-diffs"
|
|
name="ref-rdf-xml-diffs">[RDF-XML-DIFFS]</a></dt>
|
|
<dd><a href="http://www.w3.org/DesignIssues/RDF-XML">Why <acronym
|
|
title="Resource Description Framework">RDF</acronym> model is different
|
|
from the XML model</a>. Paper by Tim Berners-Lee, September 1998.
|
|
<code>http://www.w3.org/DesignIssues/RDF-XML</code></dd>
|
|
<dt><a id="ref-rfc2119" name="ref-rfc2119">[RFC2119]</a></dt>
|
|
<dd><a href="http://www.ietf.org/rfc/rfc2119.txt">Key words for use in RFCs
|
|
to Indicate Requirement Levels</a>. IETF RFC, March 1997.
|
|
<code>http://www.ietf.org/rfc/rfc2119.txt</code></dd>
|
|
<dt><a id="ref-rfc5013" name="ref-rfc5013">[RFC5013]</a></dt>
|
|
<dd><a href="http://www.ietf.org/rfc/rfc5013.txt">The Dublin Core Metadata
|
|
Element Set</a>. IETF RFC, August 2007.
|
|
<code>http://www.ietf.org/rfc/rfc5013.txt</code></dd>
|
|
<dt><a id="ref-owl" name="ref-owl">[OWL]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/owl-features/">OWL Web Ontology
|
|
Language</a>. W3C Recommendation, 10 February 2004.
|
|
<code>http://www.w3.org/TR/owl-features/</code></dd>
|
|
<dt><a id="ref-wcag10" name="ref-wcag10">[WCAG10]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/WCAG10/">Web Content Accessibility
|
|
Guidelines 1.0</a>. W3C Recommendation, 5 May 1999.
|
|
<code>http://www.w3.org/TR/WCAG10/</code></dd>
|
|
<dt><a id="ref-wcag20" name="ref-wcag20">[WCAG20]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/WCAG20/">Web Content Accessibility
|
|
Guidelines 2.0</a>. W3C Recommendation, 11 December 2008.
|
|
<code>http://www.w3.org/TR/WCAG20/</code></dd>
|
|
<dt><a id="ref-xml" name="ref-xml">[XML]</a></dt>
|
|
<dd><a href="http://www.w3.org/TR/REC-xml/">Extensible Markup Language
|
|
(XML) 1.0 (Fifth Edition)</a>. W3C Recommendation 26 November 2008.
|
|
<code>http://www.w3.org/TR/REC-xml/</code></dd>
|
|
<dt><a id="ref-uri" name="ref-uri">[URI]</a></dt>
|
|
<dd><a href="http://www.ietf.org/rfc/rfc3986.txt">Uniform Resource
|
|
Identifier (URI): Generic Syntax</a>. IETF RFC, January 2005.
|
|
<code>http://www.ietf.org/rfc/rfc3986.txt</code></dd>
|
|
<dt><a id="ref-doap" name="ref-doap">[DOAP]</a></dt>
|
|
<dt><a id="ref-http" name="ref-http">[HTTP]</a></dt>
|
|
<dt><a id="ref-dc" name="ref-dc">[DCMI]</a></dt>
|
|
<dt><a id="ref-rfc-5013" name="ref-rfc5013">[RFC5013]</a></dt>
|
|
<dt><a id="ref-cnt" name="ref-cnt">[CNT]</a></dt>
|
|
<dt><a id="ref-ptrs" name="ref-ptrs">[PTRS]</a></dt>
|
|
<dt><a id="ref-xmls" name="ref-xmls">[XMLS]</a></dt>
|
|
</dl>
|
|
|
|
<h2><a id="contributors" name="contributors">Appendix D: Contributors</a></h2>
|
|
|
|
<p>Shadi Abou-Zahra, Carlos Iglesias, Michael A Squillace, Johannes Koch and
|
|
Carlos A Velasco.</p>
|
|
|
|
<h2><a id="changes" name="changes">Appendix C: Document changes</a></h2>
|
|
|
|
<p>The following is a list of changes with respect to the previous internal
|
|
version:</p>
|
|
<ul>
|
|
<li>Adopted common definitions of EARL.</li>
|
|
<li>Disambiguated the links to examples.</li>
|
|
<li>Minor editorial corrections.</li>
|
|
<li>Examples clarified.</li>
|
|
</ul>
|
|
</body>
|
|
</html>
|