Επαλήθευση και Βελτιστοποίηση Συστήµατος ιαχείρισης XML Εγγράφων στη Γλώσσα CLIPS

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Επαλήθευση και Βελτιστοποίηση Συστήµατος ιαχείρισης XML Εγγράφων στη Γλώσσα CLIPS"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Επαλήθευση και Βελτιστοποίηση Συστήµατος ιαχείρισης XML Εγγράφων στη Γλώσσα CLIPS ιπλωµατική Εργασία της Andoena Balla (ΑΕΜ: 693 Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης Θεσσαλονίκη 2005

2 2

3 ΠΡΟΛΟΓΟΣ Το αντικείµενο της παρούσας διπλωµατικής εργασίας είναι η επαλήθευση και βελτιστοποίηση του υπάρχοντος συστήµατος για την αναπαράσταση των XML εγγράφων σε αντικειµενοστραφή σχήµατα και την ανάκτηση των αρχικών δεδοµένων από αυτά τα σχήµατα. Τα XML έγγραφα και τα αντίστοιχα DTDs τους µεταφράζονται σε ένα αντικειµενοστραφές σχήµα µε κλάσεις, ιδιότητες και στιγµιότυπα των κλάσεων µε τέτοιο τρόπο ώστε είναι δυνατή η ανάκτηση του αρχικού XML έγγραφου. Το σύστηµα αναπτύχθηκε στο σύστηµα κανόνων CLIPS. Οι κύριες λειτουργίες του περιλαµβάνουν την ανάγνωση του XML αρχείου και του αντίστοιχου DTD από το Internet και την αποθηκεύσει τους στο τοπικό δίσκο. Μετά γίνεται η συντακτική ανάλυση και η επεξεργασία του XML εγγράφου και του αντίστοιχου DTD, την δηµιουργία κλάσεων και στιγµιοτύπων αυτών των κλάσεων στην αντικειµενοστραφή γλώσσα προγραµµατισµού COOL του συστήµατος CLIPS και την ανάκτηση ολόκληρου ή τµήµατος του XML εγγράφου. Οι πιο σηµαντικές βελτιώσεις που έγιναν σε σχέση µε το προηγούµενο σύστηµα είναι: Επαλήθευση της ορθής λειτουργίας του υπάρχοντος συστήµατος µε δεδοµένα από τη βάση δεδοµένων που περιέχει τις δηµοσιεύσεις της ερευνητικής οµάδας Λογικού Προγραµµατισµού και Ευφυών Συστηµάτων LPIS. Για την δηµιουργία του XML έγγραφου δηµιουργήθηκε ένα asp αρχείο το οποίο παράγει δυναµικά το XML aαρχείο όταν καλείται η διεύθυνση που αντιστοιχεί σε αυτό προσπελάζοντας τα περιεχόµενα της βάσης δεδοµένων. Η βελτίωση της απόδοσης του τόσο σε χωρικές όσο και σε χρονικές απαιτήσεις κατά ένα παράγοντα 90% Η διασύνδεση του συστήµατος µε το ιαδίκτυο έτσι ώστε τα να κατεβάζει τα απαιτούµενα αρχεία εισόδου από το Internet. 3

