El código EARL a través de ejemplos

Charles McCathieNevile (Ver la english version o la version française o la versione italiano)

Acerca de esta presentación

Esta presentación pretende ser útil para aquella personas que pueden copiar y pegar ejemplos XML para editarlo, aun sin saber XML, RDF o EARL. Pretende explicar EARL de forma sencilla, y mostrar unas posibilidades que EARL tiene y como usarlos.

Sus comentarios son bienvenidos - por favor enviélos a:

Este es un borrador - $Date: 2004/06/16 17:28:32 $, y describe el borrador de EARL de 6 diciembre 2002 (inglés)

Reconocimientos

Muchas gracias al grupo G1 del Sidar, a la gente de la lista Hummana, y al grupo ERT del WAI, por sus sugerencias y comentarios.

Gracias a Maurizio Vittoria (italiano) y al grupo de trductores del Sidar (español) para ayuda con los idiomas

Esta presentación esta financiada en parte por el proyecto SWAD-Europe

La idea en general...

EARL permite guardar resultados de una evalución:

El 2001/06/23 a las 7am Charles dice:

Mi documento cumple

Importante - EARL es RDF

EARL es RDF - ¡se debe validar su código!

Para crear EARL, puede tratarse como si fuera XML.

(Pero para leer EARL realizado por otros tiene que tratarlo como RDF.

También las posibilidades lo más interesantes requieren RDF.

Se trata este punto en la segunda parte de esta presentación.)

Estructura de EARL

Una declaración EARL tiene al menos 5 propriedades

A menudo se incluye también un mensaje o comentario

Lo evaluado - subject

Cuando la evaluación es de algo que tiene una URI

<earl:subject rdf:resource="http://example.net/#item"/>

Con una página web, es mejor quizás evaluar una vista:

<earl:subject>
  <earl:WebContent> <!-- contenido web -->
    <earl:reprOf rdf:resource="http://example.org/" />
      <!-- reproducción de una página -->
    <earl:date>31-12-1977</earl:date>
  </earl:WebContent>
</earl:subject> 

El caso de referencia - testCase

Si el caso de referencia está ya descrito en RDF:

<earl:testCase rdf:resource="http://example.org/tests#number1"/>

EARL supone que cada caso de referencia tiene una URI

El resultado - result

Hay 5 posibilidades:

por ejemplo, una evaluación inconclusa:

<earl:result rdf:type"http://www.w3.org/WAI/ER/EARL/nmg-strawman#CannotTell"/>

El evaluador - assertedBy

¿Quién ha proporcionado estos resultados?.

Algunas herramientas tienen su propio URI (dirección Web):

<earl:assertedBy rdf:resource="http://www.tawdis.net/"/>

Pero muchas no lo tienen. Las personas tampoco son descargables.

Manera de decidir el resultado - mode

Manual
Una persona lo dice
Automatic
Una herramienta dice
Por Inferencia - Heuristic
Un resultado logrado mediante inferencia de otros resultados. ("Heuristic" no significa exactamene eso en inglés. Pero esta cuestión es poco importante para el que solo sabe árabe y chino...)
<earl:mode rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#automatic"/>

Comentario - message

Comentario como se queire - útil para añadir algo interesante

<earl:message>Ningún comentario - he evaluado bien.</earl:message>

Un ejemplo completo

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:earl="http://www.w3.org/WAI/ER/EARL/nmg-strawman#">
  <earl:Assertion>
    <earl:subject rdf:resource="#http://www.w3.org/" />
    <earl:result rdf:type"http://www.w3.org/WAI/ER/EARL/nmg-strawman#Pass"/>
    <earl:testcase rdf:resource="http://example.org/1999/xhtml#transitional"/>
    <earl:assertedBy rdf:resource="http://validator.w3.org" />
    <earl:mode rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#automatic"/>
    <earl:message>This page is valid XHTML</earl:message>
  </earl:Assertion>
</rdf:RDF> 

Parte II - avanzada

RDF - más implicaciones

¿Que implica?

RDF - datos explicitos

Los elementos RDF pueden tener un idioma o tipo de dato

...
<earl:date rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2004-01-05T13:20:00Z</earl:date>
<earl:message xml:lang="es">en mis vacaciones</earl:message>
<earl:message xml:lang="en">during the holidays</earl:message>
...

Resultados múltiples juntos

Muchas veces se crea resultados múltiples a la vez

