Il codice EARL (per non esperti)

Charles McCathieNevile (versión castellano o il version française, o il version inglese)

Su questa presentazione

Questa presentazione di EARL è pensata per aiutare le persone che sono attratte dall'idea di fare copia/incolla del codice sorgente XML per redigere del nuovo XML, ma che non hanno familiarità nè con EARL nè con RDF. Si vuole spiegare come creare un semplice corretto EARL, e mostrare come usare alcune delle sue più avanzate possibilità.

Si prega di inviare i commenti

Questo è un Work in Progress - $Data: 2003/12/31 01:57:51 $ Descrive il working draft del 6 dicembre 2002 

Ringraziamenti

Molti ringraziamenti alla gente della lista Humana, al G1 group di Sidar ed al WAI ERT working group, per i commenti e per i suggerimenti.

Grazie a Maurizio Vittoria ed al grupo di traduttori del Sidar per aiuto coi linguaggi diversi.

Questa presentazione è stata  prodotta come parte del SWAD-Europe project.

L'idea in generale...

EARL vi permette di registrare i risultati diqualcosa sottoposto a test :

Il 2001/06/23 alle 7,  Charles dice:

Il mio documento è conforme a

Le basi - EARL è RDF

EARL è RDF - Si deve validarlo!

Per creare EARL, si può trattare come se fosse  XML. 

(Ma per leggere EARL creato da altre persone, bisogna trattarlo come RDF.

Anche per le possibilità più interessanti ci vuole RDF.

Questo si vedrà più avanti.)

La struttura di EARL

Una dichiarazione  EARL ha almeno 5 proprietà:

E spesso c'è un messaggio di commento

Il soggetto del test -  subject

Quando la valutazione di un "qualcosa" ha un URI

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

Per una pagina web, è spesso migliore, verificare come era in un certo momento

<earl:subject>
  <earl:WebContent>
    <earl:reprOf rdf:resource="http://example.org/" />
    <earl:date>31-12-1977</earl:date>
  </earl:WebContent>
</earl:subject> 

Il punto di controllo - testCase

Se il punto de verifica è già descritto  in RDF :

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

EARL presume che ogni punto abbia un URI riconosciuto

Il risultato - result

Vi sono 5 possibilità::

per esempio:

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

Il valutatore - assertedBy

Che ha prodotto questi risultati

Alcuni strumenti hanno realmente un URI:

<earl:assertedBy rdf:resource="http://validator.w3.org/"/>

(Ma molti strumenti non li hanno. E neppure le persone - perchè non si possono scaricare

Vedere la sezione avanzata per come trattare questi casi)

Com' il risultato era deciso - mode

Manuale - manual
Una persona prende la decisione
Automatico - automatic
Uno strumento prende la decisione
Per induzione  - heuristic
L'affermazione è il risultato di induzioni da altre affermazioni. ( Sì, "heuristic" no significa questo in Inglese. Ma non è importante per chi parla soltanto l'Arabo od altro)
<earl:mode rdf:resource="http://www.w3.org/WAI/ER/EARL/nmg-strawman#automatic"/>

Commento - message

Questo è solo un commento libero. Molto utile sui test manuali, può essere anche usato per altre cose 

<earl:message>Niente - ho deciso cosi</earl:message>

Un semplice esempio 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 - avanzata

RDF - più implicazioni

Che vuol dire

RDF - data esplicita

Gli elementi RDF possono tenire un linguaggio, o tipo di data

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

Multipli risultati insieme

Si creeranno spesso più risultati  simultanei

Si potrà metterli assieme in un singolo file per un codice più compatto

Per esempio, un dettagliato  soggetto o una informazione del valutatore

Buona pratica: Identificare ogni valutazione 

Multipli risultati - esempio di codice

<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> 

Ancora sul soggetto

Ancora sul punto di controllo

Si può descrivere il test in 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="it">Fornire un equivalente testuale per ogni elemento non di testo </dc:title>
  </earl:TestCase></earl:testcase>

EARL non è un vocabolario per definire gli test. 

Nuovi tipi di risultati

Si possono definire tipi di risultato più dettagliati. 

E' importante definire le loro relazioni con le proprietà originali

In questo esempio vi sono due versioni nuove di "Non conforme" (Fail)

<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="it">Conforme soltanto a parte del punto</rdfs:label>
   <rdfs:label xml:lang="en">Only partially meets the checkpoint</rdfs:label>
   <rdfs:comment xml:lang="es">Una estensione usata per Hera, per identificare contenuto che conforme parzialmente</rdfs:comment>
</rdfs:Class>

Utilizzando gli novi resultati

Gli sistemmi che capsicono tutto RDF, incluso il linguaggio dei vocabulari (anche chiamata RDF Schema) reconoscono che Partial è un tipo de Fail.

Ma perche EARL no limita il numero dei risultati, abbiamo metto qui i due ristultati, per aiutare anche i sistemmi i piu semplice

<?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#Partial"/>
     <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="en">You still need to specify the author of the page</earl:message>
   </earl:Assertion>
</rdf:RDF>

Descrivere il valutatore

Usare il vocabolario "Friend-of-a-friend"  per identificare una persona:

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

Esempi complessi

Gli esempi seguenti dimostrano alcune caratteristiche più avanzate:

earlinst.rdf
dichiarazioni multiple, descrizione  FOAF, descrizione bilingue (inglese, spagnolo) dei punti di controllo

Localizzare l'errore

Questa è una questione aperta:

Importante per elaborazioni di riparazione, e dove ci sono multipli possibili errori

Versioni differenti

Vi sono numerose versioni differenti di EARL . È quindi importante identificare quale versione si usa, utilizzando il corretto spazio dei nomi  ("XML  namespace"). Per la version spiegato ne questa presentazione, è

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