4 Η ανάπτυξη της εργασίας έγινε στα πλαίσια του εργαστηρίου Γλωσσών Προγραµµατισµού και Τεχνολογίας Λογισµικού (Programming Languages and Software Engineering Lab PLaSE Lab, σε συνεργασία µε την οµάδα Ευφυών Συστηµάτων και Επεξεργασία Γνώσης (Intelligent Systems and Knowledge Processing ISKP Group, του Τµήµατος Πληροφορικής του Αριστοτελείου Πανεπιστηµίου Θεσσαλονίκης. Το αποτέλεσµα αυτής της προσπάθειας οφείλεται εν µέρει στην επίβλεψη και στις πολύτιµες συµβουλές του κ. Νικόλαου Βασιλειάδη, για αυτόν το λόγο θα ήθελα να τον ευχαριστήσω θερµά. Επίσης θα ήθελα να ευχαριστήσω όλους όσους µε στήριξαν σε όλο αυτό το διάστηµα εκπόνησης της εργασίας. Θεσσαλονίκη, Ιούλιος

5 ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή..7 2 Επεκτάσιµη Γλώσσα Σήµανσης (Extensible Markup Language - XML Ορισµός της XML Η Ανάγκη για XML Η Λύση της XML SGML, HTML και XML Η XML Αντικαθιστά την HTML; ηµιουργία XML Εγγράφου Ανατοµία XML Εγγράφου Ορισµός Τύπου Εγγράφου (Document Type Definition DTD Οντότητες (Entities Εγκυρότητα Εγγράφου Εφαρµογές XML για Βελτίωση Εγγράφων Πρακτικές Χρήσεις της XML ιαχείριση XML εδοµένων Εισαγωγή Μέθοδοι ιαχείρισης XML εδοµένων ιαχείριση XML εδοµένων µε Σχεσιακές Βάσεις εδοµένων ιαχείριση XML εδοµένων µε Αντικειµενοστραφείς Βάσεις εδοµένων...35 Το ΑΣ Μοντέλο Αναπαράστασης XML εδοµένων του X-DEVICE Ερωτήσεις σε έγγραφα XML, χρησιµοποιώντας γλώσσες βασισµένες στη λογική Η γλώσσα WebLog Οι γλώσσες F-Logic/XPathLog Η σχεδίαση της RuleM.49 4 Αρχιτεκτονική και λειτουργία του συστήµατος Υλοποίηση του Συστήµατος X-DEVICE στο CLIPS Λειτουργία του Συστήµατος..62 5

6 4.2.1 Εκκίνηση και συλλογή στοιχείων ηµιουργία κλάσεων και στιγµιοτύπων Ανάκτηση του XML εγγράφου υναµική ηµιουργία XML Αρχείου Περιγραφή της υλοποίησης του συστήµατος Εκκίνηση του Συστήµατος Ορισµός Μετα-κλάσεων Ορισµός Κανόνων Συντακτικής Ανάλυσης DTD και XML Εγγράφων Συλλογή Στοιχείων για τη ηµιουργία Κλάσεων Ολοκλήρωση Συγκέντρωσης στοιχείων για τη ηµιουργία Κλάσεων ηµιουργία Κλάσεων ηµιουργία αντικειµένων Ορισµός βοηθητικών συναρτήσεων για τη δηµιουργία αντικειµένων Συνάρτηση class-slot-forming Συνάρτηση creating-instances Συνάρτηση creating-instances-aux Ανάκτηση όλου ή µέρους του XML εγγράφου 98 6 Συµπεράσµατα - Μελλοντική Εργασία.101 ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑ Α ΠΑΡΑΡΤΗΜΑ Β ΠΑΡΑΡΤΗΜΑ Γ

7 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Το αντικείµενο της παρούσας διπλωµατικής εργασίας είναι ένα ευφυές σύστηµα για την αναπαράσταση των DTDs και των XML εγγράφων σε αντικειµενοστραφή σχήµατα και την ανάκτηση των αρχικών δεδοµένων από αυτά τα σχήµατα. Το σύστηµα δηµιουργεί αντικειµενοστραφή σχήµατα που περιλαµβάνουν κλάσεις (classes και ιδιότητες (attributes, από τα DTDs, και αντικείµενα αυτών των κλάσεων, από τα XML έγγραφα και ανακτά από τα παραπάνω σχήµατα επιθυµητά µέρη των εγγράφων αυτών, µετά από απαίτηση του χρήστη. Η ανάπτυξη του συστήµατος βασίστηκε στο αντικειµενοστραφές µοντέλο αναπαράστασης XML δεδοµένων του X-DEVICE [1]. To X-DEVICE είναι ένα συµπερασµατικό αντικειµενοστραφές µοντέλο βάσης δεδοµένων για τη διαχείριση XML δεδοµένων. Αποτελεί µία επέκταση του υπάρχοντος αντικειµενοστραφούς συστήµατος γνώσης DEVICE [2]. Το X-DEVICE ενσωµατώνει XML δεδοµένα µέσα σε µία αντικειµενοστραφή βάση δεδοµένων, µε την αυτόµατη αναπαράσταση των DTDs των XML εγγράφων σε αντικειµενοστραφή σχήµατα (object schemata, χωρίς να χάνεται η αρχική σειρά των στοιχείων του εγγράφου. Η εργασία αυτή αποτελεί επαλήθευση και βελτιστοποίηση της διπλωµατική εργασίας της Ουρανίας Χατζή [44] µε τίτλο «Αναπαράσταση και Ανάκτηση XML εδοµένων µε την Αντικειµενοστραφής γλώσσα προγραµµατισµού του Συστήµατος Κανόνων Παραγωγής CLIPS», που εκπονήθηκε στο Τµήµα Πληροφορικής του Αριστοτελείου Πανεπιστηµίου Θεσσαλονίκης το ακαδηµαϊκό έτος , µε επιβλέποντα καθηγητή τον κ. Βασιλειάδης Νικόλαος, καθώς και της διπλωµατικής εργασίας της Ελένης Ράπτη [43] µε τίτλο «Ευφυής ιαχείριση XML δεδοµένων µε το Σύστηµα Κανόνων CLIPS» 7

8 Σε σχέση µε τα αποτελέσµατα της παραπάνω εργασίας, το σύστηµα της παρούσας εργασίας διαχειρίζεται XML έγγραφα πολύ µεγάλου µέγεθος µε πολύ πιο αποδοτικό τρόπο και σε πολύ µικρό χρόνο. Επίσης έγινε η διασύνδεση του συστήµατος µε το διαδίκτιο και διορθώθηκαν κάποια λάθη ή συµπληρώθηκαν κάποιες ελλείψεις στο υπάρχον σύστηµα. Η διπλωµατική αυτή εργασία αποτελείται από πέντε κεφάλαια και δυο παραρτήµατα. Πιο συγκεκριµένα: Κεφάλαιο 2: Στο κεφάλαιο αυτό γίνεται µια εισαγωγή στη γλώσσα XML και γίνεται αναφορά και στις γλώσσες σήµανσης SGML και HTML. Αναφέρονται οι λόγοι που οδήγησαν στην ανάπτυξη της XML και ποια πλεονεκτήµατα παρουσιάζει. Επίσης, αναλύονται τα τµήµατα από τα οποία αποτελείται ένα XML έγγραφο και ο ορισµός τύπου εγγράφου (DΤD. Ακόµη, γίνεται αναφορά στις οντότητες (entities που είναι στοιχεία ενός XML εγγράφου. Τέλος, γίνεται αναφορά στις εφαρµογές XML για τη επεξεργασία εγγράφων καθώς και στις πρακτικές χρήσεις της. Κεφάλαιο 3: Το κεφάλαια αυτό αφορά στη διαχείριση XML δεδοµένων. Αναλύεται η διαχείριση XML δεδοµένων µε σχεσιακές βάσεις δεδοµένων. Στη συνέχεια αναλύεται η διαχείριση XML δεδοµένων µε αντικειµενοστραφείς βάσεις δεδοµένων, όπου παρουσιάζεται και το αντικειµενοστραφές µοντέλο αναπαράστασης XML δεδοµένων του X-DEVICE. Επίσης περιγράφονται γλώσσες που χρησιµοποιούνται για ερωτήσεις σε έγγραφα XML όπως η γλώσσα WebLog οι γλώσσες F-Logic/XPathLog. Τέλος περιγράφεται η σχεδίαση της RuleML. Κεφάλαιο 4: Το κεφάλαιο αυτό ασχολείται µε την αρχιτεκτονική και την γενική λειτουργία του συστήµατος. Περιγράφεται η υλοποίηση του συστήµατος X-DEVICE στο CLIPS, και στη συνέχεια τα στάδια λειτουργίας του συστήµατος από την εκκίνησή του µέχρι και την ανάκτηση του XML εγγράφου Κεφάλαιο 5: Σε αυτό το κεφάλαιο αναλύεται λεπτοµερώς η λειτουργία του συστήµατος σε όλες τις φάσεις του. Περιγράφεται η ροή των εργασιών που εκτελεί το σύστηµα, δηλαδή η εκκίνησή του, η δηµιουργία του αντικειµενοστραφούς σχήµατος των κλάσεων, η δηµιουργία αντικειµένων και στην συνέχεια η ανάκτηση όλου ή µέρους του XML 8

9 εγγράφου. Παρατίθενται και εξηγούνται αντίστοιχα τµήµατα κώδικα που υλοποιούν την κάθε φάση, καθώς και σύντοµα παραδείγµατα λειτουργίας. Κεφάλαιο 6: Στο τελευταίο κεφάλαιο παρατίθενται τα συµπεράσµατα σε σχέση µε τις αλλαγές που έγιναν στο σύστηµα και πώς αυτές οι αλλαγές επηρέασαν την απόδοση του συστήµατος τόσο σε χωρικές όσο και χρονικές αποδόσεις. Αναφέρονται συνοπτικά οι συναρτήσεις που αλλάχτηκαν, καθώς και άλλες αλλαγές που έχουν γίνει. Τέλος, αναφέρονται προβλήµατα που ανέκυψαν και θέµατα που τέθηκαν κατά την ανάπτυξη του συστήµατος. Επίσης παρατίθενται οι µελλοντικές προοπτικές ανάπτυξής του. Παράρτηµα Α: Παρατίθενται ο κώδικας του asp αρχείο που δηµιουργεί δυναµικά το XML έγγραφο που χρησιµοποιεί η εφαρµογή. Παράρτηµα Β: Παρατίθεται ένα παράδειγµα του XML εγγράφου και του αντίστοιχου DTD που χρησιµοποιήθηκαν ως ενδεικτικά κατά την ανάλυση της λειτουργίας του συστήµατος, καθώς και ένα παράδειγµα της λειτουργίας για αυτά. Παράρτηµα Γ: Παρατίθεται ο κώδικας των συναρτήσεων που έχουν αλλάξει καθώς και συναρτήσεις που έχουν προστεθεί. 9

10 10

11 ΚΕΦΑΛΑΙΟ 2 Επεκτάσιµη Γλώσσα Σήµανσης (Extensible Markup Language - XML 2.1 Ορισµός της XML Η γλώσσα XML πήρε το όνοµά της από τα αρχικά των λέξεων Extensible Markup Language (Επεκτάσιµη Γλώσσα Σήµανσης και ορίστηκε από την οµάδα XML Working Group της Κοινοπραξίας Παγκόσµιου Ιστού (World Wide Web Consortium, ή αλλιώς W3C [3] ως εξής: «Η XML αποτελεί ένα υποσύνολο της γλώσσας SGML (Standard Generalized Markup Language Πρότυπη Γενικευµένη Γλώσσα Σήµανσης. Σκοπός της είναι να διευκολύνει την αποστολή, τη λήψη και την επεξεργασία της γενικευµένης γλώσσας SGML στον Ιστό, όπως ακριβώς γίνεται τώρα µε την HTML (Hypertext Markup Language Γλώσσα Σήµανσης Υπερκειµένου. Η XML έχει σχεδιαστεί µε στόχο την ευκολία της υλοποίησης και τη δυνατότητα παράλληλης χρήσης της µε τις γλώσσες SGML και HTML» [4] Η Ανάγκη για XML Η HTML παρέχει ένα σταθερό σύνολο προκαθορισµένων στοιχείων, µε τα οποία µπορούµε να συµβολίζουµε και να οριοθετούµε τα περιεχόµενα µιας τυπικής ιστοσελίδας 11

12 γενικού περιεχοµένου. Παραδείγµατα τέτοιων στοιχείων είναι οι επικεφαλίδες, οι ενότητες, οι λίστες, οι πίνακες (tables, οι εικόνες και οι σύνδεσµοι (links. Αν και το σύνολο των προκαθορισµένων στοιχείων HTML έχει εµπλουτιστεί σηµαντικά από την πρώτη έκδοση της HTML, η γλώσσα αυτή εξακολουθεί να είναι ακατάλληλη για τον προσδιορισµό πολλών ειδών εγγράφων. Τέτοια παραδείγµατα εγγράφων που δεν µπορούν να προσδιοριστούν επαρκώς µε την HTML είναι τα ακόλουθα: Έγγραφα που δεν αποτελούνται από τυπικά στοιχεία (επικεφαλίδες, ενότητες, λίστες, πίνακες κλπ.. Για παράδειγµα, η HTML δεν έχει τα απαραίτητα στοιχεία που χρειάζονται για τη σήµανση µιας µουσικής παρτιτούρας ή ενός συνόλου µαθηµατικών εξισώσεων. Βάσεις δεδοµένων, όπως για παράδειγµα ένας κατάλογος βιβλίων. Μπορούµε να χρησιµοποιήσουµε µια σελίδα HTML για να αποθηκεύσουµε και να εµφανίσουµε στατικές πληροφορίες (όπως µια λίστα µε περιγραφές βιβλίων. Όµως, αν θέλουµε να ταξινοµήσουµε, να επιλέξουµε, να εντοπίσουµε και να δουλέψουµε µε τις πληροφορίες µας µε κάποιο διαφορετικό τρόπο, για κάθε πληροφορία (πεδίο θα πρέπει να οριστεί και από µία ετικέτα (αυτό κάνουν και τα προγράµµατα βάσεων δεδοµένων. Η HTML δε διαθέτει τα απαραίτητα στοιχεία για κάτι τέτοιο. Έγγραφα που θέλουµε να οργανώσουµε ιεραρχικά σε µορφή δένδρου. Ας υποθέσουµε, για παράδειγµα, ότι γράφουµε ένα βιβλίο και θέλουµε να το χωρίσουµε σε µέρη, κεφάλαια, ενότητες επιπέδου Α, ενότητες επιπέδου Β, ενότητες επιπέδου Γ, παραγράφους και εικόνες. Σε αυτή την περίπτωση, ένα πρόγραµµα θα µπορούσε να χρησιµοποιήσει αυτό το δοµηµένο έγγραφο για να δηµιουργήσει έναν πίνακα περιεχοµένων, να εµφανίσει τη διάρθρωσή του µε διάφορα επίπεδα λεπτοµερειών, να εξάγει κάποιες συγκεκριµένες ενότητες και να διαχειριστεί µε άλλους τρόπους τις πληροφορίες. Το στοιχείο επικεφαλίδας της HTML όµως επισηµαίνει µόνο το κείµενο της επικεφαλίδας. Το πραγµατικό κείµενο και τα στοιχεία που ανήκουν σε µια ενότητα του εγγράφου δεν περιέχονται µέσα στο στοιχείο της αντίστοιχης επικεφαλίδας, γι αυτό και τα 12

13 στοιχεία αυτά δεν µπορούν να χρησιµοποιηθούν για να αποδώσουν µε σαφήνεια την ιεραρχική δοµή του εγγράφου. Λύση σε τέτοιου είδους περιορισµούς δίνει η XML Η Λύση της XML Αν και η HTML είναι προς το παρόν η πιο διαδεδοµένη γλώσσα στο χώρο της δηµιουργίας ιστοσελίδων, διαθέτει περιορισµένες δυνατότητες αναπαράστασης πληροφοριών. Αντίθετα, η XML διαθέτει ένα εξαιρετικά ευέλικτο συντακτικό και µπορούµε να δηµιουργούµε δικά µας στοιχεία και να τους δίνουµε όποιες ονοµασίες θέλουµε αυτή την έννοια έχει ο όρος επεκτάσιµη (extensible στην ονοµασία της γλώσσας. Εποµένως, µπορούµε να χρησιµοποιήσουµε την XML για να περιγράψουµε οποιοδήποτε είδος εγγράφου, από µουσικές παρτιτούρες και συνταγές µαγειρικής µέχρι σύνθετες βάσεις δεδοµένων. Μπορούµε, για παράδειγµα, να περιγράψουµε µια λίστα βιβλίων, όπως το έγγραφο XML που ακολουθεί στο Σχήµα 2.1 [5]. <INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <PRICE>$5.49</PRICE> </BOOK> <BOOK> <TITLE>The Scarlet Letter</TITLE> <AUTHOR>Nathaniel Hawthorne</AUTHOR> <PRICE>$4.25</PRICE> </BOOK> </INVENTORY> Σχήµα 2.1: Παράδειγµα εγγράφου XML Όπως βλέπουµε από το παραπάνω παράδειγµα, ένα έγγραφο XML είναι δοµηµένο ιεραρχικά σε µορφή δένδρου, µε στοιχεία που περικλείονται µέσα σε άλλα και µε ένα στοιχείο ανωτάτου επιπέδου (σε αυτό το παράδειγµα INVENTORY γνωστό ως βασικό στοιχείο (root element το οποίο περιέχει όλα τα υπόλοιπα. Η δοµή του εγγράφου XML του παραδείγµατός µας µπορεί να αποδοθεί ως εξής: 13

14 INVENTORY BOOK BOOK TITLE AUTHOR PRICE TITLE AUTHOR PRICE Σχήµα 2.2: οµή εγγράφου XML του παραδείγµατος του σχ. 2.1 Μπορούµε εποµένως πολύ εύκολα να χρησιµοποιήσουµε την XML για να ορίσουµε ένα ιεραρχικά δοµηµένο έγγραφο, για παράδειγµα, έναν κατάλογο βιβλίων που αποτελείται από βιβλία µε µέρη, κεφάλαια και ενότητες διαφορετικών επιπέδων. Επίσης, ένα έγγραφο XML σε συνδυασµό µε ένα stylesheet (φύλλο στυλ ή µια συµβατική σελίδα HTML µπορεί να απεικονιστεί εύκολα σε ένα φυλλοµετρητή Ιστού (web browser. Χάρη στην ικανότητα που έχει ένα έγγραφο XML να δοµεί και να περιγράφει τόσο αποτελεσµατικά τις πληροφορίες που περιέχει (µέσω ετικετών, ο browser µπορεί να εντοπίζει, να εξάγει, να ταξινοµεί, να φιλτράρει, να τακτοποιεί και να χειρίζεται µε εξαιρετικά ευέλικτους τρόπους τις πληροφορίες αυτές. Έτσι, η XML προσφέρει την ιδανική λύση στο πρόβληµα χειρισµού της ταχύτατα αυξανόµενης ποσότητας και πολυπλοκότητας των πληροφοριών που χρειάζεται να δηµοσιευθούν στον Ιστό SGML, HTML και XML Η γλώσσα SGML (Standard Generalized Markup Language είναι η µητέρα όλων των γλωσσών σήµανσης [5]. Η HTML και η XML έχουν προέλθει και οι δυο από την SGML (αν και µε πολύ διαφορετικούς τρόπους. Η SGML ορίζει ένα βασικό συντακτικό και επιτρέπει τη δηµιουργία δικών µας στοιχείων (γι αυτό και ο όρος generalized γενικευµένη. Αν θέλουµε να χρησιµοποιήσουµε την SGML για να περιγράψουµε κάποιο 14

15 συγκεκριµένο έγγραφο, πρέπει να επινοήσουµε ένα κατάλληλο σύνολο στοιχείων και µια δοµή εγγράφου. Ένα σύνολο στοιχείων γενικής χρήσης που χρησιµοποιείται για να περιγράψει ένα συγκεκριµένο είδος εγγράφου είναι γνωστό ως εφαρµογή SGML. Μπορούµε να ορίσουµε τη δική µας εφαρµογή SGML για να περιγράψουµε ένα συγκεκριµένο τύπο εγγράφου. Επίσης, ένας οργανισµός προτυποποίησης µπορεί να ορίσει µια εφαρµογή SGML για να περιγράψει κάποιο ευρέως χρησιµοποιούµενο είδος εγγράφου. Το πιο γνωστό παράδειγµα αυτού του τελευταίου είδους εφαρµογής είναι η HTML. Η SGML αναπτύχθηκε ουσιαστικά το 1986, ενώ η HTML, που είναι µια εφαρµογή της SGML, δηµιουργήθηκε το 1991 µε σκοπό την περιγραφή ιστοσελίδων. Η SGML µπορεί να φαίνεται η ιδανική επεκτάσιµη γλώσσα για την περιγραφή εγγράφων στον Ιστό. Ωστόσο, τα µέλη του W3C που ασχολούνται µε αυτά τα θέµατα θεώρησαν την SGML πολύ σύνθετη και δύσχρηστη για την αποδοτική µεταφορά πληροφοριών στον Ιστό. Αυτό που χρειαζόταν ήταν ένα αποδοτικό υποσύνολο της SGML, σχεδιασµένο ειδικά για τη µεταφορά πληροφοριών στον Ιστό. Η κεντρική ιδέα ήταν να διατηρηθεί το 50% της SGML που χρησιµοποιείται το 90% των περιπτώσεων [6]. Το 1996, η αντίστοιχη ερευνητική οµάδα του W3C ανέπτυξε αυτό το υποσύνολο, το οποίο ονόµασε Extensible Markup Language (Επεκτάσιµη Γλώσσα Σήµανσης. Όπως αναφέραµε παραπάνω, η XML σχεδιάστηκε µε στόχο την ευκολία υλοποίησης, κάτι που δε χαρακτηρίζει την SGML. Η XML, όπως και η SGML, επιτρέπει τον ορισµό δικών µας συνόλων στοιχείων όταν περιγράφουµε κάποιο συγκεκριµένο έγγραφο. Επίσης, όπως και µε την SGML, µια εφαρµογή XML (γνωστή και ως λεξιλόγιο vocabulary µπορεί να οριστεί από έναν ιδιώτη ή από έναν οργανισµό προτυποποίησης. Εφαρµογή XML είναι ένα σύνολο στοιχείων γενικής χρήσης και µια δοµή εγγράφου που µπορεί να χρησιµοποιηθεί για την περιγραφή εγγράφων συγκεκριµένου τύπου (για παράδειγµα, εγγράφων που περιέχουν µαθηµατικούς τύπους ή διανυσµατικά γραφικά. Το συντακτικό της XML προσφέρει λιγότερες επιλογές από εκείνο της SGML και έτσι είναι πιο εύκολο για τους χρήστες να διαβάζουν τα έγγραφα XML και για τους προγραµµατιστές να γράφουν φυλλοµετρητές, scripts (σενάρια και websites (ιστοσελίδες που µπορούν να προσπελαστούν και να εµφανίζουν τις πληροφορίες του εγγράφου. 15

16 2.1.4 Η XML Αντικαθιστά την HTML; Προς το παρόν η απάντηση σε αυτό το ερώτηµα είναι όχι. Η HTML εξακολουθεί να είναι η πρωταρχική γλώσσα για την εµφάνιση πληροφοριών στον Ιστό [5]. Αντί να αντικατασταθεί η HTML, χρησιµοποιείται προς το παρόν σε συνδυασµό µε την XML και αυξάνει τις δυνατότητες των ιστοσελίδων ως προς τα ακόλουθα: Μεταφορά, ουσιαστικά, οποιουδήποτε είδους εγγράφου. Ταξινόµηση, φιλτράρισµα, αναδιάταξη, εντοπισµός και διαχείριση των πληροφοριών µε άλλους τρόπους. Παρουσίαση εξαιρετικά δοµηµένων πληροφοριών. 2.2 ηµιουργία XML Εγγράφου Ανατοµία XML Εγγράφου Τα περιεχόµενα ενός XML εγγράφου µπορούν να είναι κάποια από τα ακόλουθα [7]: Elements (Στοιχεία Attributes (Ιδιότητες Comments (Σχόλια Processing Instructions (Εντολές επεξεργασίας - αναφέρονται και ως «στιγµιότυπο εγγράφου» Στοιχεία Τα στοιχεία δείχνουν τη λογική δοµή ενός εγγράφου XML και περιέχουν τις πληροφορίες του. Ένα έγγραφο XML αποτελείται από ένα βασικό στοιχείο (root element. Κάθε στοιχείο αποτελείται από ένα start tag (ετικέτα αρχής, το περιεχόµενο και ένα end tag (ετικέτα τέλους. Το περιεχόµενο µπορεί να αποτελείται από δεδοµένα χαρακτήρων, άλλα 16

17 (ένθετα στοιχεία ή από συνδυασµό και των δύο. Ένα παράδειγµα στοιχείου φαίνεται στο Σχήµα 2.3 [8]. <ΒΟΟΚ> <TITLE>TCP/IP Illustrated</TITLE> <AUTHOR>Stevens W.</AUTHOR> <PUBLISHER>Addison-Wesley</PUBLISHER> <PRICE>$65.95</PRICE> </BOOK> Σχήµα 2.3: Παράδειγµα XML στοιχείου Το βασικό στοιχείο είναι το BOOK. Η ετικέτα αρχής του στοιχείου αυτού είναι το <BOOK>, η ετικέτα τέλους το </BOOK> και το περιεχόµενό του είναι 4 ένθετα στοιχεία. Τα 4 αυτά ένθετα στοιχεία είναι τα TITLE, AUTHOR, PUBLISHER και PRICE. Καθένα από αυτά περιέχει µόνο δεδοµένα χαρακτήρων. Ιδιότητες Μια ιδιότητα περιλαµβάνεται στην ετικέτα αρχής ενός στοιχείου και πρόκειται για ένα ζεύγος name value, όπου name είναι το όνοµα της ιδιότητας και value η τιµή της, το οποίο συνδέεται µε το στοιχείο. Θεωρούµε το προηγούµενο παράδειγµα µε το στοιχείο BOOK, στο οποίο προσθέτουµε την ιδιότητα YEAR="1994", οπότε προκύπτει το 2.4. <ΒΟΟΚ YEAR="1994"> <TITLE>TCP/IP Illustrated</TITLE> <AUTHOR>Stevens W.</AUTHOR> <PUBLISHER>Addison-Wesley</PUBLISHER> <PRICE>$65.95</PRICE> </BOOK> Σχήµα 2.4: Παράδειγµα XML στοιχείου µε ιδιότητα H ιδιότητα YEAR="1994" δηλώνει την ηµεροµηνία έκδοσης του συγκεκριµένου βιβλίου. Τα attributes παίρνουν βασικά µόνο απλές τιµές, δηλαδή δεν έχουν κάποια δοµή. Η διαδικασία προσθήκης ιδιοτήτων αποτελεί µια εναλλακτική λύση που µας δίνει τη δυνατότητα να συµπεριλάβουµε πληροφορίες σε ένα στοιχείο. Η χρήση ιδιοτήτων έχει ως σκοπό την αποθήκευση διάφορων χαρακτηριστικών του στοιχείου, τα οποία δεν είναι απαραίτητο να εµφανιστούν. 17

18 Σχόλια Σχόλιο είναι µια σηµείωση που προσθέτουµε στο έγγραφό µας και η οποία µπορεί να διαβαστεί από οποιονδήποτε εκτός από τον επεξεργαστή. Ένα σχόλιο αρχίζει µε τους χαρακτήρες <!--, δέχεται ως περιεχόµενο οποιαδήποτε ακολουθία χαρακτήρων και τελειώνει µε τους χαρακτήρες -->. Επίσης, µπορεί να χρησιµοποιηθεί οπουδήποτε µέσα στο έγγραφο. Ένα παράδειγµα σχόλιου φαίνεται στο Σχήµα 2.5. <SXOLH_THETIKWN_EPISTHMWN> <TMHMA>Tmima Pliroforikis</TMHMA> <!-- Auto einai ena sxolio --> </SXOLH_THETIKWN_EPISTHMWN> Σχήµα 2.5: Παράδειγµα σχόλιου Εντολές Επεξεργασίας Οι εντολές επεξεργασίας χρησιµοποιούνται για την παροχή πληροφοριών, τις οποίες ο επεξεργαστής XML µεταφέρει σε εφαρµογές. Έχουν τη γενική µορφή: <?target instruction?>, όπου target είναι το όνοµα της εφαρµογής στην οποία απευθύνεται η εντολή και instruction είναι το σύνολο των πληροφοριών που µεταφέρονται στην εφαρµογή (εντολές. Όπως και τα σχόλια, µπορούν να τοποθετηθούν σε οποιοδήποτε σηµείο του εγγράφου, αρκεί να µη βρίσκονται µέσα σε άλλα tags (ετικέτες. Το Σχήµα 2.6 δείχνει ένα παράδειγµα εντολής επεξεργασίας [5]. <?xml-stylesheet TYPE="text/css" HREF="Book.css"?> Σχήµα 2.6: Παράδειγµα εντολής επεξεργασίας H εντολή αυτή λέει στην εφαρµογή να χρησιµοποιήσει το φύλλο επάλληλων στυλ (cascading stylesheet που βρίσκεται στο αρχείο Book.css Ορισµός Τύπου Εγγράφου (Document Type Definition DTD Ένα έγγραφο XML µπορεί να περιλαµβάνει µια κατάλληλη δήλωση τύπου εγγράφου (Document Type Declaration. H δήλωση αυτή περιέχει έναν ορισµό τύπου εγγράφου (Document Type Definition DTD, o οποίος αποτελείται από τις δηλώσεις που 18

19 προσδιορίζουν τα στοιχεία, τις ιδιότητες και άλλα χαρακτηριστικά του εγγράφου. Η δήλωση τύπου εγγράφου έχει την εξής γενική µορφή: <!DOCTYPE Όνοµα DTD> όπου το Όνοµα προσδιορίζει το όνοµα του βασικού στοιχείου. Το DTD αποτελείται από µια αριστερή αγκύλη ( [ ακολουθούµενη από µια σειρά δηλώσεων σήµανσης (markup declarations και µια δεξιά αγκύλη ( ]. Οι δηλώσεις σήµανσης περιγράφουν τη λογική δοµή του εγγράφου. Ένα παράδειγµα DTD απεικονίζεται στο Σχήµα 2.7 που ακολουθεί [8]. <!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE, AUTHOR+, PUBLISHER, PRICE> <!ATTLIST BOOK YEAR CDATA #REQUIRED> <!ELEMENT AUTHOR (#PCDATA> <!ELEMENT TITLE (#PCDATA> <!ELEMENT PUBLISHER (#PCDATA> <!ELEMENT PRICE (#PCDATA> ] > Σχήµα 2.7: Παράδειγµα DTD Το DTD αυτό αναφέρεται στο βασικό στοιχείο BOOK και προσδιορίζει τα στοιχεία του. Το στοιχείο BOOK περιέχει ένα στοιχείο τύπου TITLE, ένα ή περισσότερα στοιχεία τύπου AUTHOR (η σηµασία του συµβόλου '+' µετά από το AUTHOR εξηγείται σε άλλο κεφάλαιο αναλυτικά, ένα στοιχείο τύπου PUBLISHER και ένα τύπου PRICE. Καθένα από αυτά τα στοιχεία είναι ακολουθίες χαρακτήρων (PCDATA. Επίσης, περιέχει και την ιδιότητα YEAR η οποία παίρνει µια αριθµητική τιµή και είναι απαραίτητη (REQUIRED. Για παράδειγµα, ένα έγγραφο XML που ικανοποιεί τους κανόνες του παραπάνω DTD, περιλαµβάνει δεδοµένα όπως αυτά στο Σχήµα 2.8. <BOOK YEAR="1994"> <TITLE>TCP/IP Illustrated</TITLE> <AUTHOR>Stevens W.</AUTHOR> <PUBLISHER>Addison-Wesley</PUBLISHER> <PRICE>$65.95</PRICE> </BOOK> Σχήµα 2.8: εδοµένα εγγράφου XML που ικανοποιεί τους κανόνες του DTD του 19

20 Αν θέλουµε να είµαστε βέβαιοι ότι το έγγραφό µας ακολουθεί µια συγκεκριµένη δοµή ή σύνολο κανόνων, η παρουσία ενός DTD που θα ορίζει τη δοµή αυτή, επιτρέπει σε κάποιον επεξεργαστή XML να ελέγξει κατά πόσο το έγγραφό µας ακολουθεί τη προβλεπόµενη δοµή. Η διαδικασία αυτή ονοµάζεται XML validation. Εκτός από το DTD, υπάρχει και το πρότυπο XML Schema (XML Σχήµα [7]. Σε ένα σύστηµα διαχείρισης βάσης δεδοµένων, το σχήµα είναι µια τυπική περιγραφή της δοµής της βάσης. Ορίζει τις εσωτερικές δοµές, όπως πίνακες και πεδία και τις σχέσεις µεταξύ τους. Ένα σχήµα περιγράφεται µε περιορισµούς (constraints. Υπάρχουν δύο βασικοί τύποι περιορισµών: οι περιορισµοί περιεχοµένου (content constraints που καθορίζουν πού και πότε µπορούν να χρησιµοποιηθούν στοιχεία, και οι περιορισµοί τύπου δεδοµένων (datatype constraints που καθορίζουν τους τύπους δεδοµένων που µπορούν να έχουν τα στοιχεία. Παρόλο που και το DTD και το XML Schema παρέχουν κάποια δοµή για τα έγγραφα, παρουσιάζουν αρκετές θεµελιώδεις διαφορές µεταξύ τους: 1. Τα DTDs είναι γραµµένα µε βάση την τυπική µορφή EBNF (Extended Backus Naur Form, ενώ τα Schemas είναι γραµµένα σε XML. 2. Τα DTDs έχουν ελάχιστους περιορισµούς τύπου δεδοµένων. Για παράδειγµα, ένα στοιχείο <TELEPHONE> θα µπορούσε να οριστεί ότι περιέχει CDATA, αλλά µε τη χρήση DTD δε θα µπορούσε να περιοριστεί σε αριθµητικές τιµές. Αντίθετα, µε τη χρήση του XML Schema µπορούµε να εφαρµόσουµε πιο ειδικούς περιορισµούς πάνω στα δεδοµένα. 3. Στα DTDs υπάρχει ένα περιορισµένο σύνολο µοντέλων περιεχοµένου, ενώ στα XML Schemas υπάρχει µεγαλύτερη ευελιξία Οντότητες (Entities Ο µηχανισµός οντότητας XML αποτελεί ένα εργαλείο εξοικονόµησης χρόνου, καθώς και έναν τρόπο ενσωµάτωσης διαφόρων τύπων δεδοµένων σε έγγραφα XML. Σε ένα τέτοιο έγγραφο µπορούµε να ορίσουµε ως οντότητα κάποιο µπλοκ κειµένου XML που χρησιµοποιείται συχνά. Αυτό µας δίνει τη δυνατότητα να εισάγουµε γρήγορα το κείµενο στο έγγραφό µας, όποτε το θελήσουµε. Μπορούµε επίσης να ορίσουµε ως οντότητα ένα 20

21 εξωτερικό αρχείο και έτσι να συνδέουµε τα δεδοµένα του αρχείου µε το έγγραφό µας. Τα στοιχεία αυτά µπορεί να αποτελούνται από κείµενο XML, από κάποιο άλλο κείµενο ή από άλλα δεδοµένα διαφορετικά από κείµενο. Επίσης, µπορούµε να ορίσουµε µια οντότητα στον ορισµό τύπου εγγράφου (DTD, χρησιµοποιώντας σύνταξη παρόµοια µε εκείνη που χρησιµοποιούµε για τη δήλωση ενός στοιχείου ή µιας ιδιότητας σε ένα έγκυρο έγγραφο XML [5]. Τύποι Οντοτήτων Οι οντότητες διακρίνονται σε πολλές κατηγορίες: Γενικές (general. Η γενική οντότητα έχει περιεχόµενο εγγράφου δηλαδή κείµενο XML, άλλου είδους κείµενο ή δεδοµένα εκτός κειµένου, τα οποία µπορούµε να χρησιµοποιήσουµε στο βασικό στοιχείο. Παραµέτρων (parameter. Η οντότητα παραµέτρων περιέχει κείµενο XML, το οποίο µπορεί να συµπεριληφθεί στο DTD. Εσωτερικές (internal. Η εσωτερική οντότητα περιέχεται µέσα σε ένα αλφαριθµητικό εισαγωγικό. Εξωτερικές (external. Η εξωτερική οντότητα περιέχεται σε ένα ξεχωριστό αρχείο. Αναλυόµενες (parsed. Η αναλυόµενη οντότητα αποτελείται από κείµενο XML (δεδοµένα χαρακτήρων, σήµανση ή και τα δυο. Όταν προσθέτουµε µια αναφορά σε µια αναλυόµενη οντότητα του εγγράφου, η αναφορά αντικαθίσταται από τα περιεχόµενα της οντότητας (γνωστά επίσης και ως κείµενα αντικατάστασης, τα οποία ενσωµατώνονται πλέον στο έγγραφο. Μη αναλυόµενες (unparsed. Η µη αναλυόµενη οντότητα µπορεί να περιέχει οποιοδήποτε είδος δεδοµένων (δεδοµένα XML ή δεδοµένα µη XML. Συνήθως 21

22 δεν περιλαµβάνει δεδοµένα XML, γι αυτό και τα περιεχόµενά της δεν εισάγονται άµεσα στο έγγραφο µέσω κάποιας αναφοράς οντότητας. Ακολουθεί ένα παράδειγµα DTD (Σχήµα 2.9 που ορίζει το εξωτερικό αρχείο Topics.xml (ένα αρχείο που περιέχει κατάλογο µε τα θέµατα του άρθρου το οποίο περιέχεται στο έγγραφο ως εξωτερική οντότητα µε το όνοµα topics και ορίζει ένα αλφαριθµητικό εισαγωγικών ("A Short History of Xml" ως εσωτερική οντότητα µε το όνοµα title. <!DOCTYPE ARTICLE [ <!ELEMENT ARTICLE (TITLEPAGE, INTRODUCTION, SECTION*> <!ELEMENT TITLEPAGE (#PCDATA> <!ELEMENT INTRODUCTION (#PCDATA> <!ELEMENT SECTION (#PCDATA> > <!ENTITY topics SYSTEM "Topics.xml"> <!ENTITY title "A Short History of Xml"> ] Σχήµα 2.9: Παράδειγµα DTD µε εσωτερική και εξωτερική οντότητα Θα µπορούσαµε εποµένως να προσθέσουµε τον τίτλο του άρθρου σε οποιοδήποτε σηµείο του εγγράφου και να συµπεριλάβουµε την αναφορά οντότητας &title; - όπως στο στοιχείο που φαίνεται στο Σχήµα2.10. <TITLEPAGE> Title: &title; Author: Michael Young </TITLEPAGE> Σχήµα2.10: Παράδειγµα στοιχείου µε αναφορά οντότητας Μια σηµαντική παρατήρηση είναι ότι ο µηχανισµός οντοτήτων της XML µοιάζει µε τον ορισµό µακροεντολών (macros σε µια γλώσσα προγραµµατισµού (όπως αυτές που δηλώνονται µε τη χρήση της εντολής προεπεξεργαστή #define στη C. 22

23 2.2.4 Εγκυρότητα Εγγράφου Ένα έγγραφο µπορεί να χαρακτηριστεί ως «σωστά διατυπωµένο» (well-formed ή «έγκυρο» (valid ανάλογα µε τις απαιτήσεις που ικανοποιεί. Κάθε XML έγγραφο είναι ουσιαστικά «σωστά διατυπωµένο» [7]. Ένα έγγραφο χαρακτηρίζεται ως «σωστά διατυπωµένο» όταν ικανοποιεί κάποιους κανόνες, όπως οι ακόλουθοι: Πρέπει να έχει ετικέτες αρχής και τέλους (start και end tag αντίστοιχα σε κάθε στοιχείο Πρέπει να έχει 1 και µόνο βασικό στοιχείο (root element Τα άδεια στοιχεία δοµούνται σωστά Οι ετικέτες αρχής και τέλους µπορεί να είναι µε κεφαλαία γράµµατα ή πεζά, αρκεί να ταιριάζουν µεταξύ τους Τα νέα στοιχεία πρέπει να ενσωµατώνονται σωστά το ένα µέσα στο άλλο Οι τιµές των ιδιοτήτων πρέπει να είναι πάντα µέσα σε εισαγωγικά Ένα έγκυρο έγγραφο είναι σωστά διατυπωµένο και γίνεται έγκυρο µε βάση ένα DTD (ή κάποιο άλλο σχήµα. Το DTD παρέχει σε έναν επεξεργαστή XML ένα πρότυπο σχέδιο, ώστε ελέγχοντας την εγκυρότητα του εγγράφου να µπορεί να επιβάλλει την επιθυµητή δοµή και να εγγυηθεί ότι το έγγραφό µας ικανοποιεί τις απαραίτητες προϋποθέσεις. Η συµπερίληψη DTD και ο έλεγχος εγκυρότητας είναι ιδιαίτερα σηµαντικές διαδικασίες όταν η επεξεργασία των εγγράφων γίνεται από προσαρµοσµένο λογισµικό, το οποίο αναµένει µια συγκεκριµένη δοµή εγγράφου. Αν όλοι οι χρήστες συµπεριλάβουν στα XML έγγραφά τους ένα κοινό DTD και αν στα έγγραφα γίνεται έλεγχος εγκυρότητας, οι χρήστες µπορούν να είναι σίγουροι ότι τα έγγραφά τους θα αναγνωρίζονται από το λογισµικό επεξεργασίας. Για παράδειγµα, αν µια οµάδα µαθηµατικών επιστηµόνων θέλει να δηµιουργήσει µαθηµατικά έγγραφα που θα εµφανιστούν µέσω κάποιου συγκεκριµένου προγράµµατος, µπορούν να συµπεριλάβουν στα έγγραφά τους ένα κοινό DTD που θα ορίζει την απαιτούµενη δοµή, τα στοιχεία, τις ιδιότητες και άλλα χαρακτηριστικά των εγγράφων. 23

24 2.3 Εφαρµογές XML για Βελτίωση Εγγράφων Εκτός από τις εφαρµογές XML που χρησιµοποιούνται για την περιγραφή ειδικών τάξεων εγγράφων, έχουν οριστεί και αρκετές άλλες εφαρµογές, τις οποίες µπορούµε να χρησιµοποιήσουµε σε οποιοδήποτε είδος εγγράφου. Οι εφαρµογές αυτές διευκολύνουν τη δηµιουργία των εγγράφων και επιτρέπουν τη βελτιστοποίησή τους. Παραδείγµατα τέτοιων εφαρµογών είναι τα ακόλουθα [5]: Επεκτάσιµη Γλώσσα Φύλλων Στυλ (Extensible Stylesheet Language XSL. Επιτρέπει τη δηµιουργία ισχυρών φύλλων στυλ, χρησιµοποιώντας το συντακτικό της XML [9]. Ένα φύλλο στυλ XSL συνδέεται µε ένα έγγραφο XML και δίνει εντολές στο φυλλοµετρητή (browser πώς να εµφανίσει τα δεδοµένα XML, κάτι που συνήθως κάνει η HTML. Έτσι, δίνεται η δυνατότητα να ανοίγουµε ένα έγγραφο XML κατευθείαν στο φυλλοµετρητή, χωρίς τη χρήση ενδιάµεσης σελίδας HTML. Η χρήση ενός φύλλου στυλ XSL είναι πολύ πιο ισχυρή και ευέλικτη από τη χρήση φύλλων επάλληλων στυλ (CSS Cascading Style Sheets. Ενώ το φύλλο στυλ CSS επιτρέπει απλώς τον ορισµό της µορφοποίησης κάθε στοιχείου XML, το φύλλο στυλ XSL δίνει τη δυνατότητα πλήρους ελέγχου του αποτελέσµατος. Συγκεκριµένα, η XSL µας επιτρέπει να επιλέξουµε µε ακρίβεια τα δεδοµένα της XML που θέλουµε να εµφανίσουµε, να παρουσιάσουµε τα δεδοµένα µε οποιαδήποτε σειρά ή διάταξη, να κάνουµε τροποποιήσεις ή να προσθέσουµε πληροφορίες. Η XSL µας δίνει επίσης τη δυνατότητα να προσπελαύνουµε όλα τα τµήµατα ενός εγγράφου XML (όπως στοιχεία, ιδιότητες, σχόλια και εντολές επεξεργασίας, να ταξινοµούµε και να φιλτράρουµε µε ευκολία τα δεδοµένα XML και να συµπεριλαµβάνουµε σενάρια στο φύλλο στυλ, ενώ µας παρέχει ένα σύνολο χρήσιµων µεθόδων, µε τις οποίες µπορούµε να επεξεργαζόµαστε τις πληροφορίες µας. Σχήµα XML (XML Schema. Επιτρέπει να γράφουµε λεπτοµερή σχήµατα (schemas για τα έγγραφά µας, χρησιµοποιώντας το καθιερωµένο συντακτικό της XML. Παρέχει µια πιο ισχυρή εναλλακτική λύση από ό,τι το DTD. 24

25 Γλώσσα Σύνδεσης XML (XML Linking Language XLink. Επιτρέπει τη σύνδεση των εγγράφων µας και τη χρήση πολλαπλών περιορισµών συνδέσµων, καθώς και άλλα προηγµένα χαρακτηριστικά. Είναι σαφώς πιο ισχυρή από το µηχανισµό σύνδεση της HTML [10]. Γλώσσα εικτών XML (XML Pointer Language XPointer. Επιτρέπει τον ορισµό ευέλικτων προορισµών σύνδεσης. Μπορούµε να χρησιµοποιήσουµε την XPointer σε συνδυασµό µε την XLink και να συνδεθούµε σε οποιαδήποτε θέση στο έγγραφο προορισµού όχι µόνο σε κάποιο ειδικά επισηµασµένο προορισµό σύνδεσης [11]. Γλώσσα Ερωταποκρίσεων XML (XML Query Language XQuery. Είναι µια δυναµική και εύκολη γλώσσα, η οποία σχεδιάστηκε για την επεξεργασία δεδοµένων είτε σε µορφή XML είτε σε κάποια άλλη µορφή, για παράδειγµα µια βάση δεδοµένων, της οποίας η δοµή είναι όµοια µε αυτήν της XML [12]. Γλώσσα Χρήσης Μονοπατιών XML (XML Path Language XPath. Eίναι το αποτέλεσµα µιας προσπάθειας να παραχθεί µια κοινή σύνταξη και σηµασιολογία για την επίτευξη λειτουργικότητας µεταξύ του XSLT (XSL Transformations και του XPointer. Ο αρχικός σκοπός της είναι να διευθυνσιοδοτεί τα µέρη ενός XML εγγράφου. Για το σκοπό αυτόν, παρέχει βασικές ευκολίες για το χειρισµό αλφαριθµητικών, αριθµών και λογικών τιµών. Παίρνει το όνοµά της από τη χρήση µονοπατιών για την πλοήγηση στην ιεραρχική δοµή του εγγράφου. Μοντελοποιεί ένα XML έγγραφο ως ένα δένδρο από κόµβους [13]. 2.4 Πρακτικές Χρήσεις της XML Τέλος, παραθέτουµε έναν κατάλογο µε µερικές από τις πρακτικές χρήσεις της γλώσσας XML. Στον κατάλογο αυτόν συµπεριλαµβάνονται οι τρόποι µε τους οποίους 25

26 χρησιµοποιείται προς το παρόν η XML, καθώς και οι χρήσεις που έχουν προταθεί από διάφορες οµάδες [5]. ηµοσίευση βάσεων δεδοµένων. Όπως συµβαίνει µε τις αποκλειστικές µορφές βάσεων δεδοµένων, η XML µπορεί να χρησιµοποιηθεί για να τοποθετήσει ετικέτες σήµανσης σε οποιοδήποτε πεδίο πληροφοριών µέσα σε οποιαδήποτε βάση δεδοµένων. Με τον τρόπο αυτόν µας δίνει την ευκαιρία να εµφανίζουµε τα δεδοµένα, καθώς επίσης να αναζητούµε συγκεκριµένα δεδοµένα, να τα ταξινοµούµε, να τα φιλτράρουµε και να τα επεξεργαζόµαστε µε πολλούς και ποικίλους τρόπους. Για τους παραπάνω σκοπούς, εταιρίες όπως η Oracle και η Microsoft, χρησιµοποιούν σε εφαρµογές components (συστατικά βασισµένα σε XML. όµηση εγγράφων. Η δενδροειδής δοµή των εγγράφων XML κάνει τη γλώσσα αυτή ιδανική για την περιγραφή της δοµής εγγράφων, όπως µυθιστορήµατα, βιβλία γενικού ενδιαφέροντος και θεατρικά έργα. Για παράδειγµα, µπορούµε να χρησιµοποιήσουµε την XML για να χωρίσουµε το έργο σε πράξεις, σκηνές, οµιλητές, ατάκες, σκηνικές οδηγίες κ.ά. Κάτι τέτοιο επιτρέπει στο λογισµικό να εµφανίζει ή να τυπώνει το έγγραφο µε την κατάλληλη µορφοποίηση, να εντοπίζει, να εξάγει, ή να χειρίζεται τις πληροφορίες του εγγράφου, να δηµιουργεί αυτόµατα πίνακες περιεχοµένων, διαρθρώσεις και περιλήψεις, και γενικά να χειρίζεται τις πληροφορίες µας µε διάφορους τρόπους. Επεκτάσιµη Γλώσσα Σήµανσης Υπερκειµένου (XHTML Extensible Hypertext Markup Language. H γλώσσα αυτή επιτρέπει σε ένα συγγραφέα να διατηρήσει τη σηµασιολογία και την παρουσίαση ενός HTML εγγράφου, και παρέχει µία οµαλή µετάβαση από HTML σε XML. Πέραν τούτου, οι συγγραφείς πρέπει να είναι πολύ προσεκτικοί µε τη δόµηση των εγγράφων και αυτό είναι αρκετά καλό γι αυτούς. Ένας καλός λόγος πάντως, για να στραφούµε προς τη γλώσσα XHTML, είναι η δυνατότητα µεταφερσιµότητας (portability και η ευκολία συµβατότητας που παρέχει [7]. 26

27 Παρουσίαση διανυσµατικών γραφικών (VML ή Vector Markup Language Γλώσσα Σήµανσης ιανυσµάτων. Πρόκειται για µια XML εφαρµογή, η οποία ορίζει το σχήµα για την κωδικοποίηση διανυσµατικών πληροφοριών µε πρόσθετη σήµανση, για να περιγράψει τον τρόπο αναπαράστασης των πληροφοριών [14]. Περιγραφή παρουσιάσεων µε πολυµέσα (SMIL ή Synchronized Multimedia Integration Language και HTML+TIME ή HTML Interactive Multimedia Extensions. Η SMIL επιτρέπει απλή συγγραφή διαδραστικών (interactive οπτικοακουστικών παρουσιάσεων. Χρησιµοποιείται για πολυµεσικές παρουσιάσεις που ενσωµατώνουν στη ροή ήχου και βίντεο εικόνες, κείµενο ή άλλους τύπους µέσων. Είναι εύκολη στη εκµάθηση και µοιάζει µε την HTML [15]. Μορφοποίηση µαθηµατικών τύπων και επιστηµονικών πληροφοριών στον Ιστό (MathML ή Mathematical Markup Language. Η MathML είναι µία χαµηλού επιπέδου προδιαγραφή για την περιγραφή των µαθηµατικών ως βάση για την επικοινωνία µεταξύ µηχανών. Αποτελεί βασικό θεµέλιο για την ενσωµάτωση και υψηλού επιπέδου παρουσίαση µαθηµατικών εκφράσεων σε ιστοσελίδες [16]. Επικοινωνία µεταξύ εφαρµογών στον Ιστό µε ανοιχτό και επεκτάσιµο τρόπο, χρησιµοποιώντας µηνύµατα που βασίζονται στην XML. Τα µηνύµατα αυτά είναι ανεξάρτητα από τα λειτουργικά συστήµατα, τα µοντέλα αντικειµένων και τις γλώσσες προγραµµατισµού που χρησιµοποιούνται (SOAP ή Simple Object Access Protocol. Ανταλλαγή χρηµατοπιστωτικών πληροφοριών. Οι πληροφορίες αυτές ανταλλάσσονται µε έναν ανοιχτό αναγνώσιµο τρόπο ανάµεσα σε χρηµατοπιστωτικά προγράµµατα (όπως το Quicken και το Microsoft Money και οργανισµούς, όπως τράπεζες και αµοιβαία κεφάλαια (OFX ή Open Financial Exchange. 27

28 ηµιουργία, διαχείριση και χρήση πολύπλοκων ψηφιακών φορµών για τις εµπορικές συναλλαγές µέσω Internet. Οι φόρµες µπορεί να περιλαµβάνουν ψηφιακές υπογραφές που τις κάνουν νοµικά δεσµευτικές (XFDL ή Extensible Forms Description Language. Αποθήκευση φωνητικών σεναρίων για µεταφορά τους µέσω τηλεφώνου. Φωνητικά σενάρια µπορούν για παράδειγµα να χρησιµοποιηθούν για την εκφώνηση οδηγιών φωνητικού ταχυδροµείου, αξιών µετοχών και δελτίων καιρού (VoxML. Ορισµός καναλιών. Τα κανάλια είναι ιστοσελίδες που προωθούνται (στέλνονται αυτόµατα σε συνδροµητές (CDF ή Channel Definition Format. Περιγραφή πακέτων λογισµικού και των αλληλεξαρτήσεών τους. Αυτές οι περιγραφές επιτρέπουν τη διανοµή και την αναβάθµιση λογισµικού µέσω δικτύων (OSD ή Open Software Description. Άλλες πρακτικές χρήσεις της XML είναι οι ακόλουθες: Ανταλλαγή περιγραφών θέσεων εργασίας και βιογραφικών σηµειωµάτων (HRMML ή Human Resource Management Markup Language. Περιγραφή µοριακών δοµών (CML ή Chemical Markup Language. Κωδικοποίηση και εµφάνιση πληροφοριών σχετικά µε ακολουθίες DNA, RNA και πρωτεϊνών (BSML ή Bioinformatic Sequence Markup Language. Κωδικοποίηση γενεαλογικών στοιχείων (GedML ή Genealogical Data Markup Language. 28

29 Ανταλλαγή πληροφοριών σχετικά µε την αστρονοµία (AML ή Astronomical Markup Language. Συγγραφή µουσικής παρτιτούρας (MusicML ή Music Markup Language. Αποστολή ηλεκτρονικών επαγγελµατικών καρτών µέσω ηλεκτρονικού ταχυδροµείου (Vcard. Αποθήκευση πληροφοριών εντοπισµού για υπηρεσίες courier. Η Federal Express, για παράδειγµα, χρησιµοποιεί την XML γι αυτόν το σκοπό. Υποβολή αγγελιών σε εφηµερίδες σε ψηφιακή µορφή (Ad Markup. Αρχειοθέτηση νοµικών εγγράφων και ανταλλαγή νοµικών πληροφοριών ηλεκτρονικά. (XCL ή XML Court Interface. Κωδικοποίηση δελτίων καιρού (OMF ή Weather Observation Markup Format. Ανταλλαγή πληροφοριών σχετικά µε συναλλαγές ακίνητης περιουσίας (RETS ή Real Estate Transaction Standard. Ανταλλαγή πληροφοριών σχετικά µε ασφάλειες. Ανταλλαγή ειδήσεων και πληροφοριών µε τη χρήση προτύπων Ιστού (XMLNews. Αναπαράσταση πληροφοριών θεολογικού περιεχοµένου και σήµανση εκκλησιαστικών κειµένων (ThML ή Theological Markup Language και LitML ή Liturgigal Markup Language. 29

30 30

31 ΚΕΦΑΛΑΙΟ 3 ιαχείριση XML εδοµένων 3.1 Εισαγωγή Η επιτυχία του ιαδικτύου (Internet εξαρτάται από τη διαθεσιµότητα των εφαρµογών που παρέχουν αξιόπιστες ηλεκτρονικές υπηρεσίες. Πάντα, όµως, οι εφαρµογές εξαρτώνται από τα δεδοµένα εισόδου και κυρίως από τη σωστή δοµή τους. Μέχρι τώρα, η αναπαράσταση και ανταλλαγή πληροφοριών στο Internet πραγµατοποιείται µέσω HTML σελίδων, χωρίς την ύπαρξη κάποιας εννοιολογικής δοµής που να χαρακτηρίζει τα δεδοµένα. Η γλώσσα XML είναι το τρέχον πρότυπο για την ανταλλαγή δοµηµένων και ηµιδοµηµένων πληροφοριών στο Internet [4]. Ωστόσο, η αποθήκευση και διαχείριση των πληροφοριών αυτών είναι εξίσου σηµαντική. Η ενσωµάτωση, ο διαµοιρασµός, η επαναχρησιµοποίηση και η επαύξηση των πληροφοριών, που συλλαµβάνονται από XML έγγραφα, είναι σηµαντικές διεργασίες για την κατασκευή µεγάλης κλίµακας εφαρµογών µε βιοµηχανική ισχύ. Η διαχείριση δεδοµένων ή πληροφοριών πραγµατοποιείται στις σηµερινές εφαρµογές από τα συστήµατα διαχείρισης βάσεων δεδοµένων (DataBase Management Systems - DBMSs. Πάνω από τρεις δεκαετίες έρευνας έχουν αφιερωθεί στην ανάπτυξη θεωριών και συστηµάτων για τη σύλληψη, αποθήκευση, διαχείριση και ανάκτηση δεδοµένων για έναν ή πολλούς χρήστες. Ένας τέτοιος όγκος έρευνας και ανάπτυξης θα πρέπει να επαναχρησιµοποιηθεί για τη διαχείριση ηµιδοµηµένων δεδοµένων, δηλαδή XML ή SGML δεδοµένων, µε την ελάχιστη δυνατή προσπάθεια. Υπάρχουν ήδη αρκετές προτάσεις για µεθοδολογίες αποθήκευσης, ανάκτησης και διαχείρισης ηµιδοµηµένων 31

32 δεδοµένων, που είναι αποθηκευµένα σε σχεσιακές, αντικειµενοστραφείς βάσεις δεδοµένων ή συνδυασµό και των δύο αυτών ειδών [1]. 3.2 Μέθοδοι ιαχείρισης XML εδοµένων Υπάρχουν δύο βασικές µέθοδοι για τη διαχείριση XML εγγράφων και τη διατύπωση ερωτήσεων προς τη βάση δεδοµένων. Η πρώτη µέθοδος χρησιµοποιεί µηχανές ερωτήσεων ειδικού σκοπού και συστήµατα αποθήκευσης ηµιδοµηµένων δεδοµένων [17, 18, 19, 20, 21]. Αυτά τα συστήµατα βάσεων δεδοµένων έχουν κατασκευαστεί ειδικά για την αποθήκευση XML εγγράφων και τη διατύπωση ερωτήσεων προς αυτά. Όµως, αυτή η προσέγγιση έχει δύο µειονεκτήµατα. Το πρώτο έχει να κάνει µε το γεγονός ότι τα απλά συστήµατα βάσεων XML δεδοµένων δεν έχουν τη δυνατότητα σύνθετης αποθήκευσης και διατύπωσης ερωτήσεων, που ήδη υποστηρίζονται από τα υπάρχοντα συστήµατα βάσεων δεδοµένων. Το δεύτερο µειονέκτηµα αφορά το ότι τα απλά συστήµατα βάσεων δεδοµένων δεν επιτρέπουν στους χρήστες να διατυπώνουν ερωτήσεις που δεν περιλαµβάνουν συνδέσεις XML εγγράφων µε άλλα δοµηµένα δεδοµένα αποθηκευµένα σε αυτές τις βάσεις δεδοµένων. Η δεύτερη µέθοδος διαχείρισης XML δεδοµένων αφορά τη σύλληψη και διαχείριση XML δεδοµένων µέσα σε υπάρχοντα µοντέλα είτε σχεσιακών [22, 23, 24, 25] είτε αντικειµενοστραφών [26, 27, 28, 29] είτε αντικειµενοσχεσιακών βάσεων δεδοµένων [30, 31]. Τα XML έγγραφα έχουν από τη φύση τους µια ιεραρχική δοµή που ταιριάζει καλύτερα στο αντικειµενοστραφές µοντέλο. Επίσης, οι αναφορές µεταξύ των εγγράφων ή µεταξύ στοιχείων στο εσωτερικό ενός εγγράφου, παίζουν σηµαντικό ρόλο και συνδυάζονται απόλυτα µε τα αντικείµενα σε ένα αντικειµενοστραφές µοντέλο. Αυτό το ταίριασµα µεταξύ του αντικειµενοστραφούς µοντέλου και του µοντέλου εγγράφων µπορεί κανείς να το συναντήσει σε έναν µεγάλο αριθµό προηγούµενων προσεγγίσεων για την αποθήκευση SGML πολυµεσικών εγγράφων σε αντικειµενοστραφείς βάσεις δεδοµένων [32, 33, 34]. 3.3 ιαχείριση XML εδοµένων µε Σχεσιακές Βάσεις εδοµένων Κατά την αναπαράσταση XML δεδοµένων µε σχέσεις, τα XML DTDs µετατρέπονται σε σχεσιακά σχήµατα (relational schemata. Τα σχεσιακά σχήµατα συνήθως προέρχονται από 32

33 ένα µοντέλο δεδοµένων όπως το γνωστό µοντέλο Οντότητας-Σχέσης (Entity-Relationship, E-R που χρησιµοποιείται στις βάσεις δεδοµένων. Η µετατροπή του E-R µοντέλου σε σχεσιακό σχήµα είναι ξεκάθαρη, γιατί υπάρχει ένας σαφής διαχωρισµός µεταξύ των οντοτήτων και των ιδιοτήτων τους. Κάθε οντότητα και οι ιδιότητές της αναπαριστώνται από µία σχέση. Σε ένα σχεσιακό σχήµα, µία σχέση απεικονίζει ένα στοιχείο του DTD και οι ιδιότητες (attributes της σχέσης απεικονίζουν τις ιδιότητες του στοιχείου. Ωστόσο, δεν υπάρχει αντιστοίχιση ανάµεσα στα στοιχεία (elements του DTD και τις οντότητες (entities του E-R µοντέλου, καθώς επίσης ανάµεσα στις ιδιότητες των στοιχείων του DTD και τις ιδιότητες των οντοτήτων του E-R µοντέλου. Πολλές φορές, οι ιδιότητες των οντοτήτων του E-R µοντέλου αναπαριστούν ακόµη και στοιχεία του DTD. Ένα παράδειγµα για την περίπτωση αυτή φαίνεται στο Σχήµα 3.1. <!ELEMENT BOOK (BOOKTITLE, AUTHOR> <!ELEMENT ARTICLE (TITLE, AUTHOR*, CONTACTAUTHOR?> <!ELEMENT CONTACTAUTHOR EMPTY> <!ATTLIST CONTACTAUTHOR AUTHORID IDREF #IMPLIED> <!ELEMENT MONOGRAPH (TITLE, AUTHOR, EDITOR> <!ELEMENT EDITOR (MONOGRAPH*> <!ATTLIST EDITOR NAME CDATA #REQUIRED> <!ELEMENT AUTHOR (NAME, ADDRESS> <!ATTLIST AUTHOR AUTHORid ID #REQUIRED> <!ELEMENT NAME (FIRSTNAME?, LASTNAME> <!ELEMENT FIRSTNAME (#PCDATA> <!ELEMENT LASTNAME (#PCDATA> <!ELEMENT ADDRESS ANY> Σχήµα 3.1: Παράδειγµα DTD Σε ένα E-R µοντέλο το στοιχείο AUTHOR του DTD θα ήταν µια οντότητα και τα στοιχεία FIRSTNAME, LASTNAME και ADDRESS θα ήταν οι ιδιότητες αυτής της οντότητας. Για το σχεδιασµό ενός DTD δεν υπάρχει κάποιος κανόνας που να λέει ότι η οντότητα AUTHOR θα αναπαρασταθεί από ένα στοιχείο και οι ιδιότητες FIRSTNAME, LASTNAME και ADDRESS της οντότητας από ιδιότητες του στοιχείου αυτού. Εποµένως, η απευθείας αναπαράσταση των στοιχείων σε σχέσεις µπορεί να οδηγήσει σε υπερβολική κατάτµηση (fragmentation του εγγράφου [25]. Όταν αναπαριστούµε XML δεδοµένα µε σχέσεις, προκύπτουν δύο βασικοί περιορισµοί. Ο πρώτος έγκειται στο ότι το σχεσιακό µοντέλο δεν υποστηρίζει ιδιότητες 33

34 πολλαπλών τιµών, µε αποτέλεσµα όταν ένα στοιχείο έχει ένα υποστοιχείο µε τις παραστάσεις πολλαπλής εµφάνισης '*', δηλαδή εµφάνιση του υποστοιχείου καµία ή περισσότερες φορές, ή '+', δηλαδή εµφάνιση του υποστοιχείου τουλάχιστον µία ή περισσότερες φορές, τότε το υποστοιχείο αναπαριστάται σε µια διαφορετική σχέση και η σχέση µεταξύ του στοιχείου και του υποστοιχείου αναπαριστάται µε χρήση ενός ξεχωριστού κλειδιού (foreign key. Η δηµιουργία ερωτήσεων και η ανακατασκευή XML εγγράφων απαιτούν τη χρήση πολλών SQL (Structured Query Language συνδέσεων (joins µεταξύ των σχέσεων ανάµεσα στο στοιχείο και το υποστοιχείο, που είναι χρονοβόρα. Από την άλλη πλευρά, οι αντικειµενοστραφείς βάσεις δεδοµένων υποστηρίζουν ιδιότητες πολλαπλών τιµών (σε λίστα. Με αυτό τον τρόπο, τα υποστοιχεία (ή καλύτερα οι αναφορές στα υποστοιχεία µπορούν να αποθηκευτούν µε το στοιχείογονέα και να ανακτηθούν µε έναν µη δαπανηρό τρόπο. Ο δεύτερος περιορισµός αφορά το ότι για την αναπαράσταση των συσχετίσεων µεταξύ στοιχείων-σχέσεων, πρέπει να δηµιουργηθούν χειρωνακτικά ιδιότητες συνδέσεων (join attributes. Από την άλλη µεριά, στις αντικειµενοστραφείς βάσεις δεδοµένων, οι σχέσεις µεταξύ στοιχείων-κλάσεων αναπαριστώνται στο σχήµα µε ιδιότητες αναφοράς αντικειµένου (δείκτες, οι οποίες χρησιµοποιούνται για την απάντηση ερωτήσεων που περιέχουν εκφράσεις µονοπατιού. Τέλος, ένα άλλο πρόβληµα είναι ότι οι σχέσεις αποτελούν σύνολα χωρίς κάποια σειρά µεταξύ των ιδιοτήτων τους ή των πλειάδων τους. Όµως, στα XML έγγραφα η σειρά των στοιχείων είναι σηµαντική, ειδικά όταν περιέχουν πληροφορίες κειµένου (π.χ. βιβλία, άρθρα, περιεχόµενα ιστοσελίδων. Βέβαια, υπάρχουν µερικές σχεσιακές προσεγγίσεις οι οποίες κρατούν επιπλέον πληροφορίες διάταξης, ώστε να είναι ικανές να ανακατασκευάσουν τα αρχικά XML έγγραφα. Ωστόσο, αυτές οι προσεγγίσεις προσθέτουν επιπλέον πολυπλοκότητα στο σχεσιακό σχήµα, στην επεξεργασία ερωτήσεων και στους αλγορίθµους ανακατασκευής XML εγγράφων [1]. 34

35 3.4 ν ιαχείριση XML εδοµένων µε Αντικειµενοστραφείς Βάσεις εδοµένων Οι προσεγγίσεις για την αποθήκευση XML δεδοµένων και τη διατύπωση ερωτήσεων σε αντικειµενοστραφείς βάσεις δεδοµένων χειρίζονται συνήθως τους τύπους των στοιχείων ως κλάσεις και τα στοιχεία ως αντικείµενα. Οι ιδιότητες (attributes των στοιχείων χειρίζονται ως ιδιότητες κειµένου, ενώ οι σχέσεις µεταξύ των στοιχείων και των παιδιών τους χειρίζονται ως ιδιότητες αναφοράς των αντικειµένων. Υπάρχουν πολλές παραλλαγές του σχήµατος αυτού µεταξύ των διαφόρων προσεγγίσεων. Για παράδειγµα, σε µερικές περιπτώσεις [32, 29] όλα τα στοιχεία χειρίζονται ως αντικείµενα, ακόµη κι όταν το περιεχόµενό τους είναι PCDATA, δηλαδή αλφαριθµητικά. Ωστόσο, µια τέτοια αναπαράσταση απαιτεί πολλές κλάσεις και αντικείµενα, το οποίο οδηγεί σε σπατάλη χώρου και µείωση απόδοσης, επειδή οι ερωτήσεις πρέπει να προσπελάσουν πολύ περισσότερα αντικείµενα από όσα πραγµατικά χρειάζεται. Σε άλλες περιπτώσεις [27, 1], το πρόβληµα αυτό αντιµετωπίζεται µε την αναπαράσταση των στοιχείων περιεχοµένου PCDATA µε ιδιότητες κειµένου. Επιπρόσθετα, µερικές άλλες προσεγγίσεις [35, 30, 34] προχωρούν παραπέρα, χειριζόµενες µερικά στοιχεία µε µία εσωτερική δοµή ως ιδιότητες κειµένου. Η εσωτερική δοµή αυτών των στοιχείων µπορεί να προσπελασθεί µέσω ειδικών µεθόδων επεξεργασίας κειµένου ικανών να χειριστούν XML δεδοµένα. Η απόφαση για το ποια στοιχεία πρέπει να χειριστούν ως κλάσεις ή ιδιότητες κειµένου είτε αφήνεται στο σχεδιαστή της βάσης δεδοµένων [35, 34] είτε µπορεί να παρθεί ευριστικά βάσει της συχνότητας χρήσης των δεδοµένων και των στατιστικών των ερωτήσεων [30]. Αυτή η προσέγγιση µπορεί µερικές φορές να αποδειχθεί περισσότερο αποτελεσµατική όσον αφορά τις απαιτήσεις σε χώρο αποθήκευσης, και γρηγορότερη όσον αφορά την επεξεργασία ερωτήσεων, λόγω της µικρότερης κατάτµησης των στοιχείων, όµως, η επεξεργασία ερωτήσεων είναι πιο σύνθετη, διότι πρέπει να χρησιµοποιηθούν διαφορετικές µέθοδοι προσπέλασης για διάφορα τµήµατα των ίδιων εκφράσεων µονοπατιού (path expressions. Επιπλέον, η υλοποίηση απαιτεί την επέκταση της ίδιας της αντικειµενοστραφούς βάσης δεδοµένων, για να χειριστεί τέτοιες ιδιότητες κειµένου XML και πιθανώς την επέκταση της βασικής αντικειµενοστραφούς γλώσσας ερωτήσεων, ώστε να είναι ενήµερη για αυτές τις ιδιότητες. 35

36 Η τεχνική της παρεµβολής (inlining, που αναφέρθηκε στην προηγούµενη ενότητα [25], για σχεσιακές βάσεις δεδοµένων, χρησιµοποιείται για την αποφυγή δηµιουργίας πολλών κλάσεων στο σχήµα. Παρόλα αυτά, η αιτιολόγηση για τη χρήση αυτής της τεχνικής στηρίζεται στο γεγονός ότι µειώνει τον αριθµό των πινάκων και των συνδέσεων µεταξύ τους, ενώ στις αντικεµενοστρεφείς βάσεις δεδοµένων δεν υπάρχουν συνδέσεις και εποµένως δεν υπάρχει λόγος χρήσης της τεχνικής inlining στις βάσεις αυτές. Επιπλέον, η ανάλυση των εκφράσεων µονοπατιού γίνεται σύνθετη, καθώς µερικά τµήµατα του µονοπατιού αποτελούνται από απλά ονόµατα ιδιοτήτων, ενώ κάποια άλλα αποτελούνται από τµήµατα µονοπατιού που παρεµβάλλονται ως µία απλή ιδιότητα σε µία µεγαλύτερη κύρια κλάση [1]. Το Αντικειµενοστραφές Μοντέλο Αναπαράστασης XML εδοµένων του X-DEVICE Το X-DEVICE είναι ένα συµπερασµατικό αντικεινοστραφές µοντέλο βάσης δεδοµένων για τη διαχείριση XML δεδοµένων. Αποτελεί µία επέκταση του υπάρχοντος αντικειµενοστραφούς συστήµατος γνώσης DEVICE [2]. Το DEVICE ενσωµατώνει δηλωτικούς κανόνες υψηλού επιπέδου (δηλαδή συµπερασµατικούς κανόνες και κανόνες παραγωγής µέσα σε µία ενεργή αντικειµενοστραφή βάση δεδοµένων, η οποία υποστηρίζει µόνο κανόνες οδηγούµενους από γεγονότα (event-driven rules [36]. To X-DEVICE επεκτείνει το σύστηµα DEVICE ενσωµατώνοντας XML δεδοµένα µέσα σε µία αντικειµενοστραφή βάση δεδοµένων, µε την αυτόµατη αναπαράσταση των DTDs των XML εγγράφων σε αντικειµενικά σχήµατα (object schemata, χωρίς να χάνεται η αρχική σειρά των στοιχείων του εγγράφου. Ο ορισµός του DTD (DTD definition µεταφράζεται σε ένα αντικειµενοστραφές σχήµα που περιλαµβάνει κλάσεις (classes και ιδιότητες (attributes, ενώ τα XML δεδοµένα µεταφράζονται σε αντικείµενα (objects της αντικειµενοστραφούς βάσης δεδοµένων. Σηµειώνεται ότι όταν ένα XML έγγραφο δε συνοδεύεται από το DTD του, τότε µπορούµε να υποθέσουµε ότι ένας εµπορικός XML συντάκτης (editor µπορεί να παράγει το DTD αυτό. Το σύστηµα X-DEVICE αναπαριστά ένα υποσύνολο των τύπων κόµβων (node types του µοντέλου, δηλαδή κόµβων εγγράφου, στοιχείου, τιµών, ιδιοτήτων και αναφορών 36

37 κόµβων. Η αναπαράσταση ενός DTD µε ένα αντικειµενοστραφές µοντέλο δεδοµένων πραγµατοποιείται ως εξής: o Ο τύπος κόµβου εγγράφου (document node αναπαριστάται µε µία κλάση xml_doc και κάθε κόµβος εγγράφου είναι ένα στιγµιότυπο αυτής της κλάσης. o Οι κόµβοι στοιχείου (element nodes αναπαριστώνται είτε µε ιδιότητες αντικειµένου είτε µε κλάσεις. Πιο συγκεκριµένα: Αν ένας κόµβος στοιχείου έχει περιεχόµενο PCDATA (χωρίς ιδιότητες, αναπαριστάται µε µια ιδιότητα της κλάσης του κόµβου στοιχείου-γονέα. Το όνοµα αυτής της ιδιότητας είναι ίδιο µε το όνοµα του στοιχείου και ο τύπος της είναι αλφαριθµητικό (string. Αν ένας κόµβος στοιχείου έχει είτε κόµβους στοιχείων-παιδιών είτε κόµβους ιδιοτήτων, αναπαριστάται µε µία κλάση, η οποία είναι στιγµιότυπο της µετα-κλάσης xml_seq. Οι ιδιότητες της κλάσης περιλαµβάνουν και τις ιδιότητες του στοιχείου και τους κόµβους στοιχείων-παιδιών. o Οι κόµβοι τιµών (value nodes αναπαριστώνται µε τις τιµές των ιδιοτήτων των αντικειµένων. o Οι κόµβοι ιδιοτήτων (attribute nodes αναπαριστώνται µε τις ιδιότητες των αντικειµένων. Οι ιδιότητες διαχωρίζονται από τα στοιχεία-παιδιά µέσω της µεταιδιότητας att_lst. o Οι αναφορές κόµβων (node references αναπαριστώνται ως αναφορές αντικειµένων. Tο Σχήµα 3.4 δείχνει ένα XML έγγραφο που αντιστοιχεί στο DTD που απεικονίζεται στο Σχήµα 3.2. Το Σχήµα 3.5 δείχνει πώς το έγγραφο αναπαριστάται µε ένα σύνολο αντικειµένων, ενώ το Σχήµα 3.3 δείχνει το σχήµα των κλάσεων (class schema. Τα στοιχεία σε ένα DTD µπορούν να συνδυαστούν είτε µε διαδοχή (sequencing είτε µε εναλλαγή (alternation. ιαδοχή σηµαίνει ότι ένα συγκεκριµένο στοιχείο πρέπει να περιέχει όλα τα καθορισµένα στοιχεία-παιδιά του µε µία συγκεκριµένη σειρά. Αυτό επιτυγχάνεται µε την ύπαρξη πολλαπλών ιδιοτήτων στην κλάση που αναπαριστά το στοιχείο-γονέα, όπου κάθε ιδιότητα αντιστοιχεί σε κάθε στοιχείο-παιδί της διαδοχής. Η σειρά επιτυγχάνεται µε µία τεχνική εκτός του βασικού αντικειµενοστραφούς µοντέλου 37

38 βάσεων δεδοµένων, µε την εισαγωγή µιας µετα-ιδιότητας (meta-attribute, της elem_ord, που καθορίζει τη σωστή σειρά των στοιχείων-παιδιών. Αυτή η µετα-ιδιότητα χρησιµοποιείται όταν το αρχικό XML έγγραφο (είτε ολόκληρο είτε ένα µέρος αυτού ανακατασκευάζεται και επιστρέφεται στο χρήστη. Από την άλλη πλευρά, εναλλαγή σηµαίνει ότι οποιοδήποτε από τα καθορισµένα στοιχεία-παιδιά µπορεί να περιληφθεί στο στοιχείο-γονέα. Η εναλλαγή επίσης επιτυγχάνεται µε µία τεχνική εκτός του βασικού αντικειµενοστραφούς µοντέλου βάσεων δεδοµένων, µε τη δηµιουργία µιας νέας κλάσης για κάθε εναλλαγή των στοιχείων, η οποία είναι ένα στιγµιότυπο (instance της µετα-κλάσης xml_alt και παίρνει ένα µοναδικό όνοµα που παράγεται από το σύστηµα. Οι ιδιότητες αυτής της κλάσης καθορίζονται από τα στοιχεία που παίρνουν µέρος στην εναλλαγή. Οι τύποι των ιδιοτήτων καθορίζονται όπως και στην περίπτωση της διαδοχής. Η δοµή µιας κλάσης εναλλαγής µπορεί να µοιάζει µε µία κλάση διαδοχής, όµως η συµπεριφορά των αντικειµένων εναλλαγής είναι διαφορετική, γιατί πρέπει να έχουν ακριβώς µία τιµή για καθεµία από τις ιδιότητες που καθορίζονται στην κλάση (Σχήµα 3.5. <!ELEMENT BOOK (TITLE, AUTHOR+, SECTION+> <!ELEMENT TITLE (#PCDATA> <!ELEMENT AUTHOR (#PCDATA> <!ELEMENT SECTION (TITLE, (P FIGURE SECTION*> <!ATTLIST SECTION id ID #IMPLIED difficulty CDATA #IMPLIED> <!ELEMENT P (#PCDATA> <!ELEMENT FIGURE (TITLE, IMAGE> <!ATTLIST FIGURE width CDATA #REQUIRED height CDATA #REQUIRED> <!ELEMENT IMAGE EMPTY> <!ATTLIST IMAGE source CDATA #REQUIRED> Σχήµα 3.2: Παράδειγµα DTD xml_seq BOOK attributes TITLE AUTHOR SECTION meta_attributes elem_ord (string, single, mandatory (string, list, mandatory (SECTION, list, mandatory [TITLE, AUTHOR, SECTION] xml_seq SECTION attributes TITLE section_alt1 (string, single, mandatory (section_alt1, list, optional 38

39 id (string, single, optional difficulty (string, single, optional meta_attributes elem_ord [TITLE, section_alt1] att_lst [id, difficulty] alias [P-section_alt1,FIGURE-section_alt1, SECTION-section_alt1] xml_alt section_alt1 attributes P FIGURE SECTION (string, single, optional (FIGURE, single, optional (SECTION, single, optional xml_seq FIGURE attributes TITLE IMAGE width height meta_attributes elem_ord att_lst (string, single, mandatory (IMAGE, single, mandatory (string, single, mandatory (string, single, mandatory [TITLE, IMAGE] [width, height] xml_seq IMAGE attributes source meta_attributes att_lst (string, single, mandatory [source] Σχήµα 3.3: Το σχήµα των κλάσεων που αντιστοιχεί στο DTD που απεικονίζεται στο Σχήµα 3.2 Η κλάση εναλλαγής εµφωλεύεται πάντα σε ένα στοιχείο-γονέα. Η κλάση του στοιχείου-γονέα έχει µία ιδιότητα µε το όνοµα της κλάσης εναλλαγής, το οποίο παράγεται από το σύστηµα, και η οποία πρέπει να είναι αδιαφανής στο χρήστη για τη διατύπωση ερωτήσεων σχετικών µε την κλάση. Έτσι, παρέχεται µία µετα-ιδιότητα (alias µαζί µε τα ψευδώνυµα (aliases της ιδιότητας αυτής, π.χ. τα ονόµατα των ιδιοτήτων της κλάσης εναλλαγής. Τα στοιχεία µικτού περιεχοµένου αντιµετωπίζονται παρόµοια µε τα στοιχεία εναλλαγής. Η µοναδική διαφορά είναι ότι ένα από τα εναλλακτικά στοιχεία-παιδιά µπορεί επίσης να είναι απλό κείµενο (PCDATA, το οποίο επιτυγχάνεται µε τη δηµιουργία µιας ιδιότητας αλφαριθµητικού (string της κλάσης εναλλαγής µε το όνοµα content. Ένα άλλο θέµα που πρέπει να διευθετηθεί είναι η απεικόνιση της εµφάνισης τελεστών για τα στοιχεία, τις διαδοχές και τις εναλλαγές. Πιο συγκεκριµένα, οι τελεστές αυτοί αντιµετωπίζονται ως εξής: 39

40 Το σύµβολο '*' µετά από ένα στοιχείο-παιδί προκαλεί τη δήλωση της αντίστοιχης ιδιότητας της κλάσης του στοιχείου-γονέα ως προαιρετικής (optional και πολλαπλών τιµών ιδιότητας (multi-valued. To σύµβολο '+' µετά από ένα στοιχείο-παιδί προκαλεί τη δήλωση της αντίστοιχης ιδιότητας της κλάσης του στοιχείου-γονέα ως υποχρεωτικής (mandatory και πολλαπλών τιµών ιδιότητας (multi-valued. Το σύµβολο '?' µετά από ένα στοιχείο-παιδί προκαλεί τη δήλωση της αντίστοιχης ιδιότητας της κλάσης του στοιχείου-γονέα ως προαιρετικής (optional και µονότιµης ιδιότητας (single-valued. Τέλος, η απουσία οποιουδήποτε συµβόλου σηµαίνει ότι η αντίστοιχη ιδιότητα πρέπει να δηλωθεί ως υποχρεωτική (mandatory και µονότιµη ιδιότητα (singlevalued. Η σειρά των εµφανίσεων των στοιχείων-παιδιών είναι σηµαντική για τα XML έγγραφα, οπότε οι πολλαπλών τιµών ιδιότητες υλοποιούνται ως λίστες και όχι ως σύνολα. Ο συνδυασµός των τελεστών και των εµφωλευµένων διαδοχών των στοιχείωνπαιδιών απαιτεί ειδικό χειρισµό. Για παράδειγµα, θεωρούµε την παρακάτω δήλωση DTD: εµφανιστεί πολλές φορές µέσα στο στοιχείο a. Όµως, η δοµή µιας κλάσης πρέπει να είναι πεπερασµένη. Αυτή η περίπτωση αντιµετωπίζεται από µια κλάση διαδοχής, παραγόµενη από το σύστηµα, η οποία περιλαµβάνει τα εµφωλευµένα στοιχεία c και d. To µοναδικό όνοµα αυτής της κλάσης είναι επίσης και όνοµα της ιδιότητας της κλάσης του παιδιού-γονέα. Τέλος, υπάρχει µία µετα-ιδιότητα µε τα ψευδώνυµα για το όνοµα της κλάσης αυτής, όπως συµβαίνει και στην περίπτωση των εµφωλευµένων στοιχείων-παιδιών εναλλαγής. Τα κενά στοιχεία (empty elements αντιµετωπίζονται ανάλογα µε την εσωτερική τους δοµή. Αν ένα κενό στοιχείο δεν έχει ιδιότητες, τότε αντιµετωπίζεται ως ένα στοιχείο PCDATA, δηλαδή απεικονίζεται µε µία ιδιότητα αλφαριθµητικού της κλάσης του στοιχείου-γονέα. Η µοναδική τιµή που µπορεί να πάρει η ιδιότητα αυτή είναι yes, αν υπάρχει το κενό στοιχείο. Αν δεν υπάρχει το κενό στοιχείο, τότε η αντίστοιχη ιδιότητα δεν έχει τιµή. Από την άλλη πλευρά, αν ένα κενό στοιχείο έχει ιδιότητες, τότε αναπαριστάται µε µία κλάση [1]. 40

41 <bib> <BOOK YEAR="1994"> <TITLE>TCP/IP Illustrated</TITLE> <AUTHOR> <LAST>Stevens</LAST><FIRST>W.</FIRST> </AUTHOR> <PUBLISHER>Addison-Wesley</PUBLISHER> <PRICE>65.95</PRICE> </BOOK> <BOOK YEAR="2000"> <TITLE>Data on the Web</TITLE> <AUTHOR> <LAST>Abiteboul</LAST><FIRST>Serge</FIRST> </AUTHOR> <AUTHOR> <LAST>Buneman</LAST><FIRST>Peter</FIRST> </AUTHOR> <AUTHOR> <LAST>Suciu</LAST><FIRST>Dan</FIRST> </AUTHOR> <PUBLISHER>Morgan Kaufmann Publishers</PUBLISHER> <PRICE>39.95</PRICE> </BOOK> <BOOK YEAR="1999"> <TITLE>The Economics of Technology and Content for Digital TV</TITLE> <EDITOR> <LAST>Gerbarg</LAST><FIRST>Darcy</FIRST> <AFFILIATION>CITI</AFFILIATION> </EDITOR> <PUBLISHER>Kluwer Academic Publishers</PUBLISHER> <PRICE>129.95</PRICE> </BOOK> </bib> Σχήµα 3.4: Ένα δείγµα XML εγγράφου που αντιστοιχεί στο DTD που απεικονίζεται στο Σχήµα

42 object instance attributes ΒΟΟΚ 1#bib bib [2#BOOK, 3#BOOK, 4#BOOK] object 2#BOOK instance BOOK attributes YEAR 1994 TITLE TCP/IP Illustrated book_alt1 [5#book_alt1] PUBLISHER Addison-Wesley PRICE object 3#BOOK instance BOOK attributes YEAR 2000 TITLE Data on the Web book_alt1 [6#book_alt1, 7#book_alt1, 8#book_alt1] PUBLISHER Morgan Kaufmann Publishers PRICE object 4#BOOK instance BOOK attributes YEAR 1999 TITLE The Economics of Technology and Content for Digital TV book_alt1 [9#book_alt1] PUBLISHER Kluwer Academic Publishers PRICE object 10#AUTHOR object 5#book_alt1 instance AUTHOR instance book_alt1 attributes attributes LAST Stevens AUTHOR 10#AUTHOR FIRST W. EDITOR ø object 11#AUTHOR object 6#book_alt1 instance AUTHOR instance book_alt1 attributes attributes LAST Abiteboul AUTHOR 11#AUTHOR FIRST Serge EDITOR ø object instance attributes AUTHOR EDITOR object instance attributes AUTHOR EDITOR 7#book_alt1 book_alt1 12#AUTHOR ø 8#book_alt1 book_alt1 13#AUTHOR ø object instance attributes LAST FIRST object instance attributes LAST FIRST 12#AUTHOR AUTHOR Buneman Peter 13#AUTHOR AUTHOR Suciu Dan object 14#EDITOR object 9#book_alt1 instance EDITOR instance book_alt1 attributes attributes LAST Gerbarg AUTHOR ø FIRST Darcy EDITOR 14#EDITOR AFFILIATION CITI Σχήµα 3.5: Αναπαράσταση του XML εγγράφου που απεικονίζεται στο Σχήµα 3.4 µε ένα σύνολο αντικειµένων, σύµφωνα µε το X-DEVICE 42

43 3.5 Ερωτήσεις σε έγγραφα XML, χρησιµοποιώντας γλώσσες βασισµένες στη λογική Η λογική έχει χρησιµοποιηθεί για ερωτήσεις προς ηµι-δοµηµένα έγγραφα, στα συστήµατα: WebLog [37] για έγγραφα HTML, F-Logic/FLORID και XPathLog/LoPix [38] για δεδοµένα XML. Όλες αυτές οι γλώσσες έχουν συντακτικό το οποίο επηρεάζεται από την F- Logic, ένα µοντέλο δεδοµένων βασισµένο σε γράφους και εκτέλεση από κάτω προς τα πάνω (bottom-up, όµοια µε το X-Device. Καµία από αυτές όµως, δεν υποστηρίζει γενικευµένες εκφράσεις µονοπατιού (generalized path expressions, εναλλαγή στοιχείων και άρνηση, χαρακτηριστικά που προσφέρονται από το X-DEVICE. Επιπλέον, το X- Device προσφέρει σταδιακή συντήρηση υλοποιηµένων όψεων (incremental materialized view maintenance όταν ανανεώνονται τα βασικά δεδοµένα XML Η γλώσσα WebLog Η WebLog είναι µια συµπερασµατική γλώσσα ερωτήσεων για το Web, όµοια µε την DATA LOG, που βασίζεται σε γράφους. Παρόλο που η σύνταξη της µοιάζει µε την F- Logic, δεν είναι πλήρως αντικειµενοστραφής όπως αυτή. Η πλοήγηση στους υπερσυνδέσµους παρέχεται από ενσωµατωµένα κατηγορήµατα, αλλά η πλοήγηση µε τη µορφή εκφράσεων µονοπατιών δεν υποστηρίζεται. Επιπλέον, δεν υπάρχει η δυνατότητα έκφρασης γενικευµένων µονοπατιών (generalized path expressions. Απεναντίας, υπάρχουν αναδροµικοί κανόνες που µοιάζουν µε DATALOG, οι οποίοι αντικαθιστούν τις κανονικές εκφράσεις (regular expressions οι οποίες σχετίζονται µε ιδιότητες,µεταβλητές ιδιοτήτων και µεταβλητές µονοπατιών. Το X-DEVICE προσφέρει κανονικές εκφράσεις µονοπατιών και εκφράσεις γενικευµένων µονοπατιών, δηλαδή εκφράσεις µονοπατιών µε άγνωστο αριθµό και ονόµατα ενδιάµεσων βηµάτων [1] Οι γλωσσες F-Logic/XPathLog H F-Logic και ο διάδοχος της XPathLog είναι γλώσσες βασισµένες στη λογική για δηµιουργία ερωτήσεων σε ηµι-δοµηµένα δεδοµένα. Η σηµασιολογία τους ορίζεται από υπολογισµό από κάτω προς τα πάνω (bottom-up, όµοια µε το X-DEVICE, η άρνηση όµως δεν έχει υλοποιηθεί. Και οι δυο γλώσσες µπορούν να προσφέρουν πολλαπλές όψεις (view σε δεδοµένα XML. η XPath-Log επιπλέον µπορεί να εξάγει την όψη στη µορφή ενός 43

44 έγγραφου XML, όπως το X-DEVICE. Παρ ολα αυτά, καµία από τις γλώσσες δεν προσφέρει σταδιακή συντήρηση των υλοποιηµένων όψεων όταν ανανεώνονται τα βασικά δεδοµένα XML, όπως το X-DEVICE. Η F-Logic και η XPathLog βασίζονται σε ένα µοντέλο γράφου δεδοµένων, το οποίο µπορεί να θεωρηθεί σαν ένα αντικειµενοστραφές µοντέλο δεδοµένων χωρίς σχήµα. Ωστόσο, η εναλλαγή των στοιχείων δεν υποστηρίζεται. Επιπλέον, η F-Logic δεν διατηρεί τη σειρά των στοιχείων XML. Και οι δυο γλώσσες υποστηρίζουν εκφράσεις µονοπατιών και µεταβλητές. Η XPathLog [39] βασίζεται στο συντακτικό της γλώσσας XPath. Το κύριο πλεονέκτηµα και των δυο γλωσσών είναι ότι, όµοια µε το X-DEVICE, µπορούν να έχουν µεταβλητές στη θέση στοιχείων ή ονοµάτων χαρακτηριστικών, επιτρέποντας στο χρηστή να κάνει ερωτήσεις χωρίς να έχει ακριβή γνώση της δοµής του XML έγγραφου. Εν τούτοις, καµία γλώσσα δεν υποστηρίζει τις γενικευµένες εκφράσεις µονοπατιών που υποστηρίζει το X- DEVICE, γεγονός που περιορίζει τη χρησιµότητα τους ως γλώσσες ερωτήσεων σε ηµιδοµηµένα δεδοµένα. Ένα αξιοσηµείωτο χαρακτηριστικό και των δυο γλωσσών είναι ότι αναλύουν τις ιδιότητες IDREF, συνδέοντας τα µε τις OIDs των στοιχείων-αντικειµένων που περιέχουν τις ισοδύναµες τιµές ID. Η υλοποίηση ενός τέτοιου χαρακτηριστικού απαιτεί αυστηρή τήρηση των δεδοµένων στη δοµή του έγγραφου, ένα χαρακτηριστικό που δεν έχουν τα DTDs, αλλά που θα υποστηρίζει η XML Schema. Η υλοποίηση αυτού του χαρακτηριστικού µόνο µε πληροφορίες δόµησης DTD απαιτεί επιπλέον αλγόριθµους που είναι έξω από την εµβέλεια της βασικής απεικόνισης ανάµεσα στο µοντέλο XML και στο αντικειµενοστραφές µοντέλο. Ωστόσο, αυτό το χαρακτηριστικό µπορεί εύκολα να υλοποιηθεί στο X-DEVICE, όπως και έγινε στα πλαίσια της παρούσας διπλωµατικής εργασίας. Τέλος, η XPathLog επιτρέπει το δηλωτικό ορισµό ανανεώσεων (updates σε XML δεδοµένα, ένα χαρακτηριστικό που έτσι και αλλιώς υπάρχει στο X-DEVICE αφού η βασική γλώσσα κανόνων υποστηρίζει πολλαπλούς τύπους κανόνων, όπως κανόνες παραγωγής, συµπερασµατικούς κανόνες, κανόνες βασισµένους σε γεγονότα και κανόνες για παραγόµενα και αθροιστικά χαρακτηριστικά (derived and aggregated attributes. Συγκεκριµένα, αφού τα δεδοµένα XML είναι ενσωµατωµένα στο αντικειµενοστραφές 44

45 µοντέλο δεδοµένων, οι διάφορες λειτουργίες για αντικείµενα, στη βάση δεδοµένων εφαρµόζονται άµεσα και στα δεδοµένα XML. Επιπλέον, µπορούν να υποστηριχτούν νέες λειτουργίες προσαρµοσµένες στη δενδρική φύση της XML. Στη συνεχεια παρουσιαζεται η γλωσσα XPathLog µεσα απο µια σειρα παραδειγµατων αυξανοµενης πολυπλοκοτητας.το προτο παραδειγµα αφορα την απλη γλωσσα XPath [1]. Παραδειγµα 1 (Xpath Έστω το παρακάτω απόσπασµα από τη βάση δεδοµένων Mondial <!ELEMENT mondial (country+, organization +,... > <!ELEMENT country (name, city+,... > <!ATTLIST country car.code ID #REQUIRED capital IDREFS #REQUIRED memberships IDREFS #IMPLIED > <!ELEMENT name (#PCDATA> <!ELEMENT city (name, population*> <!ATTLIST city... > <!ELEMENT population (#PCDATA> <!ATTLIST population year CDATA #IMPLIED> <!ELEMENT organization (name, abbrev, members*> <!ATTLIST organization id ID #REQUIRED seat IDREF #IMPLIED > <!ELEMENT abbrev (#PCDATA> <!ELEMENT members EMPTY> <!ATTLIST members type > CDATA #REQUIRED country IDREFS #REQUIRED <country car_code= "CH" capital= "cty-bern" memberships="org-efta org-un... " > <name>switzerland</name> <city id= "cty-bern" name="bern"> <population year="91">134393</population>... </city>.. </country> <organization id="org-un" seat="cty-usa-newyork" > <name>united Nations</name> <abbrev>un</abbrev> <members type= "member" country= "F E A CZ D..."/> </organization> 45

46 Η XPath έκφραση επιστρέφει τα ονόµατα των πόλεων, τέτοιων ώστε να ανήκουν σε µια χώρα (δηλαδή είναι υποστοιχείο στην οποία υπάρχει µια ιδιότητα car-code και ο πληθυσµός της πόλης είναι µεγαλύτερος από Η XPath είναι µόνο ένας µηχανισµός διευθυνσιοδότησης, και δεν είναι µια πλήρης γλώσσα ερωτήσεων όπως η SQL. Παρέχει την βάση για τις περισσότερες γλώσσες ερωτήσεων XML, οι οποίες την επεκτείνουν η καθε µι αµε το δικο της τροπο. Για την XPathLog οι επεκτάσεις είναι µεταβλητές, ενώσεις και κανόνες όπως στην Datalog. Προσθέτοντας µεταβλητές στην XPath Στην XPathLog, tο συντακτικό της XPath επεκτείνεται µε την έννοια των µεταβλητών του στυλ της Datalog. Αντί για ένα σύνολο αποτελεσµάτων, για κάθε αντιστοίχιση (match, επιστρέφεται µια οµάδα από µεταβλητές η οποία µπορεί να χρησιµοποιηθεί στη κεφαλή του κανόνα. Οι µεταβλητές παίρνουν τιµές από τα ονόµατα που προκύπτουν από τη σχετική αντιστοίχιση. Εκφράσεις αναφορών - Μια έκφραση αναφοράς της XPathLog είναι ένα απόλυτο µονοπάτι της XPath, όπου η σύνταξη της XPath επεκτείνεται ως εξής: Στα βήµατα (steps της XPath-Logic, το axis::nodetest µπορεί να αντικατασταθεί από το axis::nodetest V, axis::v ή axis::v W όπου V και W είναι µεταβλητές: Step::=AxisSpec NodeTest Pred* AxisSpec NodeTest Var Pred* AxisSpec Var Pred* AxisSpec Var Var Pred* - Τα LocationPaths της XPath-Logic µπορεί να ξεκινούν µε σταθερές ή µεταβλητές: 46

47 ConstantLocationPath ::= constant / RelativeLocationPath variable / RelativeLocationPath Παράδειγµα 2 (Εκφράσεις Αναφορών Απλές εκφρασεις Xpath Οι απλές εκφρασεις XPath (δηλαδή χωρίς µεταβλητές, είναι ερωτήσεις οι οποίες επιστρέφουν true αν το σύνολο αποτελεσµάτων δεν είναι άδειο:?- //country[name/text(= Germany ]//city/name. true Η παραπάνω έκφραση επιστρέφει true αφού το στοιχείο country το οποίο έχει ένα υποστοιχείο name, του οποίου το περιεχόµενο είναι Germany, περιέχει τουλάχιστον ένα απόγονο city µε υποστοιχειο name. Σύνολο αποτελεσµάτων εξόδου Η ερώτηση?- xpath N για οποιοδήποτε xpath, συνδέει τη µεταβλητή N σε όλους τους κόµβους που ανήκουν στο σύνολο αποτελεσµάτων της xpath. Για ένα σύνολο αποτελεσµάτων που αποτελείται από στοιχεία, επιστρέφονται λογικά ids:?- //country[name/text(= Germany ]//city C. C/berlin <! το berlin και freiburg είναι αναφορές στους αντιστοίχους C/freiburg κόµβους του τύπου city στη βάση δεδοµένων XML -- > Επιπρόσθετες µεταβλητές Η XPathLog επιτρέπει τη σύνδεση όλων των κόµβων που προκύπτουν από µια έκφραση. Η παρακάτω έκφραση επιστρέφει oλες τις οµάδες (N1,C, N2 έτσι ώστε η πόλη µε όνοµα N2 να ανήκει στην χώρα µε όνοµα N1 και car-code C:?- // country[name/text( N1 C]//city/name/text( N2. 47

48 N2/ Berlin N2/ Freiburg C/ D N1/ Germany C/ D N1/ Germany Dereferencing Παρακάτω φαίνεται η έκφραση που επιστρέφει για όλους τους οργανισµούς το όνοµα της πόλης στην οποία εδράζουν και όλα τα ονόµατα και τους τύπους των µελών. Η επιστροφή του ονόµατος αωαφοράς γίνεται έµµεσα από εκφράσεις µονοπατιών (path expressions που συµπεριλαµβάνουν αναφορές ιδιοτήτων. Εδώ, το organization/@seat οδηγεί στο στοιχείο city το id του οποίου ισούται µε την τιµή της ιδιότητας seat του οργανισµού:?- //organization[abbrev/text( A S] /members[@type T]/@country/name/text( N. Ένα στοιχείο του συνόλου της απάντησης είναι π.χ: A/ UN S/ New York T/ member N/ Germany Μεταβλητές πλοήγησης Για να βρούµε τα στοιχεία που έχουν υποστοιχείο name µε τιµή Monaco και τον τύπο τους, χρησιµοποιούµε την ακόλουθη έκφραση:?- //Type X[name/text( Monaco ]. Type/country X/country-monaco Type/city X/city-monaco οµικές ερωτήσεις Η χρήση των µεταβλητών στην θέση ονοµάτων, επιτρέπει ακόµα ερωτήσεις σε σχέση µε τη δοµή (schema του εγγραφου XML π.χ. για να πάρουµε όλα τα ονόµατα των υποστοιχείων των στοιχείων του τύπου city: 48

49 ?- //city/n. N/name N/Population Οι ερωτήσεις σε σχέση µε τη δοµή µπορούν να χρησιµοποιηθούν για την εγκυροποίηση ενός XML εγγράφου [40] Η Σχεδιαση της RuleML Εισαγωγή Αρχικά ο Παγκόσµιος Ιστός επέτρεψε τη κατανεµηµένη ανάπτυξη, χρήση και συντήρηση µη-επίσηµων εγγράφων βασισµένων σε HTML. Ο Σηµασιολογικός Ιστός τώρα προσπαθεί να χρησιµοποιήσει την ίδια υποδοµή για τυπικές προδιαγραφές και προγράµµατα. Εκτός από τις λογικές περιγραφές των πληροφοριών, ο λογικός προγραµµατισµός έχει τη δυνατότητα να χρησιµεύσει ως ένα οµοιόµορφο σηµασιολογικό και υλοποιήσιµο υπόστρωµα σε αυτήν την προσπάθεια. Η συντακτική βάση της γλώσσας των κανόνων της λογικής, εντούτοις, θα είναι πιθανότατα µια έκδοση της γλώσσας XML. Θεωρείται σχετικά εύκολο να υπάρξουν απεικονίσεις µεταξύ των συντακτικών των γλωσσών λογικού προγραµµατισµού και της XML,το οποίο µπορεί επίσης να αποτελέσει τη βάση για µετατροπές σηµασιολογικού περιεχόµενου. Στην ενότητα αυτή θα παρουσιαστεί η δυνατότητα αυτή χρησιµοποιώντας την XML σύνταξη της γλώσσας σήµανσης κανόνων RuleML, Έκδοση 0.8, η οποία ακολούθως θα αποκαλείται απλώς "RuleML". Η πρωτοβουλία σήµανσης κανόνων αποτελεί ένα ανοικτό δίκτυο διάφορων οµάδων από τον επιχειρηµατικό και τον ακαδηµαϊκό κόσµο. Ο πρώτος στόχος ήταν να παραχθεί ένα αρθρωτό σύστηµα υπογλωσσών RuleML βασισµένων σε XML και RDF. Αυτό οδήγησε στην ανάπτυξη ενός νέου µοντέλου δεδοµένων Ιστού που συνδυάζει τις XML και RDF. Στη βάση του, οι γλώσσες RuleML αρχικά ορίστηκαν µε τη βοήθεια DTDs, αλλά τώρα βαθµιαία ορίζονται ξανά µε τη χρήση της γλώσσας XML schema. Αναπτύσσονται για την RuleML διάφοροι συντάκτες (editors και µηχανές εξαγωγής συµπερασµάτων βασισµένοι σε Java. Για να διευκολυνθεί η ανταλλαγή των κανόνων, έχουν προσδιοριστεί 49

50 µεταφραστές βασισµένοι σε XSLT µεταξύ RuleML και άλλων γλωσσών βασισµένων σε κανόνες [41]. Η Σχεδίαση της RuleML Σε αυτήν την ενότητα συνοψίζεται ο τρέχον σχεδιασµός της RuleML. Η RuleML περικλείει µια ιεραρχία κανόνων, συµπεριλαµβάνοντας αντιδραστικούς κανόνες (συµβάνσυνθήκη-δράση, κανόνες µετασχηµατισµού (functional-equational rules, κανόνες εξαγωγής συµπερασµάτων (implicational-inference-rules, γεγονότα (facts ή premiseless derivation rules, ερωτήσεις (queries ή conclusionless derivation rules, περιορισµούς ακεραιότητας δεδοµένων (κανόνες συνέπειας-συντήρησης. Μέχρι τώρα, η προσπάθεια έχει επικεντρωθεί κυρίως στους κανόνες εξαγωγής συµπερασµάτων, στα γεγονότα και τις ερωτήσεις [42]. Η Ιεραρχία της RuleML Η ιεραρχία της RuleML ξεκινάει από τους γενικούς κανόνες και διακλαδίζεται σε δύο άµεσες κατηγορίες: τους κανόνες αντίδρασης και τους κανόνες µετασχηµατισµού. Στο επόµενο επίπεδο, οι κανόνες µετασχηµατισµού ειδικεύονται στην υποκατηγορία των κανόνων εξαγωγής συµπερασµάτων ή συνεπαγωγικούς κανόνες. Κατόπιν, οι συνεπαγωγικοί κανόνες έχουν περαιτέρω υποκατηγορίες, τα γεγονότα και τις ερωτήσεις. Τέλος, οι ερωτήσεις ειδικεύονται στους περιορισµούς ακεραιότητας. Μπορεί να υπάρξουν µελλοντικά περισσότερες υποκατηγορίες, ειδικά για τους αντιδραστικούς κανόνες. Η συνολική εικόνα της RuleML είναι όπως στο Σχήµα 3.6. Μια γραφική άποψη των κανόνων RuleML φαίνεται ως δέντρο στο σχήµα έχοντας ως ρίζα τους γενικούς κανόνες. Οι κύριοι κλάδοι του, διακρίνονται στους κανόνες αντίδρασης και στους κανόνες µετασχηµατισµού. Ακριβώς κάτω από τους κανόνες µετασχηµατισµού βρίσκονται οι κανόνες εξαγωγής συµπερασµάτων. Οι κανόνες εξαγωγής συµπερασµάτων ειδικεύονται στα γεγονότα και τις ερωτήσεις, οι οποίες µπορούν να γίνουν περιορισµοί ακεραιότητας. 50

51 κανόνες 1 (rules 2 αντιδραστικοί κανόνες (reaction rules κανόνες µετασχηµατισµού (transformation rules 3 κανόνες εξαγωγής συµπερασµάτων 4 (derivation rules 5 γεγονότα (facts ερωτήσεις (queries 6 περιορισµοί ακεραιότητας (integrity constraints Σχήµα 3.6: Ιεραρχία τύπων κανόνων στη RuleML Η περιγραφή των διάφορων τύπων κανόνων έχει συνοπτικά ως εξής: 1. Οι αντιδραστικοί κανόνες µπορούν να αναχθούν σε γενικούς κανόνες που δεν επιστρέφουν καµία τιµή. 2. Οι κανόνες µετασχηµατισµού µπορούν να αναχθούν σε γενικούς κανόνες των οποίων το συµβάν ενεργοποίησης είναι πάντα ενεργοποιηµένο. 3. Οι κανόνες εξαγωγής συµπερασµάτων µπορούν να αναχθούν σε κανόνες µετασχηµατισµού, αν οι συναρτήσεις αντικατασταθούν µε κατηγορήµατα τα οποία επιστρέφουν true ή false. 4. Τα γεγονότα µπορούν να αναχθούν σε κανόνες εξαγωγής συµπερασµάτων οι οποίοι έχουν κενή (και ως εκ τούτου true σύζευξη προϋποθέσεων. 5. Οι ερωτήσεις µπορούν να αναχθούν σε κανόνες εξαγωγής συµπερασµάτων που έχουν µια κενή (ως εκ τούτου false διάζευξη των συµπερασµάτων ή ένα συµπέρασµα το οποίο επιστρέφει τις τιµές των µεταβλητών για τις οποίες ισχύει η 51

52 συνθήκη. Οι περιορισµοί ακεραιότητας µπορούν να αναχθούν σε ερωτήσεις που είναι "κλειστές (δηλαδή δεν παράγουν τιµές µεταβλητών ως απαντήσεις. Ενώ οι γενικοί κανόνες, η κατηγόρια κανόνων που εµπερικλείει όλες τις άλλες κατηγόριες κανόνων, θα µπορούσαν να υλοποιήσουν όλους τους άλλους, στην RuleML εισάγεται εξειδικευµένη σύνταξη για κάθε µια από αυτές τις κατηγόριες. Οι ακόλουθες συντάξεις, χρησιµοποιούνται µόνο για την προκαταρκτική δόµηση των διάφορων κατηγόριων (για παράδειγµα, προγραµµατίζεται να επιτραπεί η εµφώλευση and/or εκτός από τις απλές συζεύξεις στη συνθήκη των κανόνων: Αντιδραστικοί κανόνες: <react> <_event> συµβάν </_event> <_body> <and> συνθήκη1... συνθήκηn </and> </_body> <_head> ενέργεια </_head> </react> µπορεί να απλοποιηθεί ως: <rule> <_event> συµβάν </_event> <_body> <and> συνθήκη1... συνθήκην </and> </_body> <_head> ενέργεια </_head> <_foot> άδειο </_foot> </rule> Κανόνες µετασχηµατισµού: <trans> <_head> συµπέρασµα </_head> <_body> <and> συνθήκη1... συνθήκην </and> </_body> <_foot> τιµή </_foot> </trans> µπορεί να απλοποιηθεί ως: 52

53 <rule> <_event> active </_event> <_body> <and> συνθήκη1... συνθήκην </and> </_body> <_head> συµπέρασµα </_head> <_foot> τιµή </_foot> </rule> Κανόνες παραγωγής: <imp> <_head> συµπέρασµα </_head> <_body> <and> συνθήκη1... συνθήκην </and> </_body> </imp> µπορεί να απλοποιηθεί ως: <trans> <_head> συµπέρασµα </_head> <_body> <and> συνθήκη1... συνθήκην </and> </_body> <_foot> true </_foot> </trans> Γεγονότα: <fact> <_head> συµπέρασµα </_head> </fact> µπορεί να απλοποιηθεί ως: <imp> <_head> συµπέρασµα </_head> <_body> <and> </and> </_body> </imp> Ερωτήσεις: <query> <_body> 53

54 <and> συνθήκη1... συνθήκηn </and> </_body> </query> µπορεί να απλοποιηθεί ως: <imp> <_body> <and> συνθήκη1... συνθήκηn </and> </_body> <_head> bindings( var1,..., vark </_head> </imp> Περιορισµοί ακεραιότητας: <ic> <_body> <and> συνθήκη1... συνθήκηn </and> </_body> </ic> µπορεί να απλοποιηθεί ως: <query kind="closed"> <_body> <and> συνθήκη1... συνθήκηn </and> </_body> </query> Μπορούµε τώρα να έχουµε µια ακριβέστερη αντίληψη όσον αφορά την κατεύθυνση εφαρµογής για τις διάφορες κατηγορίες κανόνων: Οι αντιδραστικοί κανόνες µπορούν να εφαρµοστούν µόνο σε ορθή κατεύθυνση µε ένα φυσικό τρόπο, ελέγχοντας/παρατηρώντας γεγονότα/όρους και εκτελώντας µια ενέργεια εάν και όταν όλα τα γεγονότα/όροι αναγνωριστούν/ισχύουν. Για τους κανόνες µετασχηµατισµού, προτιµάται συνήθως η ανάστροφη κατεύθυνση. Οι κανόνες εξαγωγής συµπερασµάτων µπορούν να εφαρµοστούν εξίσου µε ορθή ή ανάστροφη κατεύθυνση, µε την τελευταία να σηµαίνει ότι η απόδειξη ενός στόχου (συµπέρασµα ανάγεται στις αποδείξεις όλων των υποστόχων του (προϋπόθεσης. Επειδή σε διαφορετικές καταστάσεις, διαφορετικές εφαρµογές κατεύθυνσης 54

55 κανόνων παραγωγής µπορεί να είναι βέλτιστες (ορθή, ανάστροφη ή µικτή, η RuleML δεν περιορίζεται σε καµία από αυτές. Για τα γεγονότα ή τις "µοναδιαίες προτάσεις" (unit clauses δεν υπάρχει η έννοια της κατεύθυνσης εφαρµογής. Για τις ερωτήσεις υπάρχει η ακόλουθη έννοια κατεύθυνσης εφαρµογής: σαν στόχοι από πάνω προς τα κάτω (top-down, αποδεικνύονται ανάστροφα. Αλλά µπορούν επίσης να αποδειχθούν µε ορθή κατεύθυνση µέσω «κατευθυνόµενης από στόχους» (goal-directed από κάτω προς τα επάνω (bottom-up επεξεργασίας. Οι περιορισµοί ακεραιότητας (integrity constraints είναι συνήθως ορθά προσανατολισµένοι (forward-oriented, δηλαδή ενεργοποιούνται από τις ανανεώσεις των γεγονότων (updated events, κυρίως για λόγους αποδοτικότητας. Αλλά µπορούν αντ αυτού να είναι ανάστροφα προσανατολισµένοι (backward oriented, προσπαθώντας να αποδείξουν την συνέπεια ή την ασυνέπεια τηρώντας ορισµένους όρους (χωρίς ανάγκη αναγνώρισης οποιουδήποτε γεγονότος Αντικειµενοστρεφής RuleML Εισαγωγή Η αντικειµενοστραφής RuleML (OO RuleML είναι συνδυασµός τριών χαρακτηριστικών που επεκτείνουν την βασική σύνταξη της RuleML: 1. Οι ρόλοι που ορίζονται από τον χρηστή παρέχουν µια αναπαράσταση που θυµίζει τις σχισµές (slots των πλαισίων. Οι ρόλοι παρέχουν την δυνατότητα ύπαρξης ορισµάτων σε άτοµα ή σύνθετους όρους στα οποία η σειρά δεν παίζει ρόλο. 2. Η χρήση προσδιοριστών URI στα γεγονότα και στους κανόνες δίνει την δυνατότητα χρήσης τους ως αντικείµενα στο Web. 3. Οι όροι και οι µεταβλητές µπορούν να έχουν προκαθορισµένο τύπο, µέσω της αναφοράς του τύπου τους σε κάποια οντολογία του Web εκφρασµένη π.χ σε RDF Schema. 55

56 Η αντικειµενοστραφής RuleML θα µπορούσε να χαρακτηριστεί σαν συνδυασµός τριών υπογλωσσών, οι οποίες υλοποιούν τα παραπάνω χαρακτηριστικά: 1. Μια υπογλώσσα που θα µπορούσαµε να ονοµάσουµε αντικειµενοκεντρική RuleML (Object-Centered RuleML. Αυτό κάνει τους ρόλους (χαρακτηριστικά, ιδιότητες, κλειδιά ή σχισµές του συντακτικού επίπεδου συστήµατος της RuleML, διαθέσιµα σαν συντακτικό επιπέδου χρήστη, δηµιουργώντας µια υπογλώσσα µε σχισµές, σε αντίθεση µε την προηγούµενη σήµανση στην οποία έπαιζε ρόλο η σειρά των ορισµάτων. 2. Μια υπογλώσσα που παρέχει ταυτότητα αντικειµένων, µέσω προσδιοριστών URI. 3. Μια υπογλώσσα για πρόσβαση σε ιεραρχίες τύπων-κλάσεων. Συνδυάζοντας τις τρεις αυτές υπογλώσσες, φτάνουµε στην αντικειµενοστραφή RuleML, την οποία θα µπορούσαµε να ονοµάσουµε και πλαισιακή RuleML (Frame RuleML. H αντικειµενοστραφής RuleML επιτρέπει το είδος της «µοντελοποίησης αντικειµένων», όπως εµφανίζεται στις Συµπερασµατικές Αντικειµενοστραφείς Βάσεις εδοµένων (Deductive Object-Oriented Databases-DOOD και τα επεκταµένα µε αντικείµενα συστήµατα λογικού προγραµµατισµού (Life, F-Logic, TRIPLE, στην RuleML. Η υπογλώσσα µε σχισµές, απαιτεί πολύ µικρές αλλαγές στα DTDs / Schemas της υπάρχουσας βασικής RuleML. Αυτό επιτρέπει να αναµιγνύονται η βασική και αντικειµενοστραφής αναπαραστάσεις [42]. Η Βασική Γλώσσα Το ακόλουθο είναι ένα παράδειγµα ενός κανόνα εξαγωγής συµπερασµάτων σε βασική RuleML, όπου η θέση των ορισµάτων έχει σηµασία, όπως π.χ στην Prolog: <imp> <_head> <atom> <_opr><rel>own</rel></_opr> <var>person</var> <var>object</var> </atom> </_head> <_body> <and> <atom> 56

57 <_opr><rel>buy</rel></_opr> <var>person</var> <var>merchant</var> <var>object</var> </atom> <atom> <_opr><rel>keep</rel></_opr> <var>person</var> <var>object</var> </atom> </and> </_body> </imp> Με τις ιδιότητες (slots γραµµένες σαν <_slot><ind>slotname</ind>slotfiller</_slot>, ο ίδιος ο κανόνας µπορεί να αναπαρασταθεί στην αντικειµενοστραφή RuleML ως εξής: <imp> <_head> <atom> <_opr><rel>own</rel></_opr> <_slot><ind>owner</ind><var>person</var></_slot> <_slot><ind>item</ind><var>object</var></_slot> </atom> </_head> <_body> <and> <atom> <_opr><rel>buy</rel></_opr> <_slot><ind>buyer</ind><var>person</var></_slot> <_slot><ind>seller</ind><var>merchant</var></_slot> <_slot><ind>item</ind><var>object</var></_slot> </atom> <atom> <_opr><rel>keep</rel></_opr> <_slot><ind>keeper</ind><var>person</var></_slot> <_slot><ind>item</ind><var>object</var></_slot> </atom> </and> </_body> </imp> Σε αυτήν την έκδοση της αντικειµενοστραφούς RuleML, τα πρώην θεσιακά ορίσµατα (positional arguments, έχουν µετατραπεί σε ορίσµατα ιδιοτήτων (slotted arguments. Παρατηρούµε ότι σε διαφορετικές σχέσεις η ίδια µεταβλητή, π.χ person, µπορεί να χρησιµοποιηθεί σαν τιµή ή «γέµισµα» σχισµή (slot filler, για διαφορετικά ονόµατα 57

58 ιδιοτήτων (slot names, π.χ owner, buyer, και keeper. Επίσης η ίδια µεταβλητή, π.χ object, µπορεί να χρησιµοποιηθεί ως «γέµισµα» για το ίδιο όνοµα ιδιότητας π.χ item. O αρχικός RuleML κανόνας own θα µπορούσε επίσης να εκφραστεί στην αντικειµενοστραφή RuleML ως εξής: <imp> <_head> <atom> <_opr><rel>own</rel></_opr> <var>person</var> <var>object</var> <_slot><ind>value</ind><var>amount</var></_slot> <_slot><ind>region</ind><var>where</var></_slot> <_slot><ind>period</ind><var>when</var></_slot> </atom> </_head> <_body> <and> <atom> <_opr><rel>buy</rel></_opr> <var>person</var> <var>object</var> <_slot><ind>seller</ind><var>merchant</var></_slot> <_slot><ind>price</ind><var>amount</var></_slot> <_slot><ind>region</ind><var>where</var></_slot> <_slot><ind>period</ind><var>when</var></_slot> </atom> <atom> <_opr><rel>keep</rel></_opr> <var>person</var> <var>object</var> <_slot><ind>region</ind><var>where</var></_slot> <_slot><ind>period</ind><var>when</var></_slot> </atom> </and> </_body> </imp> Σε αυτήν την έκδοση της αντικειµενοστραφούς RuleML, όλες οι σχέσεις έχουν τα ίδια θεσιακά ορίσµατα (positional arguments, person και object, τα οποία χρησιµοποιούνται στις θέσεις 1 και 2, αντίστοιχα. Το πρώην 2 ο θεσιακό όρισµα, merchant, της συνθήκης buy, είναι τώρα ένα όρισµα ιδιότητας seller. Επίσης έχει προστεθεί ένα όρισµα ιδιότητας price, το οποίο µετατρέπεται σε ένα όρισµα ιδιότητας value στο συµπέρασµα. Όλες οι σχέσεις χρησιµοποιούν τα επιπλέον ορίσµατα ιδιοτήτων region και period. Τέλος, µπορούν να προστεθούν περισσότερα ορίσµατα χωρίς να επηρεάσουν τις ερµηνείες οποιωνδήποτε υπαρχόντων ορισµάτων. 58

59 ΚΕΦΑΛΑΙΟ 4 Αρχιτεκτονική και λειτουργία του συστήµατος Αρχικός στόχος της εργασίας ήταν η επαλήθευση της ορθής λειτουργίας του υπάρχοντος συστήµατος X-DEVICE µε δεδοµένα από τη βάση δεδοµένων που περιέχει τις δηµοσιεύσεις της ερευνητικής οµάδας Λογικού Προγραµµατισµού και Ευφυών Συστηµάτων LPIS, και η βελτίωση της απόδοσης του τόσο σε χωρικές όσο και σε χρονικές απαιτήσεις. Επιπλέον έγινε η διασύνδεση του συστήµατος µε το ιαδίκτυο. Το σύστηµα X-DEVICE είχε υλοποιηθεί µερικώς στο σύστηµα κανόνων CLIPS, στα πλαίσια 2 διπλωµατικών εργασιών προηγούµενων ετών [43] [44]. Στο κεφαλαίο αυτό περιγράφεται σύντοµα η αρχιτεκτονική και λειτουργία της ήδη υπάρχουσας υλοποίησης του συστήµατος X-DEVICE στο CLIPS. Όπου η περιγραφή αφορά διαφοροποίηση του συστήµατος από τις προηγούµενες διπλωµατικές, θα αναφέρεται ρητά. 4.1 Υλοποίηση του Συστήµατος X-DEVICE στο CLIPS Η αρχιτεκτονική του συστήµατος βασίστηκε στο αντικειµενοστραφές µοντέλο αναπαράστασης XML δεδοµένων του X-DEVICE. Ωστόσο, υπάρχουν κάποιες ιδιαιτερότητες του συστήµατος CLIPS, οι οποίες δεν επιτρέπουν την εκµετάλλευση χαρακτηριστικών που διαθέτει το αντικειµενοστραφές µοντέλο του ADAM, στο οποίο στηρίζεται η υλοποίηση του X-DEVICE. 59

60 Το σύστηµα ADAM έχει τη δυνατότητα να χρησιµοποιεί µετα-κλάσεις (metaclasses, δηλαδή κλάσεις που περιγράφουν άλλες κλάσεις, και µετα-ιδιότητες (metaattributes, δηλαδή ιδιότητες των κλάσεων και των µετα-κλάσεων. Όµως, το σύστηµα CLIPS δε διαθέτει το χαρακτηριστικό των µετα-κλάσεων. Η συνέπεια της έλλειψης µετα-κλάσεων είναι ότι δε µπορούµε να έχουµε ιδιότητες για τις κλάσεις (meta-attributes. Η λύση που δόθηκε στο αρχικό σύστηµα είναι η εξής: Χρησιµοποιούµε απλές κλάσεις, οι οποίες παίζουν το ρόλο των µετα-κλάσεων του ADAM, και κλάσεις οι οποίες είναι υποκλάσεις των παραπάνω κλάσεων, όπως φαίνεται και στο σχήµα 4.1. Στις υπερκλάσεις ορίζουµε ιδιότητες κλάσεων (class attributes, οι οποίες παίζουν το ρόλο των µετα-ιδιοτήτων. Αυτές οι ιδιότητες κληρονοµούνται από τις απλές κλάσεις, αλλά η προκαθορισµένη τιµή τους ορίζεται σε κάθε κλάση χωριστά. Οι ιδιότητες αυτές µπορούν µόνο να διαβαστούν (access read-only. Η τροποποίησή τους δεν επιτρέπεται. Οι τιµές τους καθορίζονται στον ορισµό των κλάσεων, όπως παρατηρείται και στο σχήµα 4.1. Επιπλέον, οι τιµές των ιδιοτήτων κλάσεων αποθηκεύονται µε την κλάση (storage shared. Αυτό σηµαίνει ότι όλα τα στιγµιότυπα της κλάσης έχουν την ίδια τιµή για µία συγκεκριµένη ιδιότητα κλάσης. Επακόλουθο του τεχνάσµατος αυτού είναι η υλοποίηση των τύπων για ιδιότητες αναφοράς αντικειµένων (object-referencing attributes. Εάν δεν είναι γνωστός ο τύπος των ιδιοτήτων αναφοράς αντικειµένων, δεν µπορούµε να καθορίσουµε άµεσα τον τύπο της κλάσης ενός αντικειµένου, όταν αναφερόµαστε σε µια ιδιότητα κλάσης που οι επιτρεπόµενες τιµές της είναι αντικείµενα µιας συγκεκριµένης κλάσης. Αυτό βέβαια είναι έλλειψη του CLIPS ως αντικειµενοστραφούς γλώσσας. Έστω, για παράδειγµα, ότι δηµιουργούµε µία κλάση (class book, η οποία αναπαριστά ένα βιβλίο. Ανάµεσα στις ιδιότητες (attributes αυτής, υπάρχει και η ιδιότητα author, που εκφράζει το συγγραφέα του βιβλίου. Η ιδιότητα αυτή επιτρέπεται να πάρει τιµές τύπου INSTANCE-NAME, δηλαδή αντικείµενα κάποιας κλάσης. Προφανώς, αυτή η κλάση πρέπει να περιγράφει το σύνολο των συγγραφέων και έστω ότι ονοµάζεται author. Όπως διαπιστώνεται, η κλάση αυτή δεν προσδιορίζεται. Έτσι, σε αυτή την ιδιότητα µπορεί να δοθεί ως τιµή ένα αντικείµενο οποιασδήποτε κλάσης. Στη λύση του προβλήµατος συµβάλλει και η δοµή των XML εγγράφων. Ένα στοιχείο (element το οποίο περιέχει και άλλα στοιχεία ή έχει ιδιότητες, αναπαριστάται µε µία κλάση, όπως συµβαίνει και στο σύστηµα X-DEVICE. Το όνοµα της κλάσης είναι ίδιο µε 60

61 το όνοµα του στοιχείου. Βέβαια, το όνοµα της κλάσης δε δεσµεύεται από το όνοµα του στοιχείου, αλλά χρησιµοποιείται το όνοµα για λόγους απλότητας. Εποµένως, όταν σε µία κλάση υπάρχει ιδιότητα τύπου INSTANCE-NAME τότε σε αυτή την ιδιότητα αποδίδεται ως τιµή ένα αντικείµενο της κλάσης που έχει το ίδιο όνοµα µε αυτό της ιδιότητας. Επιπλέον, εισάγουµε µία µετα-ιδιότητα, την class-refs, η οποία αναφέρει ποια ιδιότητα παίρνει ως τιµή αντικείµενα κάποιας συγκεκριµένης κλάσης. Η µετα-ιδιότητα class-refs ορίζεται στην υπερκλάση, ενώ η τιµή της (default value καθορίζεται στην κλάση. Η δοµή της class-refs έχει ως εξής: αποτελείται από ζεύγη slot-class, όπου slot είναι µία ιδιότητα αναφοράς αντικειµένων και class είναι µία κλάση. Ένα ζεύγος δηλώνει ότι το slot παίρνει ως τιµή αντικείµενα της κλάσης class. Με αυτόν τον τρόπο καθορίζεται ο τύπος των ιδιοτήτων αναφοράς αντικειµένου. ηλαδή, για το παραπάνω παράδειγµα, θα είχαµε µεταξύ άλλων: (class-refs author author. Έτσι, γνωρίζουµε πλέον ότι η ιδιότητα author παίρνει ως τιµή ένα αντικείµενο της κλάσης author. Μετακλάσεις στο σύστηµα CLIPS Ορισµός XML-CLASS Meta-attributes instance SUPERCLASS (META-CLASS isa ορισµός meta-attributes (shared, read-only, default meta-attributes OBJECT CLASS meta-attributes (ορισµός default τιµών instance OBJECT instance Σχήµα 4.1 Υλοποίηση µετακλάσεων στο CLIPS Επιπλέον, για κάθε κλάση που αντιστοιχεί σε ένα στοιχείο της XML δηµιουργείτε ένα στιγµιότυπο της κλάσης XML-CLASS. Η XML-class είναι µια κλάση εκτός της ιεραρχίας που αναφέρθηκε παραπάνω. Σαν ιδιότητες (slots ορίζονται οι µετα-ιδιότητες οι 61

62 οποίες αποθηκεύονται για τις κλάσεις, όπως για παράδειγµα το αν δηµιουργήθηκαν απευθείας από την δοµή του XML εγγράφου ή αν δηµιουργήθηκαν από το σύστηµα για τον χειρισµό ειδικών σχηµατισµών εναλλαγής ή διαδοχής. Όταν αργότερα, κατά την εκτέλεση, συγκεντρωθούν τα απαραίτητα στοιχεία για να δηµιουργηθούν οι κλάσεις, ταυτόχρονα µε την δηµιουργία κάθε κλάσης χρησιµοποιούνται αυτά τα στοιχεία για να δηµιουργηθεί και ένα στιγµιότυπο της κλάσης XML-CLASS µε όνοµα ίδιο µε αυτό της κλάσης για την οποία έχουν συλλεχθεί στοιχεία. Για παράδειγµα, όταν δηµιουργείται η κλάση book ταυτόχρονα θα δηµιουργηθεί ένα αντικείµενο [book] το οποίο θα έχει σαν ιδιότητες τις µετα-ιδιότητες της κλάσης book. Με αυτόν τον τρόπο, όταν χρειάζεται να ανακληθούν οι µετα-ιδιότητες της κάθε κλάσης, αρκεί να ανατρέξουµε στο οµώνυµο αντικείµενο. Η τεχνική αυτή χρησιµοποιείται σε συνδυασµό µε την προαναφερθείσα. 4.2 Λειτουργία του Συστήµατος Η υλοποίηση του συστήµατος βασίστηκε, αλλά δεν αποτελεί πιστή υλοποίηση, στον αλγόριθµο αποθήκευσης ενός XML εγγράφου σε µία αντικειµενοστρεφή βάση δεδοµένων του X-DEVICE, καθώς και στον αλγόριθµο ανάκτησης µέρους του XML εγγράφου µέσω ερώτησης στη βάση δεδοµένων. Οι αλγόριθµοι αυτοί παρατίθενται στο παράρτηµα Α. Κατά την αποθήκευση του XML εγγράφου στην αντικειµενοστρεφή βάση, το σύστηµα CLIPS τροφοδοτείται µε την URL διεύθυνση του XML έγγραφου. Το σύστηµα κατεβάζει το XML έγγραφο από το ιαδίκτυο και το αποθηκεύει στο δίσκο. Μετά την αποθηκεύσει διαβάζεται η πρώτη του γραµµή όπου βρίσκεται η URL διεύθυνση του αντίστοιχου DTD. Το σύστηµα κατεβάζει το DTD από το ιαδίκτυο και το αποθηκεύει στο δίσκο Η αναπαράσταση των XML δεδοµένων µε ένα αντικειµενοστρεφές µοντέλο δεδοµένων γίνεται σε δύο στάδια. Στο πρώτο στάδιο το σύστηµα CLIPS τροφοδοτείται µε το DTD και παράγει ένα αντικειµενοστρεφές σχήµα, το σχήµα των κλάσεων το οποίο περιλαµβάνει τις κλάσεις και τις ιδιότητες αυτών. Επίσης το σύστηµα παράγει µετακλάσεις και αντικείµενα αυτών που αποθηκεύουν πληροφορίες για το παραπάνω αντικειµενοστρεφές σχήµα κλάσεων. Στο δεύτερο στάδιο στο σύστηµα CLIPS εισέρχεται το XML έγγραφο, το οποίο προ-επεξεργάζεται και στη συνέχεια παράγονται τα αντικείµενα (objects της αντικειµενοστραφούς βάσης δεδοµένων. 62

63 Κατά την ανάκτηση ολόκληρου ή µέρους του XML εγγράφου το σύστηµα λαµβάνει σαν είσοδο από τον χρήστη το όνοµα ενός αντικειµένου το οποίο αποτελεί το ανώτερο στοιχείο της ιεραρχίας που θα ανακτηθεί και το όνοµα ενός αρχείου και εξάγει στο αρχείο το ζητούµενο τµήµα XML. Στο σχήµα 4.2 φαίνεται η αρχιτεκτονική του συστήµατος. Τα στοιχεία που έχουν προστεθεί στο νέο σύστηµα φαίνονται µε άσπρο χρώµα. Ιnternet 3 XML DTD Metaclasses 6 URL 1 X-DEVICE 8 Class Schema Objects 9 CLIPS Initial Object XML File Name 10 CLIPS 11 XML File Σχήµα 4.2 Αρχιτεκτονική του συστήµατος Το DTD περιγράφει τη λογική δοµή του XML εγγράφου, το οποίο πρέπει να ακολουθεί τους συντακτικούς κανόνες του DTD. Το DTD και ένα κοµµάτι του XML έγγραφο, φαίνονται στα σχήµατα 4.3 και 4.4. Το XML έγγραφο που χρησιµοποιήθηκε βρίσκεται στη διεύθυνση To DTD έγγραφο βρίσκεται στη διεύθυνση Το XML έγγραφο δεν είναι στατικό αλλά παράγεται δυναµικά από µια ASP εφαρµογή, αντλώντας δεδοµένα από µια βάση δεδοµένων της ACCESS. 63

64 <!ELEMENT lpis_publications (Publication*, Author*> <!ELEMENT Publication (PublicationTitle, MediaType, MediaTitle, MediaPublisher?, MediaEditors?, MediaVolInfo?, PublicationYear, PublicationNoOfPages?, PublicationPagesInMedium?, PublicationAbstract?, PublicationFileName?, PublicationComments?, PublicationRelatedURL?, PublicationRelatedURLText?, PublicationLocation?, PublicationPubURL?, Keyword*> <!ATTLIST Publication PublicationID ID #REQUIRED Authors IDREFS #REQUIRED > <!ELEMENT PublicationTitle (#PCDATA> <!ELEMENT MediaType (#PCDATA> <!ELEMENT MediaTitle (#PCDATA> <!ELEMENT MediaPublisher (#PCDATA> <!ELEMENT MediaEditors (#PCDATA> <!ELEMENT MediaVolInfo (#PCDATA> <!ELEMENT PublicationYear (#PCDATA> <!ELEMENT PublicationNoOfPages (#PCDATA> <!ELEMENT PublicationPagesInMedium (#PCDATA> <!ELEMENT PublicationAbstract (#PCDATA> <!ELEMENT PublicationFileName (#PCDATA> <!ELEMENT PublicationComments (#PCDATA> <!ELEMENT PublicationRelatedURL (#PCDATA> <!ELEMENT PublicationRelatedURLText (#PCDATA> <!ELEMENT PublicationLocation (#PCDATA> <!ELEMENT PublicationPubURL (#PCDATA> <!ELEMENT Keyword (#PCDATA> <!ELEMENT Author (AuthorName?, AuthorMiddleName?, AuthorSurname, AuthorURL?, Author ?> <!ATTLIST Author AuthorID ID #REQUIRED > <!ELEMENT AuthorName (#PCDATA> <!ELEMENT AuthorMiddleName (#PCDATA> <!ELEMENT AuthorSurname (#PCDATA> <!ELEMENT AuthorURL (#PCDATA> <!ELEMENT Author (#PCDATA> Σχήµα 4.3 Το έγγραφο DTD τον δηµοσιευµένων εργασιών. <lpis_publications> <Publication PublicationID="pub-123" Authors="author-9 author-2 author-17"> <PublicationTitle>Using Logic for Querying XML Data</PublicationTitle> <MediaType>Book Chapter</MediaType> <MediaTitle>Web Powered Databases</MediaTitle> <MediaPublisher>IDEA Group Publishing</MediaPublisher> <MediaEditors>D. Taniar and W. Rahayu</MediaEditors> <MediaVolInfo>Ch. 1</MediaVolInfo> <PublicationYear>2003</PublicationYear> <PublicationNoOfPages>35</PublicationNoOfPages> <PublicationPagesInMedium>1-35</PublicationPagesInMedium> <PublicationAbstract>In this chapter...</publicationabstract> <PublicationFileName>idea-chapter1.pdf</PublicationFileName> <PublicationComments>N. Bassiliades, I. Vlahavas and D. Sampson, "Using Logic for Querying XML Data", Web Powered Databases, D. Taniar and W. Rahayu (eds., Ch. 1, pp. 1-35, IDEA-Group Publishing, 2003.</PublicationComments> <PublicationRelatedURL>http%3A%2F%2Fwww%2Ecsd%2Eauth%2Egr%2F%257Elpis%2Fsystems%2Fx%2Dde vice%2ehtml</publicationrelatedurl> <PublicationRelatedURLText>X%2DDEVICE</PublicationRelatedURLText> <PublicationPubURL>http%3A%2F%2Fwww%2Eidea%2Dgroup%2Ecom%2Fbooks%2Fdetails%2Easp%3Fid%3D 4059</PublicationPubURL> <Keyword>XML query language</keyword> <Keyword>XML repository</keyword> <Keyword>Deductive Object-Oriented Databases</Keyword> </Publication> <Author AuthorID="author-9"> 64

65 <AuthorName>N</AuthorName> <AuthorSurname>Bassiliades</AuthorSurname> <AuthorURL>http%3A%2F%2Flpis%2Ecsd%2Eauth%2Egr%2Fpeople%2Fnbassili%2F </AuthorURL> <Author >nbassili%40csd%2Eauth%2Egr</Author > </Author> </lpis_publications> Σχήµα 4.4 είγµα του XML εγγράφου των δηµοσιευµένων εργασιών Στο σχήµα 4.5 φαίνεται η λειτουργία του συστήµατος, από το διάβασµα του αρχείων µέχρι τη δηµιουργία των αντικειµένων. Στην προηγούµενη υλοποίηση η συνάρτηση import- XML έπαιρνε σαν ορίσµατα τa ονόµατα των αρχείων DTD και XML ενώ τώρα παίρνει σαν όρισµα την URL διεύθυνση του XML έγγραφου και κατεβάζει τα αρχεία από το internet. Στη συνέχεια περιγράφεται η λειτουργία του συστήµατος Εκκίνηση και συλλογή στοιχείων Αρχικά, στο CLIPS φορτώνεται το αρχείο load-files.bat. Για να εκκινηθεί το σύστηµα ο χρήστης πρέπει να καλέσει την συνάρτηση import-xml µε όρισµα την URL διεύθυνση του XML εγγράφου. Στην προηγούµενη υλοποίηση η import-xml έπαιρνε σαν όρισµα τα ονοµτα των αρχείων DTD και XML τα οποία βρισκόντουσαν στο δίσκο. Η συνάρτηση import-xml κατεβάζει το XML έγγραφο από το Internet και το αποθηκεύει στον τοπικό δίσκο. ιαβάζοντας την πρώτη γραµµή του XML αρχείου, παίρνει το URL του DTD αρχείου που περιγράφει τη δοµή του XML αρχείου, το κατεβάζει και το αποθηκεύει επίσης στο δίσκο. Αφού το αρχείο αυτό υποστεί κάποιου είδους επεξεργασία, έτσι ώστε να έχει µία κατάλληλη µορφή για την περαιτέρω επεξεργασία του, προστίθεται στη µνήµη υπό µορφή γεγονότων όπου η κάθε γραµµή του αρχείου είναι ένα γεγονός. Η συνάρτηση import-xml βρίσκεται στο αρχείο class-functions.clp. Με την ύπαρξη του DTD ως γεγονότα στη µνήµη εργασίας του συστήµατος, είναι δυνατό να πυροδοτηθούν κάποιοι κανόνες. Χωρίς το DTD, δεν υπάρχει η δυνατότητα πυροδότησης (firing κανόνων και εποµένως ούτε η δυνατότητα δηµιουργίας των κλάσεων. Το αποτέλεσµα της πυροδότησης των κανόνων σε πρώτη φάση είναι η κατηγοριοποίηση των στοιχείων (elements του εγγράφου. Η κατηγοριοποίηση των στοιχείων του εγγράφου βασίζεται στον τρόπο αναπαράστασης ενός DTD στο σύστηµα X-DEVICE. Τα στοιχεία διακρίνονται σε κατηγορίες ανάλογα µε το περιεχόµενό τους και προστίθενται σε λίστες των οποίων το πρώτο στοιχείο προσδιορίζει την κατηγορία. 65

66 Έτσι, κατ αρχήν υπάρχουν δύο λίστες, µία (elemattr που περιέχει τα στοιχεία του εγγράφου που θα αναπαρασταθούν µε ιδιότητες απλές και µια άλλη (ElemClass που περιέχει τα στοιχεία του εγγράφου που θα αναπαρασταθούν µε κλάσεις. Σε αυτές έρχεται να προστεθεί και µια ξεχωριστή λίστα, αυτή των εσωτερικών οντοτήτων (Entities που βρίσκονται στο DTD που εξετάζεται, και πρέπει να αντικατασταθούν πριν την επεξεργασία του XML εγγράφου και την µετατροπή του σε αντικείµενα. Στο σύστηµα υπάρχουν κανόνες που εντοπίζουν αυτές τις οντότητες και τις προσθέτουν στην ανάλογη λίστα, µαζί µε τις τιµές τους. Επίσης υπάρχουν κανόνες που είναι υπεύθυνοι για την εύρεση στοιχείων µε περιεχόµενο PCDATA, τα οποία δεν έχουν ιδιότητες (attributes, και προσθήκη αυτών στην πρώτη λίστα. Τα στοιχεία αυτά θα γίνουν ιδιότητες σε κλάσεις. Υπάρχουν κανόνες, οι οποίοι εντοπίζουν κενά στοιχεία χωρίς ιδιότητες, τα οποία χειρίζονται όπως και τα παραπάνω, και κανόνες που εντοπίζουν κενά στοιχεία µε ιδιότητες. Αυτά τα δεύτερα στοιχεία θα γίνουν κλάσεις και προστίθενται στη δεύτερη λίστα, η οποία περιέχει τα στοιχεία που θα γίνουν κλάσεις. Τέλος, υπάρχουν κανόνες οι οποίοι βρίσκουν στοιχεία που έχουν άλλα στοιχεία-παιδιά ή ιδιότητες ή και τα δύο σε διαδοχή ή σε εναλλαγή. Τα στοιχεία αυτά θα γίνουν επίσης κλάσεις, γι αυτές τις περιπτώσεις όµως συµπληρώνονται και βοηθητικές λίστες, ώστε να γνωρίζει το σύστηµα την υπερκλάση κάθε κλάσης. Οι λίστες, που αναφέρθηκαν, αποτελούν γεγονότα και εισάγονται στη λίστα γεγονότων. Όλοι οι κανόνες βρίσκονται στο αρχείο rules.clp. Επόµενο βήµα είναι ο καθορισµός της δοµής και των χαρακτηριστικών των κλάσεων. Πριν τη δηµιουργία των κλάσεων, είναι χρήσιµη η συγκέντρωση των απαραίτητων στοιχείων, που θα καθορίσουν τις ιδιότητες της κλάσης, σε ένα πρότυπο. Αυτό υλοποιείται µε τη βοήθεια κανόνων, οι οποίοι διαφοροποιούνται ως προς τον τύπο των στοιχείων που θα αναπαρασταθούν µε κλάσεις, δηλαδή κενών στοιχείων µε ιδιότητες, και µε τη βοήθεια των προτύπων γεγονότων που παρέχει το σύστηµα CLIPS. 66

67 ιαδίκτυο 1 XML DTD import-xml dtd_processing dtd_processing_alt class-slot-forming 2 15 ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΩΝ ENTITIES ELEMENT-PCDATA EMPTY-ELEMENT-WITH- ATTRIBUTES ΛΙΣΤΑ ΓΕΓΟΝΟΤΩΝ (dtd (elemattr (ElemClass (Entities 3 ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΑ create-instances creating-instances creating-instances-aux ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΩΝ create-candidate-class1 create-candidate-class2 create-candidate-class3 4 ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΩΝ create-classes ΚΛΑΣΕΙΣ ΜΕΤΑ-ΚΛΑΣΕΙΣ ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΑ retrieval-of-xml-file 8 XML-FILE_retrieval XML-FILE_processing 10 XML-FILE processing spaces 9 7 ANTIKEIMENA ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΩΝ XML 17 ΠΥΡΟ ΟΤΗΣΗ ΚΑΝΟΝΩΝ expand refine-xml 12 substitute-entities assert-nest-goals nest-elements-alternative nest-elements-sequence process-xml-file_ XML-FILE_processing_spaces XML FILE Σχήµα 4.5 Λειτουργία του συστήµατος Με τη χρήση ενός προτύπου γεγονότων το βήµα που ακολουθεί, δηλαδή η δηµιουργία των κλάσεων, υλοποιείται µε ευκολότερο τρόπο. 67

68 Το πρότυπο γεγονότων είναι µία δοµή µε την οποία µπορεί να οριστεί η µορφή που θα έχουν τα γεγονότα στη λίστα γεγονότων. Κάθε πρότυπο έχει ένα σύνολο από ιδιότητες (slots, στις οποίες µπορούν να ανατεθούν τιµές, ενώ επιπλέον µπορεί να ορισθούν και οι τύποι των τιµών αυτών ώστε να γίνονται οι απαραίτητοι έλεγχοι. Το πρότυπο γεγονότων που χρησιµοποιήθηκε για την υλοποίηση του συστήµατος ονοµάζεται candidate_class και βρίσκεται στο αρχείο classes.clp. Περιέχει στοιχεία που αφορούν την υποψήφια κλάση, όπως το όνοµα της, την υπερκλάση της, ιδιότητες και µετα-ιδιότητες ηµιουργία κλάσεων και στιγµιοτύπων Στη συνέχεια ακολουθεί, όπως αναφέρθηκε και προηγουµένως, η δηµιουργία των κλάσεων, η οποία γίνεται µε βάση το πρότυπο candidate_class. Στο CLIPS, συνήθως οι κλάσεις δηµιουργούνται στατικά στο φόρτωµα του προγράµµατος. Εφόσον, όµως, δεν υπάρχουν αρχικά όλες οι πληροφορίες για τη δηµιουργία κλάσεων, κατασκευάζεται δυναµικά µία εντολή defclass, καθώς συγκεντρώνονται όλα τα απαραίτητα στοιχεία, και εκτελείται µέσω της συνάρτησης build. Ταυτόχρονα µε παρόµοιο τρόπο, για κάθε νέα κλάση δηµιουργείται και ένα αντικείµενο της κλάσης XML-CLASS µε αντίστοιχο όνοµα που αποθηκεύει επιπλέον πληροφορίες για αυτήν την κλάση, όπως για παράδειγµα αν η δηµιουργία της είναι άµεσο αποτέλεσµα της ανάλυσης του DTD ή αν κρίθηκε σκόπιµη από το σύστηµα. Και εδώ κατασκευάζεται δυναµικά µια εντολή make-instance και εκτελείται µέσω της συνάρτησης eval. Εφόσον έχουν δηµιουργηθεί οι κλάσεις, ακολουθεί η δηµιουργία των αντικειµένων (instances. Αρχικά, πυροδοτείται ο κανόνας, ο οποίος είναι υπεύθυνος για το «διάβασµα» του αρχείου που περιέχει το XML έγγραφο. Κατά την εκτέλεση των ενεργειών του κανόνα καλείται µία συνάρτηση, η XML-FILE_retrieval, η οποία βρίσκεται στο αρχείο instance-functions.clp. Η XML-FILE_retrieval κάνει κάποιες επεξεργασίες πάνω στο XML έγγραφο και στη συνέχεια το εισάγει σαν µια καθολική µεταβλητή. Το σύστηµα CLIPS, έχοντας στη διάθεση του τις κλάσεις και το επεξεργασµένο XML έγγραφο υπό µορφή γεγονότος, είναι σε θέση να δηµιουργήσει τα αντικείµενα. Ο κανόνας που πυροδοτείται και ονοµάζεται create_instances καλεί αρχικά την αναδροµική συνάρτηση class-slot-forming, η οποία δέχεται ως όρισµα το XML 68

69 έγγραφο και επιστρέφει µία λίστα που είναι µορφοποιηµένη κατά τέτοιο τρόπο, έτσι ώστε η δηµιουργία των αντικειµένων να γίνεται µε ευκολότερο τρόπο. Στη συνέχεια, δηµιουργούνται τα αντικείµενα µέσω της αναδροµικής συνάρτησης creatinginstances. Οι συναρτήσεις class-slot-forming και creating-instances βρίσκονται στο αρχείο instance-functions.clp. Στα σχήµατα 4.6 και 4.7 φαίνονται ενδεικτικά κάποιες κλάσεις και αντικείµενα που αντιστοιχούν στο DTD και στο XML έγγραφο που φαίνονται στα σχήµατα 4.3 και 4.4. Στο σχήµα 4.6 φαίνονται η κλάση Publication και το αντίστοιχο αντικείµενο Publication τύπου XML-CLASS, ενώ στο σχήµα 4.7 φαίνονται δυο αντικείµενα το αντικείµενο [pub- 123] και το αντικείµενο [author-9]. Τα αντικείµενα αυτά είναι στιγµιότυπα κλάσεων που δηµιουργήθηκαν άµεσα και αντιστοιχούν σε στοιχεία του DTD. (defclass MAIN::Publication (is-a XML-SEQ (slot IDSlot (type SYMBOL (storage shared (default PublicationID (slot PublicationTitle (type LEXEME (slot MediaType (type LEXEME (slot MediaTitle(type LEXEME (slot MediaPublisher (type LEXEME (slot MediaEditors (type LEXEME (slot MediaVolInfo (type LEXEME (slot PublicationYear (type LEXEME (slot PublicationNoOfPages (type LEXEME (slot PublicationPagesInMedium (type LEXEME (slot PublicationAbstract (type LEXEME (slot PublicationFileName (type LEXEME (slot PublicationComments (type LEXEME (slot PublicationRelatedURL (type LEXEME (slot PublicationRelatedURLText (type LEXEME (slot PublicationLocation (type LEXEME (slot PublicationPubURL (type LEXEME (multislot Keyword (type LEXEME (type LEXEME (multislot Authors (type INSTANCE-NAME (multislot elem_ord (type SYMBOL (default (create$ PublicationTitle MediaType MediaTitle MediaPublisher MediaEditors MediaVolInfo PublicationYear PublicationNoOfPages PublicationPagesInMedium PublicationAbstract PublicationFileName PublicationComments PublicationRelatedURL PublicationRelatedURLText PublicationLocation PublicationPubURL Keyword (multislot att_lst (type SYMBOL default (create$ PublicationID Authors (multislot class-refs (source composite (type SYMBOL (default (create$ (multislot alias (source composite (type SYMBOL (storage shared (default (create$ [Publication] of XML-CLASS (generated user (alias Σχήµα 4.6 Ορισµός µερικών κλάσεων στο σύστηµα CLIPS 69

70 [pub-123] of Publication (IDSlot PublicationID (PublicationTitle "Using Logic for Querying XML Data" (MediaType "Book Chapter" (MediaTitle "Web Powered Databases" (MediaPublisher "IDEA Group Publishing" (MediaEditors "D. Taniar and W. Rahayu" (MediaVolInfo "Ch. 1" (PublicationYear "2003" (PublicationNoOfPages "35" (PublicationPagesInMedium "1-35" (PublicationAbstract "In this chapter, we propose the use of first-order logic, in the form of deductive database rules, as a query language for XML data and we present X-DEVICE, an extension of the deductive object-oriented database system DEVICE for storing and querying XML data. (PublicationFileName "idea-chapter1.pdf" (PublicationComments "N. Bassiliades, I. Vlahavas and D. Logic for Querying XML Data@quot, Web Powered Databases, D. Taniar and W. Rahayu {eds.}, Ch. 1, pp. 1-35, IDEA-Group Publishing, " (PublicationRelatedURL "http%3a%2f%2fwww%2ecsd%2eauth%2egr%2f%257elpis%2fsystems%2fx%2ddevice%2ehtml" (PublicationRelatedURLText "X%2DDEVICE" (PublicationLocation "" [author-9] of Author (IDSlot AuthorID (AuthorName "N" (AuthorMidleName "" (AuthorSurname "Bassiliades" (AuthorURL "http%3a%2f%2flpis%2ecsd%2eauth%2egr%2fpeople%2fnbassili%2f" (Author "nbassili%40csd%2eauth%2egr" (AuthorID "author-9" (elem_ord AuthorName AuthorMidleName AuthorSurname AuthorURL Author (att_lst AuthorID (class-refs (alias (PublicationPubURL "http%3a%2f%2fwww%2eidea%2dgroup%2ecom%2fbooks%2fdetails%2easp%3fid%3d4059" (Keyword "XML query language" "XML repository" "Deductive Object-Oriented Databases" (PublicationID "pub-123" (Authors [author-9] [author-2] [author-17] (elem_ord PublicationTitle MediaType MediaTitle MediaPublisher MediaEditors MediaVolInfo PublicationYear PublicationNoOfPages PublicationPagesInMedium PublicationAbstract PublicationFileName PublicationComments PublicationRelatedURL PublicationRelatedURLText PublicationLocation PublicationPubURL Keyword (att_lst PublicationID Authors (class-refs (alias [author-9] of Author (IDSlot AuthorID (AuthorName "N" (AuthorMidleName "" (AuthorSurname "Bassiliades" (AuthorURL "http%3a%2f%2flpis%2ecsd%2eauth%2egr%2fpeople%2fnbassili%2f" (Author "nbassili%40csd%2eauth%2egr" (AuthorID "author-9" (elem_ord AuthorName AuthorMidleName AuthorSurname AuthorURL Author (att_lst AuthorID (class-refs (alias Σχήµα 4.7 ηµιουργία ορισµένων αντικειµένων που αντιστοιχούν στα περιεχόµενα του XML εγγράφου Ανάκτηση του XML εγγράφου Αφού δηµιουργηθούν και τα αντικείµενα, το σύστηµα είναι σε θέση να δεχτεί ερωτήµατα από τον χρήστη και να ανακτήσει ολόκληρο ή µέρος του XML εγγράφου. Ο χρήστης πρέπει να εισάγει το όνοµα του αντικειµένου στην κορυφή της ιεραρχίας, οπότε και 70

71 ενεργοποιείται ο κανόνας expand, ο οποίος επιστρέφει, µετά από αναδροµή, το επιθυµητό µέρος του XML εγγράφου. Στην συνέχεια ενεργοποιούνται κανόνες για την µετατροπή του σε µορφή κατάλληλη για ανάγνωση από XML browsers και αποθήκευσή του σε αρχείο. Αυτοί οι κανόνες βρίσκονται στο αρχείο inverse.clp. Στο επόµενο κεφάλαιο ακολουθεί αναλυτική περιγραφή των συστατικών µερών του συστήµατος, δηλαδή των κανόνων και των συναρτήσεων του συστήµατος X-DEVICE. 4.3 υναµική ηµιουργία XML Αρχείου Το XML έγγραφο που χρησιµοποιείται στη δοκιµή του συστήµατος δεν είναι στατικό έγγραφο, αλλά δηµιουργείται δυναµικά µε άντληση στοιχείων από µια βάση δεδοµένων σε ACCESS µε επιστηµονικές δηµοσιεύσεις. Στην ενότητα αυτή παρουσιάζεται ο τρόπος µε τον οποίο δηµιουργείται δυναµικά το XML έγγραφο. Σχήµα 4.8: Η Βάση εδοµένων Το XML έγγραφο δηµιουργείται δυναµικά αντλώντας δεδοµένα από τη βάση δεδοµένων της ACCESS µε τη βοήθεια ενός ASP αρχείου, το οποίο περιέχει ένα πρόγραµµα (script σε γλώσσα Visual Basic (VBScript 71

ΕΥΦΥΗΣ ΔΙΑΧΕΙΡΙΣΗ XML ΔΕΔΟΜΕΝΩΝ ΜΕ ΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG

ΕΥΦΥΗΣ ΔΙΑΧΕΙΡΙΣΗ XML ΔΕΔΟΜΕΝΩΝ ΜΕ ΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΥΦΥΗΣ ΔΙΑΧΕΙΡΙΣΗ XML ΔΕΔΟΜΕΝΩΝ ΜΕ ΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PROLOG Διπλωματική Εργασία του Γεώργιου Αλεξιάδη (ΑΕΜ: 400)

Διαβάστε περισσότερα

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

Σημασιολογικός Ιστός (Semantic Web) - XML

Σημασιολογικός Ιστός (Semantic Web) - XML Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σημασιολογικός Ιστός (Semantic Web) - XML 4/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων ΝΤUA Τεχνολογία Πολυμέσων 5. Διάλεξη 5: XML XML Μεταγλώσσα για την κωδικοποίηση δεδομένων Πρόβλημα που επιζητά λύσεις: Kοινή γλώσσα επικοινωνίας των εφαρμογών Σημαίνει extensible Markup Language Σχεδιάστηκε

Διαβάστε περισσότερα

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ XML (extended Markup Language) Ι. Χατζηλυγερούδης ΕΙΣΑΓΩΓΗ SGML (Standard Generalized Markup Language) Διεθνές πρότυπο ορισμού μεθόδων αναπαράστασης πληροφοριών

Διαβάστε περισσότερα

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language) SGML (Standard Generalized Markup Language) Γλώσσα για την περιγραφή της δομης και του περιεχομένου ηλεκτρονικών κειμένων Πλήρης Σύνθετη Δύσκολη στην εκμάθηση και την χρήση HTML (HyperText Markup Language)

Διαβάστε περισσότερα

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Βάσεις Δεδομένων ΙΙ Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Εισαγωγή Πολλές εφαρμογές διαδικτύου υποστηρίζουν web διεπαφές

Διαβάστε περισσότερα

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML Δικτυακά Πολυμέσα ΙΙ Διάλεξη #2 η : Βασικές έννοιες σχεδιασμού στο web Γαβαλάς Δαμιανός dgavalas@aegean.gr Περιεχόμενα Τρέχον status της HTML Μετάβαση από την HTML στην XHTML Κλέ Καλές πρακτικές συγγραφής

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων ΝΤUA Τεχνολογία Πολυμέσων Contents 2. Lesson 5: XML Τα αρχικά XML Extensible Markup Language Μεταγλώσσα προγραμματισμού για την κωδικοποίηση δεδομένων Έστω ότι θέλουμε να παρουσιάσουμε ένα κείμενο, μια

Διαβάστε περισσότερα

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 example Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 Πρότυπα και XML Πρότυπα ενιαίο

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας µέσω της τεχνολογίας των ιαδοχικών Φύλλων Στυλ (cascading

Διαβάστε περισσότερα

Σημασιολογικός Ιστός (Semantic Web) - XML

Σημασιολογικός Ιστός (Semantic Web) - XML Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σημασιολογικός Ιστός (Semantic Web) - XML 1/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML Γιώργος Χρ. Μακρής Θεσσαλονίκη, Μάρτιος 2012 Αναπαράσταση Μαθηματικών Κειμένων στο διαδίκτυο

Διαβάστε περισσότερα

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address> ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟ ΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Βασικές Έννοιες - εδοµένα { Νίκος, Μιχάλης, Μαρία, Θάλασσα, Αυτοκίνητο }, αριθµοί, π.χ. {1, 2, 3, 5, 78}, συµβολοσειρές (strings) π.χ. { Κώστας, 5621, ΤΡ 882, 6&5 #1, +

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά Νίκος Πασσαράς

Διαβάστε περισσότερα

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών World Wide Web (WWW) Θέματα Επεξεργασία δεδομένων στο Web Δημιουργία απλών σελίδων HTML Περιγραφή κάποιων XHTML στοιχείων (tags) Εξέλιξης του WWW Το WWW

Διαβάστε περισσότερα

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος Κεφάλαιο 11: Εισαγωγή στην HTML 1 11.1 Γενική εισαγωγή στην HTML Τι είναι η HTML HyperText Markup Language - Γλώσσα Χαρακτηρισμού Υπερ-Κειμένου είναι η βασική γλώσσα με την οποία πραγματοποιείται η δόμηση

Διαβάστε περισσότερα

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

Σημασιολογικός Ιστός (Semantic Web) - XML

Σημασιολογικός Ιστός (Semantic Web) - XML Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σημασιολογικός Ιστός (Semantic Web) - XML 11/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html Χρ. Ηλιούδης Παγκόσμιος Ιστός (WWW) Ο Παγκόσμιος Ιστός (World Wide Web WWW), ή απλώς Ιστός, βασίζεται στην ιδέα των κατανεμημένων πληροφοριών. Αντί όλες

Διαβάστε περισσότερα

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

Διαβάστε περισσότερα

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

Διαβάστε περισσότερα

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Στις παραδοσιακές βάσεις δεδομένων, η πληροφορία είναι αυστηρά δομημένη και υπακούει σε ένα σταθερό σχήμα που έχει οριστεί εκ των προτέρων. Τα δεδομένα του Ιστού μπορεί να μην έχουν

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

Διαβάστε περισσότερα

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα) Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα) Μοντέλα, οµές (Σχήµα) και Αντιπρόσωποι (Data Models, Schema, and Instances) DBMS αρχιτεκτονική ιάφοροι τύποι γλωσσών και διεπαφές

Διαβάστε περισσότερα

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

Διαβάστε περισσότερα

Αλεξιάδης Γεώργιος (ΠΕ86) -

Αλεξιάδης Γεώργιος (ΠΕ86) - 11.1 Γενική Εισαγωγή στην HTML Τι είναι η HTML; HyperText Markup Language (Γλώσσα Χαρακτηρισμού Υπερ-Κειμένου) Βασίζεται στην SGML (Standard Generalized Markup Language) που είναι ένα πολύ μεγαλύτερο σύστημα

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό, 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή 1. εδοµένα, Πληροφορίες και Υπολογιστές 2. Πώς φτάσαµε στους σηµερινούς υπολογιστές 3. Το υλικό ενός υπολογιστικού συστήµατος 4. Το λογισµικό ενός υπολογιστικού συστήµατος

Διαβάστε περισσότερα

Τίτλος Πακέτου Certified Computer Expert-ACTA

Τίτλος Πακέτου Certified Computer Expert-ACTA Κωδικός Πακέτου ACTA - CCE - 002 Τίτλος Πακέτου Certified Computer Expert-ACTA Εκπαιδευτικές Ενότητες Επεξεργασία Κειμένου - Word Δημιουργία Εγγράφου Προχωρημένες τεχνικές επεξεργασίας κειμένου & αρχείων

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

Διαβάστε περισσότερα

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

Διαβάστε περισσότερα

Μάθηµα 3. Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας

Μάθηµα 3. Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας Μάθηµα 3 45 Ολοκληρωµένα Συστήµατα Βιβλιοθηκών Η έννοια του «Ολοκληρωµένου» Συστατικά (modules)( Καταλογογράφηση Προσκτήσεις ανεισµός ιαχείριση Περιοδικών ηµόσιος Κατάλογος (OPAC( OPAC-On-line Public Access

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

Διαβάστε περισσότερα

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες 1 η Ερώτηση (Ορισμός): Τι είναι το Διαδίκτυο; Διαδίκτυο είναι το παγκόσμιο δίκτυο όλων των επιμέρους δικτύων που έχουν συμφωνήσει σε κοινούς κανόνες επικοινωνίας και

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

Αυτοματοποιημένη χαρτογραφία

Αυτοματοποιημένη χαρτογραφία ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αυτοματοποιημένη χαρτογραφία Ενότητα # 5: Χαρτογραφικές βάσεις δεδομένων Ιωάννης Γ. Παρασχάκης Τμήμα Αγρονόμων & Τοπογράφων Μηχανικών

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 435: ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΥΠΟΛΟΓΙΣΤΗ Ακαδηµαϊκό Έτος 2004 2005, Χειµερινό Εξάµηνο 2 Η ΟΜΑ ΙΚΗ ΕΡΓΑΣΙΑ: ΑΝΑΠΤΥΞΗ ΑΡΧΙΚΗΣ Ι ΕΑΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΝΑΓΚΩΝ

Διαβάστε περισσότερα

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

Διαβάστε περισσότερα

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head> Εισαγωγη στην html Ο παγκόσμιος ιστός (αγγ.: World Wide Web ή www) είναι η πιο δημοφιλής υπηρεσία που μας παρέχει το Διαδίκτυο (Internet) και είναι ένα σύστημα διασυνδεδεμένων πληροφοριών (κειμένου, εικόνας,

Διαβάστε περισσότερα

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

Διαβάστε περισσότερα

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αλέξανδρος Βαλαράκος (alexv@iit.demokritos.gr) (alexv@aegean.gr) Υποψήφιος ιδάκτορας Τµήµα Μηχανικών Υπολογιστικών και Πληροφοριακών Συστηµάτων.

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Βάσεις Δεδομένων - Γενικά Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα. Τα περιεχόμενα

Διαβάστε περισσότερα

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol)

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία FTP (File Transfer Protocol) Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας Κέρκυρα ίκτυα - Internet 2 Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) ΜηχανέςΑναζήτησηςστοWeb Ηλεκτρονική Αλληλογραφία (E-mail) Υπηρεσία

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων -Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a) Create

Διαβάστε περισσότερα

Σύστηµα Αρχείων και Καταλόγων

Σύστηµα Αρχείων και Καταλόγων ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Ποιες είναι οι κύριες ετικέτες που χρησιμοποιεί η HTML για την περιγραφή της συνολικής δομής μιας ιστοσελίδας;

Ποιες είναι οι κύριες ετικέτες που χρησιμοποιεί η HTML για την περιγραφή της συνολικής δομής μιας ιστοσελίδας; Τι είναι η HTML; Η HTML είναι το ακρωνύμιο των λέξεων HyperText Markup Language, δηλαδή Γλώσσα Χαρακτηρισμού Υπερ Κειμένου και βασίζεται στη γλώσσα SGML, Standard Generalized Markup Language, που είναι

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο. Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2.

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο. Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2. ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2.0_v1 Page 17 of 29 Βάσεις Δεδομένων, Προχωρημένο Επίπεδο Ακολουθεί η Εξεταστέα

Διαβάστε περισσότερα

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων ΕΣΔ516 Τεχνολογίες Διαδικτύου Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα Ορισμοί Συστατικά στοιχεία εννοιολογικής σχεδίασης Συστατικά

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΛΟΓΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (III) ΙΖΑΜΠΩ ΚΑΡΑΛΗ ΑΘΗΝΑ 2008 Σύγχρονεςανάγκες για αναπαράσταση γνώσης

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I Διαδικτυακή Εφαρμογή (1/2) Ως διαδικτυακή εφαρμογή μπορούμε

Διαβάστε περισσότερα

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7 ΣΤΟΧΟΙ ΕΞΕΤΑΣΗΣ Η ενότητα ECDL WebStarter απαιτεί από τον Υποψήφιο να κατανοεί τις κύριες έννοιες της σχεδίασης και δημοσίευσης δικτυακών

Διαβάστε περισσότερα

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ Χρήστες ΣΔΒΔ Απλοί Χρήστες: συγκεκριμένες λειτουργίες σε

Διαβάστε περισσότερα

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Μεταδεδομένα στο Ψηφιακό περιβάλλον Μεταδεδομένα στο Ψηφιακό περιβάλλον Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο Ψηφιακό Τεκμήριο Οτιδήποτε υπάρχει σε ηλεκτρονική μορφή και μπορεί να προσπελαστεί μέσω υπολογιστή Μεταδεδομένα

Διαβάστε περισσότερα

7.11 Πρωτόκολλα εφαρµογής

7.11 Πρωτόκολλα εφαρµογής 7.11 Πρωτόκολλα εφαρµογής Ερωτήσεις 1. Ποιος ο ρόλος των πρωτοκόλλων εφαρµογής και πώς χειρίζονται τις συνδέσεις δικτύου; 2. Γιατί κάθε πρωτόκολλο εφαρµογής ορίζει συγκεκριµένο τρόπο παρουσίασης των δεδοµένων;

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

Γαβαλάς αµιανός

Γαβαλάς αµιανός Πανεπιστήµιο Αιγαίου Σχολή Κοινωνικών Επιστηµών Τµήµα Πολιτισµικής Τεχνολογίας Και Επικοινωνίας ικτυακά Πολυµέσα Ι (Β Έτος, 3ο εξ) Εργαστήριο #1ο: Εισαγωγή στην HTML Γαβαλάς αµιανός dgavalas@aegean.gr

Διαβάστε περισσότερα

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

Διαβάστε περισσότερα

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης GUnet e-class Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης

Διαβάστε περισσότερα

Επισκόπηση Μαθήµατος

Επισκόπηση Μαθήµατος Βάσεις εδοµένων 5 ο Εξάµηνο ηµήτρης Λέκκας Επίκουρος Καθηγητής dlekkas@env.aegean.gr Τµήµα Στατιστικής & Αναλογιστικών-Χρηµατοοικονοµικών Μαθηµατικών Επισκόπηση Μαθήµατος Εισαγωγή (Σ Β ) Το µοντέλο σχέσεων

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

Διαβάστε περισσότερα

Περιεχόµενα. 1 Tο βιβλίο "µε µια µατιά" Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access...

Περιεχόµενα. 1 Tο βιβλίο µε µια µατιά Εισαγωγή στη Microsoft Access Γνωριµία µε τις βάσεις δεδοµένων της Access... Περιεχόµενα Ευχαριστίες... 11 1 Tο βιβλίο "µε µια µατιά"...13 Χωρίς τεχνικούς όρους!... 13 Σύντοµη παρουσίαση... 14 Μερικές συµβάσεις... 16 Μία τελευταία λέξη (ή και δύο)... 16 2 Εισαγωγή στη Microsoft

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟ ΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath

3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath ιαχείριση εδομένων στον Παγκόσμιο Ιστό Χρήστος ουλκερίδης Τμήμα

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

Διαβάστε περισσότερα

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Ηµεροµηνία Μάιος 2004 Πίνακας Περιεχοµένων ΕΙΣΑΓΩΓΗ 3 ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ 4 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ

Διαβάστε περισσότερα

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... xiii

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

Διαβάστε περισσότερα

Information Technology for Business

Information Technology for Business Information Technology for Business! Lecturer: N. Kyritsis, MBA, Ph.D. Candidate!! e-mail: kyritsis@ist.edu.gr Διαχείριση Επιχειρηματικών Δεδομένων - Databases Ορισμός Βάσης Δεδομένων Συλλογή συναφών αρχείων

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΕΙΜΕΝΟΥ

ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΕΙΜΕΝΟΥ ΚΕΙΜΕΝΟ Ο πρώτος τρόπος απεικόνισης πληροφορίας (και βασικός ως σήμερα). Αδυναμία πρώτων υπολογιστών να χειριστούν άλλη μορφή πληροφορίας. Πρόβλημα με καθιερωμένα πρότυπα (π.χ. ASCII), π.χ. σε πολυγλωσσικές

Διαβάστε περισσότερα

Εισαγωγή στα Συστήµατα Βάσεων Δεδοµένων

Εισαγωγή στα Συστήµατα Βάσεων Δεδοµένων Εισαγωγή στα Συστήµατα Βάσεων Δεδοµένων Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Βασικές Έννοιες Τι είναι µια βάση δεδοµένων; Βάση Δεδοµένων: συλλογή από σχετιζόµενα δεδοµένα Ειδικού σκοπού λογισµικό

Διαβάστε περισσότερα

Προγραμματισμός Διαδικτύου

Προγραμματισμός Διαδικτύου Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Προγραμματισμός Διαδικτύου Δρ. Μηνάς Δασυγένης mdasygenis@uowm.gr Τμήμα της παρουσίασης δημιουργήθηκε από τον κ. Παναγιώτη

Διαβάστε περισσότερα

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο Τι είναι ένα σύστημα διαχείρισης περιεχομένου; Παρά την μεγάλη εξάπλωση του διαδικτύου και τον ολοένα αυξανόμενο αριθμό ιστοσελίδων, πολλές εταιρείες ή χρήστες δεν είναι εξοικειωμένοι με την τεχνολογία

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα,

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα