TEHNICI ŞI LIMBAJE DE INTEROGARE

BAZATE PE XML



Conducător ştiinţific,
Prof. Dr. Toader Jucan

Doctorand,
Asist. Mihaela Brut

21 Nov. 2003 | Mihaela Brut

Tehnici şi limbaje de interogare XML

Agenda

  • Introducere

  • Interogarea documentelor Web: istoric şi cadru general

  • Limbaje şi tehnici de interogare XML

  • Limbajul XQuery pentru interogarea documentelor XML

  • Interogări asupra metadatelor XML

  • Concluzii

21 Nov. 2003 | Mihaela Brut [2]

Tehnici şi limbaje de interogare XML

Introducere

  • Problema:
    – Structurarea datelor pentru Web

  • Soluţia:
    – Extensible Markup Language (XML)
    – XHTML, XSL, SMIL, MathML, SVG, RDF etc.

  • Tehnici:

    • Marcarea informaţiilor pentru Web
      – Stocare, formalizare, transformare

    • Căutarea după diverse criterii
      – Limbaje bazate pe XML pentru realizarea de interogări

21 Nov. 2003 | Mihaela Brut [3]

Interogarea XML: istoric şi cadru general

Problema interogării

  • Spaţiul WWW — imens rezervor de informaţie.

  • Problema: localizarea, indexarea, interogarea şi restructurarea conţinutului siturilor WWW.

  • Motoarele de căutare — potrivire de cuvinte cheie.

  • XML = standardul pentru schimbul de informaţii între aplicaţiile Web:

    • Flexibilitate în reprezentarea multor tipuri de informaţie

    • Posibilitatea definirii de noi tipuri de documente

    • Standarde înrudite: XML Schema, XPath, XSLT

  • Limbaje de interogare XML:
    XQL, XML-QL, XML-GL, XQuery.

21 Nov. 2003 | Mihaela Brut [4]

Interogarea XML: istoric şi cadru general

Conferinţa W3C "Query Languages" '98

  • 66 lucrări, 98 participanţi din mediul academic şi comercial

  • Scop: stabilirea cerinţelor pentru limbajele de interogare XML şi propunerea de soluţii concrete

  • Propuneri: XQL, XML-QL, XML-GL, Metalog,
          XML-Query, RDF-Query

  • 40 dintre participanţi (din 25 instituţii) au devenit membri ai grupului de lucru XML Query, constituit în septembrie 1999.

21 Nov. 2003 | Mihaela Brut [5]

Interogarea XML: istoric şi cadru general

Evoluţia tehnicilor de interogare

  • Adaptarea suportului de interogare a bazelor de date pentru interogarea Web-ului: WebLog, Web3QL, WebSQL, WebOQL, XQL, XML-QL, YALT, Lorel

  • Probleme:
    — Stocarea unor depozite imense de date,
    — Integrarea unor date provenite din surse diverse,
    — Exportarea de perspective noi ale datelor moştenite

  • Particularităţi ale bazelor de date:
    — Ierarhie omogenă, cu 3 nivele: tabelă, înregistrare, câmp
    — Ordinea şi contextul nu au valoare semantică
    — Relaţionarea = parte componentă a datelor

21 Nov. 2003 | Mihaela Brut [6]

Interogarea XML: istoric şi cadru general

Evoluţia tehnicilor de interogare

  • Selecţia bazată pe cuvinte cheie: motoarele de căutare

  • XQL: adaptarea principiilor folosite de aplicaţiile de procesare a textelor pentru:
     — Căutarea în text nestructurat
     — Integrarea de text nestructurat în interogări structurate
     — Derivarea unor multiple forme de prezentare dintr-un
         document iniţial

  • Modelarea (grafică) a interogărilor: XML-GL, WQFL, WQGL

  • Interogarea documentelor adnotate în limbaje pentru modelarea cunoştinţelor: RDQL (pt. RDF),
    DQL (pt. DAML+OIL, OWL), Quest (pt. OHTML)

21 Nov. 2003 | Mihaela Brut [7]

Interogarea XML: istoric şi cadru general

Cerinţele pentru limbajul XQuery

  • Grupul de lucru XML-Query din cadrul W3C

  • Sunt vizate 3 standarde:

    • Un model de date pentru documentele XML

    • Un set de operatori de interogare a acestui model de date

    • Un limbaj de interogare bazat pe operatorii astfel stabiliţi

  • Sintaxa interogărilor: bine definită, neambiguă şi exhaustivă

21 Nov. 2003 | Mihaela Brut [8]

Interogarea XML: istoric şi cadru general

