ΔEiXTo Σύστημα Αποδελτίωσης Ιστοσελίδων

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

Download "ΔEiXTo Σύστημα Αποδελτίωσης Ιστοσελίδων"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΚΑΤΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔEiXTo Σύστημα Αποδελτίωσης Ιστοσελίδων Μεταπτυχιακή Διπλωματική Εργασία του Κωνσταντίνου Ντονά (ΑΕΜ: 67) Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης ΘΕΣΣΑΛΟΝΙΚΗ ΜΑΡΤΙΟΣ 2007

2

3 Πρόλογος Ο όγκος της μη δομημένης διαθέσιμης πληροφορίας στον Παγκόσμιο Ιστό είναι τεράστιος και μάλιστα αυξάνεται με γοργούς ρυθμούς. Ο εντοπισμός της επιθυμητής πληροφορίας, η εξαγωγή και η αποθήκευση της σε δομημένη μορφή καθώς και η περαιτέρω αξιοποίηση της εμπεριέχουν πολλές δυσκολίες. Επιτακτική είναι η ανάγκη για περισσότερο αποτελεσματικές τεχνικές ανάκτησης των επιθυμητών δεδομένων. Ο τομέας της εξαγωγής περιεχομένου από ιστοσελίδες με αυτοματοποιημένο τρόπο, διαμέσου εξειδικευμένων προγραμμάτων, παρουσιάζει ιδιαίτερο ενδιαφέρον, τόσο για την επιστημονική κοινότητα, όσο και για τους απλούς χρήστες. Στο πλαίσιο της εργασίας αναπτύχθηκε σύστημα εξαγωγής πληροφορίας από HTML ιστοσελίδες, το οποίο βασίζεται στο Μοντέλο Αντικειμένου Εγγράφου (DOM) και έχει να επιδείξει αρκετά προηγμένα χαρακτηριστικά και πολύ υψηλά επίπεδα ακρίβειας, τουλάχιστον για την πλειοψηφία των περιπτώσεων. Το εργαλείο, που έχει όνομα ΔEiXTo, θέτει τις βάσεις για την αυτοματοποίηση εργασιών αποδελτίωσης στον Ιστό και την κατασκευή πληθώρας νέων υπηρεσιών προστιθέμενης αξίας. Η εργασία εκπονήθηκε στο Τμήμα Πληροφορικής του Αριστοτέλειου Πανεπιστημίου Θεσσαλονίκης, στο Εργαστήριο Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού, στο πλαίσιο εκπλήρωσης των υποχρεώσεων μου για την απόκτηση του Μεταπτυχιακού Διπλώματος Εξειδίκευσης στα Πληροφοριακά Συστήματα. Θα ήθελα να ευχαριστήσω θερμά τον κ. Νικόλαο Βασιλειάδη, επίκουρο καθηγητή του τμήματος Πληροφορικής, για την ανάθεση και την επίβλεψη της εργασίας. Επίσης, ευχαριστώ θερμά τον κ. Φώτιο Κόκκορα, διδάκτορα του τμήματος Πληροφορικής και μέλος της ερευνητικής ομάδας Ευφυών Συστημάτων και Επεξεργασίας Γνώσης (ISKP), για την πραγματικά πολύτιμη βοήθεια του και την εξαιρετική συνεργασία που είχαμε. Τέλος, θα ήθελα να ευχαριστήσω τους συναδέλφους μου Βεράνη Γεώργιο, Μπάνο Ευάγγελο και Παπάζογλου Χρυσούλα για τις εύστοχες παρατηρήσεις και τις χρήσιμες συμβουλές τους κατά τη διάρκεια εκπόνησης της εργασίας. Κωνσταντίνος Ντονάς Θεσσαλονίκη, Απρίλιος 2007 i

4

5 Περιεχόμενα ΠΡΟΛΟΓΟΣ...I ΠΕΡΙΕΧΟΜΕΝΑ...III 1 ΕΙΣΑΓΩΓΗ ΑΝΑΖΗΤΗΣΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΑΣ ΕΡΓΑΣΙΕΣ ΙΣΤΟΥ ΚΑΙ ΠΡΟΒΛΗΜΑΤΑ ΑΥΤΟΜΑΤΗ ΕΞΑΓΩΓΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΤΟ ΣΥΣΤΗΜΑ ΔEIXTO ΕΞΑΓΩΓΗ ΠΛΗΡΟΦΟΡΙΑΣ ΠΕΡΙΕΧΟΜΕΝΟ ΙΣΤΟΣΕΛΙΔΩΝ ΤΕΧΝΙΚΕΣ ΕΞΑΓΩΓΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΥΠΑΡΧΟΝΤΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΥΣΤΗΜΑ ΔEIXTO ΤΕΧΝΟΛΟΓΙΚΟ ΥΠΟΒΑΘΡΟ BORLAND DELPHI ΜΟΝΤΕΛΟ ΑΝΤΙΚΕΙΜΕΝΟΥ ΕΓΓΡΑΦΟΥ ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ ΕΠΕΚΤΑΣΙΜΗ ΓΛΩΣΣΑ ΣΗΜΑΝΣΗΣ ΟΡΙΣΜΟΣ ΤΥΠΟΥ ΕΓΓΡΑΦΟΥ REALLY SIMPLE SYNDICATION ΤΟ ΣΥΣΤΗΜΑ ΔEIXTO ΕΝΣΩΜΑΤΩΜΕΝΟ ΠΡΟΓΡΑΜΜΑ ΠΛΟΗΓΗΣΗΣ MYDOM ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΗΜΙΟΥΡΓΙΑ ΚΑΝΟΝΑ ΕΞΑΓΩΓΗΣ ΡΥΘΜΙΣΗ ΚΑΝΟΝΑ ΕΞΑΓΩΓΗΣ ΠΛΟΗΓΗΣΗ ΣΤΗΝ ΕΠΟΜΕΝΗ ΣΕΛΙΔΑ ΧΡΗΣΗ ΚΑΝΟΝΙΚΩΝ ΕΚΦΡΑΣΕΩΝ ΕΚΤΕΛΕΣΗ ΚΑΝΟΝΑ ΕΞΑΓΩΓΗΣ...54 iii

6 4.8 ΕΙΚΟΝΙΚΗ ΡΙΖΑ ΚΑΝΟΝΑ ΔΙΑΔΟΧΙΚΟΙ ΠΡΟΑΙΡΕΤΙΚΟΙ ΚΟΜΒΟΙ ΑΛΓΟΡΙΘΜΟΣ ΣΥΜΦΩΝΙΑΣ ΠΡΟΤΥΠΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΟΣ ΤΡΟΠΟΣ ΛΕΙΤΟΥΡΓΙΑΣ ΑΥΤΟΜΑΤΗ ΥΠΟΒΟΛΗ ΦΟΡΜΑΣ ΔΙΟΡΘΩΣΗ ΚΑΝΟΝΑ ΕΞΑΓΩΓΗΣ WRAPPER PROJECT FILES ΈΞΟΔΟΣ ΣΕ RSS ΑΡΧΕΙΟ ΣΤΑΤΙΣΤΙΚΑ ΤΟ ΔΕIXTO ΣΕ ΧΡΗΣΗ ΣΕΛΙΔΕΣ ΔΗΜΟΠΡΑΣΙΩΝ ΠΑΡΑΓΩΓΗ RSS ΠΡΟΣΘΕΤΑ ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ...87 ΒΙΒΛΙΟΓΡΑΦΙΑ...91 ΠΑΡΑΡΤΗΜΑ...93 iv

7 1 Εισαγωγή Ο Παγκόσμιος Ιστός (World Wide Web ή WWW) έχει εξελιχθεί ραγδαία σε έναν ω- κεανό από δεδομένα. Η περιήγηση των χρηστών μέσα σε αυτό τον τεράστιο όγκο δεδομένων γίνεται μέσω προγραμμάτων πλοήγησης (web browsers) και ο εντοπισμός των πηγών που περιέχουν επιθυμητή πληροφορία επιτυγχάνεται κατά κύριο λόγο μέσω των μηχανών αναζήτησης (search engines). Οι μηχανές αναζήτησης επιτρέπουν στους χρήστες να ανακτήσουν έγγραφα (documents) που το περιεχόμενο τους πληροί ορισμένα κριτήρια. Τυπικά, επιστρέφουν λίστα με έγγραφα που περιέχουν δεδομένη λέξη κλειδί (keyword) ή φράση. 1.1 Αναζήτηση και Διαχείριση Πληροφορίας Η αξία των μηχανών αναζήτησης είναι αδιαμφισβήτητη αλλά ακόμα και οι ισχυρότερες μηχανές αναζήτησης παραδέχονται πως είναι απλά αδύνατο να κατασκευαστεί ευρετήριο (index) για ολόκληρο τον Ιστό. Αυτό οφείλεται στο γεγονός ότι ο Ιστός αναπτύσσεται συνεχώς με ταχύτατους ρυθμούς καθώς και στο ότι πολλές ιστοσελίδες (web pages) ενημερώνονται τακτικά αναγκάζοντας τις μηχανές αναζήτησης να τις ξαναεπισκέπτονται συχνά. Μία προσέγγιση για μερική επίλυση του παραπάνω προβλήματος είναι οι μηχανές μετα-αναζήτησης (meta-search engines) οι οποίες επιτρέπουν στο χρήστη να εισάγει την ερώτηση (search query) μία φορά και μετά να ψάξει παράλληλα πολλές μηχανές αναζήτησης και κατά συνέπεια σε μεγαλύτερο μέρος του Ιστού, εύκολα και γρήγορα. Η δυνατότητα αυτή επιτυγχάνεται μέσω αυτόματης υποβολής ερωτήσεων στις πηγές, ανάκτησης των σελίδων των αποτελεσμάτων, εξαγωγής των αποτελεσμάτων και συνδυασμού τους σε μία ταξινομημένη λίστα. Το πρόβλημα όμως είναι ακόμα μεγαλύτερο εξαιτίας της ύπαρξης του αόρατου ή κρυφού ιστού (hidden ή ή invisible ή deep Web), δηλαδή σελίδων για τις οποίες δεν υπάρχουν εισερχόμενοι υπερσύνδεσμοι (hyperlinks) (π.χ. δημιουργούνται δυναμικά κατόπιν ερωτήματος του χρήστη), με αποτέλεσμα να μην είναι ορατές στα προγράμματα «σάρωσης» του Ιστού που χρησιμοποιούν οι μηχανές αναζήτησης (spiders ή web crawlers). Ο αόρατος ιστός περιλαμβάνει επίσης δικτυακούς τόπους (web 1

8 sites) που απαιτούν εγγραφή μέλους (registration) ή θέτουν περιορισμούς πρόσβασης στις σελίδες τους. Το μεγαλύτερο μέρος του όμως αποτελείται από βάσεις δεδομένων ελεγχόμενης χρήσης (proprietary databases). Συνεπώς, μεγάλη ποσότητα δεδομένων που βρίσκεται αποθηκευμένη σε βάσεις δεδομένων δεν είναι προσβάσιμη από τις παραδοσιακές μηχανές αναζήτησης. Μία νέα τεχνολογία που έχει εξελιχθεί για το σκοπό αυτό είναι η ταυτόχρονη αναζήτηση σε πολλαπλές πηγές δεδομένων από ενιαίο περιβάλλον (federated search). Σκοπός τέτοιων συστημάτων είναι η παροχή της δυνατότητας στο χρήστη να ψάξει πολλές ανεξάρτητες πηγές ή βάσεις δεδομένων κάνοντας μία και μόνο ερώτηση. Για το λόγο αυτό, συστήματα τέτοιου τύπου απαιτούν μια βιβλιοθήκη ή ένα πανεπιστήμιο ή κάποιο άλλο φορέα, ο οποίος πληρώνει συνδρομή σε παροχείς δεδομένων ώστε να είναι δυνατή η πρόσβαση σε αυτά. Σύμφωνα με την παραδοσιακή πρακτική αναζήτησης, ο χρήστης είναι υποχρεωμένος να επιλέξει μία βάση δεδομένων, να κάνει την αναζήτησή του, να συλλέξει και να αξιολογήσει τα επιστρεφόμενα δεδομένα και έ- πειτα να επαναλάβει τη διαδικασία με άλλη βάση δεδομένων. Επιπρόσθετα, κάθε βάση δεδομένων έχει διαφορετικά χαρακτηριστικά και επιλογές αναζήτησης, γεγονός που αναγκάζει το χρήστη να αφιερώσει χρόνο ώστε να εξοικειωθεί με το περιβάλλον αναζήτησης που αυτή παρέχει. Είναι προφανή λοιπόν τα πλεονεκτήματα της ταυτόχρονης αναζήτησης. Θεμελιώδης προϋπόθεση όμως για την ανάπτυξη τέτοιων συστημάτων είναι η δυνατότητα αυτόματης πλοήγησης σε ιστοσελίδες, συμπλήρωσης και υποβολής φορμών, εντοπισμού και εξαγωγής των αποτελεσμάτων σε κατάλληλη μορφή. Επίσης, η διαχείριση των δεδομένων που είναι διαθέσιμα σήμερα στον Ιστό παρουσιάζει σημαντικές δυσκολίες καθώς τεράστια ποσότητα πληροφορίας είναι κωδικοποιημένη σε HTML (Hypertext Markup Language) έγγραφα. Τα έγγραφα αυτά δεν παρέχουν περιγραφή της σημασιολογίας (semantics) του περιεχομένου τους και προορίζονται για προβολή πληροφοριών στην οθόνη του χρήστη μέσω των προγραμμάτων πλοήγησης παρά για ανταλλαγή δεδομένων μεταξύ προγραμμάτων. Κατά συνέπεια τα «φιλικά» στο χρήστη (human-friendly), μη δομημένης φύσης δεδομένα των ιστοσελίδων δεν είναι κατανοητά από μηχανές και δεν είναι δυνατό να υποστούν ά- μεση επεξεργασία. Παραδοσιακές τεχνικές από τον τομέα των βάσεων δεδομένων (databases) και της εξόρυξης δεδομένων (data mining) δε μπορούν να εφαρμοστούν απευθείας σε τέτοιου είδους δεδομένα, διότι απαιτούν δομημένη και οργανωμένη πληροφορία. 2

9 Η έλευση της XML (Extensible Markup Language) και η ενσωμάτωση μεταδεδομένων (metadata) σε έγγραφα Ιστού βελτίωσε κάπως την κατάσταση αλλά το όραμα του σημασιολογικού Ιστού (Semantic Web) απέχει αρκετά ακόμα από την πραγματοποίηση του. Ο κύριος όγκος της πληροφορίας εξακολουθεί να είναι σε μορφή HTML και μάλιστα αυξάνει διαρκώς. Σαν αποτέλεσμα, ο εντοπισμός και η εξαγωγή δεδομένων που ενδιαφέρουν το χρήστη μέσα σε HTML έγγραφα καθώς και η αποθήκευσή τους σε κάποια δομημένη μορφή, κατάλληλη για χρήση από άλλες ε- φαρμογές, παρουσιάζουν αρκετά προβλήματα. 1.2 Εργασίες Ιστού και Προβλήματα Οι καθημερινές εργασίες (tasks) των χρηστών περιλαμβάνουν τις περισσότερες φορές επίσκεψη πολλών ιστοσελίδων, προσεκτική επιλογή μέρους των δεδομένων τους και μεταφορά τους σε άλλη εφαρμογή μέσω εκτεταμένης χρήσης εντολών αντιγραφής και επικόλλησης. Η συχνότητα τέτοιων εργασιών και η προσπάθεια που απαιτούν, καθιστούν επιβεβλημένη τη χρήση αποτελεσματικότερων τρόπων ανάκτησης και χειρισμού των επιθυμητών δεδομένων. Πολλοί χρήστες επισκέπτονται ιστοχώρους της προτίμησης τους σε καθημερινή βάση γιατί πολύ απλά ενδιαφέρονται για το περιεχόμενο τους και θέλουν να το παρακολουθούν. Αρκετοί είναι αυτοί που δυσκολεύονται σε ένα δικτυακό τόπο με πλούσιο περιεχόμενο, να εντοπίσουν και να απομονώσουν ενδιαφέρουσες γι αυτούς πληροφορίες. Συχνά μάλιστα τα επιθυμητά δεδομένα βρίσκονται διασκορπισμένα σε πολλές ιστοσελίδες. Επιπρόσθετη επιβάρυνση στην κατάσταση μπορεί να επιφέρει η υπερβολική χρήση διαφημιστικού υλικού, κινούμενων γραφικών, εικόνων και άλλων στοιχείων, η οποία καθιστά το περιεχόμενο μη ελκυστικό. Για παράδειγμα, ένα άρθρο το κείμενο του οποίου εκτείνεται σε πολλές, διαδοχικά συνδεδεμένες σελίδες ενός ιστοχώρου γίνεται δυσανάγνωστο και δύσχρηστο για τον τακτικό αναγνώστη, ειδικά όταν παρεμβάλλονται μεταξύ τμημάτων του κειμένου διαφημιστικές καταχωρήσεις. Σίγουρα θα ήταν πολύ βολικό να υπήρχε ένα πρόγραμμα το οποίο να επισκέπτεται τους δικτυακούς τόπους που ενδιαφέρουν ένα χρήστη και να συλλέγει για λογαριασμό του μόνο τις επιθυμητές πληροφορίες. Για παράδειγμα, θα είχε ενδιαφέρον αλλά και αξία για ένα χρήστη, να μπορούσε μέσω κατάλληλου λογισμικού να ανακτά κάθε βράδυ τις μετεωρολογικές προβλέψεις από μια ιστοσελίδα, ή να αντλεί κάθε πρωί από διάφορους ειδησεογραφικούς ιστοχώρους τις επικεφαλίδες ή και τα άρθρα 3

10 μόνο των αθλητικών ειδήσεων. Η αυτοματοποιημένη πρόσβαση σε πηγές θα εξοικονομούσε επαναλαμβανόμενη επίπονη προσπάθεια και θα εξασφάλιζε περισσότερο χρόνο για αξιοποίηση και επεξεργασία των δεδομένων, όπως και περισσότερο ελεύθερο χρόνο. Επίσης, συχνά κάποιος θέλει τα δεδομένα σε διαφορετική μορφή από αυτή με την οποία παρουσιάζονται ώστε να μπορεί να τα εισάγει και να τα επεξεργαστεί σε άλλες εφαρμογές. Άλλες φορές πάλι, κάποιος μπορεί να θέλει να συλλέξει δεδομένα από πολλές ετερογενείς πηγές, να τα συγχωνεύσει σε κάποια οργανωμένη μορφή και ακολούθως να τα χειριστεί περαιτέρω. Ευνόητες δυσκολίες όμως καθιστούν τη χειροκίνητη υλοποίηση των παραπάνω απαγορευτική. Γενικά, η περιήγηση (browsing) των μέσων χρηστών στον Παγκόσμιο Ιστό έχει αρκετά προβλήματα. Η ύπαρξη ανεπιθύμητων και άσχετων δεδομένων (clutter) σε μία σελίδα που ενδιαφέρει το χρήστη, πολλές φορές τον αποπροσανατολίζει και δυσχεραίνει σημαντικά την εργασία του. Το πρόβλημα είναι ακόμα εντονότερο όταν η πρόσβαση στον Ιστό γίνεται μέσω PDAs και κινητών (cellular) τηλεφώνων, δεδομένου του μικρού μεγέθους της οθόνης αυτών των συσκευών. Φυσικά, θα ήταν ιδιαίτερα χρήσιμη η αυτόματη εξαγωγή μόνο της χρήσιμης και σχετικής πληροφορίας από μία ιστοσελίδα και προβολή της πληροφορίας αυτής σε μία νέα σελίδα, φτιαγμένη στα μέτρα του χρήστη. Μία τέτοια εφαρμογή θα μπορούσε επίσης να βοηθήσει τα άτομα με προβλήματα όρασης καθώς θα βελτίωνε σημαντικά την προσβασιμότητα των ιστοσελίδων. Μία άλλη όψη του ζητήματος αφορά στην ενημέρωση, η οποία είναι καθολικά αποδεκτό ότι στη σύγχρονη εποχή της γνώσης και της πληροφορίας κατέχει σπουδαίο ρόλο. Το Διαδίκτυο αποτελείται πλέον από αμέτρητες σελίδες οι οποίες περιέχουν τέτοιο πλούτο πληροφοριών που είναι σχεδόν αδύνατο για τον οποιονδήποτε να μπορεί να παρακολουθεί διαρκώς ό,τι νεότερο συμβαίνει στον κόσμο ή στο αντικείμενο που τον ενδιαφέρει. Εδώ έρχεται να δώσει τη λύση το RSS, το οποίο επιτρέπει στους χρήστες να βλέπουν πότε ανανεώθηκε το περιεχόμενο των δικτυακών τόπων που τους ενδιαφέρει. Πλέον όλες οι επιθυμητές πληροφορίες έρχονται κατευθείαν στον υπολογιστή του χρήστη χωρίς αυτός να χρειάζεται να επισκέπτεται καθημερινά τους αντίστοιχους δικτυακούς τόπους. Το RSS γνωρίζει μεγάλη άνθιση τελευταία, όμως ο αριθμός των ιστοχώρων που κάνουν διαθέσιμο το περιεχόμενο τους σε RSS μορφή είναι σχετικά 4

11 μικρός, γεγονός που είναι ισχυρότατο κίνητρο για την κατασκευή εργαλείων αυτόματης παραγωγής RSS αρχείων. Μία άλλη διάσταση του γενικότερου προβλήματος έχει να κάνει με την εκρηκτική ανάπτυξη τα τελευταία χρόνια του ηλεκτρονικού εμπορίου (e-commerce) και το ευρύ φάσμα των εφαρμογών του. Η χρήση του Ιστού πλέον για ενημερωμένη απόφαση αγοράς (informed purchase decision) είναι ευρεία. Παρόλο που ο εντοπισμός πληροφοριών για καταναλωτικά αγαθά είναι εύκολος, η σύγκριση ομοειδών αντικειμένων εξακολουθεί να είναι προβληματική, καθώς η δυνατότητα αντιπαράθεσης χαρακτηριστικών μεταξύ προϊόντων είναι αποσπασματική και περιορισμένης κλίμακας. Στις περισσότερες περιπτώσεις, ο υποψήφιος αγοραστής για να αποκτήσει πλήρη εικόνα της αγοράς πρέπει να επισκεφτεί πληθώρα ιστοχώρων και να καταβάλλει αρκετή προσπάθεια για να εντοπίσει και να συγκεντρώσει λεπτομερή τεχνικά χαρακτηριστικά, προδιαγραφές και άλλες πληροφορίες που τον ενδιαφέρουν. Ακόμα, πολύ συχνά ένας καταναλωτής κατά την έρευνα του σε ένα ηλεκτρονικό κατάστημα (e-shop) βρίσκεται αντιμέτωπος με εκατοντάδες προϊόντα της ίδιας κατηγορίας, οι πληροφορίες των οποίων εκτείνονται σε πολλαπλές σελίδες, γεγονός που καθιστά πολύ δύσκολη, έως και αδύνατη τη συλλογή όλων των απαραίτητων πληροφοριών. Μεγάλος αριθμός αγοραστών σύμφωνα με πρόσφατες έρευνες επισκέπτονται κάποια υπηρεσία σύγκρισης τιμών (price comparison engine) πριν από κάθε online αγορά τους. Αυτές οι υπηρεσίες καθοδηγούν τους υποψήφιους πελάτες, βοηθώντας τους να επιλέξουν τον πιο αξιόπιστο έμπορο για κάθε προϊόν και παρέχουν στοιχεία για τη διαθεσιμότητα των προϊόντων, την ποιότητα εξυπηρέτησης και τους χρόνους παράδοσης. Οι περισσότερες από αυτές τις υπηρεσίες συλλέγουν τις απαραίτητες πληροφορίες με χρήση ειδικών προγραμμάτων τα οποία καταγράφουν και συγκρίνουν αυτόματα τις τιμές των προϊόντων σε πολλά διαφορετικά ηλεκτρονικά καταστήματα. Επιπλέον, πολλές επιχειρήσεις παρακολουθούν τα ηλεκτρονικά καταστήματα των ανταγωνιστών τους, ώστε να γνωρίζουν τις τιμές των προϊόντων τους και τις προσφορές ή τις εκπτώσεις τους, με σκοπό την καλύτερη προώθηση των δικών τους προϊόντων και την απόκτηση ανταγωνιστικού πλεονεκτήματος. Δεδομένου όμως του μεγάλου πλήθους των προϊόντων, η εργασία αυτή απαιτεί σημαντικό κόπο και χρόνο. Η κατάσταση επιβαρύνεται ακόμα περισσότερο διότι η συλλογή πληροφοριών πρέπει να γίνεται αρκετά συχνά, αν όχι συνέχεια. Αν λάβει κανείς υπόψη του και το σκληρό 5

12 ανταγωνισμό μεταξύ των εταιριών, τότε αντιλαμβάνεται και τη σημασία που θα είχε η αυτοματοποίηση της παραπάνω διαδικασίας. Τέλος, οι εμπορικοί (commercial) δικτυακοί τόποι δημοσιεύουν πληροφορίες που προέρχονται από πολλαπλές βάσεις δεδομένων, τα δεδομένα των οποίων συνήθως ενημερώνονται τακτικά. Η αξιοπιστία και η ορθότητα της δημοσιευμένης πληροφορίας είναι ζητήματα που απασχολούν κάθε διαχειριστή συστήματος (system administrator) και διαχειριστή δικτυακού τόπου (webmaster). Μάλιστα, τυχόν λάθη σε ένα εμπορικό ιστοχώρο μπορούν να οδηγήσουν σε σημαντικές ζημίες, νομικά προβλήματα και απώλειες σε πελάτες. Για την εύρεση όμως των σφαλμάτων σε ένα ιστοχώρο, απαιτείται η δυνατότητα εντοπισμού και προσπέλασης ή εξαγωγής συγκεκριμένων επιθυμητών πεδίων πληροφορίας. Για παράδειγμα, σύνδεσμοι που απουσιάζουν (missing links), λανθασμένοι (incorrect) σύνδεσμοι, εικόνες που έχουν παραληφθεί ή είναι λανθασμένες, είναι μερικά μόνο από τα προβλήματα που μπορεί να προκύψουν σε ένα ιστοχώρο. Δεδομένου όμως του μεγάλου μεγέθους των περισσότερων εμπορικών δικτυακών τόπων, έχει ζωτική σημασία η χρήση αυτοματοποιημένων μέσων για έλεγχο της ορθότητας (correctness) και της συνέπειας (consistency) των δεδομένων ενός ιστοχώρου. 1.3 Αυτόματη Εξαγωγή Περιεχομένου Από όλα τα παραπάνω, προβάλλει περισσότερο από επιτακτική η ανάγκη χρήσης α- ποτελεσματικότερων τεχνικών ανάκτησης δεδομένων. Από τα μέσα της δεκαετίας του 90, η επιστημονική κοινότητα άρχισε να προτείνει μεθοδολογίες και να αναπτύσσει εργαλεία λογισμικού για την αυτοματοποίηση του εντοπισμού των επιθυμητών δεδομένων σε ιστοσελίδες και της εξαγωγής τους σε δομημένη μορφή, ειδικά για τις ιστοσελίδες με πλούσιο περιεχόμενο που παράγονται αυτόματα από πρότυπα (templates) και πληροφορίες προερχόμενες από βάσεις δεδομένων. Απώτερος στόχος των εργαλείων αυτών είναι η δυνατότητα παροχής αυτοματοποιημένων διεργασιών με εφαρμογές σε διάφορες δραστηριότητες, από ενοποίηση πληροφορίας (information integration) έως κατασκευή διαδικτυακών υπηρεσιών, που δεν είναι δυνατό να υλοποιηθούν με χειροκίνητους τρόπους συγκέντρωσης της απαραίτητης πληροφορίας. Είναι κοινά αποδεκτό πως οι εφαρμογές της τεχνολογίας εξαγωγής πληροφοριών είναι πραγματικά αμέτρητες. 6

13 1.4 Το Σύστημα ΔEiXTo Στο πλαίσιο της εργασίας αναπτύχθηκε σύστημα αποδελτίωσης για HTML ιστοσελίδες και ημι-χειροκίνητης δημιουργίας μεταδεδομένων για τις εξαγόμενες πληροφορίες. Το όνομα του εργαλείου είναι ΔEiXTo και βασίζεται στο Μοντέλο Αντικειμένου Εγγράφου (Document Object Model ή DOM), το οποίο είναι ένα αντικειμενοστραφές μοντέλο περιγραφής εγγράφων Ιστού με HTML (ή και XML) περιεχόμενο. Το εργαλείο παρέχει τη δυνατότητα κατασκευής δενδροειδών κανόνων βάσει των οποίων προσδιορίζεται η μορφή της επιθυμητής πληροφορίας σε μία σελίδα, επιτρέποντας έτσι τον εντοπισμό και την εξαγωγή των δεδομένων που ενδιαφέρουν το χρήστη. Το σύστημα διαθέτει αρκετά καλά χαρακτηριστικά όπως αυτόματη συμπλήρωση φόρμας, πλοήγηση σε διαδοχικά συνδεδεμένες σελίδες, αξιοποίηση της ισχύος των κανονικών εκφράσεων, δυνατότητα εξαγωγής δεδομένων σε XML και RSS μορφή, ευκολία στη δημιουργία και στη συντήρηση (maintenance) των κανόνων εξαγωγής και το κυριότερο πολύ υψηλή ακρίβεια (accuracy) αποτελεσμάτων, σε μεγάλο εύρος περιπτώσεων. Στα επόμενα κεφάλαια, θα καλυφθούν αρκετές πλευρές και ζητήματα του ε- πιστημονικού πεδίου της εξαγωγής πληροφορίας και θα αναλυθεί το σύστημα που κατασκευάστηκε στο πλαίσιο της εργασίας. Στο δεύτερο κεφάλαιο μελετώνται οι διάφορες τεχνικές εξαγωγής επιθυμητών δεδομένων και γίνεται αναφορά σε ορισμένα αντιπροσωπευτικά συστήματα εξαγωγής πληροφορίας. Επιπλέον, γίνεται σύντομη αναφορά στα βασικά χαρακτηριστικά του λογισμικού που αναπτύχθηκε. Στο τρίτο κεφάλαιο περιγράφονται περιληπτικά οι τεχνολογίες που χρησιμοποιήθηκαν για την κατασκευή του συστήματος. Στο τέταρτο εξετάζεται η εφαρμογή τόσο σε τεχνικό όσο και χρηστικό επίπεδο. Στο πέμπτο κεφάλαιο παρέχονται αποτελέσματα χρήσης του προγράμματος μαζί με δύο βήμα προς βήμα αναλυτικές μελέτες περίπτωσης. Στο έ- κτο και τελευταίο κεφάλαιο γίνεται μια σύντομη ανακεφαλαίωση της εργασίας, παρατίθενται συμπεράσματα και γίνονται προτάσεις για πιθανές βελτιώσεις ή επεκτάσεις του συστήματος, μελλοντική εργασία και έρευνα. 7

14

15 2 Εξαγωγή Πληροφορίας Ο πλούτος των διαθέσιμων δεδομένων και τα προβλήματα διαχείρισης και αξιοποίησης τους έχουν οδηγήσει στην ανάπτυξη τεχνολογιών με σκοπό την αυτοματοποίηση της εξαγωγής και της συγκέντρωσης πληροφορίας από πηγές του Ιστού. Η παραδοσιακή μέθοδος για εξαγωγή δεδομένων από πηγές του Ιστού είναι η κατασκευή εξειδικευμένων προγραμμάτων που ονομάζονται wrappers ή scrapers, τα οποία μπορούν να συλλέγουν συγκεκριμένα τμήματα δεδομένων που βρίσκονται σε ιστοσελίδες και να τα αναπαριστούν σε κάποια κατάλληλη δομημένη μορφή. Τα προγράμματα αυτά διευκολύνουν σημαντικά τους χρήστες, καθώς ο εντοπισμός, η απομόνωση και η τοπική αποθήκευση των επιθυμητών δεδομένων από το χρήστη, απαιτούν τις περισσότερες φορές επίπονη προσπάθεια, επιδεξιότητα και χρόνο. Η πιο ενδιαφέρουσα πλευρά των wrappers είναι ότι πρέπει να έχουν την ικανότητα να αναγνωρίζουν τα δεδομένα που ενδιαφέρουν το χρήστη ανάμεσα σε πολλά άλλα άσχετα δεδομένα, όπως ετικέτες σήμανσης (markup tags), βοηθητικές οδηγίες πλοήγησης (navigation hints), εικόνες, διακοσμητικά στοιχεία και διαφημιστικές καταχωρήσεις. Η πολυπλοκότητα τους ποικίλλει όπως φυσικά και η χρήση τους. Η εξαγωγή δεδομένων είναι ένα είδος ανάκτησης πληροφοριών από μη δομημένα (unstructured) ή ημιδομημένα (semi-structured) δεδομένα, που τυπικά εντοπίζονται σε ιστοσελίδες και κείμενα γραμμένα σε φυσική γλώσσα. Οι τεχνικές εξαγωγής πληροφορίας στην επιστημονική κοινότητα αναφέρονται με διάφορους συνώνυμους όρους, όπως data extraction, screen scraping, data scraping, web scraping, page scraping, web page wrapping και HTML scraping (οι τέσσερις τελευταίοι όροι αφορούν σε πηγές του Ιστού). Ο κυριότερος όρος του τομέα είναι ο κανόνας εξαγωγής (extraction rule), ο οποίος είναι μία απεικόνιση (mapping) που επιτρέπει την πλήρωση ενός αποθετηρίου δεδομένων (data repository), όπως μιας σχεσιακής (relational) βάσης ή ενός XML αρχείου, με πληροφορίες που περιέχονται σε μια ιστοσελίδα. Η απεικόνιση αυτή πρέπει να έχει τη δυνατότητα να εντοπίζει και να εξάγει δεδομένα και από κάθε άλλη παρόμοια σελίδα. Σε αυτό το πλαίσιο ένας wrapper εκτελεί την απεικόνιση που ορίζει ένας κανόνας εξαγωγής. Ωστόσο, ορισμένες φορές ο όρος wrapper χρησιμοποιείται για να περιγράψει τόσο τον κανόνα εξαγωγής όσο και το πρόγραμμα που τον εκτελεί. 9

16 Ο κανόνας εξαγωγής λειτουργεί ουσιαστικά σαν πρότυπο (pattern) αναζήτησης. Η διαδικασία εξαγωγής των επιθυμητών δεδομένων επιτυγχάνεται μέσω συμφωνίας προτύπου (pattern matching). Κάθε τμήμα της εξεταζόμενης ιστοσελίδας στόχου, για το οποίο υπάρχει συμφωνία ή ταίριασμα (match) με το πρότυπο, αντιστοιχεί σε ένα στιγμιότυπο (instance) επιθυμητής πληροφορίας. Γενικά, ένα πρότυπο περιέχει μη δεσμευμένες μεταβλητές (variables) για τις οποίες αναζητούνται τιμές. Κατά τη φάση της εφαρμογής του κανόνα, οι μεταβλητές αυτές δεσμεύονται με κατάλληλο περιεχόμενο από την ιστοσελίδα εφαρμογής και τροφοδοτούν την έξοδο του κανόνα. Κάθε στιγμιότυπο μπορεί να έχει αρκετά πεδία πληροφορίας, από τα οποία όμως μόνο ορισμένα ενδιαφέρουν το χρήστη. Για παράδειγμα, σε μια σελίδα αποτελεσμάτων αναζήτησης ενός ηλεκτρονικού καταστήματος, στιγμιότυπο επιθυμητής πληροφορίας αποτελεί το τμήμα δεδομένων που εμπεριέχει πληροφορίες για ένα μόνο από τα παρατιθέμενα προϊόντα. Ωστόσο, από το σύνολο των πληροφοριών του στιγμιότυπου, μπορεί να ενδιαφέρουν το χρήστη μόνο κάποια πεδία του π.χ. το μοντέλο και η τιμή. 2.1 Περιεχόμενο Ιστοσελίδων Προτού γίνει εμβάθυνση στις τεχνικές που χρησιμοποιούνται για την εξαγωγή περιεχομένου από πηγές του Ιστού κρίνεται απαραίτητο να γίνει μια ανάλυση των διαφόρων στερεότυπων μορφών που διέπουν τα επιθυμητά δεδομένα σε μια ιστοσελίδα. Βάσει λοιπόν του περιεχομένου, διακρίνονται δύο σημαντικές κατηγορίες ιστοσελίδων. Η πρώτη περιλαμβάνει σελίδες με ημιδομημένα δεδομένα, ενώ η δεύτερη σελίδες που περιέχουν ημιδομημένο κείμενο. Οι σελίδες του πρώτου τύπου έχουν αντικείμενα δεδομένων (data items) (π.χ. όνομα συγγραφέα, τίτλος άρθρου, κ.τ.λ.) μορφοποιημένα (formatted) με τέτοιο τρόπο ώστε να αποτελούν διακριτά πεδία πληροφορίας ενώ αυτές του δεύτερου τύπου έχουν απλό κείμενο ελεύθερης μορφής (free text), με συνέπεια τα αντικείμενα δεδομένων να μην είναι εύκολο να διαχωριστούν. Τα περισσότερα εργαλεία εξαγωγής περιεχομένου στηρίζονται στο περιβάλλον των επιθυμητών δεδομένων, δηλαδή σε αντικείμενα που τα περικλείουν και έτσι οριοθετούν την περιοχή στην οποία αυτά βρίσκονται. Συνεπώς, τα εργαλεία αυτά έχουν καλύτερη απόδοση για σελίδες του πρώτου τύπου. Περισσότερο κατάλληλα για σελίδες του δεύτερου τύπου (π.χ. αγγελίες με θέσεις εργασίας, περιγραφές διαμερισμάτων προς πώληση ή ενοικίαση, κτλ) είναι τα εργαλεία που βασίζονται σε τεχνικές επεξεργασίας φυσικής γλώσσας (NLP). Οι σελίδες που θα αναλυθούν στη συνέχεια είναι 10

17 αυτές που περιέχουν ημιδομημένα δεδομένα, καθώς σε αυτές στοχεύει κυρίως και το σύστημα που αναπτύχθηκε στο πλαίσιο της εργασίας. Με βάση λοιπόν τη μορφή της επιθυμητής πληροφορίας, ταξινομούνται παρακάτω οι ιστοσελίδες με ημιδομημένα δεδομένα σε κατηγορίες. Το βασικό κριτήριο που χρησιμοποιείται για αυτή την κατηγοριοποίηση είναι η πολλαπλότητα εμφάνισης (occurence) των χρήσιμων δεδομένων στη σελίδα και σε δεύτερο επίπεδο το εύρος της περιοχής που αυτά καταλαμβάνουν μέσα στη σελίδα. Στο σημείο αυτό να σημειωθεί πως στη μονάδα επιθυμητής πληροφορίας (information unit) αναφερόμαστε συνήθως με τους όρους στιγμιότυπο (instance) ή εγγραφή (record) ή αντικείμενο (item). Η ταξινομία αυτή είναι χρήσιμη για την καλύτερη κατανόηση του σκεπτικού και των μεθόδων της εξαγωγής πληροφορίας καθώς και των διαφόρων ζητημάτων ή προβλημάτων που προκύπτουν. Να σημειωθεί ότι γίνεται λόγος κυρίως για ιστοσελίδες με πλούσιο περιεχόμενο οι οποίες παράγονται αυτόματα από πρότυπα (templates) και πληροφορίες προερχόμενες από βάσεις δεδομένων. Ακολουθεί περιγραφή των βασικότερων κατηγοριών. Η πρώτη κύρια κατηγορία, που ίσως είναι και η δημοφιλέστερη, περιλαμβάνει τις περιπτώσεις στις οποίες έχουμε πολλαπλά στιγμιότυπα επιθυμητής πληροφορίας που εκτείνονται σε ολόκληρη σχεδόν τη σελίδα. Συνήθως πρόκειται για σελίδες αποτελεσμάτων που δημιουργούνται έπειτα από ερώτηση αναζήτησης του χρήστη. Προφανώς, η συχνότητα εμφάνισης τέτοιου τύπου σελίδων είναι πολύ μεγάλη. Χαρακτηριστικό παράδειγμα τέτοιων σελίδων είναι μια τυπική σελίδα αποτελεσμάτων μιας μηχανής αναζήτησης ή μία σελίδα προβολής προϊόντων. Το πρόβλημα συνήθως είναι οι μικρές (ή και μεγαλύτερες) παραλλαγές της δομής μεταξύ των στιγμιότυπων. Πολλές φορές μάλιστα, ορισμένα πεδία πληροφορίας απουσιάζουν από κάποια στιγμιότυπα (missing fields problem). Το πρόβλημα αυτό κατά ένα μεγάλο μέρος λύνεται με τη θεώρηση κάποιων τμημάτων του κανόνα εξαγωγής ως προαιρετικά (optional ή implied). Βέβαια, όσο περισσότερα είναι τα προαιρετικά πεδία, τόσο δυσκολεύει η κατασκευή αποτελεσματικών κανόνων εξαγωγής. Γενικά πάντως, όσο αυστηρότερη είναι η δομή των στιγμιότυπων, τόσο διευκολύνεται η κατάσταση. Η κεντρική ιδέα είναι ότι τα σημασιολογικά σχετικά αντικείμενα που ενδιαφέρουν το χρήστη, δηλαδή τα στιγμιότυπα της χρήσιμης πληροφορίας, έ- χουν κοινό στυλ παρουσίασης και παρόμοια, αν όχι σχεδόν ίδια, δομή. Ένα άλλο ζήτημα είναι ότι πολύ συχνά από μία ερώτηση χρήστη προκύπτει μεγάλος αριθμός δια- 11

18 δοχικά συνδεδεμένων σελίδων με αποτελέσματα. Για τη συγκέντρωση όλων των αποτελεσμάτων απαιτείται πλοήγηση σε όλες τις σελίδες μέσω των υπερσυνδέσμων τύπου Next. Το σύνολο τέτοιων σελίδων αποτελούν ίσως την πιο σημαντική κατηγορία σελίδων και αποτελεί άμεσο στόχο των εργαλείων αποδελτίωσης. Η Εικόνα 1 είναι χαρακτηριστική. Εικόνα 1: Τυπική σελίδα υπηρεσίας σύγκρισης τιμών Στη δεύτερη κατηγορία ανήκουν περιπτώσεις στις οποίες πολλαπλά στιγμιότυπα της επιθυμητής πληροφορίας συγκεντρώνονται σε συγκεκριμένη, σχετικά μικρή, περιοχή μιας σελίδας. Για παράδειγμα, σε ένα ειδησεογραφικό δικτυακό τόπο οι επικεφαλίδες κάθε κατηγορίας ειδήσεων συνήθως βρίσκονται μαζί σε ένα πίνακα (table), ξεχωριστά από άλλου είδους τίτλους ειδήσεων (Εικόνα 2). Σε τέτοιες περιπτώσεις όμως υπάρχει συνήθως το πρόβλημα της συχνής εμφάνισης της δομής των επιθυμητών δεδομένων σε πολλά σημεία της σελίδας. Στην προκειμένη περίπτωση, όλοι σχεδόν οι τίτλοι όλων των κατηγοριών ειδήσεων έχουν ίδια δομή με συνέπεια τα επιστρεφόμενα αποτελέσματα από την εφαρμογή ενός κανόνα που βασίζεται μόνο στη δομή της επικεφαλίδας, να περιέχουν πολλά ανεπιθύμητα και μη σχετικά αποτελέσματα (false positive). Δηλαδή, η ακρίβεια ενός τέτοιου γενικού κανόνα είναι χαμηλή. Οπότε εδώ το ζήτημα είναι να περιοριστεί η αναζήτηση χρήσιμης πληροφορίας σε συγκεκριμένο τμήμα της σελίδας, με άλλα λόγια πρέπει να γίνει πιο αυστηρός ο κανόνας εξαγωγής. 12

19 Εικόνα 2: Τυπική σελίδα ειδησεογραφικού ιστοχώρου Αυτό επιτυγχάνεται με κάποιο στάδιο εξειδίκευσης (specialization), ώστε να εξαιρείται η ανεπιθύμητη πληροφορία. Για το παράδειγμα μας, το πρόβλημα θα μπορούσε να διατυπωθεί ως ανάκτηση των επικεφαλίδων ειδήσεων που είναι στην ενότητα Χ ή περιέχονται στον πίνακα με όνομα Υ. Είναι απαραίτητη λοιπόν η χρησιμοποίηση σταθερών σημείων (landmarks) και η δυνατότητα περιγραφής του περιβάλλοντος των επιθυμητών δεδομένων. Οι περιορισμοί περιβάλλοντος έχουν να κάνουν κυρίως με τους HTML προγόνους του στοιχείου που έχει τη ζητούμενη πληροφορία. Ένα πιθανό πρόβλημα προκύπτει όταν κάποιος ενδιαφέρεται για περισσότερες από μια κατηγορίες ειδήσεων. Τότε, μάλλον χρειάζονται συνεργίες από wrappers. Γενικά, αυτή η κατηγορία σελίδων είναι σημαντική και σίγουρα παρουσιάζει μεγάλο ενδιαφέρον. Μια τρίτη εξίσου σημαντική κατηγορία είναι οι περιπτώσεις σελίδων στις ο- ποίες υπάρχει ένα μόνο στιγμιότυπο επιθυμητής πληροφορίας το οποίο όμως συνήθως έχει αρκετά επιμέρους πεδία. Η έκταση της περιοχής στην οποία βρίσκονται όλες οι πληροφορίες του στιγμιότυπου ποικίλλει. Ωστόσο, η ιδιότητα που έχουν τέτοια δεδομένα και την οποία εκμεταλλευόμαστε είναι η τάση τους να οργανώνονται μαζί. Τυπικές σελίδες της κατηγορίας αυτής είναι οι σελίδες που περιέχουν αναλυτικές πλη- 13

20 ροφορίες για κάτι συγκεκριμένο. Αυτό μπορεί να είναι από καταναλωτικό αγαθό, ο- πότε πρόκειται για σελίδες με πλήρη περιγραφή ενός προϊόντος (Εικόνα 3), έως ένα άρθρο επιστημονικού περιοδικού. Εικόνα 3: Τυπική σελίδα με προδιαγραφές προϊόντος Στην πρώτη περίπτωση συνήθως έχουμε ένα αναλυτικό πίνακα που έχει τεχνικά χαρακτηριστικά ή προδιαγραφές ενός αγαθού, ενώ στη δεύτερη η σελίδα έχει συγκεντρωμένες λεπτομερείς πληροφορίες για το άρθρο όπως τον τίτλο του, συγγραφείς, περιγραφή (abstract) ή και όλο το περιεχόμενο του, ημερομηνία δημοσίευσης, ενδεχομένως τον υπερσύνδεσμο που οδηγεί στο πλήρες κείμενο, καθώς και άλλες πληροφορίες. Για τέτοιες σελίδες, ίσως το σημαντικότερο ζητούμενο στη δημιουργία των κανόνων είναι αυτοί να δουλεύουν και για άλλες παρόμοιες σελίδες του ίδιου ι- στοχώρου. Το έργο τους δυσχεραίνεται πάλι από τις παραλλαγές της δομής των στιγμιότυπων που βρίσκονται σε διαφορετικές σελίδες καθώς και από το πρόβλημα της απουσίας ορισμένων πεδίων πληροφορίας. Μία άλλη, μάλλον δυσκολότερη αλλά σπάνια κατηγορία περιπτώσεων είναι όταν ενδιαφέρεται κάποιος για δεδομένα που βρίσκονται διασκορπισμένα σε διάφορα σημεία της σελίδας. Τα δεδομένα αυτά συνήθως μαζί συνθέτουν ένα στιγμιότυπο επιθυμητής πληροφορίας. Ωστόσο, υπάρχει και η πιθανότητα τα επιμέρους δεδομένα να μη σχετίζονται άμεσα μεταξύ τους, οπότε πρόκειται για περισσότερα από ένα είδη επιθυμητής πληροφορίας στην ίδια σελίδα. Τέτοιας μορφής δεδομένα είναι δύσκολα στον εντοπισμό και στην απομόνωση τους και απαιτούν ειδική αντιμετώπιση. Υπό το πρίσμα της δενδροειδούς ιεραρχικής δομής των HTML εγγράφων, το πρόβλημα έ- γκειται στο γεγονός ότι ο κοινός πρόγονος των στοιχείων (elements) της σελίδας που περιέχουν επιθυμητή πληροφορία, βρίσκεται πολύ ψηλά στο δέντρο του εγγράφου, 14

21 κοντά στο HTML ριζικό στοιχείο. Αυτό με απλά λόγια σημαίνει ότι ένας κανόνας εξαγωγής για να «πιάσει» όλα τα δεδομένα που ενδιαφέρουν το χρήστη πρέπει να ε- ξειδικευθεί και ενδεχομένως να μεγαλώσει πολύ σε μέγεθος, σε βαθμό που να καταργείται η χρησιμότητα του. Πιθανότατα λύση στο πρόβλημα να μπορούν να δώσουν οι συνεργαζόμενοι wrappers. Για παράδειγμα, όπως φαίνεται και στην Εικόνα 4 όπου αποτυπώνονται πληροφορίες για το άρθρο ενός επιστημονικού περιοδικού, κάποιος μπορεί να ενδιαφέρεται για τον τίτλο, τους συγγραφείς και το abstract του άρθρου που βρίσκονται στην αριστερή πλευρά της σελίδας αλλά ταυτόχρονα να θέλει και τον Full Text + Links υπερσύνδεσμο και το μέγεθος του pdf, τα οποία βρίσκονται σε ένα πράσινο πλαίσιο δεξιά, αρκετά μακριά από τις προηγούμενες πληροφορίες. Εικόνα 4: Σελίδα με πληροφορίες για άρθρο επιστημονικού περιοδικού Τέλος, μπορεί να υπάρχουν και άλλες πολύ εξεζητημένες περιπτώσεις αλλά για λόγους γενικότητας θα μας απασχολήσουν κυρίως προβλήματα των κατηγοριών που αναλύθηκαν παραπάνω. Φυσικά το πρόβλημα της εξαγωγής πληροφορίας είναι αρκετά σύνθετο και παρουσιάζονται πολλές διαφορετικές δυσκολίες σε όλους τους τύπους ιστοσελίδων, οι οποίες πηγάζουν από τις ιδιομορφίες και τη δομή του περιεχομένου της κάθε σελίδας. Αναλόγως της φύσης του προβλήματος, μπορούν να εφαρμοστούν ποικίλες μεθοδολογίες. 2.2 Τεχνικές Εξαγωγής Πληροφορίας Ο κοινός στόχος όλων των εργαλείων κατασκευής wrappers είναι η δημιουργία προγραμμάτων που να επιτυγχάνουν υψηλή ακρίβεια (precision) και να επιδεικνύουν αν- 15

22 θεκτικότητα (robustness) σε παραλλαγές της δομής των επιθυμητών δεδομένων ενώ ταυτόχρονα να απαιτούν σχετικά μικρή προσπάθεια για την ανάπτυξη τους. Ωστόσο, ο βαθμός αυτοματοποίησης του εργαλείου έρχεται σε αντιδιαστολή με την ευελιξία των wrappers που κατασκευάζονται με αυτό. Υπάρχουν αρκετές διαφορετικές προσεγγίσεις στο ζήτημα της αναπαράστασης των επιθυμητών δεδομένων και στον αλγόριθμο εξαγωγής τους, βάσει και των οποίων γίνεται η κατηγοριοποίηση τέτοιων εργαλείων λογισμικού. Η κατασκευή πάντως ενός κανόνα εξαγωγής περιλαμβάνει συνήθως κάποιο στάδιο εκπαίδευσης με επαγωγή (induction) μέσω του οποίου προσδιορίζεται η γενική μορφή της πληροφορίας που μας ενδιαφέρει και ο τρόπος εντοπισμού της. Συνήθως, οι κανόνες είναι στατικές περιγραφές, που αναπαρίστανται είτε με κάποια ειδική γλώσσα είτε με χρήση κανονικών εκφράσεων (regular expressions) ή παραστάσεων διαδρομής (path expressions). Στη συνέχεια ο κανόνας που προκύπτει χρησιμοποιείται ως πρότυπο (pattern) για την εξαγωγή τμημάτων των δεδομένων που συμφωνούν μαζί του, τα οποία έπειτα μετασχηματίζονται στην επιθυμητή μορφή. Μία κύρια κατηγορία μεθόδων στη εξαγωγή περιεχομένου από HTML ιστοσελίδες αντιμετωπίζει τις σελίδες σαν μία γραμμική αλληλουχία από ετικέτες σήμανσης και απλό κείμενο. Με βάση αυτή την προσέγγιση, ο εντοπισμός των επιθυμητών δεδομένων ανάγεται σε πρόβλημα εντοπισμού αλφαριθμητικών μέσα σε κείμενο (substring detection problem). Για την περιγραφή του κανόνα εξαγωγής χρησιμοποιούνται αλφαριθμητικά οριοθέτησης (delimiters) τα οποία προηγούνται ή έπονται της επιθυμητής πληροφορίας. Τα αλφαριθμητικά αυτά μπορεί να υποδειχθούν από το χρήστη ή να εντοπιστούν αυτόματα από το πρόγραμμα κατασκευής των κανόνων, οπότε μιλάμε για μάθηση των κανόνων εξαγωγής και μάλιστα με επίβλεψη (supervised learning) ή χωρίς επίβλεψη (unsupervised learning). Στην πρώτη περίπτωση απαιτούνται συνήθως λίγα αλλά προσεκτικά επιλεγμένα παραδείγματα εκπαίδευσης με το μειονέκτημα της απαίτησης για σχετικά καλή κατανόηση της γλώσσας HTML. Στη δεύτερη περίπτωση α- παιτούνται περισσότερα παραδείγματα εκπαίδευσης με το πλεονέκτημα όμως της μεγαλύτερης αυτοματοποίησης, τουλάχιστον για ιστοσελίδες που έχουν αυστηρή και παρόμοια δομή. Τα τελευταία χρόνια παρουσιάστηκε μία νέα γενιά τεχνικών που βασίζεται στη δενδροειδή αναπαράσταση των ιστοσελίδων, η οποία παρέχει σοβαρά πλεονεκτήματα σε σχέση με την αναπαράσταση των σελίδων σαν αλφαριθμητικά. Αρκετά 16

23 εργαλεία στηρίζονται στα έμφυτα χαρακτηριστικά της ιεραρχικής δομής των HTML σελίδων και πριν την εκτέλεση της διαδικασίας εξαγωγής, μετατρέπουν το έγγραφο σε δενδρική δομή, η οποία αντανακλά την ιεραρχία των HTML ετικετών. Ακολούθως, παράγονται κανόνες εξαγωγής και στη συνέχεια εφαρμόζονται στο δέντρο του εγγράφου για τον εντοπισμό και την εξαγωγή των αντικειμένων που η δομή τους συμφωνεί με αυτή του κανόνα. Συνήθως, για την επισήμανση και υπόδειξη των επιθυμητών δεδομένων χρησιμοποιούνται XPATHs. Στις περιπτώσεις όπου η επιθυμητή πληροφορία βρίσκεται σε έγγραφα κειμένου σε φυσική γλώσσα, ενδείκνυται η χρήση τεχνικών επεξεργασίας φυσικής γλώσσας (NLP), οι οποίες βασίζονται σε σημασιολογικούς και συντακτικούς περιορισμούς. Μία εναλλακτική επίσης προσέγγιση είναι η χρήση οντολογικής γνώσης γύρω από δεδομένο τομέα (domain) και η πραγματοποίηση εξαγωγής απευθείας στα ίδια τα δεδομένα. Άλλη θεώρηση του προβλήματος βασίζεται σε μοντέλα δεδομένων και ε- ντοπισμό τμημάτων δεδομένων που ακολουθούν μια συγκεκριμένη δομή η οποία περιγράφεται από βασικά στοιχεία (primitives) του μοντέλου. Συνοψίζοντας, οι κυριότερες τεχνικές που έχουν χρησιμοποιηθεί για εξαγωγή επιθυμητής πληροφορίας είναι: ειδικά σχεδιασμένες γλώσσες, κανονικές εκφράσεις, επαγωγή, αξιοποίηση της δενδροειδούς δομής των HTML εγγράφων, επεξεργασία φυσικής γλώσσας, μοντέλα δεδομένων και οντολογίες (ontologies) Καθεμία από τις παραπάνω τεχνικές έχει τις ιδιαιτερότητες και τα πλεονεκτήματά της και η καταλληλότητα της εξαρτάται άμεσα από το είδος της συγκεκριμένης εφαρμογής. Σε ορισμένες βέβαια περιπτώσεις, κάποιο εργαλείο μπορεί να ανήκει σε δύο ή και περισσότερες κατηγορίες. 2.3 Υπάρχοντα Συστήματα Μέχρι σήμερα, έχει αναπτυχθεί ένας μεγάλος αριθμός εργαλείων για εξαγωγή επιθυμητής πληροφορίας από ιστοσελίδες. Στη συνέχεια της ενότητας γίνεται μια σχετικά σύντομη παρουσίαση των πιο αντιπροσωπευτικών συστημάτων. 17

24 Το XWRAP είναι ένα σύστημα για την ημιαυτόματη κατασκευή wrappers. Διαθέτει μία βιβλιοθήκη συστατικών που παρέχει βασικά δομικά στοιχεία για wrappers και ένα φιλικό προς το χρήστη περιβάλλον που διευκολύνει την ανάπτυξη wrappers. Πριν την εξαγωγή, το εργαλείο διορθώνει τα τυχόν συντακτικά λάθη της σελίδας και μετατρέπει το έγγραφο σε δέντρο. Η όλη διαδικασία αποτελείται από ένα αριθμό βημάτων, στο καθένα εκ των οποίων ο χρήστης επιλέγει κατάλληλα συστατικά της βιβλιοθήκης. Στο τέλος προκύπτει ένας wrapper, κωδικοποιημένος σε Java, για μία συγκεκριμένη πηγή πληροφορίας. Ο χρήστης μπορεί να χρησιμοποιήσει κάποια από τις διαθέσιμες προκαθορισμένες ευριστικές (heuristics) για να εντοπίσει τα επιθυμητά δεδομένα και επιπλέον να πραγματοποιήσει κατάλληλες ρυθμίσεις για την εξαγωγή τους. Όταν το αποτέλεσμα της εξαγωγής είναι ικανοποιητικό, ο χρήστης μπορεί να εισάγει ετικέτα για κάθε στοιχείο που εξάγεται. Παρόμοια είναι η φιλοσοφία και του W4F (WWW Wrapper Factory) μιας συλλογής εργαλείων (toolkit) για την κατασκευή wrappers. Η διαδικασία ανάπτυξης ενός wrapper χωρίζεται σε διάφορες φάσεις. Ο χρήστης καθορίζει πρώτα τον τρόπο πρόσβασης στο έγγραφο, στη συνέχεια περιγράφει τα τμήματα των δεδομένων που τον ενδιαφέρουν και τέλος δηλώνει τις δομές που θα χρησιμοποιηθούν για την αποθήκευση των πληροφοριών που θα εξαχθούν. Εφόσον ανακτηθεί ένα έγγραφο, αναλύεται συντακτικά και κατασκευάζεται μια δενδροειδής αναπαράσταση σύμφωνα με το DOM. Έπειτα, ο χρήστης γράφει κανόνες εξαγωγής για τον εντοπισμό των επιθυμητών δεδομένων μέσα στο δέντρο. Τα δεδομένα που εξάγονται αποθηκεύονται σε ένα εσωτερικό φορμά που λέγεται NSL (Nested Strings List). Οι κανόνες που παράγονται είναι κωδικοποιημένοι στη γλώσσα HEL (HTML Extraction Language). Ένας κανόνας εξαγωγής του εργαλείου αυτού είναι ουσιαστικά μία ανάθεση έκφρασης διαδρομής (path expression) σε μία μεταβλητή. Το εργαλείο παρέχει ένα οδηγό (wizard) που βοηθά τον χρήστη να γράψει κανόνες, οι οποίοι εφαρμόζονται στους κόμβους του δέντρου για να εξάγουν πληροφορία. Ο χρήστης κάνει κλικ στα τμήματα πληροφορίας που επιθυμεί και ο οδηγός επιστρέφει τον αντίστοιχο κανόνα. Ένα εργαλείο που αξιοποιεί τα εγγενή χαρακτηριστικά των HTML εγγράφων και κατασκευάζει αυτόματα wrappers είναι το RoadRunner. Συγκρίνει την HTML δομή δύο ή περισσότερων δειγματικών (sample) σελίδων ίδιου τύπου και παράγει ένα σχήμα (schema), το οποίο ακολουθούν τα δεδομένα της σελίδας. Βασίζεται σε κανονικές εκφράσεις (regular expressions) και το σημαντικότερο χαρακτηριστικό του είναι ότι δεν απαιτείται η παρέμβαση του χρήστη. 18

