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à ‘è’.
SELECT <xml_contained xml_var = ‘$parola’>
è
</xml_contained>
FROM esempio.xml RETURN $parola
• Operandi: “è”
• Commenti: La clausola SELECT genera l’albero XML in cui la variabile $parola viene legata al nodo etichettato ‘è’. La clausola RETURN usa le occorrenze esatte di ‘“è’ 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èveloppement
</xcde:return>
. . .
<xcde:return result_number = ‘6’>
rèsumès
</xcde:return>
</xcde:result>
</xcde:results>