Cerinţele pentru limbajul XQuery

  • Extragerea datelor din documente XML foarte vaste, procesându-se:
       – partea structurată (tag-uri, atribute, valori)
       – textul propriu-zis

  • Sintaxă construită pe baza altor standarde XML:
    XPointer, XSL

  • Interogările trebuie transmise printr-o interfaţă grafică

  • Transferul de date XML între documente cu diverse ontologii (DTD-uri)

  • Integrarea datelor XML provenite din surse multiple

21 Nov. 2003 | Mihaela Brut [9]

Interogarea XML: istoric şi cadru general

Cerinţele pentru limbajul XQuery

  • Suport pentru operaţiile standard de interogare:
       – Selecţia
       – Extragerea
       – Reducerea (eliminarea)
       – Restructurarea
       – Combinarea

  • Suport pentru inserare, ştergere, modificare

21 Nov. 2003 | Mihaela Brut [10]

Interogarea XML: istoric şi cadru general

Cerinţele pentru limbajul XQuery

  • Suport pentru interogări imbricate (nested)

  • Combinarea interogării exacte asupra părţii structurate cu interogări textuale (regăsirea unor cuvinte, ordine de apariţie, proximitate, caractere speciale) asupra părţii nestructurate

  • Suport pentru interogări RDF: selecţie bazată pe valorile unor proprietăţi şi metadate

  • Interogarea unor date distribuite, în formate XML diverse

  • Verificarea corectitudinii interogărilor

  • Structurarea rezultatelor sub forma unor documente XML

21 Nov. 2003 | Mihaela Brut [11]

Tehnici şi limbaje de interogare XML

Agenda

  • Introducere

  • Interogarea documentelor Web: istoric şi cadru general

  • Limbaje şi tehnici de interogare XML

  • Limbajul XQuery pentru interogarea documentelor XML

  • Interogări asupra metadatelor XML

  • Concluzii

21 Nov. 2003 | Mihaela Brut [12]

Limbaje şi tehnici de interogare XML

XQL (XML Query Language)

  • Notaţie destinată filtrării şi extragerii de informaţii din documentele XML

  • Preia stilul notaţiei folosite pentru a se preciza calea către un subdirector: / – subtag; @ – atribut

  • Ex.: carte/autor/@nume,
    autor[nume = 'Berners-Lee'], carte/@data_ap < date('22/12/89')

  • Operatori booleeni şi relaţionali: $not$, $and$, $or$, $eq$, $ne$, $lt$, $le$ etc.

  • Constituie un superset al pattern-urilor XSL

21 Nov. 2003 | Mihaela Brut [13]

Limbaje şi tehnici de interogare XML

XML-QL (XML – Query Language)

  • instrucţiune WHERE-CONSTRUCT pentru interogare XML:
       WHERE definește interogarea
       CONSTRUCT – modul de structurare a rezultatului

  • Ex.: WHERE <carte> <domeniu> Informatica </>
    				<titlu> $t </> <autor> $a </>
    		          </> IN www.infoiasi.ro/~bibl.xml
    	   CONSTRUCT <rezultat> <autor> $a </>
    				           <titlu> $t </>
    			      </>
    

  • Facilităţi: referire la structuri derivate şi de date (prin expresii regulate), interogări derivate, încorporarea interogărilor în documente.

21 Nov. 2003 | Mihaela Brut [14]

Limbaje şi tehnici de interogare XML

XML-GL (XML Graphical Language)

  • Sintaxă şi semantică definite în termenii structurilor şi operaţiilor cu grafuri.

  • Ex.: "selectarea tuturor comenzilor în valoare mai mare de 25$ făcute pentru o adresă din Los Angeles"

21 Nov. 2003 | Mihaela Brut [15]

Limbaje şi tehnici de interogare XML

SearchPad

  • Accesibil din AltaVista, Excite, Google şi Hotbot

  • Asociază un buton Mark fiecărui link returnat

  • Organizează link-urile marcate în directoare, păstrând rezultatele de la o sesiune la alta

  • Are şi fereastră proprie

21 Nov. 2003 | Mihaela Brut [16]

Limbaje şi tehnici de interogare XML

SearchPad | Implementare

  • Un proxy furnizează accesul la cele 4 motoare de căutare, inserând în fereastra lor un buton "SearchPad" (pt. deschiderea ferestrei SearchPad) şi câte un buton "Mark" pentru fiecare link.

  • SerachPad este implementat sub forma unui document HTML al cărui conţinut este generat automat.

  • Un script Java comunică URL-ul fiecărui link marcat unei părţi corespunzătoare din codul SearchPad, acesta actualizându-şi informaţiile

