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

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

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

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΤΑΞΙΝΟΜΗΤΗ ΗΛΕΚΤΡΟΝΙΚΗΣ ΑΛΛΗΛΟΓΡΑΦΙΑΣ ιπλωµατική Εργασία της Μαλεζά Σοφίας (ΑΕΜ:765) Επιβλέπων Καθηγητής: ΒΛΑΧΑΒΑΣ ΙΩΑΝΝΗΣ ΘΕΣΣΑΛΟΝΙΚΗ ΟΚΤΩΒΡΙΟΣ 2006

2 1

3

4 Στον Γιάννη για την βοήθεια και την υποµονή του 3

5 Πρόλογος Ο φόρτος του ηλεκτρονικού ταχυδροµείου είναι ένα θέµα το οποίο απασχολεί όλους τους χρήστες. Για να αντιµετωπιστεί το φαινόµενο αυτό οι προγραµµατιστές προτείνουν την ανάπτυξη ταξινοµητών, οι οποίοι ανάλογα µε το περιεχόµενο των ηλεκτρονικών µηνυµάτων τους κατατάσσουν στους ανάλογους φακέλους και έτσι οι χρήστες γλιτώνουν κόπο αλλά και χρόνο. Στην εργασία αυτή, παρουσιάζονται τα χαρακτηριστικά της ηλεκτρονικής αλληλογραφίας καθώς και οι διάφοροι τρόποι µε τους οποίους γίνεται η εξόρυξη των µηνυµάτων. Ακόµη, γίνεται αναφορά σε διάφορους αλγορίθµους οι οποίοι συµβάλουν στην ανάπτυξη των ταξινοµητών και τέλος, αναπτύσσεται µια εφαρµογή η οποία µελλοντικά θα συµβάλλει στην αυτόµατη ταξινόµηση των µηνυµάτων ηλεκτρονικής αλληλογραφίας. Θα ήθελα να ευχαριστήσω τον καθηγητή κ. Βλαχάβα Ιωάννη αρχικά για την εµπιστοσύνη στην ανάθεση της εργασίας, και στη συνέχεια για τη διαρκή υποστήριξη. Επίσης, να ευχαριστήσω θερµά τον υποψήφιο διδάκτορα του τµήµατος, κ. Κατάκη Ιωάννη, για την άψογη συνεργασία, την υποµονή, την άµεση απόκριση σε κλήσεις βοήθειας, την επίβλεψη και διόρθωση της διπλωµατικής. Οι οδηγίες, οι κατευθύνσεις και η όλη συµµετοχή του στη διαµόρφωση και τελική εικόνα της εργασίας ήταν καταλυτική. Τέλος, τα µέλη του εργαστηρίου Γλωσσών Προγραµµατισµού και Τεχνολογίας Λογισµικού (PlaSE) και ειδικότερα τα µέλη της οµάδας Λογικού προγραµµατισµού και Ευφυών Συστηµάτων (LPIS) για τη συνεργασία. Μαλεζά Σοφία

6 Περιεχόµενα ΠΡΟΛΟΓΟΣ... 4 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ ΜΗΧΑΝΙΚΗ ΜΑΘΗΣΗ ΚΑΙ ΤΑΞΙΝΟΜΗΣΗ ΜΗΧΑΝΙΚΗ ΜΑΘΗΣΗ Είδη Μηχανικής Μάθησης ΜΑΘΗΣΗ ΜΕ ΕΠΙΒΛΕΨΗ Τεχνικές µηχανικής µάθησης µε επίβλεψη ιαφορές µάθησης µε επίβλεψη και µάθησης χωρίς επίβλεψη ΤΑΞΙΝΟΜΗΣΗ έντρα ταξινόµησης Εφαρµογές της ταξινόµησης ΕΞΟΡΥΞΗ Ε ΟΜΕΝΩΝ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥ ΡΟΜΕΙΟΥ ΙΑΧΕΙΡΙΣΗ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥ ΡΟΜΕΙΟΥ Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥ ΡΟΜΕΙΟΥ ΕΞΟΡΥΞΗ ΜΗΝΥΜΑΤΩΝ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥ ΡΟΜΕΙΟΥ Προεπεξεργασία και Αναπαράσταση Μηνυµάτων Επιλογή Χαρακτηριστικών Ταξινόµηση Μηνυµάτων Ηλεκτρονικού Ταχυδροµείου ΕΦΑΡΜΟΓΕΣ Spam Filtering Αυτόµατη Οργάνωση Μηνυµάτων σε Φακέλους Η ΠΛΑΤΦΟΡΜΑ MOZILLA Η ΙΕΠΑΦΗ ΤΟΥ MOZILLA XPCOM XPCOM Objects

7 4.1.3 Modular Προγραµµατισµός Άλλα συστήµατα Η ΓΛΩΣΣΑ XUL ΤΑ ΑΡΧΕΙΑ RDF ΤΟ ΛΟΓΙΣΜΙΚΟ THUNDERBIRD EXTENSIONS Ο Mozilla Thunderbird και τα extensions ΗΜΙΟΥΡΓΙΑ ΕΝΟΣ EXTENSION Τα πακέτα (packages) και τα αρχεία manifest Το αρχείο chrome Το πακέτο content Το πακέτο skin Το πακέτο locale Τα components Το αρχείο install.rdf Η ΓΛΩΣΣΑ JAVASCRIPT ΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΑΡΑ ΕΙΓΜΑ ΑΝΑΠΤΥΞΗΣ ΕΝΟΣ EXTENSION ΗΜΙΟΥΡΓΙΑ ΤΟΥ INSTALL.RDF ΗΜΙΟΥΡΓΙΑ ΤΟΥ BAYESBIRD_OVERLAY.XUL ΗΜΙΟΥΡΓΙΑ ΤΟΥ BAYESBIRD_OVERLAY.JS ΗΜΙΟΥΡΓΙΑ ΤΟΥ BAYESBIRD.CSS ΗΜΙΟΥΡΓΙΑ ΤΟΥ CHROME.MANIFEST ΟΡΓΑΝΩΣΗ ΤΩΝ ΑΡΧΕΙΩΝ ΚΑΙ ΤΩΝ ΠΑΚΕΤΩΝ Η ΕΓΚΑΤΑΣΤΑΣΗ ΤΟΥ BAYESBIRD ΣΥΜΠΕΡΑΣΜΑΤΑ ΓΕΝΙΚΑ ΠΡΟΒΛΗΜΑΤΑ ΠΟΥ ΑΝΤΙΜΕΤΩΠΙΣΤΗΚΑΝ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ...74 ΒΙΒΛΙΟΓΡΑΦΙΑ...77 ΠΑΡΑΡΤΗΜΑ

8 7

9

10 1 Εισαγωγή Η διπλωµατική αυτή αναφέρεται στην ανάπτυξη ενός ταξινοµητή για µηνύµατα ηλεκτρονικού ταχυδροµείου. Σκοπός της εργασίας είναι να δηµιουργηθεί όλο το θεωρητικό υπόβαθρο, το οποίο θα συµβάλλει µελλοντικά στην υλοποίηση µιας εφαρµογής, η ο- ποία θα είναι ικανή αυτόµατα να ταξινοµεί από µόνη της τα εισερχόµενα µηνύµατα του χρήστη σε φακέλους ανάλογα µε το περιεχόµενό τους. Συγκεκριµένα, στο κεφάλαιο δύο παρουσιάζονται κάποιες γενικότερες έννοιες του επιστηµονικού πεδίου στο οποίο ανήκει αυτή η εργασία. Αρχικά, γίνεται αναφορά στην Μηχανική Μάθηση και στα δύο είδη της, την µάθηση µε επίβλεψη και στην µάθηση χωρίς επίβλεψη και κατόπιν αναπτύσσεται η έννοια και τα χαρακτηριστικά της ταξινό- µησης. Το κεφάλαιο τρία αναφέρεται στην εξόρυξη µηνυµάτων ηλεκτρονικού ταχυδροµείου. Περιγράφεται επίσης ο τρόπος διαχείρισης και λειτουργίας του και παρουσιάζονται ενδεικτικά κάποιες εφαρµογές όπως το spam filtering και η αυτόµατη οργάνωση των µηνυµάτων σε φακέλους. Αντικείµενο του τετάρτου κεφαλαίου είναι η πλατφόρµα Mozilla. Αρχικά, παρουσιάζεται η διεπαφή του, τα βασικά χαρακτηριστικά του και κάποιες επιπλέον πληροφορίες. Στη συνέχεια, περιγράφεται η γλώσσα XUL καθώς και τα αρχεία RDF τα οποία είναι χαρακτηριστικά στοιχεία για τον Mozilla. Τέλος, γίνεται µια σύντοµη αναφορά σε ένα προϊόν του Mozilla, το λογισµικό Thunderbird το οποίο είναι µια πλήρης εφαρµογή για τη διαχείριση ηλεκτρονικού ταχυδροµείου. Το πέµπτο κεφάλαιο επικεντρώνεται στα extensions τα οποία είναι µικρές επιπροσθέσεις που προσδίδουν λειτουργικότητα σε εφαρµογές του Mozilla. Εξηγείται ο τρόπος µε τον οποίο οργανώνεται ένα extension καθώς και τα αρχεία που περιέχει. Επιπλέον, αναφερόµαστε στη γλώσσα Javascript και αναλύεται µια καινούρια τεχνική, ο δυναµικός προγραµµατισµός. Θέµα του κεφαλαίου έξι είναι η ανάπτυξη ενός πειραµατικού extension. Αναλύεται ο τρόπος µε τον οποίο δηµιουργήθηκε αυτό, ο κώδικάς του και η οργάνωσή του σε αρχεία. Το συγκεκριµένο extension θα συµβάλλει µελλοντικά στην ανάπτυξη ενός ταξι- 9

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

12 2 Μηχανική Μάθηση και Ταξινόµηση Στο κεφάλαιο αυτό παρουσιάζονται κάποιες γενικές έννοιες της Τεχνητής Νοηµοσύνης. Γίνεται ιδιαίτερη αναφορά στην Μηχανική Μάθηση και στις δύο κατηγορίες της, τη µάθηση µε επίβλεψη και τη µάθηση χωρίς επίβλεψη και τέλος αναλύεται η έννοια της ταξινόµησης και παρουσιάζονται ορισµένες εφαρµογές της. 2.1 Μηχανική Μάθηση Για πολλά χρόνια φιλόσοφοι προσπαθούσαν να περιγράψουν το µηχανισµό της µάθησης, της αποµνηµόνευσης, της όρασης, της αντίληψης και του συλλογισµού. Από τη στιγµή που εµφανίστηκαν οι πρώτοι υπολογιστές, οι άνθρωποι ασχολήθηκαν µε τη σχεδίαση ευφυών υπολογιστικών συστηµάτων, δηλαδή συστηµάτων που επιδείκνυαν τα παραπάνω χαρακτηριστικά. Άµεση συνέπεια ήταν η ανάπτυξη ενός τοµέα της επιστή- µης των υπολογιστών που ονοµάστηκε Τεχνητή Νοηµοσύνη. Η έρευνα στην Τεχνητή Νοηµοσύνη καλύπτει ένα ευρύ φάσµα περιοχών και έχει αποφέρει καρπούς σε πολλές από αυτές όπως στην µηχανική όραση, στους ευφυείς πράκτορες, στην ροµποτική, στα έµπειρα συστήµατα και στην µηχανική µάθηση. Η έννοια της µάθησης σε ένα σύστηµα επεξεργασίας πληροφορίας το οποίο έχει δυνατότητες συλλογισµού, λήψης απόφασης, µάθησης, επικοινωνίας και δράσης µπορεί να συνδεθεί µε δύο βασικές ιδιότητες. Πρώτον, µε την ικανότητά του στην πρόσκτηση γνώσης κατά την αλληλεπίδρασή του µε το περιβάλλον, µέσα στο οποίο δραστηριοποιείται και δεύτερον, µε την ικανότητά του να βελτιώνει µε την επανάληψη τον τρόπο µε τον οποίο εκτελεί µια ενέργεια καθώς και την απόδοσή του. Έχουν προταθεί διάφοροι ορισµοί για τη µάθηση, όπως µάθηση είναι να κάνουµε χρήσιµες αλλαγές στο µυαλό µας κατά τον Minsky (1985) ή µάθηση είναι η δηµιουργία ή η αλλαγή της αναπαράστασης των εµπειριών κατά τον Michalski (1986). Όσον αφορά τις µηχανές µπορούµε να πούµε ότι µια µηχανή µαθαίνει όταν αλλάζει τη δοµή της, το πρόγραµµα ή τα δεδοµένα σε τέτοιο βαθµό ώστε να βελτιώνεται η µελλοντική της λειτουργία. Παρ όλα αυτά επειδή η µάθηση, όπως και η νοηµοσύνη, 11

13 καλύπτει ένα ευρύ φάσµα διεργασιών είναι πολύ δύσκολο να καθορίσουµε επακριβώς τον ορισµό της. [1] Ο όρος Μηχανική Μάθηση εισάχθηκε στις αρχές της δεκαετίας του 1980 και είναι από τους παλαιότερους ερευνητικούς τοµείς της Τεχνητής Νοηµοσύνης. Η Μηχανική Μάθηση συνήθως αναφέρεται στις αλλαγές που σχετίζονται µε συστήµατα τα οποία καλύπτουν εφαρµογές που συνδέονται µε την Τεχνητή Νοηµοσύνη. Τέτοιες εφαρµογές περιλαµβάνουν τη διάγνωση, το σχεδιασµό, την πρόβλεψη, τη ροµποτική κ.α. Στη βιοπληροφορική η µηχανική µάθηση σχετίζεται µε τη στοίχιση ακολουθιών και την ανάλυση των δεδοµένων από µικροσυστοιχίες. Στη ροµποτική χρησιµοποιείται για τη δη- µιουργία χάρτη και τη λήψη αποφάσεων ενώ στον τοµέα των πολυµέσων για την ανάκτηση γνώσης µε βάση το περιεχόµενο. Επίσης η Μηχανική Μάθηση βρίσκει εφαρµογές και στη φαρµακευτική όπου κάνει διάγνωση ασθενειών, χρησιµοποιείται για τη θεραπεία διάφορων παθήσεων και βοηθάει στο σχεδιασµό καινούριων φαρµάκων. Στον τοµέα της οικονοµικής ανάλυσης µπορεί και προβλέπει τις τιµές των µετοχών ενώ στο ηλεκτρονικό εµπόριο δηµιουργούνται πράκτορες για αυτόµατο εµπόριο και βοηθάει στη διατήρηση των πελατών. Ακόµη χρησιµοποιείται και στη µηχανική όραση για αναγνώριση των αντικειµένων και τµηµατοποίηση των εικόνων. Οι αλλαγές από τη µεριά τους µπορεί να είναι είτε βελτιώσεις σε ήδη υπάρχοντα συστήµατα είτε συνθέσεις νέων συστηµάτων. Σύµφωνα µε τον Carbonell (1987) µηχανική µάθηση ονοµάζεται η µελέτη υπολογιστικών µεθόδων για την απόκτηση νέας γνώσης, νέων δεξιοτήτων και νέων τρόπων οργάνωσης της υπάρχουσας γνώσης. Επίσης υπάρχει και ένας πιο αυστηρός ορισµός σύµφωνα µε τον Mitchell (1997) : Ένα πρόγραµµα υπολογιστή θεωρείται ότι µαθαίνει από την εµπειρία Ε σε σχέση µε µια κατηγορία εργασιών Τ και µια µετρική απόδοσης Ρ, αν η απόδοση του σε εργασίες της Τ, όπως µετριούνται από την Ρ, βελτιώνονται µε την εµπειρία Ε. Ως ερευνητικός τοµέας, η µηχανική µάθηση έχει ασχοληθεί µε πλήθος επί µέρους προβληµάτων και έχει προτείνει διάφορες µεθόδους επίλυσης. Η διαφοροποίηση βρίσκεται στον τρόπο αναπαράστασης της γνώσης, στις στρατηγικές µάθησης, στην ύπαρξη ή όχι αρχικής γνώσης κ.τ.λ. Η αποτελεσµατικότητα ή όχι ενός τέτοιου συστήµατος εξαρτάται από την ποσότητα και ποιότητα της αρχικής γνώσης. Έτσι η διαδικασία της µάθησης γίνεται δύσκολη εάν το σύστηµα δεν κατανοήσει αρχικά το τι ακριβώς πρέπει να µάθει. 12

14 Τα τελευταία χρόνια έχουν αναπτυχθεί πολλές επιτυχείς εφαρµογές της µηχανικής µάθησης που εκτείνονται από προγράµµατα εξόρυξης δεδοµένων (Data Mining) που µαθαίνουν να εντοπίζουν συναλλαγές µε κλεµµένες πιστωτικές κάρτες, µέχρι συστήµατα φιλτραρίσµατος πληροφοριών που µαθαίνουν τις προτιµήσεις των χρηστών και αυτόνοµα οχήµατα που µαθαίνουν να οδηγούν σε δηµόσιους δρόµους. Επιπλέον, η λεπτο- µερής κατανόηση του τρόπου λειτουργίας αλγορίθµων επεξεργασίας πληροφοριών για µηχανική µάθηση µπορεί να οδηγήσει σε καλύτερη κατανόηση των δυνατοτήτων και µειονεκτηµάτων της ανθρώπινης µάθησης. Περιοχές οι οποίες είναι σχετίζονται µε την µηχανική µάθηση είναι η φιλοσοφία, η ψυχολογία, η βιολογία, η θεωρία της πληροφορίας και η στατιστική Είδη Μηχανικής Μάθησης Η Μηχανική Μάθηση ασχολείται µε την κατασκευή λογισµικού που έχει τη δυνατότητα να βελτιώνεται αυτόµατα µε την εµπειρία. Ανάλογα µε τη φύση του κάθε προβλήµατος έχουν αναπτυχθεί τεχνικές µηχανικής µάθησης οι οποίες διακρίνονται σε δύο κατηγορίες: Μάθηση µε επίβλεψη (supervised learning) ή µάθηση από παραδείγµατα (learning from examples ), Μάθηση χωρίς επίβλεψη (unsupervised learning ) ή µάθηση από παρατήρηση (learning from observation ). Στη µάθηση µε επίβλεψη στόχος είναι το σύστηµα να µάθει µια έννοια ή µια συνάρτηση από ένα σύνολο δεδοµένων µε ζευγάρια τιµών εισόδου και εξόδου της συνάρτησης αυτής. Ονοµάζεται έτσι επειδή θεωρείται ότι υπάρχει κάποιος επιβλέπων ο οποίος παρέχει τη σωστή τιµή εξόδου της συνάρτησης, για τα δεδοµένα που εξετάζονται. Το αποτέλεσµα της διαδικασίας µάθησης µε επίβλεψη καλείται µοντέλο πρόβλεψης (predictive model) και αυτό γιατί προβλέπει την τιµή µιας µεταβλητής. Ένα µοντέλο περιγράφει το σύνολο των δεδοµένων και εκτός από τις δυνατότητες πρόβλεψης έχει επιπλέον ορισµένες δυνατότητες πληροφόρησης επειδή παρέχει και ποιοτικές πληροφορίες για τα δεδοµένα. Αντίθετα, στη µάθηση χωρίς επίβλεψη το σύστηµα πρέπει να ανακαλύψει µόνο του ενδεχόµενες υπάρχουσες συσχετίσεις και οµάδες σε ένα σύνολο δεδοµένων. Έτσι ως 13

15 αποτέλεσµα δηµιουργούνται πρότυπα. Ένα πρότυπο περιγράφει συνήθως µόνο ένα µέρος των δεδοµένων δηλαδή έχει τοπικό χαρακτήρα και ονοµάζεται πρότυπο πληροφόρησης (informative pattern) αφού περιγράφει συσχετίσεις µεταξύ των δεδοµένων. Τα κυριότερα πρότυπα πληροφόρησης είναι οι κανόνες συσχέτισης (association rules), τα σειριακά πρότυπα (sequential patterns) τα οποία αποτελούν παραλλαγή των κανόνων συσχέτισης και οι οµάδες (clusters). 2.2 Μάθηση µε Επίβλεψη Στη µάθηση µε επίβλεψη υπάρχει µια συνάρτηση που ονοµάζεται συνάρτηση στόχος (target function) και αποτελεί έκφραση του µοντέλου που περιγράφει τα δεδοµένα. Σκοπός της τεχνικής αυτής είναι το σύστηµα να µπορέσει να µάθει επαγωγικά αυτή τη συνάρτηση. Χρησιµοποιώντας τις τιµές ενός συνόλου µεταβλητών που καλούνται ανεξάρτητες µεταβλητές ή χαρακτηριστικά ή µεταβλητές εισόδου, η συνάρτηση στόχος προσπαθεί να προβλέψει την τιµή µιας µεταβλητής που ονοµάζεται εξαρτηµένη µεταβλητή ή µεταβλητή εξόδου. Το πεδίο ορισµού της συνάρτησης είναι γνωστό ως σύνολο των περιπτώσεων ή στιγµιότυπων και είναι το σύνολο των διαφορετικών τιµών εισόδου της. Κάθε περίπτωση περιγράφεται από ένα σύνολο χαρακτηριστικών. Σύνολο δεδοµένων εκπαίδευσης ή παραδείγµατα ονοµάζεται το υποσύνολο του συνόλου των περιπτώσεων για τα οποία γνωρίζουµε την τιµή της µεταβλητής εξόδου. Στη µάθηση µε επίβλεψη το σύστηµα εξετάζει διάφορες υποθέσεις. Οι υποθέσεις αυτές είναι διάφορες συναρτήσεις οι οποίες µπορεί να είναι είτε λογικές είτε πραγ- µατικές και προσεγγίζουνε άλλες περισσότερο και άλλες λιγότερο τη συνάρτηση στόχο. Το σύνολο των υποθέσεων το οποίο θα εξεταστεί για να βρεθεί η συνάρτηση στόχος ονοµάζεται σύνολο υποθέσεων. Πιο συγκεκριµένα αναζητείται µια συνάρτηση f της οποίας ξέρουµε τις τιµές της για m δείγµατα σε ένα σύνολο Ν. Αν βρεθεί µια υπόθεση h η οποία θα συµφωνεί µε την f για τα µέλη του Ν τότε αυτή η υπόθεση θα είναι µια καλή προσέγγιση της f ειδικά εάν το Ν είναι αρκετά µεγάλο. 14