25 Το Lixto είναι ένα αλληλεπιδραστικό (interactive) σύστημα με γραφικό περιβάλλον εργασίας για την ημιαυτόματη κατασκευή προγραμμάτων εξαγωγής πληροφορίας. Για το σκοπό αυτό μπορεί να αξιοποιήσει σταθερά στοιχεία της ιστοσελίδας που βρίσκονται πριν ή μετά την πληροφορία-στόχο (surrounding landmarks), ιδιότητες του ίδιου του στόχου (π.χ. ότι πρόκειται για χρηματικό ποσό), ιδιότητες των ε- μπλεκόμενων HTML στοιχείων και τη σειρά εμφάνισης τους, καθώς και συντακτικά ή εννοιολογικά στοιχεία του στόχου. Επιπλέον, επιτρέπει τη χρήση διάζευξης στον ορισμό κανόνων εξαγωγής, παρέχει τη δυνατότητα αυτόματης πλοήγησης σε άλλες σελίδες μέσω HTML συνδέσμων καθώς και τη δυνατότητα αναδρομικών εκφράσεων. Οι κανόνες εξαγωγής που παράγονται από το Lixto κωδικοποιούνται στη γλώσσα Elog, που έχει αρκετές ομοιότητες με τη γλώσσα datalog ως προς τη σύνταξη και τη σημασιολογία. Μία επέκταση του Lixto είναι το σύστημα Lixto TS που σε συνδυασμό με βάση δεδομένων και πρόγραμμα διακομιστή παρέχει υπηρεσίες συγκέντρωσης πληροφορίας. Το NoDose είναι ένα σύστημα που επιτρέπει τον ημι-αυτόματο προσδιορισμό της δομής των εγγράφων που περιέχουν ημιδομημένη πληροφορία και έπειτα την ε- ξαγωγή των δεδομένων τους. Παρέχει γραφικό περιβάλλον μέσω του οποίου ο χρήστης προσδιορίζει τις περιοχές του εγγράφου που τον ενδιαφέρουν και περιγράφει τη σημασιολογία τους. Η εργασία αυτή γίνεται σε επίπεδα και στην πορεία της κατασκευάζονται σύνθετα αντικείμενα, τα οποία στη συνέχεια αναλύονται σε απλούστερα αντικείμενα. Αφού ο χρήστης έχει εκπαιδεύσει το σύστημα πώς να φτιάχνει αντικείμενα, αναθέτει στο εργαλείο τον εντοπισμό άλλων αντικειμένων μέσα στη σελίδα. Αυτό επιτυγχάνεται με χρήση ενός υποσυστήματος εξόρυξης που προσπαθεί να συνάγει τη δομή του εγγράφου μέσω της ιεραρχίας των αντικειμένων που όρισε ο χρήστης. Στη συνέχεια το εργαλείο αξιοποιεί αυτή τη δομή ώστε να πραγματοποιηθεί η τελική εξαγωγή πληροφορίας. Το WIEN είναι ένα πρωτοποριακό αλληλεπιδραστικό εργαλείο επαγωγής το οποίο λαμβάνει σαν είσοδο μία ομάδα ιστοσελίδων που χρησιμεύουν ως παραδείγματα και παράγει wrappers συνεπείς με αυτές. Στα επιθυμητά δεδομένα των σελίδων αυτών έχουν προηγουμένως ανατεθεί ετικέτες (labels). Οι σελίδες θεωρείται ότι έ- χουν μία προκαθορισμένη δομή και χρησιμοποιούνται συγκεκριμένες ευριστικές (heuristics) για τη δημιουργία συγκεκριμένων wrappers. Οι wrappers που κατασκευάζονται με το εργαλείο δεν αντιμετωπίζουν φωλιασμένες δομές ή τυπικές παραλλαγές ημιδομημένων δεδομένων. 19

26 Το DEByE (Data Extraction by Example) είναι ένα αλληλεπιδραστικό εργαλείο που λαμβάνει ως είσοδο μία ομάδα αντικειμένων, που χρησιμοποιούνται ως παραδείγματα, τα οποία προέρχονται από μια δειγματική ιστοσελίδα και παράγει πρότυπα εξαγωγής για παρόμοιες σελίδες. Έχει γραφικό περιβάλλον και επιτρέπει στο χρήστη να συγκεντρώσει φωλιασμένους πίνακες, με πιθανές παραλλαγές στη δομή, χρησιμοποιώντας ορισμένα δεδομένα από τη δειγματική σελίδα. Οι πίνακες αυτοί είναι παραδείγματα των ζητούμενων αντικειμένων στις σελίδες στόχους. Τα πρότυπα εξαγωγής αντικειμένων (Object Extraction Patterns ή OEP) που παράγονται υποδεικνύουν τη δομή και τα λεκτικής φύσεως δεδομένα που περιβάλλουν τα επιθυμητά αντικείμενα (textual surroundings). Τα OEP τροφοδοτούνται σε ένα bottom-up αλγόριθμο εξαγωγής, ο οποίος εντοπίζει στοιχειώδη τμήματα που ενδιαφέρουν στη σελίδα στόχο και κατασκευάζει σύνθετα αντικείμενα με χρήση της δομής των προτύπων. Το eshopmonitor επιτρέπει στους χρήστες να προσδιορίσουν τα επιθυμητά αντικείμενα (items) πληροφορίας και έπειτα παρακολουθεί (monitors) τα αντικείμενα αυτά στις ιστοσελίδες και παράγει αναφορές (reports) όταν παρατηρηθούν αλλαγές. Περιλαμβάνει ένα υποσύστημα πλοήγησης (crawler), ένα υποσύστημα εξόρυξης δεδομένων (miner) και ένα υποσύστημα δημιουργίας αναφορών (reporter), τα οποία συνεργάζονται μεταξύ τους. Το υποσύστημα εξόρυξης δεδομένων μαθαίνει να εντοπίζει τα επιθυμητά δεδομένα σε μία κλάση σελίδων με χρήση ενός δείγματος (sample) που παρέχει ο χρήστης μέσω του περιβάλλοντος χρήστη (user interface). Ο αλγόριθμος μάθησης βασίζεται σε Xpaths. Το Jedi (Java Extraction and Dissemination of Information) είναι ένα ελαφρύ (lightweight) εργαλείο για τη δημιουργία wrappers και mediators, με στόχο την εξαγωγή, το συνδυασμό και το συνταίριασμα πληροφοριών από πολλές ανεξάρτητες πηγές. Παρέχει ένα ανθεκτικό σε σφάλματα (fault-tolerant) συντακτικό αναλυτή (parser) που βασίζεται σε γραμματικές (context-free grammars, CFGs) για την παραγωγή wrappers. Το WebHarvest είναι ένα εργαλείο ανοικτού λογισμικού (open-source), το ο- ποίο είναι γραμμένο σε Java και παρέχει τη δυνατότητα εξαγωγής χρήσιμων δεδομένων από ιστοσελίδες. Χρησιμοποιεί συνδυασμό υπαρχόντων τεχνικών και τεχνολογιών για χειρισμό κειμένου και XML, όπως XSLT, XQuery και κανονικές εκφράσεις. Δουλεύει με χρήση ενός XML αρχείου για κάθε ιστοχώρο, το οποίο περιγράφει μια ακολουθία βημάτων επεξεργασίας για μετατροπή της HTML σε XML. 20

27 Μία ενδιαφέρουσα προσέγγιση στην εξαγωγή πληροφορίας που βασίζεται στη χρήση οντολογικής γνώσης, παρουσιάζεται στην εργασία [17]. Η οντολογία κατασκευάζεται προκαταβολικά και περιγράφει τα δεδομένα που ενδιαφέρουν, τις σχέσεις που ισχύουν για αυτά, τον τρόπο που κωδικοποιούνται καθώς και λέξεις-κλειδιά του τομέα εφαρμογής. Το σύστημα που κάνει την εξαγωγή χρησιμοποιεί την οντολογία για να προσδιορίσει την επιθυμητή πληροφορία μέσα από τμήματα κειμένου που α- ντιστοιχούν σε μία εγγραφή. Η χρήση οντολογίας επιτρέπει στο πρόγραμμα εξαγωγής να αντέχει σε μικρές μεταβολές στη δομή της ιστοσελίδας στόχου και να λειτουργεί καλά για διαφορετικά οργανωμένες σελίδες παρόμοιου περιεχομένου. Ένα άλλο εργαλείο που στηρίζεται σε οντολογίες για την μοντελοποίηση των επιθυμητών δεδομένων είναι το WeDaX. Επικεντρώνεται σε σελίδες που τα δεδομένα τους αλλάζουν διαρκώς αλλά έχουν μία σταθερή δομή. Πρώτα, τα δεδομένα της σελίδας μετατρέπονται σε XML και έπειτα αναπαρίστανται με το μοντέλο δεδομένων, το οποίο περιγράφεται μέσω οντολογίας. Ο ορισμός του μοντέλου δεδομένων και η αναπαράσταση των δεδομένων γίνονται χειροκίνητα. Στη συνέχεια μία αυτόματη διεργασία αναλαμβάνει την πραγματοποίηση της εξαγωγής. Το τελικό αποτέλεσμα είναι ένα XML αρχείο. Σε ό,τι αφορά την σύγκριση υποψήφιων προς αγορά προϊόντων, μία από τις πρώτες προσπάθειες ήταν το ShopBot το οποίο συγκέντρωνε λίστες προϊόντων εξάγοντας καταχωρήσεις από ηλεκτρονικά καταστήματα, ακολουθώντας φόρμες αναζήτησης στους ιστοχώρους τους. Με τα σημερινά δεδομένα, το ShopBot ήταν σχετικά απλοϊκό καθώς ακολουθούσε τη γραμμική προσέγγιση και λειτουργούσε καλά σε αυστηρά δομημένες σελίδες. Λόγω του ότι όμως ήταν πρωτοποριακό για την εποχή του εξελίχτηκε σε εμπορικό προϊόν (με την ονομασία Jango) και κάποια στιγμή αγοράστηκε έναντι υψηλού τιμήματος. Στις μέρες μας υπάρχουν αρκετές υπηρεσίες εξαγωγής περιεχομένου όπως τα Junglee (αγοράστηκε ως τεχνολογία από το Amazon), Jango, mysimon, RoboShopper και Pricegrabber. Τα Jango και mysimon πραγματοποιούν προσυμφωνημένη συγκέντρωση πληροφορίας από εμπορικούς ιστοχώρους σε πραγματικό χρόνο, ενώ το Junglee αποθηκεύει τοπικά την πληροφορία που συγκεντρώνει και την ανανεώνει περιοδικά. Δεν είναι γνωστές οι τεχνικές λεπτομέρειες του πώς γίνεται αυτή η συγκέντρωση πληροφορίας. Σχεδόν όλες όμως δίνουν περισσότερο έμφαση στην τιμή και λιγότερο στην ολοκληρωμένη προβολή των προϊόντων. Μόνο το Pricegrabber παρέχει 21

28 πλούσια σε χαρακτηριστικά και αντικριστή (side by side) σύγκριση πολλαπλών προϊόντων. Τέλος, κάποια εργαλεία βασισμένα σε NLP είναι τα RAPIER, SRV και WHISK. Βέβαια, υπάρχει μεγάλη πληθώρα άλλων εργαλείων για εξαγωγή πληροφοριών κάθε είδους όπως σύνδεσμοι, , fax, τηλέφωνα, απλό κείμενο κ.τ.λ. Γνωστές εταιρίες που παρέχουν υπηρεσίες εξαγωγής δεδομένων με χρήση εργαλείων κατασκευής wrappers είναι οι Kapowtech, Lixto και Ficstar. 2.4 Εισαγωγή στο Σύστημα ΔEiXTo Στο πλαίσιο της εργασίας, αναπτύχθηκε λογισμικό αποδελτίωσης για δεδομένα HTML ιστοσελίδων. Το σύστημα, που ονομάζεται ΔEiXTo, βασίζεται στο DOM, οι προδιαγραφές (specifications) του οποίου παρέχουν τη δυνατότητα χειρισμού HTML και XML δεδομένων μέσω των προγραμματιστικών διεπαφών των αντικειμένων που συνιστούν ένα έγγραφο. Στη συνέχεια της ενότητας γίνεται μία σύντομη παρουσίαση ορισμένων βασικών χαρακτηριστικών του συστήματος που κατασκευάστηκε. Το ΔEiXTo έχει τη δυνατότητα να εξάγει επιθυμητή πληροφορία σε δομημένη μορφή με βάση κανόνες δενδρικής μορφής που κατασκευάζει σχετικά εύκολα ο χρήστης. Η ευκολία δημιουργίας κανόνων έγκειται στο εύχρηστο γραφικό περιβάλλον του εργαλείου και στην οπτικοποίηση (visualization) της διαδικασίας υπόδειξης του προτύπου εξαγωγής μέσω του ενσωματωμένου προγράμματος πλοήγησης. Οι παραγόμενοι κανόνες εξαγωγής είναι αρκετά ευέλικτοι και παρουσιάζουν βελτιωμένη ανθεκτικότητα σε παραλλαγές της δομής των επιθυμητών αντικειμένων πληροφορίας. Σε αυτό συμβάλλει σημαντικά η δυνατότητα που παρέχεται στο χρήστη να θέσει ορισμένα τμήματα του κανόνα ως προαιρετικά. Επίσης, οι κανόνες επιδεικνύουν ανεκτικότητα σε μικρές μεταβολές των ιστοσελίδων. Στην πλειοψηφία των περιπτώσεων είναι δυνατή αλλά και εύκολη η επεξεργασία και τροποποίηση ενός υπάρχοντος κανόνα εξαγωγής, ο οποίος για κάποιους λόγους σταμάτησε να λειτουργεί απόλυτα ικανοποιητικά. Ένα ισχυρό σημείο της εφαρμογής είναι η δυνατότητα χρήσης κανονικών εκφράσεων τόσο για τον εντοπισμό και την απομόνωση των επιθυμητών δεδομένων όσο και για τη συνολική βελτίωση της ποιότητας των αποτελεσμάτων. Επιπλέον, το σύστημα ενσωματώνει δυνατότητες αυτόματης συμπλήρωσης φόρμας και πλοήγησης σε διαδοχικά συνδεδεμένες ιστοσελίδες. Δηλαδή, μπορεί να υποβάλλει αυτόματα ε- 22

29 ρωτήματα σε δικτυακούς τόπους έπειτα να μαζεύει τις επιθυμητές πληροφορίες από τις σελίδες των επιστρεφόμενων αποτελεσμάτων ακολουθώντας τους υπερσυνδέσμους που οδηγούν στην εκάστοτε επόμενη σελίδα αποτελεσμάτων. Ο χρήστης έχει τη δυνατότητα να αποθηκεύει για μελλοντική χρήση ένα κανόνα εξαγωγής, μαζί με όλες τις απαραίτητες πληροφορίες για την εκτέλεση του, σε ένα XML αρχείο. Έτσι, μπορεί ανά πάσα στιγμή να τον φορτώσει και να τον εκτελέσει. Μία άλλη αξιόλογη ιδιότητα του προγράμματος είναι η δυνατότητα εφαρμογής ενός κανόνα σε πολλαπλές σελίδες. Αρκεί ο χρήστης να ορίσει ως είσοδο του wrapper μία λίστα από πηγές στόχους (target resources). Τα αποτελέσματα που προκύπτουν από την εκτέλεση ενός κανόνα εξαγωγής μπορούν ελεγχόμενα να αποθηκευτούν σε αρχείο εξόδου, η μορφή (format) του οποίου είναι στην ευχέρεια του χρήστη. Οι δυνατές επιλογές είναι αρχείο απλού κειμένου (tab delimited text), XML και RSS. Γενικά, το ΔEiXTo έχει να επιδείξει πολύ υψηλά ποσοστά ακρίβειας (accuracy) αλλά και ευελιξία στην κατασκευή και τη συντήρηση (maintenance) των κανόνων εξαγωγής. Διαθέτει αρκετά προηγμένα χαρακτηριστικά τα οποία καλύπτουν σημαντικό μέρος των αναγκών εξαγωγής πληροφορίας. Πρέπει να σημειωθεί ότι αυτό το εργαλείο λογισμικού είναι ικανό να προσφέρει την απαραίτητη υποδομή για την κατασκευή άλλων εφαρμογών, σε πιο υψηλό επίπεδο, με σκοπό την παροχή αυτοματοποιημένων εργασιών. Τέλος, μπορεί να καταστήσει δυνατή τη δημιουργία πληθώρας νέων υπηρεσιών Ιστού (Web services), ορισμένες εκ των οποίων ενδεχομένως να έχουν και επιχειρηματική αξία. 23

30

31 3 Τεχνολογικό Υπόβαθρο Η κατασκευή του συστήματος ΔEiXTo πραγματοποιήθηκε στο λειτουργικό σύστημα Microsoft Windows XP με χρήση της πλατφόρμας ανάπτυξης εφαρμογών Delphi (έκδοση 7.0 Enterprise) της Borland. Στην ενότητα αυτή περιγράφονται οι τεχνολογίες που χρησιμοποιήθηκαν για την ανάπτυξη του συστήματος ΔEiXTo. 3.1 Borland Delphi To Borland Delphi αποτελεί εδώ και πολλά χρόνια ένα από τα κορυφαία ολοκληρωμένα περιβάλλοντα αντικειμενοστραφούς (object-oriented) και οπτικού (visual) προγραμματισμού για πλατφόρμες Wintel (Windows OS Intel CPUs). Η δέκατη και τελευταία έκδοση, Delphi 2006, υποστηρίζει τη γλώσσα προγραμματισμού Delphi (Object Pascal) αλλά και τη C++ για 32-bit Microsoft Windows πλατφόρμες, ενώ για τη Microsoft.ΝΕΤ πλατφόρμα υποστηρίζει Delphi και C#. Το 2001 έγινε διαθέσιμη μία έκδοση για Linux, γνωστή ως Kylix. Ωστόσο, λόγω χαμηλής ποιότητας και έλλειψης ενδιαφέροντος, το Kylix εγκαταλείφθηκε μετά την έκδοση 3. Με τις στέρεες βάσεις του VCL (Visual Component Library), το Delphi παρέχει ένα εντυπωσιακό εργαλείο ανάπτυξης λογισμικού γενικού σκοπού με μεγάλες δυνατότητες. Θεμέλιο του είναι η ισχυρή γλώσσα προγραμματισμού Object Pascal. Η προσέγγιση του που βασίζεται σε φόρμες και αντικείμενα, ο γρήγορος μεταγλωττιστής (compiler), η εκτεταμένη υποστήριξη βάσεων δεδομένων, το περίφημο περιβάλλον ανάπτυξης (IDE) και οι τεχνολογίες συστατικών (components) είναι μερικά μόνο από τα δυνατά του χαρακτηριστικά που το καθιστούν ισχυρότατο εργαλείο παραγωγικότητας. Το Delphi έχει να επιδείξει πολύ μεγάλο αριθμό από χαρακτηριστικά, στοιχεία και λειτουργίες. Η περιγραφή του εργαλείου αναγκαστικά θα περιοριστεί στην παράθεση των βασικότερων δυνατοτήτων που αυτό διαθέτει. Η εκτεταμένη συμπλήρωση κώδικα μέσω της τεχνολογίας Code Insight, η δυνατότητα απόθεσης και συρσίματος στοιχείων ελέγχου πάνω στη φόρμα και το σχετικά απλό περιβάλλον ανάπτυξης (IDE) διευκολύνουν κατά πολύ την εργασία του προγραμματιστή. Η πλούσια βιβλιοθήκη (VCL) με έτοιμα αντικείμενα και η πληθώρα 25

32 έτοιμων συστατικών επιτρέπουν την ταχύτατη ανάπτυξη εφαρμογών. Ο χρήστης, ή καλύτερα ο προγραμματιστής, έχει στη διάθεσή του μια άδεια φόρμα (Form object), πάνω στην οποία προσθέτει διάφορα αντικείμενα, όπως πεδία κειμένου, κουμπιά, πλαίσια ελέγχου (checkboxes), κουμπιά επιλογής (radio buttons), πλαίσια λίστας (listboxes) και πληθώρα άλλων αντικειμένων, δηλώνοντας παράλληλα τα χαρακτηριστικά τους και γράφοντας κώδικα για να υποστηρίξει γεγονότα που τα αφορούν, ό- πως για παράδειγμα το κλικ του mouse πάνω τους. Επιπλέον, το Delphi υποστηρίζει πλήρως προγραμματισμό εφαρμογών για το Internet μέσω χρήσης sockets και της βιβλιοθήκης Internet Direct (Indy) που υποστηρίζουν τα πιο συνηθισμένα Internet πρωτόκολλα. Το ActiveX στοιχείο ελέγχου TWebBrowser μάλιστα επιτρέπει στον προγραμματιστή να χειριστεί τις δυνατότητες του Internet Explorer μέσα από το δικό του πρόγραμμα. Ακόμα, το Delphi επιτρέπει την ανάπτυξη εφαρμογών από την πλευρά του Web διακομιστή μέσω WebBroker και WebSnap ενώ παρέχει πλήρη υποστήριξη για τις τεχνολογίες XML και SOAP. Για το χειρισμό XML εγγράφων υπάρχουν δύο τυπικές τεχνικές, η διασύνδεση DOM και το Simple API for XML (SAX). Επίσης, το Delphi προσφέρει εξαιρετική συνδεσιμότητα με βάσεις δεδομένων. Η εκτεταμένη υποστήριξη του για προγραμματισμό βάσεων δεδομένων είναι ένα από τα χαρακτηριστικά - κλειδιά του περιβάλλοντος του. Συνεργάζεται με άλλα εργαλεία και αρχιτεκτονικές για την ανάπτυξη μεγάλων και κατανεμημένων εφαρμογών. Έτσι, υπάρχει η υποστήριξη στα μοντέλα COM, OLE Automation, COM+, DCOM, CORBA, HTTP, ADO, ActiveX. Επιπρόσθετα, υπάρχει πληθώρα συστατικών τρίτων κατασκευαστών (third party) που συνήθως είναι διαθέσιμα με τον πηγαίο κώδικα και μεγάλος αριθμός εργαλείων αποσφαλμάτωσης (debug tools). Το Delphi έχει μεγάλη κοινότητα χρηστών και εκτενή online τεκμηρίωση. Άλλα πλεονεκτήματα του εργαλείου είναι η καλή σχεδίαση και το ισχυρό σύστημα τύπων της γλώσσας, ο καλός χειρισμός σφαλμάτων (error handling), η γρήγορη μεταγλώττιση του πηγαίου κώδικα και η δημιουργία ενός μόνο εκτελέσιμου (executable), γεγονός που απλοποιεί τη διανομή (distribution) και εξαλείφει προβλήματα που σχετίζονται με την παρουσία ή όχι βιβλιοθηκών τύπου DLL. Τέλος, δυνατά σημεία συνιστούν ο επεξεργαστής AppBrowser, το εργαλείο TeamSource για τον έλεγχο της έκδοσης (versioning), η υποστήριξη ανάπτυξης σε πολλαπλές πλατφόρμες με το νέο Component Library for Cross-Platform, η επεκταμένη βιβλιοθήκη εκτέλεσης 26

33 (runtime library), η μηχανή βάσεων δεδομένων DbExpress, τα εύχρηστα εργαλεία κατασκευής και διαχείρισης στοιχείων, το πρόγραμμα διαχείρισης βάσης δεδομένων InterBase και πολλά άλλα τα οποία δεν κρίνεται απαραίτητο στο πλαίσιο της ενότητας αυτής να αναφερθούν. 3.2 Μοντέλο Αντικειμένου Εγγράφου Η κινητήριος δύναμη πίσω από το ΔEiXTo είναι το Μοντέλο Αντικειμένου Εγγράφου (Document Object Model ή DOM), το οποίο είναι ένα αντικειμενοστραφές μοντέλο περιγραφής εγγράφων Ιστού. Το DOM αποτελεί Σύσταση (Recommendation) της Κοινοπραξίας Παγκόσμιου Ιστού (W3C) και οι προδιαγραφές του ορίζουν μία διεπαφή προγραμματισμού εφαρμογών (API - Applications Programming Interface) για έλεγχο και διαχείριση εγγράφων HTML / XML. Δημιουργήθηκε και αναπτύσσεται από την Ομάδα Εργασίας του W3C για το Document Object Model. Είναι ανεξάρτητο από πλατφόρμα και γλώσσα μοντέλο αντικειμένων (object model) και επιτρέπει σε προγράμματα και εκτελέσιμα σενάρια δράσης (scripts) να έχουν πρόσβαση σε HTML και XML έγγραφα καθώς και να αναθεωρούν δυναμικά το περιεχόμενο, τη δομή και την εμφάνιση τους. Οι προδιαγραφές του DOM διαιρούνται σε επίπεδα (levels), το καθένα από τα οποία περιέχει υποχρεωτικές και προαιρετικές λειτουργικές μονάδες (modules). Για να υποστηρίζει μια εφαρμογή ένα επίπεδο, πρέπει να συμμορφώνεται με όλες τις α- παιτήσεις (requirements) του επιπέδου αυτού αλλά και των επιπέδων κάτω από αυτό. Το Επίπεδο 1, το Επίπεδο 2 και κάποιες από τις λειτουργικές μονάδες του Επιπέδου 3 είναι W3C Συστάσεις, που σημαίνει ότι έχουν λάβει την τελική τους μορφή. Το DOM μοντελοποιεί ένα έγγραφο ως μια δενδροειδή ιεραρχία κόμβων (treenodes) που αναπαριστά το περιεχόμενο και τις δομές του (Εικόνα 5). Το έγγραφο το ίδιο θεωρείται ένας κόμβος που περιέχει όλους τους υπόλοιπους κόμβους, περιλαμβάνοντας ένα κόμβο που αντιστοιχεί στο ριζικό (root) HTML στοιχείο, το οποίο με τη σειρά του περιέχει όλους τους κόμβους που αντιστοιχούν σε στοιχεία (element), χαρακτηριστικά (attributes) και τμήματα κειμένου (text) του εγγράφου. Το μοντέλο επιτρέπει σε εφαρμογές και σενάρια δράσης να διασχίζουν το δέντρο και να χρησιμοποιούν τις πληροφορίες που περιέχει ως προγραμματιστικές δομές παρά σαν συνεχή ροή δεδομένων (stream). Τα προγράμματα μπορούν να προσπελάσουν και να χειριστούν αυτές τις δομές, μέσω της πρότυπης διεπαφής, χωρίς να χρειάζεται να γνωρί- 27

34 ζουν λεπτομέρειες για το έγγραφο. Κάθε κόμβος έχει συγκεκριμένο τύπο (στοιχείο, γνώρισμα ή κείμενο). Οι κόμβοι χαρακτηριστικών δεν αντιμετωπίζονται σαν θυγατρικοί κόμβοι (children nodes) ενός πατέρα αλλά σαν ιδιότητες των κόμβων στοιχείων. Εικόνα 5: Απεικόνιση DOM δέντρου δειγματικής σελίδας στο σύστημα ΔEiXTo. Το DOM παρέχει τη δυνατότητα δημιουργίας και χειρισμού ευέλικτων αναπαραστάσεων για HTML και XML δεδομένα, μέσω των προγραμματιστικών διεπαφών των αντικειμένων που συνιστούν το έγγραφο. Έτσι, οι τεχνικές εξαγωγής πληροφορίας μπορούν να συγκρίνουν HTML υποδένδρα και να εντοπίσουν επαναλαμβανόμενα πρότυπα χρήσης HTML ετικετών, να χρησιμοποιήσουν παραστάσεις διαδρομής (path expressions) για να καθορίσουν HTML στοιχεία των ιστοσελίδων που περιέχουν επιθυμητή πληροφορία, να εξάγουν το κείμενο που εσωκλείεται σε δεδομένη ετικέτα, να κινηθούν πάνω στο δέντρο, κτλ. Όλα τα σύγχρονα προγράμματα πλοήγησης είναι εφοδιασμένα με συντακτικούς αναλυτές (parsers) υψηλής ποιότητας που παράγουν για ιδία χρήση την DOM αναπαράσταση της σελίδας που προβάλλουν. Η DOM αναπαράσταση, όπως εκτίθεται από το πρόγραμμα πλοήγησης, επιτρέπει την εκμετάλλευση επιπλέον πληροφορίας που δεν είναι άμεσα διαθέσιμη στον πηγαίο κώδικα μιας ιστοσελίδας. Για παράδειγμα, μια πολύ σημαντική ιδιότητα που αφορά σε HTML στοιχεία είναι ο αριθμός παιδιών (children) που έχει ένα στοιχείο. Επίσης, πέρα από την άμεσα προσβάσιμη πληροφορία, υπάρχουν και κάποιες ιδιότητες, η τιμή των οποίων δεν είναι διαθέσιμη στον πηγαίο κώδικα αλλά ούτε και στη DOM αναπαράσταση. Η τιμή των ιδιοτήτων αυτών μπορεί να υπολογιστεί (calculated properties) από άλλη πρωτογενή πληροφορία. Παραδείγματα υπολογιζόμενων 28

