Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Język zapytań dla XML Rafał Hryniów Tomasz Pieciukiewicz.

Podobne prezentacje


Prezentacja na temat: "Język zapytań dla XML Rafał Hryniów Tomasz Pieciukiewicz."— Zapis prezentacji:

1 Język zapytań dla XML Rafał Hryniów Tomasz Pieciukiewicz

2 Plan prezentacji Przedstawienie podstawowych założeń języka Porównanie z innymi rozwiązaniami Omówienie implementacji Potencjalne kierunki rozwoju

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

4 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

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

6 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

7 Porównanie (1) – zapytanie w XML Query Tytuły i rok wydania książek opublikowanych przez Addison-Wesley wydanych po roku 1991 { for $b in document("http://www.bn.com")/bib/book where $b/publisher = "Addison-Wesley" and > 1991 return { $b/title } }

8 Porównanie (1) – zapytanie w YATL make bib [ *book [ $y ], title [ $t ] ] ] match "www.bn.com/bib.xml" with bib [ *book [ $y ], title [ $t ] ], publisher [ name [ $n ] ] ] where $n = "Addison-Wesley" and $y > 1991

9 Porównanie (1) – Zapytanie w Lorel select xml(bib:{ (select title:t}) from bib.book b, b.title t, b.year y where b.publisher = "Addison-Wesley" and y > 1991)})

10 Porównanie (1) – Zapytanie w XQL document("http://www.bn.com")/bib { book[publisher/name="Addison-Wesley" | title }

11 Porównanie (1) – Zapytanie w XML-QL CONSTRUCT { WHERE $t Addison-Wesley IN "www.bn.com/bib.xml", $y > 1991 CONSTRUCT $t }

12 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

13 Porównanie (2) – zapytanie w XML Query Lista par autor-tytuł, każda para zamknięta w elemencie result { for $b in document("http://www.bn.com")/bib/book, $t in $b/title, $a in $b/author return { $t } { $a } }

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

15 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)})

16 Porównanie (2) – zapytanie w XQL Zadanie tego zapytania nie jest możliwe

17 Porównanie (2) – zapytanie w XML-QL CONSTRUCT { WHERE $t $a IN "www.bn.com/bib.xml" CONSTRUCT $t $a }

18 Porównanie (2) – zapytanie u nas bib.book.(author, title) as Result

19 Porównanie (3) – zapytanie w XML Query Dla każdej książki wyświetla tytuł i listę autorów { for $b in document("http://www.bn.com")/bib/book return { $b/title } { $b/author } }

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

21 Porównanie (3) – zapytanie w Lorel select xml(results:{ select xml(result{b.title, b.author}) from bib.book b})

22 Porównanie (3) – zapytanie w XQL document("http://www.bn.com")/bib->results { book->result { title | author }

23 Porównanie (3) – zapytanie w XML-QL CONSTRUCT { WHERE $t CONTENT_AS $b IN "www.bn.com/bib.xml" CONSTRUCT $t { WHERE $a IN $b CONSTRUCT $a } }

24 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

25 Obsługa linków - przykład Stevens W. Abiteboul Serge Buneman Peter Suciu Dan TCP/IP Illustrated A1 Addison-Wesley Data on the Web A2 A3 A4 Morgan Kaufmann Publishers 39.95

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

27 Implementacja - narzędzia Java SE 1.4, Xerces (działa też z nowszymi), JFlex, CUP.

28 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),

29 Implementacja - problemy Użycie drzewa DOM jako składu spowodowało problemy implementacyjne, Wartości tekstowe w DOM Brak typów danych w XML

30 Kierunki rozwoju Uzupełnienie systemu o perspektywy, Wykorzystanie DTD lub XML Schema, Wprowadzenie cech obiektowych, Optymalizacja zapytań, Zmiana modelu składu, Indeksowanie itp., …

31 Bibliografia Przykłady zapytań w XML Query pochodzą z XML Query 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 )http://www.w3.org/1999/09/ql/docs/xquery.html

32 Dziękujemy Pytania???


Pobierz ppt "Język zapytań dla XML Rafał Hryniów Tomasz Pieciukiewicz."

Podobne prezentacje


Reklamy Google