21 Nov. 2003 | Mihaela Brut [17]

Limbaje şi tehnici de interogare XML

WebVCR

  • Permite înregistrarea / reiterarea unei serii de paşi urmaţi în navigarea către situri care nu au un URL static:

  • Ex.: www.travelocity.com — date despre cursele aeriene:
     — opţiunea Find/Book a Flight
     — datele necesare logării
     — detalii despre itinerariu
     — obţinerea listei de zboruri alternative

21 Nov. 2003 | Mihaela Brut [18]

Limbaje şi tehnici de interogare XML

WebVCR | Implementare

  • Ataşarea de scripturi Java tuturor obiectelor "active" din pagină (linkuri, butoane, casete de editare etc.)

  • Modificarea browserului sau utilizarea unui proxy care să gestioneze lansarea acestor scripturi

  • Luarea în calcul a diferenţelor ce apar în structura paginilor Web faţă de momentul înregistrării (unele titluri pot fi adăugate/şterse)

21 Nov. 2003 | Mihaela Brut [19]

Limbaje şi tehnici de interogare XML

Sistemul COVA

  • Sistem de e-learning utilizănd o bază de date semistructurată

  • Oferă facilitatea regăsirii informaţiilor multimedia

  • Segmentarea manuală a fişierelor video (shots) şi adnotarea acestora

  • Algoritm propriu de modelare a structurii bazei de date ce conţine materialele educaţionale

21 Nov. 2003 | Mihaela Brut [20]

Limbaje şi tehnici de interogare XML

21 Nov. 2003 | Mihaela Brut [21]

Limbaje şi tehnici de interogare XML

WQGL (Web Query Graphical Language)

Interfaţă grafică

  • oferă un set de componente precizând tipul, poziţia şi numărul de apariţii ale elementelor HTML

  • oferă un set de şabloane de pagini Web

  • Cererea - schiţa paginii Web dorite

  • generează documentul WQGL care modelează cererea

21 Nov. 2003 | Mihaela Brut [22]

Limbaje şi tehnici de interogare XML

WQGL (Web Query Graphical Language)

  • Suport Perl pentru formularea interogării folosind expresii regulate

  • Primele N pagini returnate de un motor de căutare
       –restructurate în documente WQFL
       –comparate cu documentul corespunzând cererii

  • Posibilităţi de extindere semantică a comparării structurale

21 Nov. 2003 | Mihaela Brut [23]

Limbaje şi tehnici de interogare XML

WQGL (Web Query Graphical Language)

Propuneri de implementare

  • Interfaţa grafică:
       –proiectată în XUL (Extensible User-interface Language), folosind tehnologia XPCOM (Cross- Platform Component Object Model)

  • pentru validarea documentelor WQGL:
       –un procesor XML (ex. Expat, MSXML, JAXP)

  • Pentru procesarea structurală:
       –biblioteca SAX libxml – disponibilă sub Linux
       –biblioteca JDOM (Java Document Object Model)

21 Nov. 2003 | Mihaela Brut [24]

Limbaje şi tehnici de interogare XML

WebGL (Web Graphical Interface)

  • XUL – eXtensible User-interface Language, din familia XML

  • Independenţă de platformă

  • Programe proxy utilizând foi de stiluri XSL:
       –elementele XUL pot fi transformate în documente sau fragmente SMIL sau HTML+TIME

  • Întreg setul de componente – formă grafică

  • Evenimente "drag and drop" / "double click"

  • Posibilitatea de a insera un nou slide

  • Set de şabloane de design

24 Oct. 2003 | Mihaela Brut [25]

Limbaje şi tehnici de interogare XML

WebGL (Web Graphical Interface)

Ex.: şablon pt. un curs SMIL

  • Titlul şi obiectivele

  • Introducere şi structură

  • Pentru fiecare capitol: stuctura şi conţinutul

  • Concluzia şi feed-back-ul

  • temă şi bibliografie

  • Similar, pentru teste, exerciţii etc.

Toate informaţiile introduse prin intermediul interfeţei

21 Nov. 2003 | Mihaela Brut [26]

Tehnici şi limbaje de interogare XML

Agenda

  • Introducere

  • Interogarea documentelor Web: istoric şi cadru general

  • Limbaje şi tehnici de interogare XML

  • Limbajul XQuery pentru interogarea documentelor XML

  • Interogări asupra metadatelor XML

  • Concluzii

21 Nov. 2003 | Mihaela Brut [27]

