Changes to the EARL Schema of December 2002

This pages captures the proposed changes to the current EARL Schema of December 2002, as well as the status of these changes. This page is an on-going work in progress and is subject to change at any time without advance notice. The changes captured in this page should assist the ERT WG in tracking some of the on-going discussions; only changes that are formally accepted by the group (through voting by the WG participants) will become part of the next draft schema.

Table of Contents:

XML Header

Current Schema:

<?xml version='1.0' encoding='ISO-8859-1'?>

Proposed Schema:

<?xml version='1.0' encoding='UTF-8'?>

Description:

Changed to UTF-8 for internationalization purposes.

Status:

Accepted for voting during the discussion on 26 April, 2005.

Document Type Definition

Current Schema:

<!DOCTYPE rdf:RDF [
<!ENTITY earl 'http://www.w3.org/WAI/ER/EARL/nmg-strawman#'> 
     <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'> 
     <!ENTITY rdfs 'http://www.w3.org/TR/1999/PR-rdf-schema-19990303#'>
]> 

Proposed Schema:

None.

Description:

During the discussion on 26 April, 2005, it was agreed to drop the ENTITY directive in order to avoid requiring EARL processors to handle such XML directives.

Status:

In discussion.

Root Element

Current Schema:

<rdf:RDF xmlns:earl="&earl;"  
         xmlns:rdf="&rdf;" 
         xmlns:rdfs="&rdfs;"> 

Proposed Schema:

<rdf:RDF xmlns:earl="http://www.w3.org/WAI/ER/EARL/nmg-strawman#"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">

Description:

Added DC and FOAF namespaces.

Status:

In discussion, pending decisions on the usage of DC and FOAF.

Core Classes

Current Schema:

<rdfs:Class rdf:about="&earl;Assertion" rdfs:label="Assertion">
     <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;Assertor" rdfs:label="Assertor">
     <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;ConfidenceLevel" rdfs:label="ConfidenceLevel">
     <rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;TestCase" rdfs:label="TestCase"> 
     <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;TestMode" rdfs:label="TestMode">
   <rdfs:subClassOf rdf:resource="&rdf;Resource">
</rdfs:Class>
<rdfs:Class rdf:about="&earl;TestResult" rdfs:label="TestResult">
     <rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;TestSubject" rdfs:label="TestSubject"> 
   <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;ValidityLevel" rdfs:label="ValidityLevel"> 
     <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
</rdfs:Class> 

Proposed Schema:

<rdfs:Class rdf:about="#Assertion">
  <rdfs:label xml:lang="en">Assertion</rdfs:label>
  <rdfs:comment xml:lang="en">Assertion about the execution of a test</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#Assertor">
  <rdfs:label xml:lang="en">Assertor</rdfs:label>
  <rdfs:comment xml:lang="en">Person or Tool that claims assertions</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#TestSubject">
  <rdfs:label xml:lang="en">Test Subject</rdfs:label>
  <rdfs:comment xml:lang="en">Subject of the assertion</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#TestCase">
  <rdfs:label xml:lang="en">Test Case</rdfs:label>
  <rdfs:comment xml:lang="en">Test case against which subjects are tested</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#TestResult">
  <rdfs:label xml:lang="en">Test Result</rdfs:label>
  <rdfs:comment xml:lang="en">Result from conducting test cases on subjects</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#TestMode">
  <rdfs:label xml:lang="en">Test Mode</rdfs:label>
  <rdfs:comment xml:lang="en">Mode in which tests were conducted</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#ConfidenceLevel">
  <rdfs:label xml:lang="en">Confidence Level</rdfs:label>
  <rdfs:comment xml:lang="en">Confidence in the result yielded from the test</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#ValidityLevel">
  <rdfs:label xml:lang="en">Validity Level</rdfs:label>
  <rdfs:comment xml:lang="en">Validity claim segment of results</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="#Location">
  <rdfs:label xml:lang="en">Location</rdfs:label>
  <rdfs:comment xml:lang="en">Occurence of results in subjects</rdfs:comment>