16 2.2.1 Τεχνικές µηχανικής µάθησης µε επίβλεψη Στην µάθηση µε επίβλεψη διακρίνονται δύο είδη προβληµάτων (learning tasks), τα προβλήµατα παρεµβολής και τα προβλήµατα ταξινόµησης ή αλλιώς κατηγοριοποίησης. Στην πρώτη κατηγορία δηµιουργούνται µοντέλα πρόβλεψης όπου το χαρακτηριστικό που προβλέπεται απαιτείται να έχει αριθµητική τιµή ενώ η δεύτερη κατηγορία αφορά στη δηµιουργία µοντέλων πρόβλεψης διακριτών τάξεων. Ορισµένες τεχνικές µηχανικής µάθησης µε επίβλεψη που σχετίζονται µε τα παραπάνω προβλήµατα είναι: Γραµµική παρεµβολή : στην οποία το χαρακτηριστικό του οποίου η τιµή πρέπει να προβλεφθεί µοντελοποιείται µε µία απλή γραµµική εξίσωση των παραµέτρων εισόδου. Νευρωνικά δίκτυα : προτιµούνται σε σχέση µε την γραµµική παρεµβολή λόγω της δυνατότητας τους να µοντελοποιούν µη γραµµικά δεδοµένα και παρέχουν ένα περισσότερο πρακτικό τρόπο για την εκµάθηση αριθµητικών και διανυσµατικών συναρτήσεων. Παρουσιάζουν ανοχή σε δεδοµένα που έχουν περιστασιακά λανθασµένες τιµές ενώ το κύριο µειονέκτηµά τους είναι ότι αδυνατούν να εξηγήσουν ποιοτικά τη γνώση που µοντελοποιούν. Μηχανές διανυσµάτων υποστήριξης : έχουν διαδοθεί τα τελευταία χρόνια ως µια από τις διαδεδοµένες µεθόδους παρεµβολής και ταξινόµησης, αποτελώντας τη καλύτερη επιλογή για εφαρµογές όπως η αναγνώριση γραφής, η ταξινόµηση κει- µένων κ.α. [39] ιαφορές µάθησης µε επίβλεψη και µάθησης χωρίς επίβλεψη Από µία θεωρητική άποψη η µάθηση µε επίβλεψη και η µάθηση χωρίς επίβλεψη διαφέρουν µόνο στον τρόπο µε τον οποίο κατασκευάζεται το µοντέλο. Στη µάθηση µε επίβλεψη το µοντέλο καθορίζει την επίδραση που έχει ένα σύνολο από παρατηρήσεις, οι οποίες ονοµάζονται είσοδοι σε ένα σύνολο από παρατηρήσεις που ονοµάζονται έξοδοι. Με άλλα λόγια, οι είσοδοι θεωρούνται πως είναι στην αρχή ενώ οι έξοδοι βρίσκονται στο τέλος της αλυσίδας του µοντέλου. Το µοντέλο περιλαµβάνει διάφορες µεταβλητές στις εισόδους και εξόδους αντίστοιχα. 15

17 Στη µάθηση χωρίς επίβλεψη όλες οι παρατηρήσεις θεωρούνται πως προέρχονται από αφανείς µεταβλητές κι αυτό γιατί οι παρατηρήσεις εµφανίζονται στο τέλος της αλυσίδας του µοντέλου. Στην πραγµατικότητα, τα µοντέλα της µάθησης µε επίβλεψη συχνά αφήνουν την πιθανότητα για εισόδους ανοιχτή. Αυτό το µοντέλο δεν είναι χρήσιµο όσο έχουµε διαθέσιµες εισόδους αλλά εάν µερικές από τις τιµές εισόδου λείπουν, είναι αδύνατο να συµπεράνουµε οτιδήποτε χρήσιµο για τις εξόδους. Εάν όµως οι είσοδοι είναι µοντελοποιηµένες, τότε οι είσοδοι που λείπουν δεν προκαλούν κανένα πρόβληµα αφού µπορούν να θεωρηθούν ως αφανείς µεταβλητές όπως στη µάθηση χωρίς επίβλεψη. Με την µάθηση χωρίς επίβλεψη είναι πολύ πιθανό να δηµιουργηθούν πιο πολύπλοκα και µεγαλύτερα µοντέλα από ότι µε την µάθηση µε επίβλεψη. Κι αυτό γιατί στην µάθηση µε επίβλεψη αυτό που επιδιώκεται είναι να βρεθεί µόνο η συσχέτιση ανάµεσα στα δύο σύνολα των παρατηρήσεων. Η δυσκολία στα µοντέλα µάθησης αυξάνει εκθετικά ανάλογα µε τον αριθµό των βηµάτων ανάµεσα στα δύο σύνολα κι αυτό γιατί η µάθηση µε επίβλεψη δεν µπορεί πρακτικά να µάθει µοντέλα µε βαθιές ιεραρχίες. Στη µάθηση χωρίς επίβλεψη, η µάθηση µπορεί να προχωρήσει ιεραρχικά από τις παρατηρήσεις σε πιο ουσιαστικά επίπεδα αναπαράστασης. Κάθε εναλλακτική ιεραρχία χρειάζεται να µάθει µόνο ένα βήµα και γι αυτό ο χρόνος µάθησης αυξάνει ( κατά προσέγγιση ) γραµµικά ανάλογα µε τον αριθµό των επιπέδων της ιεραρχίας του µοντέλου. Εάν η φυσική σχέση ανάµεσα στις παρατηρήσεις εισόδου και εξόδου είναι πολύπλοκη, δηλαδή υπάρχει µεγάλο χάσµα, τότε είναι ευκολότερο να χρησιµοποιήσουµε µάθηση χωρίς επίβλεψη αντί της µάθησης µε επίβλεψη. [2] 2.3 Ταξινόµηση Μια ειδική κατηγορία µοντέλων πρόβλεψης είναι η ταξινόµηση. Η ταξινόµηση είναι µια µέθοδος αναζήτησης παρόµοια µε την παρεµβολή, µε τη διαφορά ότι η τιµή του πεδίου που πρέπει να προβλεφθεί δεν εκφράζεται µε αριθµό αλλά µε κατηγορία. Έτσι υπάρχει µεγαλύτερη πιθανότητα να έχει κάποιο χαρακτηριστικό Y την τιµή y δεδοµένου ότι άλλα χαρακτηριστικά X= ( X1, X2,, XN ) έχουν τιµές 16

18 x= ( x1, x2,, xn ), παρά να έχει κάποια άλλη τιµή y. ηλαδή P ( Y = y X = x ) > P ( Y = y X = x ). Στην µέθοδο αυτή στόχος είναι να µπορέσουν να ταξινοµηθούν µε µεγάλη ακρίβεια µη ταξινοµηµένα αντικείµενα αφού δώσουµε στο σύστηµα µια σειρά από παραδείγµατα. Για να λυθούν τα προβλήµατα ταξινόµησης χρησιµοποιούµε τους κατηγοριοποιητές ή ταξινοµητές. Ο κάθε ταξινοµητής αποτελείται από έναν αλγόριθµο ταξινόµησης και το σύνολο δεδοµένων στο οποίο αυτός εφαρµόζεται. Τα προβλήµατα στα οποία εφαρµόζεται η ταξινόµηση ονοµάζονται προβλή- µατα ταξινόµησης. Στα προβλήµατα αυτά γίνεται προσπάθεια να προβλεφθούν τιµές για µία εξαρτηµένη µεταβλητή βασιζόµενοι σε µία ή περισσότερες µεταβλητές οι οποίες είναι ανεξάρτητες. Παραδείγµατα τέτοιων προβληµάτων είναι η ιατρική διάγνωση, η ανάλυση ενός ρίσκου δανειοδότησης, η εύρεση αιτίας δυσλειτουργίας κ.α έντρα ταξινόµησης Τα δέντρα ταξινόµησης χρησιµοποιούνται για να προβλέψουν τις τιµές µιας µεταβλητής που ονοµάζεται εξαρτηµένη. Αυτό πραγµατοποιείται αφού κάνουν διάφορες µετρήσεις πάνω σε µία ή περισσότερες µεταβλητές οι οποίες ονοµάζονται α- νεξάρτητες µεταβλητές. Η ανάλυση που γίνεται από τα δέντρα ταξινόµησης είναι µία από τις πιο δηµοφιλείς τεχνικές που χρησιµοποιείται και στον τοµέα της εξόρυξης δεδοµένων. Ο στόχος αυτής της τεχνικής είναι να προβλέψει ή να εξηγήσει τις αντιδράσεις µιας εξαρτηµένης µεταβλητής, και γι αυτό το λόγο τα δέντρα ταξινόµησης έχουν πολλά κοινά στοιχεία µε πιο παραδοσιακές τεχνικές όπως την οµαδοποίηση. Η ελαστικότητα η οποία παρουσιάζουν βοηθάει στο να χρησιµοποιούνται αρκετά συχνά σε προβλήµατα χωρίς βέβαια αυτό να αποκλείει τη χρήση άλλων µεθόδων. Αντιθέτως όταν απαιτούνται περισσότερο αυστηρές προβλέψεις συνήθως προτιµούνται οι πιο παραδοσιακές µέθοδοι. Παρ όλα αυτά τα δέντρα ταξινόµησης, σύµφωνα µε τη γνώµη πολλών επιστηµόνων, είναι µία από τις καλύτερες τεχνικές όταν θέλουµε να διερευνήσουµε ένα πρόβληµα ή όταν οι άλλες τεχνικές αποτυγχάνουν να βρουν µία λύση. 17

19 Τα δέντρα ταξινόµησης είναι δενδροειδείς δοµές που αναπαριστούν γραφικά τις συσχετίσεις των δεδοµένων. Αναπαρίστανται σαν σύνολα κανόνων ή πίνακες απόφασης και είναι πολύ εύκολα στην κατανόησή τους. Κάθε κόµβος του δέντρου ορίζει µία συνθήκη ελέγχου της τιµής κάποιου χαρακτηριστικού των περιπτώσεων και κάθε κλαδί που φεύγει από τον κόµβο αντιστοιχεί σε µία διαφορετική διακριτή τιµή του χαρακτηριστικού που ελέγχει ο κόµβος. Το τελικό δέντρο ταξινόµησης µπορεί να χρησιµοποιηθεί είτε για πρόβλεψη είτε για περιγραφή και διερεύνηση. Στην πρόβλεψη οι ανεξάρτητες µεταβλητές είναι η είσοδος και η εξαρτηµένη µεταβλητή η έξοδος. Στην περιγραφή ιδιαίτερο βάρος δίνουµε στα αποτελέσµατα τα οποία µας βοηθούνε να διακρίνουµε συσχετίσεις µεταξύ εξαρτηµένης και ανεξάρτητων µεταβλητών. Πολλές φορές τα προβλήµατα µπορεί να οδηγήσουν σε ιδιαίτερα πολύπλοκα δέντρα. Γι αυτό το λόγο χρησιµοποιούνται εξελιγµένα γραφικά ώστε βασιζόµενοι σε αυτά να σχεδιάσουµε ένα δέντρο από το οποίο θα µπορούµε να εξάγουµε σωστά αποτελέσµατα. Τα δέντρα ταξινόµησης µοντελοποιούν τις ίδιες σχέσεις ανεξάρτητα εάν είναι δυαδικά ή όχι και µοντελοποιούνε µόνο µία εξαρτηµένη µεταβλητή. Αν όχι όλοι τουλάχιστον οι περισσότεροι αλγόριθµοι απαιτούν η µεταβλητή αυτή να είναι κατηγορική γι αυτό και οι συνεχόµενες µεταβλητές µετατρέπονται σε κατηγορίες διαστήµατα τιµών. Ένα χαρακτηριστικό των δέντρων ταξινόµησης είναι η ελαστικότητά τους, δηλαδή το γεγονός ότι εξετάζουν ένα-ένα τα αποτελέσµατα κάθε ανεξάρτητης µεταβλητής και όχι όλα µαζί. Η ταξινόµηση βασιζόµενη στα δέντρα, όταν χρησιµοποιείται σε προβλήµατα και παράγει αποτελέσµατα τα οποία σχετίζονται µε εάν τότε (if-then) συνθήκες έχει πολλά πλεονεκτήµατα σε σχέση µε τις άλλες παραδοσιακές τεχνικές. Καταρχήν, υπάρχει απλότητα στα αποτελέσµατα που προκύπτουν. Στις περισσότερες περιπτώσεις η ερµηνεία των αποτελεσµάτων που συνοψίζονται σε ένα δέντρο είναι πολύ απλή και εύκολη. Αυτή η απλότητα δεν είναι µόνο χρήσιµη σε περιπτώσεις όπου απαιτείται η γρήγορη ταξινόµηση νέων παρατηρήσεων(αφού είναι πολύ πιο εύκολο να εκτιµήσουµε µία ή δύο λογικές συνθήκες, παρά να υπολογίσουµε τα αποτελέσµατα της ταξινόµησης για κάθε πιθανή οµάδα ή να βρούµε τιµές µε βάση τις ανεξάρτητες µεταβλητές χρησιµοποιώντας πιο πολύπλοκα µοντέλα ) αλλά µπορεί και να αποφέρει ένα πιο απλό µοντέλο το οποίο θα εξηγεί πως οι παρατηρήσεις ταξινοµούνται µε έναν συγκεκριµένο τρόπο. 18

20 Η µέθοδος των δέντρων ταξινόµησης είναι µία µη-γραµµική µέθοδος. Κι αυτό γιατί τα αποτελέσµατα της ταξινόµησης µε τη λογική συνθήκη εάν-τότε συνοψίζονται στους κόµβους των δέντρων. Έτσι δεν υπάρχει καµία περίπτωση η σχέση µεταξύ των ανεξάρτητων µεταβλητών και της εξαρτηµένης µεταβλητής να είναι γραµµική. Τα δέντρα ταξινόµησης είναι κατάλληλα σε περιπτώσεις εξόρυξης δεδοµένων όπου συνήθως υπάρχει µικρή προϋπάρχουσα γνώση ή όπου υπάρχουν συνδεδεµένες οµάδες από θεωρίες ή προβλέψεις οι οποίες δείχνουν ποιες µεταβλητές σχετίζονται και πως. Σε τέτοιες περιπτώσεις, τα δέντρα ταξινόµησης συχνά φανερώνουν απλές συσχετίσεις µεταξύ ορισµένων µεταβλητών οι οποίες δεν θα ανακαλύπτονταν εάν χρησιµοποιούνταν άλλες τεχνικές. Ο γνωστότερος αλγόριθµος ο οποίος χρησιµοποιείται για την κατασκευή των δέντρων είναι ο αλγόριθµος ID3. Ο αλγόριθµος αυτός κατασκευάζει το δέντρο από τη ρίζα προς τα φύλλα και είναι άπληστος µε την έννοια ότι οι κόµβοι του δέντρου κατασκευάζονται λαµβάνοντας υπόψη κριτήρια τα οποία είναι τοπικά, δηλαδή ισχύουν στο τρέχον σηµείο κατασκευής, και όχι κριτήρια συνολικά. Η κατασκευή κάθε δέντρου ξεκινάει από τον κόµβο-ρίζα όπου τοποθετούνται όλα τα δεδοµένα µε βάση την εξαρτηµένη µεταβλητή. Κατόπιν γίνεται επιλογή της µεταβλητής η οποία θεωρείται η περισσότερο κατάλληλη µε βάση ορισµένα κριτήρια και αρχίζει η ανάπτυξη του δέντρου. Ο αλγόριθµος ID3 χρησιµοποιεί την αναρρίχηση λόφων για να βρει το σωστό δέντρο µέσα στο σύνολο των πιθανών δέντρων που έχουν προκύψει. Αρχικά η αναζήτηση ξεκινάει µε ένα άδειο δέντρο. Στη συνέχεια ο αλγόριθµος το επεκτείνει προοδευτικά µε σκοπό να βρει ένα δέντρο το οποίο θα ταξινοµεί µε σωστό τρόπο τα δεδοµένα. Σε κάθε βήµα του ο αλγόριθµος χρησιµοποιεί όλα τα δεδοµένα τα οποία είναι διαθέσιµα στον υπό εξέταση κόµβο. Ο χώρος των υποθέσεων στον οποίο κάνει την α- ναζήτηση περιλαµβάνει όλες τις πιθανές συναρτήσεις που µπορεί να οριστούν σε σχέση µε τα διαθέσιµα χαρακτηριστικά. Ακόµη ένα βασικό του πλεονέκτηµα είναι ότι παρουσιάζει αντοχή σε λάθη. Από την άλλη, κατά την αναζήτηση που πραγµατοποιεί ο αλγόριθµος διατηρεί µόνο µια υπόθεση συµβατή µε τα δεδοµένα και έτσι δεν έχει τη δυνατότητα να βρει όλα τα δέντρα που είναι συµβατά µε τα δεδοµένα. Επίσης δεν κάνει ποτέ οπισθοδρόµηση. Όταν επιλέγει έναν κόµβο για να εξετάσει ένα χαρακτηριστικό δεν µπορεί να επιστρέψει πίσω για να αλλάξει την επιλογή του αυτή.[3] 19

21 2.3.2 Εφαρµογές της ταξινόµησης Παρακάτω παρουσιάζονται τρία παραδείγµατα στα οποία βρίσκει εφαρµογή η ταξινό- µηση τα οποία είναι η ιατρική διάγνωση, η ανίχνευση βλαβών σε αεροσκάφη και η ταξινόµηση ιστοσελίδων. Ιατρική διάγνωση Ένα από τα σηµαντικότερα προβλήµατα που καλείται να λύσει η ταξινόµηση είναι σχετικά µε θέµατα υγείας. Η ταξινόµηση χρησιµοποιεί ειδικές µεθόδους για τη διάγνωση ασθενειών και ειδικότερα του καρκίνου. Βρίσκει εφαρµογή κυρίως στη µαστογραφία για την έγκαιρη διάγνωση του καρκίνου του στήθους. Επίσης έχουν αναπτυχθεί διάφορες τεχνικές που βοηθούν σε µεγάλο βαθµό στην διάγνωση του µελανώµατος και του όγκου στον εγκέφαλο. Ανίχνευση βλαβών σε αεροσκάφη Με τη βοήθεια της ταξινόµησης τα τελευταία χρόνια έχουν αναπτυχθεί µηχανήµατα τα οποία επιτρέπουν την ανίχνευση των βλαβών σε αεροσκάφη κατά τη διάρκεια πτήσεων. Μία τέτοια εφαρµογή βοηθάει τους χειριστές και τις οµάδες συντήρησης να προβλέψουν κάποιο πρόβληµα και να το διορθώσουν πριν προκαλέσει οποιαδήποτε ζηµιά στο αεροσκάφος ή ακόµα και συντριβή. Παρ όλη τη βοήθεια που προσφέρουν, δίνουν πολύ συχνά και λανθασµένους συναγερµούς εξαιτίας της αδυναµίας τους να ξεχωρίσουν µια πραγµατική κατάσταση από µία µοντελοποιηµένη. Ταξινόµηση ιστοσελίδων Μία άλλη εφαρµογή είναι η ταξινόµηση ιστοσελίδων στο χώρο του παγκόσµιου ιστού. Αυτό βοηθάει σε µεγάλο βαθµό τους χρήστες αφού τους βοηθάει να κάνουν αναζήτηση µέσα σε συγκεκριµένες κατηγορίες. Έτσι µειώνονται σε µικρή ποσότητα οι σελίδες που επιστρέφει µία µηχανή αναζήτησης στα ερωτήµατα που θέτει ο χρήστης. 20

22 3 Εξόρυξη δεδοµένων ηλεκτρονικού ταχυδροµείου Το ηλεκτρονικό ταχυδροµείο ή αλλιώς είναι ένας τοµέας ο οποίος έχει γνωρίσει τα τελευταία χρόνια µεγάλη άνθηση. Οι άνθρωποι σε όλο τον κόσµο στέλνουν και δέχονται χιλιάδες µηνύµατα κάθε µέρα και έτσι επικοινωνούν µε συναδέλφους και φίλους ή ανταλλάζουν χρήσιµα αρχεία και πληροφορίες. υστυχώς όµως η υπερφόρτωση από τα καθηµερινά τα τελευταία χρόνια έχει δηµιουργήσει σοβαρά προβλήµατα σε κάθε χρήστη καθώς και σε πολλές εταιρείες. Για να αντιµετωπιστεί λοιπόν το πρόβληµα έχουν χρησιµοποιηθεί διάφορες τεχνικές, όπως η Μηχανική Μάθηση ή η εξόρυξη δεδοµένων οι οποίες µπορούν αποτελεσµατικά να συνεισφέρουν στη σωστή διαχείριση των µηνυµάτων και οι οποίες έχουν πολλά πλεονεκτήµατα έναντι άλλων εναλλακτικών λύσεων. 3.1 ιαχείριση του ηλεκτρονικού ταχυδροµείου Η επίδραση του ηλεκτρονικού ταχυδροµείου στην καθηµερινή ζωή των ανθρώπων είναι στις µέρες µας περισσότερο φανερή από ποτέ. Κάθε λεπτό εκατοµµύρια µηνύµατα α- πλού κειµένου ή άλλα εµπλουτισµένα στέλνονται και λαµβάνονται από χρήστες σε όλο τον κόσµο. Μερικά από αυτά µπορεί να διαβαστούν πολύ προσεκτικά, αφού θα αφορούν τον χρήστη, και την ίδια στιγµή άλλα θα διαγραφούν αφού δεν θα παρουσιάζουν κανένα ιδιαίτερο ενδιαφέρον. Όσο το διαδίκτυο εξαπλώνεται όλο και περισσότερο, το ηλεκτρονικό ταχυδροµείο έχει εξελιχθεί όχι µόνο σε ένα ζωτικό εργαλείο για τη δουλειά του κάθε ανθρώπου αλλά και σε ένα σηµαντικό βοήθηµα για τις διαπροσωπικές σχέσεις. Στον επαγγελµατικό τοµέα, το ηλεκτρονικό ταχυδροµείο έχει εισχωρήσει σε κάθε τµήµα. Η οργάνωση των οµάδων, η διαχείριση των έργων, η ανταλλαγή πληροφοριών, η λήψη αποφάσεων, η υποστήριξη πελατών είναι µόνο µερικές από τις καθηµερινές ε- νέργειες των εταιρειών όπου το είναι απαραίτητο. Επίσης η προσωπική επικοινωνία έχει γίνει σηµαντικά ευκολότερη αφού το ηλεκτρονικό ταχυδροµείο προσφέρει συ- 21

