j zyk zapyta dla xml n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Język zapytań dla XML PowerPoint Presentation
Download Presentation
Język zapytań dla XML

Loading in 2 Seconds...

play fullscreen
1 / 32

Język zapytań dla XML - PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on

Język zapytań dla XML. Rafał Hryniów Tomasz Pieciukiewicz. Plan prezentacji. Przedstawienie podstawowych założeń języka Porównanie z innymi rozwiązaniami Omówienie implementacji Potencjalne kierunki rozwoju. Założenia języka. Naturalny dla użytkownika, Prosty w użyciu,

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Język zapytań dla XML' - winola


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
j zyk zapyta dla xml

Język zapytań dla XML

Rafał Hryniów

Tomasz Pieciukiewicz

plan prezentacji
Plan prezentacji
  • Przedstawienie podstawowych założeń języka
  • Porównanie z innymi rozwiązaniami
  • Omówienie implementacji
  • Potencjalne kierunki rozwoju
za o enia j zyka
Założenia języka
  • Naturalny dla użytkownika,
  • Prosty w użyciu,
  • Duże możliwości rozwoju,
  • Oparty na solidnych podstawach teoretycznych (podejście stosowe),
  • Obsługa danych półstrukturalnych (XML)
za o enia j zyka1
Założenia języka
  • Jednoczesna obsługa wielu plików XML,
  • Obsługa linków
  • Operatory algebraiczne:
    • Arytmetyczne
    • Logiczne
    • Porównania
    • Operacje na łańcuchach tekstowych
    • Operacje na kolekcjach
    • Złączenia
    • Operator zmiany nazwy
za o enia j zyka2
Założenia języka
  • Operatory nie-algebraiczne
    • Kwantyfikatory
    • Selekcja
    • Zależne złączenie
  • Rozróżnianie pomiędzy węzłem XML, a tekstem zawartym w tym węźle (atrybut o nazwie TextValue)
por wnanie z xml query
Porównanie z XML Query
  • Porównanie zostanie przeprowadzone przy pomocy przykładów. Zapytania w XML Query pochodzą z dokumentów W3C dotyczących tego języka
por wnanie 1 zapytanie w xml query
Porównanie (1) – zapytanie w XML Query
  • Tytuły i rok wydania książek opublikowanych przez „Addison-Wesley” wydanych po roku 1991

<bib>

{

for $b in document("http://www.bn.com")/bib/book

where $b/publisher = "Addison-Wesley" and $b/@year > 1991

return

<book year="{ $b/@year }">

{ $b/title }

</book>

}

</bib>

por wnanie 1 zapytanie w yatl
Porównanie (1) – zapytanie w YATL

make

bib [ *book [ @year [ $y ],

title [ $t ] ] ]

match "www.bn.com/bib.xml" with

bib [ *book [ @year [ $y ],

title [ $t ] ],

publisher [ name [ $n ] ] ]

where

$n = "Addison-Wesley" and $y > 1991

por wnanie 1 zapytanie w lorel
Porównanie (1) – Zapytanie w Lorel

select xml(bib:{

(select xml(book:{@year:y, title:t})

from bib.book b, b.title t, b.year y

where b.publisher = "Addison-Wesley" and y > 1991)})

por wnanie 1 zapytanie w xql
Porównanie (1) – Zapytanie w XQL

document("http://www.bn.com")/bib {

book[publisher/name="Addison-Wesley" and @year>1991] {

@year | title

}

}

por wnanie 1 zapytanie w xml ql
Porównanie (1) – Zapytanie w XML-QL

CONSTRUCT <bib> {

WHERE <bib>

<book year=$y>

<title>$t</title>

<publisher><name>Addison-Wesley</name></publisher>

</book>

</bib>

IN "www.bn.com/bib.xml",

$y > 1991

CONSTRUCT <book year=$y><title>$t</title></book>

} </bib>

por wnanie 1 zapytanie u nas
Porównanie (1) – zapytanie u nas
  • Wersja skrócona

(bib.book where (year>1991 AND publisher.TextValue='Addison-Wesley')).(year , title)

  • Wersja dająca prawie identyczny wynik jak XML Query(bib.book where (year>1991 AND publisher.TextValue='Addison-Wesley')).(year as Year, title) as Book
por wnanie 2 zapytanie w xml query
Porównanie (2) – zapytanie w XML Query
  • Lista par autor-tytuł, każda para zamknięta w elemencie „result”

<results>

{

for $b in document("http://www.bn.com")/bib/book,

$t in $b/title,

$a in $b/author

return

<result>

{ $t }

{ $a }

</result>

}

</results>

por wnanie 2 zapytanie w yatl
Porównanie (2) – zapytanie w YATL

make

results [ *result [ title [ $t ]

author [ $a ] ] ]

match "www.bn.com/bib.xml" with

bib [ *book [ title [ $t ],

*author [ $a ] ] ]