</rdfs:Class>

Description:

Added "Location" class to identify the location of the assertion within the subject.

Status:

In discussion, also pending finalizing properties of the Classes.

Sub-Classes of TestSubject

Current Schema:

<rdfs:Class rdf:about="&earl;Tool" rdfs:label="Tool"> 
     <rdfs:subClassOf rdf:resource="&earl;TestSubject"/> 
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;UserAgent" rdfs:label="UserAgent">
     <rdfs:subClassOf rdf:resource="&earl;TestSubject"/>
</rdfs:Class> 
<rdfs:Class rdf:about="&earl;WebContent" rdfs:label="WebContent">
     <rdfs:subClassOf rdf:resource="&earl;TestSubject"/>
</rdfs:Class> 

Proposed Schema:

<rdfs:Class rdf:about="#WebContent">
  <rdfs:label xml:lang="en">Web Content</rdfs:label>
  <rdfs:comment xml:lang="en">Subjects that are available on the Web</rdfs:comment>
</rdfs:Class>

Description:

During the discussion on 26 April, 2005, it was agreed to drop the earl:Tool and earl:UserAgent classes because they have not been implemented widely in practice.

Status:

In discussion.

Sub-Classes of Assertor

Current Schema:

None.

Proposed Schema:

<rdfs:Class rdf:about="#Tool">
  <rdfs:subClassOf rdf:resource="&earl;Assertor"/>
  <rdfs:label xml:lang="en">Tool Assertor</rdfs:label>
  <rdfs:comment xml:lang="en">Tool that carries out tests or claims whole assertions</rdfs:comment>
</rdfs:Class>

Description:

During the discussion on 26 April, 2005, it was agreed to introduce a earl:Tool class to describe tool assertors such as evaluation tools. It was also agreed that people should be described using FOAF.

Status:

In discussion.

Properties of Assertion

Current Schema:

<rdf:Property rdf:about="&earl;mode" rdfs:label="mode">
     <rdfs:domain rdf:resource="&earl;Assertion"/>
     <rdfs:range rdf:resource="&earl;TestMode"/>
</rdf:Property>
<rdf:Property rdf:about="&earl;result" rdfs:label="result">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;TestResult"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;subject" rdfs:label="subject">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;TestSubject"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;testcase" rdfs:label="testcase">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;TestCase"/> 
</rdf:Property> 
<rdf:Property rdf:about="&earl;assertedBy" rdfs:label="assertedBy">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;Assertor"/> 
</rdf:Property> 

Proposed Schema:

<rdf:Property rdf:about="&rdf;ID" rdfs:label="ID">
     <rdfs:domain rdf:resource="&earl;Assertion"/>
     <rdfs:range rdf:resource="&rdf;Literal"/>
</rdf:Property>
<rdf:Property rdf:about="&earl;mode" rdfs:label="mode">
     <rdfs:domain rdf:resource="&earl;Assertion"/>
     <rdfs:range rdf:resource="&earl;TestMode"/>
</rdf:Property>
<rdf:Property rdf:about="&earl;result" rdfs:label="result">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;TestResult"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;subject" rdfs:label="subject">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;TestSubject"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;testcase" rdfs:label="testcase">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;TestCase"/> 
</rdf:Property> 
<rdf:Property rdf:about="&earl;assertedBy" rdfs:label="assertedBy">
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;Assertor"/> 
</rdf:Property> 
<rdf:Property rdf:about="&earl;location" rdfs:label="location">
     <rdfs:subClassOf rdf:resource="&rdfs;Container"/> 
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;Location"/> 
</rdf:Property> 
<rdf:Property rdf:about="&earl;evidence" rdfs:label="evidence">
     <rdfs:subClassOf rdf:resource="&rdfs;Container"/> 
     <rdfs:domain rdf:resource="&earl;Assertion"/> 
     <rdfs:range rdf:resource="&earl;Assertion"/> 
</rdf:Property> 