23 νεχή επαφή των ανθρώπων µε το ελάχιστο κόστος. Άτοµα σε όλο τον κόσµο µπορούν να ανταλλάζουν διάφορες πληροφορίες και µηνύµατα ή και να κάνουν νέες γνωριµίες µε τέτοια ευκολία, ώστε το ηλεκτρονικό ταχυδροµείο να έχει γίνει πλέον το δεύτερο πιο δηµοφιλές κανάλι επικοινωνίας µετά τη φωνή (π.χ. τηλέφωνο). [48] Τα στοιχεία που έχουν κάνει το ηλεκτρονικό ταχυδροµείο τόσο δηµοφιλή είναι η γρήγορη επικοινωνία, το ελάχιστο κόστος και επιπλέον το γεγονός ότι είναι τροµερά εύκολο στη χρήση. Το πλεονέκτηµα που έχει αυτής της µορφής η επικοινωνία έναντι στην επικοινωνία µε τη φωνή, όπως για παράδειγµα µε το τηλέφωνο, είναι ότι είναι α- σύγχρονη. ηλαδή δεν είναι ανάγκη και για τις δύο πλευρές που επικοινωνούν να είναι συνδεδεµένες στο ίδιο δίκτυο εκείνη τη στιγµή ή να είναι µπροστά από τον ηλεκτρονικό υπολογιστή. υστυχώς όµως το ηλεκτρονικό ταχυδροµείο δεν θα µπορούσε να αποφύγει την κατάρα της υπερφόρτωσης πληροφοριών. Χιλιάδες µηνύµατα που φτάνουν καθηµερινά σε κάθε χρήστη, µερικά εξαιρετικά σηµαντικά και άλλα τελείως άχρηστα, έχουν κάνει την διαχείριση των µηνυµάτων µια κουραστική διαδικασία. Σήµερα, κάθε χρήστης λαµβάνει κατά µέσο όρο εκατό µε διακόσια µηνύµατα κάθε µέρα και σύµφωνα µε µία πρόσφατη έρευνα έχει αναφερθεί ότι µέχρι το έτος 2006 η ανταλλαγή των ηλεκτρονικών µηνυµάτων θα είναι της τάξης των εξήντα δισεκατοµµυρίων την ηµέρα παγκοσµίως [19]. Στις µέρες µας, οι άνθρωποι σπαταλούν αρκετό χρόνο για να διαχωρίσουν από τον σωρό µηνυµάτων που έχουν τα πιο σηµαντικά, τα οποία χρειάζονται άµεση ανταπόκριση, ενώ οι µεγάλες εταιρείες επενδύουν πολλά χρήµατα για να διατηρήσουν κέντρα διαχείρισης ηλεκτρονικού ταχυδροµείου µε προσωπικό το οποίο να εξειδικεύεται στο να απαντάει σε απορίες και ερωτήσεις των πελατών τις οποίες στέλνουν µε . Επιπρόσθετα, το πρόβληµα των ανεπιθύµητων µηνυµάτων (spam) έχει αυξηθεί σε τέτοιο βαθ- µό που έχει καταλήξει να θεωρείται ένα µεγάλο οικονοµικό πρόβληµα. Κοστίζει εκατοµµύρια δολάρια [49] καθώς τα µηνύµατα αυτά καταλαµβάνουν σηµαντικό χώρο και απασχολούν τους εργαζοµένους που τα λαµβάνουν. Επιπλέον, το περιεχόµενο πολλών ανεπιθύµητων µηνυµάτων είναι ακατάλληλο για τα παιδιά αφού µπορεί να περιέχουν και πορνογραφικό υλικό. 22