Limbajul de interogare XQuery

Prezentare

21 Nov. 2003 | Mihaela Brut [28]

Limbajul de interogare XQuery

Sintaxă

  • Influenţe: XPath, XML Schema, XSLT, Quilt, OQL, XQL, XML-QL, Lorel.

  • Modelul formal:

    • Un document reprezentat ca un arbore

    • Nodurile: document, element, attribute, text, namespace, processing instruction şi comment

    • Valori atomice — tipuri simple de date

    • Un item — o valoare atomică sau un nod individual

    • Secvenţă — serie de itemi

21 Nov. 2003 | Mihaela Brut [29]

Limbajul de interogare XQuery

Documente folosite spre exemplificare

21 Nov. 2003 | Mihaela Brut [30]

Limbajul de interogare XQuery

Documente folosite spre exemplificare

21 Nov. 2003 | Mihaela Brut [31]

Limbajul de interogare XQuery

Sintaxă

  • Literali: numerici, şiruri de caractere

  • Funcţii de intrare: doc(), collection()

  • Expresii de cale: doc("books.xml")/bib/book

  • Predicate: doc("books.xml")/bib/book[@year="1999"]

  • Constructori pentru: crearea de elemente, atribute, noduri text, instrucțiuni de procesare și comentarii.

21 Nov. 2003 | Mihaela Brut [32]

Limbajul de interogare XQuery

Utilizarea constructorilor

<titles count="{ count(doc('books.xml')//title) }">
    {
       doc("books.xml")//title
    }
</titles>

Are următorul rezultat:

<titles count = "4">
     <title>Formal Languages and Automata</title>
     <title>Web Technologies</title>
     <title>Bash and Perl Web Programming</title>
     <title>Linux Systems Management</title>
</titles>

21 Nov. 2003 | Mihaela Brut [32]

Limbajul de interogare XQuery

Expresii FLOWR

Conţin clauze for, let, where, order by, return.

<results>
{let $a := doc("books.xml")/bib/book
  for $name in distinct-values($a/author),
  order by $name
  return
    <result>
      <author> { $name } </author>
      {for $b in doc("books.xml")/bib/book
       where some $ba in $b/author 
             satisfies ($ba/author = $name)
       return $b/title   }
    </result>   }
</results>
21 Nov. 2003 | Mihaela Brut [34]

Limbajul de interogare XQuery

Operatori

  • Aritmetici: +, -, *, div, idiv și mod

  • Relaţionali:

    • de comparaţie între valori:
      eq, ne, lt, le, gt, ge

    • de comparaţie de ordin general:
      =, !=, <, <=, >, >=

    • de comparaţie între noduri: is, is not

    • de ordonare: <<, >>

21 Nov. 2003 | Mihaela Brut [35]

Interogare SMIL prin XQuery (1)

<seq>
for $b in doc("books.smil")
                /body/b:books/seq/par
let $e := $b/text/b:title
           [contains(string(.), "Language") 
     or contains(string(.), "Programming")]
where exists($e)
return
    <par>
      <video region="rvideo" dur="30s" 
			src="$b/seq/video[@src]" />
      <text region="rtext" dur="30s">
        <b:title>{$e}</b:title>
        <b:year>$b/text/year</b:year>
      </text> </par>
</seq>

21 Nov. 2003 | Mihaela Brut [36]

Interogare SMIL prin XQuery (2)

<seq>
 <par>
  <video region="rvideo" dur="30s" src="cgi.avi" />
  <text region="rtext" dur="30s">
    <b:title>Bash and Perl Web Programming</b:title>
    <b:year>2002<b:year>   </text>
 </par>
 <par>
   <video region="rvideo" dur="30s" src="fla.avi" />
   <text region="rtext" dur="30s">
     <b:title>Formal Languages and Automata</b:title>
     <b:year>1999<b:year>
   </text>
 </par>
</seq>
21 Nov. 2003 | Mihaela Brut [37]

Interogare HTML+TIME prin XQuery (1)

<t:seq>
 {
  for $b in doc("books.html")
                 /body/t:seq/t:par/table/tr/td
  where $b/ul/li[position()=2]/b = "MatrixRom" 
        and $b/ul/li[position()=3]/b > 1998
  order by  $b/h1
  return
	<t:par>
       <h1 class="time" dur="30s">{$b/h1}</h1>
       <h3 dur="30s">
        Apărută: {$b/ul/li[position()=3]/b} </h3>
       <t:video dur="30s" src="$b/seq/video[@src]" />     
 	 </t:par>
 }
</t:seq>