Description:

Added "ID" to ensure each "assertion" is unique throughout a report. Added "location" property to identify the location of the assertion within the subject. Added "evidence" container to allow pointing to other assertions as reasons for the current assertion claim.

Status:

Not reviewed.

Properties of Assertor

Current Schema:

<rdf:Property rdf:about="&earl;contactInfo" rdfs:label="contactInfo">
     <rdfs:domain rdf:resource="&earl;Assertor"/> 
     <rdfs:range rdf:resource="&rdfs;Resource"/> 
</rdf:Property> 
<rdf:Property rdf:about="&earl;email" rdfs:label="email"> 
     <rdfs:domain rdf:resource="&earl;Assertor"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
     <rdfs:subPropertyOf rdf:resource="&earl;contactInfo"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;name" rdfs:label="name">
     <rdfs:domain rdf:resource="&earl;Assertor"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property> 
<rdf:Property rdf:about="&earl;platform" rdfs:label="platform"> 
     <rdfs:domain rdf:resource="&earl;Assertor"/> 
     <rdfs:range rdf:resource="&rdfs;Resource"/> 
</rdf:Property> 

Proposed Schema:

<rdf:Property rdf:about="&dc;title" rdfs:label="title">
     <rdfs:domain rdf:resource="&earl;Tool"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property> 
<rdf:Property rdf:about="&dc;hasVersion" rdfs:label="hasVersion"> 
     <rdfs:domain rdf:resource="&earl;Tool"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&foaf;name" rdfs:label="name">
     <rdfs:domain rdf:resource="&foaf;Person"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property> 
<rdf:Property rdf:about="&foaf;mbox" rdfs:label="email"> 
     <rdfs:domain rdf:resource="&foaf;Person"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;usingTool" rdfs:label="usingTool"> 
     <rdfs:domain rdf:resource="&foaf;Person"/> 
     <rdfs:range rdf:resource="&earl;Tool"/> 
</rdf:Property> 

Description:

Changed identification properties to be more "Tool" or "Person" specific while reusing as much existing vocabulary as possible. Also added a "usingTool" property to indicate which tool(s) an evaluator used during the evaluation. Dropped "platform" property which is not defined beyond being a resource.

Status:

Not reviewed.

Properties of TestSubject

Current Schema:

<rdf:Property rdf:about="&earl;format" rdfs:label="format">
     <rdfs:domain rdf:resource="&earl;WebContent"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;reprOf" rdfs:label="reprOf"> 
     <rdfs:domain rdf:resource="&earl;WebContent"/> 
     <rdfs:range rdf:resource="&rdfs;Resource"/> 
</rdf:Property>

Proposed Schema:

<rdf:Property rdf:about="&dc;hasPart" rdfs:label="hasPart"> 
     <rdfs:domain rdf:resource="&earl;TestSubject"/> 
     <rdfs:range rdf:resource="&rdfs;TestSubject"/> 
</rdf:Property>
<rdf:Property rdf:about="&dc;isPartOf" rdfs:label="isPartOf"> 
     <rdfs:domain rdf:resource="&earl;TestSubject"/> 
     <rdfs:range rdf:resource="&rdfs;TestSubject"/> 
</rdf:Property>
<rdf:Property rdf:about="&dc;date" rdfs:label="date"> 
     <rdfs:domain rdf:resource="&earl;TestSubject"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;reprOf" rdfs:label="reprOf"> 
     <rdfs:domain rdf:resource="&earl;TestSubject"/> 
     <rdfs:range rdf:resource="&rdfs;Resource"/> 
</rdf:Property>
<rdf:Property rdf:about="&dc;format" rdfs:label="format">
     <rdfs:domain rdf:resource="&earl;TestSubject"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;http-header" rdfs:label="http-header">
     <rdfs:domain rdf:resource="&earl;WebContent"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>

Description:

Both "reprOf" and "format" should apply to any "TestSubject", while "http-header" is specific to "WebContent" subjects. Added "date" to allow time stamping of the subject. Added "hasPart" and "isPartOf" properties to allow relating subjects to each other. Changed "format" to DC.

