Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

18
Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας Διατύπωση Ερωτημάτων σε XML τεκμήρια με τη γλώσσα XQuery Εργασία για το μάθημα Ηλεκτρονική Δημοσίευση Υπεύθυνος καθηγητής: Σαράντος Καπιδάκης Φοιτήτρια: Αγγελίνα Λούβαρη

Upload: audra-velez

Post on 03-Jan-2016

30 views

Category:

Documents


2 download

DESCRIPTION

Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας. Διατύπωση Ερωτημάτων σε XML τεκμήρια με τη γλώσσα XQuery Εργασία για το μάθημα Ηλεκτρονική Δημοσίευση. Υπεύθυνος καθηγητής: Σαράντος Καπιδάκης Φοιτήτρια: Αγγελίνα Λούβαρη. XML. Η XML είναι μία ιδιαίτερα εύκαμπτη διάταξη δεδομένων , - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

Ιόνιο ΠανεπιστήμιοΠΜΣ Επιστήμη της Πληροφορίας

Διατύπωση Ερωτημάτων σε XML τεκμήρια με τη γλώσσα XQuery

Εργασία για το μάθημα Ηλεκτρονική Δημοσίευση

Υπεύθυνος καθηγητής: Σαράντος Καπιδάκης Φοιτήτρια: Αγγελίνα Λούβαρη

Page 2: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

XML

Η XML είναι μία ιδιαίτερα εύκαμπτη διάταξη δεδομένων,

Έχει χρησιμοποιηθεί για να περιγράψει διαφορετικών ειδών δεδομένα.

Ανάγκη για την χρήση μιας γλώσσας επερωτήσεων XML

Ενδεικτικά, Lorel, Quilt, MnQL, Xduce, XMLQL, XPath, Xquery, XQL και YaTL

Page 3: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

X-Query

Βασίζεται στην γλώσσα XPath Περιέχει κόμβους και τύπους κόμβων Συμβατή με XML, XML Schema, XPath, XSLT Δεν αποτελεί ακόμα πρότυπο.

Page 4: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

X-Query-Δεδομένα

Αντικείμενο (item): μοναδική τιμή ή ένας μεμονωμένος κόμβος

Μία σειρά αντικειμένων αποτελεί μία ακολουθία Κόμβοι: τεκμηρίου (document nodes), στοιχείων

(element nodes), γνωρισμάτων(attribute nodes), κειμένου (text nodes), χώρων ονομάτων (namespace nodes), οδηγιών επεξεργασίας (processing instruction nodes) και σχολίων (comment nodes)

Page 5: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

Σχόλια και σήμανση

Σχόλια

(: Thanks, Jeni! :) Συμβολοσειρές

"a string”

'a string‘

"This is a string, isn't it?”

'This is a "string”'

Page 6: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

Εκφράσεις XQueryΟι εκφράσεις XQuery εμπίπτουν σε επτά ευρύς τύπους: εκφράσεις μονοπατιού, κατασκευαστές στοιχείων, FLWOR εκφράσεις, εκφράσεις που περιέχουν τελεστές και συναρτήσεις, υποθετικές εκφράσεις, ποσοτικές εκφράσεις και εκφράσεις που δοκιμάζουν ή μετατρέπουν τύπους

δεδομένων.

Page 7: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

1. Εκφράσεις μονοπατιών

Οι εκφράσεις μονοπατιών είναι βασισμένες στη σύνταξη του XPath, τα XML πρότυπα για τη διευκρίνιση "των πορειών" XML έγγραφου, παραδείγματος χάριν:

Βρίσκει όλους τους τίτλους των κεφαλαίων στο έγγραφο books.xml:

έγγραφο ("books.xml")/ chapter / title

Page 8: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

2. Κατασκευαστές στοιχείων

Αυτός ο τύπος έκφρασης χρησιμοποιείται όταν πρέπει να δημιουργήσει μια ερώτηση νέα στοιχεία, παραδείγματος χάριν:Παράγετε το στοιχείο <book> με τις ιδιότητες "year" και του οποίου η αξία είναι ο τίτλος του βιβλίου:

<book> { $b/@year } { $b/title } </book>

<book year="1992"> <title>Advanced Programming in the Unix

environment</title></book>

Page 9: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

3. FLWΟR εκφράσεις Ο όρος “for”

