• Non ci sono risultati.

XCDEv2.0: Query Language

2.1 Esempi di interrogazioni

2.1.6 Altri esempi

Gli esempi seguenti illustrano interrogazioni necessarie per mostrare altre ricerche testuali significative. Alcune interrogazioni restituiscono elementi aggiuntivi o diversi dagli elementi interrogati. Altre interrogano parole ignorando la presenza di elementi intermedi.

2.1.6.1 Interrogazioni su elementi con restituzione di elementi differenti

L’interrogazione cerca parole all’interno di un elemento e restituisce elementi differenti presenti all’interno dello stesso documento.

L’esempio trova tutti i libri che contengono le parole ‘usability’ e ‘testing’ nell’elemento

<subject>.

SELECT <book>

<subject>Usability testing</subject>

<xml_or>

<metadata>

<title xml_var = ’$titolo’ xml_dist = ‘1’>

</title>

</metadata>

<authors xml_var = ’$autore’></authors>

<dateRevised xml_var = ’$dataRev’></dateRevised>

</xml_or>

</book>

FROM esempio.xml

RETURN $titolo $autore $dataRev

Operandi: “Usability testing

Commenti: La clausola SELECT genera l’albero XML in cui la variabile $titolo viene legata al nodo etichettato ‘title’, la variabile $autore viene legata al nodo etichettato ‘authors’, la variabile $dataRev viene legata al nodo etichettato ‘dateRevised’.

La ricerca è considerata case-insensitive. Un vincolo dell’interrogazione prevede che almeno un elemento tra <title>,

<authors> e <dateRevised> deve essere presente all’interno dell’elemento <book>. L’attributo xml_dist (vedi paragrafo 2.1.2.3) specifica la distanza massima tra l’elemento che lo contiene e il suo antenato nel testo. Per le parole valgono le regole illustrate nel paragrafo 2.1.1. La clausola RETURN usa il

sottoalbero con radice nel nodo associato a $titolo, $autore e

$dataRev per generare la lista degli elementi risultanti.

Risultato atteso:

<xcde:results>

<xcde:result>

<xcde:filename>esempio.xml</xcde:filename>

<xcde:return result_number = ‘1’>

<title shortTitle=”Improving Web Site Usability”>Improving the Usability of a Web Site Through Expert Reviews and Usability Testing</title>

<authors>

<author>Millicent Marigold</author>

<author>Montana Marigold</author>

</authors>

<dateRevised>2002</dateRevised>

</xcde:return>

<xcde:return result_number = ‘2’>

<title shortTitle=”Usability Basics”>Usability Basics: How to Plan for and Conduct Usability Tests on Web Site Thereby Improving the Usability of Your Web Site</title>

<dateRevised>2001</dateRevised>

</xcde:return>

<xcde:return result_number = ‘3’>

<title shortTitle=”Usabilityguy Manuscript Guide”>

John Wesley Usabilityguy: A Register of His Papers</title>

<authors>

<author>Millicent Marigold</author>

<author>Morty Marigold</author>

</authors>

<dateRevised>2002</dateRevised>

</xcde:return>

</xcde:result>

</xcde:results>

2.1.6.2 Interrogazioni su parole ignorando gli elementi

L’interrogazione cerca una sequenza di parole anche se inizia all’interno di un elemento e termina in un altro elemento.

L’esempio trova tutti i <book> con la frase ‘usability testing once the problems’.

SELECT <book>

<title xml_var = ‘$titolo’ xml_dist = ‘2’></title>

<content xml_var = ’$content’>

<xml_proximity xml_maxprox = ‘4’>

usability testing once the problems

</xml_proximity>

</content>

</book>

FROM esempio.xml RETURN $titolo $content

Operandi: “usability testing once the problems

Commenti: La clausola SELECT genera l’albero XML in cui la variabile $titolo viene legata al nodo etichettato ‘title’, la variabile $content viene legata al nodo etichettato ‘content’. La ricerca è considerata case-insensitive. La proximity tra le parole è 4 e deve esistere un elemento <title> al più a distanza 2 dall’elemento <book>. Per le parole valgono le regole illustrate nel paragrafo 2.1.1. La clausola RETURN usa il sottoalbero con radice nel nodo associato a $titolo, $content per generare la lista degli elementi risultanti.

Risultato atteso:

<xcde:results>

<xcde:result>

<xcde:filename>esempio.xml</xcde:filename>

<xcde:return result_number = ‘1’>

<title shortTitle=”Improving Web Site Usability”>Improving the Usability of a Web Site Through Expert Reviews and Usability Testing</title>

<content>

….. <title>Usability Testing</title>

<p>Once the problems identified by expert reviews have been corrected, it is time to conduct some tests of the site with your unique audience or audiences by conducting usability testing.</p>

</content>…..

</xcde:return>

</xcde:result>

</xcde:results>

2.1.6.3 Interrogazioni su entità

L’interrogazione cerca una entità nel documento.

L’esempio trova tutte le parole contenenti l’entità ‘&egrave;’.

SELECT <xml_contained xml_var = ‘$parola’>

&egrave;

</xml_contained>

FROM esempio.xml RETURN $parola

Operandi: “&egrave;”

Commenti: La clausola SELECT genera l’albero XML in cui la variabile $parola viene legata al nodo etichettato ‘&egrave;’. La clausola RETURN usa le occorrenze esatte di ‘“&egrave;’ associate a $parola per generare la lista dei risultati.

Risultato atteso:

<xcde:results>

<xcde:result>

<xcde:filename>esempio.xml</xcde:filename>

<xcde:return result_number = ‘1’>

D&egrave;veloppement

</xcde:return>

. . .

<xcde:return result_number = ‘6’>

r&egrave;sum&egrave;s

</xcde:return>

</xcde:result>

</xcde:results>