21 Nov. 2003 | Mihaela Brut [38]

Interogare HTML+TIME prin XQuery (2)

<t:seq>
  <t:par>
       <h1 class="time" dur="30s">
			 Formal Languages and Automata</h1>
       <h3 dur="30s">Apărută: 1999 </h3>
       <t:video dur="30s" src="fla.avi" />
  </t:par>
  <t:par>
       <h1 class="time" dur="30s">Web Technologies</h1>
       <h3 dur="30s">Apărută: 2001</h3>
       <t:video dur="30s" src="../movies/web.avi" />
  </t:par>
</t:seq>
21 Nov. 2003 | Mihaela Brut [39]

Tehnici şi limbaje de interogare XML

Agenda

  • Introducere

  • Interogarea documentelor Web: istoric şi cadru general

  • Limbaje şi tehnici de interogare XML

  • Limbajul XQuery pentru interogarea documentelor XML

  • Interogări asupra metadatelor XML

  • Concluzii

21 Nov. 2003 | Mihaela Brut [40]

Interogări asupra metadatelor XML

RDF (Resource Description Framework)

  • Un limbaj standardizat de reprezentare a metadatelor sub formă de grafuri orientate în care nodurile sunt numite resurse , iar vârfurile — proprietăţi

  • Un limbaj de definire a schemelor (RDFS)

  • O sintaxă XML pentru exprimarea metadatelor şi a schemelor

  • Aplicaţii: portalurile de cunoştinţe (Knowledge Portals) sau pieţele comerciale electronice (E-Marketplaces)

  • Limbajele declarative pentru interogarea descrierilor de resurse şi a schemelor înrudite RDF sunt încă în faza de propuneri.

21 Nov. 2003 | Mihaela Brut [41]

Interogări asupra metadatelor XML

Interogări RDF

  • Vor fi efectuate asupra unui container RDF care poate conţine resurse de diferite tipuri, fiecare având diferite proprietăţi.

  • Valorile proprietăţilor pot fi simple date, alte resurse sau alte containere RDF.

  • Rezultatul va fi tot un container de resurse, care este întotdeauna un subset al containerului sursă, putând fi inclusiv containerul vid.

  • Pe lângă colecția RDF sursă, o interogare RDF poate specifica un nume de proprietate sau o condiţie.

21 Nov. 2003 | Mihaela Brut [42]

Interogări asupra metadatelor XML

Interogări RDF

Ex.: Selectarea resurselor care au proprietatea "Project" având valoarea "WebTechnologies":

<rdfq:rdfquery>
  <rdfq:From eachResource="http://www.ibm.com"/>
    <rdfq:Select>
        <rdfq:Condition>
            <rdfq:equals>
              <rdfq:Property name="Project" />
              <rdf:String>WebTechnologies</rdf:String>
            </rdfq:equals>
        </rdfq:Condition>
    </rfq:Select>
 </rdfq:From>
</rdfq:rdfquery>
21 Nov. 2003 | Mihaela Brut [43]

Interogări asupra metadatelor XML

Metadate temporale în RDF

<rdf:Bag id="multimedia_resources">
   <rdf:li>
      <rdf:Description about="../movies/web.avi">
         <d:meta id="v1">  
            <d:type elem="video">video/avi</d:type> 
            <d:begin>0s</d:begin>
            <d:end>15s</d:end>  
            <d:dur>15s</d:dur>  
         </d:meta>
      </rdf:Description>
   </rdf:li>   ...
</rdf:Bag>
<rdf:Description about="#multimedia_resources">
   <source href="http://www.infoiasi.ro/books.smil" />
</rdf:Description>
21 Nov. 2003 | Mihaela Brut [44]

Concluzii

  • XQuery este soluţia de viitor pentru interogarea documentelor de orice format din familia XML,
    inclusiv SMIL şi HTML+TIME .

  • Limbajul XQuery poate fi implementat cu o interfaţă grafică specializată pentru interogări multimedia.

  • Utilizând XQuery pot fi ataşate metadate în format RDF documentelor multimedia.

  • Limbajele de interogare RDF ar putea furniza informaţii despre linia temporală a unei prezentări multimedia.

21 Nov. 2003 | Mihaela Brut [45]

Tehnici şi limbaje de interogare XML

Agenda

  • Introducere

  • Interogarea documentelor Web: istoric şi cadru general

  • Limbaje şi tehnici de interogare XML

  • Limbajul XQuery pentru interogarea documentelor XML

  • Interogări asupra metadatelor XML

  • Concluzii

21 Nov. 2003 | Mihaela Brut [46]