O όρος for εκχωρεί στο όνομα μιας μεταβλητής κάθε αντικείμενο ενός συγκεκριμένου στοιχείου. Ο όρος for έχει σαν αποτέλεσμα την επανάληψη. Μπορούν να χρησιμοποιηθούν πολλαπλοί όροι for μέσα στην ίδια έκφραση FLWOR.

Ο όρος let Ο όρος let επιτρέπει την εκχώρηση μιας μεταβλητής και αποτρέπει την επανάληψη μιας έκφρασης πολλές φορές. Ο όρος let δεν έχει σαν αποτέλεσμα την επανάληψη.

O όρος “where”Ο όρος where προσδιορίζει τα κριτήρια (ένα ή περισσότερα) για την εξαγωγή ενός αποτελέσματος της Xquery.

Ο όρος “order by” Ο όρος order by ταξινομεί τα εξαγόμενα αποτελέσματα. Π.χ. θέλουμε να

ταξινομήσουμε τα αποτελέσματα κατά κατηγορία και τίτλο. Ο όρος “return” Ο όρος return προσδιορίζει τι ακριβώς πρέπει να επιστρέψει σαν απάντηση η

Xquery.

Page 10: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

4. Εκφράσεις που περιέχουν τελεστές και συναρτήσεις

Η XQuery παρέχει των περισσότερων από τους τελεστές και τις λειτουργίες που μπορούν επίσης να βρεθούν σε άλλες γλώσσες υπολογιστών, συμπεριλαμβανομένων:

των αριθμητικών τελεστών, τελεστές σύγκρισης, τελεστές ακολουθιών Συναρτήσεις.

Page 11: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

Αριθμητικοί τελεστές

Η XQuery υποστηρίζει, όπως είδαμε, αριθμητικούς τελεστές, όπως τα εξής:

+/-, *, div, idiv και mod.

Ο τελεστής div κάνει την πράξη της διαίρεσης.

Ο τελεστής idiv απαιτεί ακεραίους τελεστές και δίνει σαν αποτέλεσμα ένα ακέραιο.

Η χρήση τους φαίνεται στο ακόλουθο παράδειγμα το οποίο έχει ως αποτέλεσμα (4):

2 + <int>{ 2 }</int>

Page 12: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

τελεστές σύγκρισης

Συγκρίσεις τιμών Γενικές συγκρίσεις

eq =

ne !=

lt <

le <=

gt >

ge >=

Page 13: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

τελεστές ακολουθιών

Union Intersect Except

Π.χ. for $b in doc("books.xml")//book

where $b/title = "TCP/IPIllustrated”

return <book> { $b/@* } { $b/* except $b/price } </book>

Page 14: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

Συναρτήσεις

min(), max(), count(), avg(), sum().

distinct-values(), οι συναρτήσεις

εισαγωγής doc() και collection()

not() και empty()

for $b in doc("books.xml")//book

where not(empty($b/author))

return $b

Page 15: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

5. Υποθετικές εκφράσεις Η XQuery επίσης επιτρέπει τη χρήση IF-THEN-ELSE εκφράσεων.

for $b in doc("books.xml")//bookreturn <book>{ $b/title }

{ for $a at $i in $b/authorwhere $i <= 2return <author>{string($a/last), ",

", string ($a/first)}</author> }

{ if (count($b/author) > 2)then <author>et al.</author>else () }</book>

Page 16: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

6. Ποσοτικές εκφράσεις

Οι SOME and EVERY είναι οι αποκαλούμενες ποσοτικές εκφράσεις. Μέσω της SOME έκφρασης είναι δυνατό να προσδιορίσει εάν τουλάχιστον ένας κόμβος ενός συνόλου κόμβων ικανοποιεί ένα κατηγόρημα. Η EVERY έκφραση χρησιμοποιείται για να εξετάσει εάν όλοι οι κόμβοι ενός συνόλου ικανοποιούν ένα κατηγόρημα. Π.χ:for $b in doc("books.xml")//bookwhere every $a in $b/author satisfies ($a/last="Stevens" and $a/first="W.")return $b/title

Page 17: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

Συμπεράσματα

Σχετικά εύκολη γλώσσα Προσφέρει δυνατότητα επεξεργασίας και

διατύπωσης πολύπλοκων ερωτημάτων Ομοιότητα με SQL και συμβατότητα με XML

XML Schema

Page 18: Ιόνιο Πανεπιστήμιο ΠΜΣ Επιστήμη της Πληροφορίας

ΚΑΛΟ ΚΑΛΟΚΑΙΡΙ !!!