por wnanie 2 zapytanie w lorel
Porównanie (2) – zapytanie w Lorel

select xml(results:{

(select xml(result:{title: t,author: a})

from bib.book b, b.title t, b.author a)})

por wnanie 2 zapytanie w xql
Porównanie (2) – zapytanie w XQL
  • Zadanie tego zapytania nie jest możliwe
por wnanie 2 zapytanie w xml ql
Porównanie (2) – zapytanie w XML-QL

CONSTRUCT <results> {

WHERE

<bib>

<book>

<title>$t</title>

<author>$a</author>

</book>

</bib> IN "www.bn.com/bib.xml"

CONSTRUCT

<result>

<title>$t</title>

<author>$a</author>

</result>

} </results>

por wnanie 2 zapytanie u nas
Porównanie (2) – zapytanie u nas

bib.book.(author, title) as Result

por wnanie 3 zapytanie w xml query
Porównanie (3) – zapytanie w XML Query
  • Dla każdej książki wyświetla tytuł i listę autorów

<results>

{ for

$b in document("http://www.bn.com")/bib/book

return

<result>

{ $b/title }

{ $b/author }

</result>

}

</results>

por wnanie 3 zapytanie w yatl
Porównanie (3) – zapytanie w YATL

make

results [ *result [ title [ $t ],

$as ] ]

match "www.bn.com/bib.xml" with

bib [ *book [ title [ $t ],

*($as) author ]

por wnanie 3 zapytanie w lorel
Porównanie (3) – zapytanie w Lorel

select xml(results:{

select xml(result{b.title, b.author})

from bib.book b})

por wnanie 3 zapytanie w xql
Porównanie (3) – zapytanie w XQL

document("http://www.bn.com")/bib->results {

book->result {

title | author

}

}

por wnanie 3 zapytanie w xml ql
Porównanie (3) – zapytanie w XML-QL

CONSTRUCT <results> {

WHERE

<bib>

<book>

<title>$t</title>

</book> CONTENT_AS $b

</bib> IN "www.bn.com/bib.xml"

CONSTRUCT

<result>

<title>$t</title>

{ WHERE <author>$a</author> IN $b

CONSTRUCT <author>$a</>

}

</result>

} </results>

por wnanie 3 zapytanie u nas
Porównanie (3) – zapytanie u nas
  • (bib.book as x, bib.book as y where x=y).(x.title, y.author group as autorzy)
  • Ze względu na brak operatora pozwalającego stworzyć strukturę bez opakowanie jej w węzeł wynik różni się nieco od wyniku XML Query
obs uga link w przyk ad
Obsługa linków - przykład

<bib>

<person id="A1"><last>Stevens</last><first>W.</first></person>

<person id="A2"><last>Abiteboul</last><first>Serge</first></person>

<person id="A3"><last>Buneman</last><first>Peter</first></person>

<person id="A4"><last>Suciu</last><first>Dan</first></person>

<book year="1994">

<title>TCP/IP Illustrated</title>

<author pointer="true">A1</author>

<publisher>Addison-Wesley</publisher>

<price> 65.95</price>

</book>

<book year="2000">

<title>Data on the Web</title>

<author pointer="true">A2</author>

<author pointer="true">A3</author>

<author pointer="true">A4</author>

<publisher>Morgan Kaufmann Publishers</publisher>

<price>39.95</price>

</book>

</bib>

obs uga link w przyk ad1
Obsługa linków - przykład
  • bib.book.(author.person, title) as Result
  • (bib.book as x, bib.book as y where x=y).(x.title, y.author.person group as autorzy)
implementacja narz dzia
Implementacja - narzędzia
  • Java SE 1.4,
  • Xerces 1.4.3 (działa też z nowszymi),
  • JFlex,
  • CUP.
implementacja decyzje
Implementacja - decyzje
  • Wykorzystanie drzewa DOM jako składu obiektów,
  • Przechowywanie całości danych w pamięci,
  • Wyniki udostępniane użytkownikowi w formie referencji do węzła XML (ResultNode),
implementacja problemy
Implementacja - problemy
  • Użycie drzewa DOM jako składu spowodowało problemy implementacyjne,
  • Wartości tekstowe w DOM
  • Brak typów danych w XML
kierunki rozwoju
Kierunki rozwoju
  • Uzupełnienie systemu o perspektywy,
  • Wykorzystanie DTD lub XML Schema,
  • Wprowadzenie cech obiektowych,
  • Optymalizacja zapytań,
  • Zmiana modelu składu,
  • Indeksowanie itp.,
bibliografia
Bibliografia
  • Przykłady zapytań w XML Query pochodzą z „XML Query Use Cases” (http://www.w3.org/TR/xmlquery-use-cases/)
  • Przykładowe zapytanie w YATL pochodzi z XML Query Languages:Experiences and Exemplars(http://www.w3.org/1999/09/ql/docs/xquery.html)
dzi kujemy

Dziękujemy

Pytania???