Se puede ponerlos en un solo fichero para código mas compacto

Por ejemplo, subjeto o evaluador común

Una buena practica: identifica cada evaluación...

Resultados multiples - un ejemplo

<earl:WebContent rdf:about="#subject">
  <earl:reprOf rdf:resource="http://example.org/" /> 
  <earl:date>last sunday</earl:date>
</earl:WebContent>
<earl:Assertion rdf:about="#test1result">
  <earl:subject rdf:resource="#subject" />
  <earl:testcase rdf:resource="http://example.org/#test1"/>
  <!-- ... -->
</earl:Assertion>
<earl:Assertion rdf:about="#test2result">
  <earl:subject rdf:resource="#subject" />
  <earl:testcase rdf:resource="http://example.org/#test2"/>
  <!-- ... -->
</earl:Assertion> 

Mas sobre lo evaluado

Más sobre el caso de referencía

Se puede describir la naturaleza de la evaluación en RDF:

<earl:testcase>
  <earl:TestCase rdf:about="http://www.w3.org/TR/WCAG10/#tech-text-equivalent">
    <wcag:checkpoint>1.1 </wcag:checkpoint>
    <dc:title xml:lang="es">Proporcione un texto equivalente para todo elemento no textual </dc:title>
  </earl:TestCase>
</earl:testcase>

EARL en si mismo no se usa para definir un caso de referencia.

Nuevos tipos de resultado

Tipos más detallados de resultados. Es importante definir su relación con las propriedades originales

Este ejemplo crea una nuevas version de "no cumple" (Fail), par cuando hay un conformidad partial

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:about="http://www.sidar.org/rdf-def/mas-earl#Partial">
   <rdfs:subClassOf rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#Fail"/>
   <rdfs:isDefinedBy rdf:resource="http://www.sidar.org/rdf-def/mas-earl#"/>
   <rdfs:label xml:lang="es">Cumple solo parte del punto</rdfs:label>
   <rdfs:label xml:lang="en">Only partially meets the checkpoint</rdfs:label>
   <rdfs:comment xml:lang="es">Una extensión usada por Hera, para identificar contenido que cumple patialmente</rdfs:comment>
</rdfs:Class>

Usando nuevos resultados

Con RDF y Lenguaje de Vocabularios (esquemas de RDF) se puede saber que Partial es un tipo de Fail.

En este ejemplo, hemos incluso los dos, porque hasta ahora EARL no limite el numero de resultados que se puede declarar y para ayudar las herramientas los mas basicas:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:earl="http://www.w3.org/WAI/ER/EARL/nmg-strawman#">
   <earl:Assertion>
     <earl:subject rdf:resource="#http://example.org/" />
     <earl:result rdf:type"http://www.sidar.org/rdf-def/mas-earl#Casi"/>
     <earl:result rdf:type"http://www.w3.org/WAI/ER/EARL/nmg-strawman#Fail"/>
     <earl:testcase rdf:resource="http://www.w3.org/TR/WCAG10/wai-pageauth.html#tech-use- 
metadata"/>
     <earl:assertedBy rdf:resource="http://www.sidar.org/hera/" />
     <earl:mode rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#automatic"/>
     <earl:message xml:lang="es">Tiene que especificar también el autor de la página</earl:message>
   </earl:Assertion>
</rdf:RDF>

Describir el evaluador

Aqui usando el vocabulario Amigo-de-un-amigo (FOAF en inglés) para indentificar una persona:

<earl:assertedBy>
  <foaf:Person>
    <foaf:mbox rdf:resource="mailto:charles@sidar.org"/>
    <foaf:name>Chaals</foaf:name>
  <foaf:Person>
</earl:assertedBy>

Ejemplos complejos

Los ejemplos siguientes muestran posibilidades avanzadas:

earlinst.rdf
declaraciones múltiples, descripción FOAF del evaluador, descripción compleja y bilingüe del caso de referencia

Dónde está el error?

Un problemo actualmente abierto:

Importante para reparación, o cuando hay diversas possibilidades

Diversas versiones

Hay algunas versiones distintas de EARL (0.90, 0.95, la versión descrito en esta presentación). Entonces es importante identificar que versión se usa, por el espacio de nombre (namespace) correcto. Para la versión explicada en esta presentación, es

<rdf:RDF xmlns:earl="http://www.w3.org/WAI/ER/EARL/nmg-strawman#">