W3C home > Mailing lists > Public > public-wai-ert@w3.org > February 2007

Re: 20060927-conformant RDF?

From: Shadi Abou-Zahra <shadi@w3.org>
Date: Thu, 15 Feb 2007 10:35:42 +0100
Message-ID: <45D4296E.7020501@w3.org>
To: Alan Dean <alan.dean@gmail.com>
Cc: public-wai-ert@w3.org

Hi,

Alan Dean wrote:
> I want to use EARL to represent assertions upon RESTful web applications.

Sounds interesting, please let us know when your application becomes
available.


> Yes, I have been looking at the test-related sections of the spec and
> I have to admit that I have found the spec very hard going. My
> apologies, but I have found it hard make sense of what has been
> written. Below, I did a simple copy & paste of Example 8 at
> http://www.w3.org/TR/2006/WD-EARL10-Schema-20060927/#testable and
> tweaked it for my sample RDF:

Thanks for the feedback on the readability, this is what Working Drafts
are for. I hope the final edits together with the EARL Guide will be
more helpful and easier to understand.


>  <earl:TestCase rdf:ID="testcase">
>    <dc:title xml:lang="en">REST Test 1</dc:title>
>    <dc:description xml:lang="en">Test 1 of the REST test 
> suite</dc:description>
>    <dcterms:isPartOf rdf:resource="http://example.org/tests/rest/"/>
>    <dc:identifier>http://example.org/tests/rest/#1</dc:identifier>
>  </earl:TestCase>
> 
[SNIP]
>     <earl:test rdf:resource="http://example.org/tests/rest/#1" />

The URI in the earl:test should match the ID (or rdf:about) of the test.
In this case it is sufficient to use #testcase, analogous to #subject
and #assertor, etc.


> Further, I have been trying to understand how I can use
> http://www.w3.org/TR/2006/WD-EARL10-Schema-20060927/#instancelocation
> to indicate a non-content location. For example, to indicate that the
> location is the HTTP status. Also, I have been unable to deduce how to
> represent an assertion of non-existence or null, for example an
> assertion that the ETag header should not be present in a response. I
> had a look at some WCAG examples, but of course they are only
> referring to body content.

First, the vocabulary for these pointers will be moved to an own 
document on the next revision of EARL. The document will be more 
elaborate and so hopefully easier to understand too.

Having said that, the current wording reads: "An Instance Location is a 
an area within the Test Subject that triggered or primarily influenced 
the Test Result". In other words, pointers in your example would point 
into the *content* received from a HEAD request to http://example.com.

Instead of using the predefined earl:WebContent class (which describes 
content on the Web rather than a protocol), you will probably need to 
use earl:Subject directly (which is basically *anything* you are 
testing), or even better create your own subclass of it. In any case, 
the pointers will need to point into the file where you store the 
information about the subjects (the EARL information doesn't have to be 
necessarily all in one file). Here is an example:

FILE 1:
[...]
<earl:Subject rdf:about="#subject1">
   <dc:title>HTTP exchange 1</dc:title>
   <own:extension1>
     <http:HeadRequest>
       <uri:uri>http://example.com</uri:uri>
     </http:HeadRequest>
   </own:extension1>
   <own:extension2>
     <http:Response>
       <http:responseCode>200 OK</http:responseCode>
       <http:date>Sat, 10 Feb 2007 16:04:19 GMT</http:date>
       <http:last-modified>Tue, 15 Nov 2005 13:24:10 
GMT</http:last-modified>
       <http:etag>"63ffd-1b6-80bfd280"</http:etag>
       <http:content-type>text/html; charset=UTF-8</http:content-type>
     </http:Response>
   </own:extension2>
</earl:Subject>
[...]


FILE 2:
[...]
<earl:Assertion rdf:about"#assertion1">
   [...]
   <earl:subject rdf:resource="&file1-URI;#subject1" />
   <earl:result rdf:parseType="Resource">
     <dc:description>ETag should not be in response</dc:description>
     <earl:validity rdf:resource="&earl;#fail" />
     <earl:instance>
       <earl:xPath>
         <earl:expression>[...]</earl:expression>
       </earl:xPath>
     </earl:instance>
   </earl:result>
</earl:Assertion>
[...]


You will need to define the RDFS for own:extension1 and own:extension2 
which are properties from earl:Subject to http:Request and http:Response 
respectively.

Hope this helps.

Regards,
   Shadi


-- 
Shadi Abou-Zahra     Web Accessibility Specialist for Europe |
Chair & Staff Contact for the Evaluation and Repair Tools WG |
World Wide Web Consortium (W3C)           http://www.w3.org/ |
Web Accessibility Initiative (WAI),   http://www.w3.org/WAI/ |
WAI-TIES Project,                http://www.w3.org/WAI/TIES/ |
Evaluation and Repair Tools WG,    http://www.w3.org/WAI/ER/ |
2004, Route des Lucioles - 06560,  Sophia-Antipolis - France |
Voice: +33(0)4 92 38 50 64          Fax: +33(0)4 92 38 78 22 |
Received on Thursday, 15 February 2007 09:36:05 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:18:28 GMT