Status:

Not reviewed.

Properties of TestResult

Current Schema:

<rdf:Property rdf:about="&earl;validity" rdfs:label="validity">   
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&earl;ValidityLevel"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;message" rdfs:label="message">
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;confidence" rdfs:label="confidence">
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&earl;ConfidenceLevel"/> 
</rdf:Property>

Proposed Schema:

<rdf:Property rdf:about="&earl;validity" rdfs:label="validity">   
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&earl;ValidityLevel"/> 
</rdf:Property>
<rdf:Property rdf:about="&dc;description" rdfs:label="description">
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;confidence" rdfs:label="confidence">
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&earl;ConfidenceLevel"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;precision" rdfs:label="presicion">   
     <rdfs:domain rdf:resource="&earl;TestResult"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>

Description:

Added "precision" property for heuristic evaluations that have certainity factors. Changed "earl:message" to "dc:description".

Status:

Not reviewed.

Properties of TestCase

Current Schema:

None.

Proposed Schema:

<rdf:Property rdf:about="&dc;hasPart" rdfs:label="hasPart"> 
     <rdfs:domain rdf:resource="&earl;TestCase"/> 
     <rdfs:range rdf:resource="&rdfs;TestCase"/> 
</rdf:Property>
<rdf:Property rdf:about="&dc;isPartOf" rdfs:label="isPartOf"> 
     <rdfs:domain rdf:resource="&earl;TestCase"/> 
     <rdfs:range rdf:resource="&rdfs;TestCase"/> 
</rdf:Property>

Description:

Added "hasPart" and "isPartOf" properties to allow relating test cases to each other.

Status:

Not reviewed.

Properties of Location

Current Schema:

None.

Proposed Schema:

<rdf:Property rdf:about="&earl;line" rdfs:label="line">
     <rdfs:domain rdf:resource="&earl;Location"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;xpath" rdfs:label="xpath">
     <rdfs:domain rdf:resource="&earl;Location"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&earl;element-id" rdfs:label="element-id">
     <rdfs:domain rdf:resource="&earl;Location"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>
<rdf:Property rdf:about="&dc;description" rdfs:label="description">
     <rdfs:domain rdf:resource="&earl;Location"/> 
     <rdfs:range rdf:resource="&rdfs;Literal"/> 
</rdf:Property>

Description:

Added some possible location pointers. This section needs heavy refinement work.

Status:

Not reviewed.

Instances of Classes

Current Schema:

<earl:TestMode rdf:about="&earl;manual" rdfs:label="manual">
   <rdfs:comment>The test was performed by a human.</rdfs:comment>
</earl:TestMode>
<earl:TestMode rdf:about="&earl;automatic" rdfs:label="automatic">
    <rdfs:comment>The test was performed by a tool or machine.</rdfs:comment>
</earl:TestMode>
<earl:TestMode rdf:about="&earl;heuristic" rdfs:label="heuristic">
    <rdfs:comment>The test is derived from other test results.</rdfs:comment>
</earl:TestMode>

<earl:ValidityLevel rdf:about="&earl;pass" rdfs:label="pass"/> 
<earl:ValidityLevel rdf:about="&earl;fail" rdfs:label="fail"/>
<earl:ValidityLevel rdf:about="&earl;cannotTell" rdfs:label="cannotTell"/>
<earl:ValidityLevel rdf:about="&earl;notApplicable" rdfs:label="notApplicable"/>
<earl:ValidityLevel rdf:about="&earl;notTested" rdfs:label="notTested"/>

<earl:ConfidenceLevel rdf:about="&earl;low" rdfs:label="low"/>
<earl:ConfidenceLevel rdf:about="&earl;medium" rdfs:label="medium"/>
<earl:ConfidenceLevel rdf:about="&earl;high" rdfs:label="high"/>

Proposed Schema:

Same.

Status:

Not reviewed.