24 3.2 Η λειτουργία του ηλεκτρονικού ταχυδροµείου Το ηλεκτρονικό ταχυδροµείο δεν λειτουργεί διαφορετικά από το πώς λειτουργούσε ό- ταν εµφανίστηκε για πρώτη φορά. Βασίζεται σε δύο βασικά πρωτόκολλα επικοινωνίας : το SMTP ( Simple Mail Transfer Protocol ) πρωτόκολλο, το οποίο χρησιµοποιείται για να στέλνει µηνύµατα και το POP3 ( Post Office Protocol ) πρωτόκολλο, το οποίο χρησιµοποιείται για να δέχεται µηνύµατα. Μια απλοποιηµένη έκδοση του κύκλου ζωής του ηλεκτρονικού µηνύµατος φαίνεται στο παρακάτω σχήµα : Εικόνα 1. Κύκλος ζωής ενός ηλεκτρονικού µηνύµατος Τα πιο σηµαντικά λογικά στοιχεία του Ηλεκτρονικού Ταχυδροµείου είναι : 1. Mail User Agent ( MUA ): Ο Mail User Agent είναι υπεύθυνος για να βοηθήσει τον χρήστη να διαβάσει και να γράψει ηλεκτρονικά µηνύµατα. Συνήθως αναφέρεται µε τον όρο client. ύο πολύ δηµοφιλή client είναι το Microsoft Outlook (Microsoft Outlook: και το Mozilla Thunderbird (Mozilla ThunderBird: Αυτά τα προγράµµατα αλλάζουν ένα µήνυµα κειµένου σε κατάλληλη µορφή ώστε αυτό το µήνυµα να µπορεί να φτάσει µέσω του διαδικτύου στο σωστό προορισµό του. 23

25 2. Mail Transfer Agent ( MTA ): Ο Mail Transfer Agent δέχεται ένα µήνυµα το οποίο φτάνει σε αυτόν είτε από ένα MUA είτε από ένα άλλο MTA και µετά αποφασίζει για την κατάλληλη µέθοδο µε την οποία θα παραδοθεί το µήνυ- µα καθώς και για τη διαδροµή που θα ακολουθήσει. Χρησιµοποιεί το πρωτόκολλο SMTP για να στείλει το µήνυµα σε ένα άλλο MTA ή σε ένα MDA. 3. Mail Delivery Agent ( MDA ): Ο Mail Delivery Agent δέχεται τα µηνύµατα από τα MTA και τα παραδίνει στο ταχυδροµικό κουτί του χρήστη στον α- ντίστοιχο εξυπηρετή ηλεκτρονικού ταχυδροµείου. 4. Mail Retrieval Agents ( MRA ): Μεταφέρει τα µηνύµατα από τον εξυπηρέτη (server) στο φάκελο εισερχοµένων του χρήστη. Τα MRAs συχνά υπάρχουν στα clients. Το ηλεκτρονικό µήνυµα αποτελείται από δύο µέρη, τις Επικεφαλίδες (Headers) και το Σώµα (Body). Οι Επικεφαλίδες περιέχουν ένα σύνολο από χρήσιµες πληροφορίες έτσι ώστε το µήνυµα να φτάσει στον προορισµό του και να µπορεί να διαβαστεί σωστά από τον παραλήπτη. Οι περισσότερο συνηθισµένες Επικεφαλίδες είναι το «Από» («From»), το «Προς» («To») ή το «Θέµα» («Subject»). 3.3 Εξόρυξη Μηνυµάτων Ηλεκτρονικού Ταχυδρο- µείου Το mining µπορεί να θεωρηθεί ως µία εφαρµογή από τον πρόσφατα εξελισσόµενο τοµέα έρευνας της εξόρυξης κειµένων (text mining) πάνω στα δεδοµένα ηλεκτρονικού ταχυδροµείου. Η εξόρυξη κειµένων είναι ένας τοµέας ο οποίος έχει τραβήξει την προσοχή ερευνητών από διάφορους επιστηµονικούς χώρους όπως η Μηχανική Μάθηση, η εξόρυξη δεδοµένων, κ.α. 24 Παρ όλα αυτά, διακρίνουµε ορισµένα χαρακτηριστικά στα δεδοµένα των ηλεκτρονικών µηνυµάτων τα οποία διαχωρίζουν την εξόρυξη µηνυµάτων ηλεκτρονικού ταχυδροµείου από την εξόρυξη κειµένων : 1. Το ηλεκτρονικό µήνυµα περιέχει επιπλέον πληροφορίες στις επικεφαλίδες του µηνύµατος οι οποίες µπορούν να χρησιµοποιηθούν για διάφορες διεργασίες ε- ξόρυξης δεδοµένων ηλεκτρονικού ταχυδροµείου. 2. Το κείµενο ενός ηλεκτρονικού µηνύµατος είναι µικρότερο σε έκταση και γι αυτό το λόγο ορισµένες τεχνικές που χρησιµοποιούνται στο text mining µπορεί να µην είναι αποδοτικές στα δεδοµένα του µηνύµατος.

26 3. Ένα ηλεκτρονικό µήνυµα γράφεται συνήθως βιαστικά και έτσι δεν έχει πολλές φορές σωστή γλωσσολογική δόµηση αφού εµφανίζονται συχνά ορθογραφικά και συντακτικά λάθη. 4. Σε ένα ηλεκτρονικό µήνυµα υπάρχει η πιθανότητα να συζητηθούν πολλά και διάφορα θέµατα. 5. Το ηλεκτρονικό µήνυµα είναι προσωπικό και έτσι γενικές τεχνικές είναι δύσκολο να εφαρµοστούν. 6. Τα µηνύµατα αποτελούν ροή δεδοµένων, γι αυτό και η κατανοµή καθώς και η έννοια των κλάσεων µπορεί στην πορεία να αλλάξουν. Οι αλγόριθµοι θα πρέπει να έχουν την δυνατότητα να µπορούν να τροποποιηθούν καθώς νέα στοιχεία µπορεί να προκύψουν. 7. Τα ηλεκτρονικά µηνύµατα είναι πιθανό πολλές φορές να περιέχουν θόρυβο. ιάφορα επισυναπτόµενα αρχεία θα πρέπει να αφαιρούνται ώστε να µπορεί χρησιµοποιηθεί µια τεχνική εξόρυξης κειµένου. Σε ορισµένες περιπτώσεις µάλιστα ο θόρυβος τοποθετείται σκόπιµα. Για παράδειγµα, στο spam filtering λέξεις και φράσεις µε θόρυβο χρησιµοποιούνται για να παραπλανήσουν τους αλγορίθµους της µηχανικής µάθησης. 8. Είναι ιδιαίτερα δύσκολο να έχουµε διαθέσιµα δεδοµένα ηλεκτρονικού ταχυδρο- µείου για τη διεξαγωγή πειραµάτων. Αυτό αποτελεί µειονέκτηµα, ειδικά στην έρευνα, αφού δεν µπορούν να διεξαχθούν συγκριτικές µελέτες χωρίς κοινά σύνολα δεδοµένων. Εξαίρεση αποτελεί η συλλογή Enron, που έγινε διαθέσιµη στο κοινό µετά από µία νοµική έρευνα που διεξάχθηκε στην εταιρεία Enron Προεπεξεργασία και Αναπαράσταση Μηνυµάτων Το πρώτο στάδιο κάθε µεθόδου Ανακάλυψης Γνώσης είναι η προεπεξεργασία των δεδοµένων που αρχικά καλείται «ακατέργαστη µορφή δεδοµένων» («raw format»). Για να εισχωρήσουµε σε αυτά τα ακατέργαστα δεδοµένα και να αποκοµίσουµε τη γνώση από αυτά, πρέπει πρώτα να µετατρέψουµε τα δεδοµένα σε µία κατάλληλη µορφή ώστε να είναι κατανοητή από τους αλγορίθµους της µηχανικής µάθησης. Τα τελευταία χρόνια, οι χρήστες µε τη βοήθεια νέου και εξελιγµένου λογισµικού διαχείρισης ηλεκτρονικού ταχυδροµείου ( client) άρχισαν να εισάγουν HTML κώδικα, εµπλουτίζοντας έτσι τα απλά µηνύµατα κειµένου µε άλλα διαφορετικού τρόπου γραφής, µε ξεχωριστά φόντα, εικόνες κ.α. Στην πραγµατικότητα, αυτό επιτεύχθηκε 25

27 στέλνοντας µια σελίδα HTML ως ένα επισυναπτόµενο αρχείο το οποίο κάθε σύγχρονος client µε έναν ενσωµατωµένο web browser έχει τη δυνατότητα να παρουσιάσει. εν εκµεταλλευόµαστε την HTML για να εξάγουµε γνώση. Συνήθως αφαιρείται χρησι- µοποιώντας Συντακτικούς Αναλυτές. Έτσι κρατάµε µόνο το κείµενο που περιέχεται στην HTML σελίδα. Μερικές φορές µάλιστα οι HTML ετικέτες χρησιµοποιούνται σαν χαρακτηριστικά των µηνυµάτων. Στο text και mining το πιο κυρίαρχο µοντέλο για απεικόνιση είναι το ιανυσµατικό Μοντέλο (vector space model)[50]. Σε αυτό κάθε µήνυµα αντιπροσωπεύεται από ένα µοναδικό διάνυσµα και κάθε στοιχείο συσχετίζεται µε ένα χαρακτηριστικό. Στα δεδοµένα κειµένου τα χαρακτηριστικά είναι συνήθως λέξεις ή φράσεις. Τα στοιχεία του διανύσµατος παίρνουν τις περισσότερες φορές υαδικές τιµές, δηλαδή 0 ή 1, έτσι ώστε να δηλώσουν την ύπαρξη ή την απουσία ενός συγκεκριµένου χαρακτηριστικού στο έγγραφο, ή βάρη τα οποία είναι τιµές µεταξύ του 0 και του 1 για να δείξουν τη ση- µασία που έχει αυτό για το έγγραφο. Στην ταξινόµηση κειµένου η χρήση απλών λέξεων σαν χαρακτηριστικά είναι περισσότερο συνηθισµένη και συνήθως αναφέρεται ως απεικόνιση «bag-of-words». Σαν εναλλακτική λύση θα µπορούσαν να χρησιµοποιηθούν ως χαρακτηριστικά φράσεις, όµως κάτι τέτοιο δεν θα βοηθούσε στην αποτελεσµατικότητα των αλγορίθµων [51]. Επίσης έχει προταθεί και µία άλλη ενδιαφέρουσα απεικόνιση [52] όπου γίνεται χρήση των εννοιολογικών χαρακτηριστικών. Αυτά τα χαρακτηριστικά δηλώνουν την απόσταση µεταξύ του εγγράφου και του εννοιολογικού διανύσµατος. Αυτά τα διανύσµατα δηµιουργούνται αφού ταξινοµήσουµε όλα τα έγγραφα. Έτσι ένα µήνυµα e j µπορεί να παρασταθεί από ένα διάνυσµα e j = [ w 1, j,, w n, j ], ό- που τα βάρη w 1, j και w n, j είναι τα βάρη των χαρακτηριστικών για ένα συγκεκριµένο έγγραφο j. Ο δείκτης i αναφέρεται στο χαρακτηριστικό t i. Σε περίπτωση που χρησιµοποιούµε λέξεις αντί για χαρακτηριστικά το t i αναφέρεται στην ι-οστή λέξη του λεξιλογίου, που είναι βασικά ένα σύνολο από ξεχωριστές λέξεις. Το λεξιλόγιο κάθε προβλήµατος δοµείται αναλύοντας έγγραφα εκπαίδευσης που υπάρχουν και συλλέγοντας ξεχωριστές λέξεις. Ένα ακόµη σηµαντικό θέµα είναι αν οι λέξεις µε την ίδια ρίζα θα θεωρούνται ισοδύναµες. Σε αυτήν την περίπτωση δηµιουργήθηκε ένα λεξικό ριζών και λέξεις όπως «program», «programming» και «programmer» αντιµετωπίζονται ως ίδιες. Στην βιβλιογραφία υπάρχουν ήδη αλγόριθµοι ριζών όπως ο Αλγόριθµος του Porter (Porter Stemming Algorithm) [53]. Ένα άλλο ζήτηµα είναι η αφαίρεση κοινά χρησιµοποιούµενων 26

28 λέξεων όπως τα άρθρα και οι προθέσεις, τις οποίες αποκαλούµε «stop-words». Αυτό θα ήταν αποτελεσµατικό στις περισσότερες εφαρµογές γιατί αυτές οι λέξεις χρησιµοποιούνται στη φυσική γλώσσα ανεξαρτήτως θέµατος και γι αυτό το λόγο δεν έχουν ιδιαίτερη σηµασία. Από την άλλη πλευρά, σε εφαρµογές όπως η αναγνώριση συγγραφέα ηλεκτρονικού ταχυδροµείου, η χρήση των «stop-words» µπορεί να είναι καθοριστική αφού η χρήση τέτοιων όρων µπορεί να αποκαλύψει την ταυτότητα του συγγραφέα [54]. Ιδιαίτερα για το ηλεκτρονικό ταχυδροµείο µπορεί να προκύψουν και λέξειςχαρακτηριστικά από τις επικεφαλίδες. Μια λέξη που εµφανίζεται στο θέµα του µηνύµατος µπορεί να είναι πιο σηµαντική από µια λέξη που υπάρχει στο σώµα. Στην περίπτωση των επικεφαλίδων, το w i αντιπροσωπεύει ένα χαρακτηριστικό εάν υπάρχει στο θέµα και ένα άλλο χαρακτηριστικό εάν υπάρχει στο σώµα. Έτσι, το µέγεθος του διανύσµατος διπλασιάζεται όπως παρακάτω [55]: E j = [subject : w 1, body : w 1,, subject : w n, body : w n ]. Έχουν προταθεί διαφορετικοί τρόποι για να καθοριστεί το βάρος µιας λέξης. Εκτός από την ήδη αναφερόµενη µέθοδο Boolean [31,56], µια εναλλακτική λύση είναι να χρησιµοποιηθεί η TF-IDF συνάρτηση ( Term Frequency- Invert Document Frequency) [57] για κάθε λέξη ώστε να υπολογιστεί το βάρος. Η συνάρτηση TF-IDF καθορίζεται παρακάτω: όπου, TF i,j ο αριθµός των φορών που το χαρακτηριστικό t i εµφανίζεται στο µήνυµα e j (Term Frequency), το N είναι το σύνολο των µηνυµάτων και DF i είναι ο αριθµός των µηνυµάτων t i (Document Frequency). Η παραπάνω διαδικασία βασίζεται στο γεγονός ότι µια λέξη είναι σηµαντική για ένα έγγραφο εάν εµφανίζεται πολλές φορές σε αυτό και την ίδια στιγµή δεν είναι µια συνηθισµένη λέξη (µια λέξη που εµφανίζεται σε πολλά έγγραφα). Μπορεί να χρησιµοποιηθεί και κανονικοποίηση συνηµιτόνου εάν θέλουµε να αναπαρασταθούν τα βάρη στο διάστηµα [0,1][58]. 27

29 3.3.2 Επιλογή Χαρακτηριστικών Ένα τυπικό λεξικό αποτελείται από χιλιάδες λέξεις. Σε µία προσέγγιση bag-of-words οι λέξεις αυτές θα αποτελούν το σύνολο των χαρακτηριστικών. Ένα σύνολο τόσο µεγάλο δεν είναι µόνο αναποτελεσµατικό αλλά και παραπλανητικό για πολλούς αλγορίθµους, καθώς λαµβάνονται θορυβώδη ή άσχετα χαρακτηριστικά και µπορούν να προκύψουν διάφορα προβλήµατα (curse of dimensionality-κατάρα των διαστάσεων). Γι αυτό το λόγο αναπτύχθηκε ένας µεγάλος αριθµός από αλγορίθµους µείωσης διαστάσεων. Οι αλγόριθµοι αυτοί είναι γνωστοί ως µέθοδοι επιλογής χαρακτηριστικών, γιατί η µείωση ιαστάσεων πραγµατοποιείται προσπαθώντας να συλλέξουµε τα καλύτερα χαρακτηριστικά από ολόκληρο το διάστηµα χαρακτηριστικών. Στην ταξινόµηση κειµένων αυτό σηµαίνει να συλλέξουµε λέξεις που ξεχωρίζουν ένα έγγραφο από ένα άλλο πιο αποτελεσµατικό. Αυτό πραγµατοποιείται υπολογίζοντας ένα ποιοτικό όριο για κάθε λέξη και επιλέγουµε να χρησιµοποιήσουµε τα N καλύτερα χαρακτηριστικά. Μπορεί να χρησιµοποιηθεί η TF-IDF συνάρτηση µε τη διαφορά ότι βοηθάει στο να παρουσιαστεί η σπουδαιότητα ενός όρου από ολόκληρη τη συλλογή και όχι µόνο από ένα έγγραφο. όπου ΤF i είναι ο αριθµός των εµφανίσεων του όρου i στην συλλογή, DF i ο αριθµός των φορών που εµφανίζεται αυτός ο όρος σε διαφορετικά έγγραφα και N ο συνολικός αριθ- µός των εγγράφων. Συνήθως χρησιµοποιούνται µετρήσεις από την θεωρία της πληροφορίας (information theory). Στο text mining και κατ επέκταση σε εφαρµογές ηλεκτρονικού ταχυδρο- µείου χρησιµοποιούνται το Κέρδος Πληροφορίας (Information Gain) και η Μετρική x 2 (Chi-Squared Measure) όπως και το Mutual Information [59]. Γενικά, ένα µέτρο M (t i,c j ) φανερώνει πόση δύναµη έχει ο όρος t i ώστε να διαχωριστεί ο c j από άλλες κατηγορίες. Παρακάτω παραθέτεται ο ορισµός του Κέρδους Πληροφορίας και της Μετρικής x 2 : 28

30 Information Gain : Chi-Squared Measure : Ταξινόµηση Μηνυµάτων Ηλεκτρονικού Ταχυδροµείου Οι περισσότερες µέθοδοι mining πραγµατοποιούνται χρησιµοποιώντας ταξινό- µηση µηνυµάτων. Γενικά αυτό που αντιµετωπίζει η ταξινόµηση µηνυµάτων ηλεκτρονικού ταχυδροµείου είναι η ανάθεση ενός µηνύµατος σε µια κατηγορία από ένα προκαθορισµένο σύνολο. Η αυτόµατη ταξινόµηση έχει στόχο να δηµιουργήσει ένα µοντέλο, συνήθως χρησιµοποιώντας τεχνικές µηχανικής µάθησης, το οποίο θα αναλάβει αυτήν την εργασία εκ µέρους του χρήστη. Τέτοια παραδείγµατα είναι η αυτόµατη ταξινόµηση µηνυµάτων σε φακέλους, το spam filtering και η αναγνώριση συγγραφέα ηλεκτρονικού ταχυδροµείου. Υπάρχουν και άλλες εφαρµογές όπου η ταξινόµηση βρίσκεται σε εξέλιξη όπως η Αυτόµατη Περίληψη Ηλεκτρονικού Μηνύµατος. Υπάρχουν δύο είδη ταξινόµησης. Το πρώτο και ευκολότερο είναι η επίπεδη ταηινό- µηση όπου έχουµε µόνο ένα επίπεδο κλάσεων. Η άλλη κατηγορία είναι η ιεραρχική, όπου υπάρχει µία ιεράρχηση των κλάσεων και των υποκλάσεων [32,21]. Σε ορολογία µηχανικής µάθησης, εάν έχουµε ένα προκαθορισµένο σύνολο κλάσεων C = {c 1,,c n }, χρειάζεται να δηµιουργήσουµε ένα µοντέλο συνάρτησης το οποίο θα αναθέτει ένα ηλεκτρονικό µήνυµα (e ) σε µία κλάση π.χ. M(e)->C. Αυτά τα µοντέλα που είναι γνωστά ως ταξινοµητές κατασκευάζονται χρησιµοποιώντας τεχνικές µηχανικής µάθησης, όπως Naïve Bayes [56], Support Vector Machines [17], αλγορίθµους που βασίζονται στα έντρα απόφασης [60] και Νευρωνικά ίκτυα [29]. Οι περισσότεροι αλγόριθµοι ταξινόµησης χρησιµοποιούν το διανυσµατικό µοντέλο. Για να δηµιουργηθεί ένας ταξινοµητής απαιτείται ένα σύνολο από παραδείγµατα. Ένα παράδειγµα είναι ένα µήνυµα το οποίο το έχει ήδη καταχωρήσει σε µία κατηγορία ένας χρήστης ή ένας ειδικός. Το παράδειγµα είναι συνήθως ένα διάνυσµα e= [w 1, w 2,,w n, c e ] όπου το c e είναι η κλάση στην οποία ανήκει το παράδειγµα e. Αυτή η διαδικασία δηµιουργίας ταξινοµητή ονοµάζεται εκπαίδευση (training). 29

31 Αυτό που είναι ιδιαίτερα σηµαντικό στην ταξινόµηση µηνυµάτων είναι το γεγονός ότι το ηλεκτρονικό ταχυδροµείο είναι ένα δυναµικό περιβάλλον και ότι υπάρχει συνεχής ροή µηνυµάτων. Αυτό σηµαίνει ότι παρόλο που υπάρχει ένα διαθέσιµο σύνολο training, ο ταξινοµητής θα πρέπει να µπορεί να αφοµοιώσει την καινούρια γνώση που βρίσκεται σε νέα παραδείγµατα. Γι αυτό το λόγο είναι απαραίτητο οι αλγόριθµοι να µπορούν να τροποποιηθούν [25,16,61]. Ο ταξινοµητής Naïve Bayes : Ο αλγόριθµος αυτός έχει χρησιµοποιηθεί πολλές φορές σε εφαρµογές ταξινόµησης µηνυµάτων ηλεκτρονικού ταχυδροµείου [42,56]. Η απλότητά του, το χαµηλό υπολογιστικό κόστος και η αποτελεσµατικότητα, η ευελιξία του αλλά και η ευκολία στην εκτέλεση είναι τα βασικά χαρακτηριστικά τα οποία τον καθιστούν τόσο δηµοφιλή όχι µόνο σε εφαρµογές ηλεκτρονικών µηνυµάτων αλλά και στην ταξινόµηση κειµένων [36,62,63]. Ο αλγόριθµος βασίζεται στην υπόθεση ότι τα βασικά χαρακτηριστικά γνωρίσµατα π.χ. οι tf-idf τιµές ενός διανύσµατος είναι ανεξάρτητα. Η ταξινόµηση κατά Bayes ενός µηνύµατος e= [w 1, w 2,,w n ] σε µία κατηγορία από C= {c 1, c 2,, c 3 } υπολογίζεται παρακάτω: όπου c NB είναι η ταξινόµηση που προτείνεται από τον αλγόριθµο. Μηχανές ιανυσµάτων Υποστήριξης (Support Vector Machines) : Η εξαιρετική τους απόδοση έχει καταστήσει τις Μηχανές ιανυσµάτων Υποστήριξης ιδιαίτερα δη- µοφιλείς στην ταξινόµηση κειµένων και ηλεκτρονικών µηνυµάτων. Στην απλούστερη και αρχική τους µορφή οι µηχανές αυτές είναι δυαδικοί ταξινοµητές, δηλαδή χωρίζουν τα αντικείµενα µόνο σε δύο προκαθορισµένες κλάσεις. Ο ταξινοµητής βρίσκει ένα υπερεπίπεδο που διαχωρίζει µια οµάδα από θετικά παραδείγµατα από µια οµάδα από αρνητικά παραδείγµατα µε τη µεγαλύτερη απόσταση. 30

32 Εικόνα 2.Μηχανή ιανύσµατος Υποστήριξης Αυτό το όριο καθορίζεται ως η απόσταση του υπερεπιπέδου από το κοντινότερο θετικό και αρνητικό παράδειγµα, τα οποία ονοµάζονται ιανύσµατα Υποστήριξης (support vectors). Εάν το d είναι το έγγραφο εισόδου και το v είναι το διάνυσµα του ορίου, τότε η έξοδος του ταξινοµητή υπολογίζεται παρακάτω: Ο στόχος είναι να µεγιστοποιηθεί το όριο που αναπαρίσταται από το v διάνυσµα. Έτσι προκύπτει ένα πρόβληµα βελτιστοποίησης: Μεγιστοποίηση του: Έτσι ώστε: όπου d ι είναι τα παραδείγµατα και y είναι η κατηγορία (+1 ή -1) στην οποία ανήκει το έγγραφο d ι. Έτσι, απαιτείται η σωστή ταξινόµηση όλων των παραδειγµάτων εκπαίδευσης. Φυσικά, αυτό είναι εφικτό µόνο εάν το πρόβληµα είναι γραµµικά διαχωρίσιµο. Υπάρχουν ωστόσο προτεινόµενες τροποποιήσεις ώστε να εφαρµοστεί η βελτιστοποίηση και σε µη γραµµικά προβλήµατα. Τα προβλήµατα αυτά απαιτούν µία τετραγωνική µέθοδο βελτιστοποίησης η οποία θα υπολογίζει το καλύτερο υπερεπίπεδο και όριο. Οι µέθοδοι αυτοί είναι ιδιαίτερα αργές για να χρησιµοποιηθούν στην ταξινόµηση µηνυµάτων. Πρόσφατα, έχει προταθεί ένας αλγόριθµος αρκετά αποτελεσµατικός από τον Platt (1999) όπου σπάει το QP πρόβληµα σε µικρότερα ( γνωστός ως Sequential Minimal 31

33 Optimization (SMO)) και ο οποίος χρησιµοποιείται σε βιβλιοθήκες µηχανικής µάθησης όπως το Weka [43]. 3.4 Εφαρµογές Έχουν ανακαλυφθεί διάφορες τεχνικές για µεθόδους όπως την περίληψη κειµένων, την οργάνωση, την ταξινόµηση και την αναγνώριση συγγραφέα ηλεκτρονικού ταχυδροµείου. Μια νέα πρόκληση για τον τοµέα της εξόρυξης κειµένων είναι τα δεδοµένα µηνυ- µάτων και τα χαρακτηριστικά τους. Ο τοµέας αυτός δηµιούργησε πρόσφορο έδαφος για να αναπτυχθούν νέες εφαρµογές. Τέτοιες είναι το Spam Filtering και η Αυτόµατη Οργάνωση Μηνυµάτων Ηλεκτρονικού Ταχυδροµείου σε Φακέλους (Automatic Mail Organization into Folders) Spam Filtering Ο κύριος στόχος του spam filtering είναι να αναγνωριστούν και να ξεχωριστούν τα α- νεπιθύµητα και περιττά διαφηµιστικά µηνύµατα (spam) τα οποία καταφθάνουν κάθε λεπτό στο ηλεκτρονικό ταχυδροµείο των χρηστών. Τα µηνύµατα αυτά, γνωστά και ως junk ή bulk , ξεκίνησαν σαν µία µικρή ενόχληση για τους χρήστες όταν πρωτοεµφανίστηκε το ηλεκτρονικό ταχυδροµείο και κατέληξαν να αποτελούν τα τελευταία πέντε χρόνια ένα τεράστιο βιοµηχανικό πρόβληµα. Οι µεγάλες ποσότητες των spam µηνυµάτων όχι µόνο έχουν προκαλέσει οικονοµικά προβλήµατα αλλά καταλαµβάνουν και πολύτιµο χρόνο από τους χρήστες που προσπαθούν να ξεχωρίσουν και να διαγράψουν πολλά ανεπιθύµητα µηνύµατα κάθε µέρα. Επιπλέον, πολλά τέτοια µηνύµατα περιέχουν και πορνογραφικό υλικό ακατάλληλο για παιδιά. Για να καταπολεµηθεί λοιπόν αυτό το φαινόµενο, η κοινωνία της τεχνολογίας έχει αρχίσει την κατασκευή spam φίλτρων έτσι ώστε να διαγράφονται αυτόµατα τα περιττά εισερχόµενα µηνύµατα. Υπάρχουν πολλές στρατηγικές που έχουν προταθεί και χρησι- µοποιούνται για να εξαλειφθούν αυτά τα µηνύµατα. Θα µπορούσαν να διαχωριστούν σε δύο γενικές κατηγορίες: Τεχνικές ή Μη Στατιστικές Προσεγγίσεις (Technical ή Non-Statistical Approaches): περιλαµβάνει λευκές και µαύρες λίστες (white and black lists), ψηφιακές υπογραφές και κανόνες φτιαγµένους χειροκίνητα. 32

34 Μηχανικής Μάθησης ή Στατιστικές Προσεγγίσεις (Machine Learning ή Statistical Approaches): περιλαµβάνει στατιστικές φιλοσοφικές αναλύσεις και αλγορίθµους µηχανικής µάθησης. Οι τεχνικές spam filtering µπορούν εναλλακτικά να οργανωθούν σε δύο άλλες κατηγορίες: Λύσεις βασισµένες στον διακοµιστή (Server based solutions): τα µηνύµατα φιλτράρονται στον ISP server. Λύσεις βασισµένες στον πελάτη (Client based solutions): τα µηνύµατα ταξινοµούνται στον υπολογιστή του χρήστη. Παρά το φανερό πλεονέκτηµα ότι στην πρώτη κατηγορία τα spam µηνύµατα δεν φθάνουν στον υπολογιστή του χρήστη, τα server based φίλτρα δεν είναι πάντα προσωποποιηµένα και έτσι ο χρήστης πρέπει να ελέγξει περιοδικά τον junk φάκελο στον server για να διαπιστώσει εάν υπάρχουν λάθος ταξινοµηµένα µηνύµατα. Στην βιβλιογραφία έχουν δοκιµαστεί πολλοί διαφορετικοί ταξινοµητές µηχανικής µάθησης. Παρακάτω παραθέτεται µία µικρή λίστα από αυτούς. Naïve Bayes [56] Memory-based Approaches [64] Boosting Techniques [66] Case-Based Reasoning [25] Support Vector Machines [67] Latent Semantic Indexing [23] Stacking Classifiers [65] Είναι πολύ δύσκολο να συγκρίνουµε αυτές τις µεθόδους καθώς γίνεται χρήση διαφορετικών συνόλων δεδοµένων και άλλης βελτιστοποίησης από τους αλγορίθµους. Παρόλα αυτά υπάρχει µία προτίµηση για τον ταξινοµητή Naïve Bayes κυρίως για την απλότητά του, την ευελιξία του, το µικρό υπολογιστικό του κόστος και την ικανοποιητική του απόδοση. Επιπλέον, το εξελιγµένο λογισµικό όπως το SpamAssasin συνήθως συνδυάζει τεχνικές από τις δύο κατηγορίες, την Στατιστική και την Μη Στατιστική. Μέχρι κάποιο σηµείο η µέθοδος του spam filtering µοιάζει µε την ταξινόµηση κει- µένων και µηνυµάτων ηλεκτρονικού ταχυδροµείου. Ωστόσο, υπάρχουν ορισµένα χαρακτηριστικά που διαχωρίζουν το spam filtering από τις άλλες µεθόδους ταξινόµησης. 33

35 Στο spam filtering τα λάθη που γίνονται στην ταξινόµηση δεν έχουν την ίδια σπουδαιότητα. Το να ταξινοµηθεί ένα χρήσιµο µήνυµα ως spam είναι πολύ πιο σοβαρό λάθος από το να επιτραπεί σε ένα µη χρήσιµο µήνυµα να περάσει από το φίλτρο. Έτσι, ένα µήνυµα θα θεωρείται spam µόνο εάν ο ταξινοµητής το προβλέπει µε µεγάλη σιγουριά. Για παράδειγµα, κατά την Naïve Bayes ταξινόµηση ένα µήνυµα e θα είναι spam µόνο εάν P(e=SPAM)>t, όπου t είναι ένα όριο κοντά στο 1 π.χ. 0,98. Το ίδιο συµβαίνει και µε την αξιολόγηση του αλγορίθµου. Ένα επιπόλαιο θετικό σφάλµα µπορεί να θεωρηθεί ως 100t αρνητικά σφάλµατα. Ένας άλλος διαχωρισµός είναι ότι στο spam filtering µπορεί πιθανότατα να χρησι- µοποιηθούν επιπλέον χαρακτηριστικά όπως πληροφορίες από τις επικεφαλίδες, µορφολογικά χαρακτηριστικά ή σηµάδια στίξης, τα οποία είναι σηµαντικοί δείκτες αφού υ- πάρχουν σε αφθονία στα µηνύµατα spam. ιάφορες τεχνικές προσεγγίσεις όπως οι λευκές και µαύρες λίστες είναι αναπόφευκτες καθώς οι spammers έχουν αρχίσει πλέον να βάζουν τυχαία αθώα κείµενα στα µηνύµατα για να παραπλανήσουν τους ταξινοµητές. Επιπλέον, οι κλάσεις στο spam filtering είναι περισσότερο ετερογενείς σε περιεχόµενο από ότι ένα τυπικό κείµενο ή ένα πρόβληµα ταξινόµησης µηνυµάτων, ώστε υπάρχουν πολλοί διαφορετικοί τύποι µηνυµάτων spam και πολλά διαφορετικά ευανάγνωστα µηνύµατα, γεγονός που καθιστά τη διαφορά ακόµα πιο δύσκολη. Ακόµη, οι spammers τείνουν να αλλάζουν τα χαρακτηριστικά των spam µηνυµάτων και έτσι γεννιέται η ανάγκη για συνεχή µάθηση. Παρόλο που µερικά από τα ήδη αναφερθέντα φίλτρα είναι σηµαντικά ακριβή, µερικά από αυτά παρουσιάζουν 99% επιτυχία µε ελάχιστες περιπτώσεις σφαλµάτων, δεν έχει βρεθεί ακόµη λύση στο πρόβληµα. Κάθε χρόνο πραγµατοποιούνται δύο συνέδρια, το Spam Conference ( ) και το Conference on and Anti-Spam ( ), στα οποία συγκεντρώνονται επιστήµονες και ακαδηµαϊκοί από όλο τον κόσµο όπου προτείνουν και συζητούν νέες ιδέες και λύσεις Αυτόµατη Οργάνωση Μηνυµάτων σε Φακέλους Η ανάπτυξη της χρήσης του ηλεκτρονικού ταχυδροµείου ανάγκασε τους χρήστες να αναζητήσουν τρόπους ώστε να οργανώσουν, να αρχειοθετήσουν και να διαχειρίζονται τα µηνύµατά τους πιο αποτελεσµατικά. Πολλοί από αυτούς οργανώνουν τα εισερχόµενα µηνύµατα σε ξεχωριστούς φακέλους. Οι φάκελοι µπορεί να χαρακτηρίζονται ανάλογα µε το θέµα όπως «δουλειά», «προσωπικά», «αστεία», µε διάφορα ονόµατα όπως 34

36 «Γιώργος», «Κώστας», ή ανάλογα µε µία οµάδα ανθρώπων όπως «συνάδελφοι», «οικογένεια», «φίλοι». Μερικοί χρήστες διευθετούν τα µηνύµατά τους ανάλογα µε την σπουδαιότητά τους και διατηρούν φακέλους µε ονοµασίες «επείγον», «για µελλοντική χρήση», «spam». Για να πραγµατοποιηθεί αυτό, οι χρήστες αναπτύσσουν ορισµένους κανόνες για να ταξινοµηθούν τα µηνύµατά τους. Αυτοί οι κανόνες αφορούν σε ευριστικές µεθόδους οι οποίες αναζητούν λέξεις κλειδιά στο µήνυµα και εκτελούν µια ενέργεια όπως αντιγραφή σε ένα φάκελο, διαγραφή ενός µηνύµατος, κ.α. Για παράδειγµα, έχου- µε κανόνες όπως: If (sender= John Smith OR sender= Mary Smith ) Then (moveinto FAMILY) If (body contains call for papers ) Then{ (moveinto CFP) (forwardto COLLEAGUES ) } όπου FAMILY και CFP είναι φάκελοι και COLLEAGUES είναι µια οµάδα ανθρώπων (πρακτικά είναι µία λίστα από διευθύνσεις του χρήστη). Στις µέρες µας, οι περισσότεροι clients υποστηρίζουν την δηµιουργία αυτών των κανόνων. Αυτό που έχει να προσφέρει η Μηχανική Μάθηση σε αυτήν την περίπτωση είναι η αυτόµατη ταξινόµηση των εισερχόµενων µηνυµάτων παρατηρώντας παλαιότερες και πρόσφατες ταξινοµήσεις που έχουν γίνει από τον χρήστη (µελετώντας για παράδειγµα ήδη υπάρχοντες φακέλους). Έτσι, δεν είναι αναγκαίο να δηµιουργήσει ο ίδιος ο χρήστης µόνος του τους κανόνες. Επιπλέον, οι αλγόριθµοι µηχανικής µάθησης είναι σε θέση να ταξινοµήσουν ένα µήνυµα λαµβάνοντας υπόψη το περιεχόµενό του και όχι µόνο ψάχνοντας για συγκεκριµένες λέξεις. Αυτό συνήθως πραγµατοποιείται συνδυάζοντας στατιστικές και γλωσσολογικές µεθόδους. Κάτι τέτοιο είναι ιδιαίτερα βολικό για τον χρήστη αφού υπάρχουν θέµατα όπως «µηνύµατα που αφορούν την δουλειά» ή «µηνύ- µατα που πρέπει να απαντηθούν σήµερα» ή «ενδιαφέροντα µηνύµατα» τα οποία δεν µπορούν εύκολα να περιγραφούν µε έναν απλό συνδυασµό λέξεων. Επιπρόσθετα, ο χρήστης µπορεί να αλλάζει αυτά τα θέµατα σε τακτά χρονικά διαστήµατα. Από την άλλη, ένας αλγόριθµος µηχανικής µάθησης µπορεί να µάθει να ταξινοµεί τα νέα µηνύµατα απλά παρατηρώντας προηγούµενα παραδείγµατα. Έχει πραγµατοποιηθεί εκτεταµένη έρευνα σε αυτό το πεδίο [28,29,17,38] και πολλές ιδέες έχουν οδηγήσει σε χρήσιµα εργαλεία [68,22,61]. 35

37 Το popfile [68] είναι ένα δηµοφιλές online εργαλείο για την ταξινόµηση µηνυµάτων ηλεκτρονικού ταχυδροµείου. ηµιουργήθηκε από τον John Graham-Cummings σε γλώσσα Perl και είναι εµπνευσµένο από το ifile [42]. Βρίσκεται µεταξύ του mail server και του client, ανακτώντας τα µηνύµατα από τον server, ταξινοµώντας τα και έπειτα στέλνοντάς τα στον client. Το popfile ξεκινάει τη λειτουργία του από το σηµείο µηδέν και σταδιακά όλα τα µηνύµατα καταλήγουν στον προκαθορισµένο φάκελο. Εάν ο χρήστης δηµιουργήσει έναν κάδο στον popfile και κατόπιν µετακινήσει ορισµένα µηνύµατα σε αυτόν, τότε ο popfile θα µάθει πώς να ταξινοµεί παρόµοια µηνύµατα. Οι χρήστες έχουν την δυνατότητα να δηµιουργούν, να καταστρέφουν ή να συγχωνεύουν κάδους οποιαδήποτε στιγµή θέλουν. Φυσικά, ο popfile αποδίδει ελάχιστα στην αρχή καθώς υ- πάρχουν λίγα µόνο παραδείγµατα από τα οποία µπορεί να µάθει, αλλά τα αποτελέσµατα δείχνουν πως υπάρχει κατά µέσο όρο µια ακρίβεια 98,7% µετά από 500 µηνύµατα. Ο popfile βάζει σε εφαρµογή έναν κατηγοριοποιητή Bayesian χρησιµοποιώντας µια προσέγγιση bag-of-words και προσθέτοντας µερικά χαρακτηριστικά που έχουν φτιαχτεί χειροκίνητα, όπως η ύπαρξη html κώδικα, κυρίως για να βελτιώσει τις ικανότητες του spam filtering. Αυτό γίνεται κυρίως γιατί οι spammers χρησιµοποιούν τεχνικές όπως την εισαγωγή τυχαίου κειµένου στα spam µηνύµατα ώστε να παραπλανήσουν τον ταξινοµητή Naïve Bayes. Ένα άλλο εργαλείο ταξινόµησης είναι το SwiftFile γνωστό και ως MailCat [69] το οποίο αναπτύχθηκε από την IBM Research [61] και δίνει έµφαση στην ανάγκη για ο- λοένα και αυξανόµενη γνώση. Με κάθε καινούρια άφιξη µηνύµατος το SwiftFile προβλέπει τρεις φακέλους προορισµού. Έπειτα τοποθετεί τρία κουµπιά πάνω στο µήνυµα έτσι ώστε ο χρήστης να το στείλει γρήγορα σε έναν από τους φακέλους. Ο SwiftFile χρησιµοποιεί έναν ταξινοµητή τύπου TF-IDF και ειδικότερα έναν αλγόριθµο k Nearest Neighbor µε χρήση TF-IDF βαρών [58] ο οποίος έχει τροποποιηθεί ώστε να υποστηρίζει αυξανόµενη γνώση και αναπαράσταση bag-of-words χρησιµοποιώντας τις συχνότητες των λέξεων στο µήνυµα σαν βάρη. Κάθε φάκελος F αναπαρίσταται από ένα κεντροειδή διάνυσµα το οποίο υπολογίζεται λαµβάνοντας υπόψη όλα τα µηνύµατα του φακέλου. Κατόπιν, υπολογίζεται η οµοιότητα µεταξύ του διανύσµατος και ενός καινούριου µηνύµατος και το σύστηµα προτείνει τους τρεις πιθανούς φακέλους. Τα κεντροειδή κάθε φακέλου ξαναυπολογίζονται µετά από µία νέα ταξινόµηση. 36

38 Άλλες ενδιαφέρουσες εφαρµογές λογισµικού είναι το EMMA[22] το οποίο χρησι- µοποιεί πολλαπλή ταξινόµηση Ripple Down Rules [70] και το sift [71] το οποίο χρησιµοποιεί µια προσέγγιση based mining γραφήµατος. Παρόλα αυτά απαιτείται ακόµη η συµµετοχή των χρηστών στο να αποφασίσουν και να δηµιουργήσουν τα θέµατα των φακέλων για την ταξινόµηση. Αυτό το βήµα θα µπορούσε να αποφευχθεί χρησιµοποιώντας την οµαδοποίηση των µηνυµάτων. Για παράδειγµα, ένας προσωπικός browser δηµιουργείται ανακαλύπτοντας τις οµάδες µηνυµάτων στο inbox του χρήστη. Στη συνέχεια, αφού αναλυθούν τα µηνύµατα, διαλέγεται µία φράση η οποία αντιπροσωπεύει το περιεχόµενο των φακέλων και η οποία θα βοηθήσει ώστε να ονοµατιστεί ο φάκελος µε µία λέξη κλειδί. Χρησιµοποιούνται διανύσµατα TF-IDF για να αναπαρασταθούν τα µηνύµατα και ο αλγόριθµος K-Means για την οµαδοποίηση. Ο Manco et al. [38] εξέτασε τα ίδιο πρόβληµα, λαµβάνοντας υπόψη τις οµοιότητες δοµηµένων και µη δοµηµένων κοµµατιών ενός ηλεκτρονικού µηνύµατος. 37

39

40 4 Η πλατφόρµα Mozilla Η πλατφόρµα του Mozilla είναι ισχυρό εργαλείο ανάπτυξης λογισµικού το οποίο αποτελεί έναν συνδυασµό από έγγραφα XML, scripting γλώσσες και αντικείµενα λογισµικού. Χρησιµοποιείται κυρίως για να δηµιουργηθούν εφαρµογές οι οποίες αλληλεπιδρούν και στηρίζονται στον χρήστη. Η πλατφόρµα του ενθαρρύνει ένα συγκεκριµένο στυλ ανάπτυξης, το rapid application development ( RAD ). Με τη βοήθεια του RAD οι προγραµµατιστές στηρίζουν τις εφαρµογές τους σε ένα εργαλείο ανάπτυξης το οποίο περιέχει ήδη υπάρχουσες λειτουργικότητες. Με ένα τέτοιο εργαλείο όπως είναι ο Mozilla οι διάφορες εργασίες µπορούν να ολοκληρωθούν σε σύντοµο χρονικό διάστη- µα. 4.1 Η διεπαφή του Mozilla Η διεπαφή (interface) του mozilla αποτελείται από αρχεία XUL, XBL, JavaSsript, CSS καθώς και από αρχεία εικόνων. Τα αρχεία XUL, XBL, JavaScript όπως και το CSS βρίσκονται σε µορφή κειµένου και µπορούν να δηµιουργηθούν µε ένα απλό text editor, ενώ τα αρχεία εικόνων είναι σε δυαδική GIF, JPG ή PNG µορφή και µπορούν να επεξεργαστούν µε ένα πρόγραµµα εικόνων. Στη συνέχεια τα αρχεία αυτά οργανώνονται σε ένα σύνολο από JAR αρχεία. Τα JAR αρχεία δεν είναι τίποτα άλλο από ZIP αρχεία τα οποία περιέχουν ένα ειδικά φορ- µαρισµένο manifest φάκελο. Μέσα στον φάκελο αυτό βρίσκονται τα περιεχόµενα κάθε αρχείου ώστε να έχει την δυνατότητα ο Mozilla να γνωρίζει το τι πραγµατοποιεί το κάθε αρχείο. Παρόλο που τα JAR αρχεία είναι δυαδικοί φάκελοι, η διεπαφή χρήστη του Mozilla δεν µεταγλωττίζεται σε κώδικα µηχανής. Αντί για αυτό, ο Mozilla δηµιουργεί τη δικιά του διεπαφή χρήστη από τους µη µεταγλωττιζόµενους φακέλους µέσα στο αρχείο κάθε φορά που ξεκινάει η λειτουργία. Εξαιτίας αυτού του γεγονότος, µπορούµε να τροποποιήσουµε τους φακέλους µέσα στο αρχείο και έπειτα να δούµε µερικά τις αλλαγές µας στην διεπαφή του χρήστη απλά µε επανεκκίνηση της εφαρµογής. Αυτό δίνει την δυνατότητα στην διεπαφή του Mozilla να είναι πολύ εύκολα τροποποιήσιµη. 39

41 Η διεπαφή χρήστη του Mozilla χωρίζεται σε τρία επίπεδα: τη δοµή, τη µορφή και τη συµπεριφορά. Το επίπεδο της δοµής αναγνωρίζει τα χαρακτηριστικά όπως το µενού, τα κουµπιά κ.τ.λ. και τη θέση τους στην διεπαφή. Το επίπεδο της µορφής καθορίζει πως τα χαρακτηριστικά αυτά θα δείχνουν δηλαδή το µέγεθος, το χρώµα, το στυλ και την γενική τους θέση και παράταξη. Το επίπεδο της συµπεριφοράς φανερώνει το πώς τα χαρακτηριστικά αυτά θα λειτουργούν και πως ο χρήστης θα µπορεί να τα χρησιµοποιήσει για να πετύχει τους σκοπούς του. Και τα τρία επίπεδα δεν είναι τελείως ξεχωριστά το ένα από το άλλο. Συγκεκριµένα, πληροφορίες για τη θέση των χαρακτηριστικών µπορούν να καθοριστούν και στο επίπεδο της δοµής και στο επίπεδο της µορφής, ενώ πληροφορίες για τη συµπεριφορά µπορούν να δηλωθούν στο επίπεδο της µορφής. [5] XPCOM To Cross Platform Component Object Model ( XPCOM ) είναι µία απλή πλατφόρµα η οποία διασταυρώνει διαφορετικά µοντέλα. Περιέχει συνδυασµούς διαφορετικών γλωσσών προγραµµατισµού (language bindings) και IDL ( Interface Description Language ) περιγραφές έτσι ώστε οι προγραµµατιστές να έχουν τη δυνατότητα να συνδέσουν ένα δικό τους προϊόν µε άλλα στοιχεία. Μια XPCOM language binding θεωρείται ως η «γέφυρα» ανάµεσα σε µία συγκεκριµένη γλώσσα και στο XPCOM για να επιτευχθούν δύο στόχοι: Πρόσβαση στα αντικείµενα XPCOM από την συγκεκριµένη γλώσσα. Με τον όρο πρόσβαση εννοούµε την ανάγνωση, την εγγραφή και την δηµιουργία αντικειµένων όπως επίσης και την δυνατότητα να καλούνται διάφορες µέθοδοι. Εκθέτει διάφορα modules τα οποία έχουν γραφτεί και έτσι µπορούν όλες οι άλλες γλώσσες να τα χρησιµοποιήσουν. Εφόσον, το επίπεδο XPCOM έχει γραφτεί σε C/C++ το API του µπορεί να προσπελαστεί µόνο από αυτές τις γλώσσες. Για να έχουν πρόσβαση στο API όλες οι άλλες γλώσσες θα πρέπει να δηµιουργηθούν άλλες µέθοδοι. Τέτοιες µέθοδοι υπάρχουν για διάφορες γλώσσες όπως: Java : JavaXPCOM JavaScript : XPConnect Perl : PlXPCOM Python : PyXPCOM 40

42 Ruby : RbXPCOM Το XPIDL είναι µία γλώσσα περιγραφής διεπαφής ( Interface Description Language ) η οποία χρησιµοποιείται για να καθορίσει τις κλάσεις XPCOM της διεπαφής. Το IDL ξεχωρίζει ποιες διεπαφές µπορούν να επεξεργαστούν από εργαλεία έτσι ώστε να δηµιουργηθούν ανάλογες διεπαφές οι οποίες θα σχετίζονται µε την κάθε γλώσσα. Ένα από αυτά τα εργαλεία είναι το xpidl το οποίο βοηθάει στη δηµιουργία: C++ header files (.h ) τα οποία περιλαµβάνουν µια φόρµα υλοποίησης της C++ για τη διεπαφή XPConnect typelib φακέλους (.xpt) οι οποίοι περιέχουν πληροφορίες για όλα τα αντικείµενα XPCOM φακέλους για την Java (.java ) τεκµηρίωση (documentation) σε µορφή HTML (.html ) [5,6] XPCOM Objects Η πλατφόρµα του Mozilla θεωρείται ως η βάση για να δηµιουργηθούν εφαρµογές λογισµικού και περιέχει µία βιβλιοθήκη αντικειµένων αποτελούµενη από χιλιάδες αντικεί- µενα ( objects ), πολλά από τα οποία δεν σχετίζονται µε την διεπαφή του χρήστη. Η βιβλιοθήκη αυτή περιέχει κυρίως XPCOM στοιχεία. Χωρίς τα στοιχεία αυτά οποιαδήποτε εφαρµογή του χρήστη «παγιδεύεται» µόνο σε ένα έγγραφο XML, το οποίο µπορεί να είναι της µορφής HTML ή XUL. Μέσα σε ένα τέτοιο έγγραφο οι µηχανισµοί URL, HTTP, SOAP και WSDL είναι οι µόνοι που δεν υποστηρίζονται. Τα στοιχεία XPCOM είναι αυτά που παρέχουν όλη την υποστήριξη για τα δίκτυα, τις βάσεις δεδοµένων, τα αρχεία και τις διάφορες διεργασίες. Επιπλέον, είναι διαθέσιµα σε όλες τις πλατφόρµες στις οποίες εκτελείται ο Mozilla και µπορούν να προσπελαστούν µε ελάχιστες εξαιρέσεις. Τα στοιχεία XPCOM του Mozilla είναι παρόµοια µε τις βιβλιοθήκες 3GL (third Generation Language) και OO (Object Oriented). Όπως οι γλώσσες C++ και Java υποστηρίζουν τη συνεχή ροή δεδοµένων και όπως η C, η Perl και πολλές άλλες στηρίζονται στους φακέλους, το ίδιο συµβαίνει και µε τον Mozilla. O Mozilla περιέχει ένα σύνολο από χαµηλού επιπέδου αντικείµενα, ένα σύνολο από µεσαίου επιπέδου αντικείµενα και µερικά υψηλού επιπέδου τα οποία είναι αποκλειστικά για εφαρµογές. Η πλατφόρµα του είχε αρχικά σχεδιαστεί για να υποστηρίξει µια εφαρµογή Web browser και δεν παρου- 41

43 σίαζε την επεκτασιµότητα και την σχεδίαση γενικού σκοπού που συναντάµε στις βιβλιοθήκες Java. Ο αριθµός των αντικειµένων του Mozilla είναι σηµαντικά µεγάλος και πλησιάζει το µέγεθος της Perl βιβλιοθήκης. Ένα δεύτερο χαρακτηριστικό των αντικειµένων είναι ότι είναι δίκτυο-κεντρικά. Ο Navigator, ο Messenger και οι εφαρµογές Chat είναι όλες Internet clients που αλληλεπιδρούνε µε servers και αυτό αντικατοπτρίζεται στη βιβλιοθήκη αντικειµένων. Μερικές απλές εφαρµογές, όπως το φόρτωµα ενός φακέλου, γίνονται πολύπλοκες γιατί ο φάκελος µπορεί να βρίσκεται σε οποιοδήποτε σηµείο του κόσµου. Αυτό σίγουρα επηρεάζει τις διεπιφάνειες που χρησιµοποιούνται οι οποίες περιορίζονται από το σύστηµα ασφάλειας του Mozilla. Εάν µία εφαρµογή δεν είναι ένας Web browser, ένας client ή ένα σύστηµα XML, τότε τα αντικείµενα του Mozilla πάλι θα είναι χρήσιµα, απλά µερικά πολύ εξειδικευµένα µπορεί και να µην χρησιµοποιηθούν καθόλου. Από την άλλη µεριά, εάν µία εφαρµογή περιέχει λειτουργίες που σχετίζονται µε έναν browser, τότε τα συγκεκριµένα αντικείµενα έχουν τη δυνατότητα να βελτιώσουνε τις διεργασίες. [5] Modular Προγραµµατισµός Η πλατφόρµα του Mozilla χωρίζει την τεχνολογία σε κοµµάτια µε διάφορους τρόπους και σχεδόν κάθε κοµµάτι του λογισµικού χρησιµοποιείται από τον Mozilla. Τα κοµµάτια αυτά είναι : Binding : το binding είναι µια διεπαφή η οποία δηµιουργείται µε µία συγκεκρι- µένη γλώσσα προγραµµατισµού. Class : οι µόνες κλάσεις στον Mozilla είναι οι κλάσεις του XPCOM. Component : ένα component είναι ένα στοιχείο µε µοναδική ταυτότητα στο σύστηµα XPCOM. Interface : ένα interface είναι ένα σύνολο από στοιχεία πρόσβασης σε ένα αντικείµενο. Τα XPCOM interfaces είναι τα µόνα interfaces στον Mozilla. Κάθε XPCOM αντικείµενο και κάθε XBL binding υλοποιούν ένα ή περισσότερα XPCOM interfaces. Επίσης και τα αντικείµενα Javascript µπορούν να δηµιουργήσουν τέτοια interfaces. Library : η πλατφόρµα του Mozilla έχει ένα µεγάλο αριθµό από δυναµικά ενεργές βιβλιοθήκες, παρόλα αυτά δεν χρησιµοποιούνται σε µεγάλο βαθµό από τους προγραµµατιστές. Τα Javascript scripts µπορούν να χρησιµοποιηθούν σαν βι- 42

44 βλιοθήκες. Όταν η πλατφόρµα µεταγλωττίζεται, δηµιουργούνται αυτόµατα φάκελοι δεδοµένων τα οποία είναι τύποι βιβλιοθήκης. Αυτοί οι φάκελοι χρησιµοποιούνται από το XPConnect και καθορίζουν XPCOM interfaces ( π.χ οι JavaScript βιβλιοθήκες). Module : τα XPCOM components οµαδοποιούνται σε modules. Object : o Mozilla περιέχει XPCOM objects και Javascript objects ( αντικείµενα). Ένα XPCOM object είναι µιας συγκεκριµένης κλάσης και υλοποιεί ένα ή περισσότερα interfaces. Package : το package είναι µία οµάδα από σχετικούς µεταξύ τους φακέλους οι οποίοι εγκαθίστανται στο chrome του Mozilla (π.χ. το package content). Prototype : είναι ένα Javascript object το οποίο θεωρείται ως η βάση για να δη- µιουργηθεί ένα νέο Javascript object. [5,6] Άλλα συστήµατα Το XPCOM σύστηµα δίνει Javascript πρόσβαση και σε άλλα προγραµµατιστικά περιβάλλοντα, τα οποία παρουσιάζουν διαφορετικά χαρακτηριστικά. Έτσι, είτε αυτά τα χαρακτηριστικά για να χρησιµοποιηθούν από τον Mozilla θα πρέπει να µετατραπούν σε Javascript τύπους είτε θα πρέπει να παρέχουν κάποια χρήσιµη διεπαφή. Υπάρχουν πέντε «ξένα» συστήµατα στον Mozilla στα οποία η γλώσσα Javascript έχει πρόσβαση : Τα fundamental platform types τα οποία υλοποιούνται από την NSPR ( Netscape Portable Runtime ). Αυτοί είναι τύποι C/C++ µε την βοήθεια των οποίων έχει δοµηθεί η πλατφόρµα. Η NSPR παρέχει µια ουδέτερη πλατφόρµα API και βιβλιοθήκες σε µορφή συναρτήσεων. Το API χρησιµοποιείται από τον Mozilla client και από άλλα λειτουργικά συστήµατα. Τα RDF data types. Είναι τύποι που ο Mozilla αναγνωρίζει σε RDF αρχεία. Τα XML schema data types. Ο Mozilla έχει τη δυνατότητα να αναλύσει φακέλους που έχουν αυτή τη δοµή και µπορεί να αναγνωρίσει τους διάφορους τύπους που περιλαµβάνουν αυτοί οι φάκελοι. Τα XML RPC/XDR (Remote Procedure Call/ External Data Representation). Το RPC- over- XML πρωτόκολλο δικτύου υποστηρίζεται από τον Mozilla, το οποίο περιλαµβάνει ανεξάρτητους XDR τύπους δεδοµένων. 43

45 Java. Ένα Java JVM µπορεί να εκτελεστεί ως ένα plugin της πλατφόρµας του Mozilla σε αντικείµενα τύπου Java. [6] 4.2 Η γλώσσα XUL Η γλώσσα XUL ( XML User-interface Language ) είναι µία πλατφόρµα όπου βοηθάει στην περιγραφή της διεπαφής χρήστη διαφόρων εφαρµογών. ηµιουργήθηκε για να βοηθήσει στην ευκολότερη και γρηγορότερη ανάπτυξη του Mozilla browser. Είναι µία γλώσσα XML και έτσι όλα τα χαρακτηριστικά που διακρίνουν την XML τα συναντάµε και στην XUL. Χρειάζεται αρκετός χρόνος για να δηµιουργηθεί µία εφαρµογή έστω και για µία µόνο πλατφόρµα. Ο χρόνος που απαιτείται για να µεταγλωττιστεί και να αποσφαλµατωθεί µπορεί να είναι ακόµη µεγαλύτερος. Η XUL είναι µία γλώσσα που σχεδιάστηκε ειδικά για να συµβάλει στην δηµιουργία φορητών διεπαφών χρήστη αφού µία διεπαφή µπορεί να υλοποιηθεί και τροποποιηθεί ευκολότερα και γρηγορότερα. Η XUL παρέχει την δυνατότητα να δηµιουργηθούν στοιχεία τα οποία τα συναντάµε σε µοντέρνες διεπαφές γραφικών. Τα στοιχεία αυτά µπορεί να είναι : Textboxes και checkboxes Toolbars µε κουµπιά και άλλα περιεχόµενα Μενού σε ένα menu bar ή pop up menus Tabbed dialogs έντρα για ιεραρχική ή πινακοειδή πληροφορία Συντοµεύσεις πληκτρολογίου Υπάρχουν διάφοροι τρόποι µε τους οποίους δηµιουργούνται εφαρµογές XUL : Firefox extension ένα extension προσθέτει λειτουργικότητα στον browser, συχνά µε τη µορφή επιπλέον toolbars, µενού περιεχοµένων ή δηµιουργώντας διεπαφές χρήστη οι οποίες προσαρµόζονται στην διεπαφή χρήστη του browser. Αυτό επιτυγχάνεται χρησιµοποιώντας ένα χαρακτηριστικό από την XUL, το overlay το οποίο επιτρέπει σε µία διεπαφή χρήστη η οποία παρέχεται από µία πηγή, στην συγκεκριµένη περίπτωση από τον Firefox browser, να ενώνεται µε την διεπαφή χρήστη του extension. Τα extensions είναι επίσης συµβατά µε άλλα προϊόντα που βασίζονται στον Mozilla όπως το Thunderbird. 44

46 Standalone XULRunner application XULRunner είναι µία έκδοση της πλατφόρµας του Mozilla η οποία δηµιουργεί εφαρµογές standalone XUL. εν απαιτείται browser για να λειτουργήσουν αυτές οι εφαρµογές καθώς έ- χουν το δικό τους εκτελέσιµο αρχείο. XUL package είναι εφαρµογές οι οποίες δηµιουργούνται µε τον ίδιο τρόπο όπως ένα extension αλλά ενεργούν σαν µια ξεχωριστή εφαρµογή σε ένα ξεχωριστό παράθυρο. Χρησιµοποιούνται όταν δεν απαιτείται το µέγιστο µέγεθος ολόκληρης της XULRunner εφαρµογής. Remote XUL application µπορούµε επίσης να τοποθετήσουµε κώδικα XUL σε έναν web browser και να το ανοίξουµε σε έναν άλλο browser όπως θα κάναµε µε µία web σελίδα. Παρόλα αυτά, αυτή η µέθοδος είναι περιορισµένη σε χρήση αφού εµφανίζονται διάφορα προβλήµατα ασφάλειας τα ο- ποία δεν µας επιτρέπουν να εκτελέσουµε πολλές εφαρµογές. Οι τρεις πρώτοι τύποι απαιτούν να πραγµατοποιηθεί µια εγκατάσταση στην µηχανή του χρήστη. Ωστόσο, αυτές οι εφαρµογές δεν έχουν περιορισµούς α- σφαλείας και έτσι µπορούν να έχουν πρόσβαση σε τοπικούς φακέλους και να γράψουν προτιµήσεις (preferences). Για τα extensions οι φάκελοι XUL, τα σχετικά scripts και οι εικόνες που χρησιµοποιούνται σε µία εφαρµογή πακετάρονται σε έναν φάκελο και εγκαθίστανται από τον χρήστη. Οι εφαρµογές του Mozilla παρέχουν έναν extension manager ο οποίος επιτρέπει στα πακέτα να εγκαθίστανται χωρίς να απαιτείται πολύπλοκος κώδικας. Επίσης, υπάρχει η δυνατότητα να ανοίξουµε τους φακέλους XUL απευθείας από το σύστηµα αρχείων ή από ένα αποµακρυσµένο web site. Ωστόσο, το είδος των λειτουργών που θα εκτελούνται θα είναι περιορισµένο και µερικές εφαρµογές δεν θα είναι διαθέσιµες. [7] 4.3 Τα αρχεία RDF Το RDF ( Resource Description Framework ) είναι ένα format το οποίο χρησιµοποιείται για να αποθηκεύονται διάφορες πηγές όπως bookmarks ή το ηλεκτρονικό ταχυδροµείο. Εναλλακτικά, δεδοµένα σε άλλα formats µπορούν να χρησιµοποιηθούν και να γραφτεί κώδικας ο οποίος θα διαβάζει το αρχείο και θα δηµιουργούνται δεδοµένα RDF από αυτόν. Αυτός είναι ο τρόπος που ο Mozilla λειτουργεί όταν διαβάζει δεδοµένα ό- 45

47 πως bookmarks, ιστορικά ή mail messages. Ο Mozilla παρέχει datasources για αυτά τα απλά δεδοµένα κι έτσι είναι πολύ εύκολο να χρησιµοποιηθούν. Ο Mozilla χρησιµοποιεί τα RDF για να εκτελέσει λειτουργίες όπως : Επιλογές του χρήστη για τα παράθυρα και τη σχετική τους θέση. Περιεχόµενα του Mozilla sidebar. Manifest φακέλους για τα αρχεία JAR, τα πακέτα chrome, locale και skin. Βάσεις δεδοµένων για τις εφαρµογές διεπαφής. Τύπους αναζήτησης για το Smart Browsing Navigator. Αναζήτηση και έλεγχο καταστάσεων του DOM Inspector. Τον Download Manager. Τύπους MIME ( Multipurpose Internet Mail Extensions ). Η υποδοµή του Mozilla χρησιµοποιεί τα δεδοµένα RDF σε ένα µεγάλο πλήθος διεργασιών χωρίς να χρειάζεται απαραίτητα να διαβάζει τα δεδοµένα κάθε φορά από τα έγγραφα RDF. Επίσης, έχει την δυνατότητα να µετατρέψει µια πηγή που δεν είναι σε αυτή την µορφή σε RDF αρχείο για εσωτερική χρήση. Τα µέρη του συστήµατος στα οποία το RDF µοντέλο έχει µεγάλη σηµασία είναι : Το σύστηµα XUL Overlay. Το σύστηµα XUL Template. Αρχεία και φακέλους στο τοπικό σύστηµα φακέλων. Bookmarks. Ιστορικό των ιστοσελίδων πλοήγησης. Πρόσφατα χρησιµοποιούµενα παράθυρα. φακέλους. Τα µηνύµατα των φακέλων. Παράδοση SMTP µηνυµάτων. Λογαριασµούς και Newsgroup. Ήχους που σχετίζονται µε την άφιξη µηνυµάτων. Το address book. To Mozilla registry. 46

48 Υπάρχουν και διεργασίες οι οποίες δεν χρησιµοποιούν τα αρχεία RDF όπως οι βάσεις δεδοµένων των newsgroups ή των επικεφαλίδων τους, οι βάσεις δεδοµένων των φακέλων και η µόνιµη αποθήκευση των συνδέσεων του Internet. Μπορούν να χρησιµοποιηθούν οποιαδήποτε από τα παρεχόµενα RDF datasources για να εισάγουµε δεδοµένα στα δέντρα ή µπορούµε να χρησιµοποιήσουµε έναν φάκελο RDF ο οποίος είναι αποθηκευµένος σε XML και περιέχει δεδοµένα. Έτσι είναι δυνατόν να δηµιουργηθούν δέντρα µε πολλές σειρές σε αυτά. Τα RDF µπορούν επίσης να σχετίζονται µε άλλα XUL στοιχεία όπως listboxes και διάφορα µενού. Το RDF αποτελείται από ένα µοντέλο το οποίο είναι γραφική απεικόνιση δεδοµένων. Η RDF/ XML είναι µία γλώσσα XML η οποία χρησιµοποιείται για να απεικονίσει τα δεδοµένα RDF και η οποία περιέχει µία απλή οµάδα στοιχείων. [5,6,7] 4.4 Το λογισµικό Thunderbird Το thunderbird είναι µια πλήρης εφαρµογή για το ηλεκτρονικού ταχυδροµείο, εύκολη στη χρήση, δυναµική η οποία µπορεί να προσαρµοστεί εύκολα στις απαιτήσεις του χρήστη. Υποστηρίζει τα πρωτόκολλα IMAP και POP καθώς και τη µορφή HTML και ο κάθε χρήστης µπορεί πολύ εύκολα να εισάγει τους ήδη υπάρχοντες λογαριασµούς ηλεκτρονικού ταχυδροµείου και τα µηνύµατά του. Μερικά από τα χαρακτηριστικά του είναι η γρήγορη και εύκολη αναζήτηση, ο έλεγχος της ορθογραφίας κατά τη διάρκεια της πληκτρολόγησης, το φιλτράρισµα των µηνυµάτων, η διαγραφή των attachments. Κάθε ηλεκτρονικό µήνυµα που λαµβάνει ο χρήστης περνάει από τα ειδικά δια- µορφωµένα junk mail φίλτρα του Thunderbird. Κάθε φορά που ένα µήνυµα µαρκάρεται ως spam, το Thunderbird βελτιώνει το φιλτράρισµά του έτσι ώστε να δίνεται περισσότερη έµφαση στην ανάγνωση των πιο σηµαντικών µηνυµάτων. Επιπρόσθετα, το thunderbird προστατεύει τους χρήστες από τα συνηθισµένα παραπλανητικά µηνύµατα scams (απάτη) γνωστά και ως «phishing» τα οποία προ- 47

49 σπαθούν να τους ξεγελάσουν εκµαιεύοντας προσωπικές πληροφορίες και πληροφορίες σχετικές µε διάφορους κωδικούς ασφαλείας. Αυτό που κάνει είναι να ενηµερώνει τον κάθε χρήστη κάθε φορά που θεωρεί πως ένα µήνυµα είναι scam. Επίσης, παρέχει αυξη- µένη ασφάλεια αφού περιλαµβάνει χαρακτηριστικά όπως S/MIME, ψηφιακές υπογραφές, κρυπτογράφηση µηνυµάτων. Ακόµη, τα διάφορα attachments ποτέ δεν εκτελούνται χωρίς την συγκατάθεση του χρήστη, προστατεύοντάς τον έτσι από πολλούς ιούς. Ένα από τα θετικά στοιχεία του thunderbird είναι ότι φορτώνει αυτόµατα πρόσφατες ενηµερώσεις για την ασφάλεια του συστήµατος και για τα διάφορα χαρακτηριστικά του και ειδοποιεί τους χρήστες πότε είναι έτοιµες να εγκατασταθούν. Επίσης, µε τα διάφορα extension που υπάρχουν µπορεί ο κάθε χρήστης να προσθέσει καινούρια κου- µπιά στο toolbar, να του προσδώσει νέα χαρακτηριστικά ή να αλλάξει την εµφάνιση του browser. Με αυτόν τον τρόπο ο κάθε χρήστης καθορίζει την όψη και τη λειτουργικότητα του thunderbird. [8,9,44,45,46] Παρακάτω παρουσιάζεται µια εικόνα της διεπαφής χρήστη του thunderbird. Εικόνα 3. ιεπαφή χρήστη του Thunderbird 48

50 5 Extensions Τα extensions είναι µικρές επιπροσθέσεις οι οποίες προσδίδουν καλύτερη και νέα λειτουργικότητα σε εφαρµογές Mozilla. Μπορούν να προσθέσουν οτιδήποτε, από ένα α- πλό κουµπί στην εργαλειοθήκη έως και ένα εντελώς διαφορετικό χαρακτηριστικό. Επιπλέον, δίνουν στις εφαρµογές την δυνατότητα να τροποποιηθούν ώστε να ταιριάζουν στις προσωπικές ανάγκες του κάθε χρήστη ενώ καθιστούν την ίδια την εφαρµογή να έχει το µικρότερο δυνατό µέγεθος. Ένα από τα µεγαλύτερα πλεονεκτήµατα των extensions είναι ότι δεν χρειάζεται ο χρήστης να είναι ειδικός και να έχει πολλές γνώσεις για το πώς ολόκληρο το προϊόν είναι σχεδιασµένο ώστε να συντάξει από µόνος του ο ίδιος ένα απλό Ο Mozilla Thunderbird και τα extensions Το thunderbird εγκαθίστανται χωρίς κάποιο extension. Η εγκατάσταση ενός extension γίνεται σχετικά εύκολα. Ο χρήστης, από το κεντρικό παράθυρο του thunderbird, επιλέγει Tools>Extensions και εµφανίζεται από εκεί το Extensions dialog. Εικόνα 4.Η εγκατάσταση ενός extension Μερικά extensions δεν υποστηρίζουν όλες τις εκδόσεις του thunderbird. Παρόλα αυτά δεν είναι επικίνδυνο να εγκατασταθεί ένα τέτοιο extension. [9,45] 49

51 5.2 ηµιουργία ενός extension Τα extensions πακετάρονται και διανέµονται σε φακέλους ZIP έχοντας ως κατάληξη στην ονοµασία φακέλου το xpi. Η µορφή του περιεχοµένου σε έναν xpi φάκελο είναι η εξής : extension.xpi : / install.rdf / components/* / components/ cmdline.js / defaults/* / defaults/ preferences/*.js / plugins/* / chrome.manifest / chrome/ icons/ default/* / chrome/* / chrome/ content/ Αν και όπως φαίνεται από την παραπάνω δοµή υπάρχει ένα πλήθος αρχείων, οι προγραµµατιστές συνήθως δηµιουργούν µόνο τα αρχεία install.rdf, chrome.manifest και τον φάκελο chrome µε τα συστατικά του. Κι αυτό γιατί όλα τα υπόλοιπα αρχεία πραγ- µατοποιούν πιο εξειδικευµένες και πολύπλοκες λειτουργίες οι οποίες στα απλά extensions δεν είναι ιδιαίτερα χρήσιµες. Αρχικά, δηµιουργούµε κάπου στον σκληρό δίσκο έναν φάκελο για το extension που θα δηµιουργήσουµε. Για παράδειγµα : C : \ extensions \ myextension \ Μέσα σε αυτόν τον φάκελο δηµιουργούµε έναν καινούριο ο οποίος ονοµάζεται chrome και στη συνέχεια µέσα στον φάκελο chrome δηµιουργούµε έναν άλλον ο οποίος λέγεται content. Μέσα στον myextension φάκελο και παραλλήλως του φακέλου chrome δηµιουργούµε δύο νέα άδεια αρχεία κειµένου. Το ένα θα ονοµαστεί chrome.manifest και το άλλο θα ονοµαστεί install.rdf. [10] 50

52 +- myextension/ +-install.rdf +-chrome.manifest +-chrome/ +-content/ Τα πακέτα (packages) και τα αρχεία manifest Ένα package είναι ένα σύνολο από XUL αρχεία και scripts τα οποία καθορίζουν την λειτουργικότητα µιας διεπαφής χρήστη. Τα πακέτα µπορεί να εγκαθίστανται στον Mozilla και να αναφέρονται µε chrome URLs. Επίσης µπορεί να περιέχουν οποιοδήποτε είδος φακέλων και µπορούν να χωριστούν σε subdirectories. Ένα πακέτο αποθηκεύεται είτε σαν ένα directory είτε σαν ένα αρχείο JAR. Ένας φάκελος manifest περιγράφει ένα πακέτο και φανερώνει την τοποθεσία του στον δίσκο σε ένα chrome URL. Οι φάκελοι αυτοί στο chrome directory εξετάζονται όταν ξεκινάει µια εφαρµογή του Mozilla για να εξακριβωθεί τι πακέτα έχουν εγκατασταθεί. Αυτό που απαιτείται για να εγκατασταθεί ένα νέο πακέτο είναι να προστεθεί ένας νέος φάκελος manifest είτε στο chrome directory της εφαρµογής είτε στο συγκεκριµένο chrome directory του χρήστη. Αυτό είναι και το chrome directory το οποίο χρησιµοποιείται συνήθως. [9,11] Το αρχείο chrome Το chrome αρχείο είναι τα µέρη µιας εφαρµογής που αποτελούν το παράθυρο στην επιφάνεια του χρήστη. Οι εργαλειοθήκες, η γραµµή του µενού, τα progress bars είναι όλα παραδείγµατα στοιχείων που είναι µέρη του chrome. Οι φάκελοι XUL µπορούν να αναφερθούν σαν HTTP URL όπως οι φάκελοι HTML. Ωστόσο, τα πακέτα που εγκαθίστανται στο chrome του Mozilla αναφέρονται ως chrome URLs. Η βασική σύνταξη ενός chrome είναι η ακόλουθη: chrome : // < package name > / < part > / < file. xul > 51

53 Το <package name > είναι το όνοµα του πακέτου όπως messenger ή editor. Το < part > είναι είτε content, είτε skin, είτε locale και εξαρτάται από πιο µέρος θέλουµε. Το file.xul είναι απλά το όνοµα του αρχείου Το πακέτο content Το πακέτο αυτό σχετίζεται µε τα παράθυρα και τα έγγραφα. Οι δηλώσεις για τα παράθυρα και τα στοιχεία της διεπαφής του χρήστη περιέχονται σε αυτό. Είναι αποθηκευµένα σε XUL φακέλους οι οποίοι έχουν την κατάληξη xul. Ένα τέτοιο πακέτο µπορεί να περιέχει πολλούς xul φακέλους αλλά το κυρίως παράθυρο θα πρέπει να έχει ένα αρχείο µε το ίδιο όνοµα όπως αυτό του πακέτου. Για παράδειγµα, το πακέτο του συντάκτη (editor ) θα πρέπει να έχει έναν φάκελο µέσα ο οποίος θα ονοµάζεται editor.xul. Τα έγγραφα τοποθετούνται σε ξεχωριστούς φακέλους µέσα στα αρχεία XUL. Μέσα στο πακέτο content υπάρχουν επίσης και ένα ή περισσότερα αρχεία.js της γλώσσας Javascript. Τα αρχεία αυτά τα οποία συνδέονται µε τα αρχεία XUL, περιέχουν τον εκτελέσιµο κώδικα του extension. Παρόλα αυτά, πολλές φορές οι προγραµµατιστές παραλείπουν να δηµιουργήσουν αρχεία.js και εισάγουν κατευθείαν τον κώδικα στα αρχεία της XUL. Με αυτόν τον τρόπο µπορεί να εξοικονοµούν προγραµµατιστικό χρόνο αλλά η µέθοδος αυτή κάνει πιο δυσκολονόητο τον κώδικα ενός extension και είναι κάτι που δεν συνίσταται. Επιπρόσθετα, το πακέτο αυτό περιέχει και ένα ακόµη αρχείο, το αρχείο contents.rdf. Είναι το αρχείο το οποίο ενηµερώνει τον browser για το που θα αποθηκεύσει τις πληροφορίες για το overlay και έχει την παρακάτω µορφή: <?xml version="1.0"?> <RDF:RDF xmlns:rdf=" xmlns:chrome=" <RDF:Seq RDF:about="urn:mozilla:package:root"> <RDF:li RDF:resource="urn:mozilla:package:---"/> </RDF:Seq> <RDF:Seq RDF:about="urn:mozilla:overlays"> 52

54 <RDF:li RDF:resource="chrome://browser/content/browser.xul"/> <RDF:li RDF:resource="chrome://navigator/content/navigator.xul"/> </RDF:Seq> <RDF:Seq RDF:about="chrome://browser/content/browser.xul"> <RDF:li>chrome://---/content/---Overlay.xul</RDF:li> </RDF:Seq> <RDF:Seq about="chrome://navigator/content/navigator.xul"> <RDF:li>chrome://---/content/---Overlay.xul</RDF:li> </RDF:Seq> <RDF:Description RDF:about="urn:mozilla:package:---" chrome:displayname="###" chrome:author="&&&" chrome:authorurl="***.com" chrome:name="---" chrome:extension="true" chrome:description="%%%%"> </RDF:Description> </RDF:RDF> Στα σηµεία --- εισάγεται το όνοµα του extension. Στο σηµείο ### εισάγεται το όνοµα που θα θέλουµε να εµφανίζεται στα στοιχεία του extension. Στο σηµείο &&& εισάγεται το όνοµα του δηµιουργού του extension. Το σηµείο ***.com είναι προαιρετικό και µπαίνει η διεύθυνση του extension στο internet. 53

55 Στο σηµείο %%% εισάγεται µια σύντοµη περιγραφή της λειτουργίας του extension. Όλα τα υπόλοιπα µέρη του κώδικα παραµένουν ίδια. [9,10,11] Tο όνοµα ενός αρχείου JAR µπορεί να περιγράφει τι περιέχει, αλλά ο χρήστης δεν µπορεί να είναι σίγουρος εάν δεν κοιτάξει το πακέτο content. Για παράδειγµα, ένα πακέτο content µπορεί να έχει την παρακάτω δοµή: Content browser browser.xul browser.js other mail XUL and JS files bookmarks bookmarks files preferences preferences files Το πακέτο skin Το πακέτο αυτό περιέχει πληροφορίες για τα style sheets και για τα αρχεία εικόνων. Τα style sheets περιγράφουν τις λεπτοµέρειες της εµφάνισης ενός παραθύρου και αποθηκεύονται ξεχωριστά από τα XUL αρχεία για να διευκολύνουν την τροποποίηση µιας εφαρµογής. Επίσης εδώ αποθηκεύονται και όσες εικόνες χρησιµοποιούνται. Ο Mozilla αναγνωρίζει το πακέτο αυτό µε το όνοµα skin ενώ η διεπαφή χρήστη α- ναφέρεται σε αυτό και ως theme. Η δοµή ενός τέτοιου αρχείου είναι παρόµοια µε την παρακάτω δοµή : 54

56 skin classic browser browser skin files global contents.rdf global skin files Το πακέτο locale Περιέχει συγκεκριµένους φακέλους και όλα τα κείµενα ενός παραθύρου αποθηκεύονται ξεχωριστά. Ο φάκελος en-us.jar δίνει πληροφορίες για τη γλώσσα που χρησιµοποιείται, στην περίπτωσή µας η US English. Η δοµή του πακέτου αυτού είναι παρόµοια µε τα προηγούµενα. Για να υποστηριχθούν περισσότερες από µία γλώσσες, χρειάζεται να ξεχωρίσουµε τα διάφορα strings από τον φάκελο content. Αυτό επιτυγχάνεται µε τον φάκελο locale. Ο φάκελος locale περιέχει δύο είδη αρχείων: τα DTD αρχεία και τα αρχεία properties. Τα αρχεία DTD έχουν την κατάληξη.dtd και περιέχουν entity declarations µία για κάθε string κειµένου που χρησιµοποιείται σε ένα παράθυρο. Τα property files είναι παρόµοια µε τα παραπάνω αρχεία µε τη µόνη διαφορά ότι χρησιµοποιούνται από script αρχεία. Ένα αρχείο.dtd το οποίο αποθηκεύεται σε έναν φάκελο locale συνήθως έχει την παρακάτω µορφή : <!ENTITY button.label ---- > <!ENTITY button.accesskey ---- > όπου µέσα στις παύλες εισάγουµε το string που επιθυµούµε. Για να µπορέσει το extension να χρησιµοποιήσει το αρχείο.dtd, θα πρέπει να το εισάγουµε µέσα στο αρχείο της XUL κάτω από την γραµµή <?xml version 1.0?> µε τον παρακάτω τρόπο : <!DOCTYPE window SYSTEM chrome://packagename/locale/filename.ent > 55

57 όπου συνήθως αντί για το window χρησιµοποιούµε το overlay. Επίσης, για να µπορέσει το αρχείο της ΧUL να διαβάσει τα entities προσθέτουµε τις εξής δύο γραµµές : <button label= &button.label; accesskey= &button.accesskey; /> Τα components Το thunderbird υποστηρίζει τα XPCOM components στα extensions. Οι προγραµµατιστές µπορούν να δηµιουργήσουν από µόνοι τους εύκολα τα δικά τους χρησιµοποιώντας τη γλώσσα Javascript η τη C++. Απλά τοποθετούν όλα τα.js και.dll αρχεία στο components / directory και αυτά αυτόµατα καταγράφονται τη στιγµή που θα εκτελεστεί για πρώτη φορά ο thunderbird µετά την εγκατάσταση Το αρχείο install.rdf Το Install Manifest είναι ο φάκελος ο οποίος περιέχει τις πληροφορίες για ένα extension κατά την εγκατάστασή του. Περιέχει µεταδεδοµένα τα οποία αναγνωρίζουν το extension και παρέχει πληροφορίες για το ποιος είναι ο συντάκτης του. Επιπλέον, δίνει στοιχεία σχετικά µε τα λογισµικά τα οποία είναι συµβατά µε το προϊόν καθώς και για το πότε θα πρέπει η έκδοση να ενηµερωθεί. Το format του Install Manifest είναι RDF/XML. Ο φάκελος θα πρέπει να ονοµαστεί install.rdf και να βρίσκεται στην αρχή ενός φακέλου XPI. Η βασική µορφή ενός τέτοιου φακέλου είναι: 56

58 <? xml version= 1.0 > < RDF xmlns= http: // xmlns: em= > < Description about = urn : mozilla : install- manifest > <em: id> xxxxx < / em: id> <em: version> 0.0 < /em: version> <em: type> 2 < /em: type> <! Target Application this extension can install into, with minimum and maximum supported versions. -- > <em: targetapplication> <Description> <em: id > {ec }< /em:id> <em: minversion> x.x+< / em: minversion> <em: maxversion> y.y*< / em: maxversion> </ Description > </em: targetapplication> <! - - Front End Metadata - - > <em : name> kkk< /em: name> <em: description> mmmmm</ em: description> <em: creator> gggg </em: creator <em: homepageurl> </ em: homepageurl> </ Description> < /RDF> Συγκεκριµένα έχουµε: Το <em: id> xxxxx < / em: id> φανερώνει την ταυτότητα του extension. Είναι το χαρακτηριστικό µε το οποίο κάθε προγραµµατιστής ξεχωρίζει το δικό του extension από τα άλλα. Το id µπορεί να είναι είτε ένα string, είτε ένας ειδικός κωδικός ο οποίος δηµιουργείται αυτόµατα ή από ένα online perl script ( 57

59 ) ή από ένα ειδικό πρόγραµµα που ονοµάζεται guidgen ( ). Το 2 στο <em: type> 2 < /em: type> δείχνει πως θα δηµιουργηθεί ένα extension. Το <em: version>0.0< /em: version> δείχνει την έκδοση του extension. Το <em: id > {ec }< /em: id> δείχνει την ταυτότητα της εφαρµογής. Στην συγκεκριµένη περίπτωση εφόσον τα extension προορίζονται για τον Mozilla thunderbird το συγκεκριµένο id θα έχει την µορφή: <em: id > {3550f703-e582-4d05-9a08-453d09bdfdc6} < /em: id>. Τα minversion x.x+ και τα maxversion y.y* φανερώνουν την παλιότερη και την πιο πρόσφατη έκδοση της εφαρµογής στην οπoία µπορεί να δουλέψει το extension. Στο <em: name > kkk < /em: name>, στο σηµείο kkk εισάγεται το όνοµα του extension. Στο <em: description> mmmmm < /em: description>, στο σηµείο mmmmm ο προγραµµατιστής εισάγει µια απλή και σύντοµη περιγραφή για την λειτουργία που θα εκτελεί το extension. Στο <em: creator> gggg < /em: creator>, στο σηµείο gggg καταγράφεται το ό- νοµα του δηµιουργού του extension. Το <em: homepageurl> < /em: homepageurl> είναι προαιρετικό και εισάγεται η διεύθυνση της ιστοσελίδας στην οποία βρίσκεται το extension. [10,12]. 5.3 Η γλώσσα JavaScript Η Javascript είναι µία βασιζόµενη στα αντικείµενα (object), διαπλατφορµική (crossplatform) scripting γλώσσα προγραµµατισµού. Ο όρος βασιζόµενη στα αντικείµενα ση- µαίνει ότι µπορεί να χρησιµοποιεί στοιχεία τα οποία αποκαλούνται αντικείµενα. Ωστόσο, τα αντικείµενα δεν βασίζονται σε κλάσεις, πράγµα που σηµαίνει ότι δεν γίνεται κα- µία διάκριση µεταξύ µιας κλάσης και ενός αντικειµένου, σε αντίθεση µε τις γλώσσες αντικειµενοστραφούς προγραµµατισµού. Μια γλώσσα script επιτρέπει να γραφτεί ένα πρόγραµµα το οποίο δεν χρειάζεται να περάσει από την διαδικασία της µεταγλώττισης. Η διερµήνευση του κώδικα του προγράµµατος γίνεται άµεσα από την εφαρµογή. Με 58

60 µια κανονική γλώσσα προγραµµατισµού θα έπρεπε να γραφτεί ο πηγαίος κώδικας και να µεταγλωττιστεί, χρησιµοποιώντας έναν compiler, έτσι ώστε να µετατρεπόταν σε ε- κτελέσιµη µορφή και να αποφεύγονταν τα συντακτικά σφάλµατα. Στην περίπτωση της Javascript ο χειρισµός των σφαλµάτων είναι ευθύνη της εφαρµογής browser που χρησι- µοποιεί ο κάθε χρήστης. Η γλώσσα αυτή χρησιµοποιείται όχι µόνο για να προσθέσουν οι προγραµµατιστές διάφορα εφέ σε µια εφαρµογή αλλά και για να συντάξουν scripts τα οποία θα εκτελούν χρήσιµες εργασίες. Η Javascript και η Java είναι δύο διαφορετικές γλώσσες προγραµµατισµού. Η Java είναι µια ολοκληρωµένη γλώσσα και ο κώδικας που γράφεται µε αυτήν τη γλώσσα πρέπει να µεταγλωττιστεί πριν µπορέσει να εκτελεστεί. Η Java είναι πιο ισχυρή αλλά επίσης και πιο πολύπλοκη από την Javascript. Εν αντιθέσει, η Javascript δεν χρειάζεται έναν µεταγλωττιστή για την µετατροπή του κώδικά της σε εκτελέσιµη µορφή και είναι πιο ανεκτική σε ορισµένους τοµείς όπως για παράδειγµα η σύνταξη. Η Javascript έχει ορισµένες οµοιότητες µε άλλες γλώσσες προγραµµατισµού όπως η C++, η C και η Java και µε γλώσσες script. Επειδή είναι µια γλώσσα script έχει επίσης οµοιότητες µε γλώσσες όπως η Perl ο κώδικάς της µπορεί να τρέχει µέσω ενός interpreter αντί να µεταγλωττίζεται. [6,14,15] 5.4 υναµικός Προγραµµατισµός Μια χρήσιµη τεχνική που αναπτύχθηκε πρόσφατα στηv πλατφόρµα του Mozilla είναι ο υναµικός Προγραµµατισµός ( Dynamic Development ). Αυτή η νέα µέθοδος επιτρέπει στους προγραµµατιστές να δουλεύουν πάνω στα extension και να βλέπουν τα αποτελέσµατα σε πραγµατικό χρόνο. Με αυτόν τον τρόπο δεν χρειάζεται να πακετάρουν συνέχεια τα extensions κάθε φορά που θέλουν να δοκιµάσουν µια αλλαγή είτε στα XUL έγγραφα είτε στον κώδικα Javascript. Έτσι όχι µόνο µειώνεται ο χρόνος που απαιτείται για την δηµιουργία ενός extension αλλά επιτυγχάνεται και η διόρθωση των λαθών του κώδικα ευκολότερα από ότι πριν. Πριν τον δυναµικό προγραµµατισµό όλα τα δεδοµένα τα οποία περιέχει αυτός ο φάκελος ήταν διασκορπισµένα σε δύο µέρη: στο αρχείο install.rdf και στο αρχείο contents.rdf. Με τη νέα αυτή µέθοδο δηµιουργείται ένα νέο αρχείο το chrome.manifest το οποίο τοποθετείται στο επάνω επίπεδο του φακέλου extension. Το αρχείο αυτό ενηµε- 59

61 ρώνει τον Mozilla Thunderbird για το ποια πακέτα και overlays παρέχονται. Ένα απλό δείγµα του αρχείου φαίνεται παρακάτω: content myextension chrome/content/ overlay chrome://browser/content/browser.xul chrome://myextension/content/overlay.xul locale myextension en-us chrome/locale/en-us/ skin myextension classic/1.0 chrome/skin/ Η πρώτη γραµµή καταγράφει ένα πακέτο content µε το όνοµα myextension όπως επίσης και την τοποθεσία του πακέτου. Παρατηρούµε ότι το όνοµα πρέπει να γραφτεί µε πεζά γράµµατα και όχι µε κεφαλαία ή µικτά. Αυτή η γραµµή επιτρέπει στα chrome URLs όπως το chrome://myextension/content να δείχνουν στη σωστή θέση στην ιεραρχία του extension. Η δεύτερη γραµµή καταγράφει ένα overlay για το chrome://browser/content/browser.xul. Με αυτόν τον τρόπο οι προγραµµατιστές µπορούν να προσθέσουν στοιχεία ή να τροποποιήσουν την διεπαφή χρήστη. Ο XUL φάκελος ο οποίος χρησιµοποιείται ως overlay καθορίζεται από το chrome://myextension/content/overlay.xul. Η επόµενη γραµµή καθορίζει πως θα δηµιουργηθεί ένας φάκελος locale ενώ η τελευταία προσθέτει ένα φάκελο skin στο extension. Επίσης, εκτός από τα παραπάνω χρειάζεται και ένα αρχείο, το οποίο θα υποδεικνύει στον Mozilla Thunderbird το σηµείο στο οποίο είναι καταχωρηµένο το extension µέσα στον σκληρό δίσκο. ηµιουργούµε έτσι ένα text αρχείο οπουδήποτε µέσα στο δίσκο και του δίνουµε το ίδιο όνοµα µε το id που χρησιµοποιήσαµε στο install.rdf για να χαρακτηρίσουµε το extension. Μέσα σε αυτό το text αρχείο γράφουµε µόνο µια γραµµή κώδικα, το µονοπάτι του φακέλου στο οποίο είναι αποθηκευµένο το extension ( τον φάκελο δηλαδή που περιέχει τον φάκελο chrome, το αρχείο chrome.manifest και το Install.rdf ). Τέλος, αναζητούµε τον φάκελο profile του thunderbird ο οποίος περιέχει τον φάκελο extensions. Μέσα σε αυτόν τον extensions φάκελο τοποθετούµε το text αρχείο. [6,11] 60

62 6 Παράδειγµα ανάπτυξης ενός extension Με στόχο την υλοποίηση του ταξινοµητή ηλεκτρονικής αλληλογραφίας, αρχικά αναπτύχθηκε ένα extension το οποίο ονοµάστηκε bayesbird. Το extension αυτό µπορεί να θεωρηθεί ως η βάση για να δηµιουργηθεί ένας ταξινοµητής µε τον αλγόριθµο Naïve Bayes, ο οποίος θα ταξινοµεί αυτόµατα τα εισερχόµενα µηνύµατα ηλεκτρονικού ταχυδροµείου σε δύο ή περισσότερους φακέλους ανάλογα µε το περιεχόµενο τους. Στο κεφάλαιο αυτό αναλύονται τα βήµατα δηµιουργίας του extension καθώς και η λειτουργία του. 6.1 ηµιουργία του install.rdf Το αρχείο αυτό, το οποίο θα παρέχει τις βασικές πληροφορίες για το bayesbird, είναι ένα text αρχείο που δέχεται ως κατάληξη το.rdf. Τα περιεχόµενά του είναι τα εξής: 1: <?xml version="1.0"?> <RDF xmlns=" xmlns:em=" <Description about="urn:mozilla:install-manifest"> <!-- Required Items --> 2: <em:id>{b07db59b d1d-b739-6bef4606af45}</em:id> <em:version>1.0</em:version> <!-- Target Application this extension can install into, with minimum and maximum supported versions. --> 3: <em:targetapplication> <Description> 61

63 <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>1.5.0.*</em:maxversion> </Description> </em:targetapplication> <!-- Front End MetaData --> 4: <em:name>bayesian Classification</em:name> <em:creator>sophia Maleza</em:creator> <em:description>bayesian Classification for Thunderbird</em:description> <!-- Packages, Skins and Locales that this extension registers --> 5: <em:file> <Description about="urn:mozilla:extension:file:bayesbird.jar"> <em:package>content/</em:package> <em:skin>skin/</em:skin> </Description> </em:file> </Description> </RDF> Σχολιασµός του κώδικα: (1) Οι γραµµές αυτές καθορίζουν ότι ο φάκελος αυτός δεν είναι τίποτα άλλο από ένα xml αρχείο. Η έκφραση <RDF > είναι υπεύθυνη για να αναγνωριστεί το install.rdf ως ένα RDF αρχείο ενώ η <Description > αναγνωρίζει το αρχείο ως ένα installer manifest. (2) Το {B07DB59B d1d-B739-6BEF4606AF45} είναι η ταυτότητα του extension bayesbird, ενώ ο αριθµός 0.1 είναι η έκδοση του. 62

64 (3) Ο κώδικας αυτός είναι από τα πιο σηµαντικά κοµµάτια αφού καθορίζει την εφαρµογή για την οποία θα λειτουργήσει το extension. Στην περίπτωσή µας η εφαρµογή είναι ο Mozilla Thunderbird και αυτό υποδεικνύεται από το {3550f703-e582-4d05-9a08-453d09bdfdc6} αφού αυτός είναι ο χαρακτηριστικός κωδικός της. Έπειτα, το 1.5 και το * είναι η ελάχιστη και η µέγιστη έκδοση του Thunderbird µε τις οποίες είναι συµβατό το bayesbird. (4) Με αυτές τις τρεις γραµµές κώδικα δηλώνεται το όνοµα «Bayesian Classification» του extension και µια σύντοµη περιγραφή της λειτουργίας του «Bayesian Classification for Thunderbird», καθώς και το όνοµα του δηµιουργού «Sophia Maleza». (5) Εδώ περιγράφονται τα στοιχεία του bayesbird.jar. O «συµπιεσµένος» αυτός φάκελος περιέχει δύο φακέλους, τον φάκελο content και τον φάκελο skin µε τα περιεχόµενά τους. 6.2 ηµιουργία του bayesbird_overlay.xul Το αρχείο αυτό το οποίο είναι και αυτό ένα text αρχείο µε την κατάληξη.xul περιέχει όλες τις πληροφορίες για την διεπαφή γραφικών του extension. Το συγκεκριµένο extension προσθέτει δύο χαρακτηριστικά: ένα κουµπί στο toolbar του thunderbird και µία λειτουργία στο pop up µενού. Ο κώδικας του bayesbird_overlay.xul είναι ο παρακάτω: 1: <?xml version="1.0"?> <?xml-stylesheet href="chrome://bayesbird/skin/bayesbird.css" type="text/css"?> <overlay id="bayesbird_overlay" xmlns=" 2: <toolbarpalette id="mailtoolbarpalette"> <toolbarbutton class="toolbarbutton-1" id="bayesbutton" 63

65 image="chrome://bayesbird/skin/main.png" label="bayes Button" tooltiptex="this is the Bayes Button" oncommand="disp_alert();" /> </toolbarpalette> 3: <popup id="threadpanecontext"> <menuitem id="bayesrules" label="bayes Rules" accesskey="b" insertafter="threadpanecontext-sep-selectall" oncommand="disp_alert();"/> </popup> 4: <script type= application/x-javascript src= chrome://bayesbird/content/bayesbird_overlay.js" /> </overlay> Σχολιασµός του κώδικα: (1) Η πρώτη γραµµή κώδικα υποδεικνύει πως είναι ένα αρχείο xml. Με την δεύτερη γραµµή, το αρχείο αυτό διαβάζει τον κώδικα που περιέχεται στο φάκελο skin/bayesbird.css. το οποίο είναι και αυτό ένα text αρχείο. Κατόπιν, δίνεται το όνοµα "bayesbird_overlay" στο overlay και καθορίζεται πως θα χρησιµοποιηθεί για µία εφαρ- µογή του Mozilla. (2) ηµιουργούµε ένα κουµπί (button) για τη διεπαφή του χρήστη. Το κουµπί αυτό είναι κλάσης "toolbarbutton", έχει ως id το "BayesButton" και η εικόνα του βρίσκεται στο αρχείο "chrome://bayesbird/skin/main.png". Επίσης, ονοµάζεται "Bayes Button" και µια σύντοµη περιγραφή του είναι η εξής: "This is the Bayes Button". Προσωρινά, το κουµπί αυτό µε το πάτηµα του χρήστη καλεί τον κώδικα της συνάρτησης disp_alert(). Η συνάρτηση αυτή υλοποιείται στο αρχείο bayesbird_overlay.js το οποίο παρουσιάζεται παρακάτω. 64

66 (3) Με τον κώδικα αυτό προσθέτουµε µια λειτουργία στο context pop up µενού του thunderbird, το οποίο εµφανίζεται όταν ο χρήστης πατάει δεξί κλικ στο ποντίκι. Η λειτουργία αυτή θα εµφανίζεται ως "Bayes Rules" στην αρχή του µενού και θα έχει ως access key το γράµµα B. Όταν ο χρήστης θα πατάει το Bayes Rules αυτό θα καλεί την συνάρτηση disp_alert() όπως και το button. (4) Οι δύο αυτές γραµµές συνδέουν τον κώδικα του bayesbird_overlay.xul µε τον κώδικα του bayesbird_overlay.js. Με αυτόν τον τρόπο, η συνάρτηση disp_alert όταν κληθεί από το button και το pop up µενού θα εκτελέσει τον κώδικά της κατευθείαν από το αρχείο bayesbird_overlay.js. [44,46,47] 6.3 ηµιουργία του bayesbird_overlay.js Το αρχείο bayesbird_overlay.js είναι ένα javascript αρχείο το οποίο περιέχει τον εκτελέσιµο κώδικα του extension. Ο κώδικας είναι ο παρακάτω: function disp_alert() { alert("bayes Rules!"); } ηµιουργείται µια συνάρτηση, η disp_alert η οποία εµφανίζει ένα alert box. Το alert box αυτό περιέχει την φράση "Bayes Rules!". Ως απώτερος και µελλοντικός σκοπός αυτού του extension είναι να γραφτεί ο κώδικας ο οποίος θα διαβάζει το περιεχόµενο των εισερχόµενων µηνυµάτων και, ανάλογα µε διάφορα κριτήρια και σε συνδυασµό µε τον ταξινοµητή Naïve Bayes, να τα ταξινο- µεί αυτόµατα σε έναν, δύο ή περισσότερους φακέλους. 6.4 ηµιουργία του bayesbird.css To bayesbird.css συνδέει τις πληροφορίες που σχετίζονται µε την εικόνα µε το button που εµφανίζεται στο toolbar. Παρακάτω, έχουµε τον κώδικα: #BayesButton { list-style-image: url("chrome://bayesbird/skin/main.png"); } 65

67 #BayesButton[disabled] { list-style-image: url("chrome://bayesbird/skin/main.png"); } toolbar[iconsize="small"] #BayesButton { list-style-image: url("chrome://bayesbird/skin/main.png"); } toolbar[iconsize="small"] #BayesButton[disabled] { list-style-image: url("chrome://bayesbird/skin/main.png"); } Αρχικά, εισάγουµε τη φράση list-style-image η οποία χρησιµοποιείται σε γραφικά buttons και στη συνέχεια προσθέτουµε το µονοπάτι του φακέλου στο οποίο βρίσκεται η εικόνα µε την οποία θέλουµε να συνδέσουµε το button. Κατόπιν, µε το toolbar [iconsize="small"] δηλώνουµε ότι η εικόνα θα χρησιµοποιηθεί στο toolbar και το µέγεθός της θα είναι small. Η εικόνα µας για το button θα είναι η εξής:. Αποθηκεύουµε αυτήν την εικόνα στο αρχείο main.png. Αυτό που παρατηρούµε είναι ότι η συγκεκριµένη εικόνα θα είναι σε µορφή png. 6.5 ηµιουργία του chrome.manifest Το extension δηµιουργήθηκε µε βάση τις αρχές του δυναµικού προγραµµατισµού. Για αυτόν τον λόγο, δεν είναι αναγκαία η δηµιουργία του αρχείου contents.rdf αφού κάτι τέτοιο θεωρείται περιττό. Όλες οι πληροφορίες που αφορούν το bayesbird αποθηκεύονται στο chrome.manifest και στο intall.rdf που δηµιουργήθηκε παραπάνω. Έτσι, δηµιουργούµε και το chrome.manifest ως εξής: content bayesbird chrome/content/ overlay chrome://messenger/content/messenger.xul chrome://bayesbird/content/bayesbird_overlay.xul skin bayesbird classic/1.0 chrome/skin/ 66

68 Αρχικά, δηλώνουµε ότι θα δηµιουργηθεί ένα πακέτο content στο extension µε το όνοµα bayesbird, καθώς και την τοποθεσία του µέσα στον φάκελο του extension. Έπειτα, µε την δεύτερη γραµµή µπορούµε να αλλάξουµε ή να προσθέσουµε χαρακτηριστικά στην διεπαφή χρήστη του Thunderbird µέσω του αρχείου bayesbird_overlay.xul το οποίο βρίσκεται στο φάκελο content. Και τέλος, προσθέτουµε τον φάκελο skin µέσω του ο- ποίου εισάγουµε τις διάφορες εικόνες. 6.6 Οργάνωση των αρχείων και των πακέτων Για να δηµιουργήσουµε το τελικό πακέτο.xpi θα πρέπει όλα τα παραπάνω αρχεία να οργανωθούν στους κατάλληλους φακέλους, να ζιπαριστούν και να παραχθεί τελικά το bayesbird.xpi extension. Η οργάνωση των αρχείων θα γίνει µεθοδικά και προσεκτικά έτσι ώστε να αποφευχθούν τυχόν λάθη. Αρχικά, δηµιουργούµε έναν φάκελο και τον ονοµάζουµε content. Μέσα στον content τοποθετούµε τα αρχεία που σχετίζονται µε τον κύριο κώδικα και µε τη δηµιουργία των γραφικών. Τα αρχεία αυτά είναι το bayesbird_overlay.xul και το bayesbird_overlay.js. Στη συνέχεια, δηµιουργούµε έναν άλλο φάκελο µε το όνοµα skin. Σε αυτόν τον φάκελο θα εισάγουµε το main.png και το bayesbird.css αρχείο δηλαδή αυτά που είναι υπεύθυνα για τις εικόνες. Στην περίπτωση που δεν χρησιµοποιούσαµε δυναµικό προγραµµατισµό θα έπρεπε τους δύο αυτούς φακέλους που δηµιουργήσαµε να τους συµπιέσουµε στο bayesbird.jar αρχείο. Τώρα όµως κάτι τέτοιο δεν είναι αναγκαίο. Έπειτα, δηµιουργούµε έναν νέο φάκελο. Τον φάκελο αυτό θα τον ονοµάσουµε chrome και µέσα του θα εισάγουµε τους φακέλους content και chrome. Εν τω µεταξύ, κάπου στον σκληρό δίσκο έχουµε ήδη δηµιουργήσει έναν φάκελο µε το όνοµα του extension µας, δηλαδή bayesbird. Μέσα στον bayesbird φάκελο τοποθετούµε τρία στοιχεία. Τα στοιχεία αυτά είναι ο φάκελος chrome, το αρχείο install.rdf και το αρχείο chrome.manifest. Το τελικό βήµα για να υλοποιηθεί το extension είναι να δηµιουργήσουµε το bayesbird.xpi. Χρησιµοποιώντας ένα εργαλείο zip µετατρέπουµε τον φάκελο bayesbird σε bayesbird.xpi και το extension έχει δηµιουργηθεί. Τώρα µπορούµε να το εγκαταστήσουµε στον Mozilla Thunderbird και να δούµε την λειτουργία του. 67

69 6.7 Η εγκατάσταση του bayesbird Ο extension manager του thunderbird κατά την εγκατάσταση του bayesbird.xpi θα ενη- µερώσει τον χρήστη πως το extension του έχει εγκατασταθεί. Έτσι ο χρήστης µε αυτόν τον τρόπο θα είναι σίγουρος πως το extension λειτουργεί σωστά. Έπειτα, πατώντας το About που σχετίζεται µε το extension θα εµφανιστεί ένα νέο παράθυρο µε πληροφορίες σχετικά µε αυτό. Εικόνα 5.Εγκατάσταση του Bayesian Classification 68

70 Εικόνα 6.About Bayesian Classification Μόλις εγκατασταθεί το extension bayesbird στον Mozilla Thunderbird αµέσως θα προστεθούν δύο νέα χαρακτηριστικά στην διεπαφή του χρήστη. Το πρώτο χαρακτηριστικό θα εµφανιστεί πατώντας ο χρήστης δεξί κλικ όπως φαίνεται παρακάτω: Εικόνα 7.Η επιλογή Bayes Rules του popup menu 69

71 Το δεύτερο χαρακτηριστικό δεν θα είναι ορατό αµέσως στο toolbar του Thunderbird. Χρειάζεται να πάµε στο κεντρικό toolbar και να κάνουµε customize. Εκεί εµφανίζεται το κουµπί µε την καρδούλα που δηµιουργήσαµε. Το κάνουµε drag and drop και το βάζουµε στο toolbar. Το button Bayes Button θα εµφανιστεί δεξιά του toolbar µε µία καρδιά όπως φαίνεται παρακάτω: Εικόνα 8.Το κουµπί Bayes Button Όταν κάνουµε κλικ πάνω στο ένα ή στο άλλο χαρακτηριστικό εµφανίζεται αµέσως ένα alert box µε το µήνυµα Bayes Rules!. 70

72 Εικόνα 9.To alert box 71

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

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

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

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

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

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

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

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Εισηγητής: ρ Ηλίας Ζαφειρόπουλος Εισαγωγή Ιατρικά δεδοµένα: Συλλογή Οργάνωση Αξιοποίηση Data Mining ιαχείριση εδοµένων Εκπαίδευση

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

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 16η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται σε ύλη του βιβλίου Artificial Intelligence A Modern Approach των

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

Μηχανική Μάθηση: γιατί;

Μηχανική Μάθηση: γιατί; Μηχανική Μάθηση Μηχανική Μάθηση: γιατί; Απαραίτητη για να μπορεί ο πράκτορας να ανταπεξέρχεται σε άγνωστα περιβάλλοντα Δεν είναι δυνατόν ο σχεδιαστής να προβλέψει όλα τα ενδεχόμενα περιβάλλοντα. Χρήσιμη

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

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

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

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

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

Ανοικτά Ακαδηµα κά Μαθήµατα

Ανοικτά Ακαδηµα κά Μαθήµατα ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδηµα κά Μαθήµατα Ανάλυση Σχεδίαση Υλοποίηση Αξιολόγηση Ανάλυση: Πληροφορίες σχετικά µε τις ανάγκες της εκπαίδευσης Σχεδίαση: Καθορισµός χαρακτηριστικών του εκπαιδευτικού λογισµικού

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

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

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

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

7.9 ροµολόγηση. Ερωτήσεις

7.9 ροµολόγηση. Ερωτήσεις 7.9 ροµολόγηση Ερωτήσεις 1. Να δώσετε τον ορισµό της δροµολόγησης; 2. Από τι εξαρτάται η χρονική στιγµή στην οποία λαµβάνονται οι αποφάσεις δροµολόγησης; Να αναφέρετε ποια είναι αυτή στην περίπτωση των

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

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

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

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

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

Διακριτικές Συναρτήσεις

Διακριτικές Συναρτήσεις Διακριτικές Συναρτήσεις Δρ. Δηµήτριος Τσέλιος Επίκουρος Καθηγητής ΤΕΙ Θεσσαλίας Τµήµα Διοίκησης Επιχειρήσεων Θερµικός χάρτης των XYZ ξενοδοχείων σε σχέση µε τη γεωγραφική περιοχή τους P. Adamopoulos New

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

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

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

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

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

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

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

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

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

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

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

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

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

6.2 Υπηρεσίες Διαδικτύου

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Οδηγίες. για την υπηρεσία. Antispamming. (στα windows XP) Περιεχόµενα

Οδηγίες. για την υπηρεσία. Antispamming. (στα windows XP) Περιεχόµενα Οδηγίες για την υπηρεσία Antispamming (στα windows XP) Περιεχόµενα Ενεργοποίηση της υπηρεσίας (µέσω Internet Explorer)... σελ. 2 ηµιουργία φακέλου για spam στο Outlook Express... σελ. 5 ηµιουργία Κανόνα

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

Εκπαίδευση ταξινοµητών κειµένου για το χαρακτηρισµό άποψης. Ειρήνη Καλδέλη ιπλωµατική Εργασία. Περίληψη

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

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

Στόχος της ψυχολογικής έρευνας:

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

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

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

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

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

Εξόρυξη Γνώσης από Βιολογικά εδομένα

Εξόρυξη Γνώσης από Βιολογικά εδομένα Παρουσίαση Διπλωματικής Εργασίας Εξόρυξη Γνώσης από Βιολογικά εδομένα Καρυπίδης Γεώργιος (Μ27/03) Επιβλέπων Καθηγητής: Ιωάννης Βλαχάβας MIS Πανεπιστήμιο Μακεδονίας Φεβρουάριος 2005 Εξόρυξη Γνώσης από Βιολογικά

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

Μητρώο Τεκµηρίων Εκπαιδευτή ΕΝΟΤΗΤΑ/ΣΤΟΙΧΕΙΟ E/15 ΑΝΑΦΟΡΑ ΧΑΡΤΟΦΥΛΑΚΙΟΥ 15 ΕΚΠΑΙ ΕΥΤΗΣ Χρίστου Χρίστος

Μητρώο Τεκµηρίων Εκπαιδευτή ΕΝΟΤΗΤΑ/ΣΤΟΙΧΕΙΟ E/15 ΑΝΑΦΟΡΑ ΧΑΡΤΟΦΥΛΑΚΙΟΥ 15 ΕΚΠΑΙ ΕΥΤΗΣ Χρίστου Χρίστος 1. Προσδιορισµός κατάλληλων µέτρων αξιολόγησης για το πρόγραµµα ECDL α. Εφαρµογή διαφορετικών επιπέδων αξιολόγησης στο πρόγραµµα ECDL. Η αξιολόγηση του προγράµµατος ECDL πρέπει να διενεργείται σε 4 επίπεδα

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

ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2

ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2 1 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΕΙΣΑΓΩΓΗ σ. 2 Α. ΕΡΕΥΝΑ ΚΑΙ ΕΠΕΞΕΡΓΑΣΙΑ Ε ΟΜΕΝΩΝ 2 Β. ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΚΑΙ ΕΡΕΥΝΑ 1. Γενικά Έννοιες.. 2 2. Πρακτικός Οδηγός Ανάλυσης εδοµένων.. 4 α. Οδηγός Λύσεων στο πλαίσιο

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

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα Τεχνητή Νοημοσύνη (Artificial Intelligence) Ανάπτυξη μεθόδων και τεχνολογιών για την επίλυση προβλημάτων στα οποία ο άνθρωπος υπερέχει (?) του υπολογιστή Συλλογισμοί

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

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας 1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική

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

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ Βασικός τελικός στόχος κάθε επιστηµονικής τεχνολογικής εφαρµογής είναι: H γενική βελτίωση της ποιότητας του περιβάλλοντος Η βελτίωση της ποιότητας ζωής Τα µέσα µε τα

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ 1 ο (2.5 µονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 21 Σεπτεµβρίου 2004 ιάρκεια: 3 ώρες Το παρακάτω σύνολο

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

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

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

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

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ Βασικές µορφές Ερωτήσεων - απαντήσεων Ανοιχτές Κλειστές Κλίµακας ΕΛΕΥΘΕΡΙΟΣ ΑΓΓΕΛΗΣ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΘ 2 Ανοιχτές ερωτήσεις Ανοιχτές

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

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

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Βασίλης Κόμης, Επίκουρος Καθηγητής Ερευνητική Ομάδα «ΤΠΕ στην Εκπαίδευση» Τμήμα Επιστημών της Εκπαίδευσης και της

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Αντιµετώπιση των ανεπιθύµητων ηλεκτρονικών µηνυµάτων. Blocking spam mail. ηµήτρης Μπιµπίκας

Αντιµετώπιση των ανεπιθύµητων ηλεκτρονικών µηνυµάτων. Blocking spam mail. ηµήτρης Μπιµπίκας Αντιµετώπιση των ανεπιθύµητων ηλεκτρονικών µηνυµάτων Blocking spam mail ηµήτρης Μπιµπίκας 2 ΑΝΤΙΜΕΤΩΠΙΣΗ ΑΝΕΠΙΘΥΜΗΤΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΝΥΜΑΤΩΝ/ BLOCKING SPAM MAIL Αντιµετώπιση των ανεπιθύµητων ηλεκτρονικών

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

Οικονομικό Πανεπιστήμιο Αθηνών. Διπλωματική Εργασία Μεταπτυχιακού Διπλώματος Ειδίκευσης. Άρης Κοσμόπουλος

Οικονομικό Πανεπιστήμιο Αθηνών. Διπλωματική Εργασία Μεταπτυχιακού Διπλώματος Ειδίκευσης. Άρης Κοσμόπουλος Οικονομικό Πανεπιστήμιο Αθηνών Διπλωματική Εργασία Μεταπτυχιακού Διπλώματος Ειδίκευσης Άρης Κοσμόπουλος Πρόβλημα ανεπιθύμητων μηνυμάτων Περισσότερα από το 60% των ηλεκτρονικών μηνυμάτων είναι ανεπιθύμητα

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

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

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

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

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο Βασικές Υπηρεσίες Διαδικτύου Επικοινωνίες Δεδομένων Μάθημα 2 ο Μεταφορά αρχείων (File Transfer Protocol, FTP) user at host FTP user interface FTP client local file system file transfer FTP server remote

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ 1. ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝ ΕΦΑΡΜΟΓΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΚΕΙΜΕΝΟΥ 1.1. Χειρισµός εγγράφων 1.1.1. ηµιουργία, Άνοιγµα, Κλείσιµο, Αποθήκευση εγγράφου 1.1.2. Αποθήκευση εγγράφου µε

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

HMY 795: Αναγνώριση Προτύπων

HMY 795: Αναγνώριση Προτύπων HMY 795: Αναγνώριση Προτύπων Διάλεξη 3 Επιλογή μοντέλου Επιλογή μοντέλου Θεωρία αποφάσεων Επιλογή μοντέλου δεδομένα επικύρωσης Η επιλογή του είδους του μοντέλου που θα χρησιμοποιηθεί σε ένα πρόβλημα (π.χ.

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

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

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

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

Βιοπληροφορική και Πολυµέσα. Ειρήνη Αυδίκου Αθήνα

Βιοπληροφορική και Πολυµέσα. Ειρήνη Αυδίκου Αθήνα Βιοπληροφορική και Πολυµέσα Αθήνα 1.2.2009 ΠΕΡΙΕΧΟΜΕΝΑ 1. Πως σχετίζεται µε τα Πολυµέσα 2. Τι είναι η Βιοπληροφορική 3. Χρήσεις 4. Συµπεράσµατα 5. Βιβλιογραφία Βιοπληροφορική και Πολυµέσα 2 1. Τι είναι

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

Οδηγίες. για την υπηρεσία. Antispamming. (στα Windows Vista) Περιεχόµενα

Οδηγίες. για την υπηρεσία. Antispamming. (στα Windows Vista) Περιεχόµενα Οδηγίες για την υπηρεσία Antispamming (στα Windows Vista) Περιεχόµενα Ενεργοποίηση της υπηρεσίας (µέσω Internet Explorer)... σελ. 2 ηµιουργία Κανόνα Αλληλογραφίας για spam στην Ηλεκτρ. Αλληλ σελ. 5 α.

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

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

φροντιστήρια   Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέμα Α Α1. Να γράψετε στο τετράδιο σας το γράμμα της κάθε πρότασης και δίπλα τη λέξη

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

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

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

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

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

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

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

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

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

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

7.6 ιευθυνσιοδότηση. Ερωτήσεις

7.6 ιευθυνσιοδότηση. Ερωτήσεις 7.6 ιευθυνσιοδότηση Ερωτήσεις 1. Να εξηγήσετε τους όρους διεύθυνση, όνοµα και διαδροµή στην τεχνολογία TCP/IP και να εξηγήσετε πώς σχετίζονται αυτοί µεταξύ τους. 2. Τι είναι η φυσική διεύθυνση ή διεύθυνση

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

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 18η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται: στο βιβλίο Machine Learning του T. Mitchell, McGraw- Hill, 1997,

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

«Κατηγοριοποίηση Ιστοσελίδων με Χρήση Τεχνικών Μηχανικής Μάθησης»

«Κατηγοριοποίηση Ιστοσελίδων με Χρήση Τεχνικών Μηχανικής Μάθησης» «Κατηγοριοποίηση Ιστοσελίδων με Χρήση Τεχνικών Μηχανικής Μάθησης» Η ιπλωµατική Εργασία παρουσιάστηκε ενώπιον του ιδακτικού Προσωπικού του Πανεπιστηµίου Αιγαίου Σε Μερική Εκπλήρωση των Απαιτήσεων για το

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

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business. e-mail: kyritsis@ist.edu.

Managing Information. Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business. e-mail: kyritsis@ist.edu. Managing Information Lecturer: N. Kyritsis, MBA, Ph.D. Candidate Athens University of Economics and Business e-mail: kyritsis@ist.edu.gr Διαχείριση Γνώσης Knowledge Management Learning Objectives Ποιοί

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

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ (ΜΕ ΒΑΣΗ ΤΟ ΚΕΦ. 6 ΤΟΥ ΒΙΒΛΙΟΥ «ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ» ΤΩΝ ΒΛΑΧΑΒΑ, ΚΕΦΑΛΑ, ΒΑΣΙΛΕΙΑ Η, ΚΟΚΚΟΡΑ & ΣΑΚΕΛΛΑΡΙΟΥ) Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ Είναι γνωστές µερικές

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

Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή

Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΗΜΜΥ 795: ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ Ακαδηµαϊκό έτος 2010-11 Χειµερινό Εξάµηνο Τελική εξέταση Τρίτη, 21 εκεµβρίου 2010,

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

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

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ... ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ...1 1. Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...3 Κατηγορίες των Γεωγραφικών εδοµένων...3 Γεωγραφικές οντότητες...3 ιαστάσεις

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

Πρόλογος των Συγγραφέων

Πρόλογος των Συγγραφέων Πρόλογος των Συγγραφέων Τεχνητή Νοηµοσύνη (ΤΝ) είναι ο τοµέας της επιστήµης των υπολογιστών, που ασχολείται µε τη σχεδίαση ευφυών (νοηµόνων) υπολογιστικών συστηµάτων, δηλαδή συστηµάτων που επιδεικνύουν

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

Αναγνώριση Προτύπων Ι

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

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

Αναπαράσταση του κώδικα σε ένα ρομποτικό project

Αναπαράσταση του κώδικα σε ένα ρομποτικό project Η εμπειρία από την εφαρμογή της Εκπαιδευτικής Ρομποτικής στα σχολεία Ράλλειος Σχολή 20 Δεκεμβρίου 2017 Αναπαράσταση του κώδικα σε ένα ρομποτικό project Τάσος Λαδιάς Σχολικός Σύμβουλος ΠΕ19 ladiastas@gmail.com

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

Εξόρυξη Γνώσης από εδοµένα (data mining)

Εξόρυξη Γνώσης από εδοµένα (data mining) Εξόρυξη νώσης από εδοµένα (data mining) Ε.Κ.Ε.Φ.Ε. ηµόκριτος Ινστ. Πληροφορικής και Τηλεπικοινωνιών εώργιος Παλιούρας Email: paliourg@iit.demokritos.gr WWW: http://www.iit.demokritos.gr/~paliourg Περιεχόµενα

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

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

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

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

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

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

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

2. Missing Data mechanisms

2. Missing Data mechanisms Κεφάλαιο 2 ο 2. Missing Data mechanisms 2.1 Εισαγωγή Στην προηγούµενη ενότητα περιγράψαµε κάποια από τα βασικά µοτίβα εµφάνισης των χαµένων τιµών σε σύνολα δεδοµένων. Ένα άλλο ζήτηµα που µας απασχολεί

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

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

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

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αθήνα 18/ 10/ 2001

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αθήνα 18/ 10/ 2001 ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αθήνα 18/ 10/ 2001 ΥΠ.ΕΣ...Α Αριθµ.Πρωτ. / ΙΑ Π/A1/22123 Γ.Γ. ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ ΓΕΝ. /ΝΣΗ ΙΟΙΚΗΤΙΚΗΣ ΟΡΓΑΝΩΣΗΣ /ΝΣΗ ΑΠΛΟΥΣΤΕΥΣΗΣ ΙΑ ΙΚΑΣΙΩΝ ΚΑΙ ΠΑΡΑΓΩΓΙΚΟΤΗΤΑΣ ΤΜΗΜΑ ΜΕΘΟ ΩΝ ΕΡΓΑΣΙΩΝ

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

Περιεχόµενα. 1 Εισαγωγή: Λίγα λόγια για το βιβλίο Τι νέο υπάρχει στο Outlook Ξεκίνηµα Ευχαριστίες...

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

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

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

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

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

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

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

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

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

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

Προπτυχιακές και µεταπτυχιακές εργασίες Μάρτιος 2005

Προπτυχιακές και µεταπτυχιακές εργασίες Μάρτιος 2005 ΕΚΕΦΕ «ηµόκριτος» Ινστιτούτο Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Τεχνολογίας Γνώσεων και Λογισµικού Προπτυχιακές και µεταπτυχιακές εργασίες Μάρτιος 2005 Το Εργαστήριο Τεχνολογίας Γνώσεων και Λογισµικού

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

Μέθοδοι εκμάθησης ταξινομητών από θετικά παραδείγματα με αριθμητικά χαρακτηριστικά. Νικόλαος Α. Τρογκάνης Διπλωματική Εργασία

Μέθοδοι εκμάθησης ταξινομητών από θετικά παραδείγματα με αριθμητικά χαρακτηριστικά. Νικόλαος Α. Τρογκάνης Διπλωματική Εργασία Μέθοδοι εκμάθησης ταξινομητών από θετικά παραδείγματα με αριθμητικά χαρακτηριστικά Νικόλαος Α. Τρογκάνης Διπλωματική Εργασία Αντικείμενο Μελέτη και ανάπτυξη μεθόδων από τον χώρο της μηχανικής μάθησης για

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

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

χρήστες και υπηρεσίες

χρήστες και υπηρεσίες ιδακτικό υλικό µαθητή χρήστες και υπηρεσίες Από όσα αναφέρθηκαν, γίνεται αντιληπτό ότι όποιος έχει τον κατάλληλο εξοπλισµό και έχει εξασφαλίσει τον τρόπο σύνδεσής του µε το ιαδίκτυο, µπορεί να το χρησιµοποιήσει.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΕΡΓΑΛΕΙΑ ΙΟΙΚΗΣΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΜΑΘΗΜΑ: ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΙΟΙΚΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ: ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΡΓΑΛΕΙΑ ΙΟΙΚΗΣΗΣ ιδάσκων:

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

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών κεφάλαιο 1 Βασικές Έννοιες Επιστήμη 9 1Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ Στόχοι Στόχος του κεφαλαίου είναι οι μαθητές: να γνωρίσουν βασικές έννοιες και τομείς της Επιστήμης. Λέξεις κλειδιά Επιστήμη

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο 2.5 µονάδες ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 2 Σεπτεµβρίου 2005 5:00-8:00 Σχεδιάστε έναν αισθητήρα ercetro

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

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

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

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1 Αριθµητικό Σύστηµα! Ορίζει τον τρόπο αναπαράστασης ενός αριθµού µε διακεκριµένα σύµβολα! Ένας αριθµός αναπαρίσταται διαφορετικά σε κάθε σύστηµα,

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

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

αντισταθµίζονται µε τα πλεονεκτήµατα του άλλου, τρόπου βαθµολόγησης των γραπτών και της ερµηνείας των σχετικών αποτελεσµάτων, και 1. ΕΙΣΑΓΩΓΗ Όλα τα είδη ερωτήσεων που αναφέρονται στο «Γενικό Οδηγό για την Αξιολόγηση των µαθητών στην Α Λυκείου» µπορούν να χρησιµοποιηθούν στα Μαθηµατικά, τόσο στην προφορική διδασκαλία/εξέταση, όσο

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

Εργαστηριακή Άσκηση 5

Εργαστηριακή Άσκηση 5 ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2012-2013 Τάξη : B Τομέας : Πληροφορικής Μάθημα : ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-internet Εργαστηριακή Άσκηση 5 Εκπαιδευτικοί

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

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.11 Πρωτόκολλα Εφαρµογής 104. Αναφέρετε ονοµαστικά τις πιο χαρακτηριστικές εφαρµογές που υποστηρίζει η τεχνολογία TCP/IP οι οποίες είναι διαθέσιµες στο ιαδίκτυο 1. Ηλεκτρονικό

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

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

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

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

Το λογισµικό εκπόνησης οικονοµοτεχνικών µελετών COBA. Η δυνατότητα εφαρµογής του στην Ελλάδα.

Το λογισµικό εκπόνησης οικονοµοτεχνικών µελετών COBA. Η δυνατότητα εφαρµογής του στην Ελλάδα. Το λογισµικό εκπόνησης οικονοµοτεχνικών µελετών COBA. Η δυνατότητα εφαρµογής του στην Ελλάδα. Κ.Μ. Ευθυµίου Πολιτικός µηχανικός, Msc. Λέξεις κλειδιά: COBA, οικονοµοτεχνική µελέτη ΠΕΡΙΛΗΨΗ: Το λογισµικό

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

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Εισαγωγή 1. Τι είναι αυτό που κρατάς στα χέρια σου. Αυτό το κείµενο είναι µια προσπάθεια να αποτυπωθεί όλη η θεωρία του σχολικού µε

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα

Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά δεδομένα 6ο Πανελλήνιο Συνέδριο των Εκπαιδευτικών για τις ΤΠΕ «Αξιοποίηση των Τεχνολογιών της Πληροφορίας και της Επικοινωνίας στη Διδακτική Πράξη» Σύρος 6-8 Μαϊου 2011 Ανακάλυψη κανόνων συσχέτισης από εκπαιδευτικά

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