35 ιδιοτήτων είναι η τάξη (sibling order) ενός HTML στοιχείου στη λίστα με τα παιδιά του πατρικού στοιχείου καθώς και το μήκος του εσωκλειόμενου κειμένου (inner text) ενός στοιχείου. 3.3 Κανονικές Εκφράσεις Για την ανάπτυξη του συστήματος ΔEiXTo, έγινε χρήση μίας εύχρηστης αλλά και ισχυρής βιβλιοθήκης κανονικών εκφράσεων (regular expressions), συμβατής με το Delphi, με όνομα TRegExpr, δημιουργός της οποίας είναι ο Andrey V. Sorokin. Οι κανονικές εκφράσεις είναι σχεδόν μια γλώσσα από μόνες τους. Είναι μία τυπική μέθοδος περιγραφής προτύπων αλφαριθμητικών. Αν το πρότυπο που έχει καθοριστεί βρεθεί οπουδήποτε μέσα σε μία συμβολοσειρά στόχο, τότε υπάρχει συμφωνία (match). Άρα, οι κανονικές εκφράσεις περιγράφουν με ακρίβεια ένα σύνολο από αλφαριθμητικά (strings), σύμφωνα με συγκεκριμένους συντακτικούς κανόνες. Χρησιμοποιούνται από πολλά προγράμματα επεξεργασίας κειμένου και άλλα βοηθητικά προγράμματα για αναζήτηση και χειρισμό κειμένου. Αρκετές γλώσσες προγραμματισμού υποστηρίζουν κανονικές εκφράσεις για χειρισμό αλφαριθμητικών. Για παράδειγμα, η Perl και η Tcl διαθέτουν ενσωματωμένο στη σύνταξη τους ένα πολύ ισχυρό μηχανισμό για κανονικές εκφράσεις και συμφωνία (ή ταίριασμα) προτύπων. Στη διάδοση τους συνέβαλλαν διάφορα βοηθήματα (utilities) του λειτουργικού συστήματος UNIX όπως ο κειμενογράφος sed και το φίλτρο grep. Για τις κανονικές εκφράσεις έχουν γραφτεί ολόκληρα βιβλία, ωστόσο παρακάτω θα γίνει μια σύντομη αλλά περιεκτική περιγραφή των βασικότερων χαρακτηριστικών τους. Η χρήση τους στο ΔEiXTo θα περιγραφεί στο επόμενο κεφάλαιο. Οι περισσότεροι χαρακτήρες σε μία κανονική έκφραση αναπαριστούν τον ε- αυτό τους (literals). Για παράδειγμα, το a αντιπροσωπεύει μόνο το 'a' και η έκφραση abc ταιριάζει μόνο με το αλφαριθμητικό 'abc'. Οι χαρακτήρες που αποτελούν εξαιρέσεις στα παραπάνω ονομάζονται μεταχαρακτήρες και αλλάζουν τη συμπεριφορά της συμφωνίας προτύπου. Οι μεταχαρακτήρες είναι οι εξής: ^ $ ( ) [ {?. + * Αν ένας μεταχαρακτήρας πρέπει να αντιμετωπιστεί με την κυριολεκτική του τιμή, τότε πρέπει να μπει πριν από αυτόν μία ανάστροφη κάθετος (backslash) ώστε να χάσει την ειδική σημασία του. Επίσης, υπάρχουν ορισμένοι ειδικοί χαρακτήρες οι ο- ποίοι προσδιορίζονται με τη βοήθεια της ανάστροφης καθέτου, όπως για παράδειγμα 29

36 ο '\n' που ορίζει μία νέα γραμμή (newline) και ο '\t' που ορίζει ένα στηλοθέτη (tab). Οι κανονικές εκφράσεις συμμορφώνονται σε ορισμένους κανόνες. Αυτοι είναι οι παρακάτω: Το ταίριασμα (match) προτύπου γίνεται από τα αριστερά της συμβολοσειράς στόχου προς τα δεξιά. Η διαδικασία ταιριάσματος προτύπου επιστρέφει αληθές (true) αν και μόνο αν ταιριάξει όλο το πρότυπο με τη συμβολοσειρά στόχου. Το πρώτο ταίριασμα που γίνεται είναι το αριστερότερο μέσα στη συμβολοσειρά στόχου. Οι κανονικές εκφράσεις δεν εγκαταλείπουν ένα καλό ταίριασμα ψάχνοντας για ένα άλλο, που πιθανώς να βρίσκεται παρακάτω. Ωστόσο, λαμβάνεται το μεγαλύτερο δυνατό πρώτο ταίριασμα, καθώς οι κανονικές εκφράσεις είναι «άπληστες» (greedy), με την έννοια ότι προσπαθούν να συμφωνήσουν όσο το δυνατό περισσότερα πράγματα. Μία συνηθισμένη πρακτική στις κανονικές εκφράσεις είναι να ζητάει κάποιος ταίριασμα «οποιουδήποτε από δεδομένους χαρακτήρες». Αυτό επιτυγχάνεται μέσω της κλάσης χαρακτήρων. Για τη δημιουργία μίας κλάσης αρκεί η τοποθέτηση μίας λίστας από χαρακτήρες μέσα σε αγκύλες []. Οι χαρακτήρες σε μία κλάση χαρακτήρων θεωρούνται ως ένας μόνο χαρακτήρας, ο οποίος ταιριάζει με οποιονδήποτε χαρακτήρα που περιλαμβάνεται στη λίστα. Για παράδειγμα, η έκφραση foob[aeiou]r ταιριάζει με τα 'foobar', 'foober' αλλά όχι με τα 'foobbr', 'foobcr' κ.τ.λ. Αν ο πρώτος χαρακτήρας της κλάσης είναι "^", τότε η κλάση συμφωνεί με κάθε χαρακτήρα που δεν βρίσκεται μέσα στην κλάση. Σε μία λίστα ο χαρακτήρας '-' χρησιμοποιείται για να ορίσει μία περιοχή (range) χαρακτήρων, π.χ. η κλάση [a-e] συμφωνεί οποιοδήποτε από τους a, b, c, d ή e. Μέχρι τώρα, σε όλα τα παραδείγματα που δόθηκαν, όλοι οι χαρακτήρες μέσα σε πρότυπα, είτε πρόκειται για χαρακτήρες κειμένου, είτε πρόκειται για μεταχαρακτήρες, είχαν μια σχέση ένα προς ένα με χαρακτήρες στη συμβολοσειρά στόχου με την οποία προσπαθούσαν να συμφωνήσουν. Ένας ποσοτικοποιητής (quantifier) είναι ένα είδος τελεστή που «λέει» στην κανονική έκφραση όσες συνεχόμενες εμφανίσεις ενός πράγματος να ταιριάξει και μπορεί να τοποθετηθεί μετά από ένα χαρακτήρα. Ο απλούστερος τέτοιος τελεστής είναι ο μεταχαρακτήρας +. Το + κάνει τον προηγούμενο χαρακτήρα να συμφωνήσει τουλάχιστον μια φορά ή όσες φορές μπορεί και να συ- 30

37 νεχίσει αν υπάρχει μια έκφραση που συμφωνεί. Έτσι, το ab+c θα συμφωνήσει με το deabcie και το wabbbcr αλλά όχι με το fractal (λείπει το b) και το doabbf (λείπει το c). Ο μεταχαρακτήρας * είναι παρόμοιος με τον +, αλλά κάνει τον μεταχαρακτήρα του οποίου έπεται να συμφωνεί μηδέν ή περισσότερες φορές. Έτσι, το car*t θα συμφωνήσει με το carted και το cat αλλά όχι με το carrot (το o διακόπτει το πρότυπο) και το carl (το t μέσα στο πρότυπο είναι υποχρεωτικό). Ένας άλλος μεταχαρακτήρας είναι ο? ο οποίος κάνει τον προηγούμενο χαρακτήρα να συμφωνήσει μηδέν ή μία φορά (όχι περισσότερες). Έτσι, το πρότυπο b?all προκαλεί τη συμφωνία ενός c αν υπάρχει. Αλλιώς, δεν υπάρχει πρόβλημα. Κατόπιν ακολουθείται από ένα a, l και l. Στην ουσία, αυτό το πρότυπο συμφωνεί με κάθε συμβολοσειρά που περιέχει all, αρκεί αμέσως πριν από αυτό να προηγείται το πολύ ένα b. Δηλαδή, το πρότυπο δε συμφωνεί με το bball. Οι κανονικές εκφράσεις παρέχουν επίσης τη δυνατότητα στο χρήστη να συμφωνήσει ακριβώς όσες εμφανίσεις θέλει χρησιμοποιώντας τα άγκιστρα {}. Ο ποσοτικοποιητής με άγκιστρα έχει τη μορφή string{n,m}, όπου n ο ελάχιστος αριθμός συμφωνιών, m ο μέγιστος αριθμός συμφωνιών και string ο χαρακτήρας ή η ομάδα χαρακτήρων που προσπαθεί να ποσοτικοποιήσει. Μπορεί να παραλειφθεί το n ή το m, αλλά όχι και τα δύο. Έτσι το x{5,10} συμφωνεί όταν το x εμφανίζεται τουλάχιστον 5 φορές αλλά όχι περισσότερες από 10, το x{7,} συμφωνεί όταν το x εμφανίζεται τουλάχιστον 7 φορές και το x{4} συμφωνεί όταν το x εμφανίζεται ακριβώς 4 φορές. Επίσης, ένας συνηθισμένος ιδιωματισμός στις κανονικές εκφράσεις είναι το.* που χρησιμοποιείται για να ταιριάξει οτιδήποτε (συνήθως, οτιδήποτε ανάμεσα σε δύο άλλα πράγματα που ενδιαφέρουν το χρήστη). Επιπλέον, υπάρχουν κάποιες συντομεύσεις για ορισμένες κλάσεις χαρακτήρων που χρησιμοποιούνται συχνά. Αυτές συμβολίζονται με μία ανάστροφη κάθετο και ένα μη μεταχαρακτήρα. Ακολουθούν ειδικές κλάσεις χαρακτήρων: \w ένας χαρακτήρας λέξης. Ίδιο με [a-za-z0-9_] \W η άρνηση του \w \d ένα ψηφίο του δεκαδικού συστήματος. Ίδιο με [0-9] \D η άρνηση του \d \s ένας λευκός χαρακτήρας, ίδιο με [ \t\n\r\f] \S η άρνηση του \s 31

38 Έτσι, το \d+ θα συμφωνήσει με το 134 αλλά όχι με το abc. Επίσης, το \w+\s*\d θα συμφωνήσει με το A_5 b αλλά όχι με το a 3 (το 3 είναι δεκαδικό ψηφίο και δε συμφωνεί με το \D). Οι κανονικές εκφράσεις δίνουν ακόμα τη δυνατότητα εύρεσης συνόλου προτύπων. Ο μηχανισμός αυτός ονομάζεται εναλλακτική συμφωνία (alternation) και εμφανίζεται σε μια κανονική έκφραση όταν πιθανές συμφωνίες χωρίζονται με ένα χαρακτήρα. Ακόμα παρέχεται η δυνατότητα ομαδοποίησης τμημάτων του προτύπου με παρενθέσεις, (). Για παράδειγμα η έκφραση (c p s)at συμφωνεί τις λέξεις cat, pat και sat. Αξίζει να σημειωθεί επίσης, πως οι παρενθέσεις σε κανονικές εκφράσεις επιτρέπουν, εφόσον επιτυγχάνεται ταίριασμα, την απομόνωση και αποθήκευση σε ειδικές μεταβλητές, του τμήματος της συμβολοσειράς στόχου που συμφώνησε με την κάθε έκφραση σε παρενθέσεις. Οι δύο τελευταίοι μεταχαρακτήρες είναι οι άγκυρες (anchors), οι οποίες καθορίζουν το ακριβές σημείο στο οποίο θα γίνει η αναζήτηση για το πρότυπο- στην αρχή ή στο τέλος μιας συμβολοσειράς. Η πρώτη άγκυρα είναι το "^". Ο χαρακτήρας αυτός στην αρχή μιας κανονικής έκφρασης υποχρεώνει την έκφραση να ψάξει για συμφωνία μόνο στην αρχή μίας συμβολοσειράς. Για παράδειγμα το ^dog συμφωνεί τη λέξη dog μόνο αν αυτή εμφανίζεται στην αρχή μιας συμβολοσειράς. Η δεύτερη άγκυρα είναι το $, που στο τέλος μίας κανονικής έκφρασης υποχρεώνει να γίνει το ταίριασμα μόνο στο τέλος μίας συμβολοσειράς. Τέλος, εκτός από την εύρεση προτύπων σε συμβολοσειρές παρέχεται και η δυνατότητα αντικατάστασης των δεδομένων που συμφωνούν με το πρότυπο. Ακόμα υπάρχουν ορισμένοι τροποποιητές (modifiers) που αλλάζουν τη συμπεριφορά των κανονικών εκφράσεων, όπως το i που καθιστά τη συμφωνία προτύπου μη ευαίσθητη στον τύπο των χαρακτήρων (πεζά ή κεφαλαία) και το g που αναγκάζει τη συμφωνία να εκτελείται επαναληπτικά μέσα σε όλη τη συμβολοσειρά, όπου το κάθε ταίριασμα γίνεται αρχίζοντας αμέσως μετά το τελευταία ταίριασμα. Οι κανονικές εκφράσεις αποτελούν ένα πραγματικά πολύ ισχυρό εργαλείο για χειρισμό αλφαριθμητικών. Αν αναλογιστεί κανείς ότι μία ιστοσελίδα αποτελεί καταρχήν ένα αλφαριθμητικό, αντιλαμβάνεται τη σημασία αυτής της μεθόδου και της πληθώρας των εφαρμογών και δυνατοτήτων της, στον τομέα της εξαγωγής περιεχομένου από ιστοσελίδες. 32

39 3.4 Επεκτάσιμη Γλώσσα Σήμανσης Η HTML περιορίζεται στην αναπαράσταση της δομής των εγγράφων ώστε αυτά να εμφανίζονται με τον επιθυμητό τρόπο. Η γλώσσα αυτή δεν διαθέτει αρκετά χαρακτηριστικά ώστε να επιτρέπει την άμεση αξιοποίηση του περιεχομένου των εγγράφων από γενικού τύπου εφαρμογές, ούτε υποστηρίζει την ανταλλαγή σύνθετων εγγράφων μεταξύ προγραμμάτων. Η επεκτάσιμη γλώσσα σήμανσης (Extensible Markup Language ή XML) είναι μια γλώσσα σήμανσης που αναπτύχθηκε για να καλύψει τα μειονεκτήματα της HTML. Επιτρέπει το διαχωρισμό του προγραμματισμού για τη διαχείριση του περιεχομένου μία σελίδας από τον προγραμματισμό για τη μορφοποίηση και τη διάταξη. Προέκυψε από το συνδυασμό της SGML και της HTML. Η πρότυπη γενική γλώσσα σήμανσης (Standard Generalized Markup Language, SGML) είναι μία μεταγλώσσα που υποστηρίζει τη δυνατότητα ορισμού νέων γλωσσών σήμανσης των εγγράφων. Λόγω του γενικευμένου χαρακτήρα της, η SGML είναι πολύπλοκη και προϋποθέτει την ύπαρξη εξελιγμένων προγραμμάτων ώστε να καταστεί δυνατή η εκμετάλλευση στο σύνολο των δυνατοτήτων της. Η XML αναπτύχθηκε έτσι ώστε να διαθέτει τις περισσότερες από τις δυνατότητες της SGML αλλά παράλληλα να παραμένει απλή στη χρήση της. Αντί να διαθέτει μία συγκεκριμένη συλλογή ετικετών (tags) με σταθερή και καθορισμένη σημασία, η XML επιτρέπει στο χρήστη να δηλώσει νέες συλλογές ετικετών οι οποίες μπορούν στη συνέχεια να χρησιμοποιούνται για τη δόμηση οποιουδήποτε τύπου δεδομένων ή εγγράφου. Με την έννοια δομημένα δεδομένα εννοούμε μία συλλογή στοιχείων δεδομένων όπως είναι για παράδειγμα τα λογιστικά φύλλα, οι κατάλογοι διευθύνσεων, οι παράμετροι διαμόρφωσης, οι οικονομικές συναλλαγές και τα τεχνικά σχέδια. Η XML είναι, δηλαδή, ένα σύνολο κανόνων, ή διαφορετικά ένα «πακέτο» κατευθυντήριων γραμμών ή συμβάσεων, για το σχεδιασμό μορφών κειμένου οι οποίες οι οποίες διευκολύνουν τη δόμηση των δεδομένων. Για την ακρίβεια, τα XML δεδομένα έχουν εν μέρει δόμηση και λέγονται ημι-δομημένα (semi-structured). Η XML, όπως η HTML, χρησιμοποιεί ετικέτες (λέξεις μέσα σε γωνιακές α- γκύλες '<' και '>') και γνωρίσματα (τύπου όνομα = "τιμή"). Σε αντίθεση με την HTML, η οποία διευκρινίζει τη σημασία κάθε ετικέτας και γνωρίσματος και συχνά προσδιορίζει πώς θα εμφανίζεται σε ένα πρόγραμμα πλοήγησης το κείμενο το οποίο περιλαμβάνεται σε αυτά, η XML χρησιμοποιεί ετικέτες μόνο για να οριοθετήσει κομ- 33

40 μάτια δεδομένων και αφήνει την ερμηνεία των δεδομένων στη εφαρμογή που τα διαβάζει. Ωστόσο, οι κανόνες των αρχείων XML είναι πιο αυστηροί σε σχέση με αυτούς των αρχείων HTML. Η παράλειψη μίας ετικέτας καθιστά άχρηστο το αρχείο XML ενώ η HTML σε πολλές περιπτώσεις ανέχεται τέτοιου είδους παραλείψεις. Tα αρχεία XML κωδικοποιούνται σε μορφή απλού κειμένου (plain text) τα οποία δεν προορίζονται μεν για ανάγνωση αλλά προσφέρουν τη δυνατότητα στο χρήστη, εάν είναι αναγκαίο, να δει τα δεδομένα με το διορθωτή κειμένου της προτίμησής του. Η XML χρησιμοποιεί ετικέτες για την οριοθέτηση των δεδομένων και για τον λόγο αυτό τα αρχεία XML είναι σχεδόν πάντα μεγαλύτερα σε έκταση από συγκρίσιμα αρχεία σε δυαδική μορφή. Πρόκειται για συνειδητή επιλογή των σχεδιαστών της XML καθώς τα μειονεκτήματα ενός αρχείου υπό μορφή κειμένου αντισταθμίζονται συνήθως σε άλλο επίπεδο. Η χωρητικότητα του σκληρού δίσκου δεν είναι τόσο ακριβή όσο στο παρελθόν και τα προγράμματα συμπίεσης μπορούν να συμπιέσουν αρχεία κειμένου (άρα και XML) αποτελεσματικά και γρήγορα. Επιπρόσθετα, πρωτόκολλα επικοινωνίας όπως τα πρωτόκολλα μόντεμ και το HTTP/1.1, το οποίο είναι το κεντρικό πρωτόκολλο του Ιστού, μπορούν να συμπιέσουν πολύ εύκολα αρχεία κειμένου και να επιταχύνουν τη μεταφορά το ίδιο αποτελεσματικά όσο και με δυαδικά αρχεία. Η XML 1.0 είναι η προδιαγραφή που ορίζει τι είναι οι «ετικέτες» και τα «γνωρίσματα». Πέρα από την XML 1.0, «η οικογένεια XML» είναι ένα διαρκώς αναπτυσσόμενο σύνολο λειτουργικών μονάδων οι οποίες προσφέρουν χρήσιμες υπηρεσίες για τη διεκπεραίωση σημαντικών έργων τα οποία ανακύπτουν συχνά. Υπάρχει μεγάλη πληθώρα διαθέσιμων εργαλείων και διαρκώς αναπτυσσόμενη κοινότητα ειδικών με μεγάλη εμπειρία στις εν λόγω τεχνολογίες. Η XML δεν χρειάζεται άδεια χρήσης και τυγχάνει ευρείας και ολοένα επεκτεινόμενης υποστήριξης που σημαίνει ότι δεν υπάρχουν δεσμεύσεις από ένα μόνο κατασκευαστή. Η XML άρχισε να αναπτύσσεται το 1996 από μια ομάδα εργασίας υπό την αιγίδα της Ομάδας Ειδικού Ενδιαφέροντος (Special Interest Group, SIG) για την XML, της Κοινοπραξίας του Παγκόσμιου Ιστού (World Wide Web Consortium, W3C). Από το Φεβρουάριο του 1998 η XML αποτελεί Σύσταση (Recommendation) του W3C. Η XML είναι σήμερα η βασική γλώσσα επικοινωνίας (lingua franca) για την ανταλλαγή δεδομένων μεταξύ προγραμμάτων, υπολογιστικών συστημάτων, κ.λ.π. Κάποιοι από τους βασικούς παράγοντες που την καθιστούν κατάλληλη γι αυτό, παρατίθενται στη συνέχεια. 34

41 Παρέχει τη δυνατότητα ανάγνωσης τόσο από ανθρώπους όσο και από μηχανές. Είναι πλήρως συμβατή με Unicode και ανεξάρτητη συστήματος υλικού και πλατφόρμας, οπότε μπορεί να υποστηρίξει διεθνείς και τοπικές προσαρμογές. Περιγράφει τόσο τη δομή όσο και το περιεχόμενο του εγγράφου. Έχει αυστηρή σύνταξη ώστε οι αλγόριθμοι συντακτικής ανάλυσης να είναι απλοί και αποτελεσματικοί. Χρησιμοποιείται πολύ για αποθήκευση και επεξεργασία εγγράφων τόσο online όσο και offline με πολλά πλεονεκτήματα. Έχει εύρωστη, εύκολα επαληθεύσιμη σύνταξη η οποία βασίζεται σε διεθνή πρότυπα. Η ιεραρχική της δομή είναι κατάλληλη για τους περισσότερους, αν όχι όλους, τύπους εγγράφων καθώς είναι απλό κείμενο (plain text). Ο προκάτοχος της, η SGML, χρησιμοποιείται από το 1986, οπότε υπάρχει διαθέσιμη μεγάλη εμπειρία και λογισμικό. Ακολουθεί μια σύντομη εισαγωγή στην XML σύνταξη. Τα έγγραφα που είναι γραμμένα σε XML αποτελούνται από περιεχόμενο και σήμανση. Έτσι, ένα τυπικό XML έγγραφο περιέχει: Στοιχεία (elements): ονομάζονται και ετικέτες και αποτελούν τις βασικές δομικές μονάδες ενός εγγράφου. Η αρχή του περιεχομένου ενός στοιχείου ELM σημειώνεται ως <ELM>, που ονομάζεται ετικέτα αρχής (start tag), ενώ το τέλος του περιεχομένου συμβολίζεται με </ELM>, που ονομάζεται ετικέτα τέλους (end tag). Το περιεχόμενο ενός στοιχείου είναι άλλα εμφωλευμένα στοιχεία, ή/και κείμενο. Για το περικλειόμενο κείμενο χρησιμοποιείται ο όρος PCDATA (parsed character data). Η εμφώλευση (encpsulation) των στοιχείων XML πρέπει να γίνεται με κατάλληλο τρόπο. Οι ετικέτες αρχής που εμπεριέχονται στο περιεχόμενο άλλων ετικετών πρέπει να συνοδεύονται από αντίστοιχες ε- τικέτες τέλους. Γνωρίσματα ή προσδιορισμοί (attributes): Ένα στοιχείο μπορεί να διαθέτει περιγραφικά γνωρίσματα τα οποία παρέχουν επιπλέον πληροφορία σχετικά με αυτό. Οι τιμές των γνωρισμάτων καθορίζονται μέσα στην ετικέτα αρχής ενός στοιχείου. Για παράδειγμα, έστω ένα στοιχείο με όνομα ELM που έχει για γνώρισμα του το att. Η τιμή του att ορίζεται να είναι value διαμέσου της ακόλουθης παράστασης: <ELM att= value >. Όλες οι τιμές γνωρισμάτων θα πρέπει να γράφονται μέσα σε μονά ή διπλά εισαγωγικά. Αναφορές σε οντότητες (entity references): Στην XML, οντότητες ονομάζονται οι συντομεύσεις διαδρομής προς τμήματα κειμένου ή προς το περιεχόμε- 35

42 νο εξωτερικών αρχείων. Όπου ένα έγγραφο περιέχει στο κείμενο του αναφορά σε οντότητα, η τελευταία αντικαθίσταται με το αντίστοιχο περιεχόμενο. Κάθε μια αναφορά σε οντότητα ξεκινά με '&' και τελειώνει με ένα ';'. Χαρακτήρες με ειδική σημασία για την XML κωδικοποιούνται με αναφορές, π.χ. ο χαρακτήρας '<' μέσα σε κείμενο αναπαρίσταται από την οντότητα <. Σχόλια (comments): Μπορούμε να εισάγουμε σχόλια σε οποιοδήποτε σημείο ενός εγγράφου XML. Τα σχόλια ξεκινούν με <!- και τελειώνουν με -> και μπορούν να περιέχουν οποιοδήποτε χαρακτήρα εκτός από τον '-'. Ορισμό τύπου εγγράφου (DTD): Η XML δίνει τη δυνατότητα στο χρήστη να ορίσει τη δική του γλώσσα σήμανσης. Η δήλωση DTD είναι ένα σύνολο από κανόνες οι οποίοι καθορίζουν σύνολα στοιχείων, γνωρισμάτων και οντοτήτων. Οπότε, το DTD συνιστά μία γραμματική όπου ορίζονται οι ετικέτες που μπορούν να χρησιμοποιηθούν, η σειρά με την οποία αυτές μπορούν να εμφανίζονται και τα επιτρεπτά σχήματα εμφώλευσης τους. Εντολές επεξεργασίας (processing instructions), οι οποίες αρχίζουν με <? και τελειώνουν με?>. Για παράδειγμα: <?stylesheet type = "text/css" href = mystyle.css"?> Τμήματα CDATA (CDATA sections), τα οποία ξεκινούν με <![CDATA[ και τελειώνουν με ]]>. Ένα τμήμα CDATA δεν υπόκειται σε συντακτική ανάλυση. Ο συντακτικός αναλυτής αγνοεί το περιεχόμενο ενός τέτοιου τμήματος. Ένα XML έγγραφο ονομάζεται καλά δομημένο (well formed) όταν η δομή του ικανοποιεί ορισμένες προδιαγραφές: Το έγγραφο ξεκινά με ένα δηλωτικό XML. Στη δομή του εγγράφου, υπάρχει ένα στοιχείο ρίζα το οποίο περιέχει όλα τα υπόλοιπα στοιχεία. Όλα τα υπόλοιπα στοιχεία θα πρέπει να είναι κατάλληλα εμφωλευμένα. Αυτή η απαίτηση σημαίνει ότι οι ετικέτες αρχής και τέλους τους θα πρέπει να περιέχονται στο ίδιο περιβάλλον στοιχείο. 3.5 Ορισμος Τύπου Εγγράφου Ένα XML έγγραφο είναι καλά δομημένο (well formed) εφόσον ακολουθεί ορισμένους συντακτικούς κανόνες. Ωστόσο, αυτοί οι κανόνες δεν περιγράφουν καθόλου τη 36

43 δομή (structure) του εγγράφου. Για την περιγραφή της δομής χρησιμοποιούνται οι ορισμοί τύπου εγγράφου (DTDs). Ένα DTD είναι ένα σύνολο από κανόνες που επιτρέπουν στο χρήστη να ορίζει τους δικούς του τύπους στοιχείων και το περιεχόμενο, την πληθικότητα (cardinality) καθώς και τα γνωρίσματα του κάθε στοιχείου. Ένα DTD προσδιορίζει ποια στοιχεία μπορούν να χρησιμοποιηθούν και θέτει περιορισμούς σε αυτά, δηλαδή συνιστά μία γραμματική. Για παράδειγμα, ορίζει με ποιο τρόπο μπορούν να εμφωλευτούν τα στοιχεία και σε ποιο σημείο του εγγράφου μπορούν να εμφανίζονται. Έτσι, ανεξάρτητες ομάδες ανθρώπων μπορούν να συμφωνήσουν από κοινού στη χρήση ενός DTD για να ανταλλάσσουν δεδομένα μεταξύ τους. Επίσης, ένα DTD μπορεί να χρησιμοποιηθεί από μια εφαρμογή για επαλήθευση της ε- γκυρότητας δεδομένων που λαμβάνονται εξωτερικά ή από κάποιον χρήστη για επαλήθευση των δικών του δεδομένων. Ένα DTD μπορεί να αποτελεί ένα ξεχωριστό αρχείο (εξωτερικό DTD) ή να είναι ενσωματωμένο στο ίδιο το XML έγγραφο (εσωτερικό DTD). Συνήθως, είναι προτιμότερη η χρήση εξωτερικού DTD, ώστε να μπορεί να χρησιμοποιηθεί από πολλά έγγραφα. Διαφορετικά, η επαναληπτική αντιγραφή (duplication) είναι αναπόφευκτη και η διατήρηση της συνέπειας (consistency) με τη ροή του χρόνου καθίσταται δύσκολη. Για να περιληφθεί ένα εξωτερικό DTD σε ένα XML έγγραφο απαιτείται μία δήλωση της μορφής <!DOCTYPE root-element SYSTEM "filename">. Ενώ, για εσωτερικό DTD γίνεται χρήση της δήλωσης <!DOCTYPE root-element [elementdeclarations]>. Ένα XML έγγραφο ονομάζεται έγκυρο (valid) όταν συνοδεύεται από ένα αντίστοιχο DTD και το έγγραφο είναι δομημένο σύμφωνα με τους κανόνες που το DTD ορίζει. Ο ορισμός του τύπου ενός στοιχείου γίνεται με μία δήλωση της ακόλουθης δομής, <!ELEMENT element_name (content)>. Υποστηρίζονται οι εξής ορισμοί: Απλοί χαρακτήρες (parsed character data): <!ELEMENT gender (#PCDATA)> Ακολουθία στοιχείων: <!ELEMENT person_name (name, surname)> Κανένα ή ένα στοιχείο: <!ELEMENT person (person_name, birthdate?)> Μηδέν ή περισσότερα στοιχεία: <!ELEMENT family (person*)> Ένα ή περισσότερα στοιχεία: <!ELEMENT professor (course+)> Δυνατές τιμές: <!ELEMENT encoding (mime binhex)> Χρήση παρενθέσεων: <!ELEMENT person_details (name, surname, (social_number id_number))> 37

44 Κενό περιεχόμενο: <!ELEMENT attachment EMPTY> Οποιοδήποτε περιεχόμενο: <!ELEMENT text ANY> Τα γνωρίσματα που επιτρέπονται σε ένα στοιχείο ορίζονται με δήλωση της ακόλουθης μορφής: <!ATTLIST όνομα_στοιχείου όνομα_γνωρίσματος τύπος_ γνωρίσματος τιμή_γνωρίσματος... > Υποστηρίζονται μεταξύ άλλων οι παρακάτω τύποι γνωρισμάτων: CDATA: ακολουθία χαρακτήρων. (επιλογή 1... επιλογή n ): απαρίθμηση δυνατών τιμών. ID: κλειδί, δηλαδή όνομα που είναι μοναδικό (unique) σε όλο το έγγραφο. IDREF: αναφορά σε κλειδί. IDREFS: ακολουθία αναφορών σε κλειδιά. Οι δυνατοί τύποι τιμών γνωρισμάτων είναι οι εξής: #REQUIRED: η παρουσία του γνωρίσματος είναι υποχρεωτική σε κάθε εμφάνιση του στοιχείου μέσα στο XML έγγραφο. #IMPLIED: η εμφάνιση του γνωρίσματος είναι προαιρετική. #FIXED value: κάθε στοιχείο αυτού του τύπου πρέπει να έχει το γνώρισμα αυτό, το οποίο έχει πάντα την τιμή value που ακολουθεί το #FIXED. "value": η προκαθορισμένη (default) τιμή ενός γνωρίσματος. Αν μία άλλη τιμή εμφανίζεται για το γνώρισμα αυτό μέσα στο XML έγγραφο, τότε υπερισχύει της προκαθορισμένης τιμής. Ένα παράδειγμα δήλωσης γνωρισμάτων ενός στοιχείου είναι το ακόλουθο: <!ATTLIST item itemno ID #REQUIRED quantity CDATA #REQUIRED comments CDATA #IMPLIED> 38

45 3.6 Really Simple Syndication Η τεχνολογία RSS είναι ένα φορμά (format) ανταλλαγής περιεχομένου που βασίζεται στη γλώσσα XML. To όνομα του πρωτοκόλλου RSS παράγεται από τα αρχικά των λέξεων Really Simple Syndication (καθώς και του Rich Site Summary αλλά και του RDF Site Summary, ωστόσο έχει επικρατήσει η πρώτη εκδοχή). Αποτελεί έναν απλό τρόπο για την αποστολή πληροφοριών, όπως τίτλους ειδήσεων, ανακοινώσεις κ.α., από ένα δυναμικό δικτυακό τόπο, χωρίς να χρειάζεται ο χρήστης να μπαίνει στη διαδικασία συχνής επίσκεψης του και αναζήτησης των πληροφοριών αυτών. Είναι κατάλληλο για ιστοχώρους που το περιεχόμενο τους ενημερώνεται και αλλάζει ανά τακτά χρονικά διαστήματα. Το RSS έκανε για πρώτη φορά την εμφάνισή του στα web logs, όπου έτυχε θερμής υποδοχής, ως ένας τρόπος για τους χρήστες να παρακολουθούν τις εξελίξεις στα blogs της προτίμησής τους, χωρίς να χρειάζεται να ερευνούν για ανανεώσεις. Σύντομα όμως επεκτάθηκε και πέραν των blogs, συμπεριλαμβανομένων και ορισμένων από τους μεγαλύτερους οργανισμούς μέσων μαζικής ενημέρωσης. Όλες οι παραλλαγές του πρωτόκολλου RSS ορίζουν στις προδιαγραφές τους ένα XML έγγραφο που περιέχει items ή αντικείμενα, το οποίο είναι διαθέσιμο σε ένα εξυπηρετητή διαδικτυακών εφαρμογών (web server) και μπορεί να αναγνωριστεί από το λογισμικό των πελατών σε χρονικές στιγμές που ορίζονται από τους ίδιους. Για την επικοινωνία χρησιμοποιείται το πρωτόκολλο HTTP. Η συχνότερη χρήση του RSS είναι σε προγράμματα ανάγνωσης ή συγκέντρωσης ειδήσεων (RSS readers ή News Aggregators), που είναι εγκατεστημένα σε προσωπικούς υπολογιστές και έχουν σκοπό να ενημερώνουν αυτόματα τους χρήστες όταν εντοπίσουν νέο περιεχόμενο σε ένα δικτυακό τόπο της επιλογής τους, ανιχνεύοντας τροποποιήσεις στο αντίστοιχο XML έγγραφο. Τα προγράμματα ανάγνωσης ειδήσεων είναι αυτόνομες εφαρμογές, οι οποίες ανακτούν και εμφανίζουν τα περιεχόμενα των καναλιών τροφοδοσίας RSS (RSS feeds) που έχει επιλέξει ο χρήστης. Ένα κανάλι (channel) RSS περιέχει υποχρεωτικά τίτλο (title), περιγραφή (description), υπερσύνδεσμο (link) και άλλες προαιρετικές πληροφορίες καναλιού όπως γλώσσα, copyright κ.α., καθώς και έναν αριθμό από <item>s. Κάθε item αναπαριστά μία είδηση και πρέπει να περιλαμβάνει τουλάχιστον τίτλο ή περιγραφή. Βέβαια για κάθε item υπάρχει πληθώρα προαιρετικών στοιχείων όπως σύνδεσμος (link), συγγραφέας (author), ημερομηνία δημοσίευσης (pubdate) κ.α.. Παρακάτω φαίνεται ένα ενδεικτικό έγγραφο RSS. 39

46 <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>example Feed</title> <description>insert remark here</description> <link> <language>en-us</language> <lastbuilddate> Sat, 13 Dec :30:02 GMT </lastbuilddate> <managingeditor> Doe) </managingeditor> <item> <title>atom-powered Robots Run Amok</title> <link> <pubdate>sat, 13 Dec :30:02 GMT</pubDate> <description>some text.</description> </item> </channel> </rss> 40

47 4 Το Σύστημα ΔEiXTo Το κεφάλαιο αυτό παρουσιάζει τη λειτουργικότητα του συστήματος αποδελτίωσης που αναπτύχθηκε, το οποίο ονομάζεται ΔEiXTo, και το εξετάζει σε χρηστικό αλλά και σε τεχνικό επίπεδο. Το όνομα του εργαλείου προέκυψε από τα αρχικά των λέξεων Data Extraction Tool και την ελληνική φράση «δείξ το». Το σύστημα παρέχει ένα εύχρηστο γραφικό περιβάλλον (GUI) μέσω του οποίου ο χρήστης μπορεί σχετικά εύκολα να κατασκευάσει ένα αποτελεσματικό κανόνα εξαγωγής και να τον εκτελέσει ώστε τελικά να εξάγει τα επιθυμητά δεδομένα από ιστοσελίδες που τον ενδιαφέρουν. Στην Εικόνα 6 απεικονίζεται το γραφικό περιβάλλον του ΔEiXTo και απαριθμούνται τα σημαντικότερα επιμέρους τμήματα του παραθύρου της εφαρμογής, τα οποία θα αναλυθούν στη συνέχεια Εικόνα 6: Το γραφικό περιβάλλον του ΔEiXTo 41

48 4.1 Ενσωματωμένο Πρόγραμμα Πλοήγησης Στο σύστημα ΔEiXTo, κυρίαρχο ρόλο παίζει το ενσωματωμένο πρόγραμμα πλοήγησης Ιστού. Το πρόγραμμα πλοήγησης βασίζεται στον πυρήνα του Internet Explorer της Microsoft που είναι διαθέσιμος στο Delphi σαν ActiveX στοιχείο ελέγχου (control) με όνομα TWebBrowser. Αυτό το στοιχείο ελέγχου, το οποίο παρέχει πρόσβαση στη λειτουργικότητα του προγράμματος πλοήγησης και επιτρέπει στον προγραμματιστή να αξιοποιήσει τις δυνατότητες του, περιλαμβάνει τη μηχανή απεικόνισης ιστοσελίδων (render engine) αλλά και την υψηλού επιπέδου μηχανή συντακτικής ανάλυσης (parser) ενός εγγράφου. Ο συντακτικός αναλυτής είναι υπεύθυνος για την κανονικοποίηση του πηγαίου κώδικα των ιστοσελίδων ώστε αυτός να ακολουθεί ορισμένους συντακτικούς κανόνες. Έτσι κλείνει τις ετικέτες που είναι ανοιχτές, εισάγει ετικέτες που λείπουν (missing tags), προσθέτει ή αφαιρεί εισαγωγικά (quotes) κ.α. Επίσης, αναλαμβάνει την κατασκευή της DOM αναπαράστασης και παρέχει την προγραμματιστική διεπαφή (API) προς το σύνολο των αντικειμένων που συνιστούν ένα έγγραφο. Αν και η βάση της προσέγγισης που ακολουθήθηκε δεν εξαρτάται από συγκεκριμένο τύπο προγράμματος πλοήγησης, για τις ανάγκες της υλοποίησης, επιλέχτηκε ο Internet Explorer επειδή έχει μεγαλύτερη εγκατεστημένη βάση. Στο ΔEiXTo, το πρόγραμμα πλοήγησης βρίσκεται στο πάνω αριστερό τμήμα του παραθύρου της εφαρμογής (Εικόνα 6, Περιοχή 1). Αν λοιπόν ένας χρήστης ενδιαφέρεται να εξάγει δεδομένα από μια συγκεκριμένη HTML ιστοσελίδα ή ένα δικτυακό τόπο, η πρώτη ενέργεια που έχει να κάνει είναι να πληκτρολογήσει τη διεύθυνση της σελίδας (URL) στο αντίστοιχο πεδίο κειμένου, το οποίο ονομάζεται γραμμή διευθύνσεων, και προφανώς να δώσει την εντολή να γίνει πλοήγηση. Να σημειωθεί πως το πρόγραμμα πλοήγησης μπορεί να ανακτήσει και HTML έγγραφα τα οποία είναι αποθηκευμένα τοπικά στο δίσκο του χρήστη μέσω του σχήματος file: URL. Αρκεί ο χρήστης να εισάγει διεύθυνση της μορφής file://path. Σε περίπτωση βέβαια που η πλοήγηση σε μια σελίδα για κάποιο λόγο αποτύχει (navigation error) ή περάσει χρονικό διάστημα ίσο με το μέγιστο επιτρεπόμενο χρόνο (timeout), ο οποίος έχει οριστεί στα 5 λεπτά, τότε γίνονται οι κατάλληλες ενέργειες και τυπώνονται σχετικά μηνύματα. Το σύστημα έχει τη δυνατότητα να χειρίζεται HTML ιστοσελίδες οι οποίες όμως δεν έχουν πλαίσια (frames). Αυτό οφείλεται στο γεγονός ότι η ύπαρξη πλαισίων 42

49 σε μία σελίδα κάνει πιο πολύπλοκο το χειρισμό της και απαιτεί προγραμματιστικά ειδική αντιμετώπιση, καθώς κάθε πλαίσιο αποτελεί μία ξεχωριστή σελίδα. Βέβαια, η πολύ μεγάλη πλειοψηφία των ιστοσελίδων δεν περιέχει πλαίσια. Αυτό συνεπάγεται ότι η αξία του εργαλείου που κατασκευάστηκε δε μειώνεται, τουλάχιστον σοβαρά, εξαιτίας της μη αντιμετώπισης τέτοιων περιπτώσεων. 4.2 mydom Αναπαράσταση Η λειτουργία του ΔEiXTo βασίζεται στο Μοντέλο Αντικειμένου Εγγράφου (DOM). Κρίθηκε λοιπόν απαραίτητη η οπτικοποίηση της DOM αναπαράστασης της προβαλλόμενης ιστοσελίδας και η αποτύπωση της σε ορατό συστατικό, τύπου TTreeView, στο πάνω δεξιό μέρος του παραθύρου της εφαρμογής (Εικόνα 6, περιοχή 2). Να σημειωθεί πως από εδώ και στο εξής η δενδροειδής αυτή αναπαράσταση θα αναφέρεται ως mydom. Η κατασκευή του mydom μίας ιστοσελίδας πραγματοποιείται όταν ολοκληρώνεται η λήψη της από το πρόγραμμα πλοήγησης. Με τεχνική ορολογία, μία ιστοσελίδα έχει «κατέβει» πλήρως όταν «χτυπήσει» το τελικό documentcomplete γεγονός (event) του TWebBrowser στοιχείου για τη συγκεκριμένη λήψη σελίδας. Η κατασκευή της mydom αναπαράστασης γίνεται με χρήση των διεπαφών που προσφέρει το DOM και κλασικού αναδρομικού αλγορίθμου σάρωσης δέντρου κατά βάθος (depth first). Μάλιστα, κατά τη διάρκεια της, φτιάχνεται μία λίστα από δομές (structures) που περιέχουν χρήσιμες πληροφορίες για κάθε κόμβο του DOM. Συγκεκριμένα, για στοιχεία υπερσυνδέσμους (<Α>) αποθηκεύεται το href γνώρισμα τους, για εικόνες (<IMG>) το src γνώρισμα τους, για τους κόμβους κειμένου (TEXT) το κείμενο που περιέχουν και για τα υπόλοιπα HTML στοιχεία (elements) το εσωκλειόμενο κείμενο τους (inner text). Επίσης, για κάθε κόμβο αποθηκεύονται ο αριθμός της θέσης του στη δενδροειδή DOM αναπαράσταση (DOM index), ο αναγνωριστικός αριθμός στοιχείου (source index), εφόσον βέβαια πρόκειται για HTML στοιχείο και όχι για κόμβο κειμένου, καθώς και κάποιες άλλες πληροφορίες. Η λίστα αυτή έχει κεντρικό ρόλο στη λειτουργία του συστήματος. Ιδιαίτερα χρήσιμη λειτουργία αποδείχτηκε η δυνατότητα να αγνοούνται κάποιοι τύποι HTML κόμβων κατά την κατασκευή της mydom αναπαράστασης μιας ιστοσελίδας, χωρίς όμως να αγνοείται και το εσωκλειόμενο κείμενο τους. Η λειτουργία αυτή υλοποιήθηκε διότι διαπιστώθηκε σε ορισμένες περιπτώσεις ότι κάποιοι τύ- 43

50 ποι στοιχείων δημιουργούσαν πρόβλημα τόσο στον εντοπισμό των στιγμιότυπων επιθυμητής πληροφορίας όσο και στην εξαγωγή των χρήσιμων δεδομένων. Για να γίνει το παραπάνω πιο σαφές ακολουθεί ένα χαρακτηριστικό παράδειγμα. Σε μία τυπική σελίδα αποτελεσμάτων του Google παρουσιάζεται σοβαρό πρόβλημα λόγω της έντονης (bold) γραφής κάποιων λέξεων. Τα <B> HTML στοιχεία αναγκάζουν ένα τμήμα κειμένου να «σπάσει» σε πολλά επιμέρους τμήματα, με συνέπεια τα στιγμιότυπα να περιλαμβάνουν δομές της μορφής που φαίνεται στην Εικόνα 7. Εικόνα 7: Προβληματικό υποδένδρο λόγω εκτεταμένης χρήσης ετικετών μορφοποίησης <Β> Η παραπάνω δομή δυσχεραίνει σημαντικά τόσο την εξαγωγή του ενιαίου κειμένου όσο και τον εντοπισμό των στιγμιότυπων καθώς το πλήθος των λέξεων σε έ- ντονη γραφή σε ένα στιγμιότυπο είναι μεταβλητό. Ωστόσο, με τη λειτουργία απλοποίησης της mydom αναπαράστασης, έπειτα από σχετική εντολή του χρήστη βέβαια, τα στοιχεία που δημιουργούν το πρόβλημα αγνοούνται και το εσωτερικό τους κείμενο συγχωνεύεται με γειτονικούς κόμβους κειμένου. Έτσι, το παραπάνω υποδένδρο έπειτα από παράλειψη των <B> στην κατασκευή της DOM δενδροειδούς αναπαράστασης μετατρέπεται σε αυτό που φαίνεται στην Εικόνα 8. Εικόνα 8: Απλοποίηση προβληματικού υποδένδρου (από Εικόνα 7) Σαν αποτέλεσμα διευκολύνεται ο εντοπισμός όλων των στιγμιότυπων, αφού πλέον δεν υπάρχει εξάρτηση από τον αριθμό των <B> στοιχείων που έχει κάθε στιγμιότυπο και επιπρόσθετα είναι δυνατή η εξαγωγή του ενιαίου κειμένου. Είναι προφα- 44

51 νής λοιπόν η χρησιμότητα και τα πλεονεκτήματα της λειτουργίας απλοποίησης της mydom αναπαράστασης. Για την πραγματοποίηση της πρέπει ο χρήστης να επιλέξει τα στοιχεία που θέλει να απομακρύνει, από μία σταθερά προκαθορισμένη λίστα HTML στοιχείων (Εικόνα 9) στην καρτέλα Project Info στην περιοχή 7 της εφαρμογής (Εικόνα 6). Εικόνα 9: Λίστα με ετικέτες στοιχείων προς απομάκρυνση Στη συνέχεια πρέπει ο χρήστης να πατήσει το κουμπί «κλαδέματος» του my- DOM (Εικόνα 10), που βρίσκεται στην περιοχή 2 του παραθύρου της εφαρμογής. Ο χρήστης έχει επίσης τη δυνατότητα να κατασκευάσει ξανά την πρωτότυπη mydom αναπαράσταση, επιλέγοντας το σχετικό κουμπί, που είναι ακριβώς δίπλα σε αυτό της απλοποίησης (Εικόνα 10). Η λειτουργία αυτή είναι χρήσιμη σε δυναμικές ιστοσελίδες που το HTML περιεχόμενο τους μεταβάλλεται λόγω αλληλεπίδρασης του χρήστη με αυτές. Στην παρούσα υλοποίηση, η εξαγωγή περιεχομένου από τέτοιες ιστοσελίδες απαιτεί την παρουσία του χρήστη. Εικόνα 10: Κουμπιά ανακατασκευής και κλαδέματος της DOM αναπαράστασης 4.3 Δημιουργία Κανόνα Εξαγωγής Όταν και εφόσον ολοκληρωθεί επιτυχώς η λήψη μιας ιστοσελίδας και γίνει η προβολή της μέσα στο πρόγραμμα πλοήγησης, πρέπει ο χρήστης να περιγράψει τη μορφή της επιθυμητής πληροφορίας, δηλαδή να κατασκευάσει ένα κανόνα εξαγωγής. Φυσικά, η χειροκίνητη μοντελοποίηση κανόνων εξαγωγής είναι επίπονη διαδικασία για το μέσο χρήστη. Για το σκοπό αυτό, το πρόγραμμα πλοήγησης εμπλουτίστηκε με μία ελεγχόμενη κατάσταση λειτουργίας επισήμανσης (highlight mode), ώστε περιοχές της ιστοσελίδας που αντιστοιχούν σε ορατά HTML στοιχεία να χρωματίζονται διαφορετικά όταν ο κέρσορας περνά από πάνω τους. Έτσι, όταν ο κέρσορας είναι πάνω από το HTML έγγραφο και το σχετικό κουμπί ελέγχου (checkbox) στην περιοχή 2 της ε- 45

52 φαρμογής είναι ενεργοποιημένο, τότε γίνεται επισήμανση του HTML στοιχείου στο οποίο αντιστοιχεί η θέση του mouse, εφόσον βέβαια αυτό είναι δυνατό. Η Εικόνα 11 είναι ενδεικτική αυτής της λειτουργίας. Εικόνα 11: Λειτουργία οπτικής επισήμανσης Επιπλέον, στην καρτέλα Element Info, στην περιοχή 7 στην Εικόνα 6, εμφανίζονται διάφορες χρήσιμες πληροφορίες για το επιλεγμένο στοιχείο (Εικόνα 12), όπως ο πηγαίος κώδικας του στοιχείου (outer HTML), το κείμενο που εσωκλείει (inner text) και η απόλυτη διαδρομή θέσης του μέσα στο έγγραφο. Εικόνα 12: Βοηθητικές πληροφορίες για το επιλεγμένο DOM στοιχείο Ο χρήστης μπορεί εύκολα και γρήγορα να κατασκευάσει στιγμιότυπο της επιθυμητής πληροφορίας με απλή υπόδειξη της κατάλληλης επιλογής στο τοπικό μενού 46

53 (popup menu) του HTML στοιχείου που τον ενδιαφέρει. Τότε, δημιουργείται δενδρικός κανόνας, ο οποίος φαίνεται στο πλαίσιο της περιοχής 6 του παραθύρου της εφαρμογής (Εικόνα 6). Η δενδρική αυτή δομή είναι το υποδένδρο της mydom αναπαράστασης της ιστοσελίδας με ρίζα τον κόμβο που υπέδειξε ο χρήστης. Στην Εικόνα 13 φαίνεται τμήμα του κανόνα που αντιστοιχεί στο στοιχείο που επισημαίνεται στην Εικόνα 11. Πρέπει να σημειωθεί ότι ένας νέος κανόνας αρχικά είναι ρυθμισμένος έτσι ώστε να εξάγει μόνο τα επιμέρους τμήματα κειμένου που ε- σωκλείονται στους TEXT κόμβους του. Κάθε κόμβος της δομής έχει ένα όνομα, το οποίο είναι είτε η ετικέτα του αντίστοιχου HTML στοιχείου είτε TEXT για τους κόμβους κειμένου. Μάλιστα, ο ριζικός κόμβος του κανόνα φαίνεται με έντονα υπογραμμισμένα γράμματα. Εικόνα 13: Τμήμα δενδρικού κανόνα Η παραπάνω δομή έχει διττό ρόλο. Είναι ταυτόχρονα το τρέχον πρότυπο (working pattern) που θα χρησιμοποιηθεί για την εξαγωγή πληροφορίας αλλά και ένα στιγμιότυπο της επιθυμητής πληροφορίας (record instance). Έτσι, όταν ο χρήστης ε- πιλέγει ένα κόμβο του κανόνα, χρωματίζεται διαφορετικά η περιοχή της προβαλλόμενης ιστοσελίδας στην οποία αντιστοιχεί ο κόμβος αυτός. Αυτό διευκολύνει ιδιαίτερα τη διαδικασία κατάλληλης ρύθμισης του κανόνα, ώστε να μεγιστοποιηθεί η αποτελεσματικότητα του. Σε ορισμένες περιπτώσεις όμως δεν είναι δυνατή η οπτική επισήμανση ενός στοιχείου καθώς δεν είναι όλα τα στοιχεία άμεσα επιλέξιμα. Για παράδειγμα, τα μη ορατά στοιχεία ή μερικές φορές ένα στοιχείο <TR>, δεν είναι δυνατό να επισημανθούν με υπόδειξη μέσω mouse. Τότε, ο χρήστης μπορεί να χρησιμοποιήσει τη mydom αναπαράσταση για να κατασκευάσει τον κανόνα εξαγωγής. Αρκεί να επιλέξει στο τοπικό μενού του κόμβου τη λειτουργία δημιουργίας στιγμιότυπου επιθυμητής πληροφορίας. Τότε, δημιουργείται δενδρικός κανόνας, ο οποίος αποτελείται από το υπο- 47

54 δένδρο του mydom με ρίζα τον κόμβο αυτό. Η διαδικασία αυτή αποτυπώνεται στην Εικόνα 14. Επιπρόσθετα, υλοποιήθηκε κατάσταση συγχρονισμένης λειτουργίας μεταξύ προγράμματος πλοήγησης και mydom αναπαράστασης, κατά την οποία η επιλογή ενός κόμβου στο δέντρο ενεργοποιεί, εφόσον αυτό είναι δυνατό, την οπτική επισήμανση του αντίστοιχου στοιχείου της προβαλλόμενης σελίδας στο πρόγραμμα πλοήγησης και αντίστροφα. Εικόνα 14: Δημιουργία κανόνα μέσω της mydom αναπαράστασης Να σημειωθεί πως όταν ο κέρσορας βγαίνει εκτός προγράμματος πλοήγησης και το κουμπί ελέγχου επισήμανσης είναι ενεργό, τότε παύει και η οπτική επισήμανση κάποιου στοιχείου. Οπότε, για τις περιπτώσεις που δεν είναι εφικτή η επισήμανση του επιθυμητού στοιχείου μέσω mouse στο πρόγραμμα πλοήγησης, η συνήθης τακτική είναι να επισημαίνει ο χρήστης ένα στοιχείο που είναι κοντά σε αυτό που θέλει να «πιάσει», έπειτα να απενεργοποιεί τη λειτουργία επισήμανσης με δεξί κλικ και επιλογή της αντίστοιχης λειτουργίας και τέλος να υποδεικνύει στο mydom δέντρο το στοιχείο που πραγματικά τον ενδιαφέρει. Η κατασκευή αποτελεσματικών κανόνων εξαγωγής προϋποθέτει την προσεκτική επιλογή αντιπροσωπευτικού παραδείγματος επιθυμητής πληροφορίας, το οποίο χρησιμεύει ως πρότυπο για την ανακάλυψη όλων των στιγμιότυπων επιθυμητών α- ντικειμένων που εμφανίζονται στη σελίδα. Το γεγονός που εκμεταλλεύεται το ΔEiXTo είναι ότι τα σημασιολογικά σχετικά αντικείμενα έχουν κοινό ή παρόμοιο στυλ παρουσίασης καθώς και σχεδόν ίδια HTML δομή. Καλή πρακτική συνήθως α- ποτελεί η υπόδειξη της μικρότερης δυνατής περιοχής δεδομένων που αντιστοιχεί σε ένα στιγμιότυπο, το οποίο περιέχει όλες τις πληροφορίες του αντικειμένου που ενδιαφέρουν το χρήστη. Σημαντικότατο πλεονέκτημα του συστήματος είναι η οπτικοποίη- 48

55 ση της διαδικασίας, η οποία διευκολύνει πολύ την κατασκευή κανόνων εξαγωγής. Δεν είναι υπερβολή ότι πολλές φορές φτιάχνονται εύκολα σύνθετοι κανόνες μέσα σε λίγα δευτερόλεπτα. 4.4 Ρύθμιση Κανόνα Εξαγωγής Σχεδόν πάντα, η απλή υπόδειξη από το χρήστη ενός στιγμιότυπου της επιθυμητής πληροφορίας δεν αρκεί για τον εντοπισμό και την εξαγωγή όλης, και μόνο αυτής, της επιθυμητής πληροφορίας. Αυτό συμβαίνει συχνά για παράδειγμα σε περιπτώσεις ό- που το είδος πληροφορίας που ενδιαφέρει επαναλαμβάνεται πολλές φορές στην ίδια ιστοσελίδα και τα επιμέρους στιγμιότυπα παρουσιάζουν μικρές ή και μεγαλύτερες παραλλαγές στη δομή τους. Οι παραλλαγές αυτές συνήθως οφείλονται σε προαιρετικά τμήματα δεδομένων. Επίσης, ο χρήστης συνήθως επιθυμεί συγκεκριμένα πεδία (fields) δεδομένων του κάθε στιγμιότυπου και όχι το σύνολο των δεδομένων που αυτό περιέχει. Μάλιστα, σε αρκετές περιπτώσεις, μπορεί να ενδιαφέρει το χρήστη όχι ένα απλό τμήμα κειμένου αλλά κάποια γνωρίσματα ορισμένων κόμβων. Χαρακτηριστικά παραδείγματα είναι το href γνώρισμα ενός υπερσυνδέσμου (<Α>) ή το src μιας εικόνας (<IMG>). Για τους παραπάνω λόγους, χρησιμοποιήθηκαν κατάλληλες μεθοδολογίες ώστε το πρόγραμμα να έχει την ικανότητα εξαγωγής πολλαπλών στιγμιότυπων επιθυμητής πληροφορίας, με πολλαπλά πεδία το καθένα. Δίνεται λοιπόν η δυνατότητα καθορισμού από το χρήστη του ρόλου που παίζει κάθε κόμβος του δενδρικού κανόνα εξαγωγής. Έτσι, ο χρήστης μπορεί να επιλέξει μεταξύ έξι διαφορετικών καταστάσεων λειτουργίας (states). Κάθε κατάσταση εκφράζει το κατά πόσο ένας κόμβος πρέπει οπωσδήποτε να βρίσκεται σε ένα στιγμιότυπο επιθυμητής πληροφορίας (δηλαδή αν είναι υποχρεωτικός ή προαιρετικός), καθώς και το είδος της πληροφορίας που ενδεχομένως ο χρήστης ενδιαφέρεται να εξάγει από αυτόν. Αρκεί λοιπόν ο χρήστης να επιλέξει από το τοπικό μενού του κόμβου την κατάσταση που επιθυμεί για τον κόμβο αυτό (Εικόνα 15). Εικόνα 15: Επιλογή κατάστασης κόμβου στο τοπικό μενού του κανόνα εξαγωγής 49

56 Πρέπει όμως να σημειωθεί ότι οι καταστάσεις κόμβου, που περιγράφονται παρακάτω, ισχύουν υπό την προϋπόθεση ότι έχουν ταιριάξει οι άμεσοι πρόγονοι (πατέρας, πατέρας του πατέρα, κ.τ.λ.) του συγκεκριμένου κόμβου. Ο δυνατές καταστάσεις είναι λοιπόν οι εξής: checked: ο κόμβος αυτός είναι υποχρεωτικός σε ένα στιγμιότυπο επιθυμητής πληροφορίας και ο χρήστης επιθυμεί πληροφορία που αυτός περιέχει. Αποτελεί δηλαδή μία μεταβλητή εξόδου. Αν πρόκειται για TEXT κόμβο η πληροφορία που εξάγεται είναι το κείμενο που εσωκλείει (inner text), για υπερσύνδεσμο (<Α>) αυτό που ενδιαφέρει είναι το href γνώρισμα, ενώ για στοιχεία εικόνων εξάγεται η τιμή του src γνωρίσματος. Για τα υπόλοιπα HTML στοιχεία εξάγεται το εσωτερικό τους κείμενο. Επίσης, σε περίπτωση που ένας TEXT κόμβος έχει τεθεί ως κανονική έκφραση (REGEXPR κόμβος), τότε εξάγεται η συμβολοσειρά που ταίριαξε με το πρότυπο. Σε περίπτωση που η κανονική έκφραση περιέχει παρενθέσεις, τότε εξάγεται το αλφαριθμητικό που προκύπτει από τη συγχώνευση των τμημάτων της συμβολοσειράς στόχου που συμφώνησε με κάθε έκφραση σε παρενθέσεις. checkedsource: ο HTML κόμβος είναι υποχρεωτικός σε ένα στιγμιότυπο και ο χρήστης επιθυμεί τον πηγαίο του κώδικα του στοιχείου (outer HTML). Ένας κόμβος τέτοιου τύπου συνιστά μεταβλητή εξόδου. grayed: ο κόμβος αυτός είναι υποχρεωτικός σε ένα στιγμιότυπο. unchecked: δεν ενδιαφέρει καθόλου η παρουσία του σε ένα στιγμιότυπο. Θα μπορούσε και να διαγραφεί τελείως. Η ύπαρξη του στον κανόνα, εξυπηρετεί κυρίως τη δυνατότητα εύκολης μελλοντικής ενσωμάτωσης του, αν και όταν αυτό καταστεί αναγκαίο. grayed_implied: ο κόμβος αυτός είναι προαιρετικός (optional) σε ένα στιγμιότυπο και ο χρήστης δεν επιθυμεί κάποια πληροφορία από το συγκεκριμένο κόμβο. Κατά συνέπεια, σε περίπτωση που ο κόμβος αυτός έχει παιδιά, το υποδένδρο με ρίζα τον κόμβο αυτό είναι προαιρετικό, ά- σχετα με τις επιμέρους καταστάσεις των υπόλοιπων κόμβων που περιέχονται στο υποδένδρο αυτό. checked_implied: ο κόμβος είναι μεν προαιρετικός σε ένα στιγμιότυπο αλλά αν τυχόν ταιριάξει με ένα κόμβο του DOM, τότε γίνεται εξαγωγή 50

57 της πληροφορίας που αυτός περιέχει, όπως ειπώθηκε και στην κατάσταση checked. Αποτελεί λοιπόν και αυτός μεταβλητή εξόδου. Όσο για το υποδένδρο του, ισχύει ό,τι και για ένα κόμβο τύπου grayed_implied. Επίσης, ο χρήστης μπορεί να διαγράψει και εντελώς ένα κόμβο και κατά συνέπεια και το υποδένδρο του. Καθώς γίνονται αλλαγές στον κανόνα, δίνεται η ευχέρεια στο χρήστη να κρατάει αντίγραφα (snapshots) του τρέχοντος κανόνα, τα οποία αποθηκεύονται σε αντίστοιχο πλαίσιο στην περιοχή 3 της εφαρμογής (Εικόνα 6). Φυσικά, ο χρήστης έχει τη δυνατότητα να επαναφέρει ένα τέτοιο αντίγραφο και να το καταστήσει τρέχον πρότυπο μέσω επιλογής στο τοπικό αναδυόμενο μενού. Όταν ο χρήστης διαγράφει εντελώς ένα κόμβο, τότε δημιουργείται αυτόματα ένα αντίγραφο του κανόνα. Όπως προαναφέρθηκε, τις περισσότερες φορές δεν είναι τόσο απλό να εντοπιστούν όλα τα στιγμιότυπα και συνήθως χρειάζεται επεξεργασία του κανόνα και κατάλληλη επιλογή των καταστάσεων και τυχόν περιορισμών. Ιδιαίτερα χρήσιμη είναι μια δευτερεύουσα βοηθητική (auxiliary) δενδρική δομή, στην οποία μπορεί ο χρήστης να τοποθετήσει ένα στιγμιότυπο που «έχασε» ο κανόνας. Αυτό γίνεται με διαδικασία παρόμοια με τη δημιουργία του κανόνα, απλά αυτή τη φορά ο χρήστης πρέπει να επιλέξει τη λειτουργία κατασκευής βοηθητικού στιγμιότυπου. Η δομή αυτή βρίσκεται ακριβώς αριστερά από τον κανόνα. Έτσι, ο χρήστης έχοντας τις δύο αυτές δενδρικές δομές, τη μία δίπλα στην άλλη, μπορεί εύκολα να εντοπίσει τις διαφορές τους και συνεπώς το λόγο για τον οποίο ο κανόνας δεν εξήγαγε αυτό το στιγμιότυπο. Συμπερασματικά, η δομή αυτή διευκολύνει αρκετά την κατασκευή και την κατάλληλη ρύθμιση αποτελεσματικών κανόνων εξαγωγής. 4.5 Πλοήγηση στην Επόμενη Σελίδα Μια τυπική σελίδα αποτελεσμάτων (results) μιας μηχανής αναζήτησης ή μιας υπηρεσίας σύγκρισης τιμών περιέχει πολλά στιγμιότυπα επιθυμητής πληροφορίας. Πολύ συχνά μάλιστα το πλήθος των αποτελεσμάτων είναι μεγάλο και συνεπώς αυτά βρίσκονται μοιρασμένα σε πολλές διαδοχικές ιστοσελίδες, οι οποίες διασυνδέονται μεταξύ τους μέσω υπερσυνδέσμων με κείμενο τύπου Next. Οι wrappers που φτιάχνονται με το σύστημα ΔEiXTo έχουν τη δυνατότητα, με χρήση ενός απλού μηχανισμού, να εντοπίζουν τον υπερσύνδεσμο που οδηγεί στην εκάστοτε επόμενη σελίδα και εφό- 51

58 σον αυτός βρεθεί, τον ακολουθούν και συνεχίζουν τη συλλογή των αποτελεσμάτων στη νέα σελίδα. Ο χρήστης μπορεί να ενεργοποιήσει τη λειτουργία αυτή μέσω στοιχείων ελέγχου της καρτέλας Project Info στην περιοχή 7 της εφαρμογής (Εικόνα 6). Τα στοιχεία αυτά απεικονίζονται στην Εικόνα 16. Εικόνα 16: Στοιχεία ελέγχου για πλοήγηση σε επόμενη σελίδα Το ΔEiXTo επιτρέπει τον εντοπισμό του υπερσυνδέσμου που οδηγεί στην ε- πόμενη σελίδα είτε με χρήση του εσωκλειόμενου κειμένου του είτε με βάση τον τίτλο του. Απαραίτητη προϋπόθεση προφανώς για την καλή απόδοση του μηχανισμού αυτού είναι η ύπαρξη κειμένου ή γνωρίσματος τίτλου (title) στον ζητούμενο υπερσύνδεσμο, γεγονός που στη συντριπτική πλειοψηφία των περιπτώσεων τέτοιων σελίδων ισχύει. Ο χρήστης έχει τη δυνατότητα να εισάγει μέρος (πρόθεμα) του κειμένου ή του τίτλου που έχει ο Next σύνδεσμος, ώστε να γίνει δυνατός ο προσδιορισμός του μεταξύ των υπόλοιπων υπερσυνδέσμων της σελίδας. Επίσης, ο χρήστης μπορεί να ορίσει και το βάθος πλοήγησης (crawling depth), δηλαδή το πλήθος των σελίδων που θα επισκεφτεί ο wrapper. Για ευκολία, η σύγκριση που γίνεται μεταξύ της συμβολοσειράς που δίνει ο χρήστης και του εσωτερικού κειμένου ή του τίτλου κάθε υπερσυνδέσμου, για τον εντοπισμό του υπερσυνδέσμου που δείχνει στην επόμενη σελίδα, δε διαχωρίζει πεζά από κεφαλαία γράμματα (case insensitive). 4.6 Χρήση Κανονικών Εκφράσεων Πολλές φορές είναι χρήσιμο να θέσουμε περιορισμούς για ορισμένους κόμβους κειμένου (TEXT) του κανόνα, ώστε να διευκολυνθεί ο εντοπισμός των σωστών στιγμιότυπων επιθυμητής πληροφορίας. Για παράδειγμα, μπορεί ο χρήστης να θέλει να ορίσει ότι για να ταιριάξει ένας κόμβος κειμένου του mydom με αυτόν του προτύπου, θα πρέπει να ξεκινάει με ένα συγκεκριμένο πρόθεμα ή να περιέχει μια συγκεκριμένη συμβολοσειρά. Άλλες φορές πάλι ο χρήστης μπορεί να θέλει να απομονώσει ένα τμήμα ή και περισσότερα τμήματα του κειμένου που περιέχει ένας TEXT κόμβος. Τα παραπάνω επιτυγχάνονται με χρήση κανονικών εκφράσεων. Για να γίνει καλύτερα 52

59 κατανοητή η αιτία χρησιμοποίησης κανονικών εκφράσεων ακολουθούν δύο απλά παραδείγματα. Έστω λοιπόν ότι ένας χρήστης επιθυμεί να εξάγει τη διεύθυνση (URL) στην οποία οδηγεί ένας υπερσύνδεσμος με κείμενο Next. Δεδομένου ότι οι περισσότεροι σύνδεσμοι μιας σελίδας έχουν τη δομή που φαίνεται στην Εικόνα 17, δεν αρκεί ο κανόνας που προκύπτει απλά με την οπτική υπόδειξη του επιθυμητού υπερσυνδέσμου. Με χρήση του κανόνα της επιστρέφονται τα href γνωρίσματα όσων συνδέσμων έ- χουν αυτή τη δομή, δηλαδή σχεδόν όλων. Προφανώς, αυτό δεν είναι το επιθυμητό αποτέλεσμα της εξαγωγής. Εικόνα 17: Τυπική δομή υπερσυνδέσμου Αν όμως ο χρήστης θέσει τον TEXT κόμβο του κανόνα ως κανονική έκφραση της μορφής Next, τότε ο κανόνας επιστρέφει μόνο τον επιθυμητό υπερσύνδεσμο, καθώς το πρότυπο θα συμφωνήσει μόνο με τον ζητούμενο υπερσύνδεσμο. Ένα άλλο παράδειγμα που αναδεικνύει τη χρησιμότητα των κανονικών εκφράσεων προέρχεται από περιπτώσεις όπου ο χρήστης θέλει να απομονώσει κάποια συγκεκριμένη πληροφορία που περιέχεται μέσα στο κείμενο ενός TEXT κόμβου. Έστω λοιπόν ότι ένας συγκεκριμένος TEXT κόμβος των στιγμιότυπων της επιθυμητής πληροφορίας περιέχει κείμενο της μορφής from $ και ο χρήστης ενδιαφέρεται μόνο για την ακέραια αριθμητική τιμή. Τότε, δεν έχει παρά να αναθέσει στον αντίστοιχο κόμβο του κανόνα, μία κανονική έκφραση όπως αυτή, \$(\d+). Η ανάθεση κανονικής έκφρασης σε ένα κόμβο κειμένου του κανόνα γίνεται με κατάλληλη επιλογή από το τοπικό μενού του κόμβου (Εικόνα 15). Ο χρήστης μπορεί να επιλέξει στο σχετικό παράθυρο (Εικόνα 18) από προκατασκευασμένες κανονικές εκφράσεις που αφορούν συνήθεις περιπτώσεις ή να γράψει μία νέα. Για την απομόνωση δύο ή περισσότερων τμημάτων του εσωκλειόμενου κειμένου ενός TEXT κόμβου, απαιτείται χρήση παρενθέσεων στην κανονική έκφραση. Αυτοί οι κόμβοι κειμένου του κανόνα που έχουν τεθεί ως κανονικές εκφράσεις, έχουν όνομα REGEXPR. Για επαναφορά τους σε TEXT, αρκεί να επιλεγεί από το τοπικό μενού η αντίστοιχη λειτουργία. 53

60 Εικόνα 18: Παράθυρο διαλόγου για ανάθεση κανονικής έκφρασης Αξίζει, τέλος, να τονιστεί ότι οι κανονικές εκφράσεις παρέχουν μερική δυνατότητα για διατύπωση μαθηματικών περιορισμών. Για παράδειγμα, η έκφραση [7-9]\d\d, εκφράζει όλους τους αριθμούς από 700 έως και 999. Η λειτουργία αυτή μπορεί να φανεί αρκετά χρήσιμη, ιδιαίτερα σε σελίδες με καταναλωτικά αγαθά, οι οποίες μάλιστα συγκεντρώνουν και μεγάλο ενδιαφέρον από τους χρήστες του Παγκόσμιου Ιστού. 4.7 Εκτέλεση Κανόνα Εξαγωγής Οι κανόνες εξαγωγής απλά περιγράφουν τη μορφή της πληροφορίας που θα εξαχθεί και όχι τον τρόπο με τον οποίο αυτό θα γίνει. Άρα είναι απαραίτητη η ύπαρξη ενός μηχανισμού εκτέλεσης (executor), ο οποίος και υλοποιεί την εξαγωγή δεδομένων με βάση το πρότυπο που έχει ορίσει ο χρήστης. Στο σύστημα ΔEiXTo, για να εκτελεστεί ένα κανόνας στην προβαλλόμενη ιστοσελίδα, πρέπει ο χρήστης να πατήσει το σχετικό κουμπί (Εικόνα 19) στην περιοχή 6 της εφαρμογής (Εικόνα 6). Εικόνα 19: Κουμπί εκτέλεσης κανόνα εξαγωγής Τότε, δημιουργείται ένα αντίγραφο του κανόνα, χωρίς τους unchecked κόμβους, το οποίο φαίνεται στη δενδρική δομή της καρτέλας Project Info.(Εικόνα 20). Το αντίγραφο αυτό, του οποίου οι κόμβοι δεν περιέχουν δεδομένα, συνιστά το πρότυπο αναζήτησης επιθυμητής πληροφορίας. Συγκεκριμένα, γίνεται προσπάθεια συμφωνίας του προτύπου στη mydom αναπαράσταση, δηλαδή γίνεται αναζήτηση υπο- 54

61 δένδρων που ταιριάζουν με το πρότυπο, ώστε να εντοπιστούν τα επιθυμητά δεδομένα μέσα στο περιεχόμενο της υπό εξέταση σελίδας. Για το σκοπό αυτό ελέγχονται όλοι οι κόμβοι της mydom αναπαράστασης της σελίδας. Ο αλγόριθμος συμφωνίας προτύπου περιγράφεται αναλυτικά σε επόμενη ενότητα. Εικόνα 20: Δενδρική δομή για πρότυπο εξαγωγής Όταν βρεθεί ένα ταίριασμα με το πρότυπο, δηλαδή όλοι οι περιορισμοί που ορίζει ο κανόνας ικανοποιηθούν για ένα υποδένδρο του mydom, τότε μέρος του περιεχομένου της ιστοσελίδας θα έχει δεσμευτεί στις παραμέτρους εξόδου του κανόνα, δηλαδή στους κόμβους του κανόνα που είναι σε κατάσταση checked ή checkedsource ή checked_implied. Τα προκαθορισμένα ονόματα των μεταβλητών είναι τύπου VARX (π.χ. VAR1, VAR2, VAR3, κ.ο.κ.). Στο σημείο αυτό, ο μηχανισμός ε- κτέλεσης συλλέγει τις τιμές από τις μεταβλητές εξόδου και δημιουργεί μια εγγραφή εξόδου (output record) ή αλλιώς ένα αποτέλεσμα εξαγωγής (extraction result). Σε περίπτωση που το υποδέντρο του mydom με ρίζα το υπό εξέταση στοιχείο δεν ταιριάξει με το πρότυπο, τότε απορρίπτονται τα περιεχόμενα του τρέχοντος αντίγραφου του κανόνα και αρχίζει ένα νέος κύκλος ώστε να ελεγχθεί το επόμενο στοιχείο. Η εκτέλεση τερματίζει όταν ελεγχθούν όλα τα στοιχεία της του mydom αναπαράστασης. Τα αποτελέσματα της εκτέλεσης ενός κανόνα, τυπώνονται σε πίνακα στην καρτέλα Output, η οποία βρίσκεται στην περιοχή 7 της εφαρμογής Οι στήλες του πίνακα είναι τόσες όσες και οι μεταβλητές εξόδου και ο αριθμός των γραμμών προφανώς ισοδυναμεί με το πλήθος των συμφωνιών προτύπου, δηλαδή των στιγμιότυπων που εντοπίστηκαν. Τα ονόματα των στηλών είναι ίδια με τα προκαθορισμένα αναγνωριστικά των μεταβλητών εξόδου, δηλαδή VARX. Ωστόσο, ο χρήστης μπορεί να αλλάξει την ετικέτα (label) μιας μεταβλητής εξόδου μέσω σχετικής επιλογής στο τοπικό 55

62 μενού του επιθυμητού κόμβου του κανόνα εξαγωγής, ώστε στον πίνακα αποτελεσμάτων η αντίστοιχη στήλη να αποκτήσει όνομα σχετικό με την εξαγόμενη πληροφορία. Η ετικέτα που εισάγει ο χρήστης, μέσω παράθυρου διαλόγου, συνδυάζεται με το όνομα του κόμβου και σαν διαχωριστικός χαρακτήρας χρησιμοποιείται το ':', όπως φαίνεται στην Εικόνα 21. Έτσι, αν και χειροκίνητα, γίνεται εφικτή η δημιουργία μεταδεδομένων για το χρήσιμο περιεχόμενο μιας σελίδας. Στην Εικόνα 22 φαίνονται κάποια ενδεικτικά αποτελέσματα εξαγωγής δεδομένων από μία ιστοσελίδα υπηρεσίας σύγκρισης τιμών. Εικόνα 21: Κόμβος κανόνα με ετικέτα Επίσης, η επιλογή μία γραμμής του πίνακα αποτελεσμάτων χρωματίζει διαφορετικά στην προβαλλόμενη σελίδα, εφόσον αυτό είναι δυνατό, το στιγμιότυπο στο οποίο αντιστοιχεί το συγκεκριμένο αποτέλεσμα. Αυτό είναι αρκετά χρήσιμο για τον εντοπισμό των στιγμιότυπων που ο κανόνας πιθανώς δεν έπιασε. Ακόμα, με διπλό κλικ σε ένα αποτέλεσμα, ανοίγει η ιστοσελίδα στην οποία βρίσκεται το αντίστοιχο στιγμιότυπο, σε νέο παράθυρο του Internet Explorer. Αυτό έχει νόημα στις περιπτώσεις όπου ο wrapper εφαρμόζει τον κανόνα εξαγωγής σε πολλαπλές σελίδες, οπότε τα αποτελέσματα που συγκεντρώνει, προέρχονται από πολλές διαφορετικές πηγές. Έτσι, διευκολύνεται και η επαλήθευση των αποτελεσμάτων. Εικόνα 22: Αποτελέσματα από εκτέλεση δειγματικού κανόνα 56

63 Τα αποτελέσματα από μία εκτέλεση μπορούν να εξαχθούν (export data) σε αρχείο. Υποστηρίζονται τρεις διαφορετικοί τύποι αρχείων εξόδου, απλό κείμενο (tab delimited text), XML και RSS. Για τους δύο τελευταίους τύπους γίνεται χρήση των ονομάτων των μεταβλητών εξόδου και συνεπώς των ετικετών που έχει εισάγει ο χρήστης. Έτσι, κάθε ετικέτα που έχει δώσει ο χρήστης, χρησιμοποιείται ως XML τύπος στοιχείου. Για την εξαγωγή των αποτελεσμάτων του wrapper σε αρχείο, πρέπει ο χρήστης να πάει στην καρτέλα Project Info, να επιλέξει τύπο αρχείου, να δώσει το όνομα ή/και τη διαδρομή (path) του αρχείου εξόδου και τον τρόπο αποθήκευσης (mode), δηλαδή απόρριψη τυχόν προϋπαρχόντων περιεχομένων (overwrite) του αρχείου ή προσθήκη στο τέλος του αρχείου (append). Τα σχετικά στοιχεία ελέγχου της εφαρμογής φαίνονται στην Εικόνα 23. Εικόνα 23: Στοιχεία ελέγχου για έξοδο σε αρχείο Να σημειωθεί πως λαμβάνεται μέριμνα ώστε τα αρχεία εξόδου να έχουν πάντα κωδικοποίηση (encoding) χαρακτήρων UTF-8, ανεξάρτητα από την κωδικοποίηση των ιστοσελίδων. Έτσι, αν ο χρήστης επέλεγε για παράδειγμα τα αποτελέσματα που απεικονίζονται στην Εικόνα 22 να εξαχθούν σε XML αρχείο, τότε θα προέκυπτε αρχείο της μορφής που φαίνεται στην Εικόνα 24. Εικόνα 24: Τμήμα δειγματικού XML αρχείου εξόδου Πρέπει επίσης να σημειωθεί πως κατά την εκτέλεση ενός κανόνα, το πρόγραμμα βρίσκεται σε κατάσταση εκτέλεσης (running mode) και όλα τα γεγονότα (events) του προγράμματος πλοήγησης που προκαλούνται από το χρήστη μέσω mouse, απενεργοποιούνται έως ότου η εκτέλεση να διεκπεραιωθεί. Για παράδειγμα, κατά τη διάρκεια της εκτέλεσης, ο χρήστης δεν μπορεί να ακολουθήσει ένα υπερσύν- 57

64 δεσμο μέσω αριστερού κλικ, ούτε μπορεί να εμφανίσει αναδυόμενο μενού με δεξί κλικ. Αυτό είναι κυρίως χρήσιμο στην εκτέλεση wrapper που περιλαμβάνει πλοήγηση σε πολλαπλές Next σελίδες και γίνεται για να εξασφαλιστεί η ομαλή εξαγωγή των επιθυμητών δεδομένων. Σε περίπτωση που το πρόγραμμα δεν βρίσκεται σε φάση ε- κτέλεσης, ο χρήστης μπορεί να χρησιμοποιεί κανονικά το ενσωματωμένο πρόγραμμα πλοήγησης, ως συνήθως. 4.8 Εικονική Ρίζα Κανόνα Σε ορισμένες περιπτώσεις η δομή του προτύπου μπορεί να είναι σχετικά απλή, με συνέπεια να επιστρέφονται λανθασμένα υπεράριθμα αποτελέσματα, καθώς η συγκεκριμένη δομή είναι πολύ διαδεδομένη στη σελίδα. Αυτό σημαίνει πως το πρότυπο πρέπει να γίνει πιο αυστηρό, δηλαδή να τεθούν ορισμένοι περιορισμοί. Οι κανονικές εκφράσεις κάποιες φορές βοηθούν αρκετά αλλά δεν αποτελούν πανάκεια. Συνήθως, για την επίλυση του προβλήματος, απαιτείται να περιγραφεί το περιβάλλον ή αλλιώς η γειτονιά του ριζικού κόμβου του κανόνα. Στο ΔEiXTo αυτό επιτυγχάνεται με εισαγωγή στον κανόνα ορισμένων άμεσων, στο mydom δέντρο της προβαλλόμενης σελίδας, προγόνων (πατέρα, πατέρα του πατέρα, κ.ο.κ.) του τρέχοντος ριζικού κόμβου του κανόνα και ενδεχομένως προσθήκη αδελφικών κόμβων (siblings) τους. Συγκεκριμένα, ο χρήστης μπορεί να «ανεβοκατεβαίνει» επίπεδα μέσω των σχετικών κουμπιών (Εικόνα 25) που βρίσκονται στην περιοχή 6 του παραθύρου της εφαρμογής. και να προσθέτει αδέλφια (siblings) σε ένα κόμβο πρόγονο της ρίζας, με σχετική επιλογή από το τοπικό μενού του κόμβου (Εικόνα 15). Να σημειωθεί πως η επιλογή εισαγωγής αδελφικού κόμβου εισάγει στον κανόνα το υποδένδρο με ρίζα τον κόμβο αυτό. Εικόνα 25: Κουμπιά προσθήκης και αφαίρεσης επιπέδων κανόνα Για παράδειγμα, σε ένα δειγματικό ειδησεογραφικό ιστοχώρο (Εικόνα 26), οι επικεφαλίδες των ειδήσεων έχουν τον ίδιο ακριβώς τρόπο εμφάνισης και είναι οργανωμένες ανά κατηγορία σε πίνακες. Έστω λοιπόν ότι ο χρήστης επιθυμεί τις αθλητικές ειδήσεις. 58

65 Εικόνα 26: Επικεφαλίδες ειδήσεων από δειγματικό ειδησεογραφικό ιστοχώρο Προφανώς, όλες οι επικεφαλίδες έχουν κοινή HTML δομή η οποία φαίνεται στην Εικόνα 27, γεγονός που προκαλεί πρόβλημα στην απομόνωση και εξαγωγή μόνο της επιθυμητής πληροφορίας. Εικόνα 27: Δομή επικεφαλίδας ειδήσεων του ιστοχώρου της Εικόνα 26 Για την επίλυση του προβλήματος απαιτείται να διευκρινιστεί το περιβάλλον της ρίζας του κανόνα εξαγωγής. Με χρήση των σχετικών λειτουργιών του εργαλείου, μπορεί εύκολα να προκύψει ο κανόνας της Εικόνα 28, ο οποίος επιστρέφει μόνο τα επιθυμητά δεδομένα. Αξίζει να τονιστεί ότι ο κανόνας χρησιμοποιεί σαν σημείο αναφοράς (landmark) το όνομα της κατηγορίας ειδήσεων, ΑΘΛΗΤΙΣΜΟΣ στην προκειμένη περίπτωση, το οποίο περιγράφεται με χρήση κανονικής έκφρασης. Εικόνα 28: Κανόνας για επικεφαλίδες αθλητικών ειδήσεων 59

66 Όπως φαίνεται στην Εικόνα 28, ρίζα του κανόνα εξαγωγής είναι ο κόμβος TABLE, ενώ ρίζα του αρχικού κανόνα ήταν το TD, το οποίο είναι και υπογραμμισμένο. Το υποδένδρο με ρίζα το TD αναπαριστά ένα στιγμιότυπο επιθυμητής πληροφορίας και συνεπώς αυτό είναι το πρότυπο που πρέπει να αναζητηθεί μέσα στη δενδροειδή DOM αναπαράσταση. Οι κόμβοι πάνω από το TD αποτελούν περιορισμούς γειτονιάς. Για το λόγο αυτό, κατά την εκτέλεση του παραπάνω κανόνα, αναζητούνται ταιριάσματα (matches) στο DOM με πρότυπο το υποδένδρο του TD και έπειτα για κάθε ταίριασμα ελέγχεται η γειτονιά του. Μόνο αν πληρούνται όλοι οι περιορισμοί που εκφράζει ο κανόνας, υπάρχει επιτυχής συμφωνία με το πρότυπο. Η τεχνική αυτή καλείται μέθοδος εικονικής ρίζας (virtual root), καθώς ως ρίζα της δομής που αναζητείται δε χρησιμοποιείται η πραγματική ρίζα του κανόνα αλλά η ρίζα του υποδένδρου που αντιστοιχεί στο στιγμιότυπο της επιθυμητής πληροφορίας. Τέλος, το σκεπτικό της μεθόδου διευκολύνει κατά πολύ την υλοποίηση του αλγορίθμου εντοπισμού ταιριασμάτων προτύπου. 4.9 Διαδοχικοί Προαιρετικοί Κόμβοι Κατά την προσπάθεια συμφωνίας προτύπου, ο αλγόριθμος όταν δεν ταιριάζει ένα προαιρετικό κόμβο του κανόνα, συνεχίζει με τον επόμενο αδελφικό του κόμβο, εφόσον βέβαια αυτός υπάρχει. Ωστόσο, σε ορισμένες περιπτώσεις, οι διαδοχικοί προαιρετικοί κόμβοι αποτελούν μία ομάδα (group), που σημαίνει ότι «πηγαίνουν» πάντα μαζί. Έτσι, μερικές φορές είναι χρήσιμο ο αλγόριθμος να τους χειρίζεται σαν ομάδα κόμβων. Δηλαδή, σε περίπτωση που δεν ταιριάξει ένα προαιρετικό κόμβο, να προσπεράσει τους τυχόν αμέσως επόμενους διαδοχικούς προαιρετικούς κόμβους και να συνεχίσει με τον επόμενο υποχρεωτικό. Αυτό γίνεται δυνατό με την ενεργοποίηση της αντίστοιχης λειτουργίας στην καρτέλα Project Info. Για παράδειγμα, θεωρούμε την περίπτωση της εγγραφής στην Εικόνα 29 και κάνουμε την παραδοχή ότι το τμήμα που αφορά στο σκηνοθέτη είναι προαιρετικό, σε αντίθεση με τον τίτλο της ταινίας και τους ηθοποιούς που είναι υποχρεωτικό να υ- πάρχουν σε ένα στιγμιότυπο. Εικόνα 29: Εγγραφή με προαιρετικό τμήμα δεδομένων 60

67 Στον κανόνα που θα κατασκεύαζε ο χρήστης, θα έπρεπε τους κόμβους που αντιστοιχούν στο τμήμα δεδομένων Director: όνομα_σκηνοθέτη να τους θέσει ως προαιρετικούς, όπως απεικονίζεται στην Εικόνα 30. Ο πρώτος κόμβος REGEXPR περιέχει την κανονική έκφραση Director ενώ ο δεύτερος την έκφραση Actors. Εικόνα 30: Τμήμα κανόνα με διαδοχικούς προαιρετικούς κόμβους Όμως, σε στιγμιότυπο που δεν δίνεται ο σκηνοθέτης, το ταίριασμα του πρώτου SPAN θα αποτύγχανε αλλά ο κόμβος Α του σκηνοθέτη θα ταίριαζε με τον DOM κόμβο Α του πρώτου ηθοποιού του στιγμιότυπου. Το γεγονός αυτό συνιστά σφάλμα καθώς το συγκεκριμένο Α του κανόνα πηγαίνει πάντα μαζί με τους αδελφικούς του κόμβους, SPAN και BR, που αφορούν στο σκηνοθέτη. Για την επίλυση του παραπάνω προβλήματος, δίνεται η δυνατότητα ελεγχόμενου χειρισμού των διαδοχικών προαιρετικών κόμβων σαν ομάδα. Έτσι, στην προκειμένη περίπτωση, εφόσον η εν λόγω λειτουργία είναι ενεργοποιημένη, αν δε βρεθεί το πρώτο SPAN, τότε ο αλγόριθμος μεταπηδά στον επόμενο υποχρεωτικό αδελφικό του κόμβο, δηλαδή το δεύτερο SPAN Αλγόριθμος Συμφωνίας Προτύπου Ο αλγόριθμος που χρησιμοποιεί το ΔEiXTo για συμφωνία (ή ταίριασμα) προτύπου αποδεικνύεται ιδιαίτερα αποτελεσματικός, τουλάχιστον για την πλειοψηφία των περιπτώσεων. Όπως περιγράφηκε και σε προηγούμενη ενότητα, ένας κανόνας εξαγωγής μπορεί να έχει εικονική ρίζα, με συνέπεια το δέντρο του να «σπάει» σε δύο τμήματα. Τις περισσότερες φορές βέβαια, η εικονική και η αληθινή ρίζα του προτύπου συμπίπτουν. Για καλύτερη περιγραφή του αλγορίθμου γίνονται ορισμένες συμβάσεις ονοματολογίας. Έστω R το δέντρο του κανόνα και vroot ο κόμβος της εικονικής ρίζας του R. Τότε, T1 ονομάζεται το υποδένδρο του κανόνα με ρίζα τον κόμβο vroot, ενώ T2 καλείται το υποδένδρο R-T1, το οποίο αποτελείται από τους κόμβους που βρίσκονται «πάνω» από τον κόμβο vroot. Το T2 συνιστά τη γειτονιά του vroot. Σε περί- 61

68 πτωση που η εικονική ρίζα ταυτίζεται με την πραγματική ρίζα του δέντρου του κανόνα, τότε απλά θεωρείται ότι το T2 είναι κενό. Για τον εντοπισμό στιγμιότυπων επιθυμητής πληροφορίας, γίνεται προσπέλαση κάθε στοιχείου της mydom αναπαράστασης της προβαλλόμενης σελίδας. Σε κάθε mydom κόμβο αντιστοιχεί ένα νέος κύκλος προσπάθειας συμφωνίας με το πρότυπο. Έστω node ο κόμβος του mydom υπό εξέταση και S το υποδένδρο με ρίζα τον κόμβο αυτό. Ο αλγόριθμος συμφωνίας προτύπου αποτελείται από δύο βασικά στάδια. Στο πρώτο στάδιο ελέγχεται αν το S ταιριάζει με το T1 και στο δεύτερο ελέγχεται αν η γειτονιά του node ταιριάζει με το T2. Αν και οι δύο έλεγχοι είναι επιτυχείς, δηλαδή ικανοποιηθούν όλοι οι περιορισμοί που επιβάλλει το πρότυπο, τότε υ- πάρχει ταίριασμα, που σημαίνει ότι εντοπίστηκε στιγμιότυπο επιθυμητής πληροφορίας, οπότε και εξάγονται τα δεδομένα του. Η κεντρική ιδέα πίσω από τον αλγόριθμο που χρησιμοποιεί το ΔEiXTo είναι ότι για να ταιριάξουν δύο κόμβοι πρέπει να έχουν την ίδια ετικέτα και να ταιριάζουν οι θυγατρικοί τους κόμβοι. Το ταίριασμα δύο δέντρων συνεπώς ανάγεται σε πρόβλημα ταιριάσματος των ριζικών τους κόμβων και προφανώς επιτυγχάνεται μέσω αναδρομής (recursion) και σάρωσης δέντρου κατά βάθος. Βασικά χαρακτηριστικά του αλγόριθμου είναι η υποστήριξη ενδεχόμενης απουσίας κόμβων (missing nodes) στο δέντρο στόχο και η ύπαρξη προαιρετικών τμημάτων στον κανόνα. Η διαδικασία ταιριάσματος ενός κόμβου του S με ένα κόμβο P του T1 βασίζεται στην αρχή της πρώτης εμφάνισης (first occurrence). Δηλαδή, σε ένα κύκλο ο αλγόριθμος διασχίζει τους κόμβους του αντίστοιχου επιπέδου του S και σταματά την αναζήτηση ταιριάσματος για τον P, όταν βρει τον πρώτο κόμβο του S που συμφωνεί με τον P. Να σημειωθεί πως η προσπάθεια ταιριάσματος ενός κόμβου γίνεται από το σημείο που συνέβη το τελευταίο ταίριασμα. Συνεπώς, όταν ταιριάζει ένας κόμβος του mydom με ένα κόμβο του προτύπου, σημαίνει ότι έχουν ταιριάξει προηγουμένως και τα υποδένδρα τους. Μάλιστα, όταν γίνεται συμφωνία ενός κόμβου, τότε το περιεχόμενο του αντίστοιχου κόμβου του προτύπου γεμίζει με τα δεδομένα του κόμβου με τον οποίο ταίριαξε. Έτσι, σε περίπτωση που βρεθεί συνολικό ταίριασμα με το πρότυπο, τότε όλοι οι κόμβοι του προτύπου έχουν αποκτήσει δεδομένα, ορισμένα εκ των οποίων είναι αυτά που επιθυμεί ο χρήστης, οπότε και εξάγονται. 62

69 Σε περίπτωση που δεν ταιριάξει ένας υποχρεωτικός κόμβος του προτύπου, τότε η διαδικασία αποτυγχάνει και έτσι ξεκινά ένας νέος κύκλος προσπάθειας συμφωνίας προτύπου με τον επόμενο mydom κόμβο. Αν δε βρεθεί ταίριασμα για ένα προαιρετικό κόμβο του προτύπου, τότε το υποδένδρο του μένει κενό από δεδομένα και ο αλγόριθμος συνεχίζει κανονικά με τον επόμενο αδελφικό του κόμβο, εφόσον αυτός υπάρχει. Μάλιστα, η αναζήτηση ταιριάσματος στο δέντρο στόχο για το νέο κόμβο συνεχίζει από τον κόμβο που ταίριαξε τελευταίος. Σε περίπτωση βέβαια που είναι ε- νεργοποιημένος ο χειρισμός των διαδοχικών προαιρετικών κόμβων σαν ομάδα, τότε ο αλγόριθμος συνεχίζει με τον επόμενο υποχρεωτικό αδελφικό κόμβο, όπως ειπώθηκε και στην προηγούμενη ενότητα. Επίσης, αν ταιριάξει το πρότυπο, δηλαδή βρεθεί ένα στιγμιότυπο επιθυμητής πληροφορίας, τότε γίνεται η εξαγωγή των δεδομένων που έχει ορίσει ο χρήστης και μετά το πρότυπο «αδειάζει» ώστε να γίνει αναζήτηση νέου ταιριάσματος μέσα στην αναπαράσταση mydom. Τα παραπάνω θα γίνουν καλύτερα κατανοητά με το αντιπροσωπευτικό παράδειγμα που ακολουθεί. Στην Εικόνα 31 απεικονίζεται αριστερά το πρότυπο Pattern και δεξιά το δέντρο στόχος Tree. Έστω ότι οι κόμβοι Α, Β, D, Ε του Pattern είναι υποχρεωτικοί και ο κόμβος C είναι προαιρετικός. A A B C D C B B G F D Ε Ε G Εικόνα 31: Πρότυπο και δέντρο στόχος παραδείγματος Η διαδικασία ταιριάσματος ξεκινά από τη ρίζα του Pattern, δηλαδή το Α. Το Tree έχει και αυτό ριζικό κόμβο με ετικέτα Α, οπότε η διαδικασία συνεχίζεται με τα παιδιά του Α του προτύπου. Έτσι, ο κόμβος B του προτύπου συγκρίνεται πρώτα με τον πρώτο θυγατρικό κόμβο του Α του Tree, δηλαδή τον C. Επειδή οι C και Β δεν έχουν ίδιες ετικέτες, ελέγχεται ο αμέσως επόμενος αδελφικός κόμβος του C, ο οποίος έχει ετικέτα Β. Ωστόσο, ο κόμβος Β του προτύπου έχει ένα παιδί, τον E, ενώ ο δεύτε- 63

70 ρος θυγατρικός κόμβος του A του Tree δεν έχει παιδιά. Επομένως, δε συμβαίνει ταίριασμα μεταξύ τους καθώς δεν ταιριάζει ο Ε. Έτσι, ο αλγόριθμος συνεχίζει ελέγχοντας το τρίτο παιδί του Α του Tree., ο οποίος έχει και αυτός ετικέτα Β Τότε, συμβαίνει ταίριασμα γιατί οι δύο κόμβοι έχουν ίδια ετικέτα και ταιριάζουν και τα παιδιά τους τα οποία έχουν ετικέτα Ε. Έπειτα, ελέγχεται ο επόμενος αδελφικός κόμβος του Β του προτύπου, άρα ο C, ο οποίος μάλιστα είναι προαιρετικός. Στο Tree η αναζήτηση για το C συνεχίζει από εκεί που έγινε το τελευταίο ταίριασμα, οπότε τώρα ελέγχεται το τέταρτο παιδί του A, το οποίο έχει ετικέτα G. Ο αλγόριθμος επισκέπτεται διαδοχικά τους κόμβους G, F και D του Tree αλλά κανένας από αυτούς δεν ταιριάζει με τον C του προτύπου. Επειδή όμως ο C είναι προαιρετικός, η διαδικασία προχωράει με τον επόμενο κόμβο του προτύπου που είναι ο D. Η αναζήτησή του D στο Tree ξεκινά πάλι από το τέταρτο παιδί του Α, δηλαδή το G. Το D του προτύπου θα ταιριάξει τελικά με το τελευταίο παιδί του Α του Tree αφού οι δύο αυτοί κόμβοι έχουν ίδια ετικέτα και ο D του προτύπου δεν έχει παιδιά που πρέπει να ταιριάξουν. Τέλος, αφού εξαντλήθηκαν τα παιδιά του A του προτύπου, θεωρείται ότι υ- πάρχει ταίριασμα προτύπου. Απλά ο προαιρετικός κόμβος C που δεν ταίριαξε, δεν θα περιέχει δεδομένα, σε αντίθεση με τους υπόλοιπους κόμβους που περιέχουν τα «χρήσιμα» δεδομένα των κόμβων του Tree με τους οποίους ταίριαξαν. Από τα παραπάνω φαίνεται πως ο αλγόριθμος στηρίζεται μεν στη σειρά εμφάνισης των κόμβων αλλά όχι στην τάξη τους Αυτοματοποιημένος Τρόπος Λειτουργίας Εφόσον ο χρήστης έχει κατασκευάσει ένα κανόνα εξαγωγής που έχει ικανοποιητική απόδοση και εξάγει τα επιθυμητά δεδομένα, έχει εξαιρετική σημασία γι αυτόν η δυνατότητα να μπορεί να τον αποθηκεύει ώστε να τον χρησιμοποιεί κάθε φορά που τον χρειάζεται. Έτσι, δεν θα είναι αναγκασμένος να φτιάχνει τους ίδιους κανόνες ξανά και ξανά για τις ίδιες σελίδες. Για το σκοπό αυτό υλοποιήθηκε λειτουργία αποθήκευσης ενός wrapper για μελλοντική χρήση και παρέχεται η δυνατότητα εκτέλεσης του ανά πάσα στιγμή έπειτα από επιταγή του χρήστη. Όλες οι απαραίτητες για τον wrapper πληροφορίες αποθηκεύονται σε ένα XML αρχείο, ώστε να μπορεί ο χρήστης να «φορτώσει» και να χρησιμοποιήσει τον wrapper με τις ρυθμίσεις που είχε κάνει κατά την κατασκευή του. Τα XML αρχεία αυτά ονομά- 64

71 ζονται wrapper project files και έχουν wpf κατάληξη. Για αποθήκευση και άνοιγμα wpf αρχείων υπάρχουν σχετικά κουμπιά (Εικόνα 32) στην καρτέλα Project Info. Εικόνα 32: Κουμπιά για άνοιγμα και αποθήκευση wrapper Ένας wrapper μπορεί να εκτελεστεί για πολλά URLs. Αυτό έχει νόημα για σελίδες της ίδιας μορφής, για παράδειγμα σελίδες του ίδιου δικτυακού τόπου που έχουν διαφορετικό μεν περιεχόμενο αλλά είναι του ίδιου τύπου. Ο wrapper επισκέπτεται κάθε μία ξεχωριστά, εφαρμόζει το πρότυπο για να εντοπίσει στιγμιότυπα επιθυμητής πληροφορίας και εμφανίζει τα αποτελέσματα με ενιαίο τρόπο. Για το σκοπό αυτό, ο χρήστης μπορεί να ορίσει ως είσοδο του wrapper είτε μία λίστα από URLs είτε ένα αρχείο κειμένου που περιέχει τα URLs των πηγών στόχων. Ο καθορισμός των πηγών στόχων επιτυγχάνεται μέσω σχετικών στοιχείων (Εικόνα 33) στην καρτέλα Project Info. Να σημειωθεί πως όταν ο χρήστης επισκέπτεται μία σελίδα, τότε η διεύθυνση της εισάγεται αυτόματα στη λίστα της περιοχής 1 στην Εικόνα 33, ενώ προηγουμένως έχουν απορριφθεί τυχόν προϋπάρχοντα περιεχόμενα της Εικόνα 33: Ορισμός πηγών στόχων ενός wrapper Ο χρήστης με τα κουμπί + και τη βοήθεια του σχετικού πεδίου κειμένου, που φαίνονται στις περιοχές 3 και 2 αντίστοιχα στην Εικόνα 33, μπορεί να προσθέτει URLs. Επίσης, με επιλογή URL(s) της λίστας και το κουμπί μπορεί να απομακρύνει URLs. Με το κουμπί στην περιοχή 5 της ίδιας εικόνας, ανοίγει παράθυρο διαλόγου που επιτρέπει το άνοιγμα αρχείου κειμένου με URLs και εισαγωγή των URLs που αυτό περιέχει στη λίστα. Στο πεδίο κειμένου στην περιοχή 4 απεικονίζεται το μονοπάτι του καθορισμένου αρχείου. Μάλιστα, ο χρήστης έχει τη δυνατότητα να πλη- 65

72 κτρολογήσει απευθείας στο πεδίο αυτό το μονοπάτι (σχετικό ή απόλυτο) του αρχείου, καθορίζοντας έτσι ως πηγές στόχους τα URLs του αρχείου. Πρέπει να σημειωθεί πως στην περίπτωση αυτή, δεν γίνεται εισαγωγή των URLs στη λίστα. Επιπλέον, να παρατηρηθεί πως για την αποθήκευση ενός wrapper, ο χρήστης πρέπει να επιλέξει έναν εκ των δύο τρόπων ορισμού των πηγών στόχων (λίστα ή αρχείο). Για την εκτέλεση ενός αποθηκευμένου wrapper, αρκεί ο χρήστης να φορτώσει το project αρχείο μέσω του σχετικού κουμπιού (Open) και να πατήσει το κουμπί αυτόματης εκτέλεσης (Εικόνα 34). Εικόνα 34: Κουμπί αυτόματης εκτέλεσης wrapper Όταν φορτώνεται ένα project αρχείο, τότε τα σχετικά συστατικά του εργαλείου παίρνουν τις τιμές που καθορίζονται στα αντίστοιχα XML στοιχεία του αρχείου. Ο κανόνας εξαγωγής φορτώνεται στη δενδρική δομή προτύπου και οι διευθύνσεις των πηγών στόχων εισάγονται στην αντίστοιχη λίστα. Μάλιστα με διπλό κλικ σε οποιαδήποτε διεύθυνση της λίστας, ανοίγει η συγκεκριμένη σελίδα σε νέο παράθυρο του Internet Explorer και έτσι είναι δυνατή η επισκόπηση μίας σελίδας-στόχου. Σε περίπτωση που πρέπει να αγνοηθούν κάποιοι τύποι HTML στοιχείων, τότε ενεργοποιούνται τα σχετικά κουμπιά ελέγχου στη λίστα για τη λειτουργία απλοποίησης της DOM αναπαράστασης. Επίσης γίνονται οι κατάλληλες αναθέσεις τιμών στα στοιχεία για ενδεχόμενη έξοδο σε αρχείο, όπως και σε αυτά που αφορούν στην πλοήγηση στην επόμενη σελίδα καθώς και στο χειρισμό των προαιρετικών κόμβων. Ιδιαίτερο ενδιαφέρον παρουσιάζει η δυνατότητα ορισμού πολλαπλών πηγών στόχων μέσω αρχείου, καθώς επιτρέπει τη γραμμική συσχέτιση wrappers όπου τα αποτελέσματα εξόδου ενός wrapper χρησιμοποιούνται ως είσοδος από έναν άλλο. Για παράδειγμα, ο πρώτος wrapper (w1) εξάγει από μία ή περισσότερες σελίδες ενός δικτυακού τόπου τα URLs στα οποία βρίσκεται η πραγματικά επιθυμητή πληροφορία και τα αποθηκεύει σε ένα αρχείο κειμένου. Ο δεύτερος wrapper (w2) μπορεί να χρησιμοποιήσει ως πηγές στόχους τα URLs που εξήγαγε ο w1 σε αρχείο. Έτσι, ο w2 επισκέπτεται τις σελίδες αυτές και τελικά εξάγει τα ζητούμενα δεδομένα. Με αυτόν τον τρόπο, υποστηρίζεται έμμεση συνεργασία wrappers, η οποία αποτελεί σημαντικό πλεονέκτημα του συστήματος. 66

73 Τέλος, αξίζει να σημειωθεί ότι το ΔEiXTo μπορεί να εκτελεστεί και από γραμμή εντολών (command line) με παράμετρο το αρχείο που περιέχει όλες τις απαραίτητες πληροφορίες για τη συγκεκριμένη εξαγωγή δεδομένων. Έτσι καθίσταται δυνατή η συνεργασία με κάποια εφαρμογή προγραμματισμού εργασιών, όπως το MS scheduler, και η περιοδική εκτέλεση του ίδιου wrapper, γεγονός που μπορεί να αξιοποιηθεί και εμπορικά Αυτόματη Υποβολή Φόρμας Το σύστημα έχει τη δυνατότητα κατά την αυτόματη εκτέλεση ενός wrapper να υποβάλλει σε ένα δικτυακό τόπο ένα ερώτημα χρήστη και έπειτα να εφαρμόζει στις σελίδες των αποτελεσμάτων τον κανόνα εξαγωγής που παρέχεται στο project αρχείο. Συγκεκριμένα, υποβάλλεται η φόρμα με το ερώτημα χρήστη, μεταφορτώνεται η πρώτη σελίδα αποτελεσμάτων, εξάγονται τα στιγμιότυπα επιθυμητής πληροφορίας και η διαδικασία συλλογής δεδομένων συνεχίζεται με τις επόμενες σελίδες αφού ο wrapper έχει τη δυνατότητα να ακολουθεί τους Next υπερσυνδέσμους. Η λειτουργία αυτή είναι ιδιαίτερα χρήσιμη για εξαγωγή πληροφορίας από μηχανές αναζήτησης, ιστοχώρους ηλεκτρονικών καταστημάτων και υπηρεσίες σύγκρισης τιμών. Αρκεί ο χρήστης να προσδιορίσει το όνομα της φόρμας, το όνομα του πεδίου αναζήτησης και το ερώτημα του. Μάλιστα, τα δύο πρώτα είναι προαιρετικά. Αν ο χρήστης αφήσει για παράδειγμα το όνομα της φόρμας κενό, τότε επιλέγεται το πρώτο στοιχείο φόρμας που θα βρεθεί στη σελίδα. Τις πληροφορίες αυτές τις εισάγει ο χρήστης στα σχετικά πεδία που βρίσκονται στην καρτέλα Project Info, τα οποία α- πεικονίζονται στην Εικόνα 35. Εικόνα 35: Στοιχεία για αυτόματη υποβολή φόρμας Έτσι, ο χρήστης δεν είναι αναγκασμένος να δίνει ως είσοδο στο wrapper μία συγκεκριμένη διεύθυνση στόχο, στην προκειμένη περίπτωση αυτή της πρώτης σελίδας αποτελεσμάτων για το συγκεκριμένο ερώτημα. Αυτό που πρέπει να κάνει κατά την κατασκευή ενός wrapper είναι να εισάγει, ως URL στόχο, τη διεύθυνση της αρχι- 67

74 κής σελίδας του δικτυακού τόπου και να συμπληρώσει τα πεδία που αναφέρθηκαν για υποβολή φόρμας. Κάθε φορά λοιπόν που θέλει να εξάγει δεδομένα από αυτόν τον δικτυακό τόπο, ανεξάρτητα από το ερώτημα που θέλει να πραγματοποιήσει, εκτελεί τον ίδιο wrapper και το μόνο που χρειάζεται να αλλάξει είναι η λέξη κλειδί ή η φράση που χρησιμοποιείται για την αναζήτηση Διόρθωση Κανόνα Εξαγωγής Εφόσον αποθηκευτεί ένας κανόνας, μπορεί ο χρήστης ανά πάσα στιγμή να τον χρησιμοποιήσει. Μπορεί όμως αργότερα κάποια στιγμή λόγω αλλαγών στη δομής της σελίδας στόχου, να πάψει ο κανόνας να είναι το ίδιο αποτελεσματικός. Πιθανό είναι επίσης και το ενδεχόμενο ο χρήστης για δικούς του λόγους να επιθυμεί μικρές αλλαγές στον κανόνα. Τίθεται λοιπόν ένα σημαντικό ζήτημα, η δυνατότητα συντήρησης (maintenance) των κανόνων που έχουν κατασκευαστεί. Επιθυμητό, φυσικά, χαρακτηριστικό είναι η δυνατότητα εύκολης τροποποίησης ενός κανόνα, ώστε να μην απαιτείται κατασκευή νέου κανόνα από το μηδέν (from scratch). Το πρότυπο όμως δεν έχει δεδομένα και η αντίστοιχη δενδρική δομή της καρτέλας Project Info είναι μόνο για ανάγνωση (read-only). Ζητούμενο είναι να βρεθεί ένα στιγμιότυπο της σελίδας στόχου σύμφωνο με το πρότυπο και να τοποθετηθεί στη δενδρική δομή του κανόνα-στιγμιότυπου, ώστε να μπορεί ο χρήστης να το τροποποιήσει κατάλληλα και έτσι να βελτιώσει τον κανόνα του. Η τροποποίηση του κανόνα επιτυγχάνεται με τη λειτουργία διόρθωσης κανόνα (κουμπί Tune). Όταν ο χρήστης πατήσει το αντίστοιχο πλήκτρο διόρθωσης, τότε το πρόγραμμα πλοηγείται στη σελίδα στόχο και ψάχνει στη mydom αναπαράσταση της για πλήρες ταίριασμα (full match) με το πρότυπο, ώστε να δημιουργηθεί ένα στιγμιότυπο επιθυμητής πληροφορίας, το οποίο θα έχει δεδομένα σε όλους τους κόμβους. Η διαδικασία αναζήτησης πλήρους ταιριάσματος σταματά είτε όταν αυτό βρεθεί είτε όταν εξαντληθούν ανεπιτυχώς όλες οι σελίδες-στόχοι. Στο στιγμιότυπο που θα εντοπιστεί, ο χρήστης μπορεί να κάνει τις αλλαγές και τις ρυθμίσεις που επιθυμεί, ώστε να βελτιώσει την απόδοση του κανόνα. Σε περίπτωση βέβαια που υπάρχουν σοβαρές αλλαγές σε μια σελίδα, υπάρχει το ενδεχόμενο να μη βρεθεί κάποιο στιγμιότυπο που να ταιριάζει πλήρως με το πρότυπο. Αν δε βρεθεί πλήρες ταίριασμα με το πρότυπο, τότε απλά δεν παράγεται καθόλου κανόνας-στιγμιότυπο και εμφανίζεται κατάλληλο μήνυμα. 68

75 4.14 Wrapper Project Files H αποθήκευση ενός κανόνα εξαγωγής για μελλοντική χρήση έχει μεγάλη σημασία. Το ΔΕiXTo παρέχει τη δυνατότητα αποθήκευσης όλων των απαραίτητων, για την ε- κτέλεση ενός wrapper, πληροφοριών, σε ένα XML αρχείο, ώστε να μπορεί ο χρήστης να τον «φορτώσει» και να τον χρησιμοποιήσει με τις ρυθμίσεις που είχε κάνει κατά την κατασκευή του. Τα XML αρχεία αυτά, τα οποία ονομάζονται wrapper project files και έχουν wpf κατάληξη, ακολουθούν τους συντακτικούς κανόνες που θέτει το DTD που κατασκευάστηκε για την επαλήθευση της εγκυρότητας τους. Το DTD δίνεται στο παράρτημα της εργασίας.. Συγκεκριμένα, οι πληροφορίες που περιέχονται σε ένα τέτοιο αρχείο και παραδείγματα της αντίστοιχης XML κωδικοποίηση τους είναι οι εξής: Πηγές-στόχοι (target resources), URLs είτε σε αρχείο είτε σε μορφή λίστας. Το στοιχείο InputFile αναπαριστά το αρχείο με τα URLs ενώ το TargetUrls τη λίστα. Στην περίπτωση λίστας, ένα URL αναπαρίσταται ως γνώρισμα Address ενός στοιχείου τύπου URL. <InputFile Filename="input.txt"/> <TargetUrls> <URL Address=" <URL Address=" </TargetUrls> Πρότυπο εξαγωγής. Αναπαρίσταται από ένα XML στοιχείο τύπου Extraction- Pattern ενώ κάθε κόμβος του κανόνα αναπαρίσταται από ένα στοιχείο τύπου Node. Το γνώρισμα text του Node είναι της μορφής name[:label]. Δηλαδή, περιέχει το όνομα του κόμβου και ενδεχομένως την ετικέτα που έχει θέσει ο χρήστης. Ως διαχωριστικός χαρακτήρας χρησιμοποιείται το : Το IsRoot γνώρισμα υπάρχει μόνο στο στοιχείο Node που αντιστοιχεί στην εικονική ρίζα του κανόνα και έχει τιμή true. Το γνώρισμα stateindex αναπαριστά την κατάσταση κάθε κόμβου. Το γνώρισμα regexpr υπάρχει μόνο στους REGEXPR κόμβους και περιέχει την κανονική έκφραση του κόμβου. <ExtractionPattern> <Node text="td" stateindex="grayed" IsRoot="true"> <Node text="a" stateindex="checked_implied"> <Node text="text:title" stateindex="checked"/> </Node> 69

76 </Node> </ExtractionPattern> Όνομα αρχείου εξόδου, τύπος (format) και τρόπος αποθήκευσης (mode)εφόσον ο wrapper παράγει έξοδο σε αρχείο. Οι πληροφορίες αυτές κωδικοποιούνται ως γνωρίσματα ενός XML στοιχείου τύπου OutputFile. <OutputFile Filename="out" Format="TabDelimited" FileMode="Overwrite"/> Πληροφορίες για τη λειτουργίας πλοήγησης σε πολλαπλές σελίδες ακολουθώντας Next υπερσυνδέσμους. Οι πληροφορίες αυτές κωδικοποιούνται ως γνωρίσματα ενός XML στοιχείου τύπου MultiplePage. Συγκεκριμένα, το γνώρισμα Enabled καθορίζει αν είναι ενεργοποιημένη η λειτουργία, το ContainsText περιέχει το κείμενο ή τον τίτλο του ζητούμενου υπερσυνδέσμου και Max- CrawlDepth το βάθος πλοήγησης. <MultiplePage Enabled="false" ContainsText="Next" MaxCrawlDepth="5"/> Λίστα από HTML ετικέτες που χρειάζεται να αγνοηθούν κατά την κατασκευή της DOM αναπαράστασης μίας σελίδας. Αναπαρίσταται από ένα XML στοιχείο τύπου IgnoredTagsList. Κάθε τέτοια ετικέτα κωδικοποιείται ως γνώρισμα Label ενός στοιχείου IgnoredTag. <IgnoredTagsList> <IgnoredTag Label="<B>"/> <IgnoredTag Label="<STRONG>"/> </IgnoredTagsList> Πληροφορίες για ενδεχόμενη αυτόματη υποβολή φόρμας, όπως το όνομα της φόρμας, το όνομα του πεδίου κειμένου αναζήτησης και το ερώτημα του χρήστη. Οι πληροφορίες αυτές κωδικοποιούνται ως γνωρίσματα ενός XML στοιχείου τύπου SubmitForm. <SubmitForm Enabled="true" FormName="form" InputName="search_field" 70

77 Term="query"/> Πληροφορίες για την ενεργοποίηση ή όχι της λειτουργίας χειρισμού διαδοχικών προαιρετικών κόμβων ως ομάδα (group). <OptionalGroup Enabled="false"/> Πληροφορίες για τα υπο-στοιχεία (sub-elements) του στοιχείου channel του RSS αρχείου εξόδου, εφόσον βέβαια ο εν λόγω wrapper παράγει έξοδο σε RSS αρχείο. <RssChannel> <title Value="ΔEiXTo: Page Title"/> <link Value=" <description Value="ΔEiXTo generated RSS feed"/> <ChannelElement Name="language" Value="en-us"/> <ChannelElement Name="copyright" Value="auth"/> <ChannelElement Name="managingEditor" Value="nbassili"/> <ChannelElement Name="webMaster" Value="nbassili"/> </RssChannel> 4.15 Έξοδος σε RSS αρχείο Το σύστημα έχει τη δυνατότητα να παράγει έξοδο σε RSS αρχείο. Τα item στοιχεία του channel δημιουργούνται από τα δεδομένα που εξάγονται από τα στιγμιότυπα επιθυμητής πληροφορίας που εντοπίστηκαν. Στην καρτέλα RSS Channel στην περιοχή 7 της εφαρμογής ο χρήστης μπορεί να καθορίσει τις τιμές των υπό-στοιχείων (subelements) του channel στοιχείου του RSS αρχείου εξόδου (Εικόνα 36). Να σημειωθεί ότι στο υπο-στοιχείο title ανατίθεται αυτόματα η τιμή ΔEiXTo: τίτλος της προβαλλόμενης ιστοσελίδας. Εικόνα 36: Υπό-στοιχεία του channel στοιχείου του RSS αρχείου εξόδου 71

78 Ο χρήστης μπορεί να αναθέσει RSS ετικέτα σε κάθε κόμβο του κανόνα εξαγωγής, όπως φαίνεται στην Εικόνα 37. Μάλιστα, έχει την ευχέρεια να επιλέξει μεταξύ των RSS στοιχείων: title, author, description, link και pubdate. Εικόνα 37: Ανάθεση RSS ετικέτας σε κόμβο κανόνα Έτσι, αν ο χρήστης θέσει ως τύπο αρχείου εξόδου το RSS και εκτελέσει ένα κανόνα, τότε σε αυτό το αρχείο εξάγονται τα δεδομένα των μεταβλητών εξόδου που έχουν RSS ετικέτες. Σε περίπτωση που ο χρήστης δεν έχει αναθέσει ετικέτα link σε κάποιον από τους κόμβους που εξάγονται, τότε προστίθεται αυτόματα στοιχείο link σε κάθε στοιχείο item του αρχείου, το οποίο έχει ως τιμή τη διεύθυνση της ιστοσελίδας από την οποία εξάγεται το αντικείμενο επιθυμητής πληροφορίας. Τέλος, για την εκτέλεση ενός κανόνα εξαγωγής που παράγει RSS έξοδο, απαιτείται ο κανόνας να περιλαμβάνει κόμβο που βρίσκεται σε κατάσταση checked ή checked_implied και έχει ετικέτα RssTitle ή RssDescription Στατιστικά Στην καρτέλα Statistics δίνονται κάποιες τιμές και μετρήσεις σχετικές με την εκτέλεση ενός wrapper και την απόδοση του συστήματος (Εικόνα 38). Συγκεκριμένα, αν το κουμπί ελέγχου της λειτουργίας καταγραφής στατιστικών, που βρίσκεται στην ίδια καρτέλα, είναι ενεργοποιημένο, τότε καταγράφονται οι εξής μετρικές: χρόνος δικτύου (network time): χρόνος που χρειάζεται για τη μεταφόρτωση της σελίδας και την πλήρη προβολή της στο ενσωματωμένο πρόγραμμα πλοήγησης. 72

79 χρόνος προετοιμασίας (preparation time): χρόνος που απαιτείται για απεικόνιση της δενδροειδούς κατά DOM αναπαράστασης και κατασκευής των απαραίτητων δομών δεδομένων. πλήθος HTML στοιχείων στη σελίδα αριθμός κόμβων στη δενδροειδή κατά DOM αναπαράσταση αριθμός κόμβων του κανόνα εξαγωγής που χρησιμοποιείται για την εκτέλεση ενός wrapper πλήθος στιγμιότυπων που εντοπίστηκαν στη σελίδα κατά την τελευταία εκτέλεση κανόνα εξαγωγής συνολικός χρόνος εξαγωγής των επιθυμητών δεδομένων της σελίδας μέσος χρόνος εξαγωγής για κάθε στιγμιότυπο επιθυμητής πληροφορίας Εικόνα 38: Στατιστικά για εκτέλεση δειγματικού wrapper 73

80

81 5 Το ΔΕiXTo σε Χρήση Στο κεφάλαιο αυτό θα αναλυθούν δύο μελέτες περίπτωσης (case studies), οι οποίες αναδεικνύουν τις δυνατότητες και τη λειτουργικότητα του εργαλείου. Το σύστημα δοκιμάστηκε βέβαια σε αρκετές διαφορετικές ιστοσελίδες και σημείωσε πολύ υψηλά ποσοστά ακρίβειας. Η απόδοση του κυμάνθηκε σε υψηλά επίπεδα σε όλες σχεδόν τις περιπτώσεις, ακόμα και σε σχετικά μεγάλης κλίμακας προβλήματα εξαγωγής πληροφορίας. Παρακάτω περιγράφονται δύο χαρακτηριστικά παραδείγματα χρήσης. 5.1 Σελίδες Δημοπρασιών Η εφαρμογή ΔEiXTo δοκιμάστηκε με απόλυτη επιτυχία σε ένα ελληνικό δημοφιλή δικτυακό τόπο δημοπρασιών. Τμήμα μιας δειγματικής σελίδας δημοπρασιών του ι- στοχώρου φαίνεται στην Εικόνα 39. Εικόνα 39: Τμήμα δειγματικής σελίδας δημοπρασιών Κάθε καταχώρηση προϊόντος αντιστοιχεί σε μία γραμμή πίνακα (TR), η οποία αποτελείται από πέντε στήλες-κελιά (TD). Για κάθε προϊόν περιλαμβάνονται πληροφορίες όπως το μοντέλο του, το όνομα χρήστη του πωλητή, ο υπολειπόμενος χρόνος μέχρι το κλείσιμο της δημοπρασίας, η τρέχουσα υψηλότερη προσφορά και η τιμή ά- 75

82 μεσης αγοράς. Έστω ότι οι πληροφορίες που θέλει να εξάγει ο χρήστης είναι το μοντέλο προϊόντος και οι τιμές που περιέχονται στην τελευταία στήλη (χωρίς όμως το σύμβολο ). Έπειτα από παρατήρηση της HTML δομής των στιγμιότυπων επιθυμητής πληροφορίας, έγιναν οι ακόλουθες διαπιστώσεις. Το πρώτο TD έχει συνήθως μία εικόνα του προϊόντος και πάντα ένα υπερσύνδεσμο που το εσωκλειόμενο κείμενο του ισοδυναμεί με το μοντέλο. Το τρίτο TD, που αντιστοιχεί στο χρόνο κλεισίματος, κάποιες φορές είναι άδειο. Επίσης, παρατηρήθηκε ότι στην τελευταία στήλη συνήθως περιέχονται δύο τιμές, εκ των οποίων η δεύτερη με έντονους χαρακτήρες. Ωστόσο, καμία από τις δύο τιμές δεν είναι υποχρεωτική. Σε όλες όμως τις εγγραφές υπάρχει τουλάχιστον μία τιμή από τις δύο. Σε περίπτωση που υπάρχει ο TEXT κόμβος που α- ντιστοιχεί στην πρώτη τιμή, τότε πρέπει να εξαχθεί. Ακόμα, αν υπάρχει η τιμή με έ- ντονα γράμματα, τότε είναι και αυτή επιθυμητή και πρέπει να εξαχθεί. Για την απομόνωση των αριθμητικών τιμών αρκεί η εφαρμογή της κανονικής έκφρασης (\d*) στο κείμενο των δύο TEXT κόμβων που τις περιέχουν. Σύμφωνα με τα παραπάνω λοιπόν, προκύπτει ο κανόνας που απεικονίζεται στην Εικόνα 40. Εικόνα 40: Κανόνας για δικτυακό τόπο δημοπρασιών Τα αποτελέσματα του κανόνα εξαγωγής είναι εντυπωσιακά, καθώς πετυχαίνει ακρίβεια 100%. Εξάγει και τις 50 εγγραφές που βρίσκονται στη σελίδα. Τα αποτελέσματα της εκτέλεσης όπως αυτά φαίνονται στην καρτέλα Output αποτυπώνονται στην Εικόνα

83 Εικόνα 41: Αποτελέσματα κανόνα δημοπρασιών Ωστόσο, στο κάτω μέρος της σελίδας υπάρχει σύνδεσμος με κείμενο επόμενες που οδηγεί στην επόμενη σελίδα δημοπρασιών, όπως φαίνεται και στην Εικόνα 42. Μάλιστα για τη συγκεκριμένη κατηγορία προϊόντων, το συνολικό πλήθος καταχωρήσεων είναι 149. Άρα, οι σελίδες με δημοπρασίες αυτής της κατηγορίας είναι τρεις δεδομένου ότι σε κάθε σελίδα υπάρχουν 50 καταχωρήσεις. Εικόνα 42: Σύνδεσμος που οδηγεί στην επόμενη σελίδα δημοπρασιών Αν λοιπόν ο χρήστης ενεργοποιήσει τη λειτουργία πλοήγησης σε επόμενη σελίδα, δώσει το εσωκλειόμενο κείμενο του συνδέσμου ή πρόθεμα του, π.χ. τον όρο επόμ, και θέσει βάθος πλοήγησης μεγαλύτερο ή ίσο του δύο (Εικόνα 43), τότε ο wrapper εκτελείται για όλες τις σελίδες δημοπρασιών της κατηγορίας και συγκεντρώνει όλα τα αποτελέσματα. Εικόνα 43: Ρυθμίσεις για πλοήγηση στις επόμενες σελίδες δημοπρασιών Τα αποτελέσματα της εξαγωγής, όπως αυτά φαίνονται στην καρτέλα Output, απεικονίζονται στην Εικόνα

84 Εικόνα 44: Συγκεντρωτικά αποτελέσματα δημοπρασιών Τέλος, αν ο χρήστης επιλέξει τα αποτελέσματα να εξαχθούν σε XML αρχείo, τότε το αρχείο που παράγεται είναι όπως αυτό στην Εικόνα 45. Εικόνα 45: XML αρχείο με αποτελέσματα δημοπρασιών 78

85 5.2 Παραγωγή RSS Ένας από τους βασικότερους στόχους του ΔEiXTo είναι η κατασκευή RSS αρχείων για νέες επιστημονικές δημοσιεύσεις, από ιστοχώρους που δεν παρέχουν RSS υπηρεσία. Ένα χαρακτηριστικό παράδειγμα που καταδεικνύει την ικανότητα αυτή του εργαλείου είναι η εξαγωγή περιεχομένου από όλα τα επιστημονικά περιοδικά πληροφορικής (Computer Science) της ScienceDirect του εκδοτικού οίκου Elsevier και η παραγωγή ενός RSS αρχείου με πληροφορίες για τις δημοσιεύσεις του τελευταίου τεύχους κάθε περιοδικού. Στον δικτυακό τόπο της ScienceDirect υπάρχει δυνατότητα προβολής της αλφαβητικής λίστας των περιοδικών και των βιβλίων κάθε θεματικής κατηγορίας. Έτσι, εύκολα προκύπτει η σελίδα που περιέχει όλους τους υπερσυνδέσμους που οδηγούν σε σελίδες επιστημονικών βιβλίων και περιοδικών πληροφορικής. Τμήμα της σελίδας απεικονίζεται στην Εικόνα 46. Εικόνα 46: Τμήμα σελίδας με όλους τους συνδέσμους περιοδικών και βιβλίων πληροφορικής Σε πρώτη φάση, λοιπόν, χρειάζεται ένας wrapper (W1) ο οποίος θα εξάγει από τη σελίδα αυτή, τις διευθύνσεις των σελίδων των επιθυμητών πηγών πληροφορίας. 79

86 Για τις ανάγκες της μελέτης περίπτωσης, θεωρούμε ότι ο χρήστης ενδιαφέρεται για όλα τα περιοδικά. Κάθε σύνδεσμος βρίσκεται σε μια γραμμή πίνακα (TR) και μάλιστα όλοι οι σύνδεσμοι έχουν από μπροστά ένα εικονίδιο. Ωστόσο, τα περιοδικά έχουν στη στήλη με όνομα Content Type την τιμή Journal. Είναι πολύ απλή και εύκολη λοιπόν η κατασκευή του κανόνα που φαίνεται στην Εικόνα 47, ο οποίος εξάγει τις href τιμές των ζητούμενων συνδέσμων. Για τον TEXT κόμβο του τρίτου TD, που αντιστοιχεί στη στήλη Content Type, γίνεται χρήση της κανονικής έκφρασης Journal, ώστε να προσδιοριστούν μόνο τα περιοδικά. Ακολούθως, ο χρήστης μπορεί να εξάγει τα επιθυμητά URLs σε ένα αρχείο απλού κειμένου. Αρκεί να εισάγει στο σχετικό στοιχείο της καρτέλας Project Info το όνομα του αρχείου εξόδου, να επιλέξει για φορμά τη μορφή κειμένου και να εκτελέσει τον κανόνα. Εικόνα 47: Κανόνας εξαγωγής υπερσυνδέσμου περιοδικού Μέρος των αποτελεσμάτων από την εκτέλεση του παραπάνω κανόνα εξαγωγής φαίνεται στην Εικόνα 48. Εικόνα 48: Αποτελέσματα εκτέλεσης πρώτου κανόνα 80

87 Στη συνέχεια, απαιτείται η επίσκεψη κάθε περιοδικού και η εξαγωγή των επιθυμητών πληροφοριών. Η αρχική σελίδα κάθε περιοδικού έχει τη μορφή που φαίνεται στην Εικόνα 49. Εικόνα 49: Τμήμα αρχικής σελίδας δειγματικού περιοδικού Παρατηρήθηκε ότι στο πάνω μέρος κάθε τέτοιας σελίδας υπάρχει ένας σύνδεσμος με κείμενο Full Abstracts (Εικόνα 50) που οδηγεί σε σελίδα με τις βασικότερες πληροφορίες για κάθε δημοσιευμένο άρθρο του τελευταίου τεύχους του περιοδικού. Οι πληροφορίες αυτές, όπως θα φανεί και παρακάτω, επαρκούν ώστε να κατασκευαστεί ένα RSS item για κάθε άρθρο. Χρειάζεται λοιπόν ένας δεύτερος wrapper (W2) ο οποίος θα σαρώνει τη λίστα με τα URLs που εξήγαγε ο W1, θα τα επισκέπτεται και θα εξάγει τη διεύθυνση της σελίδας στην οποία δείχνει ο υπερσύνδεσμος με κείμενο Full Abstracts. Εικόνα 50: Full Abstracts σύνδεσμος Ο κανόνας για την εξαγωγή του συνδέσμου αυτού είναι αρκετά απλός. Αρκεί ο χρήστης να υποδείξει τον πίνακα που περιέχει το σύνδεσμο και με ελάχιστο κόπο 81

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

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

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

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

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

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

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

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

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

Ηλεκτρονικό εμπόριο. HE 8 Εξατομίκευση

Ηλεκτρονικό εμπόριο. HE 8 Εξατομίκευση Ηλεκτρονικό εμπόριο HE 8 Εξατομίκευση Πληροφοριακός υπερφόρτος (information overload) Αδυναμία διαχείρισης μεγάλου όγκου πληροφοριών και εντοπισμού της χρήσιμης πληροφορίας Η εξατομίκευση στοχεύει στην

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

Ενότητες Γ3.1 - Γ3.2 - Γ3.3

Ενότητες Γ3.1 - Γ3.2 - Γ3.3 Ενότητες Γ3.1 - Γ3.2 - Γ3.3 3.1 Τo διαδίκτυο ως πηγή πληροφοριών 3.2 Αξιοποίηση- αξιολόγηση ιστοσελίδων, ιστοχώρων και πυλών 3.3 Σχεδίαση μαθημάτων με τη χρήση του διαδικτύου To Διαδίκτυο ως πηγή πληροφοριών

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Βάσεις δεδομένων και Microsoft Access

Βάσεις δεδομένων και Microsoft Access Περιεχόμενα Κεφάλαιο 1 Βάσεις δεδομένων και Microsoft Access... 7 Κεφάλαιο 2 Microsoft Access 2010... 16 Κεφάλαιο 3 Σχεδιασμός βάσης δεδομένων και δημιουργία πίνακα... 27 Κεφάλαιο 4 Προβολές πινάκων και

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

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας. Η Πυξίδα Απασχόλησης είναι ένα πλήρως παραμετροποιήσιμο portal που απευθύνεται σε Κέντρα Επαγγελματικής Κατάρτισης, Δήμους, Εκπαιδευτικούς Οργανισμούς και Εταιρίες Εύρεσης Εργασίας, με στόχο τόσο την μηχανογράφηση

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Μηχανές Αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιον λόγο μας είναι απαραίτητες

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιο λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους

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

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #02 Ιστορική αναδρομή Σχετικές επιστημονικές περιοχές 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

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

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

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ 2013 ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ Περιήγηση στις δυνατότητες του λογισμικού και στον τρόπο χρήσης του ΟΜΑΔΑ ΕΡΓΟΥ ΔΙΕΥΘΥΝΣΗΣ

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

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25 Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883. Ηλεκτρονικό Πρωτόκολλο & Διακίνηση Εγγράφων

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25 Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883. Ηλεκτρονικό Πρωτόκολλο & Διακίνηση Εγγράφων 01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, 151 25 Μαρούσι Αττικής Τηλ 215 55 00 880 FAX 215 55 00 883 e Prtcl-01 Ηλεκτρονικό Πρωτόκολλο & Διακίνηση Εγγράφων Συνοπτική Παρουσίαση Το σύστημα e Prtcl-01 Το σύστημα

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

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε

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

Π3.11 Εκπαιδευτικό Υλικό. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις)

Π3.11 Εκπαιδευτικό Υλικό. (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις) Π3.11 Εκπαιδευτικό Υλικό (Υπηρεσία Ενημέρωσης για Εκπαιδευτικές και Πολιτισμικές Δράσεις) Για το Έργο «Πληροφοριακό Σύστημα Εξωστρεφών Δράσεων» Π3.11 Εκπαιδευτικό Υλικό «Πληροφοριακό Σύστημα Εξωστρεφών

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

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

Τεχνικές Εξόρυξης Δεδομένων

Τεχνικές Εξόρυξης Δεδομένων ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Διατμηματικό Μεταπτυχιακό Πρόγραμμα στα Πληροφοριακά Συστήματα ( MIS ) Τεχνικές Εξόρυξης Δεδομένων για την βελτίωση της απόδοσης σε Κατανεμημένα Συστήματα Ζάχος Δημήτριος Επιβλέποντες:

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

11/5/2015. Οι επιχειρήσεις

11/5/2015. Οι επιχειρήσεις Οι επιχειρήσεις 1 Oι επιχειρήσεις την σύγχρονη εποχή εξαρτώνται κατά πολύ από την τεχνολογία. Οι επιχειρήσεις επενδύουν σε ποικίλα πληροφοριακά συστήματα στον χώρο της παραγωγής, στον χώρο της διοίκησης,

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

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

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

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

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 Ανάπτυξη Οντολογίας Βιοϊατρικών Όρων Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 www.iatrolexi.cti.gr 1 Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών (ΕΑΙΤΥ) Σελίδα 1 Ημερομηνία:

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

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

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

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιον λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους από τους

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιον λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους από τους

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

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ Η διαφήμιση με μία μόνο λέξη χαρακτηρίζεται και ως «υπόσχεση», καθώς δίνει μια υπόσχεση στον υποψήφιο αγοραστή, για το προϊόν που διαφημίζει και αναφέρεται στην επίδραση

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

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

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

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

Αυτόματο Σύστημα Εύρεσης και Κατηγοριοποίησης Ευκαιριών Εργασίας Μηχανικών (ΕΥΡΗΚΑ)

Αυτόματο Σύστημα Εύρεσης και Κατηγοριοποίησης Ευκαιριών Εργασίας Μηχανικών (ΕΥΡΗΚΑ) Αυτόματο Σύστημα Εύρεσης και Κατηγοριοποίησης Ευκαιριών Εργασίας Μηχανικών (ΕΥΡΗΚΑ) Λάζαρος Πολυμενάκος, καθηγητής ΑΙΤ Ηρακλής Καπρίτσας, telia.co.gr Βασίλης Κατσάρης, telia.co.gr Σύνοψη Το σύστημα ΕΥΡΗΚΑ

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

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

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

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

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 22 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων

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

DO Y O Y U S PEAK K F U F TURE R?

DO Y O Y U S PEAK K F U F TURE R? GALAXY είναι Τεχνολογία αιχμής που αξιοποιεί τις πλέον σύγχρονες διεθνείς τάσεις, συνδυάζοντας τo Microsoft.NET Framework 3.5 και τα εξελιγμένα εργαλεία ανάπτυξης εφαρμογών της SingularLogic. Εξασφαλίζει

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

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

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

Λίγα λόγια από το συγγραφέα... 7. 91 Βάσεις δεδομένων και Microsoft Access... 9. 92 Microsoft Access... 22

Λίγα λόγια από το συγγραφέα... 7. 91 Βάσεις δεδομένων και Microsoft Access... 9. 92 Microsoft Access... 22 ΕΝΟΤΗΤΑ 5 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 91 Βάσεις δεδομένων και Microsoft Access... 9 92 Microsoft Access... 22 93 Το σύστημα Βοήθειας του Microsoft Office... 32 94 Σχεδιασμός βάσης δεδομένων

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

Μοντελοποίηση Συστημάτων

Μοντελοποίηση Συστημάτων Εργασία για το μάθημα Μοντελοποίηση Συστημάτων 29 Οκτωβρίου 204 Α. Στόχος Στην εργασία αυτή θα εξοικειωθείτε με τα πρώτα στάδια σχεδιασμού λογισμικού. Συγκεκριμένα, μετά την εκπόνηση της εργασίας θα πρέπει

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

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Data Mining - Classification Data Mining Ανακάλυψη προτύπων σε μεγάλο όγκο δεδομένων. Σαν πεδίο περιλαμβάνει κλάσεις εργασιών: Anomaly Detection:

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

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

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

EBSCOhost Research Databases

EBSCOhost Research Databases Η EBSCOhost είναι ένα online σύστημα αναζήτησης σε έναν αριθμό βάσεων δεδομένων, στις οποίες είναι συμβεβλημένο κάθε φορά το ίδρυμα. Διαθέτει πολύγλωσσο περιβάλλον αλληλεπίδρασης (interface) με προεπιλεγμένη

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

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

1. ΕΙΣΑΓΩΓΗ 2. ΠΕΡΙΓΡΑΦΗ

1. ΕΙΣΑΓΩΓΗ 2. ΠΕΡΙΓΡΑΦΗ 1. ΕΙΣΑΓΩΓΗ Το πακέτο λογισµικού AuctionDesigner είναι ένα από τα πολλά πακέτα που έχουν σχεδιαστεί και µπορεί να παραγγείλει κανείς µέσω του Internet µε σκοπό να αναπτύξει εφαρµογές ηλεκτρονικού εµπορίου.

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Orchid: Integrating Schema Mapping and ETL ICDE 2008 Orchid: Integrating Schema Mapping and ETL ICDE 2008 Δομουχτσίδης Παναγιώτης Γενικά Data warehouse (DW): Είναι μία αποθήκη πληροφοριών οργανωμένη από ένα ενοποιημένο μοντέλο. Τα δεδομένα συλλέγονται από

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

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

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ & ΕΠΙΧΕΙΡΗΣΕΩΝ Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ & ΕΠΙΧΕΙΡΗΣΕΩΝ Η Έρευνα Μάρκετινγκ ως εργαλείο ανάπτυξης νέων προϊόντων ΕΙΣΗΓΗΤΗΣ: Δρ. Ιωάννης Σ. Τουρτούρας Μηχανικός Παραγωγής & Διοίκησης Δ.Π.Θ.

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

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S. Στρατηγική Επιλογή Το ταχύτατα μεταβαλλόμενο περιβάλλον στο οποίο δραστηριοποιούνται οι επιχειρήσεις σήμερα, καθιστά επιτακτική -όσο ποτέ άλλοτε- την ανάπτυξη ολοκληρωμένων λύσεων που θα διασφαλίζουν,

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

(Blended Executive Learning)

(Blended Executive Learning) (Blended Executive Learning) Αρχές Δικτύων Επικοινωνιών Διαδικτύωση - Internet Case Studies Διαχείριση και Ασφάλεια Δικτύων Το μοντέλο OSI Τεχνολογία TCP/IP Μελέτη εγκατάστασης Voip Δικτύου Διαχείριση

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

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

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

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

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

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

Web Sites Το τρίπτυχο της επιτυχίας

Web Sites Το τρίπτυχο της επιτυχίας Web Sites Το τρίπτυχο της επιτυχίας 1 Βασικές Αρχές Σχεδίασης Απαραίτητες ιδιότητες Web Site Οι αναγκαίες αρχές που πρέπει να ακολουθηθούν/εφαρμοστούν για να επιτευχθεί η δημιουργία ενός αξιόλογου και

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

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

Βασικά ζητήματα μιας βάσης δεδομένων

Βασικά ζητήματα μιας βάσης δεδομένων Τριαντάφυλλος Πριμηκύρης* Βασικά ζητήματα μιας βάσης δεδομένων Τι είναι μια βάση δεδομένων; Ας ξεκινήσουμε με κάτι πολύ απλό! Όλοι έχετε έναν τηλεφωνικό κατάλογο. Ο κατάλογος αυτός είναι μια χειροκίνητη

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα2 Προγραμματιστικά Περιβάλλοντα Δημιουργία Εφαρμογών 5.1 Πρόβλημα και Υπολογιστής Τι ονομάζουμε πρόβλημα; Πρόβλημα θεωρείται κάθε ζήτημα που τίθεται προς επίλυση, κάθε κατάσταση που μας απασχολεί

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

Βάσεις Δεδομένων Ενότητα 1

Βάσεις Δεδομένων Ενότητα 1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 1: Εισαγωγή στις Ιωάννης Μανωλόπουλος, Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Συστήματα Πληροφοριών Διοίκησης

Συστήματα Πληροφοριών Διοίκησης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 2: Γενική θεώρηση και κατάταξη συστημάτων πληροφοριών διοίκησης Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα

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

Ολοκληρωμένη, σύγχρονη και ευέλικτη λύση ERP (Enterprise Resource Planning-Σύστημα Διαχείρισης Επιχειρησιακών Πόρων) για επιχειρήσεις, που επιθυμούν

Ολοκληρωμένη, σύγχρονη και ευέλικτη λύση ERP (Enterprise Resource Planning-Σύστημα Διαχείρισης Επιχειρησιακών Πόρων) για επιχειρήσεις, που επιθυμούν Enterprise Resource Planning Systems (ERP) για Μεσαίες ή μεγάλες επιχειρήσεις Ολοκληρωμένη, σύγχρονη και ευέλικτη λύση ERP (Enterprise Resource Planning-Σύστημα Διαχείρισης Επιχειρησιακών Πόρων) για επιχειρήσεις,

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

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος Δικτυακοί τόποι Η σχεδίαση ενός δικτυακού τόπου Δρ. Ματθαίος Α. Πατρινόπουλος Πώς χρησιμοποιούμε το διαδίκτυο; ΔΙΑΦΑΝΕΙΕΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΔΙΑΔΙΚΤΥΟΥ. 2 Από το www.smartinsights.

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

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 Ορισμός Βάσης Δεδομένων Συλλογή συναφών αρχείων

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Τεχνολογίες Κοινωνικής Δικτύωσης στην Εκπαίδευση

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Τεχνολογίες Κοινωνικής Δικτύωσης στην Εκπαίδευση ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Τεχνολογίες Κοινωνικής Δικτύωσης στην Εκπαίδευση Ομάδα: Αριστερίδου Δανάη Ελένη (08) Ευαγγελόπουλος Νίκος (670)

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

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

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΨΗΦΙΟΥ ΕΠΑΛ Α Έκδοση 1.0, Ιούνιος 2011 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ ΠΙΝΑΚΑΣ

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ [ΥΠΗΡΕΣΙΑ 2 ΑNAΠΤΥΞΗ

ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ [ΥΠΗΡΕΣΙΑ 2 ΑNAΠΤΥΞΗ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ [ΥΠΗΡΕΣΙΑ 2 ΑNAΠΤΥΞΗ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΗΡΕΣΙΑΣ ΑΝΑΖΗΤΗΣΗΣ ΕΦΑΡΜΟΓΩΝ ΕΛ/ΛΑΚ ] ΓΙΑ ΤΟN ΧΡΗΣΤΗ [13/01/2014] έκδοση: 1.0 1 Περιεχόμενα 1. Έλεγχος εγγράφου...3 2. Εισαγωγή...4 3. Εισαγωγή

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΣΚΛΗΣΕΩΝ ΕΡΓΩΝ ΣΧΕΔΙΩΝ ΧΟΡΗΓΙΩΝ» 1η Έκδοση: 2015 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...3

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

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

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

Κεφάλαιο 20. Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 20. Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 20 Ανακάλυψη Γνώσης σε Βάσεις δεδοµένων Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Τεχνητή Νοηµοσύνη, B' Έκδοση - 1 - Ανακάλυψη Γνώσης σε

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Πρόβλημα Ως πρόβλημα θεωρείται μια κατάσταση που πρέπει

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

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

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

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

P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης

P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης P-Μiner : ιαχείριση Πυλών Καταλόγων (Portals) µε Υποστήριξη ιαδικασιών Εξόρυξης εδοµένων Χρήσης ιπλωµατική Εργασία του Θεοδώρου Ι. Γαλάνη ΠΕΡΙΛΗΨΗ Γενικά Με την εξάπλωση του διαδικτύου όλο και περισσότεροι

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

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

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

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

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

Αγορά Πληροφορικής. Προϊόντα και Υπηρεσίες.

Αγορά Πληροφορικής. Προϊόντα και Υπηρεσίες. Αγορά Πληροφορικής. Προϊόντα και Υπηρεσίες. Υποδειγματικό Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: ΚΩΝΣΤΑΝΤΙΝΑ ΚΟΝΤΟΣΗ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ

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

Εθνικό Κέντρο Τεκμηρίωσης ΕΙΕ. Copyright 2014 Εθνικό Κέντρο Τεκμηρίωσης Ι EIE

Εθνικό Κέντρο Τεκμηρίωσης ΕΙΕ. Copyright 2014 Εθνικό Κέντρο Τεκμηρίωσης Ι EIE Εθνικό Κέντρο Τεκμηρίωσης ΕΙΕ Copyright 2014 Εθνικό Κέντρο Τεκμηρίωσης Ι EIE δ. Βασιλέως Κωνσταντίνου 48, 11635 Αθήνα τ.: 210 7273900 f: 210 7246824 e: ekt@ekt.gr www.ekt.gr Το έργο αυτό διατίθεται με

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

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

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

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

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

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

Οδηγός Χρήσης του EiXTo

Οδηγός Χρήσης του EiXTo Οδηγός Χρήσης του EiXTo EiXTo V2.8.8.0 1 Μαρτίου 2008 Κώστας Ντονάς kntonas@gmail.com Οδηγός Χρήσης του EiXTo Πίνακας Περιεχοµένων Πίνακας Περιεχοµένων Πίνακας Περιεχοµένων... i Πίνακας Εικόνων... ii EiXTo...

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

ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ ΠΑΡΑΡΤΗΜΑ ΧΙ

ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ ΠΑΡΑΡΤΗΜΑ ΧΙ ΕΘΝΙΚΟΝ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟΝ ΠΑΝΕΠΙΣΤΗΜΙΟΝ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ 2008-2013 ΠΑΡΑΡΤΗΜΑ ΧΙ ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ

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

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

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

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

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών ΤΣΙΜΠΑΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΞΗΝΤΑΡΙΔΗΣ ΙΩΑΝΝΗΣ Κέντρο Λειτουργίας και Διαχείρισης Δικτύου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα 1. Εισαγωγή 1.1 O Υπολογιστής ως εργαλείο μηχανικού 1.2 Η Επιστήμη των υπολογιστών 1.3 Ιστορικό Σημείωμα 1.4 Ο υπολογιστής μηχανή επεξεργασίας ψηφιακής πληροφορίας 1.5 Ψηφιοποίηση πληροφορίας 1.5.1 ψηφιοποίηση

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

Διπλωματικές των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη

Διπλωματικές των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Διπλωματικές 2006-2007 των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη Επιβλέπων: Ι. Βλαχάβας 1.

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

ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΝΑΛΥΣΗΣ ΤΗΣ ΘΕΣΗΣ ΕΡΓΑΣΙΑΣ

ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΝΑΛΥΣΗΣ ΤΗΣ ΘΕΣΗΣ ΕΡΓΑΣΙΑΣ ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΝΑΛΥΣΗΣ ΤΗΣ ΘΕΣΗΣ ΕΡΓΑΣΙΑΣ Το παρόν ερωτηματολόγιο ανάλυσης της θέσης εργασίας σχεδιάστηκε με σκοπό τη συλλογή πληροφοριών σχετικά με τα καθήκοντα και τις απαιτήσεις της θέσης εργασίας,

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

«ΕΞΑΓΩΓΗ ΠΛΗΡΟΦΟΡΙΑΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ»

«ΕΞΑΓΩΓΗ ΠΛΗΡΟΦΟΡΙΑΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ» r ι: i i i i n r ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ «ΕΞΑΓΩΓΗ ΠΛΗΡΟΦΟΡΙΑΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ» Διπλωματική Εργασία Σουλτάνα

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

Πλοήγηση και Αναζήτηση

Πλοήγηση και Αναζήτηση Πλοήγηση και Αναζήτηση Περιήγηση Το Eprints παρέχει πολλούς διαφορετικούς τρόπους να επιμεριστεί το καταθετήριο σε διαφορετικές συλλογές και να προσεγγίζεται το περιεχόμενό του από διαφορετικές οπτικές

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

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

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

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

Δημιουργία προσβάσιμων παρουσιάσεων με χρήση MS-PowerPoint 2010

Δημιουργία προσβάσιμων παρουσιάσεων με χρήση MS-PowerPoint 2010 Δημιουργία προσβάσιμων παρουσιάσεων με χρήση MS-PowerPoint 2010 Άδειες χρήσης Το παρόν υλικό υπόκειται σε άδειες χρήσης Creative Commons. Ανοικτά Ψηφιακά Μαθήματα 2 Περιεχόμενα Εισαγωγή Προσβάσιμες παρουσιάσεις

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