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

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

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

Transcript

1 Πανεπιστήμιο Πατρών Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Μεταπτυχιακό Πρόγραμμα: Επιστήμη και Τεχνολογία των Υπολογιστών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΕΧΝΙΚΕΣ ΓΙΑ ΠΡΟΣΑΡΜΟΣΤΙΚΗ ΚΑΙ ΠΡΟΣΩΠΟΠΟΙΗΜΕΝΗ ΠΡΟΣΒΑΣΗ ΣΕ ΙΣΤΟΣΕΛΙΔΕΣ ΤΣΑΚΟΥ ΑΝΑΣΤΑΣΙΑ A.M.:320 Επιβλέπων Καθηγητής: Γαροφαλάκης Ιωάννης Τριμελής εξεταστική επιτροπή: Γαροφαλάκης Ιωάννης (Καθηγητής) Μπούρας Χρήστος (Καθηγητής) Χατζηλυγερούδης Ιωάννης (Αναπληρωτής Καθηγητής) Πάτρα, 2013

2 ΕΥΧΑΡΙΣΤΙΕΣ Η παρούσα διπλωματική εργασία εκπονήθηκε στα πλαίσια του Μεταπτυχιακού προγράμματος σπουδών «Επιστήμη και Τεχνολογία των Υπολογιστών» του τμήματος Μηχανικών Η/Υ και Πληροφορικής του Πανεπιστημίου Πατρών, υπό την επίβλεψη του Καθηγητή κ. Γαροφαλάκη Ιωάννη. Θα ήθελα λοιπόν να πρώτα από όλους να ευχαριστήσω τον κύριο Γαροφαλάκη Ιωάννη που χωρίς τη καθοδήγησή του και τις οδηγίες του δε θα είχε πραγματοποιηθεί αυτή η εργασία. Επίσης, ευχαριστώ τα υπόλοιπα μέλη της τριμελούς επιτροπής, τους κυρίους Μπούρα Χρήστο, Καθηγητή και Χατζηλυγερούδη Ιωάννη, Αναπληρωτή Καθηγητή, για την συνεργασία και συμβολή τους στην ολοκλήρωση της παρούσας εργασίας. Θα ήθελα να ευχαριστήσω ακόμα τον σύζυγό μου Φάνη για την ηθική και ψυχική συμπαράσταση καθώς και για τη συμβολή του με τα σχόλια, την κριτική και τις γνώσεις του στην αντιμετώπιση των δυσκολιών. Τέλος, θέλω να ευχαριστήσω τους γονείς μου και τα παιδιά μου για την υπομονή τους αλλά και την ηθική στήριξη τους. Πάτρα, 24 Απριλίου 2013 Τσάκου Αναστασία 2

3 ΠΕΡΙΛΗΨΗ Ο μεγάλος όγκος σελίδων και υπηρεσιών στο Διαδίκτυο αρκετές φορές δημιουργεί προβλήματα πλοήγησης με αποτέλεσμα η αναζήτηση εγγράφων και πληροφοριών να είναι μια εξαιρετικά χρονοβόρα και δύσκολη διαδικασία. Για το λόγο αυτό είναι απαραίτητη η πρόβλεψη των αναγκών των χρηστών με στόχο τη βελτίωση της χρηστικότητας του Διαδικτύου αλλά και της παραμονής του χρήστη σε έναν δικτυακό τόπο. Ο στόχος αυτής της διπλωματικής εργασίας είναι αρχικά να παρουσιάσει μεθόδους και τεχνικές που χρησιμοποιούνται για την εξατομίκευση και προσαρμογή στα ενδιαφέροντα του χρήστη, δικτυακών τόπων. Η εξατομίκευση περιλαμβάνει τη χρήση πληροφοριών που προέρχονται από τα ενδιαφέρονται και τη συμπεριφορά πλοήγησης του χρήστη σε συνδυασμό με το περιεχόμενο και τη δομή του δικτυακού τόπου. Στη συνέχεια παρουσιάζεται ένα σύστημα αναδιοργάνωσης της δομής ενός δικτυακού τόπου, του οποίου η υλοποίηση βασίστηκε στη δημοτικότητα των σελίδων για κάθε χρήστη όπως αυτή προκύπτει από τα log αρχεία που διατηρεί ο server του δικτυακού τόπου. Τέλος, το σύστημα αυτό εφαρμόζεται σε έναν πειραματικό δικτυακό τόπο και γίνεται αξιολόγηση των αποτελεσμάτων εφαρμογής του. 3

4 ABSTRACT The large number of web pages on many Web sites has raised navigation problems. As a result, users often miss the goal of their inquiry, or receive ambiguous results when they try to navigate through them. Therefore, the requirement for predicting user needs in order to improve the usability and user retention of a Web Site is more than ever, indispensable. The primary purpose of this thesis is to explore methods and techniques for improving or personalizing Web Sites. Web personalization includes any action that adapts the information or services provided by a Web site to the needs of a particular user or a set of users, taking advantage of the knowledge gained from the users navigation behavior and interests in combination with the content and structure of the Web Site. Secondly, this thesis describes the implementation of a tool (reorganization software) which parses log files and uses specific metrics related to web page accesses, in order to reorganize the structure of a web site according to its users preferences. Finally, the tool is applied in an experimental Web Site and the results of this reorganization process are evaluated. 4

5 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 5 ΕΥΡΕΤΗΡΙΟ ΕΙΚΟΝΩΝ... 7 ΕΥΡΕΤΗΡΙΟ ΠΙΝΑΚΩΝ... 8 ΠΡΟΛΟΓΟΣ... 9 ΚΕΦΑΛΑΙΟ ΕΞΟΡΥΞΗ ΓΝΩΣΗΣ ΑΠΟ ΤΟ WEB Δεδομένα του Web Καθορισμός όρων Ταξινομία στην Εξόρυξη γνώσης από τα δεδομένα του Web Εξόρυξη Γνώσης από το Περιεχόμενο του Web Εξόρυξη Γνώσης από τη δομή του Web ΚΕΦΑΛΑΙΟ ΕΞΟΡΥΞΗ ΓΝΩΣΗΣ ΑΠΟ ΤΗ ΧΡΗΣΗ ΤΟΥ WEB Πηγές δεδομένων Συλλογή σε επίπεδο Server Συλλογή σε επίπεδο Πελάτη Συλλογή σε επίπεδο Proxy Προ-επεξεργασία Προ-επεξεργασία του Περιεχομένου Προ-επεξεργασία της Δομής Προ-επεξεργασία της Χρήσης Ανακάλυψη προτύπων Στατιστική Ανάλυση Συχνά στοιχειοσύνολα και Κανόνες Συσχέτισης (Association rule mining) Συσταδοποίηση (Clustering) Κατηγοριοποίηση (Classification) Ακολουθιακά Πρότυπα (Sequential pattern discovery) Υπόδειγμα εξάρτησης Ανάλυση Προτύπων Μετρικές Ενδιαφέροντος Εργαλεία Εφαρμογές Εξατομίκευση Βελτίωση Συστήματος Διαμόρφωση του Site Επιχειρηματική Ευφυΐα Χαρακτηρισμός Χρήσης του Web ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΕΣ ΓΙΑ ΕΞΑΤΟΜΙΚΕΥΣΗ ΚΑΙ ΠΡΟΣΑΡΜΟΣΤΙΚΟΤΗΤΑ Σχεδιασμός του προφίλ του Χρήστη Τεχνολογίες Φιλτραρίσματος Φιλτράρισμα που βασίζεται σε κανόνες Συνεργατικό Φιλτράρισμα Φιλτράρισμα που βασίζεται στο περιεχόμενο Έξυπνοι πράκτορες για εξατομίκευση Εξατομίκευση με βάση τη θέση Μοντελοποίηση Προτιμήσεων Εξαγωγή προτιμήσεων

6 3.5.2 Κρίνοντας υποθετικές προτιμήσεις Ερωτήματα με βάση την προτίμηση ΚΕΦΑΛΑΙΟ ΠΡΟΤΥΠΑ ΓΙΑ ΕΞΑΤΟΜΙΚΕΥΣΗ ΕΝΟΣ SITE Είδη προσαρμοστικών Web Site Μετασχηματισμοί Υποβιβασμός και Προβιβασμός Εντυπωσιακός τονισμός Συνδεσιμότητα Συσταδοποίηση Ανάλυση Μετασχηματισμών Αυτοματισμός Πρότυπα για εξατομικευμένες εφαρμογές Εξατομίκευση συνδέσμων Εξατομίκευση περιεχομένου Εξατομίκευση δομής Εξατομίκευση από την πλευρά του πελάτη ΚΕΦΑΛΑΙΟ ΕΠΙΣΚΟΠΗΣΗ ΠΡΟΣΑΡΜΟΣΤΙΚΩΝ ΤΕΧΝΙΚΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΤΗΝ ΑΝΑΛΥΣΗ ΤΗΣ ΧΡΗΣΗΣ ΤΟΥ WEB Εξόρυξη γνώσης από συσταδοποίηση Εξόρυξης γνώσης από κανόνες συσχέτισης Εξόρυξη γνώσης από ακολουθιακά πρότυπα ΚΕΦΑΛΑΙΟ ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΠΡΟΣΩΠΟΠΟΙΗΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ Ορισμός της δημοτικότητας μιας σελίδας Ορισμός του συντελεστή a Αναδιοργάνωση ενός Site Περιγραφή Συστήματος O Web Crawler Η βάση δεδομένων Τα log files Κώδικας Συστήματος Παρουσίαση Συστήματος ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΝΑΔΙΟΡΓΑΝΩΣΗΣ ΣΕ ΠΕΙΡΑΜΑΤΙΚΟ WEB SITE Η διαδικασία αναδιοργάνωσης του Site Η ανάλυση του Site Η ανάλυση του Log Αρχείου Η αναδιοργάνωση του Site στο σύστημα Παρουσίαση της νέας δομής του Site Συμπεράσματα ΕΠΙΛΟΓΟΣ ΤΟ ΜΕΛΛΟΝ ΤΗΣ ΕΞΑΤΟΜΙΚΕΥΣΗΣ ΑΝΑΦΟΡΕΣ ΒΙΒΛΙΟΓΡΑΦΙΑ

7 ΕΥΡΕΤΗΡΙΟ ΕΙΚΟΝΩΝ Εικόνα 1: Βασικές λειτουργίες του HITS Εικόνα 2: Η διαδικασία εξόρυξης από τη χρήση του Web Εικόνα 3: Πηγές Δεδομένων Εικόνα 4: Λεπτομέρειες της Προ-επεξεργασίας της Χρήσης Εικόνα 5: Τύποι Επεισοδίων Εικόνα 6: Μήκη Αναφορών Εικόνα 7: Παράδειγμα προτύπων διάσχισης Εικόνα 8: Οι κυριότερες περιοχές εφαρμογών στην εξόρυξη δεδομένων του Web Εικόνα 9: Μια γενική αρχιτεκτονική για Εξατομίκευση με βάση τη χρήση του Web Εικόνα 10: Συνολική διεργασία εξατομίκευσης σε ένα Web Site Εικόνα 11: Διαφορετικές τοπολογίες για διαφορετικούς χρήστες Εικόνα 12: Εξατομικεύοντας τα περιεχόμενα ενός κόμβου Εικόνα 13: Εξατομίκευση Δομής Εικόνα 14: To 54 Εικόνα 15: Στο my.yahoo.com ο χρήστης δηλώνει τα αγαπημένα του αντικείμενα Εικόνα 16: Το σχήμα απομακρυσμένης εξατομίκευσης Εικόνα 17: Η βάση δεδομένων Εικόνα 18:Παράδειγμα log αρχείου Εικόνα 19:Το Λογισμικό συστήματος :βασικό μενού επιλογών Εικόνα 20:Μετά το indexing Εικόνα 21:Το Log file parsing Εικόνα 22: Η αναδιοργάνωση του Site για το IP Εικόνα 23: Η δομή του Site πριν και μετά την αναδιοργάνωση Εικόνα 24:Το Site πριν την αναδιοργάνωση Εικόνα 25:Το site μετά την αναδιοργάνωση για συγκεκριμένο χρήστη Εικόνα 26:Οι προτάσεις που παρουσιάζονται στο χρήστη Εικόνα 27:Οι προτάσεις σε άλλη σελίδα

8 ΕΥΡΕΤΗΡΙΟ ΠΙΝΑΚΩΝ Πίνακας Πίνακας

9 ΠΡΟΛΟΓΟΣ Είναι γεγονός πως τα τελευταία χρόνια ο αριθμός των χρηστών του Διαδικτύου και ο αριθμός των σελίδων και υπηρεσιών του Παγκόσμιου Ιστού αυξάνονται συνεχώς με αποτέλεσμα η αναζήτηση εγγράφων και πληροφοριών να γίνεται εξαιρετικά δύσκολη, επίπονη και φυσικά περισσότερο χρονοβόρα διαδικασία. Ο χρήστης μένει αβοήθητος να ανακαλύψει τις πληροφορίες που αναζητεί είτε σε διαθεματικές πύλες (portals) οι οποίες προσφέρουν έναν εκτενή κατάλογο των δυνατών συνδέσεων ανά θεματική ενότητα (κατηγοριοποίηση) και με έναν ιεραρχικό τρόπο ελπίζοντας ότι ο χρήστης γρήγορα παίρνοντας το σωστό μονοπάτι θα φτάσει στο επιθυμητό φύλλο αυτού του πολύπλοκου δένδρου, είτε βέβαια κάνοντας χρήση των μηχανών αναζήτησης οι οποίες με την είσοδο κάποιων λέξεων κλειδιών επιστρέφουν ταχύτατα μεν αλλά συνήθως εκατοντάδες ή και χιλιάδες πιθανούς προορισμούς του χρήστη, ο οποίος βέβαια καλείται πάλι να ανακαλύψει με πολύ κόπο τον σωστό προορισμό του. Η εύρεση και η επίσκεψη όμως ενός κατάλληλου προορισμού - παροχέα περιεχομένου ο οποίος καλύπτει τα ενδιαφέροντα του χρήστη δεν είναι όμως και η τελική απάντηση μιας και υπάρχει το φαινόμενο της υπερκάλυψης του περιεχομένου με επιπλέον θέματα και συνδέσεις που είναι αδιάφορες για τον χρήστη. Ο μέσος χρήστης πρέπει να είναι σε θέση να ανακαλύπτει εύκολα και γρήγορα την πληροφορία ή την υπηρεσία που αναζητεί μέσα στην υπέρ-πληροφόρηση που χαρακτηρίζει το σημερινό Διαδίκτυο. Η επιπλέον δυνατότητα χρήσης του Διαδικτύου με ασύρματο τρόπο και με κινητές μονάδες προσπέλασης κάνει την παραπάνω ανάγκη της γρήγορης αναζήτησης και της εύκολης ανάκτησης της πληροφορίας ακόμα πιο έντονη και σημαντική ως παράγοντας επιτυχίας της ασύρματης τεχνολογίας. Το περιεχόμενο δεν πρέπει μόνο να προσαρμοστεί ανάλογα με τα ενδιαφέροντα του τελικού χρήστη και να προβληθεί κατάλληλα αλλά επίσης να προσαρμοστεί στους περιορισμούς που θέτει η ίδια η συσκευή (π.χ. διαστάσεις οθόνης, ασύρματη διασύνδεση, ταχύτητα επεξεργασίας, εύρος ζώνης διασύνδεσης). Για να πραγματοποιηθεί όμως μια εξατομίκευση που να ικανοποιεί τις ανάγκες και τις απαιτήσεις του εκάστοτε χρήστη θα πρέπει να καταχωρηθούν από εκείνον κάποια ενδεικτικά στοιχεία τα οποία θα καθορίζουν το προφίλ του (ενδιαφέροντα, ασχολίες, δεξιότητες κτλ.) και θα στηριχθεί η όλη διαδικασία. Πόσο διατεθειμένος είναι όμως ένας χρήστης να καταχωρήσει αυτά τα στοιχεία; Τι συντελεστής δυσκολίας θα υπάρχει και πόσο χρονοβόρα είναι η διαδικασία γι αυτόν; Πόσο εξοικειωμένος είναι με παρόμοια περιβάλλοντα καταχώρησης δεδομένων και πως θα συμβιβασθεί με την έννοια της ασφάλειας; Κάποιες από τις μελέτες που έχουν πραγματοποιηθεί κάνουν αναφορά στη χρήση πολλαπλών προφίλ για έναν συγκεκριμένο χρήστη ανάλογα με την κατάσταση που βρίσκεται. Σύμφωνα με αυτές, κύρια στοιχεία καθορισμού της δημιουργίας του κάθε προφίλ είναι αν το περιεχόμενο κατά τη διάρκεια χρήσης του διαδικτύου από τον χρήστη αναφέρεται σε εργασία ή διασκέδαση ή ποια είναι η ταχύτητα διασύνδεσης (υψηλή ή χαμηλή). Με αυτό το τρόπο ο χρήστης θα δέχεται, για παράδειγμα ενημερωτικά δελτία που θα ικανοποιούν τα ενδιαφέροντα του βάση της κατάστασης / ρόλου που επιτελεί απαλλάσσοντας τον από πληροφορίες που 9

10 θα μπορούσαν να τον αποπροσανατολίσουν και κατ επέκταση να τον ξενίσουν ως προς τη χρήση του διαδικτύου. Με την εισαγωγή καινούργιων τεχνολογιών υπάρχει κατά βάση σοβαρή ασυμφωνία στο τρόπο χρήσης και λειτουργίας, καθώς επίσης και μια πληθώρα ιδιαιτεροτήτων και περιορισμών στο τρόπο επεξεργασίας και παρουσίασης των δεδομένων. Λόγω αυτού, ο συντελεστής δυσκολίας απόδοσης ομοειδούς πληροφόρησης αυξάνεται. Από τη μία πλευρά έχουμε την σύζευξη όλων εκείνων των στοιχείων που συνθέτουν το προφίλ ενός χρήστη και από την άλλη την πολυμορφία των τεχνολογικών δομών και συσκευών που καλούνται να μεταφέρουν το επιθυμητό αποτέλεσμα σε συγκεκριμένα χρονικά πλαίσια και σε προκαθορισμένη μορφή. Πρέπει επομένως να υπάρξει συγκεκριμένη κατηγοριοποίηση προφίλ χρηστών, και αν ναι σε πιο βαθμό; Ποια είναι τα σημεία εκείνα που πρέπει να βελτιωθούν ή να αναπτυχθούν για να υπάρξει ενοποίηση και άρτια ενδοεπικοινωνία των τεχνολογιών αυτών για τη καλύτερη μεταφορά της απαιτούμενης πληροφορίας προς τον χρήστη; Στόχος της παρούσας εργασίας είναι λοιπόν να μελετηθούν και να αναπτυχθούν μέθοδοι και τεχνικές που θα εξασφαλίζουν την εξατομικευμένη χρήση του διαδικτύου (personalization) και την προσαρμογή της προβολής του περιεχομένου (adaptation/customization) στην καλύτερη δυνατή ποιότητα για το χρήστη. Στο πρώτο κεφάλαιο γίνεται αποσαφήνιση βασικών όρων που αφορούν την εξόρυξη γνώσης από το Web ενώ περιγράφονται συνοπτικά οι διαδικασίες εξόρυξης δεδομένων από το περιεχόμενο καθώς και από τη δομή του Web. Στο δεύτερο κεφάλαιο παρουσιάζεται αναλυτικά η διαδικασία εξόρυξης δεδομένων από τη χρήση του Web. Πιο συγκεκριμένα αναλύονται τα στάδια της διαδικασίας εξόρυξης δεδομένων από τη χρήση του Web και δίνονται παραδείγματα κατηγοριών εφαρμογών που χρησιμοποιούν τη διαδικασία αυτή για την ανακάλυψη γνώσης. Μια από αυτές τις κατηγορίες είναι και η εξατομίκευση. Στο επόμενο κεφάλαιο παρουσιάζονται οι υπάρχουσες τεχνολογίες για εξατομίκευση και προσαρμοστικότητα ενός Web Site. Η συνολική διαδικασία της εξατομίκευσης χωρίζεται σε δύο επιμέρους διαδικασίες, την offline και την online οι οποίες αναλύονται λεπτομερώς στο κεφάλαιο αυτό. Το τέταρτο κεφάλαιο παρουσιάζονται τα πρότυπα προσαρμοστικών Site. Ανάλογα με τον σχεδιασμό τους διακρίνονται τέσσερις βασικές κατηγορίες Προσαρμοστικών Site με βάση κάποιους άξονες σχεδιασμού καθώς και τέσσερα είδη μετασχηματισμών σε ένα Site. Οι μετασχηματισμοί αφορούν τον υποβιβασμό ή προβιβασμό σελίδων, τον εντυπωσιακό τονισμό συνδέσμων με τη χρήση χρωμάτων και γραφικών, τη προσθήκη νέων συνδέσμων και τέλος την ομαδοποίηση σελίδων με παρόμοια περιεχόμενα. Στο κεφάλαιο 5 παρουσιάζονται διάφορες προσαρμοστικές τεχνικές και αλγόριθμοι που έχουν προταθεί για την ανακάλυψη προτύπων μέσω την ανάλυσης της χρήσης του Web όπως αυτή περιγράφεται στο κεφάλαιο 2. Τέλος, στο κεφάλαιο 6 παρουσιάζεται μια τεχνική βελτιστοποίησης ενός Site που ολοκληρώνεται με την παρουσίαση του λογισμικού αναδιοργάνωσης ενός Site που κατασκευάστηκε με βάση την συγκεκριμένη τεχνική και την εφαρμογή του σε πειραματικό Web Site (κεφάλαιο 7). 10

11 ΚΕΦΑΛΑΙΟ 1 ΕΞΟΡΥΞΗ ΓΝΩΣΗΣ ΑΠΟ ΤΟ WEB Οι άνθρωποι εκμεταλλεύονται το Διαδίκτυο με ποικίλους τρόπους. Μπορεί να αναζητούν πληροφορίες με μηχανές αναζήτησης, να κάνουν αγορές μέσω ηλεκτρονικών καταστημάτων, να πωλούν αντικείμενα, να κάνουν διαφήμιση κ.α. Φυσικά επιθυμούν όλα τα προηγούμενα να γίνονται γρήγορα, εύκολα και φιλικά. Οι παροχείς περιεχομένου προσπαθούν να προσφέρουν στους χρήστες τους τέτοιες υψηλού επιπέδου υπηρεσίες. Για να γίνει αυτό, απαιτείται να γνωρίζουν αρκετές πληροφορίες που αφορούν την ιστοσελίδα τους καθώς και πληροφορίες για τα άτομα που την επισκέπτονται. Η εξόρυξη γνώσης από το Web (Web Mining) είναι ένα σημαντικό εργαλείο για το σκοπό αυτό. Είναι ένα μέρος ανακάλυψης γνώσης και μπορεί να οριστεί ευρέως σαν εφαρμογή τεχνολογιών εξόρυξης δεδομένων (data mining technologies ) στα τεράστια αποθέματα δεδομένων του Web. 1.1 Δεδομένα του Web Τα δεδομένα από το Web μπορούν να συλλεχθούν από διαφορετικές πηγές δηλαδή από την πλευρά του Server (Εξυπηρετητή), από την πλευρά του Client (Πελάτη), από τους Proxy Servers (διαμεσολαβητές), από την Βάση Δεδομένων της εταιρείας κ.α.. Τα δεδομένα διαφέρουν όσον αφορά την προέλευση τους και όσον αφορά την ταξινόμησή τους. Συνήθως κατηγοριοποιούνται σε τέσσερις ομάδες: Περιεχομένου (Content): Τα πραγματικά δεδομένα στις Web σελίδες, δηλαδή τα δεδομένα τα οποία η σελίδα σχεδιάστηκε να μεταφέρει στους χρήστες. Αυτά συνήθως αποτελούνται από κείμενο και γραφικά χωρίς ωστόσο να υπάρχει περιορισμός ως προς αυτό. Δομής (Structure): Δεδομένα τα οποία περιγράφουν την οργάνωση του περιεχομένου. Πληροφορίες για την εσωτερική δομή της σελίδας περιλαμβάνουν τη χρήση HTML ή XML ετικετών. Η βασική αρχή είναι οι υπερσύνδεσμοι που συνδέουν μια σελίδα με κάποια άλλη. Χρήσης (Usage): Είναι δεδομένα τα οποία περιγράφουν τα πρότυπα χρήσης (Usage Patterns) των Web σελίδων, όπως είναι οι IP διευθύνσεις, οι αναφορές στις σελίδες, η ημερομηνία και ο χρόνος προσπέλασής τους. Τυπικά, τα δεδομένα προέρχονται από το Extended Common Log Format (ECLF) - log αρχείο στον Server. Προφίλ του Χρήστη (User Profile): Είναι δεδομένα που περιγράφουν δημογραφικές πληροφορίες σχετικά με τους χρήστες του Web Site. Αυτά περιλαμβάνουν δεδομένα εγγραφής και πληροφορίες για το προφίλ του χρήστη. 11

12 1.2 Καθορισμός όρων Η αποσαφήνιση των όρων που χρησιμοποιούνται στην διαδικασία εξόρυξης του Web είναι πολύ σημαντική. Γι αυτό, αυτή η ενότητα περιλαμβάνει τους πιο ευρέως χρησιμοποιούμενους ορισμούς. Οι υπόλοιποι μπορούν να βρεθούν στο (11). Web Core (Πυρήνας του Web): Είναι η συλλογή των πηγών πληροφορίας που υπάρχουν στο Διαδίκτυο, η οποία μπορεί να προσπελαστεί με οποιαδήποτε έκδοση του HTTP σαν τμήμα της στοίβας του πρωτοκόλλου (είτε ισοδύναμου της), είτε άμεσα είτε μέσω μεσάζοντα. Web Resource (Πηγή του Web): Μια πηγή η οποία καθορίζεται με ένα URI το οποίο είναι μέλος του Web Core. URI: Η προδιαγραφή URI ορίζει ένα Uniform Resource Identifier (URI) σαν ένα συμβόλαιο μιας ακολουθίας χαρακτήρων για τον καθορισμό μιας σύνοψης για μια φυσική πηγή. Link (Σύνδεσμος): Ένας σύνδεσμος εκφράζει μία ή περισσότερες (άμεσα ή έμμεσα) σχέσεις μεταξύ δύο ή περισσοτέρων πηγών. Web Server: Ένας Server που παρέχει πρόσβαση σε Web πηγές και ο οποίος εφοδιάζει με εμφανίσεις πηγών τον αιτούντα. User (Χρήστης): Ο εντολέας που χρησιμοποιεί τον Client για την αλληλεπιδραστική ανάκτηση και μετάδοση πηγών ή εμφανίσεων πηγών. Web Site: Μια συλλογή από διασυνδεδεμένες ιστοσελίδες που περιλαμβάνουν μια σελίδα υποδοχής στην ίδια τοποθεσία του δικτύου. Με τον όρο «Διασυνδεδεμένες» εννοούμε πως οποιαδήποτε συνιστώσα σελίδα του Web Site μπορεί να προσπελαστεί ακολουθώντας μια ακολουθία αναφορών που αρχίζουν από την σελίδα υποδοχής και εκτείνονται από αυτήν έως και περισσότερες σελίδες που βρίσκονται στο ίδιο Web Site, τελειώνοντας στη σελίδα που ζητήθηκε. Cookie: Είναι τα δεδομένα τα οποία στέλνονται από τον Web Server στον Web Client, τα οποία αποθηκεύονται τοπικά στον πελάτη και αποστέλλονται στον Server σε συνακόλουθες αιτήσεις. Web Page (Ιστοσελίδα): Μια συλλογή από πληροφορίες, που αποτελείται από μία ή περισσότερες Web πηγές, οι οποίες μεταδίδονται ταυτόχρονα και καθορίζονται από ένα μοναδικό URI. Page View (Προβολή σελίδας): Είναι η οπτική μετάδοση μιας Web σελίδας σε ένα συγκεκριμένο περιβάλλον του πελάτη σε μια καθορισμένη χρονική στιγμή. User Session (Σύνοδος του χρήστη): Ένα οριοθετημένο σύνολο από αιτήσεις του χρήστη μεταξύ ενός ή περισσοτέρων Web Server. 12

13 Episode (Επεισόδιο): Ένα υποσύνολο από συσχετισμένες αιτήσεις του χρήστη που εμφανίζονται σε ένα User Session. Server Session (Σύνοδος του Server): Μια συλλογή από αιτήσεις ενός χρήστη σε έναν Web Server κατά τη διάρκεια ενός User Session. Αυτό ονομάζεται και επίσκεψη. 1.3 Ταξινομία στην Εξόρυξη γνώσης από τα δεδομένα του Web Η πρώτη ταξινόμηση στην εξόρυξη γνώσης από τα δεδομένα του Web δόθηκε στο (71) και χωρίζεται σε Εξόρυξη Γνώσης από το Περιεχομένο του Web (Web Content Mining) και σε Εξόρυξη Γνώσης από τη Χρήση του Web (Web Usage Mining). Σήμερα, η Εξόρυξη Γνώσης από τη δομή του Web (Web structure mining) θεωρείται ένα τρίτο τμήμα της εξόρυξης δεδομένων του Web. Στη συνέχεια, περιγράφονται συνοπτικά οι δύο πρώτες κατηγορίες της εξόρυξης γνώσης από τα δεδομένα του Web ενώ στο επόμενο κεφάλαιο θα παρουσιαστεί αναλυτικά η τρίτη κατηγορία Εξόρυξη Γνώσης από το Περιεχόμενο του Web Η εξόρυξη γνώσης από το περιεχόμενο του Web είναι η διαδικασία της εξαγωγής γνώσης από το περιεχόμενο των Web σελίδων. Ο Cooley και οι άλλοι (71) τη διαχωρίζουν με βάση δύο προσεγγίσεις: την προσέγγιση που βασίζεται σε πράκτορα και τη προσέγγιση που βασίζεται σε βάση δεδομένων. Η πρώτη προσέγγιση, περιλαμβάνει συστήματα τεχνητής νοημοσύνης που μπορούν να ενεργούν αυτόνομα ή ημι-αυτόνομα εκ μέρους ενός συγκεκριμένου χρήστη, για την ανακάλυψη και οργάνωση πληροφορίας που βασίζεται στο Web. Μερικοί «έξυπνοι πράκτορες» μπορούν να χρησιμοποιήσουν το προφίλ ενός χρήστη για την αναζήτηση σχετικής πληροφορίας την οποία στη συνέχεια οργανώνουν και διερμηνεύουν (π.χ. το Harvest). Μερικά χρησιμοποιούν ποικίλες τεχνικές ανάκτησης πληροφορίας και τα χαρακτηριστικά ανοικτών εγγράφων υπερκειμένου για την οργάνωση και το φιλτράρισμα της ανακτηθείσας πληροφορίας (πχ το HyPursuit). Ένα άλλο είδος πράκτορα έχει προγραμματιστεί να μαθαίνει τις προτιμήσεις του χρήστη και να χρησιμοποιεί εκείνες που ανακαλύπτουν πηγές πληροφορίας για τους συγκεκριμένους χρήστες (πχ. το XpertRuleR Miner). Η δεύτερη προσέγγιση επικεντρώνεται στην ομαδοποίηση και οργάνωση ετερογενών και ημι-δομημένων δεδομένων του Web σε περισσότερο δομημένες και υψηλού επιπέδου συλλογές πόρων. Αυτοί οι οργανωμένοι πόροι μπορούν να προσπελαστούν και να αναλυθούν (67). Τα μεταδεδομένα, ή οι γενικεύσεις οργανώνονται στη συνέχεια σε δομημένες συλλογές (δηλαδή σε σχεσιακές ή αντικειμενοστραφείς βάσεις δεδομένων) και μπορούν να αναλυθούν. 13

14 1.3.2 Εξόρυξη Γνώσης από τη δομή του Web Το διαδίκτυο είναι κατά βάση ένα σύνολο από διασυνδεδεμένες Ιστοσελίδες. Η Εξόρυξη Γνώσης από τη δομή του Web ενδιαφέρεται για τη δομή αυτών των συνδέσμων για τη βελτίωση της απόδοσης ανάκτησης, για την κατηγοριοποίηση των ιστοσελίδων, την εύρεση ομοιοτήτων και σχέσεων μεταξύ αυτών ή για την εποπτεία ιστότοπων με συγκεκριμένο θέμα. Για την επίτευξη των παραπάνω, το Διαδίκτυο συχνά μοντελοποιείται σαν γράφος ώστε κατάλληλοι αλγόριθμοι να μπορούν εκ των υστέρων να εφαρμοστούν. Η πρόκληση επομένως για την εξόρυξη γνώσης από τη δομή του Web είναι η διαχείριση της δομής των υπερσυνδέσμων μέσα στο ίδιο το Web. Η ανάλυση των συνδέσμων είναι γενικά μια παλιά περιοχή έρευνας. Παρόλα αυτά, εξαιτίας του τεράστιου ενδιαφέροντος για την εξόρυξη γνώσης από το Web, η έρευνα για την ανάλυση της δομής έχει αυξηθεί με αποτέλεσμα τη δημιουργία ενός νέου πεδίου έρευνας που ονομάζεται Link Mining (εξόρυξη γνώσης από συνδέσμους) (40) που εντοπίζεται στην έρευνα της ανάλυσης συνδέσμων, υπερκείμενων, εξόρυξης γνώσης, σχεσιακής μάθησης, επαγωγικού λογικού προγραμματισμού και εξόρυξη γνώσης από γράφους. Είναι προφανές πως υπάρχει ένα μεγάλο εύρος περιοχών εφαρμογής αυτού του νέου πεδίου έρευνας που περιλαμβάνει το Διαδίκτυο. Το Web περιλαμβάνει μια ποικιλία αντικειμένων με σχεδόν διαφορετική δομή, με ανομοιότητες στο στυλ και στο περιεχόμενο πολύ περισσότερες από τις παραδοσιακές συλλογές εγγράφων. Τα αντικείμενα στο WWW είναι ιστοσελίδες και σύνδεσμοι με πολλές ιδιότητες. Η ποικιλία των αντικειμένων δημιουργεί νέα προβλήματα και προκλήσεις αφού δεν είναι δυνατή η άμεση χρήση των υπαρχουσών τεχνικών όπως από την ανάκτηση πληροφορίας ή τη διαχείριση των βάσεων δεδομένων. Έτσι, το Link Mining δημιούργησε κάποια προβλήματα σε κάποιες παραδοσιακές διεργασίες εξόρυξης γνώσης. Στη συνέχεια παρατίθενται κάποιες πιθανές διεργασίες του Link mining που μπορούν να εφαρμοστούν στην εξόρυξη γνώσης από τη δομή του Web. 1. Link-based Classification (κατηγοριοποίηση με βάση τους συνδέσμους). Είναι η πιο πρόσφατη αναβάθμιση μιας κλασσικής διεργασίας εξόρυξης γνώσης σε συνδεδεμένους τομείς (68). Η διεργασία αφορά την πρόβλεψη της κατηγορίας μιας ιστοσελίδας με βάση κάποιες λέξεις που εμφανίζονται σε αυτή τη σελίδα, τους συνδέσμους μεταξύ των σελίδων, το κείμενο, τις html ετικέτες και άλλες πιθανές ιδιότητες που μπορεί να βρεθούν στη σελίδα. 2. Link-based Cluster Analysis (ανάλυση συστάδων με βάση τους συνδέσμους). Ο στόχος στην ανάλυση συστάδων είναι η εύρεση υπο-ομάδων. Τα δεδομένα χωρίζονται σε σύνολα, όπου παρόμοια αντικείμενα ομαδοποιούνται μαζί ενώ τα ανόμοια ομαδοποιούνται σε διαφορετικά σύνολα. Η διαφορά με την προηγούμενη διεργασία έγκειται στο ότι η συγκεκριμένη δεν εποπτεύεται και μπορεί να χρησιμοποιηθεί για την ανακάλυψη κρυμμένων προτύπων από τα δεδομένα. 3. Link type (τύπος συνδέσμου). Υπάρχει ένα μεγάλο εύρος διεργασιών που αφορούν την πρόβλεψη της ύπαρξης συνδέσμων, 14

15 όπως είναι η πρόβλεψη του τύπου του συνδέσμου μεταξύ δυο οντοτήτων ή την πρόβλεψη του σκοπού ενός συνδέσμου. 4. Link Strength (δύναμη συνδέσμου). Στην προκειμένη περίπτωση οι σύνδεσμοι σχετίζονται με βάρη. 5. Link Cardinality (Πληθικότητα συνδέσμων). Η κύρια διεργασία στην περίπτωση αυτή είναι η πρόβλεψη του αριθμού των συνδέσμων μεταξύ των αντικειμένων. Υπάρχουν πολλοί τρόποι για τη χρήση της δομής του Web για τη δημιουργία εννοιών αρχής (authority). Ο βασικός στόχος είναι στην ανάπτυξη εφαρμογών για link mining είναι να γίνει καλή χρήση της κατανόησης της κοινωνικής οργάνωσης του Web. Δύο βασικές προσεγγίσεις για τη μοντελοποίηση της τοπολογίας του Web είναι η μέθοδος Pagerank και η μέθοδος HITS. Οι δύο αυτές προσεγγίσεις εστιάζουν στην δομή των συνδέσμων για να ανακαλύψουν την σημασία των ιστοσελίδων. Ο Kleinberg (36) στην HITS μέθοδο, καθορίζει δύο είδη σελίδων: τις authorities (αρχές) δηλαδή τις σελίδες με καλές πηγές περιεχομένου και τα hubs (κομβικά σημεία) δηλαδή τις σελίδες που περιέχουν καλές πηγές συνδέσμων. Για ένα δεδομένο ερώτημα, ο αλγόριθμος HITS βρίσκει authorities και hubs (εικόνα 1). Εικόνα 1: Βασικές λειτουργίες του HITS 15

16 Ο HITS συσχετίζει ένα μη αρνητικό authority βάρος x <p> και ένα μη αρνητικό hub βάρος y <p>. Τα βάρη για κάθε τύπο έχουν κανονικοποιηθεί ώστε το άθροισμα των τετραγώνων τους να ισούται με ένα. Σύμφωνα με τον Kleinberg (36), οι σελίδες (hubs και authorities) παρουσιάζουν μια σχέση αμοιβαίας ενίσχυσης, δηλαδή ένα «καλό hub» είναι μια σελίδα που δείχνει σε πολλά «καλά authorities» και ένα «καλό authority» είναι μια σελίδα που καταδεικνύεται από πολλά «καλά hubs». Αριθμητικά, αυτό μπορεί να εκφραστεί ως εξής: αν μια σελίδα p δείχνει πολλές σελίδες με μεγάλες τιμές του x τότε θα πρέπει να έχει μια μεγάλη τιμή y. Επίσης, αν η p καταδεικνύεται από πολλές σελίδες με μεγάλες τιμές y τότε θα πρέπει να έχει μια μεγάλη τιμή x (εικόνα 1). Αυτό εκφράζεται ως ακολούθως : p q X y p q Y x q:(q,p) E q:(q,p) E Ο PageRank αλγόριθμος προτάθηκε από τους L.Page και S.Brin (41,16) για τον υπολογισμό της σημασίας των ιστοσελίδων με τη χρήση της δομής των συνδέσμων. Στην προσέγγισή τους, επεκτείνουν την ιδέα της απλής μέτρησης των εισερχόμενων συνδέσμων ισοδύναμα, με την κανονικοποίηση του αριθμού των συνδέσμων σε κάθε σελίδα. Ο αλγόριθμος PageRank ορίζεται ως εξής: Υποθέτοντας ότι μια σελίδα Α έχει τις σελίδες Τ 1.Τ n που δείχνουν σε αυτή, d μια παράμετρος που μπορεί να οριστεί μεταξύ των τιμών 0 και 1 (συνήθως ορίζεται ίση με 0.85) και C(Α) ο αριθμός των εξερχόμενων συνδέσμων από την Α, τότε το PageRank της σελίδας Α είναι: PR(A) = (1-d) +d(pr(t 1 )/C(T 1 ) + +PR(T n )/C(T n )) Αξίζει να σημειωθεί πως το PageRank σχηματίζει μια πιθανοτική κατανομή των σελίδων και επομένως το άθροισμα των PageRank όλων των σελίδων θα είναι ίσο με ένα. Η παράμετρος d είναι η πιθανότητα για κάθε σελίδα ο τυχαίος επισκέπτης να βαρεθεί και να ζητήσει μια άλλη τυχαία σελίδα. Ο αλγόριθμος HITS χρησιμοποιήθηκε για πρώτη φορά από τη μηχανή αναζήτησης του συστήματος Clever (89) ενώ ο αλγόριθμος Pagerank χρησιμοποιήθηκε από το Google (88). Οι δύο αυτοί αλγόριθμοι ανήκουν σε μια κατηγορία αλγορίθμων ταξινόμησης και φυσικά υπάρχουν επεκτάσεις αυτών των δύο προσεγγίσεων. Μερικές άλλες εφαρμογές μοντέλων περιλαμβάνουν την κατηγοριοποίηση σελίδων και την ανακάλυψη μικρών κοινοτήτων μέσα στο Web. Περισσότερες εφαρμογές που αφορούν την εξόρυξη γνώσης από τη δομή του Web αναφέρονται επίσης από τον Madria (49). 16

17 ΚΕΦΑΛΑΙΟ 2 ΕΞΟΡΥΞΗ ΓΝΩΣΗΣ ΑΠΟ ΤΗ ΧΡΗΣΗ ΤΟΥ WEB Η εξόρυξη γνώσης από τη χρήση του Web είναι η διαδικασία της εφαρμογής τεχνικών εξόρυξης γνώσης από τα δεδομένα του Web. Όπως άλλες αρχές εξόρυξης δεδομένων, καθορίζει αρκετές διαδικασίες που οδηγούν στην ανακάλυψη της επιθυμητής γνώσης. Τα τρία βασικά βήματα παρουσιάζονται στην εικόνα 2 και είναι η προ-επεξεργασία, η ανακάλυψη προτύπων και η ανάλυση προτύπων. Εικόνα 2: Η διαδικασία εξόρυξης από τη χρήση του Web. 2.1 Πηγές δεδομένων Τα δεδομένα είναι η βάση μιας διαδικασίας ανακάλυψης γνώσης. Όπως φαίνεται στην εικόνα 3, υπάρχουν αρκετές πιθανές πηγές δεδομένων για την διαδικασία της εξόρυξης γνώσης από τη χρήση του Web. Κάθε τύπος έχει τα πλεονεκτήματά του και λίγο διαφορετική εστία. Για παράδειγμα, τα δεδομένα σε επίπεδο server είναι κατάλληλα για εξόρυξη πληροφορίας από ένα Web Site ενώ τα logs σε επίπεδο πελάτη είναι κατάλληλα για την ανακάλυψη της συμπεριφοράς του χρήστη κατά τη διάρκεια παραμονής του στο διαδίκτυο. 17

18 Εικόνα 3: Πηγές Δεδομένων Συλλογή σε επίπεδο Server Οι συλλογές δεδομένων σε επίπεδο Server χρησιμοποιούνται συχνά εξαιτίας της εύκολης διαθεσιμότητάς τους, αφού κάθε Web Server αποθηκεύει προεπιλεγμένα τα log αρχεία. Τα log του Web Server είναι επίσης οι πιο γνωστές πηγές δεδομένων για την διαδικασία της εξόρυξης γνώσης από τη χρήση του Web. Τα log συνήθως χρησιμοποιούν πληροφορίες για το απομακρυσμένο host name ή την IP διεύθυνση, το όνομα του χρήστη, το χρόνο και την ημερομηνία, το ζητούμενο URI, την κατάσταση του Server και τα μεταφερθέντα bytes. Το Extended log format προσθέτει άλλες δύο εισόδους: την αναγνώριση αναφοράς και την αναγνώριση χρήστη-πράκτορα (referrer, user-agent identification), που είναι πολύ χρήσιμες για αναγνώριση συνόδου (session identification). Από τα παραπάνω διαπιστώνουμε ότι τα log του server αποθηκεύουν πολλές συνόδους του χρήστη σε έναν μόνο server. Είναι χρήσιμο λοιπόν να ανακαλύπτουμε τη συμπεριφορά του χρήστη σε έναν server, αυτό ακριβώς που θέλουν οι παροχείς του περιεχομένου. Δυστυχώς, τα log των Web Servers έχουν αρκετά μειονεκτήματα. Πρώτον, τα log δε μπορούν να αποθηκεύουν αιτήσεις που λαμβάνονται από την cache του φυλλομετρητή και του proxy. Έτσι, έχουμε μια ελλιπή εικόνα από τα συναισθήματα του χρήστη και είναι πολύ δύσκολο να αναγνωρίσουμε ανεξάρτητες συνόδους χρήστη. Δεύτερον, τα log αποθηκεύουν μόνο τις GET παραμέτρους των CGI scripts. Τρίτον, το πρωτόκολλο HTTP προκαλεί μια άγνοια όσον αφορά το χρόνο που ξοδεύεται στην προβολή της σελίδας. Μερικά από αυτά τα μειονεκτήματα μπορούν να ελαττωθούν με επιπλέον εργαλεία. Για παράδειγμα τα cookies μπορούν να βοηθήσουν ιχνηλατώντας έναν χρήστη. Παρόμοια δουλειά με τα log του Web server γίνεται με τους packet sniffers (ανιχνευτές πακέτων) που ελέγχουν την κίνηση του δικτύου παρακολουθώντας τα εισερχόμενα και εξερχόμενα TCP/IP πακέτα. Τα πλεονεκτήματά τους σε σχέση με τα log του Web server είναι ότι μπορούν να αποθηκεύσουν τις POST παραμέτρους των CGI scripts και τις HTTP επικεφαλίδες των αιτήσεων. 18

19 Μία άλλη πηγή δεδομένων σε επίπεδο server είναι τα log από τους server του περιεχομένου (ή της εφαρμογής) που εξυπηρετούν περιεχόμενα για δυναμικά Web Site. Τα πλεονεκτήματά τους είναι ότι μπορούν να παρέχουν πληροφορία για όλες τις εισερχόμενες παραμέτρους, εσωτερικές μεταβλητές καταστάσεων και εξερχόμενα δεδομένα Συλλογή σε επίπεδο Πελάτη Οι συλλογές δεδομένων σε επίπεδο πελάτη επικεντρώνονται στον εντοπισμό ανεξάρτητων συνόδων χρηστών σε ένα ή πολλά Web site. Το βασικό μειονέκτημα τους είναι ότι βασίζονται στη συνεργασία με το χρήστη. Υπάρχουν δύο τρόποι- οι απομακρυσμένοι πράκτορες (Javascripts ή Java Applets) και οι τροποποιημένοι φυλλομετρητές. Ο πρώτος τρόπος στοχεύει σε ανεξάρτητες συνόδους χρηστών σε ένα server. Επιλύει το πρόβλημα με το caching και σχεδόν επιλύει το πρόβλημα της αναγνώρισης της συνόδου. Τα μειονεκτήματα είναι το καθυστερημένο φόρτωμα στη περίπτωση των Java Applet και η έλλειψη πληροφορίας όσον αφορά το χρόνο προβολής της σελίδας, αφού δε γνωρίζουμε ούτε πότε ο χρήστης κλείνει τη σελίδα. Τα καλύτερα αποτελέσματα για ανεξάρτητους χρήστες/πολλά site δίνονται από ειδικούς φυλλομετρητές που εντοπίζουν κάθε κίνηση του χρήστη. Ο φυλλομετρητής καταγράφει πόσο χρόνο ξοδεύει ο χρήστης σε μία σελίδα, αν πατήσει το κουμπί back ή το reload και πολλές άλλες πολύτιμες μεταβλητές. Αλλά είναι δύσκολο να πείσεις τους χρήστες να χρησιμοποιήσουν έναν τέτοιο φυλλομετρητή. Μια πιθανότητα για να γίνει αυτό είναι μέσω της προσφοράς επιπλέον προνομίων για καθημερινή χρήση των τροποποιημένων φυλλομετρητών (π.χ NetZero, Spedia) Συλλογή σε επίπεδο Proxy Η τελευταία πηγή δεδομένων είναι τα logs του proxy server. Αυτά τα logs αποθηκεύουν τις επικοινωνίες πολλών χρηστών/ πολλών site και είναι ιδανικά για τον χαρακτηρισμό της συμπεριφοράς του φυλλομετρητή για ένα σύνολο χρηστών που μοιράζονται τον ίδιο proxy server. 2.2 Προ-επεξεργασία Στο στάδιο της προ-επεξεργασίας μετατρέπουμε τα ανεπεξέργαστα δεδομένα από τις διάφορες πηγές δεδομένων σε δεδομένα τα οποία είναι κατάλληλα για ανάλυση προτύπων. Η προ-επεξεργασία αποτελείται από τρεις κατηγορίες, την προ-επεξεργασία της δομής, την προ-επεξεργασία του περιεχομένου και την προ-επεξεργασία της χρήσης. 19

20 2.2.1 Προ-επεξεργασία του Περιεχομένου Η προ-επεξεργασία του Περιεχομένου βασίζεται στην εξόρυξη γνώσης από το περιεχόμενο του Web. Το στάδιο της προ-επεξεργασίας είναι χρήσιμο για το φιλτράρισμα των δεδομένων εισόδου/εξόδου για την ανακάλυψη και ανάλυση προτύπων. Για παράδειγμα, ένας αλγόριθμος κατάταξης καθορίζει τον τύπο της σελίδας (67, 73) και στη συνέχεια πραγματοποιείται ανάλυση μόνο πάνω σε ένα υποσύνολο των σελίδων Προ-επεξεργασία της Δομής Η δομή ενός Site δημιουργείται από τους συνδέσμους υπερκειμένου μεταξύ των προβολών των σελίδων. Η δομή μπορεί να ληφθεί και να υποβληθεί σε προ-επεξεργασία με τον ίδιο τρόπο όπως το περιεχόμενο ενός Site. Μια διαφορετική δομή ενός Site μπορεί να χρειαστεί να κατασκευαστεί για κάθε σύνοδο του Server. Η γνώση της δομής του Web Site είναι αναγκαία για την αναγνώριση της προβολής της σελίδας όπου τα πλαίσια και οι δυναμικές σελίδες δημιουργούν τα μεγαλύτερα προβλήματα. Επιπλέον, είναι χρήσιμο για τις εφαρμογές όπως είναι η εξατομίκευση ή η μετατροπή ενός site Προ-επεξεργασία της Χρήσης Η προ-επεξεργασία της χρήσης είναι το σημαντικότερο στάδιο στην εξόρυξη γνώσης από τη Χρήση του Web. Το αποτέλεσμα αυτού του σταδίου είναι μια αστείρευτη πηγή από αντικείμενα που αναπαριστούν το συγκεκριμένο Site. Το διάγραμμα της διαδικασίας της προ-επεξεργασίας της Χρήσης παρουσιάζεται στο εικόνα 4. Η δυσκολία κάθε βήματος ποικίλει σύμφωνα με τη τεχνολογίες που χρησιμοποιούνται στο Web Site. Για παράδειγμα, η εξόρυξη συνόδων του server από το δυναμικό Web Site θα μπορούσε να είναι λιγότερο δύσκολη από την εξόρυξη από το στατικό Web Site επειδή οι στατικές σελίδες συνήθως λαμβάνονται από τους Proxies και έτσι πολλές από τις αιτήσεις παραλείπονται στα log, ενώ οι δυναμικές σελίδες ρυθμίζονται να μην αποθηκεύονται στους proxies και έτσι η πλειοψηφία των αιτήσεων υπάρχουν στο log. Αναγνώριση της συνόδου του Server Οι σύνοδοι των Server είναι τα αρχικά δεδομένα για την εξόρυξη γνώσης από τη χρήση του Web. Συνήθως, το ανεπεξέργαστο log του Web Server είναι ανεπαρκές και πρέπει να προσαρμοστεί. Τυπικά, μια σύνοδος του Server (S) είναι ένα τακτοποιημένο σύνολο από προβολές σελίδων (V) για μία μόνο επίσκεψη σε ένα Web Site μαζί με κάποια μεταδεδομένα (Α) (72). S = [A: V 1,.., V n ] V = (υ i, h j, t f, t l, t e, d 1,,d m, c ) A = α 1,,α k 20

21 Κάθε προβολή V αποτελείται από έναν αναγνωριστή προβολής (υ i ), το αναφερόμενο αρχείο της σελίδας (h j ), τον αρχικό χρόνο της αίτησης (t f ), τον τελικό χρόνο αίτησης (t l ), τον χρόνο που τελειώνει η προβολή (t e ), ένα προαιρετικό σύνολο από τιμές που έχουν υποβληθεί (d 1,,d m ), και η λογική παράμετρος (c) που καθορίζει αν η προβολή της σελίδας έχει εξαχθεί κατά τη διάρκεια της συμπλήρωσης του μονοπατιού. Η αναφερόμενη σελίδα είναι κενή (NULL) αν το URI τυπώθηκε, επιλέχθηκε από σελιδοδείκτες, και άλλα παρόμοια. Ο πρώτος και ο τελευταίος χρόνος αίτησης ανταποκρίνεται στην πρώτη προβολή της σελίδας και την αίτηση για το τελευταίο αρχείο. Ο πρώτος χρόνος χρησιμοποιείται για να την ταξινόμηση των προβολών των σελίδων στη σύνοδο. Ο χρόνος που τελειώνει η προβολή είναι συνήθως ο πρώτος χρόνος αίτησης της επόμενης αίτησης επειδή ο πραγματικός χρόνος είναι άγνωστος ή μπορεί να είναι κενός αν η προβολή της σελίδας είναι η τελευταία από τον Server. Τα μεταδεδομένα Α που έχουν συλλεχθεί βασίζονται στις τεχνολογίες που χρησιμοποιούνται. Για παράδειγμα, θα μπορούσε να είναι η IP διεύθυνση, τα cookies, το όνομα του χρήστη κ.α. Εικόνα 4: Λεπτομέρειες της Προ-επεξεργασίας της Χρήσης. Καθαρισμός Δεδομένων Το βήμα αυτό θέτει περισσότερα αρχεία πηγών δεδομένων σε ένα αρχείο δεδομένων και φιλτράρει τις μη απαραίτητες εγγραφές από τα log. Τυπικά, τα αρχεία γραφικών είναι άχρηστα για εξόρυξη. Στη συνέχεια, οι εγγραφές που δημιουργούνται από αυτόματους πράκτορες θα πρέπει να απομακρυνθούν επειδή θα επηρεάσουν τα αποτελέσματα. Η τελική διεργασία είναι η κανονικοποίηση των URI. Ποικίλα URI μπορούν να οδηγήσουν στην ίδια προβολή σελίδας έτσι θα πρέπει να είναι τα ίδια για τη διαδικασία εξόρυξης. Για παράδειγμα, τα και οδηγούν στην ίδια προβολή σελίδας και γι αυτό θα πρέπει να κανονικοποιηθούν σε (44). 21

22 Αναγνώριση του Χρήστη Είναι ένα σημαντικό μέρος της διαδικασίας αναγνώρισης της συνόδου του Server. Είναι άμεσα συνδεδεμένη με τη μυστικότητα του χρήστη. Όσο πιο κατακτητική είναι η μέθοδος που χρησιμοποιείται για την αναγνώριση των χρηστών, τόσο πιο ακριβή αποτελέσματα έχουμε. Παραδείγματα από μεθόδους είναι τα ενσωματωμένα ID των συνόδων, τα cookies, η εγγραφή του χρήστη και άλλα. Εάν κανένα δεν εφαρμοστεί, τότε έχουμε έναν/πολλούς χρήστες με ένα/πολλά IP προβλήματα, αφού δε γνωρίζουμε πόσοι χρήστες κρύβονται πίσω από μια IP διεύθυνση. Αναγνώριση Συνόδου Η αναγνώριση της συνόδου έχει μια κοινώς χρησιμοποιούμενη μέθοδο όταν καμία πληροφορία από τα κατάλοιπα του Web Site δεν είναι διαθέσιμη, τα 30 λεπτά του τέλους του χρόνου (39). Αναγνώριση της προβολής της σελίδας Η αναγνώριση αυτή είναι στις περισσότερες περιπτώσεις σημαντική μόνο αν χρησιμοποιούνται πλαίσια (frames) στο εξορυγμένο Web Site. Χρειάζεται να γνωρίζουμε ποια αρχεία είναι μέρος μιας προβολής σελίδας και να τοποθετήσουμε τις σχετικές εγγραφές από τις πηγές δεδομένων μαζί. Ένα εξυπηρετικό βήμα είναι η γνώση της Δομής και του Περιεχομένου του Web. Η συμπλήρωση του μονοπατιού Το βήμα αυτό προσπαθεί να εξάγει τις αποθηκευμένες σελίδες (cached pages) όταν οι εγγραφές της αίτησης δεν είναι διαθέσιμες στις συλλογές δεδομένων στο επίπεδο του Server. Η χρησιμοποίηση της δομής του Web και των αναφερόμενων σελίδων αποτελεί τη βάση αυτού του σταδίου. Αναγνώριση Επεισοδίου Η αναγνώριση του επεισοδίου είναι ένα προαιρετικό βήμα στην ανίχνευση υποσυνόλων των συνόδων των χρηστών. Ο σκοπός είναι να αναγνωριστούν μερικά από τα ενδιαφέροντα των χρηστών. Για παράδειγμα, μπορούμε να ορίσουμε το επεισόδιο σαν επαγγελματικές προβολές σελίδων σε έναν server με ειδήσεις ή σε σελίδες με καλάθια αγορών σε ηλεκτρονικά καταστήματα. Εκτός από αυτούς τους χειρονακτικούς ορισμούς, υπάρχουν τρεις γενικές μέθοδοι που βασίζονται στις υποθέσεις σχετικά με τη συμπεριφορά του χρήστη στη φυλλομέτρηση. Η κατάταξη των σελίδων σε βοηθητικές και σελίδες μέσων βασίζεται στην υπόθεση ότι ο χρήστης φυλλομετρεί σε ένα web site μέχρις ότου βρει τη σχετική σελίδα, τη σελίδα των μέσων (media page).το μονοπάτι για αυτή τη σελίδα των μέσων συναρμολογείται από τις βοηθητικές ( ή πλοήγησης ) σελίδες. Γενικά, υπάρχουν δύο τύποι επεισοδίων Πλοήγησης και Περιεχομένου (εικόνα 5: με Α χαρακτηρίζονται οι σελίδες πλοήγησης και με Μ οι σελίδες περιεχομένου). Το πρώτο καταγράφει το μονοπάτι στη σελίδα περιεχομένου και 22

23 περιλαμβάνει και τη σελίδα περιεχομένου ενώ το δεύτερο καταγράφει μόνο τις σελίδες περιεχομένων. Ο τύπος της επιλογής εξαρτάται από τον αντικειμενικό σκοπό της ανάλυσης. Εικόνα 5: Τύποι Επεισοδίων. Μέθοδος του τύπου της σελίδας Βασίζεται στην προ-κατηγοριοποίηση της σελίδας που προβάλλεται για τον τύπο χρήσης. Κάθε προβολή της σελίδας δηλώνεται σαν πλοήγησης ή σελίδα περιεχομένου. Το μειονέκτημα είναι ότι η δήλωση είναι σταθερή ως προς το χρόνο και για όλους τους χρήστες. Εξάλλου οι χρήστες μπορούν να χρησιμοποιούν μερικές σελίδες αρχικά σαν πλοήγησης και στη συνέχεια σαν σελίδες περιεχομένων. Μέθοδος αναφοράς μήκους Η μέθοδος αυτή χρησιμοποιεί την υπόθεση ότι το σύνολο του χρόνου το οποίο ο χρήστης δαπανά στη σελίδα, σχετίζεται με το αν η σελίδα θα πρέπει να κατηγοριοποιηθεί σε πλοήγησης ή περιεχομένου. Είναι μια επιβλεπόμενη μέθοδος υπολογίζει το χρόνο περάτωσης από το ποσοστό των σελίδων πλοήγησης που έχουν υπολογιστεί. Περισσότερες λεπτομέρειες στο (72). ln( 1 ) t Όπου t είναι ο χρόνος περάτωσης, γ είναι το ποσοστό των σελίδων πλοήγησης που έχει εκτιμηθεί και λ είναι αντιστρόφως ανάλογο του μέσου μήκους αναφοράς που έχει παρατηρηθεί. 23

24 Η τελευταία σελίδα σε μία σύνοδο θεωρείται η σελίδα περιεχομένου και δεν υπολογίζεται στον μέσο όρο. Παράδειγμα ιστογράμματος με τα μήκη αναφορών των σελίδων ανάμεσα σε 0 και 300 δευτερόλεπτα για ένα server log παρουσιάζεται στην εικόνα 6. Το σχήμα της καμπύλης είναι αντίστοιχο με την εκθετική κατανομή από την οποία ο παραπάνω τύπος έχει εξαχθεί για τον ξεχωριστό υπολογισμό. Εικόνα 6: Μήκη Αναφορών. Η μέθοδος των μέγιστων εμπρόσθιων αναφορών (Maximal Forward Reference Method) Το επεισόδιο καθορίζεται σαν ένα σύνολο από σελίδες στο μονοπάτι που ξεκινά από την πρώτη σελίδα σε μία σύνοδο του χρήστη μέχρι τη σελίδα προτού γίνει μία προς τα πίσω αναφορά. Μια προς τα πίσω αναφορά είναι μια σελίδα που δεν έχει ακόμα περιληφθεί σε αυτό το σύνολο. Ένα νέο επεισόδιο ξεκινά όταν γίνει η επόμενη εμπρόσθια αναφορά. Η πρώτη σελίδα κάθε επεισοδίου είναι η πρώτη εμπρόσθια αναφορά σε μία σύνοδο του χρήστη. Η υπόθεση είναι ότι οι μέγιστες εμπρόσθιες αναφορές είναι οι σελίδες περιεχομένου και οι άλλες σελίδες είναι οι σελίδες πλοήγησης. Αυτή η προσέγγιση δε χρειάζεται παράμετρο εισόδου που βασίζεται σε κάποια εκτίμηση αλλά η ακρίβειά της γίνεται αποδεκτή για πιο συνδεδεμένα web site. 24

25 Η εικόνα 7 παρουσιάζει ένα δείγμα από μια σύνοδο ενός server. Για παράδειγμα, οι εμπρόσθιες αναφορές είναι οι αριθμοί 1,2,3,6 και οι προς τα πίσω αναφορές είναι οι αριθμοί 4,5,9,11. Τα επεισόδια είναι τα Α-Β-C-D, A-B-E-G-H. Οι σελίδες περιεχομένου είναι οι D, H, W και οι σελίδες πλοήγησης είναι οι A, B, C, E. 2.3 Ανακάλυψη προτύπων Η ανακάλυψη προτύπων σε ένα Web site συνεπάγεται την κατανόηση για το πως οι χρήστες χρησιμοποιούν αυτό το Web site. Υπάρχουν αρκετές τεχνικές που βασίζονται στην στατιστική ανάλυση, στην αναγνώριση των προτύπων, στην μάθηση της μηχανής κ.α. Εικόνα 7: Παράδειγμα προτύπων διάσχισης Στατιστική Ανάλυση Η στατιστική ανάλυση είναι η πιο κοινή μέθοδος. Μπορούν να υπολογιστούν ποικίλα είδη από περιγραφικές στατιστικές μονάδες μέτρησης όπως είναι η συχνότητα, ο στατιστικός μέσος, ο αριθμητικός μέσος αλλά και τιμές όπως είναι η προβολές των σελίδων, ο χρόνος προβολής ή το μήκος του μονοπατιού πλοήγησης. Παρόλο που η στατιστική ανάλυση δεν είναι λεπτομερής, είναι χρήσιμη για τη βελτίωση της επίδοσης του συστήματος, για τη βελτίωση της ασφάλειας του συστήματος ή για τη διευκόλυνση της διαμόρφωσης του site. Για παράδειγμα μπορούν να ανιχνευτούν μη επιτρεπτά σημεία εισόδου σε ένα Web Site. 25

26 2.3.2 Συχνά στοιχειοσύνολα και Κανόνες Συσχέτισης (Association rule mining) Τα συχνά στοιχειοσύνολα είναι σύνολα από σελίδες οι οποίες είναι μαζί συχνά επισκεπτόμενες σε μια μόνο σύνοδο ενός Server. Μόνο η λίστα με τα ID των συνόδων και τα URL χρησιμοποιείται κατά τη διάρκεια της διαδικασίας (η σειρά των URL και ο αριθμός των συμβάντων σε μία σύνοδο είναι άσχετα). Η υποστήριξη χρησιμοποιείται συχνά χρησιμοποιείται για να περιορίσει των αριθμό των ανακαλυφθέντων προτύπων. Η υποστήριξη του υποσυνόλου i 1,. i n από ένα σύνολο D ορίζεται σαν: count ( i1,..., in D) S( i1,..., in ) count ( D) Μετά την ανακάλυψη των συχνών στοιχειοσυνόλων, μπορεί να υπολογιστεί για καθένα από αυτά το «ενδιαφέρον» για την αντικειμενική διάκρισή τους. Το ενδιαφέρον ορίζεται ως ο λόγος της υποστήριξης των συχνών στοιχειοσυνόλων προς την πιθανότητα όλα τα αντικείμενα που εμφανίζονται μαζί σε ένα σύνολο αντικειμένων να είναι τυχαία και ανεξάρτητα κατανεμημένα (72): S( i1,..., in ) I( i1,..., in ) n S( i ) j 1 Οποιοδήποτε σύνολο από συχνά αντικείμενα μπορεί να διαχωριστεί σε n διαφορετικούς κανόνες συσχέτισης. Για παράδειγμα, από τα συχνά στοιχειοσύνολα Α και Β, λαμβάνουμε δύο κανόνες συσχέτισης: Α Β και Β Α. Η εμπιστοσύνη σε έναν κανόνα συσχέτισης είναι το κλάσμα των συνόδων όπου το προηγούμενο και το διαδοχικό σύνολο είναι παρόν και των συνόδων όπου μόνο το διαδοχικό σύνολο είναι παρόν. Για τον κανόνα i α i s1,., i sn είναι j C( i a i s1,..., i sn ) S( i a, i s1 S( i,..., i a ) sn ) Τα συχνά στοιχειοσύνολα και οι κανόνες συσχέτισης εφαρμόζονται στις περιοχές της επιχειρηματικής ευφυΐας, της αναδιοργάνωσης ενός Web Site και στην προ-ανάκτηση εγγράφων Συσταδοποίηση (Clustering) Η συσταδοποίηση είναι μια τεχνική για τη συγκέντρωση ενός συνόλου αντικειμένων που έχουν παρόμοια χαρακτηριστικά. Υπάρχουν δύο πιο κοινοί τύποι συστάδων στον τομέα της χρήσης του Web. Συστάδες χρήστη: Ο σκοπός είναι η δημιουργία συνόλων από χρήστες που έχουν ίδια πρότυπα φυλλομέτρησης. Για παράδειγμα, αυτή η γνώση είναι απαραίτητη για την εξατομίκευση του περιεχομένου του Web για τους χρήστες: οι χρήστες που ανήκουν στη συστάδα «2» προσπελαύνουν σελίδες που αφορούν αθλητικά και παιχνίδια. 26

27 Συστάδες σελίδας: Τα σύνολα των συστάδων σελίδας ουσιαστικά ομαδοποιούν σελίδες με ισοδύναμο περιεχόμενο. Για παράδειγμα, αυτές οι συστάδες είναι χρήσιμες για τις μηχανές αναζήτησης, αφού μπορούν να δημιουργήσουν μια σελίδα με συνδέσμους σε παρόμοιες σελίδες Κατηγοριοποίηση (Classification) Σε αυτή τη διεργασία γίνεται αντιστοίχηση των αντικειμένων των δεδομένων σε μία ή περισσότερες προκαθορισμένες κατηγορίες. Πιο συχνά αναπτύσσεται ένα προφίλ χρηστών που ανήκουν σε μια καθορισμένη τάξη. Υπάρχουν δημοφιλείς μέθοδοι κατηγοριοποίησης όπως είναι τα δέντρα απόφασης, οι μηχανές που υποστηρίζουν διανύσματα κ.α Ακολουθιακά Πρότυπα (Sequential pattern discovery) Αυτή η τεχνική επιχειρεί την εύρεση προτύπων μεταξύ των συνόδων όπως όταν μετά από ένα σύνολο από αντικείμενα έπεται ένα άλλο σύνολο αντικειμένων. Αυτή η γνώση είναι καλή για την πρόβλεψη μελλοντικών επισκέψεων σε πρότυπα και επομένως για την τοποθέτηση διαφημίσεων που στοχεύουν σε ένα προκαθορισμένο σύνολο χρηστών. Μια άλλη εφαρμογή είναι η ανάλυση της αλλαγής πορείας: για παράδειγμα σε μια σελίδα οι επισκέψεις αυξήθηκαν μέχρι το Φεβρουάριο και στη συνέχεια μειώθηκαν Υπόδειγμα εξάρτησης Ο στόχος είναι η καθιέρωση ενός μοντέλου που θα είναι ικανό να αναπαραστήσει σημαντικές εξαρτήσεις μεταξύ των διαφόρων μεταβλητών που αφορούν των τομέα του Web. Τεχνικές που έχουν χρησιμοποιηθεί είναι τα Μοντέλα Markov και τα Bayesian Δίκτυα. Για παράδειγμα, θα μπορούσε να δημιουργηθεί ένα μοντέλο που θα περιέγραφε τη συμπεριφορά του χρήστη σε ένα IS από την πρώτη του επίσκεψη μέχρι και να γίνει ένας τακτικός χρήστης. Χάρη σε αυτή τη γνώση μπορεί να βελτιωθεί η τεκμηρίωση και η on-line βοήθεια. Επίσης, θα ήταν καλό για την πρόβλεψη της μελλοντικής κατανάλωσης των πόρων του Web. 2.4 Ανάλυση Προτύπων Η ανάλυση των προτύπων είναι το τελικό βήμα στην διαδικασία της εξόρυξης δεδομένων. Μετατρέπει τα ανακαλυφθέντα πρότυπα, τους κανόνες και τα στατιστικά σε γνώση. Η γνώση αυτή που αναζητείται θα πρέπει με κάποιο τρόπο να είναι ενδιαφέρουσα. Η διαφοροποίηση μεταξύ του τι είναι ενδιαφέρον και τι όχι είναι φυσικά ένα θέμα καθαρά υποκειμενικό. Κάποιοι θα μπορούσαν να ενδιαφέρονται για ασυνήθιστα πρότυπα τα οποία έχουν χαμηλή συχνότητα (αναλυτές ασφάλειας), ενώ κάποιοι άλλοι ενδιαφέρονται για πιο συχνά πρότυπα (αναλυτές μάρκετινγκ). 27

28 2.4.1 Μετρικές Ενδιαφέροντος Οι μετρικές ενδιαφέροντος κατηγοριοποιούνται σε τέσσερις διαστάσεις. Μια λεπτομερή επισκόπηση παρουσιάζεται στο (74). Οι διαστάσεις είναι η αναπαράσταση 1 (που είναι ο τύπος μέτρησης προτύπου που εφαρμόζεται, π.χ. κανόνες συσχέτισης, κανόνες κατηγοριοποίησης κ.α.), η θεμελίωση 2 ( που αφορά τη φύση της μεθοδολογίας, π.χ. πιθανοτική, απόστασης κ.α.), η εμβέλεια (απλό πρότυπο ή σύνολο κανόνων) και η κλάση (αντικειμενική ή υποκειμενική). Τα αντικειμενικά μέτρα αποτιμούν τους κανόνες σύμφωνα με τη δομή των ανακαλυφθέντων σχημάτων. Τα υποκειμενικά μέτρα βασίζονται στην πίστη ή την προκατάληψη του χρήστη. Παρόλο που τα μέτρα παρέχουν αυτόματη διαίρεση σε ενδιαφέροντα και μη-ενδιαφέροντα πρότυπα, η κύρια διεργασία απομένει στον αναλυτή που θα πρέπει να επιλέξει το κατάλληλο μέτρο και να θέσει το όριο για να πάρει τα ενδιαφέροντα αποτελέσματα που επιθυμεί Εργαλεία Οποιοδήποτε εργαλείο ή φίλτρο που επεξεργάζεται τα δεδομένα από το στάδιο της ανακάλυψης προτύπου μπορεί γενικότερα να χαρακτηριστεί ένα εργαλείο ανάλυσης προτύπου. Τα πιο κοινά είναι τα εργαλεία ερωτήσεων (query tools) επειδή επιτρέπουν σε έναν αναλυτή να φιλτράρει και να ταξινομεί τα αποτελέσματα όπως εκείνος επιθυμεί. Πιο εξελιγμένα είναι τα On-line εργαλεία αναλυτικής επεξεργασίας (On-line Analytical Processing OLAP) που παρέχουν στον αναλυτή μια πολυδιάστατη εικόνα των δεδομένων. Σημαντικό ρόλο έχουν και τα εργαλεία οπτικοποίησης που αναπαριστούν τα ενδιαφέροντα αποτελέσματα με γράφους και διαγράμματα. 2.5 Εφαρμογές Η εικόνα 8 δείχνει βασικές περιοχές εφαρμογών στην εξόρυξη δεδομένων του Web αλλά και εφαρμογές λογισμικού για αυτές τις περιοχές. Το WebSIFT (73) και το Web Utilization Miner (62) είναι γενικά εργαλεία εξόρυξης τα οποία δε εστιάζονται σε κάποια συγκεκριμένη υποκατηγορία Εξατομίκευση Αυτή είναι η πιο δημοφιλής εφαρμογή στην εξόρυξη δεδομένων του Web, που θα παρουσιαστεί αναλυτικότερα στο επόμενο κεφάλαιο. Οι χρήστες θέλουν τα Web Site που τους ταιριάζουν. Για το λόγο αυτό, πολλά Web Site αξιοποιούν τα προφίλ των χρηστών, τις δυναμικές συστάσεις, το εξατομικευμένο μάρκετινγκ κ.α. Τέτοια λογισμικά εφαρμογών είναι για παράδειγμα το WebPersonalizer (12) και το WebWatcher (34). 1 Επίσης γνωστή και σαν φόρμα προτύπου 2 Επίσης γνωστή και σαν αναπαράσταση 28

29 Εικόνα 8: Οι κυριότερες περιοχές εφαρμογών στην εξόρυξη δεδομένων του Web Βελτίωση Συστήματος Η ποιότητα της υπηρεσίας, η ασφάλεια και η απόδοση είναι σημαντικά χαρακτηριστικά κάθε υπηρεσίας του Web. Η εξόρυξη γνώσης από τη χρήση του Web προετοιμάζει το έδαφος για την ανάπτυξη πολιτικών για web caching, εξισορρόπηση φόρτου, κατανομή δεδομένων, ή ανίχνευση εισβολών, απάτης και παρεμβάσεων Διαμόρφωση του Site Η ικανοποίηση του χρήστη είναι ένα σημαντικό κριτήριο για τα Web Site. Για παράδειγμα, είναι κρίσιμη για το ηλεκτρονικό εμπόριο. Η εξόρυξη γνώσης από τα δεδομένα του Web παρέχει λεπτομερή ανατροφοδότηση για τους σχεδιαστές του Site που μπορούν να προσαρμόσουν το Site, σύμφωνα με τις ανάγκες του χρήστη Επιχειρηματική Ευφυΐα Οι πληροφορίες για τη συμπεριφορά των πελατών στα ηλεκτρονικά καταστήματα είναι το σημείο κλειδί για τους πωλητές. Διάφορα ερευνητικά έργα (4,82) ανακάλυψαν το μάρκετινγκ και την επιχειρηματική ευφυΐα από τα δεδομένα του Web Χαρακτηρισμός Χρήσης του Web O Pitkow και άλλοι (39) μελέτησαν τη συμπεριφορά του χρήστη κατά τη φυλλομέτρηση με έναν ειδικό φυλλομετρητή τον Xmosaic και πήραν λεπτομερές πληροφορίες σχετικά με τις στρατηγικές φυλλομέτρησης, τα στατιστικά σχετικά 29

30 με την επιλογή των κουμπιών Back/Forward, την αποθήκευση των σελίδων του Web, τη χρήση των σελιδοδεικτών κ.α. 30

31 ΚΕΦΑΛΑΙΟ 3 ΤΕΧΝΟΛΟΓΙΕΣ ΓΙΑ ΕΞΑΤΟΜΙΚΕΥΣΗ ΚΑΙ ΠΡΟΣΑΡΜΟΣΤΙΚΟΤΗΤΑ Η εξατομίκευση και η προσαρμοστικότητα θεωρούνται ολοένα και περισσότερο σημαντικά στοιχεία στις εφαρμογές του Web. Οι όροι συνήθως αναφέρονται στη χρήση πληροφορίας σχετικά με ένα χρήστη (είτε είναι πελάτης, είτε επισκέπτης σε μια σελίδα, είτε ένα γκρουπ) για τον καλύτερο σχεδιασμό προϊόντων και υπηρεσιών που απευθύνονται σε αυτόν τον χρήστη. Ένας τρόπος για να οριστεί η εξατομίκευση είναι ο τρόπος περιγραφής της υλοποίησης και χρήσης της. Στο (38) η εξατομίκευση ορίζεται ως εργαλειοθήκη τεχνολογιών και χαρακτηριστικά εφαρμογών που χρησιμοποιούνται για το σχεδιασμό του βιώματος του τελικού χρήστη. Τα χαρακτηριστικά που ανήκουν στην εξατομίκευση έχουν μεγάλο εύρος που κυμαίνεται από το όνομα του χρήστη σε μια σελίδα, μέχρι την πλοήγηση σε περίπλοκους καταλόγους και προσαρμογές προϊόντων που βασίζονται σε δυσνόητα μοντέλα των αναγκών και συμπεριφορών των χρηστών. Ένας διεθνής οργανισμός για Εξατομίκευση (Personalization Consortium) που δημιουργήθηκε για την προώθηση της ανάπτυξης και χρήσης τεχνολογιών εξατομίκευσης στο Web, παρέχει τον ακόλουθο ορισμό: «Η εξατομίκευση είναι ο συνδυασμός τεχνολογίας και πληροφορίας από τον πελάτη για την εξυπηρέτηση των ηλεκτρονικών εμπορικών αλληλεπιδράσεων μεταξύ μιας επιχείρησης και κάθε ξεχωριστού πελάτη. Συνήθως η εξατομίκευση υπονοεί την συγκέντρωση και αποθήκευση πληροφορίας σχετική με τους επισκέπτες ενός Web site αλλά και την ανάλυση αυτής της πληροφορίας προκειμένου να παρουσιαστεί το κατάλληλο περιεχόμενο στη μορφή και το σχήμα που επιθυμεί ο χρήστης. Η εξατομίκευση βοηθά στην αύξηση της ικανοποίησης του πελάτη, στην προώθηση της εμπιστοσύνης του πελάτη με την εγκαθίδρυση μιας 1-1 σχέσης μεταξύ ενός website και του επισκέπτη του και στην αύξηση των πωλήσεων που ενισχύεται με την παροχή προϊόντων και υπηρεσιών που ικανοποιούν τις ανάγκες κάθε ξεχωριστού πελάτη. Ο σκοπός της εξατομίκευσης είναι η καλύτερη εξυπηρέτηση του πελάτη με την πρόβλεψη των αναγκών του αφού γίνεται προσαρμογή προϊόντων και υπηρεσιών και εγκαθίσταται μια μακροχρόνια σχέση που ενθαρρύνει τον πελάτη να επιστρέψει για συνακόλουθες επισκέψεις. Παρόλο που η προσαρμοστικότητα και η εξατομίκευση αναφέρονται στην παράδοση πληροφορίας, ή υπηρεσιών που εξυπηρετούν τις ανάγκες των χρηστών, αυτές οι δύο έννοιες διαφέρουν από πολλές απόψεις. Η προσαρμοστικότητα χρησιμοποιείται συνήθως για να περιγράψει τα χαρακτηριστικά της διεπαφής που ελέγχονται από τον χρήστη. Αυτό σημαίνει ότι ένας χρήστης έχει τον έλεγχο και μπορεί να διαμορφώσει ένα website, ένα προϊόν ή μια υπηρεσία σύμφωνα με τις προτιμήσεις και τις απαιτήσεις του. Το σύστημα είναι σχεδόν παθητικό και παρέχει μόνο τα μέσα με οποία γίνεται εφικτή η διαμόρφωση. Η προσαρμογή συνήθως γίνεται χειροκίνητα από το χρήστη, σύμφωνα με τις προτιμήσεις του. Αντίθετα, η εξατομίκευση γίνεται αυτόματα από το website με βάση το ιστορικό από προηγούμενες αλληλεπιδράσεις με το χρήστη με βάση το προφίλ του ή το προφίλ παρόμοιων 31

32 χρηστών. Για παράδειγμα το Amazon.com προτείνει αντικείμενα σε ένα χρήστη και δημιουργεί προσωποποιημένες σελίδες με βάση την πλοήγηση του χρήστη αλλά και το ιστορικό αγορών του. Τα βασικά στοιχεία της εξατομίκευσης του Web περιλαμβάνουν (56) : Την μοντελοποίηση των αντικειμένων του Web (σελίδες ή προϊόντα) και των υποκειμένων (χρήστες) Την κατηγοριοποίηση αυτών των αντικειμένων και υποκειμένων Την εξαγωγή των συσχετίσεων μεταξύ των αντικειμένων και/ή των υποκειμένων. Τον καθορισμό των ενεργειών που θα πρέπει να προταθούν από ένα τέτοιο σύστημα εξατομίκευσης. Όπως απεικονίζεται στο σχήμα 9, η συνολική διαδικασία της εξατομίκευσης που βασίζεται σε δεδομένα από τη χρήση του Web αποτελείται από δύο μέρη. Το offline μέρος περιλαμβάνει την προετοιμασία των δεδομένων και τις καθορισμένες διεργασίες εξόρυξης δεδομένων από τη χρήση που έχουν ως αποτέλεσμα την δημιουργία ενός αρχείου συνόδου του Server, όπου κάθε σύνοδος αποτελείται από μια ακολουθία προβολών σελίδων και η καθεμία αναπαρίσταται με ένα URI χαρακτηρίζει έναν συγκεκριμένο χρήστη. Επιπρόσθετα, μόνο τα URI τα οποία αναπαριστούν σημαντικές ή σχετικές προβολές σελίδων περιλαμβάνονται στο παραπάνω αρχείο. Οι διεργασίες για την εξόρυξη γνώσης από τη χρήση του Web περιλαμβάνουν την ανακάλυψη των κανόνων συσχέτισης, των ακολουθιακών προτύπων, την ομαδοποίηση (σε συστάδες) των προβολών σελίδας καθώς και των χρηστών ή οποιαδήποτε άλλη μέθοδο ανακάλυψης προτύπων. Τα ανακαλυφθέντα πρότυπα χρησιμοποιούνται από το online τμήμα για την παροχή εξατομικευμένου περιεχομένου στους χρήστες με βάση την τρέχουσα δραστηριότητα πλοήγησής τους. Το περιεχόμενο μπορεί να πάρει τη μορφή προτάσεων συνδέσμων ή προϊόντων, διαφημίσεων, κειμένων ή γραφικών σχεδιασμένων για τις προτιμήσεις του χρήστη. Ο Web Server φυλάει ίχνη από την ενεργή σύνοδο του Server καθώς ο χρήστης κάνει HTTP αιτήσεις. Η μηχανή συστάσεων μελετά την ενεργή σύνοδο του Server σε συνδυασμό με τα ανακαλυφθέντα πρότυπα προκειμένου να παράγει προσωποποιημένο περιεχόμενο. Με βάση τα παραπάνω, η ανάλυση της συνολικής διεργασίας της εξατομίκευσης σε ένα Web site, καθορίζει τις ακόλουθες υπομονάδες διεργασίας (εικόνα 9): Σχεδιασμός του προφίλ του Χρήστη: η διαδικασία συλλογής πληροφοριών που αφορούν συγκεκριμένα το κάθε επισκέπτη είτε άμεσα είτε έμμεσα. Ανάλυση του Log και εξόρυξη γνώσης από τη από τη Χρήση του Web: Εφαρμόζονται τεχνικές εξόρυξης γνώσης στις πληροφορίες που έχουν αποθηκευτεί στο log του Server. Διαχείριση του Περιεχομένου: Είναι η διαδικασία κατηγοριοποίησης του περιεχομένου ενός Web site σε σημαντικές κατηγορίες προκειμένου η ανάκτηση πληροφορίας και η παρουσίαση να γίνονται ευκολότερα για τον χρήστη. Δημοσίευση του Web Site: Ο μηχανισμός δημοσίευσης που χρησιμοποιείται για την παρουσίαση του περιεχομένου που είναι αποθηκευμένο τοπικά στον Server και/ή των πληροφοριών που έχουν ανακτηθεί από άλλες πηγές του Web με ομοιόμορφο τρόπο στον τελικό 32

33 χρήστη. Φυσικά υπάρχουν διάφορες τεχνολογίες για την δημοσίευση των δεδομένων στον Παγκόσμιο Ιστό. Αναζήτηση και απόκτηση πληροφοριών: Υπάρχουν περιπτώσεις που οι πληροφορίες που παρέχει ένα Web site δεν είναι αποθηκευμένες στον Server του Web Site. Στην περίπτωση του Portal, οι χρήστες ενδιαφέρονται για πληροφορίες από ποικίλες πηγές. Απομένει λοιπόν στους συντάκτες του Web Site να αναζητήσουν στον Παγκόσμιο Ιστό περιεχόμενα με ενδιαφέρον που κατά συνέπεια θα κατηγοριοποιηθούν σε θεματικές ενότητες. Τεχνικές αναζήτησης και κατάταξης (ranking) θα πρέπει να εφαρμοστούν ταυτόχρονα στην διαδικασία της συγκέντρωσης σχετικής πληροφορίας και στην δημοσίευση των κατάλληλων δεδομένων σε κάθε ομάδα χρηστών. Εικόνα 9: Μια γενική αρχιτεκτονική για Εξατομίκευση με βάση τη χρήση του Web. 33

34 3.1 Σχεδιασμός του προφίλ του Χρήστη Η εξατομίκευση απαιτεί κάποια πληροφορία σχετική με τις προτιμήσεις, τις ανάγκες, τους στόχους και τις προσδοκίες του χρήστη. Η συλλογή πληροφορίας που περιγράφει έναν συγκεκριμένο χρήστη καλείται προφίλ του χρήστη. Οι Adomavicius και Tuzhilin (1) θεωρούν δύο βασικές συνιστώσες του προφίλ ενός χρήστη, την πραγματική και της συμπεριφοράς. Η πραγματική συνιστώσα περιλαμβάνει δημογραφικές και συναλλακτικές πληροφορίες όπως είναι η ηλικία, το εισόδημα, το επίπεδο μόρφωσης κ.α. Η συνιστώσα της συμπεριφοράς περιλαμβάνει πληροφορίες σχετικές με τις online δραστηριότητες του πελάτη. Συνήθως αποθηκεύεται σε διαφορετικές μορφές. Η πιο κοινή αναπαράσταση της πληροφορίας με συνιστώσα τη συμπεριφορά είναι οι κανόνες συσχέτισης. Τα δεδομένα για το σχεδιασμό του προφίλ του χρήστη μπορούν να συλλεχθούν είτε άμεσα (explicit profiling) είτε έμμεσα(implicit profiling). Η άμεση συλλογή απαιτεί την ενεργή συμμετοχή του χρήστη και επομένως επιτρέπει στον χρήστη να ελέγχει τις πληροφορίες στο προφίλ του. Μπορεί να πάρει διαφορετικές μορφές. Ο χρήστης μπορεί να συμπληρώσει μια φόρμα, να συμμετάσχει σε μια έρευνα, να συμπληρώσει ένα ερωτηματολόγιο, να υποβάλει προσωπικά στοιχεία κατά την εγγραφή του, να κατατάξει ή να ψηφίσει προϊόντα κλπ. Αυτή η μέθοδος έχει το πλεονέκτημα ότι επιτρέπει στους πελάτες να δηλώσουν άμεσα αυτό που χρειάζονται και πως το χρειάζονται. Η έμμεση συλλογή δεδομένων για το σχεδιασμό του προφίλ δεν απαιτεί δεδομένα εισόδου από τον χρήστη αφού παρακολουθεί και καταγράφει τη συμπεριφορά του προκειμένου να καθορίσει την πλοήγηση και τα πρότυπα αγορών του. Σε πολλές περιπτώσεις, η καταγραφή γίνεται χωρίς τη συναίνεση του χρήστη και χωρίς ο τελευταίος να το αντιληφθεί. Τα έμμεσα δεδομένα μπορούν να συλλεχθούν είτε από τη μεριά του πελάτη είτε από τη μεριά του Server. Τα δεδομένα που προέρχονται από τον Server περιλαμβάνουν αυτόματα παραγόμενα δεδομένα από logs προσπέλασης στον Server, referrer logs, agent logs κλπ. Τα δεδομένα από τη μεριά του πελάτη μπορεί να περιλαμβάνουν cookies, καταγραφή κινήσεων με το ποντίκι ή το πληκτρολόγιο κλπ. Μια άλλη πηγή δεδομένων του πελάτη είναι οι βάσεις δεδομένων δοσοληψίας, τα δεδομένα που υποστηρίζουν την αγορά του προϊόντος (πριν και μετά) ή οι δημογραφικές πληροφορίες. Αυτά τα δεδομένα, μπορούν να συγκεντρωθούν δυναμικά από ένα Web site ή να ληφθούν από τρίτους. Σε πολλές περιπτώσεις τα δεδομένα αποθηκεύονται σε διαφορετικές μορφές σε πολλές, ανόμοιες βάσεις δεδομένων. Ο έμμεσος σχεδιασμός του προφίλ του χρήστη εξαλείφει την επιβάρυνση που σχετίζεται με την παροχή προσωπικής πληροφορίας από τον χρήστη. Αντί επομένως το σύστημα να βασίζεται στην είσοδο του χρήστη, προσπαθεί να συλλέξει σχετικά δεδομένα και να εξάγει πληροφορίες που είναι σχετικές με τον χρήστη. Παρά το γεγονός ότι αυτός ο τρόπος είναι λιγότερο αυθαίρετος, μπορεί να εγείρει αρκετά ιδιωτικά ζητήματα. 34

35 Εικόνα 10: Συνολική διεργασία εξατομίκευσης σε ένα Web Site. Τα προφίλ των χρηστών και τα στοιχεία τους μπορούν να κατηγοριοποιηθούν επιπλέον σε στατικά και δυναμικά ή σε ατομικά και ομαδικά (γκρουπ από προφίλ). Ένα στατικό προφίλ αλλάζει σπάνια ή καθόλου (για παράδειγμα δημογραφικές πληροφορίες). Αν οι επιλογές του πελάτη τείνουν να μεταβληθούν σε σχέση με το χρόνο, χρησιμοποιούνται τα δυναμικά προφίλ που περιοδικά ανανεώνονται προκειμένου να αντικατοπτρίζουν τις αλλαγές στην καταναλωτική συμπεριφορά. Επίσης, για την δημιουργία των ομαδικών προφίλ χρησιμοποιούνται κανόνες και πρότυπα που εξάγονται από την εφαρμογή τεχνικών εξόρυξης γνώσης από τη χρήση του Web. 3.2 Τεχνολογίες Φιλτραρίσματος Αν και απαραίτητη, η διαχείριση του προφίλ του χρήστη (δημιουργία, ανανέωση και διατήρηση του προφίλ του χρήστη) δεν επαρκεί για την παροχή προσωποποιημένων υπηρεσιών. Οι πληροφορίες που προέρχονται από το προφίλ του χρήστη θα πρέπει να αναλυθούν προκειμένου να εξαχθούν συμπεράσματα για τις ανάγκες και προτιμήσεις του. Οι πιο δημοφιλείς τεχνικές είναι το φιλτράρισμα με βάση το περιεχόμενο (content based filtering), το συνεργατικό φιλτράρισμα (collaborative filtering), το φιλτράρισμα με βάση κανόνες (rule-based filtering) και η εξόρυξη γνώσης από τη χρήση του Web( κεφ. 2). Η εξατομίκευση 35

36 του Site επιτυγχάνεται με τον εντυπωσιακό τονισμό των υπαρχόντων υπερσυνδέσεων (highlighting), την δυναμική εισαγωγή νέων υπερσυνδέσεων που φαίνεται πως ενδιαφέρουν τον χρήστη ή ακόμα και τη δημιουργία μιας νέας σελίδας περιεχομένων (index page) Φιλτράρισμα που βασίζεται σε κανόνες Η εξόρυξη κανόνων συσχέτισης αναζητά αντικείμενα που τείνουν να εμφανίζονται μαζί σε κάποιο σύνολο δεδομένων. Τα αντικείμενα αυτά μπορεί να σχετίζονται με διαφορετικά πράγματα σε διαφορετικά περιεχόμενα. Μπορεί να είναι προϊόντα που αγοράστηκαν από έναν πελάτη, σελίδες που έχει επισκεφτεί ένας χρήστης κα. Τυπικά, για να ορίσουμε τους κανόνες συσχέτισης χρησιμοποιούμε τη συντομογραφία Ι για να δηλώσουμε το σύνολο όλων των αντικειμένων. Μια συναλλαγή Τ μπορεί να οριστεί σαν όλο το σύνολο αντικειμένων που αγοράστηκαν μαζί (Τ Ι). Το σύνολο όλων των συναλλαγών ορίζεται με το D. Τότε ένας κανόνας συσχέτισης ορίζεται σαν μια συνέπεια δύο στοιχειοσυνόλων Α και Β, που δηλώνεται με Α Β, όπου Α Ι, Β Ι και Α Β=. Ένας κανόνας συσχέτισης δείχνει ότι η παρουσία αντικειμένων του Α σε μια συναλλαγή, υπονοεί την παρουσία αντικειμένων του Β. Τα μέτρα που χρησιμοποιούνται για να υποδείξουν την ισχύ ενός κανόνα συσχέτισης είναι η εμπιστοσύνη και η υποστήριξη (κεφ. 2). Η υποστήριξη ενός κανόνα συσχέτισης Α Β είναι ο λόγος των συναλλαγών που περιέχουν το Α και το Β δηλαδή Α Β / D. Η εμπιστοσύνη ενός κανόνα Α Β είναι ο λόγος των συναλλαγών που περιέχουν το Α και επίσης το Β, δηλαδή Α Β / Α. Φυσικά μπορεί να παραχθεί ένας μεγάλος αριθμός από κανόνες συσχέτισης από τεράστιες βάσεις δεδομένων συναλλαγών. Για το λόγο αυτό χρησιμοποιείται η ελάχιστη υποστήριξη και η ελάχιστη εμπιστοσύνη για τον αποκλεισμό ασθενών και μη σημαντικών κανόνων συσχέτισης. Έτσι οι κανόνες που δεν ικανοποιούν την ελάχιστη υποστήριξη και ελάχιστη εμπιστοσύνη παραλείπονται από τους κανόνες συσχέτισης. Ένας αποδοτικός αλγόριθμος εξόρυξης κανόνων συσχέτισης είναι ο αλγόριθμος ανάπτυξης συχνών προτύπων (frequent pattern growth FP growth). Ο συγκεκριμένος αλγόριθμος χρησιμοποιεί τη μέθοδο «διαίρει και βασίλευε» και συμπιέζει τη βάση δεδομένων των συχνών αντικειμένων σε ένα δέντρο συχνών προτύπων (28) Συνεργατικό Φιλτράρισμα Το συνεργατικό φιλτράρισμα ήταν μια από τις πρώτες τεχνολογίες συστάσεων και χρησιμοποιείται για τη δημιουργία σύστασης σε έναν χρήστη βρίσκοντας ένα σύνολο χρηστών - που λέγεται «γειτονιά» - που έχουν ίδιες προτιμήσεις με αυτόν τον χρήστη. Τα προϊόντα που προτιμούν οι γείτονες προτείνονται στη συνέχεια στον χρήστη. Εν ολίγης, το συνεργατικό φιλτράρισμα βασίζεται στην ιδέα ότι τα άτομα που συμφωνούν στον παρελθόν στις αποφάσεις του είναι πιθανό να συμφωνήσουν και στο μέλλον. Η διαδικασία του φιλτραρίσματος αποτελείται από τρία στάδια: την αναπαράσταση και κατάταξη 36

37 των προϊόντων, τον σχηματισμό της γειτονιάς και τέλος την παραγωγή των συστάσεων. Κατά τη διάρκεια της αναπαράστασης δημιουργείται ένας πίνακας πελατών-προϊόντων που αποτελείται από τη βαθμολογία όλων των προϊόντων από τους πελάτες. Ο παραπάνω πίνακας είναι τεράστιος και αραιός. Τεράστιος γιατί τα περισσότερα ηλεκτρονικά καταστήματα προσφέρουν μεγάλα σύνολα προϊόντων με χιλιάδες είδη το καθένα από αυτά και αραιός γιατί ένας πελάτης κάνει αποτίμηση σε ένα μικρό σύνολο προϊόντων. Για να μειωθεί η διάσταση του πίνακα μπορούν να χρησιμοποιηθούν διάφορες μέθοδοι μείωσης της διάστασης όπως η συσταδοποίηση όρων (term clustering) και η λανθάνουσα δημιουργία σημαντικών περιεχομένων (latent semantic indexing). Ο σχηματισμός της γειτονιάς βασίζεται στον υπολογισμό των ομοιοτήτων μεταξύ των πελατών που θα ανήκουν στην ίδια γειτονιά. Η ομοιότητα μετριέται συνήθως είτε με μια συσχέτιση είτε με κάποιο σχετικό μέτρο. Μετά τον υπολογισμό της εγγύτητας των πελατών, μια γειτονιά σχηματίζεται με τη χρήση των αλγορίθμων συσταδοποίησης (clustering algorithms). Το τελικό στάδιο του φιλτραρίσματος είναι η παραγωγή των σημαντικότερων Ν- συστάσεων από τη γειτονιά των πελατών. Οι συστάσεις δημιουργούνται με τη χρήση της τεχνικής των πιο συχνών αντικειμένων, που εξετάζει τη γειτονιά του πελάτη και κατατάσσει όλα τα προϊόντα σύμφωνα με την συχνότητα εμφάνισής τους. Τα Ν πιο συχνά προϊόντα που έχουν αγοραστεί είναι και τα προτεινόμενα. Μια άλλη τεχνική βασίζεται επίσης σε κανόνες συσχέτισης Φιλτράρισμα που βασίζεται στο περιεχόμενο Μια άλλη τεχνική συστάσεων είναι το φιλτράρισμα που βασίζεται στο περιεχόμενο (8). Ενώ το συνεργατικό φιλτράρισμα αναγνωρίζει πελάτες που έχουν μεταξύ τους παρόμοια γούστα, το φιλτράρισμα με βάση το περιεχόμενο αναγνωρίζει αντικείμενα παρόμοια με αυτά που ο πελάτης είχε προτιμήσει ή αγοράσει στο παρελθόν. Το φιλτράρισμα αυτό έχει τις ρίζες του στην ανάκτηση πληροφορίας (7). Για παράδειγμα ένα έγγραφο κειμένου προτείνεται με βάση μία σύγκριση που γίνεται στο περιεχόμενο του εγγράφου και του προφίλ του χρήστη. Η σύγκριση γίνεται με τη χρήση διανυσμάτων λέξεων και των σχετικών τους βαρών. Σε κάποιες περιπτώσεις, ο χρήστης πρέπει να αξιολογήσει (ανατροφοδότηση) το σύστημα μετά την εμφάνιση του εγγράφου. Αν ο χρήστης επιθυμεί αυτή τη σύσταση τότε τα βάρη των λέξεων που εξάγονται από το έγγραφο, αυξάνονται. Η διαδικασία αυτή ονομάζεται σχετική ανατροφοδότηση. Ωστόσο, τα συστήματα που βασίζονται στο φιλτράρισμα με βάση το περιεχόμενο έχουν αρκετές ελλείψεις. Καταρχήν τα συστήματα αυτά δε μπορούν να εφαρμοστούν σε τομείς όπου δεν υπάρχει περιεχόμενο που συσχετίζεται με αντικείμενα, ή όπου το περιεχόμενο είναι δύσκολο να αναλυθεί. Για παράδειγμα, είναι πολύ δύσκολο να εφαρμοστούν συστήματα συστάσεων με βάση το περιεχόμενο για την παραγωγή καταλόγων που βασίζονται μόνο σε εικονογραφημένες πληροφορίες. Δεύτερον, μόνο μια επιπόλαια ανάλυση των πολύ αυστηρών τύπων πραγματοποιείται συνήθως. Για να ξεπεραστούν αυτά τα προβλήματα έχει προταθεί μια νέα υβριδική τεχνική συστάσεων που ονομάζεται συνεργατικό φιλτράρισμα με ενισχυμένο περιεχόμενο (content-boosted 37

38 collaborative filtering) (54). Η τεχνική αυτή χρησιμοποιεί πρόβλεψη με βάση το περιεχόμενο για να εμπλουτίσει τα υπάρχοντα δεδομένα του χρήστη και στη συνέχεια παρέχει συστάσεις χρησιμοποιώντας συνεργατικό φιλτράρισμα. Σε γενικές γραμμές, τόσο το φιλτράρισμα με βάση το περιεχόμενο όσο και το συνεργατικό φιλτράρισμα βασίζονται σημαντικά στην είσοδο του χρήστη, η οποία μπορεί να είναι υποκειμενική, ανακριβής και επιρρεπής σε προκαταλήψεις. Σε πολλούς τομείς, οι αξιολογήσεις των χρηστών μπορεί να μην είναι διαθέσιμες ή αν είναι δύσκολο να αποκτηθούν. Επιπρόσθετα, τα προφίλ των χρηστών είναι συνήθως στατικά και μπορούν σύντομα να λήξουν. 3.3 Έξυπνοι πράκτορες για εξατομίκευση Η τεχνολογία των έξυπνων πρακτόρων (intelligent agent) παρέχει έναν χρήσιμο μηχανισμό για εξατομίκευση και προσαρμοστικότητα. Ο όρος «έξυπνος πράκτορας» έχει χρησιμοποιηθεί με διαφορετική σημασία από συγγραφείς. Πράκτορας είναι ένα λογισμικό που ενεργεί για το συμφέρον του χρήστη και έχει τις παρακάτω ιδιότητες (85): Αυτονομία: οι πράκτορες λειτουργούν χωρίς την άμεση μεσολάβηση του χρήστη τους. Κοινωνική ικανότητα: οι πράκτορες αλληλεπιδρούν με άλλους πράκτορες (ακόμα και ανθρώπους) μέσω μια γλώσσας επικοινωνίας πρακτόρων. Ικανότητα αντίδρασης: οι πράκτορες αντιλαμβάνονται και προσαρμόζονται σε ένα περιβάλλον που μεταβάλλεται δυναμικά. Ενεργητικότητα: οι πράκτορες δεν ανταποκρίνονται μόνο στο περιβάλλον τους αλλά είναι σε θέση να κατευθύνονται προς ένα συγκεκριμένο στόχο. Λογική: κάθε πράκτορας έχει την αναπαράσταση των προτιμήσεων των χρηστών του και προσπαθεί να τους ικανοποιήσει με τον καλύτερο δυνατό τρόπο. Οι έξυπνοι πράκτορες είναι διαθέσιμοι σε διάφορους τύπους. Οι πράκτορες Διαδικτύου (internet agents) βοηθούν τον χρήστη να συλλέξει, να διαχειριστεί και να αναλύσει πληροφορίες. Κάποιοι από αυτούς ενσωματώνονται στον φυλλομετρητή και βοηθούν τον χρήστη να πλοηγηθεί σε ένα Web site. Οι πράκτορες διεπαφής (interface agents) λειτουργούν σαν προσωπικοί βοηθοί και συνεργάζονται με τον πελάτη, αφού παρακολουθούν, παρατηρούν και μαθαίνουν από τις ενέργειες των χρηστών. Κάποιοι μπορούν επίσης να υποθέσουν τον τύπο ενός σύνθετου χαρακτήρα ενώ άλλοι μπορούν να αντιγράψουν τα συναισθήματα του χρήστη ή να συνομιλήσουν με τον τελευταίο στη φυσική του γλώσσα. Οι συνεργατικοί πράκτορες (collaborative agents) λειτουργούν σαν ομάδα για να πετύχουν έναν κοινό στόχο. Οι κινητοί πράκτορες (mobile agents) μπορούν να περιπλανηθούν στο Διαδίκτυο και να αλληλεπιδράσουν με ξένα host και άλλους πράκτορες εκ μέρους των χρηστών τους. Συνοψίζοντας, οι έξυπνοι πράκτορες μπορούν να θεωρηθούν σαν proxy των χρηστών, ικανοί για μάθηση και κριτική των προτιμήσεων των χρηστών. Το WebWatcher (34) ήταν ένας από τους πρώτους πράκτορες που δημιουργήθηκε για να βοηθήσει τους χρήστες στην πλοήγηση του Web. Οδηγεί τους χρήστες σε ένα Web site προβλέποντας το μονοπάτι που θα ακολουθήσουν με βάση το ιστορικό πλοήγησης προηγούμενων χρηστών στο Web Site. Το WebWatcher 38

39 θεωρεί πως ένας συγκεκριμένος υπερσύνδεσμος είναι πιθανότερο να ακολουθηθεί από έναν χρήστη αν προηγουμένως τον έχουν ακολουθήσει επισκέπτες με ίδια γούστα. Το WebWatcher προτείνει ένα σύνδεσμο με βάση τον ενεργό χρήστη, το ενδιαφέρον του και μια σελίδα. Το ενδιαφέρον του χρήστη αναπαρίσταται με ένα σύνολο λέξεων κλειδιά και ένας υπερσύνδεσμος αναπαρίσταται με ένα χαρακτηριστικό διάνυσμα. Όταν ένας νέος χρήστης μπαίνει σε μια σελίδα, το WebWatcher συγκρίνει το τρέχων ενδιαφέρον του χρήστη με τις περιγραφές των υπερσυνδέσμων στη σελίδα και προτείνει τους υπερσυνδέσμους που σχετίζονται με το ενδιαφέρον του χρήστη. Το Letizia (42) είναι ένα άλλο λογισμικό για εξατομίκευση από μεριά πελάτη. Μαθαίνει ένα μοντέλο του πελάτη του παρατηρώντας τη συμπεριφορά του. Το μοντέλο του πελάτη αποτελείται από μία λίστα από λέξεις κλειδιά με βάρη που αναπαριστούν το ενδιαφέρον του πελάτη. Το Letizia εξερευνά το Web μπροστά από τον χρήστη του και προτείνει σημαντικούς υπερσυνδέσμους που παρουσιάζουν ενδιαφέρον. Καταγράφει κάθε επιλογή του χρήστη σε μια σελίδα και θεωρεί τη σελίδα σαν θετική ανατροφοδότηση (δείγμα ενδιαφέροντος). Επίσης, παρατηρεί τις επιλογές του χρήστη και μαθαίνει από τα ενδιαφέροντα του. Αυτό είναι ένα παράδειγμα μη ενοχλητικής εξατομίκευσης που δεν απαιτεί την άμεση αλληλεπίδραση με τον χρήστη, που δε θα χρειαστεί να εκτιμήσει και να κατατάξει σελίδες, 3.4 Εξατομίκευση με βάση τη θέση Οι πληροφορίες που χρησιμοποιούνται για εξατομίκευση μπορούν να κυμαίνονται από ένα ιστορικό παλαιών αγορών και τη συμπεριφορά τη συμπεριφορά πλοήγησης μέχρι παραχωρημένες με σαφή τρόπο, προτιμήσεις του χρήστη. Η τεράστια ανάπτυξη των ασύρματων δικτύων και του εμπορίου μέσω κινητών παρέχει νέες ευκαιρίες για εξατομίκευση προσφέροντας περισσότερο σχετικές με το χρήστη πληροφορίες όπως είναι η γεωγραφική θέση, η ημερομηνία, ο χρόνος, η κατεύθυνση της διαδρομής κλπ. Οι συσκευές χειρός για παράδειγμα, επιτρέπουν στους πελάτες να λάβουν προσωποιημένο περιεχόμενο και συστάσεις κατά την κίνηση για σπίτι και δουλειά. Μια ελπιδοφόρα τεχνολογία είναι οι υπηρεσίες με βάση την θέση (Location Based Services - LBS) που επιτρέπουν σε μια επιχείρηση να εντοπίζει τη θέση του χρήστη και να του προσφέρουν υπηρεσίες που εξαρτώνται από το περιβάλλον. Οι υπηρεσίες αυτές βελτιώνουν σημαντικά το ασύρματο μάρκετινγκ και τις υπηρεσίες έκτατης ανάγκης. Τον Οκτώβριο του 2000, η Ericsson, η Motorola και η Nokia ίδρυσαν το Location Interoperability Forum LIF για την παροχή υπηρεσιών με βάση τη θέση. Το LIF στοχεύει στην παροχή ενός κοινού προτύπου εντοπισμού συσκευών που θα επιτυγχάνει καθολική λειτουργία των υπηρεσιών με βάση τη θέση και ανεξάρτητα από την τεχνολογία που χρησιμοποιούν. Φυσικά υπάρχουν πολλές τεχνολογίες σήμερα για την ανίχνευση της θέσης. Για παράδειγμα μία μέθοδος περιλαμβάνει τον αριθμό ID της κυψέλης που αναγνωρίζει ένα κινητό στο δίκτυο. Άλλες μέθοδοι είναι ο τριγωνισμός ( που χρησιμοποιείται από αρκετούς δορυφόρους σε GPS), η κυψέλη προέλευσης (όπου το κινητό εντοπίζεται από μια κοντινή κεραία), η γωνία άφιξης (αρκετές κεραίες μετρούν τις γωνίες από τις οποίες φτάνουν τα σήματα του κινητού) και τέλος από τη 39

40 διαφορά χρόνου που παρατηρήθηκε (δηλαδή το χρόνο της διαδρομής από τη μια κεραία στην άλλη). Οι LBS υπηρεσίες επιτρέπουν στους παροχείς περιεχομένου να προσφέρουν εξατομικευμένες υπηρεσίες με βάση τη γεωγραφική θέση του πελάτη. Οι χρήστες κινητών μπορούν να λάβουν αναφορές τοπικών δελτίων καιρού, νέων, πληροφορίες κυκλοφοριακής κίνησης, χάρτες, ξενοδοχεία, πληροφορίες εστιατορίων κλπ. Ένα πρόβλημα ωστόσο των υπηρεσιών αυτών είναι ότι η μικρή οθόνη και οι περιορισμένες δυνατότητες των ασύρματων συσκευών μειώνουν το επίπεδο εξατομίκευσης. Για παράδειγμα είναι συχνά ανέφικτη η χρήση φορμών εγγραφής και ερωτηματολογίων του web για άμεση εξατομίκευση. Ένα άλλο πρόβλημα είναι η πολύπλοκη πλοήγηση και η δομή των Site που χρησιμοποιούν WAP (wireless application protocol). Κάθε WAP Site αποτελείται από πολλές παρτίδες που η καθεμία από αυτές περιέχει μία ή περισσότερες καρτέλες. Οι σύνδεσμοι υπερκειμένου μπορούν να γίνουν ανάμεσα στις καρτέλες στην ίδια ή σε διαφορετικές παρτίδες. Σαν αποτέλεσμα, οι χρήστες πρέπει να κάνουν πολλές επιλογές και να μετακινηθούν σε πολλές καρτέλες για να επιτύχουν τον στόχο τους. Επιπλέον, η περιορισμένη ισχύς επεξεργασίας και η αργή πρόσβαση στο δίκτυο προκαλούν μεγάλους χρόνους απόκρισης. Για τη βελτίωση της πλοήγησης σε ένα Web Site για ασύρματες συσκευές έχει προταθεί ένας αλγόριθμος εξατομίκευσης (5) ο MinPath που προτείνει αυτόματα χρήσιμους συνδέσμους συντόμευσης σε πραγματικό χρόνο. Ο MinPath βρίσκει συντομεύσεις χρησιμοποιώντας ένα μοντέλο εκμάθησης της συμπεριφοράς του επισκέπτη για να εκτιμήσει τις συντομεύσεις και να προτείνει μόνο λίγους αλλά τους καλύτερους συνδέσμους. Ο αλγόριθμος λαμβάνει υπόψη του την αξία που έχει για έναν επισκέπτη η προβολή μιας σελίδας και την προσπάθεια που κατέβαλε για να τη επισκεφτεί. 3.5 Μοντελοποίηση Προτιμήσεων Οι προτιμήσεις ενός χρήστη παίζουν ένα σημαντικό ρόλο στην μοντελοποίηση του χρήστη, την εξατομίκευση και την προσαρμοστικότητα. Κατά παράδοση, οι προτιμήσεις των ανθρώπων μπορούν να μοντελοποιηθούν σαν μια δυαδική σχέση R πάνω σε ένα πιθανό σύνολο εναλλακτικών όπως προϊόντα και υπηρεσίες, περιεχόμενο με πληροφορίες, πλάνα, στυλ αλληλεπίδρασης κλπ. Μια σχέση προτίμησης R μεταξύ δύο εναλλακτικών (ή επιλογών προτίμησης) Χ και Υ (δηλαδή R(X,Y) ), στηρίζεται αν το Χ είναι περισσότερο προτιμώμενο από το Υ. Αυτό σημαίνει ότι ο χρήστης θα επιλέξει το X όταν θα αντιμετωπίσει μια επιλογή ανάμεσα στο Χ και το Υ. Έχει αποδειχθεί ότι υπό ορισμένες συνθήκες, μια σχέση προτίμησης μπορεί να αναπαρασταθεί από μια αριθμητική συνάρτηση διατήρησης της σειράς που ονομάζεται συνάρτηση χρησιμότητας U (Utility function). Με άλλα λόγια, η εναλλακτική Χ προτιμάται περισσότερο από την εναλλακτική Υ αν και μόνο αν η χρησιμότητα του Χ είναι μεγαλύτερη από την χρησιμότητα του Υ (U(X)>U(Y)). Με τη γνώσης της συνάρτησης χρησιμότητας του χρήστη, το σύστημα είναι σε θέση να προσφέρει αυτά τα προϊόντα, τις υπηρεσίες ή τις πληροφορίες που μεγιστοποιούν τη χρησιμότητα του πελάτη. Το πρόβλημα που υπάρχει σε αυτή τη μέθοδο είναι πώς θα αναπαρασταθούν οι προτιμήσεις των χρηστών με υπολογιστικά βολικό τρόπο και πώς να αντιμετωπιστούν ελλιπής και ανακριβής 40

41 προτιμήσεις. Συνεπώς, υπάρχουν τρία σημαντικά προβλήματα: α) πως θα εξαχθούν οι προτιμήσεις των χρηστών, β)πως θα αντιμετωπιστούν υποθετικές προτιμήσεις και γ) πως θα γίνει εκμετάλλευση των προτιμήσεων για εξατομικευμένη πρόσβαση σε βάσεις δεδομένων Εξαγωγή προτιμήσεων Η διαδικασία της εξαγωγής των προτιμήσεων αποτελείται από την εύρεση των προτιμήσεων του χρήστη για ένα καλά καθορισμένο σύνολο επιλογών (πχ προϊόντα). Γενικά, η εξαγωγή των προτιμήσεων θα μπορούσε να υλοποιηθεί με συνέντευξη ή με παρατήρηση της συμπεριφοράς του χρήστη. Φυσικά έχουν προταθεί αρκετές μέθοδοι για εξαγωγή προτιμήσεων. Οι περισσότερες υποθέτουν ότι οι προτιμήσεις των καταναλωτών είναι προσθετικές συναρτήσεις για διαφορετικά γνωρίσματα ή αντικειμενικές αποφάσεις. Αυτό σημαίνει ότι μια συνάρτηση χρησιμότητας για πολλά γνωρίσματα του χρήστη είναι ένα σύνολο βαρών από συναρτήσεις χρησιμότητας ενός γνωρίσματος (single attribute utility function): U(x 1,.,x n ) = Σw i U i (x i ) όπου U(x 1,.,x n ) είναι η συνάρτηση χρησιμότητας του χρήστη, U i (x i ) είναι οι συναρτήσεις χρησιμότητας ενός γνωρίσματος και w i τα βάρη τους. Διαισθητικά, η υπόθεση αυτή σημαίνει ότι μπορεί να είναι φυσικό να σκεφτεί κανείς με όρους χρησιμότητας για κάθε γνώρισμα και στη συνέχεια να συνδυαστούν αυτές οι συναρτήσεις για τη συνολική συνάρτηση χρησιμότητας. Η διαδικασία αναλυτικής ιεραρχίας (analytic hierarchy process AHP) (75) είναι μια κοινή μέθοδος για την ανακάλυψη των βαρών των γνωρισμάτων w i. Η AHP γίνεται σε δύο βήματα. Στο πρώτο βήμα δημιουργείται μια ιεραρχία γνωρισμάτων. Στο δεύτερο βήμα ζητείται από τον χρήστη να συγκρίνει γνωρίσματα που μοιράζονται τον ίδιο πατέρα στην ιεραρχία. Οι συγκρίσεις αυτές καθορίζουν τη σχετική σημασία κάθε γνωρίσματος όσον αφορά το γνώρισμα που βρίσκεται ένα επίπεδο πιο πάνω. Η ισχύς της σύγκρισης μετριέται με ένα κλάσμα αναρρίχησης. Με τις συγκρίσεις κατασκευάζεται ένας αντίστροφος πίνακας, ο οποίος κατά συνέπεια χρησιμοποιείται για την παραγωγή των σχετικών βαρών w i για τη συνολική συνάρτηση χρησιμότητας. Μια άλλη μέθοδος για εξαγωγή προτιμήσεων είναι η ανάλυση συνένωσης πολλαπλών γνωρισμάτων (43). Οι τιμές γνωρισμάτων συνήθως ξεχωρίζονται και κάθε συνδυασμός των διακεκριμένων επιπέδων γνωρισμάτων κατατάσσεται από τον χρήστη. Η κατάταξη στη συνέχεια χρησιμοποιείται με την τιμή χρησιμότητάς της. Οι συντελεστές w i στη συνολική συνάρτηση χρησιμότητας προκύπτουν με στατιστικές μεθόδους. Άμεσες προσεγγίσεις για εξαγωγή προτιμήσεων είναι παρόλα αυτά μη εφικτές εξαιτίας του εκθετικού αριθμού συγκρίσεων και της πολυπλοκότητας των ερωτήσεων που έχουν ζητηθεί. Σε εφαρμογές όπως τα συστήματα συστάσεων, η διαμόρφωση προϊόντων και τα προσαρμοστικά ηλεκτρονικά καταστήματα οι χρήστες δεν διακρίνονται για την υπομονετικότητά τους και δεν εξασφαλίζουν λεπτομερείς σχέσεις προτιμήσεων και συναρτήσεις χρησιμότητας. Επιπρόσθετα, οι χρήστες δεν αναμένεται πάντα να εξασφαλίζουν 41

42 ακριβείς και πλήρης πληροφορίες για τις προτιμήσεις τους. Γενικά, η εξαγωγή άμεσων προτιμήσεων απαιτεί ένα σημαντικό επίπεδο αυτοελέγχου και επιβάλλει ένα σημαντικό γνωστικό φόρτο στους χρήστες. Αντί για την άμεση εξαγωγή προτιμήσεων, μπορεί να χρησιμοποιηθεί η ταξινόμηση (18) για να προσδιορίσει τη συνάρτηση χρησιμότητας του χρήστη. Οι συναρτήσεις χρησιμότητας των χρηστών μπορούν να χωριστούν σε συστάδες με παρόμοιες συναρτήσεις χρησιμότητας σε κάθε συστάδα. Κάθε συστάδα χαρακτηρίζεται από μια συνάρτηση χρησιμότητας που ονομάζεται πρωτότυπη. Για κάθε νέο χρήστη το σύστημα βρίσκει τη συστάδα που είναι πιθανότερο να ανήκει και χρησιμοποιεί την πρωτότυπη συνάρτηση για αυτή τη συστάδα για να προβλέψει τις προτιμήσεις του Κρίνοντας υποθετικές προτιμήσεις Οι περισσότερες έρευνες για τη μοντελοποίηση προτιμήσεων επικεντρώνονται σε προσθετικές συναρτήσεις χρησιμότητας στις οποίες κάθε γνώρισμα της συνάρτησης είναι ανεξάρτητο από τα υπόλοιπα γνωρίσματα. Τέτοιες συναρτήσεις επιτρέπουν μια πολλή κομψή αναπαράσταση στη μορφή ενός αθροίσματος βαρών από συναρτήσεις γνωρισμάτων. Για παράδειγμα, αν οι προτιμήσεις ενός χρήστη για προϊόν με ποιότητα Q είναι ανεξάρτητες από τις προτιμήσεις του για προϊόν μάρκας Β, τότε η χρησιμότητα του χρήστη μπορεί να αναπαρασταθεί με ένα άθροισμα βαρών: U(Q,B) = w 1 U(Q) + w 2 U(B) όπου U(Q,B) είναι η συνολική χρησιμότητα του προϊόντος, U(Q) είναι η χρησιμότητα για την ποιότητα του προϊόντος και U(B) είναι η χρησιμότητα για τη μάρκα. Οι προσθετικές συναρτήσεις χρησιμότητας είναι εύκολο να εκτιμηθούν και να αξιολογηθούν. Ωστόσο προκύπτει ένα πρόβλημα όταν οι προτιμήσεις των γνωρισμάτων των προϊόντων δεν είναι ανεξάρτητες. Για παράδειγμα, μία προτίμηση για μάρκα συνήθως εξαρτάται από το επίπεδο ποιότητας και αντίστροφα. Για την υπέρβαση του προβλήματος, προτάθηκε ένα μοντέλο υποθετικών προτιμήσεων (15). Οι προτιμήσεις αναπαριστάνονται σαν δίκτυο που ονομάζεται δίκτυο υποθετικών προτιμήσεων (conditional preference network CP) και καθορίζει την εξάρτηση των γνωρισμάτων και επιπλέον τη διάταξη προϊόντων που ικανοποιούν το σύνολο προτιμήσεων του χρήστη. Έχουν προταθεί αρκετοί αλγόριθμοι που αναζητούν τη βέλτιστη διάταξη προϊόντων με δεδομένο ένα σύνολο περιορισμών. Στο (21) τα CP δίκτυα χρησιμοποιούνται για εξατομίκευση μιας σελίδας του Web. Η βέλτιστη παρουσίαση μια σελίδας του Web προσδιορίζεται λαμβάνοντας υπόψη τις προτιμήσεις του κατασκευαστή της σελίδας, τους περιορισμούς της μορφής της σελίδας και την αλληλεπίδραση του επισκέπτη με τον φυλλομετρητή. Για παράδειγμα, οι προτιμήσεις του κατασκευαστή της σελίδας αναπαρίστανται με ένα CP δίκτυο και οι τεχνικές βελτιστοποίησης με βάση τους περιορισμούς χρησιμοποιούνται για τον προσδιορισμό της διαμόρφωσης της βέλτιστης σελίδας. 42

43 3.5.3 Ερωτήματα με βάση την προτίμηση Η μοντελοποίηση των προτιμήσεων παίζει ένα σημαντικό ρόλο σε εφαρμογές ηλεκτρονικού εμπορίου όπου οι χρήστες αντιμετωπίζουν το πρόβλημα του φόρτου πληροφορίας δηλαδή το πώς να επιλέξουν ανάμεσα από χιλιάδες προϊόντα και περιγραφές προϊόντων. Τα ερωτήματα προτιμήσεων (20) έχουν προταθεί σαν εργαλείο για να βοηθήσουν τον χρήστη να σχηματίσει τα καταλληλότερα ερωτήματα και να λάβει τα αποτελέσματα ταξινομημένα σύμφωνα με τις προτιμήσεις του. Επίσης, έχουν προταθεί (20) αρκετοί αλγόριθμοι για την εκτίμηση των ερωτημάτων των προτιμήσεων. 43

44 ΚΕΦΑΛΑΙΟ 4 ΠΡΟΤΥΠΑ ΓΙΑ ΕΞΑΤΟΜΙΚΕΥΣΗ ΕΝΟΣ SITE Ο σχεδιασμός ενός web site είναι φυσικά ένα πολύπλοκο πρόβλημα. Τα log των προσβάσεων των χρηστών παρέχουν τη δυνατότητα να παρατηρείται η συμπεριφορά του χρήστη στο site και να γίνονται βελτιώσεις στη δομή του και την παρουσίαση του. Για το λόγο αυτό προτάθηκαν τα Προσαρμοστικά web sites (adaptive web sites) (46), δηλαδή site που χρησιμοποιούν τα πρότυπα πρόσβασης του χρήστη προκειμένου να βελτιώσουν την παρουσίαση και την οργάνωσή τους. Συγκεκριμένα, παρατηρείται η συμπεριφορά του χρήστη και οι δυσκολίες που αυτός αντιμετωπίζει, ώστε να είναι εφικτή η ενημέρωση σχετικά με τους τύπους χρηστών, τα συχνά πρότυπα πρόσβασης και τα κοινά προβλήματα του site. Πολλά web site μπορεί να θεωρηθούν ως διεπαφές χρηστών για πολύπλοκους χώρους πληροφορίας. Παρόλα αυτά, σε αντίθεση με τις κοινές επαφές όπου τα δεδομένα συγκεντρώνονται με ακριβό τρόπο σε ομάδες και εργαστήρια, τα log των web server αυτόματα καταγράφουν τη συμπεριφορά του χρήστη στο site. Επιβεβαιώνεται λοιπόν ότι τα προσαρμοστικά site μπορούν να γίνουν μια πολύτιμη μέθοδος εξόρυξης αυτών των δεδομένων με στόχο τη συνεχή εναρμόνιση του site με τις ανάγκες του πληθυσμού. Στη συνέχεια παρουσιάζονται τα είδη των προσαρμοστικών web site και κάποια πρότυπα που κυριαρχούν στο Διαδίκτυο με βάση το περιεχόμενο που προσαρμόζεται. 4.1 Είδη προσαρμοστικών Web Site Τα προσαρμοστικά web site ποικίλουν με βάση τους παρακάτω άξονες σχεδιασμού: Τύποι προσαρμογής: Μπορεί να χρειαστεί να δημιουργηθούν νέες σελίδες, νέοι σύνδεσμοι μπορεί να προστεθούν, να διαγραφτούν, να ξαναοργανωθούν ή να τονιστούν. Κείμενα, ετικέτες συνδέσμων ή μορφοποιήσεις μπορεί να μεταβληθούν. Προσαρμοστικότητα vs. Μετασχηματισμοί: Η προσαρμοστικότητα είναι η τροποποίηση του web site ώστε ικανοποιεί τις ανάγκες του κάθε χρήστη. Συγκεκριμένα, η προσαρμοστικότητα επιβάλλει τη δημιουργία ενός τεράστιου αριθμού εκδόσεων του web site, ένα για κάθε χρήστη. Αντίθετα, ο μετασχηματισμός περιλαμβάνει τη βελτίωση του site με βάση τις αλληλεπιδράσεις του με όλους τους χρήστες, ώστε να είναι ευκολότερη η πλοήγηση σε αυτό. Για παράδειγμα ένα πανεπιστήμιο μπορεί να αναδιοργανωθεί για να υποστηρίζει μια μορφή για το σώμα των καθηγητών και μια διαφορετική μορφή για τους φοιτητές. Από την άλλη κάποιοι μετασχηματισμοί μπορεί να χρησιμοποιηθούν για να βελτιώσουν το site για όλους τους επισκέπτες του. Με βάση το περιεχόμενο vs. με βάση την πρόσβαση: Ένα site το οποίο χρησιμοποιεί προσαρμογή με βάση το περιεχόμενο οργανώνει και 44

45 παρουσιάζει σελίδες με βάση το περιεχόμενό τους δηλαδή το τι αναφέρουν και αφορούν. Τα προγράμματα υπολογιστών είναι αδύνατο να καθορίσουν με αξιοπιστία τη σημασία μιας σελίδας ή οποιαδήποτε άλλη ανθρώπινη έκφραση. Οι προσεγγίσεις με βάση το περιεχόμενο (π.χ. με χρήση λέξεων κλειδιών) είναι απαραίτητα προσεγγιστικές. Από την άλλη, η προσαρμογή με βάση την πρόσβαση χρησιμοποιεί τον τρόπο αλληλεπίδρασης των παλιών επισκεπτών με το σύστημα, για τη δόμηση των πληροφοριών. Οι πληροφορίες πρόσβασης (που προκύπτουν για παράδειγμα από τα log του server) μπορεί να περιέχουν συνηθισμένα πρότυπα της συμπεριφοράς του χρήστη που θα υποδεικνύουν πολύτιμες προσαρμογές. Φυσικά, οι προσαρμογές με βάση το περιεχόμενο και με βάση την πρόσβαση είναι συμπληρωματικές και μπορούν να χρησιμοποιηθούν ταυτόχρονα όπως θα δούμε στη συνέχεια (αυτοματισμός). Βαθμός αυτοματισμού: Το Excite και το Yahoo, έχουν χειροκίνητη εξατομίκευση των κεντρικών τους σελίδων και αποτελούν παραδείγματα προσαρμοστικότητας. Φυσικά αυτό που έχει ενδιαφέρον είναι η εφαρμογή αυτόματων προσαρμοστικών τεχνικών. Παρόλα αυτά για λόγους σκοπιμότητας, τα web site είναι συνήθως εν μέρει αυτοματοποιημένα. 4.2 Μετασχηματισμοί Τα προσαρμοστικά site είναι χρήσιμα για αρκετούς λόγους: Το τι ψάχνει ένας επισκέπτης στο site εξαρτάται από το ποιος είναι αυτός ο επισκέπτης. Το προσαρμοστικό site μπορεί να αναγνωρίζει τυπικά είδη χρηστών και να προσαρμόζει κατάλληλα το περιεχόμενο. Αντί λοιπόν να προσαρμόζει το περιεχόμενο για κάποιο συγκεκριμένο χρήστη (όπως γίνεται από πολλά site με τη χρήση των cookies), ένα προσαρμοστικό site συγκεντρώνει τις εμπειρίες των χρηστών και γενικεύει προσαρμόζοντας το περιεχόμενο για διαφορετικούς τύπους χρηστών. Οι επισκέπτες ενός site δεν έχουν το ίδιο μοντέλο αντίληψης του site με τον σχεδιαστή του. Ένα προσαρμοστικό site μπορεί να αναγνωρίσει πότε οι προσδοκίες των χρηστών του διαφέρουν από τη δομή του Site. Παρόλο που η δομή ενός site είναι συνήθως στατική, οι ανάγκες των χρηστών μεταβάλλονται με το χρόνο. Ένα προσαρμοστικό Site μπορεί να μπορεί να μάθει αυτά τα πρότυπα και να αποφασίζει για τις πληροφορίες που παρουσιάζει στους χρήστες. Σύμφωνα με τους M.Perkowitz και O.Etzion (46) ένα προσαρμοστικό site έχει δύο βασικές συνιστώσες: τη μονάδα παρατήρησης και τη μονάδα μετασχηματισμού. Η μονάδα παρατήρησης καταγράφει την αλληλεπίδραση των χρηστών με το Site και υπολογίζει σημαντικά στατιστικά σχετικά με τις σελίδες που έχουν προσπελαστεί, τους συνδέσμους και τα μονοπάτια που έχουν διασχιστεί αλλά και τα προβλήματα που αντιμετωπίστηκαν. Η μονάδα μετασχηματισμού βασίζεται σε αυτά τα δεδομένα για να κάνει αλλαγές στη δομή του site. Οι μετασχηματισμοί που γίνονται βασίζονται σε κάποιες υποθέσεις: Τα site έχουν την κεντρική σελίδα από όπου οι χρήστες μπορούν να μπουν. Η κεντρική σελίδα αλλά και οι σελίδες που βρίσκονται κοντά 45

46 συνήθως είναι σελίδες περιεχομένων που περιέχουν περισσότερο συνδέσμους για άλλες σελίδες παρά περιεχόμενο. Όσο πιο κοντά είναι μια σελίδα στην κεντρική σελίδα του site, τόσο πιο εύκολο είναι να βρεθεί και είναι πιο πιθανό να την επισκεφθεί ένας χρήστης. Όσο πιο κοντά είναι ένας σύνδεσμος στο πάνω μέρος της σελίδας, τόσο πιο εύκολο είναι να βρεθεί και πιο πιθανό να επιλεχθεί. Τα χρώματα, οι γραμματοσειρές και τα γραφικά, μπορούν να χρησιμοποιηθούν για να τονίσουν ή να επιστήσουν την προσοχή σε συγκεκριμένους συνδέσμους. Παρόλα αυτά, η τοποθέτηση πολλών συνδέσμων σε μια σελίδα ή ο εντυπωσιακός τονισμός πολλών αντικειμένων μειώνει την ελκυστικότητα και τη χρηστικότητα της σελίδας. Πολλές σελίδες σε ένα web site μπορεί να σχετίζονται με κοινά χαρακτηριστικά και η ομαδοποίησή τους μπορεί να έχει διαισθητικά καλό αποτέλεσμα για τους χρήστες. Οι χρήστες μπορεί να αντιλαμβάνονται μια σύνδεση μεταξύ τμημάτων ενός site που ο κατασκευαστής του δεν σκόπευε να υπάρχει. Επομένως η διασύνδεση αυτών των τμημάτων μπορεί να βελτιώσει την πλοήγηση του χρήστη. Οι χρήστες μπορούν επίσης να θεωρήσουν άχρηστη μια σύνδεση που ο κατασκευαστής του site θεωρούσε σημαντική. Οι παραπάνω υποθέσεις είναι σύμφωνες με την αντιλήψεις και τις παρατηρήσεις των πραγματικών χρηστών και με βάση αυτές διακρίνονται τέσσερα βασικά είδη μετασχηματισμών σε ένα Site: ο προβιβασμός και υποβιβασμός, ο εντυπωσιακός τονισμός, η συνδεσιμότητα και η συσταδοποίηση Υποβιβασμός και Προβιβασμός Ο προβιβασμός κάνει ευκολότερη την εύρεση ενός συνδέσμου ή μιας σελίδας με την τοποθέτηση μιας αναφοράς για αυτήν κοντά στην κεντρική σελίδα (ή κοντά στην σελίδα περιεχομένων) ή με τη μετακίνηση ενός συνδέσμου στο πάνω μέρος μιας σελίδας. Ο υποβιβασμός και ο προβιβασμός βασίζονται σε σκορ δημοτικότητας ( popularity scores) των συνδέσμων και των σελίδων αφού το σύστημα καταγράφει τον αριθμό των προσπελάσεων των σελίδων και των επισκέψεων των συνδέσμων. Επίσης, καθορίζεται ένας συγκεκριμένος χώρος όπου το σύστημα έχει τον πλήρη έλεγχο και φυσικά όπου γίνεται η αναδιοργάνωση του Site. Αυτός ο χώρος υλοποιείται με frames ή με μια περιορισμένη λίστα στο πάνω μέρος των σελίδων αυτών(που τυπικά είναι οι κεντρικές σελίδες ή σελίδες περιεχομένων). Ο προβιβασμός είναι η προσθήκη ενός συνδέσμου σε αυτόν τον χώρο ενώ ο υποβιβασμός είναι η αφαίρεση ενός συνδέσμου από αυτόν. Επειδή ο χώρος αυτός είναι περιορισμένος, κάθε προβιβασμός υπονοεί και έναν υποβιβασμό. Η δημοτικότητα ορίζεται: Pop(P) = AccessCount(P) Pop(L) = TraversalCount(P) που σημαίνει ότι η δημοτικότητα μιας σελίδας ή ενός συνδέσμου είναι ο αριθμός των φορών που μια σελίδα ή ένας σύνδεσμος προσεγγίζονται. Φυσικά δεν 46

47 επαρκεί η δημοτικότητα αλλά και το πόσο προσπελάσιμα είναι αυτά τα αντικείμενα. Η απόσταση Distance(X,Y) είναι ένα μέτρο για το πόσο μακριά είναι μια σελίδα Χ από μια Υ σαν συνάρτηση του αριθμού των σελίδων που έχουν προσπελαστεί και του σημείου που βρίσκεται ο κάθε σύνδεσμος. Η προσιτότητα ενός αντικειμένου Χ ορίζεται: 1 Acc(X) = 2 Distance(Κεντρικήσελίδα, ) Όσο επομένως πιο μακριά είναι ένα αντικείμενο από την κεντρική σελίδα τόσο πιο δύσκολο είναι να προσεγγιστεί. Έστω η L(X,Y) αληθής αν υπάρχει ένας σύνδεσμος από την Χ στην Υ, Depth(X,Y) ο αριθμός των συνδέσμων που βρίσκονται πάνω από την Υ στην σελίδα Χ και P το σύνολο των σελίδων P 1, P n κατά μήκος του ελάχιστου μονοπατιού από την Χ στην Υ. Τότε η απόσταση ορίζεται: Distance(X,Y) = Depth(X,Y) όταν ισχύει το L(X,Y) Αλλιώς n 1 Distance(X,Y) = P + α i 1 Distance(Pi, Pi+1 ) Όπου α μια κλιμακωτή σταθερά. Ένα αντικείμενο λοιπόν προάγεται όταν έχει υψηλή δημοτικότητα αλλά χαμηλή προσιτότητα. Έτσι το σκορ προαγωγής είναι Pop( X ) Pro(X) = Acc ( X ) Ένα αντικείμενο Υ αντικαθίσταται με ένα αντικείμενο Χ αν Υ ((Υ Β) (Pro(X) > Pro(Y))) και Pro(X)>π, όπου π είναι ένα κατώφλι προαγωγής. Αν επίσης υπάρχει επιπλέον χώρος για συνδέσμους, ο επιπλέον χώρος θεωρείται ότι περιλαμβάνει κενά αντικείμενα με Pro() = Εντυπωσιακός τονισμός Ο εντυπωσιακός τονισμός δίνει έμφαση σε έναν σύνδεσμο που ήδη υπάρχει σε μια σελίδα χρησιμοποιώντας γραμματοσειρές, γραφικά ή χρώματα. Επειδή ο τονισμός ενός συνδέσμου έχει μικρή σπουδαιότητα μπορεί να χρησιμοποιηθεί σε οποιοδήποτε σημείο μιας σελίδας. Όπως ο υποβιβασμός και προβιβασμός, ο εντυπωσιακός τονισμός βασίζεται σε σκορ δημοτικότητας. Ορίζεται L το σύνολο των συνδέσμων μιας σελίδας P και γίνεται ταξινόμηση όλων των L i στο L σύμφωνα με το Pop(L i ). Τονίζεται ένα ποσοστό από τους πιο δημοφιλείς συνδέσμους, έστω 10%. Βέβαια το πιο αντιπροσωπευτικό ποσοστό μπορεί να καθοριστεί σε συνδυασμό με τη χρήση του συστήματος από τους χρήστες. 47

48 4.2.3 Συνδεσιμότητα Η συνδεσιμότητα συνδέει δύο σελίδες που προηγουμένως δεν ήταν συνδεδεμένες με την προσθήκη νέων υπερσυνδέσμων ανάμεσά τους. Η συνδεσιμότητα βασίζεται στην εξαγωγή εννοιολογικών συνδέσεων ανάμεσα σε σελίδες που στηρίζονται σε συσχετίσεις των επισκέψεων των χρηστών. Το γεγονός ότι πολλοί χρήστες επισκέπτονται δύο σελίδες υποδεικνύει ότι με κάποια λογική αυτές συνδέονται σύμφωνα με τους χρήστες έστω κι αν δεν υπάρχει φυσική σύνδεση. Παρόμοια και η κατάργηση της συνδεσιμότητας βασίζεται στην παρατήρηση της έλλειψης συσχέτισης. Για παράδειγμα αν δεν επιλέγονται ποτέ οι σύνδεσμοι μεταξύ δύο σελίδων σημαίνει πως για τον χρήστη αυτοί οι σύνδεσμοι είναι άχρηστοι έστω κι αν ο κατασκευαστής θεώρησε χρήσιμο να τους δημιουργήσει. Έπίσης, ορίζεται ως P(P) η πιθανότητα επίσκεψης μια σελίδας P. Αν δύο σελίδες P 1 και P 2 δεν είναι συνδεδεμένες τότε θα πρέπει να συνδεθούν αν οι πιθανότητες να τις επισκεφτούν είναι σε μεγάλο βαθμό συσχετισμένες δηλαδή (59): όπου δ είναι μια σταθερά. ρ(ρ(p1), Ρ(P2)) > δ, Συσταδοποίηση Η συσταδοποίηση συνδέει μια συλλογή από συσχετισμένες σελίδες και τις κάνει προσβάσιμες σαν σύνολο, σε μία νέα σελίδα που έχει δημιουργηθεί για το σκοπό αυτό. Το σύστημα αναγνωρίζει μια συλλογή από παρόμοια αντικείμενα που δεν είναι ομαδοποιημένα και βρίσκονται σε διάφορα σημεία του Site, δημιουργεί μια νέα σελίδα για αυτά και προσθέτει μια αναφορά για αυτήν την σελίδα. Τα έγγραφα μπορούν να θεωρηθούν παρόμοια με βάση το όνομά τους, την τοποθεσία τους στην ιεραρχία του Site και την συσχέτισή τους στη διαδρομή του χρήστη. Ένα σύνολο σελίδων P θεωρείται μία συστάδα όταν Χ Υ(Χ Ρ Υ Ρ editlist(x,y) k) και Χ Υ(Χ Ρ Υ Ρ ρ(x,y)>δ) και Ρ Χ(Χ Ρ L(P,X)) όπου L(P,X) αληθής όταν υπάρχει ένας σύνδεσμος από την P στην X. Η πρώτη απαίτηση εξασφαλίζει ότι οι σελίδες έχουν παρόμοιες ονομασίες με την προϋπόθεση ότι η απόσταση (edit distance) των ονομάτων και των διαδρομών τους είναι μικρότερη από κάποια σταθερά k. Για παράδειγμα οι διαδρομές homework/hw10/hw10solu.c και homework/hw3/hw3solu.c έχουν απόσταση 4 (δύο αλλαγές από «3» σε «1» και δύο εισαγωγές «0» ). Η δεύτερη προϋπόθεση εξασφαλίζει ότι όλες οι σελίδες είναι συσχετισμένες στις διαδρομές που ακολουθεί ο χρήστης. Αυτή η απαίτηση μπορεί να παραλειφθεί εφόσον θέλουμε να ομαδοποιήσουμε παρόμοιες σελίδες για λόγους οργάνωσης ακόμα κι αν οι χρήστες δεν τις επιλέγουν όλες σε μια μόνο επίσκεψη. Η τρίτη απαίτηση 48

49 εξασφαλίζει απλά ότι μια σελίδα δεν υπάρχει ήδη στο site το οποίο περιέχει συνδέσμους για όλες τις σελίδες Ανάλυση Μετασχηματισμών Εξαιτίας του περιορισμού του χώρου, ο προβιβασμός και ο υποβιβασμός είναι σαφώς παρεισφρητικοί μετασχηματισμοί. Ο διαχειριστής του site θα πρέπει σκόπιμα να θέσει το χώρο που θα χρησιμοποιηθεί για τον προβιβασμό και να περιοριστεί σε αυτόν. Με πιο ευρέα εφαρμογή, ο προβιβασμός και υποβιβασμός μπορεί να είναι χρήσιμος αλλά ίσως να έχει μη επιθυμητά αποτελέσματα. Για παράδειγμα, μια μη ταξινομημένη λίστα συνδέσμων είναι υποψήφια για μια ταξινόμηση με βάση την δημοτικότητα αλλά αν η λίστα είναι ταξινομημένη αλφαβητικά ή χρονολογικά τότε μια αλλαγή μπορεί να δημιουργήσει σύγχυση στους χρήστες. Ο εντυπωσιακός τονισμός και ο προβιβασμός πραγματοποιούνται σε παρόμοιες συνθήκες. Ο εντυπωσιακός τονισμός είναι ένας λιγότερο ισχυρός μετασχηματισμός εφόσον αλλάζει την εμφάνιση και όχι τη θέση ενός συνδέσμου. Επομένως έχει μικρότερη επίδραση σε αυτό που αντιλαμβάνεται ο χρήστης, είναι πιο απλός μετασχηματισμός και δεν παραβιάζει τις προθέσεις του κατασκευαστή. Αξίζει να σημειωθεί πως η συνδεσιμότητα διαφέρει από τον προβιβασμό στο ότι ο προβιβασμός περιλαμβάνει τη μεταφορά ενός συνδέσμου ή μιας σελίδας σε σημείο κοντά στην κεντρική σελίδα ώστε να είναι πιο προσιτές, ενώ η συνδεσιμότητα προσθέτει εντελώς νέες συνδέσεις. Η συνδεσιμότητα είναι αποτελεσματική όταν γίνεται σε μορφή προτάσεων. Για παράδειγμα το σύστημα μπορεί να προτείνει με βάση την τρέχουσα σελίδα, την επόμενη σελίδα που πιθανότατα να εξυπηρετούσε τον χρήστη. Παρόμοια, η συσταδοποίηση μπορεί να ανακαλύψει και να αποκαλύψει συνδέσεις που δεν αντιλαμβάνεται ο διαχειριστής. Η συσταδοποίηση πραγματοποιείται αφού πρώτα ενημερωθεί ο διαχειριστής για την ονομασία της συστάδας των αντικειμένων. 4.3 Αυτοματισμός Ενώ τα προσαρμοστικά web sites είναι ενδεχομένως πολύτιμα, η σκοπιμότητά τους κρίνεται από την αυτοματοποίηση των προσαρμογών. Η μελέτη της προσαρμοστικότητα έχει συνεισφέρει σε μια ποικιλία προσεγγίσεων που ξεκινούν από αυτόματους τουριστικούς οδηγούς μέχρι τη δημιουργία προσωπικών συστάσεων και διαγραμμάτων από τα ίχνη που αφήνουν πίσω τους οι επισκέπτες κάθε site. Οι τύποι προσαρμοστικότητας ποικίλουν όπως και το ίδιο το Διαδίκτυο. Οι πιο δημοφιλείς προσεγγίσεις περιλαμβάνουν: Τυπικά portals τα οποία παρέχουν χειροκίνητη προσαρμογή στους χρήστες οι οποίοι μπορεί να επιλέγουν συγκεκριμένους συνδέσμους, ενδιαφέροντα θέματα, νέα και αγαπημένα καταστήματα. Φυσικά η αυτοματοποίηση είναι ελάχιστη αφού οι χρήστες ρυθμίζουν τις δικές τους προσαρμοσμένες σελίδες (π.χ. η σελίδα My Yahoo στο my.yahoo.com) Αυτόματη προσαρμοστικότητα, που είναι κοινή στο Διαδίκτυο. Για παράδειγμα το AVANTI (22) χρησιμοποιεί πληροφορίες από το προφίλ 49

50 και τη συμπεριφορά του χρήστη προκειμένου να αποφασίσει για την παρουσίαση των συνδέσμων (για παράδειγμα χρησιμοποιώντας εντυπωσιακό τονισμό του συνδέσμου). Συστήματα με συνεργατικό φιλτράρισμα, όπου οι χρήστες ψηφίζουν αντικείμενα με κριτήριο την προτίμησή τους σε αυτά. Οι χρήστες που έχουν παρόμοιες εκτιμήσεις για παρόμοια αντικείμενα είναι πιθανό να έχουν και παρόμοιες προτιμήσεις. Όταν λοιπόν ένας χρήστης αναζήτά συστάσεις για νέα αντικείμενα, το σύστημα προτείνει αυτά τα αντικείμενα που έχουν την μεγαλύτερη προτίμηση από άτομα με παρόμοια γούστα (π.χ. Amazon.com). Προσέγγιση μετασχηματισμού όπως χρησιμοποιήθηκε στο Footprints (86). Οι επισκέπτες αφήνουν ίχνη για το πόσες φορές έχουν επισκεφθεί κάθε σύνδεσμο. Οι διαδρομές που έχουν χρησιμοποιηθεί αρκετές φορές υποδεικνύονται με αυτόματο και ανώνυμο τρόπο στον επισκέπτη όπως και το ποσοστό των επισκεπτών που ακολούθησαν αυτές τις διαδρομές. 4.4 Πρότυπα για εξατομικευμένες εφαρμογές Είναι αυτονόητο πως οι εφαρμογές για προσωποποιημένη πρόσβαση σε ιστοσελίδες αποτελεί μια πρόκληση στην επιστήμη των υπολογιστών και συνεχώς εξελίσσεται. Επιπλέον, οι απαιτήσεις αυτών των εφαρμογών είναι τεράστια και προϋποθέτουν αναρίθμητες διαφορετικές τεχνολογίες που περιλαμβάνουν από απλά σχέδια βάσεων δεδομένων μέχρι πράκτορες και αλγορίθμους για συνεργατικό φιλτράρισμα. Η εξατομίκευση έχει γίνει υπερβολικά απαραίτητη σε τομείς όπως είναι το ηλεκτρονικό εμπόριο και συγκεκριμένα υπάρχουν εκατοντάδες εφαρμογές που θεωρείται ότι προσφέρουν πλήρη προσαρμογή στα διαφορετικά προφίλ χρηστών. Αν και έχουν αναπτυχθεί πολλά συστήματα και μέθοδοι, λίγες αναφορές έχουν γίνει στην διαδικασία μοντελοποίησης και σχεδιασμού των εξατομικευμένων Web εφαρμογών. Στη συνέχεια παρουσιάζονται κάποια πρότυπα που βασίζονται στο περιέχομενο προσαρμογής. Υπάρχουν τρία είδη εξατομίκευσης που κυριαρχούν σε επιτυχείς εφαρμογές του Web: η εξατομίκευση συνδέσμων, η εξατομίκευση του περιεχομένου, η εξατομίκευση δομής και η εξατομίκευση από την μεριά του πελάτη Εξατομίκευση συνδέσμων Οι εφαρμογές περιλαμβάνουν την πρόσβαση σε χιλιάδες αντικείμενα. Παρόλα αυτά ο τρόπος με τον οποίο προσεγγίζουν τα αντικείμενα μπορεί να εξαρτάται από διάφορους παράγοντες. Για παράδειγμα, σε κάποιους χρήστες μπορεί να επιτρέπεται η πρόσβαση σε κάποιες πληροφορίες ενώ σε κάποιους άλλους όχι. Υπάρχουν επίσης εφαρμογές ηλεκτρονικού εμπορίου που σε κάποιους πελάτες προτείνονται κάποια προϊόντα με βάση το ιστορικό αγορών τους. Έτσι παρά το γεγονός ότι όλα τα προϊόντα είναι διαθέσιμα σε κάθε χρήστη, ο καθένας θα έχει πρόσβαση στο προϊόν από διαφορετικές διαδρομές. 50

51 Ο σχεδιασμός των εξατομικευμένων συνδέσμων για τη σύνδεση των διαφορετικών κόμβων των εφαρμογών φαίνεται στην εικόνα 11. Με αυτόν τον τρόπο, παρά το γεγονός ότι ο χώρος πληροφορίας δεν αλλάζει (δηλαδή δεν χρειάζεται να μεταβληθούν τα αντικείμενα, μόνο οι σύνδεσμοι) κάποιοι κόμβοι μπορεί να είναι πιο εύκολα προσβάσιμοι από κάποιους χρήστες απ ότι από άλλους. Μπορεί ακόμα και να αποκλειστούν κάποιοι χρήστες ή σύνολα χρηστών από την πρόσβαση σε κάποιες πληροφορίες μόνο με την παροχή στον χρήστη διαφορετικών συνόλων συνδέσμων. Η εξατομίκευση των συνδέσμων μπορεί να περιλαμβάνει πολύπλοκους αλγορίθμους που ορίζουν σαν στόχο κάποιους κόμβους με βάση τις προτιμήσεις του χρήστη. Για παράδειγμα, σε συστήματα συστάσεων, ένας αλγόριθμος μπορεί να χρησιμοποιεί το συνεργατικό φιλτράρισμα προκειμένου να βρει τους κόμβους που θα προταθούν. Σε άλλες περιπτώσεις οι κόμβοι προκύπτουν από ερωτήματα σε μία βάση δεδομένων. Η εξατομίκευση συνδέσμων χρησιμοποιείται κυρίως σε ηλεκτρονικά καταστήματα σαν ένας τρόπος για την παροχή συστάσεων ή για την εξατομίκευση νέων προϊόντων του καταστήματος. Ένα διαφορετικό παράδειγμα μπορεί να βρεθεί σε συστήματα ανασκόπησης δημοσιεύσεων συνεδρίων. Κάθε κριτικός έχει στη διάθεσή του μόνο ένα σύνολο συνδέσμων για τις δημοσιεύσεις που θα εκτιμήσει. Έτσι, ενώ στο πρώτο παράδειγμα η εξατομίκευση χρησιμοποιείται για τη διευκόλυνση της πρόσβασης σε συγκεκριμένα προϊόντα (με έναν καθαρά εμπορικό σκοπό), στη δεύτερη περίπτωση ο χώρος προήγησης για κάθε χρήστη είναι καθαρά διαφορετικός. Η πλοήγηση γίνεται σε διαφορετικά αντικείμενα. Το χρώμα των συνδέσμων δηλώνει ποιον σύνδεσμο μπορεί να ακολουθήσει ο κάθε χρήστης, ενώ για λόγους απλότητας δεν περιλαμβάνονται οι σύνδεσμοι που είναι αντιληπτοί από όλους τους χρήστες. Εικόνα 11: Διαφορετικές τοπολογίες για διαφορετικούς χρήστες 51

52 4.3.2 Εξατομίκευση περιεχομένου Σε πολλές Web εφαρμογές χρειάζεται να παρέχεται στους χρήστες ελαφρώς διαφορετικό περιεχόμενο σχετικά με συγκεκριμένα αντικείμενα πληροφορίας. Για παράδειγμα, μπορεί να επιδιώκεται διαφορετικοί αγοραστές σε ένα εικονικό κατάστημα να πληρώνουν διαφορετικές τιμές σύμφωνα με το ιστορικό αγορών τους (π.χ. στο εικόνα 14) ή να εμφανίζεται η τιμή στο προτιμώμενο νόμισμα. Αξίζει να σημειωθεί ότι ενώ η εξατομίκευση συνδέσμων μπορεί να βοηθήσει στην κατασκευή προσωποποιημένων τοπολογιών πλοήγησης υπάρχει ακόμα η περίπτωση που μπορεί να χρειάζεται μια λεπτομερέστερη προσαρμογή της πληροφορίας. Τελικά μπορεί να λυθεί αυτό το πρόβλημα με την εξατομίκευση των συνδέσμων αλλά θα χωριζόταν ένα αντικείμενο σε μικρότερα αντικείμενα με τις εξατομικευμένες ιδιότητες, γεγονός που δε θα ήταν βολικό. Στην περίπτωση της εξατομίκευσης του περιεχομένου, θα πρέπει ένα αντικείμενο που γίνεται αντιληπτό από τους χρήστες να παρουσιάζει διαφορετικές τιμές στις ιδιότητές του για διαφορετικά άτομα. Για εξατομίκευση περιεχομένου στους κόμβους επιτρέπεται η μεταβολή στις ιδιότητες ενός κόμβου σύμφωνα με τον χρήστη. Αυτό σημαίνει ότι η τιμή μιας ιδιότητας μπορεί να χρησιμοποιηθεί σαν συνάρτηση του χρήστη (εικόνα 12). Από μια αντικειμενοστραφή προσέγγιση αυτό σημαίνει την εν μέρει αποσύνδεση της τιμής της ιδιότητας από το αντικείμενό της και τη σύνδεση της με τον χρήστη. Τα μικρά χρωματιστά κουτιά δείχνουν πιθανές τιμές ιδιοτήτων. Με βάση τον κάθε χρήστη, επιλέγονται οι κατάλληλες τιμές των ιδιοτήτων. Τα χρωματιστά τρίγωνα δείχνουν τα προσαρμοστικά φίλτρα που εφαρμόζονται σε κάθε περίπτωση. Εικόνα 12: Εξατομικεύοντας τα περιεχόμενα ενός κόμβου 52

53 Ένα κοινό παράδειγμα σε ηλεκτρονικές εφαρμογές με εξατομίκευση περιεχομένου είναι η ατομική κοστολόγηση. Ο χρήστης μπορεί να εφαρμόζει κουπόνια έκπτωσης για να αποκτά ένα αντικείμενο σε καλύτερη τιμή. Επίσης, υπάρχουν εφαρμογές intranet που διαφορετικοί χρήστες μπορούν να διαβάζουν διαφορετικό κείμενο για το ίδιο αντικείμενο. Η εξατομίκευση του περιεχομένου έχει κάποια κοινά στοιχεία με την εξατομίκευση συνδέσμων και δομής. Κάθε φορά που εξατομικεύεται ένας σύνδεσμος, στην πραγματικότητα εξατομικεύεται κάποιο τμήμα του περιεχομένου του κόμβου. Παρόλα αυτά τα πρότυπα θεωρούνται διαφορετικά γιατί δεν έχουν τον ίδιο στόχο Εξατομίκευση δομής Αφορά τον καθορισμό του χώρου πλοήγησης σύμφωνα με τη μορφή που ενδιαφέρει τον χρήστη. Υπάρχουν κάποια είδη Web εφαρμογών (π.χ. portals) που εκτός από την διαχείριση μεγάλου αριθμού αντικειμένων, περιλαμβάνουν κυρίως τη διαχείριση μιας ποικιλίας θεμάτων και υπηρεσιών. Για παράδειγμα σε sites όπως το netscape.com,το cnn.con ή ακόμα το icq.com είναι υπερβολικά μεγάλος ο αριθμός των πιθανών συνδέσμων που πιθανώς να χρειάζεται να ακολουθήσει ένας χρήστης. Ωστόσο, το πρόβλημα γίνεται πιο είναι περίπλοκο εξαιτίας της ποικιλίας των θεμάτων και δυνατοτήτων που παρέχει το site. Μια λύση για το πρόβλημα αυτό είναι η οργάνωση αυτών των αντικειμένων με κάποια ταξινόμηση αλλά αυτό θα έχει ως αποτέλεσμα ο χρήστης να αποφεύγει τα αντικείμενα στο χαμηλότερο επίπεδο και επομένως θα χάσει την ευκαιρία προσέγγισης τους. Είναι λοιπόν σημαντικό να βρεθούν οι κατάλληλες δομές για portals πληροφορίας τα οποία θα παρέχουν κάποια ελευθερία πλοήγησης αλλά χωρίς να προκαλούν γνωστικό φόρτο εξαιτίας του αριθμού των πιθανών επιλογών. Η μόνη λύση για το πρόβλημα αυτό είναι η εξατομίκευση της δομής του site. Η εξατομίκευση της δομής ενός web site μπορεί να θεωρηθεί σαν παροχή πρόσβασης σε ένα μεγάλο σύνολο μονάδων που η καθεμία μπορεί να αποτελείται από άλλες μονάδες και τελικά από συνδέσμους για διακριτά αντικείμενα πληροφορίας. Γίνεται επομένως επιλογή μόνο των μονάδων που ενδιαφέρουν τον χρήστη και από αυτές τις μονάδες προβάλλονται μόνο οι πληροφορίες που προτιμά ή επιθυμεί να διαβάζει ο χρήστης, απλοποιώντας την εμφάνιση των ιστοσελίδων. Στην εικόνα 13 φαίνεται ένα σχήμα για την εξατομίκευση δομής. Κάθε χρώμα υποδηλώνει έναν συγκεκριμένο χρήστη. Αξίζει να σημειωθεί ότι διαφορετικοί χρήστες αντιλαμβάνονται μια διαφορετική δομή μονάδων για τις δικές τους σελίδες. Το πιο γνωστό παράδειγμα για εξατομίκευση δομής είναι το my.yahoo.com στο οποίο ο χρήστης εξατομικεύει τη σελίδα του σύμφωνα με τα ενδιαφέροντα του (εικόνα 15). Έτσι, ο χρήστης επιλέγει ένα σύνολο μονάδων (από έναν τεράστιο αριθμό μονάδων όπως είναι ο καιρός, τα νέα, αθλητικά, οικονομία, υγεία κ.α.). Κάθε μονάδα μπορεί να εξατομικευτεί περισσότερο. Για παράδειγμα μπορεί να επιλεχθεί να επιλεχθεί η θερμοκρασία συγκεκριμένων 53

54 πόλεων στον κόσμο ή το είδος μουσικής για το οποίο κάποιος θέλει να λαμβάνει νέα. Εικόνα 13: Εξατομίκευση Δομής Εικόνα 14: To 54

55 Εικόνα 15: Στο my.yahoo.com ο χρήστης δηλώνει τα αγαπημένα του αντικείμενα Στην εξατομίκευση της δομής ενός Web site όπως είναι φυσικό, ο χώρος πλοήγησης μειώνεται αφού λαμβάνονται υπόψη τα ενδιαφέροντα του χρήστη. Επίσης, η προσαρμογή συνήθως πραγματοποιείται χειροκίνητα από τον χρήστη που μπορεί να είναι μια επιβάρυνση για αυτόν. Για το λόγο αυτό είναι απαραίτητο να παρέχεται μια διεπαφή που να επιτρέπει στον χρήστη την εξατομίκευση της δομής Εξατομίκευση από την πλευρά του πελάτη Η εξατομίκευση από την μεριά του πελάτη (client-side) επιτρέπει σε ένα site την παροχή διαφορετικά προσαρμοσμένων πληροφοριών όταν η προσπέλαση γίνεται από διαφορετικά site πελατών. Υπάρχουν π.χ. portals τα οποία επιτρέπουν την προβολή τους από άλλα site. Το amazon.com επίσης, 55

56 επιτρέπει τη δημιουργία ενός συνδέσμου σε ένα site που θα παρέχει ένα ειδικό ερώτημα αναζήτησης προς αυτό (όπως γίνεται στο yahoo, όταν μετά από μια αναζήτηση ο χρήστης έχει τη δυνατότητα να ψάξει άμεσα στο amazon για κάποιο βιβλίο με τις ίδιες λέξεις κλειδιά που χρησιμοποίησε στην πρώτη αναζήτηση). Φυσικά το πρόβλημα που προκύπτει είναι όταν αυτή η υπηρεσία πρέπει να προσαρμοστεί από την πλευρά του πελάτη ούτως ώστε σε προσβάσεις στο site από διαφορετικές τοποθεσίες να παρουσιάζονται για παράδειγμα διαφορετικές πληροφορίες. Κάποιες Web εφαρμογές θεωρείται ότι παρέχουν δημόσιες (ή ημιδημόσιες) υπηρεσίες σε άλλες εφαρμογές όπως είναι η παροχή ευκολιών αναζήτησης πληροφοριών κλπ. Σε αυτές τις εφαρμογές μπορεί να είναι απαραίτητη η παροχή διαφορετικών μορφών της ίδιας υπηρεσίας. Ακόμα, είναι δυνατό να παρέχονται διαφορετικές υπηρεσίες σύμφωνα με το προφίλ του πελάτη. Η εφαρμογή του πελάτη θεωρείται ότι εξατομικεύει αυτό που είναι ορατό στον παροχέα υπηρεσιών και πως αυτό θα δημιουργηθεί στο site του πελάτη. Επίσης η απομακρυσμένη εξατομίκευση υλοποιείται στην μεριά του παροχέα επιτρέποντας στους πελάτες να εξατομικεύουν υπηρεσίες. Υπάρχουν δύο βασικά είδη απομακρυσμένων στρατηγικών εξατομίκευσης. Η μία επιτρέπει στην εφαρμογή του πελάτη να παρουσιάζει κάποιο παράθυρο της υπηρεσίας πληροφοριών του παροχέα και η άλλη προσαρμόζει αυτό που φαίνεται στην υπηρεσία από την πλευρά του παροχέα κατά την πλοήγηση σε αυτό από τα site των πελατών. Στην εικόνα 16 φαίνεται τι σημαίνει απομακρυσμένη εξατομίκευση όπου διαφορετικές εφαρμογές πελατών μπορούν να εξατομικεύσουν το «παράθυρό» τους στο πλήθος πληροφοριών του παροχέα υπηρεσιών. Υπάρχουν αρκετά παραδείγματα αυτού του είδους προσαρμοστικότητας. Για παράδειγμα το amazon.com επιτρέπει συσχετισμένα site να εξατομικεύουν αυτό που παρατηρεί ένας χρήστης στο Amazon κατά την πλοήγησή του από το άλλο site. Οι επιπτώσεις αυτής της εξατομίκευσης είναι ότι θα πρέπει να παρέχονται πρόσθετες υπηρεσίες στα άλλα site επιτρέποντας την επιλογή των υπηρεσιών που θα χρησιμοποιούν από τα άλλα site. Επίσης, η εξατομίκευση επιβαρύνει τον πελάτη αφού ρυθμίζεται από αυτόν αλλά και τον παροχέα αφού είναι απαραίτητη μια διεπαφή όπου οι πελάτες θα εξατομικεύουν τις πληροφορίες που θα προβάλλονται. Από την πλευρά των site των πελατών, αυτό το πρότυπο είναι παρόμοιο με την εξατομίκευση δομής και συνδέσμων. Ωστόσο από την πλευρά του server, το πρότυπο αυτό αντικατοπτρίζει τη βασική πληροφορία αναπαράστασης ενός αντικειμένου στον server και τον κάθε πελάτη ξεχωριστά να αντιπροσωπεύει έναν παρατηρητή. 56

57 Εικόνα 16: Το σχήμα απομακρυσμένης εξατομίκευσης 57

58 ΚΕΦΑΛΑΙΟ 5 ΕΠΙΣΚΟΠΗΣΗ ΠΡΟΣΑΡΜΟΣΤΙΚΩΝ ΤΕΧΝΙΚΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΤΗΝ ΑΝΑΛΥΣΗ ΤΗΣ ΧΡΗΣΗΣ ΤΟΥ WEB Κάποια από τα προβλήματα του συνεργατικού φιλτραρίσματος και του φιλτραρίσματος που βασίζεται στο περιεχόμενο μπορούν να λυθούν με την ανάλυσης της χρήσης του Web. Η ανάλυση της χρήσης του Web όπως περιγράφει το κεφάλαιο 2, μελετάει πώς χρησιμοποιούνται γενικότερα τα Site από τους επισκέπτες και πώς από κάθε επισκέπτη ξεχωριστά. Η ανάλυση της χρήσης του Web περιλαμβάνει στατιστικά όπως είναι η συχνότητα προσπέλασης της σελίδας, τα κοινά μονοπάτια διάσχισης σε ένα Web Site, το μήκος της συνόδου κ.α.. Οι πληροφορίες από τη χρήση μπορούν να αποθηκευτούν στα προφίλ των χρηστών για την βελτίωση της αλληλεπίδρασης του Site με τους επισκέπτες του. Η ανάλυση συνήθως πραγματοποιείται με τη χρήση ποικίλων τεχνικών εξόρυξης δεδομένων όπως είναι οι κανόνες συσχέτισης, η συσταδοποίηση, η ανακάλυψη ακολουθιακών προτύπων και η κατάταξη. Η τεχνική κανόνων συσχέτισης είναι μια τεχνική για ανακάλυψη συχνών προτύπων, σχέσεων και συσχετίσεων μεταξύ συνόλων αντικειμένων. Οι κανόνες συσχέτισης χρησιμοποιούνται για την αποκάλυψη συσχετίσεων μεταξύ σελίδων που έχουν που έχουν προσπελαστεί μαζί σε μια σύνοδο του server. Τέτοιοι κανόνες υποδηλώνουν τις πιθανές σχέσεις μεταξύ σελίδων που προβάλλονται συχνά ταυτόχρονα ακόμα κι αν δεν είναι άμεσα συνδεδεμένες και μπορούν να αποκαλύψουν συσχετίσεις μεταξύ συνόλων χρηστών με συγκεκριμένα ενδιαφέροντα. Εκτός από την εκμετάλλευση τους από εφαρμογές επιχειρήσεων, τέτοιες παρατηρήσεις μπορούν να επίσης να χρησιμοποιηθούν σαν οδηγός για ανακατασκευή ενός Web site, για παράδειγμα με την προσθήκη συνδέσμων που αλληλοσυνδέουν σελίδες που συχνά προβάλλονται μαζί ή σαν ένας τρόπος για την βελτίωση της απόδοσης του συστήματος μέσω της ανεύρεσης δεδομένων του Web. Η ανακάλυψη ακολουθιακών προτύπων (sequential pattern discovery) είναι μια επέκταση της εξόρυξης κανόνων συσχέτισης αφού αποκαλύπτει πρότυπα που εμφανίζονται μαζί, ενσωματώνοντας την έννοια της ακολουθίας χρόνου. Στο τομέα του Web ένα τέτοιο πρότυπο μπορεί να είναι μια ιστοσελίδα ή ένα σύνολο σελίδων που προσπελαύνονται αμέσως μετά από ένα άλλο σύνολο σελίδων. Με τη χρήση αυτής της προσέγγισης μπορούν να ανακαλυφθούν χρήσιμες τάσεις χρηστών και να γίνουν προβλέψεις που αφορούν τα πρότυπα επισκέψεων. Η συσταδοποίηση (clustering) χρησιμοποιείται για την ομαδοποίηση αντικειμένων που έχουν παρόμοια χαρακτηριστικά. Στην εξόρυξη γνώσης από το περιεχόμενο του Web διακρίνονται δύο περιπτώσεις, οι συστάδες χρηστών και οι συστάδες σελίδων. Η συσταδοποίηση σελίδων προσδιορίζει σύνολα σελίδων που φαίνεται να είναι με κάποια αρχή συσχετισμένα σύμφωνα με την αντίληψη του χρήστη. Η συσταδοποίηση χρηστών έχει ως αποτέλεσμα τη δημιουργία ομάδων χρηστών που φαίνεται να αντιδρούν παρόμοια κατά την πλοήγησής τους σε ένα web site. Αυτή η γνώση χρησιμοποιείται στο 58

59 ηλεκτρονικό εμπόριο για το μερισμό της αγοράς αλλά είναι επίσης χρήσιμη για την προσωποποιημένη πρόσβαση σε ένα web site. Η κατάταξη (classification) είναι μια διαδικασία που αντιστοιχίζει ένα μέρος δεδομένων σε μία από τις αρκετές προκαθορισμένες κατηγορίες. Στον τομέα του Web οι κατηγορίες οι κατηγορίες συνήθως αναπαριστούν διαφορετικά προφίλ χρηστών και η κατηγοριοποίηση πραγματοποιείται με τη χρήση επιλεγμένων χαρακτηριστικών που περιγράφουν την κατηγορία κάθε χρήστη. Οι πιο κοινοί αλγόριθμοι κατάταξης είναι τα δέντρα απόφασης, τα νευρωτικά δίκτυα κα. Μετά από την ανακάλυψη των προτύπων από τα δεδομένα χρήσης, διεξάγεται μια περαιτέρω ανάλυση. Η ακριβής μεθοδολογία που πρέπει να ακολουθηθεί εξαρτάται από την τεχνική που έχει προηγηθεί. Οι πιο κοινοί τρόποι ανάλυσης τέτοιων προτύπων είναι είτε με τη χρήση μηχανισμού ερωτημάτων στη βάση δεδομένων που αποθηκεύονται τα αποτελέσματα είτε με το φόρτωμα των αποτελεσμάτων σε ένα κύβο δεδομένων και στη συνέχεια εφαρμογή OLAP λειτουργιών. Επιπρόσθετα, οι τεχνικές οπτικοποίησης χρησιμοποιούνται για την ευκολότερη ερμηνεία των αποτελεσμάτων. Η χρήση αυτών των αποτελεσμάτων σε συνδυασμό με τις πληροφορίες δομής και περιεχομένου του Web site έχουν ως αποτέλεσμα την εξαγωγή χρήσιμης γνώσης για την μετατροπή του site σύμφωνα με τις συσχετίσεις των ομάδων χρηστών και περιεχομένου. Στη συνέχεια παρουσιάζονται αλγόριθμοι και τεχνικές που έχουν προταθεί για την εξατομίκευση ενός site σύμφωνα με τη συμπεριφορά και το προφίλ του κάθε χρήστη με βάση τις παραπάνω τεχνικές εξόρυξης δεδομένων. 5.1 Εξόρυξη γνώσης από συσταδοποίηση Οι εφαρμογή τεχνικών εξόρυξης γνώσης για τη δημιουργία συστάδων απαιτεί την ανάπτυξη νέων μεθόδων για την αναπαράσταση αντικειμένων του Web, εξαιτίας της μη-αριθμητικής φύσης τους. Κάποιοι από τους παράγοντες που επηρεάζουν την απόδοση των αλγορίθμων για συσταδοποίηση περιλαμβάνουν τον χρόνο προβολής των web εγγράφων και τη σειρά επίσκεψης τους σε μια δοσοληψία με τον χρήστη. Επίσης η επιλογή του κατάλληλου αλγορίθμου εξαρτάται τόσο από τον τύπο των δεδομένων όσο και από τον συγκεκριμένο σκοπό της συσταδοποίησης, αφού έχει τεράστια επίδραση στην κλιμάκωση της συγκεκριμένης προσέγγισης συσταδοποίησης. Ένας άλλος παράγοντας που επηρεάζει το αποτέλεσμα των συστάδων που παράγονται είναι η συνάρτηση που μετράει το βαθμό ομοιότητας μεταξύ των αντικειμένων. Για παράδειγμα ένα μέτρο είναι το μέγεθος των αντικειμένων που είναι και σημαντικό για την εξόρυξη γνώσης από τη χρήση του Web. Τέλος, οι επικαλυπτόμενες συστάδες μπορούν ή δεν μπορούν να επιτρέπονται ανάλογα με την εφαρμογή. Υπάρχουν αρκετές τεχνικές που αφορούν τη συσταδοποίηση των αναφορών των εγγράφων και των επισκέψεων των χρηστών. Η συσταδοποίηση των εγγράφων του Web παράγει σαν έξοδο συστάδες από αναφορές εγγράφων που αντικατοπτρίζουν πρότυπα κοινής χρήσης. Για παράδειγμα, ας θεωρήσουμε τη συστάδα A, B, C, D, όπου A,B,C,D αναπαριστούν αναφορές εγγράφων του Web. Αυτή η συστάδα αναπαριστά ένα αθροιστικό μοντέλο χρήστη, το οποίο 59

60 περιγράφει ότι ανεξάρτητα από την τρέχουσα χρήση του συστήματος και την διασύνδεσή τους, οι αναφορές A,B,C,D προσπελαύνονται σε μια μόνο επίσκεψη από ένα σύνολο χρηστών με ίδια χαρακτηριστικά χρήσης. Έτσι, αυτή η προσέγγιση καθορίζει συστάδες εγγράφων που θεωρούνται συσχετισμένα καθώς βρίσκονται συχνά σε επισκέψεις χρηστών και δεν παρέχει πληροφορίες για την σειρά προσπέλασης αυτών των εγγράφων. Συχνά, σε κάποιες μελέτες η χρήση διακεκριμένων ονομάτων για κάθε αναφορά αντικειμένου, ο χρόνος προβολής ή ακόμα και η σειρά προβολών των σελίδων (clickstreams) δεν λαμβάνονται υπόψη. Επιπρόσθετα, οι περισσότερες προσεγγίσεις οδηγούν στην ανακάλυψη επικαλυπτόμενων συστάδων, που φυλακίζουν κοινά ενδιαφέροντα μεταξύ διαφορετικών χρηστών ή αναγνωρίζουν web έγγραφα με αμφιλεγόμενο περιεχόμενο. Αξίζει να σημειωθεί πως η δουλειά του Mobasher και των άλλων (12) παρέχει ένα γενικό πλαίσιο εργασίας για web συστήματα υπερμέσων. Οι συγγραφείς προτείνουν μια προσέγγιση για εξατομίκευση του Web με βάση τη χρήση, λαμβάνοντας υπόψη τις offline διεργασίες που σχετίζονται με την εξόρυξη γνώσης από τα δεδομένα χρήσης και την online διαδικασία της αυτόματης προσαρμογής των web σελίδων με βάση τη γνώση που έχει εξορυχθεί. Συγκεκριμένα παρουσιάζουν μια αποτελεσματική τεχνική για τη σύλληψη των κοινών προφίλ των χρηστών που βασίζεται στην ανακάλυψη κανόνων συσχέτισης και τη συσταδοποίηση με βάση τη χρήση. Η τεχνική που χρησιμοποιείται είναι η Association Rule Hypergraph Partitioning (ARHP) που μετατρέπει τα σύνολα από συχνά στοιχειοσύνολα σε σύνολα συστάδων. Η αρχιτεκτονική επομένως που προτείνεται συνδυάζει τη γνώση που προέρχεται από πρότυπα πρόσβασης του χρήστη για την παραγωγή συστάσεων σε πραγματικό χρόνο. Η προσέγγιση αυτή είναι αποτελεσματική για ηλεκτρονικό εμπόριο ενώ οι συγγραφείς προτείνουν μελλοντικά τη διάκριση των τύπων συναλλαγών ( με βάση το περιεχόμενο) στη διαδικασία συστάσεων και τη χρήση πρακτόρων (στη μεριά του πελάτη) για ένα επιπρόσθετο επίπεδο εξατομίκευσης με βάση τις προτιμήσεις του πελάτη. Οι Perkowitz και Etzioni που πρώτοι όρισαν το «προσαρμοστικό site» (46), (45) προτείνουν ένα σύστημα που μεταβάλλει ημιαυτόματα ένα Web site επιτρέποντας μετασχηματισμούς που δεν είναι καταστρεπτικοί. Έτσι, τίποτα δεν διαγράφεται ούτε αλλάζει, αντίθετα δημιουργούνται νέες σελίδες περιεχομένων (index pages) με συλλογές συνδέσμων για συσχετισμένες, αλλά μη συνδεδεμένες σελίδες (47). Για την επίλυση του προβλήματος σύνδεσης σελίδων περιεχομένων (index page synthesis problem) δηλαδή την αυτόματη δημιουργία σελίδων που διευκολύνουν την πλοήγηση σε ένα site, προτείνουν τον αλγόριθμο PageGather που χρησιμοποιεί τη μεθοδολογία της συσταδοποίησης και από το log αρχείο του Web Server δημιουργεί τα περιεχόμενα των υποψήφιων σελίδων περιεχομένων. Πιο αναλυτικά, ο PageGather περιλαμβάνει τα παρακάτω βήματα: α) την επεξεργασία του log αρχείου για την εύρεση των επισκέψεων, β) τον υπολογισμό των σελίδων που εμφανίζονται συχνά μαζί και τη δημιουργία ενός πίνακα που θα ανταποκρίνεται στις συσχετισμένες αλλά μη συνδεδεμένες σελίδες, γ) τη δημιουργία ενός γράφου που ανταποκρίνεται στον πίνακα και τη εύρεση όλων των κλικών (δηλαδή των συνδεδεμένων στοιχείων του γράφου) και δ) την ανακάλυψη των συστάδων (από τις κλίκες του γράφου που προέκυψε στο προηγούμενο βήμα) και τη δημιουργία μιας ιστοσελίδας που θα περιέχει συνδέσμους για όλα τα στοιχεία της συστάδας. Οι συγγραφείς κατατάσσουν την τεχνική που προτείνουν στη δημιουργία προσαρμοστικών web site μέσω βελτιστοποίησης της δομής του που βασίζεται σε αλληλεπιδράσεις με τους 60

61 χρήστες. Σε μια νεότερη μελέτη τους (48), οι συγγραφείς προτείνουν τον αλγόριθμο IndexFinder που ενσωματώνει στατιστικές και λογικές πληροφορίες για την σύνθεση σελίδων περιεχομένων. Στη μελέτη αυτή θεωρούν το πρόβλημα σύνδεσης σελίδων περιεχομένων σαν ένα θεμελιώδες πρόβλημα συσταδοποίησης και προσπαθούν να ανακαλύψουν συνδεδεμένα και συνεκτικά σύνολα συνδέσμων που μπορούν να παρουσιαστούν στον διαχειριστή του site σαν υποψήφιες σελίδες περιεχομένων. Η διαφορά με την προηγούμενη μελέτη τους είναι ότι η συγκεκριμένη χρησιμοποιεί πληροφορίες από τη δομή και το περιεχόμενο του Site. Επομένως, ο IndexFinder συνδυάζει στατιστικά πρότυπα από το log και αναλυτικές περιγραφές των περιεχομένων των σελίδων προκειμένου να δημιουργήσει σελίδες περιεχομένων. Μια άλλη προσέγγιση (77) στοχεύει στην συσταδοποίηση των προτιμήσεων των χρηστών και την δυναμική παραγωγή συνδέσμων μέσω της ανίχνευσης των διαδρομών πλοήγησης σε ένα Web site. Ο Shahabi και άλλοι προτείνουν μια τεχνική που ανιχνεύει τις διαδρομές αλλά και το χρόνο παραμονής του χρήστη σε κάθε σελίδα. Ο εντοπισμός των σελίδων αλλά και ο χρόνος που χρειάζεται ο πελάτης για αυτές, εντοπίζονται από έναν απομακρυσμένο πράκτορα υλοποιημένο σε Java στη μεριά του πελάτη. Από τα στοιχεία που συλλέγονται, δημιουργούνται τα προφίλ των χρηστών. Η χρήση της path mining τεχνικής εντοπίζει ομοιότητες στη σειρά των σελίδων που χρησιμοποιούνται ενώ ο K-means αλγόριθμος ταξινομεί τις διαδρομές με στόχο τη δημιουργία συστάδων χρηστών με παρόμοια ενδιαφέροντα. Ο αλγόριθμος για τη δημιουργία συστάδων που προτείνουν οι συγγραφείς είναι αρκετά σημαντικός, ενώ η γνώση που παρέχει, αν συνδυαστεί με άλλες τεχνικές και αλγορίθμους μπορεί να ωφελήσει πολλές εφαρμογές. Σημαντικά οφέλη αποτελούν η δυναμική παραγωγή συνδέσμων και η προσκόμιση σελίδων (prefetching). Μια άλλη τεχνική για την συσταδοποίηση των χρηστών με βάση τα πρότυπα πρόσβασης προτάθηκε το 1999 από τους Fu, Sandu και Shih (23). Τα πρότυπα πρόσβασης των χρηστών που εξάγονται από τα log file των Server οργανώνονται σε συνόδους που αναπαριστούν τα επεισόδια αλληλεπίδρασης χρηστών και Server. Με τη χρήση της attribute oriented induction (επαγωγή προσανατολισμένη ως προς τα χαρακτηριστικά) (32) οι σύνοδοι γενικεύονται σύμφωνα με την ιεραρχία των σελίδων και οι σελίδες οργανώνονται τελικά με βάση τη γενίκευσή τους. Στην ιεραρχία που ορίζουν με δεντρική αναπαράσταση, ένας κόμβος φύλλο αντιστοιχεί σε μια σελίδα που αποτελεί ένα αρχείο στον Server ενώ οι άλλοι κόμβοι που δεν είναι φύλλα αντιστοιχούν σε έναν κατάλογο. Οι επισκέψεις των χρηστών αναπαρίσταται με διανύσματα της μορφής (αριθμός συνόδου, t 1,t 2,..t n ) όπου t i είναι ο συνολικός χρόνος που ξοδεύει ο χρήστης στην γενική i σελίδα ενώ η σειρά των εγγράφων που επισκέφθηκε δεν υπολογίζονται. Η ταξινόμηση των σελίδων επιτυγχάνεται με τη χρήση του ιεραρχικού αλγορίθμου συσταδοποίησης BIRCH (83). Ο BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) είναι αρκετά αποδοτικός αλγόριθμος αφού μπορεί να δημιουργεί σωστές συστάδες με μια μόνο σάρωση του συνόλου δεδομένων. Επομένως είναι κατάλληλος για μεγάλο αριθμό δεδομένων. Η μέτρηση της ομοιότητας μεταξύ διαφορετικών επισκέψεων επιτυγχάνεται με τη χρήση της Ευκλείδειας απόστασης. Φυσικά η μέθοδος αυτή δεν επιτρέπει την δυναμική προσαρμογή του Site και ο διαχειριστής του Site είναι υπεύθυνος για τις όποιες αλλαγές. 61

62 Δημιουργία συστάδων από τις επισκέψεις των χρηστών πρότειναν επίσης το 2000 ο Nasraoui και άλλοι (64) που θεώρησαν fuzzy (ασαφής) συστάδες με έναν fuzzy μηχανισμό. Εισάγοντας την έννοια της αβεβαιότητας στην εξόρυξη δεδομένων από τη χρήση του Web, ανακαλύπτουν συστάδες από τα προφίλ των συνόδων των χρηστών με τη χρήση ισχυρών fuzzy αλγορίθμων. Στην προσέγγισή τους, μία σελίδα ή ένας χρήστης μπορεί να ανατεθεί σε παραπάνω από μία συστάδα. Μετά από την προεπεξεργασία των log δεδομένων, δημιουργείται ένας πίνακας ανομοιοτήτων που χρησιμοποιείται από τους fuzzy αλγορίθμους για την οργάνωση των τυπικών συνόδων των χρηστών. Έτσι, εισάγεται ένα μέτρο ομοιότητας που χρησιμοποιεί τόσο τα URL σε μια σύνοδο όσο και την ίδια τη δομή του Site. Μια αυτόματη συσταδοποίηση των επισκεπτών ενός Web site σύμφωνα με τα πρότυπα προσπέλασης περιγράφεται από τον Yan και άλλους (1996) (91). Αξίζει να σημειωθεί πως οι συγγραφείς ήταν η πρώτοι που μελέτησαν την ανάλυση των log αρχείων, την εύρεση κοινών προτύπων, την συσταδοποίηση των χρηστών και την online παραγωγή προτάσεων. Το σύστημα που προτείνουν αποτελείται από τρία βασικά τμήματα: τον web server που συγκεντρώνει τις πληροφορίες για τη σύνοδο του χρήστη, το offline τμήμα που είναι υπεύθυνο για την ανάλυση του log αρχείου και το online τμήμα που είναι υπεύθυνο για την δυναμική παραγωγή των συνδέσμων. Κατά τη διάρκεια της προεπεξεργασίας οι σύνοδοι των χρηστών αναπαρίσταται με τη μορφή ενός ν-διάστατου διανύσματος όσα είναι δηλαδή τα ενδιαφέροντα του χρήστη. Αν και είναι σημαντική η σειρά των αιτημάτων του χρήστη, στη συγκεκριμένη μελέτη δεν λαμβάνεται υπόψη. Η συσταδοποίηση γίνεται με τη χρήση του leader αλγορίθμου του Hartigan(1975), που παίρνει σαν είσοδο ένα σύνολο διανυσμάτων και δίνει σαν έξοδο ένα σύνολο συστάδων. Για την εύρεση της ομοιότητας δύο συστάδων χρησιμοποιείται η Ευκλείδεια απόσταση των συστάδων. Κάθε διάνυσμα προστίθενται στην κοντινότερη συστάδα της οποίας ο μέσος από το διάνυσμα είναι μικρότερος από μια ευκλείδεια απόσταση MaxDistance που έχει οριστεί. Στην περίπτωση που δεν υπάρχει τέτοια συστάδα, το διάνυσμα αυτό, σχηματίζει μία νέα συστάδα. Αξίζει να σημειωθεί ότι ο leader αλγόριθμος έχει αρκετά μειονεκτήματα με σημαντικότερο ότι δεν είναι σταθερός κατά την αναδιάταξη των διανυσμάτων. Επίσης, η απόσταση μεταξύ του διανύσματος και του τελικού μέσου της συστάδας που ανήκει δεν είναι ελεγχόμενη. Παρόλα αυτά, ο αλγόριθμος είναι αποδοτικός λόγω της ταχύτητας αλλά και της επάρκειάς του σε μνήμη. Αυτό οφείλεται στο ότι αρκεί μία σάρωση στα δεδομένα και δεν απαιτείται η αποθήκευση των διανυσμάτων στην κύρια μνήμη. Στην μελέτη του Banerjee και του Ghosh (9) οι επισκέπτες ομαδοποιούνται (συσταδοποίηση) μόνο με βάση την ακολουθία των σελίδων που επιλέγουν (click streams) σε μια σύνοδο. Φυσικά η ομαδοποίηση των χρηστών με βάση την ακολουθία σελίδων που επιλέγουν είναι ένα δύσκολο πρόβλημα εφόσον τυπικά ο αριθμός αυτών των ακολουθιών είναι τεράστιος. Επιπλέον, ο χρόνος που ξοδεύει ένας χρήστης σε μία σελίδα φανερώνει το ενδιαφέρον του γι αυτήν και επομένως θα πρέπει να λαμβάνεται υπόψη. Με τη χρήση του log αρχείου, οι συγγραφείς όρισαν τη διαδρομή (path) που αντιστοιχεί σε μία σύνοδο σε ένα web site και έναν τρόπο για τον υπολογισμό της ομοιότητας μεταξύ δυο οποιωνδήποτε διαδρομών για μια συγκεκριμένη απόφαση που θα λαμβάνει υπόψη τη τροχιά του χρήστη και το χρόνο που ξοδεύει αυτός σε κάθε σελίδα. Το μέτρο ομοιότητας μεταξύ δύο διαδρομών που 62

63 βασίζεται στη μέθοδο της μεγαλύτερης κοινής υποακολουθίας (Longest Common Subsequence - LCS) των δύο διαδρομών. Το μέτρο ομοιότητας έχει δύο συνιστώσες, τη συνιστώσα ομοιότητας και τη συνιστώσα της σημασίας. Από τον υπολογισμό της ομοιότητας μεταξύ των διαδρομών κατασκευάζεται ένας γράφος ομοιοτήτων ο οποίος χρησιμοποιείται για την συσταδοποίηση των επισκέψεων με βάση τον αλγόριθμο METIS (35). Ο συγκεκριμένος αλγόριθμος είναι γρήγορος και αποδοτικός ενώ πλεονεκτεί σε σχέση με τις παραδοσιακές μεθόδους συσταδοποίησης αφού δεν αντιμετωπίσει προβλήματα διάστασης (όπως η K-means προσέγγιση) και χρησιμοποιεί πληροφορίες που αφορούν το χρόνο παραμονής στη σελίδα. Συσταδοποίηση των επισκέψεων των χρηστών πρότειναν το 2001 οι Wang και Zaiane (84) με τη χρήση του αλγορίθμου συσταδοποίησης TURN (6). Η μέθοδος που προτείνουν παρουσιάζει ομοιότητες με αυτήν των Banerjee και Ghosh γιατί η βασική ιδέα για την μέτρηση της ομοιότητας των συνόδων των χρηστών είναι ίδια. Ωστόσο, οι Wang και Zaiane θεωρούν κάθε σύνοδο μια ακολουθία και δανείζονται την ιδέα ευθυγράμμισης ακολουθιών από την βιοπληροφορική (DNA) για να μετρήσουν την ομοιότητα μεταξύ των ακολουθιών προσπέλασης των σελίδων. Πιο συγκεκριμένα, οι επισκέψεις των χρηστών αναπαριστάνονται σαν ακολουθίες από URL και η ομοιότητα μεταξύ των ακολουθιών υπολογίζονται με τη χρήση ενός μέτρου παράταξης που βασίζεται σε δυναμικό προγραμματισμό. Ο πίνακας ομοιοτήτων που δημιουργείται χρησιμοποιείται σαν είσοδος για τον αλγόριθμο TURN. Οι συγγραφείς δοκίμασαν επίσης και τους αλγορίθμους ROCK(81) και CHAMELEON(26) για τη δημιουργία των συστάδων αν και οι πειραματικές μετρήσεις έδειξαν ότι ο αλγόριθμος TURN υπερτερεί αφού παράγει πιο σημαντικές συστάδες. Τη χρήση της μεθόδου ευθυγράμμισης ακολουθιών πρότειναν επίσης ο Hay και άλλοι (29). Στη μελέτη αυτή ομαδοποιούνται τα πρότυπα πλοήγησης με τη χρήση της παραπάνω μεθόδου και περιλαμβάνονται πληροφορίες που αφορούν τη δομή ενός Site που αντικατοπτρίζεται στη σειρά διάταξης των σελίδων. Η Sequence Alignment Method (SAM) μετράει τις ανομοιότητες μεταξύ των ακολουθιών των σελίδων και χρησιμοποιεί τη σειρά διάταξης των αντικειμένων σε μια ακολουθία. Τα αποτελέσματα της έρευνας τους έδειξαν ότι η ομαδοποίηση των συνόδων του Server έδωσε σύνολα από συνόδους που περιλάμβαναν τις ίδιες επισκεπτόμενες σελίδες. Σε μια νεότερη έρευνα, οι Zicari και Hoebel (63) ορίζουν τη συσταδοποίηση των επισκεπτών ενός site με βάση τη συμπεριφορά και τα ενδιαφέροντα τους. Χρησιμοποιώντας την NOPs (Non Obvious user profiles) προσέγγιση (61) παρουσιάζουν έναν νέο αλγόριθμο συσταδοποίησης - που συνδυάζει την ιεραρχική συσταδοποίηση με μια μέθοδο που χρησιμοποιεί διαστήματα προτεραιοτήτων - για την ομαδοποίηση των χρηστών με παρόμοια ενδιαφέροντα σε αρκετά θέματα (topics). Έτσι ορίζεται μια κλίμακα ενδιαφέροντος και μια παράμετρος που καθορίζει τη διακύμανση αυτής της κλίμακας. Ο αλγόριθμος που παρουσιάζεται είναι ο Takahe ο οποίος δημιουργεί ένα δεντρικό διάγραμμα για την διευθέτηση των συστάδων που παράγει ενώ κάθε κορυφή του διαγράμματος αναπαριστά μία συστάδα. Ο αλγόριθμος διαφέρει από άλλους αλγορίθμους συσταδοποίησης καθώς δεν χρησιμοποιεί την ακολουθία των σελίδων αλλά το περιεχόμενό τους. Επίσης, λαμβάνει υπόψη και το χρόνο που ξοδεύει ο χρήστης σε μια σελίδα ορίζοντας ένα κατώφλι για την μείωση του αριθμού θεμάτων που θα χρησιμοποιηθούν. Το μόνο ίσως που 63

64 πρέπει να σημειωθεί είναι ότι οι χρήστες θα πρέπει να είναι ενημερωμένοι για την ύπαρξη των προφίλ αλλά κυρίως να εμπιστεύονται και να γνωρίζουν τη χρήση αυτών των προφίλ. Σε διαφορετική περίπτωση η μέθοδος που παρουσιάστηκε θα έχει ενδεχομένως αρνητικά αποτελέσματα στο σύστημα που εφαρμόζεται. Μια νέα τεχνική για συσταδοποίηση που μπορεί να χρησιμοποιηθεί ως βάση για την κατασκευή προσαρμοστικών Web Site προτάθηκε από τον Shokry και άλλους (69). Οι συγγραφείς προτείνουν μια βελτίωση του index page synthesis προβλήματος με τη χρήση του soft k-medoids αλγόριθμου (SKMd). Ο συγκεκριμένος αλγόριθμος επιτρέπει σε κάποιες σελίδες να ανήκουν σε πολλές επικαλυπτόμενες συστάδες και παράγει συστάδες που η καθεμία περιλαμβάνει ένα κεντρικό στοιχείο που ονομάζεται medoid (πολυμεταβλητός μέσος) και ένα σύνολο σελίδων που σχετίζονται με το medoid με κάποιο βαθμό σχέσης. Για κάθε συστάδα που ανακαλύπτεται, δημιουργείται μια ιστοσελίδα με συνδέσμους για τα αντικείμενα της συστάδας αφού έχει προηγηθεί φιλτράρισμα και απόρριψη των σελίδων με βαθμό σχέσης χαμηλότερο από μια καθορισμένη τιμή που ορίζεται με βάση το μέγεθος της συστάδας. Επιπρόσθετα, οι συγγραφείς προτείνουν λύσεις για την αντιμετώπιση των ελλείψεων του index page synthesis προβλήματος, όπως είναι η σειρά των συνδέσμων στην σελίδα περιεχομένων, οι τίτλοι των συνδέσμων και τέλος η θέση της σελίδας περιεχομένων. Συνοψίζοντας, όλες οι τεχνικές και μέθοδοι που προηγήθηκαν αποδεικνύουν ότι υπάρχουν πολλοί παράγοντες που επηρεάζουν την απόδοση των αλγορίθμων συσταδοποίησης όπως είναι ο χρόνος προβολής των σελίδων και η σειρά επίσκεψης τους σε μια δοσοληψία. Επιπλέον, η επιλογή του κατάλληλου αλγορίθμου εξαρτάται τόσο από τον τύπο των δεδομένων όσο και από τον συγκεκριμένο σκοπό της συσταδοποίησης αφού έχει επιρροή στην κλιμάκωση της προσέγγισης συσταδοποίησης. Η επιλογή της συνάρτησης που μετράει το βαθμό της ομοιότητας μεταξύ των αντικειμένων του Web επηρεάζει επίσης και το μέγεθος των συστάδων που παράγονται. Για παράδειγμα οι αλγόριθμοι που χρησιμοποιούν την Ευκλείδεια απόσταση τείνουν να δημιουργούν σφαιρικές συστάδες με παρόμοιο μέγεθος. Παρόλα αυτά, ο σχηματισμός συστάδων με αυθαίρετο μέγεθος και σχήμα αποτελούν μια σημαντική απαίτηση στην εξόρυξη δεδομένων από τη χρήση του Web. Επιπρόσθετα, οι επικαλυπτόμενες συστάδες μπορεί να μην επιτρέπονται πάντοτε ανάλογα με την εφαρμογή. Γενικότερα, οι παραδοσιακές τεχνικές συσταδοποίησης έχουν τους παρακάτω χαρακτηρισμούς με βάση τις συστάδες που προκύπτουν (50): 1. Exclusive (αποκλειστικές) ή hard συστάδες: όταν ένα αντικείμενο της συστάδας ανήκει αποκλειστικά σε μία συστάδα. 2. Overlapping (επικαλυπτόμενες) συστάδες: όταν ένα αντικείμενο μπορεί να ανήκει σε αρκετές συστάδες ενώ δεν παρέχεται καμία πρόσθετη πληροφορία σχετική με τη σχέση των αντικειμένων μέσα στις κατάλληλες συστάδες. 3. Probabilistic (πιθανοτικές) συστάδες: όταν ένα αντικείμενο ανήκει σε κάθε συστάδα με έναν βαθμό πιθανότητας. 4. Fuzzy (ασαφής) συστάδες: όταν ένα αντικείμενο ανήκει σε κάθε συστάδα με έναν βαθμό σχέσης. Για την λεπτομερή περιγραφή των τεχνικών που αναφέρθηκαν και σε συνδυασμό με τους παραπάνω χαρακτηρισμούς, χρησιμοποιούνται οι παρακάτω παράμετροι: 64

65 i. Πηγή: αναφορά στα ονόματα των επιστημόνων της τεχνικής και τη χρονολογία δημοσίευσης. ii. Αντικείμενα του web: ορίζει τα αντικείμενα στα οποία εφαρμόζεται η συσταδοποίηση. iii. Χρόνος προβολής: ναι ή όχι ανάλογα με το αν υπολογίζεται αυτός κατά την αναπαράσταση των αντικειμένων. iv. Ακολουθία των επιλογών (Click streams): ναι ή όχι ανάλογα με το αν αυτή υπολογίζεται κατά την αναπαράσταση των αντικειμένων. v. Αλγόριθμος: ονομασία του αλγορίθμου που θα χρησιμοποιηθεί vi. Είσοδος δομής δεδομένων( input): τα δεδομένα εισόδου του αλγόριθμου που χρησιμοποιείται. vii. Χαρακτηρισμός συστάδων: δηλ. hard, overlappring, probabilistic ή fuzzy. Στην επόμενη σελίδα παρουσιάζεται ο συνοπτικός πίνακας (πίνακας 1) των πιο ενδεικτικών τεχνικών για συσταδοποίηση, όπως περιγράφτηκαν στις προηγούμενες παραγράφους. 5.2 Εξόρυξης γνώσης από κανόνες συσχέτισης Μια από τις μεγαλύτερες προκλήσεις στην εξόρυξη γνώσης από βάσεις δεδομένων είναι η ανάπτυξη γρήγορων και αποδοτικών αλγορίθμων που μπορούν να χειριστούν τεράστιες ποσότητες δεδομένων. Αυτό οφείλεται στο γεγονός ότι οι περισσότεροι αλγόριθμοι που σχετίζονται με την εξόρυξη γνώσης χρειάζεται να κάνουν υπολογισμούς σε ολόκληρη τη βάση δεδομένων που συνήθως έχει μεγάλο μέγεθος. Η ανακάλυψη κανόνων συσχέτισης μεταξύ αντικειμένων παρουσιάστηκε για πρώτη φορά στο (70) ενώ ένας σημαντικός αλγόριθμος για την παραγωγή σπουδαίων κανόνων συσχέτισης είναι γνωστός ως Apriori και παρουσιάστηκε από τους Agrawal και Srikant το 1994 (2). Όπως ήταν φυσικό, υπήρξε τεράστιο ενδιαφέρον στην εξόρυξη γνώσης από κανόνες συσχέτισης και αναπτύχθηκαν αρκετοί αλγόριθμοι (30) (76) για το σκοπό αυτό. Ένα σημαντικό σύστημα για εξόρυξη γνώσης από τη χρήση του Web είναι το WEBMINER που παρουσιάστηκε το 1996 από τον Mobasher και άλλους (58). Ο βασικός σκοπός του είναι η ανακάλυψη προτύπων χρήσης σε ένα δεδομένο Site με βάση αρκετών τεχνικών εξόρυξης δεδομένων. Οι ερευνητές αρχικά εφαρμόζουν τεχνικές συσταδοποίησης για την ομαδοποίηση των προσπελάσεων των χρηστών και στη συνέχεια χρησιμοποιούν παραδοσιακούς αλγόριθμους για την εξαγωγή κανόνων συσχέτισης από τη βάση δοσοληψιών. Σε μια μεταγενέστερη δημοσίευση ο Mobasher και άλλοι (55) προτείνουν την άμεση παραγωγή συστάσεων για την προσαρμογή ενός site με τη χρήση των συχνών στοιχειοσυνόλων, αποφεύγοντας έτσι την παραγωγή των κανόνων συσχέτισης. Επίσης, ο Mobasher με κάποιους άλλους (57) προτείνουν αποδοτικές και αποτελεσματικές τεχνικές για προσωποποιημένη πρόσβαση σε ένα Web site με την ανακάλυψη κανόνων συσχέτισης από τα δεδομένα χρήσης. Από τις πειραματικές αναλύσεις που έκαναν απέδειξαν ότι η τεχνική τους μπορεί 65

66 Πίνακας 1 Πηγή Αντικείμενα του Web Χρόνος Προβολής Yan κα (1996) Χρήστες Ναι Όχι Shahabi κα (1997) Mobasher κα (1999) Click-streams Αλγόριθμος Input Leader clustering algorithm Χρήστες Ναι Ναι K-means URLs Όχι Όχι Association Rule Hypergraph Partitioning Διανύσματα από αναφορές σελίδων Πίνακας με γωνιακές σχέσεις διαδρομών Υπεργράφος ομοιοτήτων Χαρακτηρισμός Συστάδων Hard Hard Overlapping Fu κα (1999) Χρήστες Ναι Όχι BIRCH Γενικευμένα διανύσματα από χρονικές ακολουθίες Hard Fuzzy Διανύσματα με την εμφάνιση ή Nasraoui κα URLs Όχι Όχι Competitive απουσία ενός εγγράφου σε μια (2000) Agglomeration σύνοδο Fuzzy Perkowitz κα PageGather, Πίνακας δεδ/νων URLs Όχι Όχι Etzioni (2000) graph algorithms Γράφος ομοιοτήτων Probabilistic Banerjee κα Ζευγάρια διαδρομών των Χρήστες Ναι Ναι METIS (2001) χρηστών Hard Hay κα (2001) URLs Όχι Ναι SAM Ζευγάρια από ακολουθίες Overlapping Wand κα (2002) URLs Όχι Ναι TURN Ζευγάρια διαδρομών των χρηστών Hard Shokry κα (2006) URLs Όχι Όχι SKMd Πίνακας δεδ/νων Overlapping Zicari κα (2007) Χρήστες Ναι Όχι Takahe Σύνολο θεμάτων με βάση την προτεραιότητά τους Hard 66

67 να προσφέρει περισσότερα πλεονεκτήματα σε σχέση με τις παραδοσιακές τεχνικές συνεργατικού φιλτραρίσματος και να παράγει καλύτερες συστάσεις. Οι Borges και Levene (14) πρότειναν το 1998 μια γενίκευση των κανόνων συσχέτισης με την παραγωγή σύνθετων κανόνων συσχέτισης από ένα δομημένο κατευθυνόμενο γράφο, όπως είναι ο Παγκόσμιος Ιστός. Από τα log αρχεία χρησιμοποιούν δεδομένα για να αναπαραστήσουν μια σύνοδο ενός χρήστη και ορίζουν την υποστήριξη και την εμπιστοσύνη για τους σύνθετους κανόνες που ορίζουν. Στην ίδια δημοσίευση παρουσιάζουν δύο αλγόριθμους για την εξόρυξη των σύνθετων κανόνων συσχέτισης. Ο ένας αλγόριθμος αποτελεί παραλλαγή Depth-First-Search αλγόριθμου ενώ ο άλλος χρησιμοποιεί μια αυξητική προσέγγιση για την κατασκευή των συνόλων των σύνθετων κανόνων μεγέθους n+1 από το σύνολο των σύνθετων κανόνων μεγέθους n. Μια άλλη δημοσίευση για την παραγωγή fuzzy κανόνων συσχέτισης παρουσιάστηκε το 2001 από τον Wong και άλλους (87) σύμφωνα με την οποία προτείνεται μία μεθοδολογία για την πρόβλεψη των προτύπων πρόσβασης του χρήστη. Η μεθοδολογία αυτή βασίζεται σε μια προσέγγιση που αξιολογεί τις περιπτώσεις και ανακαλύπτει τα πρότυπα πρόσβασης από fuzzy κανόνες συσχέτισης που προέρχονται από τα δεδομένα του log αρχείου. Στην προσέγγιση αυτή θεωρούν ότι η χρονική διάρκεια της συνόδου του χρήση ανήκει στις περιπτώσεις που αξιολογούνται και επομένως λαμβάνεται υπόψη. Μια γενική επισκόπηση και σύγκριση αλγορίθμων για την παραγωγή κανόνων συσχέτισης δημοσιεύτηκε το 2000 από τον Hipp και άλλους (33). Οι συγγραφείς συγκρίνουν τους κοινούς αλγόριθμους μέσα από πειραματικές μετρήσεις και εξηγούν τα αποτελέσματα των συγκρίσεων τους. Παρόμοια μελέτη έγινε πρόσφατα από τους Κοτσιαντή και Κανελλόπουλο (37) που παρουσιάζουν όλες τις τεχνικές για κανόνες συσχέτισης και παραθέτουν επίσης τους γενικούς κανόνες που διέπουν τις τεχνικές αυτές. Φυσικά δεν είναι σκοπός της παρούσης εργασίας η λεπτομερής περιγραφή όλων των τεχνικών εξόρυξης κανόνων συσχέτισης. Αυτό που ωστόσο αξίζει να σημειωθεί είναι πως οι τεχνικές αυτές έχουν ένα μεγάλο εύρος εφαρμογών και γενικά στοχεύουν όπως και οι τεχνικές συσταδοποίησης, στην ανακάλυψη προτύπων. Επομένως οι τεχνικές συσταδοποίησης και οι τεχνικές για την ανακάλυψη κανόνων συσχέτισης παρέχουν την ίδια μορφή αποτελεσμάτων. Η μόνη διαφορά τους έγκειται στο ότι οι τεχνικές για την εξόρυξη γνώσης από κανόνες συσχέτισης δίνουν περισσότερες πληροφορίες όσον αφορά αυτό που προηγείται και αυτό που διαδέχεται ένα πρότυπο. Ταυτόχρονα παρέχονται οι τιμές της υποστήριξης και της εμπιστοσύνης που είναι εξίσου σημαντικές. Αναμφισβήτητα, οι τεχνικές εξόρυξης κανόνων συσχέτισης έχουν και κάποια μειονεκτήματα. Ένα βασικό μειονέκτημα είναι ότι δεν παρέχουν πληροφορίες όσον αφορά τη σειρά επίσκεψης των σελίδων. Επίσης, έχει αποδειχθεί (37) ότι τα εργαλεία που προσφέρουν εξόρυξη γνώσης από κανόνες συσχέτισης, στην πράξη αντιμετωπίζουν αρκετά προβλήματα. Καταρχήν, οι αλγόριθμοι που χρησιμοποιούνται δεν επιστρέφουν πάντα τα αποτελέσματα στον αναμενόμενο δυνατό χρόνο. Αν οι απαιτήσεις όσον αφορά τον αριθμό εμφάνισης των αντικειμένων περιοριστούν, τα σύνολα με τους κανόνες συσχέτισης μπορεί να είναι δύσχρηστα. Όσο μεγαλύτερο μάλιστα είναι το σύνολο των συχνών στοιχειοσυνόλων τόσο περισσότεροι είναι οι κανόνες που παρουσιάζονται, εκ των οποίων κάποιοι είναι περιττοί. Το ίδιο συμβαίνει και σε αραιά σύνολα δεδομένων, ενώ για πυκνά σύνολα δεν είναι εφικτή η εξόρυξη όλων των πιθανών συχνών στοιχειοσυνόλων. 67

68 Η παραπάνω παρατηρήσεις παροτρύνουν την ενσωμάτωση προτύπων χρήσης που παράγονται από τη συσταδοποίηση με ποιοτικές και ποσοτικές πληροφορίες που αφορούν αυτό που προηγείται και αυτό που ακολουθεί καθώς επίσης και τη χρήση τιμών που αφορούν την υποστήριξη και την εμπιστοσύνη. Κατά συνέπεια ο συνδυασμός των δύο τεχνικών μπορεί να δώσει πιο ποιοτικά και πιο κατατοπιστικά πρότυπα χρήσης. Για το λόγο, αυτό έχουν αναπτυχθεί αρκετές μεθοδολογίες που χρησιμοποιούν τις δύο τεχνικές για αποτελεσματικότερη αντιμετώπιση των διαφορών προβλημάτων κατά την εξόρυξη γνώσης από τη χρήση του Web. 5.3 Εξόρυξη γνώσης από ακολουθιακά πρότυπα Η εξόρυξη ακολουθιακών προτύπων είναι - όπως έχει ήδη αναφερθεί - επέκταση των κανόνων συσχέτισης γι αυτό και οι δύο αυτές τεχνικές χρησιμοποιούνται ταυτόχρονα σε πολλές περιπτώσεις. Τα ακολουθιακά πρότυπα παρουσιάστηκαν για πρώτη φορά από τους Agrawal και Srikant (1995)(3) σε μια προσπάθεια τους να βρουν ακολουθιακά πρότυπα σε μία βάση δοσοληψιών. Βασισμένοι στον Apriori αλγόριθμο που παρουσίασαν το 1994, προτείνουν τρεις νέους αλγορίθμους τους AprioriSome, AprioriAll και DynamicSome για την επίλυση του παραπάνω προβλήματος. Πολλές από τις τεχνικές εξόρυξης γνώσης από ακολουθιακά πρότυπα που αναπτύχθηκαν στη συνέχεια αποτελούν παραλλαγές του Apriori ορίζοντας διαφορετικούς περιορισμούς και παραμέτρους (27). Άλλες προσεγγίσεις προτείνονται αποκλειστικά για την εξόρυξη γνώσης από log δεδομένα του Web (19). Συγκεκριμένα ο Chen κ.α. παρουσιάζουν την αρχή της «μέγιστης εμπρόσθιας αναφοράς» (maximal forward reference) προκειμένου να χαρακτηρίσουν τα επεισόδια των χρηστών για την εξόρυξη γνώσης από ακολουθιακά πρότυπα. Η «μέγιστη εμπρόσθια αναφορά» ορίζεται από την ακολουθία σελίδων που ζητάει ένας χρήστης μέχρι να γυρίσει προς τα πίσω. Ουσιαστικά η δουλειά τους βασίζεται σε στατιστικά κυρίαρχα μονοπάτια και ανακάλυψη κανόνων συσχέτισης και αποτελείται από δύο βασικά βήματα. Αρχικά, με τον αλγόριθμο MF (Maximal Forward Reference) μετατρέπουν τα log δεδομένα σε μέγιστες εμπρόσθιες αναφορές ώστε να απορριφθούν οι άσκοπες κινήσεις του χρήστη. Στη συνέχεια ανακαλύπτουν τις αναφορές που εμφανίζονται τις περισσότερες φορές στις δοσοληψίες, προτείνοντας δύο αλγορίθμους για το σκοπό αυτό, τον Selective Scan και τον Full Scan αλγόριθμο. Συνδυασμό τεχνικών εξόρυξης κανόνων συσχέτισης και ανακάλυψης ακολουθιακών προτύπων εφάρμοσε ο Masseglia με άλλους (51),(52) για την δυναμική προσαρμογή της οργάνωσης των υπερκειμένων στον Server. Πιο αναλυτικά, διαχωρίζουν την διαδικασία εξόρυξης γνώσης από τη χρήση του Web σε δύο φάσεις. Η πρώτη φάση είναι η φάση προεπεξεργασίας όπου απομακρύνονται τα άσχετα δεδομένα και τα δεδομένα από το log αρχείο ομαδοποιούνται με βάση χρονικές παραμέτρους. Στην επόμενη φάση εφαρμόζονται οι τεχνικές εξόρυξης. Το σύστημα που προτείνουν είναι το WebTool το οποίο μπορεί να προβλέπει τα πρότυπα επίσκεψης του χρήστη και να οργανώνει δυναμικά ένα Web site. Για τη βελτίωση της διαδικασίας της 68

69 επεξεργασίας εξαιτίας της αύξησης του μεγέθους των log αρχείων προτείνουν λίγο αργότερα (2000) την ISEWUM μέθοδο (53) με την οποία διαχειρίζονται το πρόβλημα εύρεσης προτύπων όταν υπάρχουν νέες δοσοληψίες, λαμβάνοντας υπόψη μόνο τα πρότυπα χρηστών που είχαν ληφθεί από την τελευταία εξόρυξη που έγινε. Ένας αλγόριθμος για την ανακάλυψη ακολουθιακών προτύπων από log αρχεία, ο MiDAS παρουσιάστηκε το 1999 από τον Buchner και άλλους (17) ενώ ο Pei και άλλοι (66) παρουσιάζουν τον WAP-mine (Wap Access Pattern) αλγόριθμο που βασίζεται σε μια στρατηγική αναζήτησης υπό συνθήκη και χρησιμοποιεί τη δεντρική δομή που προτείνουν. Η δομή αυτή όπως αποδεικνύουν είναι μια αποδοτική τεχνική για την εξόρυξη γνώσης από log αρχεία. Επίσης, ο Mortazavi-asl (60) μελέτησε την ανακάλυψη ακολουθιακών προτύπων με την προοδευτική κατάτμηση των βάσεων δεδομένων με τις ακολουθίες των χρηστών σε μικρότερες υπο-βάσεις δεδομένων και εισήγαγε τον PrefixSpan αλγόριθμο. Ένα σημαντικό σύστημα εξόρυξης ακολουθιών για τον προσδιορισμό, την ανακάλυψη και την οπτικοποίηση ενδιαφέροντων ακολουθιακών προτύπων υλοποιήθηκε από τη Σπηλιοπούλου και άλλους (78,79,80). Το σύστημα WUM (Web Utilization Miner) χρησιμοποιεί τη γλώσσα εξόρυξης MINT που σχεδιάστηκε για το σκοπό αυτό και υποστηρίζει τον καθορισμό στατιστικών και δομικών κριτηρίων. Οι παραπάνω προσεγγίσεις είναι αποδοτικές σύμφωνα με κάποια κριτήρια τα οποία καθορίζουν οι δημιουργοί τους. Υπάρχουν ωστόσο λίγες προσεγγίσεις που χρησιμοποιούν τη γραφική δομή των συστημάτων για την αποκάλυψη προτύπων. Μια από αυτές είναι των Inokuchi και άλλων (31) που προτείνουν μια αρχή και τον αλγόριθμο της, που παράγει τα χαρακτηριστικά πρότυπα που εμφανίζονται πιο συχνά σε γραφικές δομές δεδομένων. Μια διαφορετική προσέγγιση παρουσιάστηκε το 1999 από τον Rastogi κα (25) με μια σειρά καινοτόμων αλγορίθμων με την ονομασία SPIRIT (Sequential Pattern Mining with Regular Expression Constraints) για την ανακάλυψη συχνών ακολουθιακών προτύπων. Οι συγγραφείς προτείνουν τη χρήση κανονικών εκφράσεων (Regular Expressions) σαν ένα ευέλικτο εργαλείο καθορισμού περιορισμών που επιτρέπει στον χρήστη να συμμετέχει στην διαδικασία εύρεσης ακολουθιακών προτύπων. Χρονικοί περιορισμοί είχαν προταθεί στο (52) με τον καθορισμό από τον χρήστη μέγιστων και ελάχιστων χρονικών διαστημάτων μεταξύ των εισόδων σε log αρχεία. Για την διαδικασία της προεπεξεργασίας χρησιμοποιήθηκε ο αλγόριθμος GENERAL που είναι μια παραλλαγή του αλγορίθμου GSP που πρότεινε ο Srikant και ο Agrawal (3) για την εύρεση γενικευμένων ακολουθιακών προτύπων. Τέλος, έναν νέο αλγόριθμο που βελτιώνει τον CS-mine αλγόριθμο (13) που βασίζεται στον WAP mine αλγόριθμο δημοσιεύτηκε στο (10). Ο αλγόριθμος CSB-mine (Conditional Sequence Base mining algorithm) βασίζεται αποκλειστικά σε υπό συνθήκη βασικές ακολουθίες για κάθε γεγονός που εμφανίζεται συχνά και εξαλείφει την ανάγκη κατασκευής WAP δέντρων. Έτσι είναι αρκετά πρακτικός για Web εφαρμογές και ειδικότερα για συστήματα συστάσεων. Οι παραπάνω αλγόριθμοι συνοψίζονται στον πίνακα 2. 69

70 Πίνακας 2 Πηγή Αλγόριθμος Τύπος προτύπων Agrawal Srikant (1994) Chen κα (1996) AprioriSome AprioriAll DynamicSome MF, Selective Scan, Full Scan Ακολουθιακά πρότυπα Maximal Forward References Spiliopoulou Faulstich (1998) WUM Ακολουθιακά πρότυπα Masseglia κα (1999) General Γενικευμένα ακολουθιακά πρότυπα Buchner κα (1999) MiDAS Ακολουθιακά πρότυπα Rastogi κα (1999) Spirit αλγόριθμοι Συχνά ακολουθιακά πρότυπα που ικανοποιούν περιορισμούς που θέτει ο χρήστης Pei κα (2000) WAP mine Ακολουθιακά πρότυπα Mortazavi-asl (2001) PrefixSpan Ακολουθιακά πρότυπα Inokuchi κα (2003) Παραλλαγή του Apriori Συχνά πρότυπα που περιέχονται σε γραφικά δομημένες δοσοληψίες Zhou κα (2004) CS mine Ακολουθιακά πρότυπα Zhou κα (2005) CSB mine Ακολουθιακά πρότυπα 70

71 ΚΕΦΑΛΑΙΟ 6 ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΠΡΟΣΩΠΟΠΟΙΗΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ Τα προηγούμενα κεφάλαια περιγράφουν τρόπους και τεχνικές βελτιστοποίησης της δομής ενός Site για την καλύτερη και αποδοτικότερη χρησιμοποίηση του που θα μπορούσε να επιφέρει αύξηση των επισκεπτών του. Στο κεφάλαιο αυτό παρουσιάζεται μια τεχνική βελτιστοποίησης ενός Site με βάση τη δημοτικότητα κάθε μεμονωμένης σελίδας για κάθε χρήστη ξεχωριστά η οποία χρησιμοποιήθηκε για την υλοποίηση ενός συστήματος προσωποποιημένης πρόσβασης σε Web Site. Το σύστημα που υλοποιήθηκε βασίζεται στη δημοσίευση (24) του Ι. Γαροφαλάκη (και άλλων) σύμφωνα με το οποίο είναι δυνατή η αναδιοργάνωση ενός Site με βάση τη δημοτικότητα κάθε σελίδας όπως αυτή προκύπτει από τα δεδομένα που καταγράφονται στο log αρχείου του Server. Στη συνέχεια περιγράφονται τα σημαντικότερα σημεία της παραπάνω δημοσίευσης που θα χρησιμοποιηθούν στην παρούσα εργασία. 6.1 Ορισμός της δημοτικότητας μιας σελίδας Ένας εύκολος τρόπος για τον υπολογισμό της δημοτικότητας μιας σελίδας είναι η μέτρηση των προσπελάσεων σε αυτή από το log αρχείο που περιέχει τις http αιτήσεις των πελατών. Η μέτρηση αυτών των προσπελάσεων δίνει τον αριθμό των Απόλυτων Προσπελάσεων (Absolute Accesses- ΑΑ) που μπορεί ωστόσο να είναι παραπλανητικός αφού μια σελίδα η οποία βρίσκεται κοντά στην κεντρική σελίδα του Site είναι αναμενόμενο πως θα έχει περισσότερες προσπελάσεις. Για τον λόγο αυτό θα πρέπει να ληφθούν υπόψη οι ακόλουθοι παράγοντες: το βάθος της σελίδας (d), δηλαδή το πόσα βήματα είναι η σελίδα μακριά από την κεντρική σελίδα ο αριθμός των σελίδων (n) στο ίδιο βάθος με τη σελίδα η οποία εξετάζεται ο αριθμός των αναφορών (συνδέσμων) σε αυτή τη σελίδα από άλλες σελίδες του server Υποθέτοντας επίσης ότι υπάρχει ένας συντελεστής a ο οποίος εμπεριέχει τους παραπάνω όρους ορίζεται η Σχετική Πρόσβαση (Relative Access RA) ως εξής: RA= a * AA 6.2 Ορισμός του συντελεστή a Όπως είναι αναμενόμενο, το βάθος μιας σελίδας μειώνει την δημοτικότητά της και όπως είναι φυσικό ο συντελεστής a θα πρέπει να είναι ανάλογος του d. Παρόμοια, ο αριθμός των σελίδων που βρίσκονται στο ίδιο βάθος n d, θα πρέπει να είναι ανάλογος του a εφόσον όσο μεγαλύτερος είναι ο αριθμός των επιλογών, τόσο μεγαλύτερη είναι η σημασία επιλογής μιας 71

72 συγκεκριμένης σελίδας. Επίσης, οι αναφορές από άλλες σελίδες r, γενικά ενισχύουν τη δημοτικότητα και επομένως το r θα πρέπει να είναι αντιστρόφως ανάλογο του a. Οι καινούργιοι Web Servers μπορούν να ρυθμιστούν ώστε να ανιχνεύουν ιστοσελίδες οι οποίες περιέχουν συνδέσμους προς οποιεσδήποτε ιστοσελίδες τους και φυσικά έχουν την ιδιότητα να αποθηκεύουν αυτές τις διευθύνσεις στο referrer log. Οι περισσότεροι φυλλομετρητές μάλιστα υποστηρίζουν αυτό το χαρακτηριστικό και στέλνουν τη αναφορά (σύνδεσμο) προς μια σελίδα του Server ταυτόχρονα με την HTTP αίτηση. Έστω r μια εκτίμηση που βασίζεται στον αριθμό των αναφορών από σελίδες του Server προς μια σελίδα του ίδιου Server. Η σχέση μεταξύ των a i, d i, n i και r i δηλαδή οι τιμές των a, d, n, r για τη σελίδα i, θα έχουν την παρακάτω μορφή: a i = F (d i, n i, 1/ r i ), i=1..k όπου Κ είναι ο αριθμός των ιστοσελίδων και F μια ειδική συνάρτηση που μπορεί να οριστεί ώστε να αντιπροσωπεύει τη συμπεριφορά ενός χρήστη δηλαδή ποιες σελίδες επισκέπτεται, με ποια σειρά, για πόσο χρόνο κλπ, κατά τη διάρκεια της πλοήγησής του σε ένα συγκεκριμένο Site. 6.3 Αναδιοργάνωση ενός Site Για την αναδιοργάνωση των συνδέσμων ενός Site είναι απαραίτητο να μπορούν να τεθούν κάποια κριτήρια. Πιο συγκεκριμένα στην περίπτωση που το RA μιας σελίδας υπερβεί την δημοτικότητα τουλάχιστον ενός προγόνου της θα πρέπει να γίνεται αναδιοργάνωση των συνδέσμων. Αυτή η αναδιοργάνωση μπορεί να πραγματοποιείται περιοδικά (για παράδειγμα κάθε εβδομάδα). Οι πιο σημαντικές μετρικές που θα πρέπει να περιλαμβάνονται είναι: ΑΑ: ο αριθμός των Απόλυτων Προσπελάσεων RA: ο αριθμός των Σχετικών Προσπελάσεων για κάθε σελίδα PT: ο μέσος χρόνος σελίδας, δηλαδή πόσο χρόνο ξοδεύει ο χρήστης σε μια σελίδα UT: ο μέσος χρόνος του χρήστη, δηλαδή πόσο χρόνο ξοδεύει αυτός σε μια σύνοδο. ΝΡ: ο μέσος αριθμός σελίδων, δηλαδή πόσες διαφορετικές σελίδες επισκέπτεται ο χρήστης σε κάθε σύνοδο. Μια νέα σύνοδος ξεκινάει όταν ένας χρήστης εισέρχεται σε ένα Site. Όλες οι διαδοχικές προσβάσεις που ανήκουν στην ίδια σύνοδο, προϋποθέτουν ότι ο χρόνος ανάμεσά τους δεν υπερβαίνει ένα συγκεκριμένο χρονικό κατώφλι. Όταν μια σελίδα έχει μεγαλύτερο RA από τον πατέρα της γίνεται ανταλλαγή. Αυτή η διαδικασία συνεχίζεται μέχρις ότου όλες οι σελίδες να έχουν προγόνους με μεγαλύτερα RA. Για την υλοποίηση του συστήματος χρησιμοποιήθηκε ο παρακάτω ορισμός για το a i : a i = c 1 * d i + c 2 * 72

73 όπου c 1, c 2 σταθερές που οι τιμές τους ποικίλουν με βάση τη δομή του Site. Για λόγους απλούστευσης και με βάση τη δημοσίευση (24) σύμφωνα με την οποία υπάρχει ισορροπημένη αναπροσαρμογή των συνδέσμων όταν c 1 = c 2 = 1 η παραπάνω σχέση μετατρέπεται ως ακολούθως: a i = d i + Επιπλέον, όσον αφορά τον χρόνο PT που υπολογίζεται από το log αρχείο, θα παραβλεφθούν οι τιμές που είναι πολύ μικρές. Αυτό συμβαίνει γιατί ένας πολύ μικρός χρόνος δείχνει ότι ο χρήστης απλά επέλεξε τον σύνδεσμο για την επόμενη σελίδα. 6.4 Περιγραφή Συστήματος O Web Crawler Για την αρχική δομή του Site χρησιμοποιήθηκε ένας open-source Web Crawler (WebLex) ο οποίος τροποποιήθηκε κατάλληλα ώστε να αποθηκεύει τις σελίδες και μεταξύ τους σχέσεις σε σχεσιακή βάση δεδομένων. Ο Crawler διατρέχει τους συνδέσμους του Site κατά βάθος, αποθηκεύει όλες τις συνδέσεις των σελίδων στη βάση και απεικονίζει σε δεντρική μορφή το Site Η βάση δεδομένων Για τη βάση δεδομένων χρησιμοποιήθηκε η Microsoft Access Στη βάση αποθηκεύεται η δομή του Site, οι απαραίτητες πληροφορίες για την τροποποίηση του Site από το log αρχείο (χρόνοι και χρήστες) και η νέα δομή του Site ανά χρήστη με βάση τα RA που έχουν υπολογιστεί. Oι βασικοί πίνακες που χρησιμοποιήθηκαν είναι οι εξής: totalpages: στον πίνακα αυτό αποθηκεύεται το URL της κάθε σελίδας και το βάθος στο οποίο αυτή βρίσκεται. users: περιλαμβάνει τους χρήστες με βάση το IP address τους. logfile: περιλαμβάνει τα δεδομένα από το log αρχείο τα οποία χρησιμοποιούνται για την αναδιοργάνωση του Site. pagehits: περιλαμβάνει τη δημοτικότητα κάθε σελίδας ανά χρήστη usersra: περιέχει τα RA κάθε σελίδας ανά χρήστη. Στην εικόνα 17 φαίνονται οι πίνακες που χρησιμοποιήθηκαν καθώς και οι μεταξύ τους σχέσεις. 73

74 Εικόνα 17: Η βάση δεδομένων Τα log files Τα log αρχεία που χρησιμοποιούνται είναι αυτά που διατηρεί ο Web Server σύμφωνα με το W3C πρότυπο (90) και περιέχουν τις προσβάσεις των χρηστών στα περιεχόμενα του Site. Στην εικόνα 18 φαίνεται ένα παράδειγμα log αρχείου. Το σύστημα που υλοποιήθηκε διαβάζει το log αρχείο και καταγράφει τα απαραίτητα δεδομένα στη βάση δεδομένων. Επιπλέον υπολογίζει και αποθηκεύει στη βάση δεδομένων τον αριθμό των ΑΑ (απόλυτων προσπελάσεων) ανά χρήστη για κάθε σελίδα που αυτός επισκέφθηκε. Εικόνα 18:Παράδειγμα log αρχείου 74

75 6.4.3 Κώδικας Συστήματος Για την υλοποίηση του συστήματος χρησιμοποιήθηκε η γλώσσα προγραμματισμού Visual C# στο περιβάλλον του Visual Studio Στη συνέχεια παρουσιάζονται τα σημαντικότερα τμήματα κώδικα του συστήματος με βάση τη περιγραφή που προηγήθηκε. Web Site Crawler private TreeNode SetParentNode(TreeView tvset, string strurl) TreeNode nodparent= FindNodeByValue(tvSet, strurl); if (nodparent == null) nodparent = tvset.nodes.add(strurl); //insert the root of the tree into the arraylist NodesX.Add(strURL); //insert the root into the database OleDbConnection aconnection1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\diplo2012\\basic1.mdb"); aconnection1.open(); // MessageBox.Show(aConnection1.State.ToString()); string insertstatement1 = "INSERT INTO totalpages ([IDpages],[URL],[PageLevel]) VALUES ('" + nodparent.text.gethashcode() + "','" + strurl + "',1)"; OleDbCommand insertcommand = new OleDbCommand(insertStatement1, aconnection1); insertcommand.executenonquery(); aconnection1.close(); nodparent.forecolor = System.Drawing.Color.Blue; return(nodparent); //SetParentNode -the first time for the tree view // private TreeNode FindNodeByValue(System.Windows.Forms.TreeView tvparent, string strvalue) foreach (TreeNode nodchild in tvparent.nodes) if (nodchild.text == strvalue) return (nodchild); foreach (TreeNode nodchild in tvparent.nodes) TreeNode nodresult = FindNodeByValue(nodChild, strvalue); if (nodresult!= null) 75

76 return (nodresult); return(null); // private TreeNode FindNodeByValue(TreeNode nodparent, string strvalue) foreach (TreeNode nodchild in nodparent.nodes) if (nodchild.text == strvalue) return (nodchild); strvalue); foreach (TreeNode nodchild in nodparent.nodes) TreeNode nodresult = FindNodeByValue(nodChild, if (nodresult!= null) return (nodresult); return(null); //FindNodeByValue // private void m_wcspider_loadstatus(string URL, string Description) try stsfooter.panels[0].text = Description + " " + URL; catch //m_wcspider_loadstatus // private void m_wcspider_queueing(string URL, int Level, string[] HRefs) //MessageBox.Show("deikse"+Level); textbox1.appendtext("deikse " + Level + "\n\n"); try TreeNode nodparent; //MessageBox.Show(URL + "\nlevel:="+level); textbox1.appendtext(url + "\nlevel:=" + Level + "\n\n"); if (Level > m_wcspider.maxlevel) nodparent = null; else nodparent = SetParentNode(tvProgress, URL); int i = 0; for (i = 0; i < HRefs.Length; i++) 76

77 //Add en entry for each href TreeNode nodchild; if (nodparent == null) nodchild = tvprogress.nodes.add(hrefs[i]); else bool ChildExists = false; if (FindNodeByValue(tvProgress, HRefs[i])!=null) textbox1.appendtext(" child exists " + i + " : " + HRefs[i] + " \np:" + nodparent.text + "\n\n"); //Ntmp.ForeColor = System.Drawing.Color.Blue; OleDbConnection uconnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\diplo2012\\basic1.mdb"); uconnection.open(); string uinsertstatement = "UPDATE totalpages SET PageLevel=" + (Level + 1) + " WHERE IDpages="+HRefs[i].GetHashCode()+" and PageLevel>" + (Level + 1) ; OleDbCommand uinsertcommand = new OleDbCommand(uinsertStatement, uconnection); uinsertcommand.executenonquery(); uconnection.close(); OleDbConnection aconnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\diplo2012\\basic1.mdb"); aconnection.open(); if(!childexists) nodchild = nodparent.nodes.add(hrefs[i]); textbox1.appendtext(mainsiteurl + "... child level " + i + " : " + HRefs[i] + "\n P:" + nodparent.text + "\n\n"); bool found = false; foreach(string item in NodesX) if (item == HRefs[i]) found = true; break; if(!found) NodesX.Add(HRefs[i]); int extlink = 1; if (HRefs[i].StartsWith(mainSiteUrl)) extlink = 0; 77

78 string insertstatement = "INSERT INTO totalpages ([IDpages],[URL],[PageLevel],[external]) VALUES ('" + HRefs[i].GetHashCode() + "','" + HRefs[i] + "'," + (Level + 1) + "," + extlink + ")"; OleDbCommand insertcommand = new OleDbCommand(insertStatement,aConnection); insertcommand.executenonquery(); string insertstatement2 = "INSERT INTO pagesrelation ([fatherid],[childid]) VALUES ('"+nodparent.text.gethashcode()+"','"+hrefs[i].gethashcode()+ "')"; OleDbCommand insertcommand2 = new OleDbCommand(insertStatement2,aConnection); insertcommand2.executenonquery(); aconnection.close(); catch //m_wcspider_queueing // private void m_wcspider_pagecomplete(string URL, int ReturnCode) try TreeNode nodcomplete = FindNodeByValue(this.tvProgress, URL); if (nodcomplete!= null) if (ReturnCode == 0) nodcomplete.forecolor = System.Drawing.Color.Green; else nodcomplete.forecolor = System.Drawing.Color.Red; txtopeningurl.text = URL; catch //m_wcspider_pagecomplete private void m_wcspider_newpage(string URL, Charlotte.HTMLPage Page, int Level, ref bool NoFollow) try //txttext.text = Page.Host; 78

79 //Page.PathURL //Page.ServerURL //Page.URL if (mainsiteurl == "") mainsiteurl = Page.PathURL; //MessageBox.Show(mainSiteUrl + " " + Page.URL + " " + Page.PathURL + " " + Page.ServerURL + " " + txttext.text); textbox1.appendtext(mainsiteurl + " " + Page.URL + " " + Page.PathURL + " " + Page.ServerURL + "\n\n"); if (m_dsweblex.wasindexed(url, DateTime.Parse(Page.LastModified))) NoFollow = true; else if (!(Page.NoIndex)) stsfooter.panels[0].text = "Indexing: " + URL; m_dsweblex.indexcontent(page.title, Page.URL, Page.Text); catch //m_wcspider_newpage private void m_wcspider_load_progress(string URL, long Maximum, long Value) try int intmaximum = (int) Maximum; int intvalue = (int) Value; if ((intmaximum < 0) (intvalue < 0) intmaximum == intvalue) intmaximum = 0; intvalue = 0; catch Application.DoEvents(); //m_wcspider_load_progress private void btnstartindexing_click(object sender, System.EventArgs e) int maxlevel=1; int i=1; Cursor.Current = Cursors.AppStarting; btnstartindexing.enabled = false; m_wcspider.crawlurl(txtopeningurl.text); Cursor.Current = Cursors.Default; MessageBox.Show("Done"); btnstartindexing.enabled = true; OleDbConnection aconnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\diplo2012\\basic1.mdb"); 79

80 aconnection.open(); string selectstatement = "SELECT max(pagelevel) from totalpages"; OleDbCommand selectcommand = new OleDbCommand(selectStatement, aconnection); OleDbDataReader mreader = selectcommand.executereader(); // while (mreader.read()) maxlevel = Convert.ToInt32(mReader[0].ToString()); //fix pagelevel while (i < maxlevel) string updatestatement = " UPDATE totalpages AS f, pagesrelation AS pr, totalpages AS ch " + " SET ch.pagelevel=" +(i+1)+ " WHERE f.pagelevel="+i+" and f.idpages=pr.fatherid and pr.childid=ch.idpages and ch.pagelevel>"+(i+1); OleDbCommand updatecommand = new OleDbCommand(updateStatement, aconnection); updatecommand.executenonquery(); i++; string selectstatement2 = "SELECT [tp1].[idpages] as fid, [tp1].[url] as furl, [tp1].[pagelevel] as flvl, [tp2].[idpages] as chid, [tp2].[url] as churl, [tp2].[pagelevel] as chlvl, [tp2].[external] FROM [totalpages] AS [tp1], [pagesrelation] AS [pr], [totalpages] AS [tp2] WHERE [tp1].[idpages]=[pr].[fatherid] AND [tp2].[idpages]=[pr].[childid] ORDER BY [tp1].[pagelevel], [tp2].[pagelevel], [tp2].[external]"; OleDbCommand selectcommand2 = new OleDbCommand(selectStatement2, aconnection); OleDbDataReader areader2 = selectcommand2.executereader(); while (areader2.read()) string strread = areader2[1].tostring(); TreeNode nodparent = FindNodeByValue(treeView2, strread); if (nodparent == null) TreeNode nodparent_ = treeview2.nodes.add(strread); strread = areader2[4].tostring(); TreeNode nodchild = nodparent_.nodes.add(strread); int ext = Convert.ToInt32(aReader2[6].ToString()); if (ext == 1) 80

81 nodchild.forecolor = System.Drawing.Color.Red; int flvl = Convert.ToInt32(aReader2[2].ToString()); int chlvl = Convert.ToInt32(aReader2[5].ToString()); if (chlvl == flvl) nodchild.forecolor = System.Drawing.Color.SteelBlue; if (chlvl < flvl) nodchild.forecolor = System.Drawing.Color.Gray; else strread = areader2[4].tostring(); TreeNode nodchild = nodparent.nodes.add(strread); int ext = Convert.ToInt32(aReader2[6].ToString()); if (ext == 1) nodchild.forecolor = System.Drawing.Color.Red; int flvl = Convert.ToInt32(aReader2[2].ToString()); int chlvl = Convert.ToInt32(aReader2[5].ToString()); if (chlvl == flvl) nodchild.forecolor = System.Drawing.Color.SteelBlue; if (chlvl < flvl) nodchild.forecolor = System.Drawing.Color.Gray; areader2.close(); aconnection.close(); Log File Parsing private TreeNode FindNodeByValue(System.Windows.Forms.TreeView tvparent, string strvalue) foreach (TreeNode nodchild in tvparent.nodes) //MessageBox.Show(nodChild.Text+"\n"+strValue); if (nodchild.text == strvalue) return(nodchild); return(null); 81

82 private TreeNode FindNodeByValue(TreeNode nodparent, string strvalue) foreach (TreeNode nodchild in nodparent.nodes) if (nodchild.text == strvalue) return (nodchild); return(null); //FindNodeByValue private void button1_click(object sender, System.EventArgs e) string[] arrayx; int Linecount = 0; int indexdate=0; int indexip=0; //int user=0; int httpf=0; //int https=0; int timestamp=0; int methodx = 0; int qstrindx = 0; FileStream fs = new FileStream(textBox1.Text,FileMode.Open,FileAccess.Read, FileShare.None); StreamReader sr=new StreamReader(fs); string serverfullname = textbox3.text; MessageBox.Show("name "+serverfullname); string SLn = sr.readline(); //textbox2.appendtext("\n\t" + SLn + "\n"); OleDbConnection aconnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\diplo2012\\basic1.mdb"); aconnection.open(); //MessageBox.Show("Connection State: " + aconnection.state); //while (SLn!= null && Linecount<10) while (SLn!=null) arrayx = SLn.Split(' '); if (arrayx[0] == "#Fields:") indexdate = Array.IndexOf(arrayX, "date"); timestamp = Array.IndexOf(arrayX, "time"); indexip = Array.IndexOf(arrayX, "c-ip"); httpf = Array.IndexOf(arrayX, "cs-uri-stem"); qstrindx = Array.IndexOf(arrayX, "cs-uri-query"); //MessageBox.Show("1: " + indexdate +" 2: "+ timestamp +" 3: "+ indexip +" 4: "+ httpf ); 82

83 methodx = Array.IndexOf(arrayX, "cs-method"); else if (arrayx[0].substring(0,1)!="#") textbox2.appendtext(arrayx[indexdate-1]+" "); textbox2.appendtext(arrayx[timestamp - 1] + "\t"); textbox2.appendtext(arrayx[indexip-1]+"\t"); textbox2.appendtext(arrayx[httpf-1]+"\t"); textbox2.appendtext(arrayx[qstrindx - 1] + "\n"); // all required variables string qstr = (arrayx[qstrindx - 1] == "-"? "" : ("?" + arrayx[qstrindx - 1])); string y=arrayx[httpf-1]; string iptype = serverfullname + y + qstr; string ipa= arrayx[indexip-1]; int usercode=ipa.gethashcode(); string methodrequest=arrayx[methodx-1]; //DateTimeConverter dateobj; //dateobj.convertfromstring("yyyy-mm-dd", arrayx[indexdate - 1]); string mydate = arrayx[indexdate - 1] + " " + arrayx[timestamp - 1]; //MessageBox.Show(myDate); if(methodrequest=="get" methodrequest=="post") //MessageBox.Show(iptype + ", " + mydate + ", " + ipa + ", " + iptype.gethashcode() + ", " + ipa.gethashcode()); string insertstatement1 = "INSERT INTO logfile ([date_time], [url], [cip], [pageselection],[userselection]) VALUES ('" + mydate + "', '" + iptype + "', '" + ipa + "', '" + iptype.gethashcode() + "','" + ipa.gethashcode() + "')"; OleDbCommand insertcommand1 = new OleDbCommand(insertStatement1, aconnection); try insertcommand1.executenonquery(); catch SLn = sr.readline(); Linecount++; // new version => // fill the clean tmplogfile string initstatement1 = "DELETE FROM tmplogfile"; OleDbCommand initcommand1 = new OleDbCommand(initStatement1, aconnection); initcommand1.executenonquery(); string insertstatement = "INSERT INTO tmplogfile SELECT lf.* FROM logfile AS lf, totalpages AS tp WHERE lf.pageselection=tp.idpages"; OleDbCommand insertcommand = new OleDbCommand(insertStatement, aconnection); 83

84 try insertcommand.executenonquery(); catch // <= new version // VRES TOUS XRISTES STO LOGFILE POU DEN IPARXOUN IDI STON PINAKA USERS // KAI PROSTHESE TOUS STON PINAKA USERS insertstatement = "INSERT INTO users ([userid],[ipaddress]) SELECT DISTINCT [lf].[userselection], [lf].[cip] FROM logfile AS lf LEFT JOIN users AS u ON [lf].[userselection]=[u].[userid] WHERE [u].[userid] is null"; insertcommand = new OleDbCommand(insertStatement, aconnection); try int numofusers = insertcommand.executenonquery(); ((MainMDIForm)(this.MdiParent)).toolStripStatusLabel1.Text = numofusers.tostring(); ((MainMDIForm)(this.MdiParent)).ResumeLayout(); catch //((MainMDIForm)(this.MdiParent)).toolStripStatusLabel1.Text = numofusers ; //GIA KATHE XRISTI YPOLOGISE TA PAGE HITS string selectstatement = "SELECT userid FROM users"; OleDbCommand selectcommand = new OleDbCommand(selectStatement, aconnection); OleDbDataReader areader = selectcommand.executereader(); while (areader.read()) // new version => // fill the clean tmplogfile ((MainMDIForm)(this.MdiParent)).toolStripStatusLabel2.Text = areader[0].tostring(); ((MainMDIForm)(this.MdiParent)).ResumeLayout(); initstatement1 = "DELETE FROM tmplft1"; initcommand1 = new OleDbCommand(initStatement1, aconnection); initcommand1.executenonquery(); initstatement1 = "DELETE FROM tmplft2"; initcommand1 = new OleDbCommand(initStatement1, aconnection); initcommand1.executenonquery(); insertstatement = "INSERT INTO tmplft1 ( autologid, date_time, [counter] )"+ " SELECT lf.autologid, lf.date_time, (SELECT count(*)+1 FROM [tmplogfile] as lf0 WHERE [userselection]=" + areader[0] + " and [lf0].[autologid]<[lf].[autologid]) AS c1 "+ " FROM tmplogfile AS lf "+ " WHERE lf.userselection=" + areader[0] + " ORDER BY lf.date_time"; insertcommand = new OleDbCommand(insertStatement, aconnection); try insertcommand.executenonquery(); 84

85 catch insertstatement = "INSERT INTO tmplft2 ( autologid, date_time, [counter] )" + " SELECT lf.autologid, lf.date_time, (SELECT count(*) FROM [tmplogfile] as lf0 WHERE [userselection]=" + areader[0] + " and [lf0].[autologid]<[lf].[autologid]) AS c1 " + " FROM tmplogfile AS lf " + " WHERE lf.userselection=" + areader[0] + " ORDER BY lf.date_time"; insertcommand = new OleDbCommand(insertStatement, aconnection); try insertcommand.executenonquery(); catch insertstatement = "INSERT INTO pagehits ([pageselection],[userselection],[pagescore]) " + " SELECT lf.[pageselection], " + areader[0] +", Count(lf.[pageselection]) AS hits "+ " FROM (SELECT [t1].[autologid], [t1].[date_time], t1.counter "+ " FROM tmplft1 as t1, tmplft2 as t2 "+ " WHERE [t1].[counter]=[t2].[counter] and datediff('s',[t1.date_time],[t2.date_time]) >" + Convert.ToInt32(textBox4.Text) + " union all "+ " (SELECT top 1, tmplft1.* FROM tmplft1 ORDER BY date_time desc) "+ " ) AS tbl, tmplogfile AS lf "+ " WHERE (((tbl.autologid)=[lf].[autologid])) "+ " GROUP BY lf.pageselection "; insertcommand = new OleDbCommand(insertStatement, aconnection); try insertcommand.executenonquery(); catch // <= new version aconnection.close(); MessageBox.Show("Done"); private void button2_click(object sender, EventArgs e) OpenFileDialog openfiledialog1 = new OpenFileDialog(); openfiledialog1.filter = "Text Files (*.txt) *.txt Log Files (*.log) *.log"; if (openfiledialog1.showdialog() == DialogResult.OK) string filename; filename = openfiledialog1.filename; textbox1.text = filename; // MessageBox.Show(fileName); 85

86 Web site reorganization private void button2_click(object sender, EventArgs e) textbox1.clear(); if (readuid() < 0) return; OleDbConnection aconnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\diplo2012\\basic1.mdb"); aconnection.open(); string initstatement0 = "DELETE FROM UserRA WHERE [userofpage]=" + userid; OleDbCommand initcommand0 = new OleDbCommand(initStatement0, aconnection); initcommand0.executenonquery(); string selectstatement = "SELECT IDpages,PageLevel FROM totalpages"; OleDbCommand selectcommand = new OleDbCommand(selectStatement, aconnection); OleDbDataReader areader = selectcommand.executereader(); while (areader.read()) di = areader[1].tostring(); dii = Convert.ToInt32(di); // MessageBox.Show(di); string selectstatement1 = "SELECT count(*) FROM totalpages WHERE PageLevel=" + di + ""; OleDbCommand selectcommand1 = new OleDbCommand(selectStatement1, aconnection); OleDbDataReader nireader = selectcommand1.executereader(); while (nireader.read()) ni = Convert.ToInt32(niReader[0].ToString()); //MessageBox.Show(ni.ToString()); nireader.close(); idpages = Convert.ToInt32(aReader[0].ToString()); string selectstatement2 = "SELECT count(*) FROM pagesrelation WHERE childid=" + idpages + ""; OleDbCommand selectcommand2 = new OleDbCommand(selectStatement2, aconnection); OleDbDataReader preader = selectcommand2.executereader(); while (preader.read()) 86

87 ri = Convert.ToInt32(pReader[0].ToString()); //a factor calculation preader.close(); // ai = dii + (ni / (ri + 1)); if (ri == 0) ai = int.maxvalue; // ai = dii + (ni / ri); else ai = dii + (ni / ri); string selectstatement3 = "SELECT count(*) FROM pagehits WHERE pageselection=" + idpages + " AND userselection=" + userid + ""; OleDbCommand selectcommand3 = new OleDbCommand(selectStatement3, aconnection); OleDbDataReader screader = selectcommand3.executereader(); // while (screader.read()) //Relative Accesses Calculation if (Convert.ToInt32(scReader[0].ToString()) == 0) //this means the user hasn't selected the particular page // MessageBox.Show("false"); //AA=0 and RA=0 string insertstatement1 = "INSERT INTO UserRA ([page],[userofpage],[ra]) VALUES ('" + idpages + "','" + userid + "',0)"; OleDbCommand insertcommand1 = new OleDbCommand(insertStatement1, aconnection); insertcommand1.executenonquery(); else string selectstatement4 = "SELECT pagescore FROM pagehits WHERE pageselection=" + idpages + " AND userselection=" + userid + ""; OleDbCommand selectcommand4 = new OleDbCommand(selectStatement4, aconnection); OleDbDataReader pscreader = selectcommand4.executereader(); // MessageBox.Show(selectStatement4); insertion"); while (pscreader.read()) // MessageBox.Show("make 87

88 // MessageBox.Show(pscReader[0].ToString()); // MessageBox.Show("egine"); pagesc = Convert.ToInt32(pscReader[0].ToString()); ra = ai * pagesc; string insertstatement2 = "INSERT INTO UserRA ([page],[userofpage],[ra]) VALUES ('" + idpages + "','" + userid + "','" + ra + "')"; OleDbCommand insertcommand2 = new OleDbCommand(insertStatement2, aconnection); insertcommand2.executenonquery(); //MessageBox.Show(insertStatement2); pscreader.close(); screader.close(); areader.close(); string initstatement1 = "DELETE FROM newpagerelation WHERE [user]=" + userid; OleDbCommand initcommand1 = new OleDbCommand(initStatement1, aconnection); initcommand1.executenonquery(); initstatement1 = "INSERT INTO newpagerelation ([newfatherid], [newchildid], [user] ) SELECT pagesrelation.fatherid, pagesrelation.childid, " + userid + " AS EKFR1 FROM pagesrelation"; initcommand1 = new OleDbCommand(initStatement1, aconnection); initcommand1.executenonquery(); string initstatement2 = "DELETE FROM newpagelevels WHERE [user]=" + userid; OleDbCommand initcommand2 = new OleDbCommand(initStatement2, aconnection); initcommand2.executenonquery(); initstatement2 = "INSERT INTO newpagelevels ([newpageid], [user], [newpagelevel] ) SELECT totalpages.idpages, " + userid + " AS EKFR1, totalpages.pagelevel FROM totalpages"; initcommand2 = new OleDbCommand(initStatement2, aconnection); initcommand2.executenonquery(); MessageBox.Show("Done"); ///////////////////////////////////// string selectstatement5 = "SELECT max(pagelevel) from totalpages"; OleDbCommand selectcommand5 = new OleDbCommand(selectStatement5, aconnection); 88

89 OleDbDataReader mreader = selectcommand5.executereader(); // while (mreader.read()) //MessageBox.Show(mReader[0].ToString()); maxlevel =Convert.ToInt32(mReader[0].ToString()); maxlevel = maxlevel - 1; \n"); mreader.close(); textbox1.appendtext("maxlevel: " + (maxlevel+1) + " textbox1.appendtext("user: " + userid + "\n"); //===> delete next line //maxlevel = 0; \n"); while (maxlevel >0) //MessageBox.Show("to erwthma"); textbox1.appendtext("level: " + maxlevel + " // Apo tous komvous twn dyo epipedwn entopise to paidi me to megalytero RA // kai ton patera tou me to mikrotero RA gia na touw allakseis thesi string selectstatement6 = "SELECT TOP 1 [tp1].[idpages], [tp1].[url], [pl1].[newpagelevel], [tp2].[url], [pl2].[newpagelevel], [pr].*, [u1].[ra], [u2].[ra] FROM [totalpages] AS tp1, [totalpages] AS tp2, [newpagerelation] AS pr, [newpagelevels] AS pl1, [newpagelevels] AS pl2, [userra] AS u1, [userra] AS u2 WHERE [tp1].[idpages]=[pr].[newfatherid] And [tp2].[idpages]=[pr].[newchildid] And [pl1].[newpageid]=[pr].[newfatherid] And [pl2].[newpageid]=[pr].[newchildid] And [u1].[userofpage]=[pr].[user] And [pl1].[user]=[pr].[user] And [pl2].[user]=[pr].[user] And [u2].[userofpage]=[pr].[user] And [pr].[user]=" + userid + " And [pl1].[newpagelevel]=" + maxlevel + " And [u1].[page]=[pr].[newfatherid] And [u2].[page]=[pr].[newchildid] AND [u2].[ra]>[u1].[ra] AND [pl2].[newpagelevel]>[pl1].[newpagelevel] ORDER BY [u2].[ra] DESC, [u1].[ra]"; //MessageBox.Show(selectStatement6); textbox1.appendtext("select 1: " + selectstatement6 + "\n\n"); OleDbCommand selectcommand6 = new OleDbCommand(selectStatement6, aconnection); OleDbDataReader selreader = selectcommand6.executereader(); //an iparxei apotelesma proxwra stin antimetathesi twn komvwn while (selreader.read()) newfid=convert.toint32(selreader[5].tostring()); newchid=convert.toint32(selreader[6].tostring()); 89

90 nlevelf = Convert.ToInt32(selReader[2].ToString()); nlevelch=convert.toint32(selreader[4].tostring()); //H antimetathesi ginetai se 5 vimata //step 1. // AN maxlevel>1 // ANTIKATESTISE TON PATERA ME TO PAIDI OPOU O PATERAS EINAI PAIDI KOMVOU EPIPEDOU maxlevel-1 // dld kane to paidi, paidi twn "pappoudwn" tou sti thesi tou patera tou if (maxlevel > 1) string updatestatement = " UPDATE " + " totalpages as tp1 INNER JOIN (((totalpages AS tp2 INNER JOIN newpagerelation as pr ON tp2.idpages = pr.newchildid) " + " INNER JOIN newpagelevels as pl1 ON (pl1.user = pr.user) AND (pr.newfatherid = pl1.newpageid)) " + " INNER JOIN newpagelevels AS pl2 ON (pl2.user = pr.user) AND (pr.newchildid = pl2.newpageid)) " + " ON tp1.idpages = pr.newfatherid " + " SET pr.newchildid=" + newchid + " WHERE tp2.idpages=" + newfid + " AND pl1.newpagelevel=" + (maxlevel - 1) + " AND pr.user=" + userid; textbox1.appendtext("step 1: " + updatestatement + "\n\n"); OleDbCommand updatecommand = new OleDbCommand(updateStatement, aconnection); updatecommand.executenonquery(); //MessageBox.Show(updateStatement); //step2. // ANTIKATESTISE TON PATERA ME TO PAIDI OPOU O PATERAS EINAI PATERAS EPIPEDOU maxlevel // dld kane to paidi patera twn paidiwn tou patera tou string updatestatement2 = " UPDATE " + " (totalpages as tp1 INNER JOIN (((totalpages AS tp2 INNER JOIN newpagerelation as pr ON tp2.idpages = pr.newchildid) " + " INNER JOIN newpagelevels as pl1 ON (pl1.user = pr.user AND pr.newfatherid = pl1.newpageid)) " + " INNER JOIN newpagelevels AS pl2 ON (pl2.user = pr.user AND pr.newchildid = pl2.newpageid)) " + " ON tp1.idpages = pr.newfatherid)" + " LEFT JOIN newpagerelation AS pr2 ON (pr.user= pr2.user and pr2.newchildid=pr.newchildid and pr2.newfatherid=" + newchid + ")" + " SET pr.newfatherid=" + newchid + ", pr.upd = 0" + " WHERE tp1.idpages= " + newfid + " AND pl1.newpagelevel=" + maxlevel + " AND pr.user=" + userid + " AND pr2.newfatherid is null"; 90

91 textbox1.appendtext("step 2: " + updatestatement2 + "\n\n"); OleDbCommand updatecommand2 = new OleDbCommand(updateStatement2, aconnection); updatecommand2.executenonquery(); // MessageBox.Show(updateStatement2); //step3. // ANTIKATESTISE TO PAIDI ME TON PATERA TOU, OPOU TO PAIDI EINAI PATERAS EPIPEDOU maxlevel+1 // dld kane ton patera, patera twn paidiwn tou paidiou tou updatestatement2 = " UPDATE " + " (totalpages as tp1 INNER JOIN (((totalpages AS tp2 INNER JOIN newpagerelation as pr ON tp2.idpages = pr.newchildid) " + " INNER JOIN newpagelevels as pl1 ON (pl1.user = pr.user AND pr.newfatherid = pl1.newpageid)) " + " INNER JOIN newpagelevels AS pl2 ON (pl2.user = pr.user AND pr.newchildid = pl2.newpageid)) " + " ON tp1.idpages = pr.newfatherid)" + " LEFT JOIN newpagerelation AS pr2 ON (pr.user= pr2.user and pr2.newchildid=pr.newchildid and pr2.newfatherid=" + newfid + ")" + " SET pr.newfatherid=" + newfid + " WHERE tp1.idpages= " + newchid + " AND pl1.newpagelevel=" + (maxlevel + 1) + " AND pr.user=" + userid + " AND pr.upd=1 AND pr2.newfatherid is null"; textbox1.appendtext("step 3: " + updatestatement2 + "\n\n"); updatecommand2 = new OleDbCommand(updateStatement2, aconnection); updatecommand2.executenonquery(); //MessageBox.Show(updateStatement2); //step4. // EPEIDI MPOREI NA PROKYPSOUN PERIERGES AUTOSYSXETISEIS // OPOU PATERAS=PAIDI // dld opou proekypse sxesi me komvo na einai pateras tou eautou tou // updatestatement2 = "UPDATE newpagerelation SET newchildid=" + newfid + " WHERE newfatherid=newchildid AND newfatherid=" + newchid + " AND user=" + userid; textbox1.appendtext("step 4.1: " + updatestatement2 + "\n\n"); updatecommand2 = new OleDbCommand(updateStatement2, aconnection); try updatecommand2.executenonquery(); catch // textbox1.appendtext("step 4.1: oups"); //MessageBox.Show(updateStatement2); 91

92 updatestatement2 = "UPDATE newpagerelation SET newchildid=" + newchid + " WHERE newfatherid=newchildid AND newfatherid=" + newfid + " AND user=" + userid; textbox1.appendtext("step 4.2: " + updatestatement2 + "\n\n"); updatecommand2 = new OleDbCommand(updateStatement2, aconnection); try updatecommand2.executenonquery(); catch //textbox1.appendtext("step 4.2: oups"); //MessageBox.Show(updateStatement2); PAIDI //step5. // ALLAKSE TA EPIPEDA STON PATERA KAI STO // PATERAS->maxlevel-1, PAIDI->maxlevel updatestatement2 = " UPDATE newpagelevels SET newpagelevel=" + maxlevel + " WHERE newpageid=" + newchid + " AND newpagelevel=" + (maxlevel + 1) + " AND user=" + userid; textbox1.appendtext("step 5.1: " + updatestatement2 + "\n\n"); updatecommand2 = new OleDbCommand(updateStatement2, aconnection); updatecommand2.executenonquery(); //MessageBox.Show(updateStatement2); updatestatement2 = " UPDATE newpagelevels SET newpagelevel=" + (maxlevel+1) + " WHERE newpageid=" + newfid + " AND newpagelevel=" + maxlevel + " AND user=" + userid; textbox1.appendtext("step 5.2: " + updatestatement2 + "\n\n"); updatecommand2 = new OleDbCommand(updateStatement2, aconnection); updatecommand2.executenonquery(); //MessageBox.Show(updateStatement2); //step6. // KANE SET PALI TO PEDIO upd=1 updatestatement2 = " UPDATE newpagerelation SET upd=1 WHERE user=" + userid; textbox1.appendtext("step 6: " + updatestatement2 +"\n\n"); updatecommand2 = new OleDbCommand(updateStatement2, aconnection); updatecommand2.executenonquery(); selectstatement6 = "SELECT TOP 1 [tp1].[idpages], [tp1].[url], [pl1].[newpagelevel], [tp2].[url], [pl2].[newpagelevel], [pr].*, [u1].[ra], [u2].[ra] FROM [totalpages] AS tp1, [totalpages] AS tp2, [newpagerelation] AS pr, [newpagelevels] AS pl1, [newpagelevels] AS pl2, [userra] AS u1, [userra] AS u2 WHERE [tp1].[idpages]=[pr].[newfatherid] And [tp2].[idpages]=[pr].[newchildid] And [pl1].[newpageid]=[pr].[newfatherid] And [pl2].[newpageid]=[pr].[newchildid] And [u1].[userofpage]=[pr].[user] And [pl1].[user]=[pr].[user] And 92

93 [pl2].[user]=[pr].[user] And [u2].[userofpage]=[pr].[user] And [pr].[user]=" + userid + " And [pl1].[newpagelevel]=" + maxlevel + " And [u1].[page]=[pr].[newfatherid] And [u2].[page]=[pr].[newchildid] AND [u2].[ra]>[u1].[ra] AND [pl2].[newpagelevel]>[pl1].[newpagelevel] ORDER BY [u2].[ra] DESC, [u1].[ra]"; selectcommand6 = new OleDbCommand(selectStatement6, aconnection); selreader = selectcommand6.executereader(); selreader.close(); maxlevel = maxlevel - 1; string selectstatement12 = "SELECT [tp1].[idpages] as fid, [tp1].[url] as furl, [pl1].[newpagelevel] as flvl, [tp2].[idpages] as chid, [tp2].[url] as churl, [pl2].[newpagelevel] as chlvl, [tp2].[external], [u].[ipaddress] as uip FROM [totalpages] AS [tp1], [totalpages] AS [tp2], [newpagerelation] AS pr, [newpagelevels] AS pl1, [newpagelevels] AS pl2, [userra] AS u1, [userra] AS u2, [users] as u WHERE [tp1].[idpages]=[pr.newfatherid] And [tp2].[idpages]=[pr.newchildid] And [pl1].[newpageid]=[pr.newfatherid] And [pl2].[newpageid]=[pr].[newchildid] And [u1].[userofpage]=[pr].[user] And [pl1].[user]=[pr].[user] And [pl2].[user]=[pr].[user] And [u2].[userofpage]=[pr].[user] And [pr].[user]=" + userid + " And [u1].[page]=[pr].[newfatherid] And [u2].[page]=[pr].[newchildid] And [u].[userid]=[pr].[user] ORDER BY [pl1].[newpagelevel], [pl2].[newpagelevel], [tp2].[external]"; OleDbCommand selectcommand12 = new OleDbCommand(selectStatement12, aconnection); OleDbDataReader areader2 = selectcommand12.executereader(); textbox1.appendtext("\n"); textbox1.appendtext("\n"); treeview1.nodes.clear(); while (areader2.read()) textbox1.appendtext(areader2[7].tostring() + ";" + areader2[1].tostring() + ";" + areader2[2].tostring() + ";" + areader2[4].tostring() + ";" + areader2[5].tostring() + "\n"); strread = areader2[1].tostring(); TreeNode nodparent = FindNodeByValue(treeView1, strread); if (nodparent == null) TreeNode nodparent_ = treeview1.nodes.add(strread); strread = areader2[4].tostring(); TreeNode nodchild = nodparent_.nodes.add(strread); int ext = Convert.ToInt32(aReader2[6].ToString()); if (ext == 1) nodchild.forecolor = System.Drawing.Color.Red; 93

94 int flvl = Convert.ToInt32(aReader2[2].ToString()); int chlvl = Convert.ToInt32(aReader2[5].ToString()); if (chlvl == flvl) nodchild.forecolor = System.Drawing.Color.SteelBlue; if (chlvl < flvl) nodchild.forecolor = System.Drawing.Color.Gray; else strread = areader2[4].tostring(); TreeNode nodchild = nodparent.nodes.add(strread); int ext = Convert.ToInt32(aReader2[6].ToString()); if (ext == 1) nodchild.forecolor = System.Drawing.Color.Red; int flvl = Convert.ToInt32(aReader2[2].ToString()); int chlvl = Convert.ToInt32(aReader2[5].ToString()); if (chlvl == flvl) nodchild.forecolor = System.Drawing.Color.SteelBlue; if (chlvl < flvl) nodchild.forecolor = System.Drawing.Color.Gray; areader2.close(); //////////////////////////////////////// aconnection.close(); return; private int readuid() int counter = 0; for (int i = 0; i <= (checkedlistbox1.items.count - 1); i++) if (checkedlistbox1.getitemcheckstate(i) == CheckState.Checked) counter = counter + 1; if (counter > 1) MessageBox.Show("only one selection please"); 94

95 return -1; else if (counter == 0) MessageBox.Show("you must select one user according his ip address"); return -2; else if (counter == 1) MessageBox.Show("processing IP"); ipadr = checkedlistbox1.checkeditems[0].tostring(); OleDbConnection aconnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\diplo2012\\basic1.mdb"); aconnection.open(); string selectstatement2 = "SELECT userid FROM users WHERE users.ipaddress ='" + ipadr + "'"; // MessageBox.Show(selectStatement2); OleDbCommand selectcommand = new OleDbCommand(selectStatement2, aconnection); OleDbDataReader areader = selectcommand.executereader(); //se sxolia while (areader.read()) userid = Convert.ToInt32(aReader[0].ToString()); aconnection.close(); return 1; Παρουσίαση Συστήματος Τo σύστημα (Reorganization Software) περιλαμβάνει ένα μενού (Tools) με τρεις βασικές επιλογές (Crawl Site, Parse Log File και Optimize) όπως φαίνεται στην εικόνα 19. Με την επιλογή «Crawl Site» ο χρήστης εισάγει την αρχική σελίδα του Site ώστε να βρεθεί και να αποθηκευτεί η δομή του στη βάση δεδομένων. Η δεντρική μορφή του Site απεικονίζεται στο παράθυρο (εικόνα 20). Στο αριστερό τμήμα του παραθύρου απεικονίζεται η δομή του Site όπως τη δημιουργεί ο Crawler ενώ στο δεξιό η τελική δομή με τα επίπεδα των σελίδων που θα χρησιμοποιηθεί για την αναδιοργάνωση. Η δεύτερη επιλογή (Parse Log File) διαβάζει το log αρχείο (εικόνα 21) και αποθηκεύει στη βάση τις απαραίτητες πληροφορίες με τις προσπελάσεις ανά χρήστη (ουσιαστικά ανά διεύθυνση IP). Μπορεί επίσης να οριστεί ο ελάχιστος χρόνος που απαιτείται για να θεωρηθεί ότι μια σελίδα δεν έχει προσπελαστεί τυχαία από τον χρήστη και επομένως να καταμετρηθεί στον υπολογισμό των ΑΑ. Με την τρίτη επιλογή 95

96 (Optimize) γίνεται αναδιοργάνωση του Site για τον χρήστη που θα επιλεχθεί από τους διαθέσιμους χρήστες που είχαν καταγραφεί στο log αρχείο και οι οποίοι παρουσιάζονται σε μια λίστα επιλογών. Κάθε φορά μπορεί να επιλεχθεί μόνο ένας χρήστης. Αφού επιλεχθεί ο χρήστης μπορούμε να πατήσουμε το κουμπί «Reorganize» για να γίνει η αναδιοργάνωση. Μετά την αναδιοργάνωση παρουσιάζεται δίπλα στην αρχική δομή του Site η νέα δομή (δεξιά όπως φαίνεται στην εικόνα 22) σε επίσης δεντρική μορφή για να γίνεται καλύτερα η σύγκριση (εικόνα 21). Επίσης τυπώνονται οι απαραίτητες πληροφορίες (στο κάτω μέρος του παραθύρου) με τις αλλαγές που έγιναν στη δομή του Site ώστε αυτές να χρησιμοποιηθούν στην αναδιοργάνωση του Site από τον διαχειριστή. Εικόνα 19:Το Λογισμικό συστήματος: Το βασικό μενού επιλογών Εικόνα 20:Μετά το indexing 96

97 Εικόνα 21:Το Log file parsing Εικόνα 22: Η αναδιοργάνωση του Site για το IP

98 ΚΕΦΑΛΑΙΟ 7 ΕΦΑΡΜΟΓΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΝΑΔΙΟΡΓΑΝΩΣΗΣ ΣΕ ΠΕΙΡΑΜΑΤΙΚΟ WEB SITE. Στο προηγούμενο κεφάλαιο παρουσιάστηκε αναλυτικά το σύστημα αναδιοργάνωσης της δομής ενός Site με στόχο την εξατομίκευση του περιεχομένου του για κάθε χρήστη του Site με βάση τις προτιμήσεις του όπως αυτές καταγράφηκαν για κάποια συγκεκριμένη χρονική περίοδο στο log αρχείο που διατηρεί ο Server. Στη συνέχεια παρουσιάζεται η πειραματική εφαρμογή του συστήματος σε συγκεκριμένο Web Site και ο τρόπος αξιοποίησης των στοιχείων της νέας δομής ώστε να διευκολύνεται η πρόσβαση του χρήστη στις σελίδες που τον ενδιαφέρουν περισσότερο. 7.1 Η διαδικασία αναδιοργάνωσης του Site Το Web Site που χρησιμοποιήθηκε για τις ανάγκες εκπόνησης αυτής της εργασίας είναι το Site του Κέντρου Τηλεματικής Westgate ( Το log αρχείο που χρησιμοποιήθηκε περιλαμβάνει τα στοιχεία πρόσβασης των χρηστών στα περιεχόμενα του Web Server κατά τη διάρκεια ενός μήνα ούτως ώστε να είναι πιο αποτελεσματική η αναδιοργάνωση του Site Η ανάλυση του Site Το πρώτο και βασικό στάδια της διαδικασίας αναδιοργάνωσης της δομής του Site είναι η εύρεση της δομής του με τη χρήση του Crawler και η αποθήκευση των σχέσεων των σελίδων καθώς και του βάθους στο οποίο βρίσκονται στη βάση δεδομένων. Στην εικόνα 23 απεικονίζεται η αρχική δομή του Site (αριστερά) Η ανάλυση του Log Αρχείου Όπως αναφέρθηκε στο προηγούμενο κεφάλαιο η ανάλυση του Log αρχείου αποτελεί το επόμενο στάδιο της διαδικασίας αναδιοργάνωσης της δομής του site. Ο log parser που υλοποιήθηκε διαβάζει με τη σειρά τις γραμμές του αρχείου διασπώντας τις στα πεδία που συνθέτουν την κάθε πρόσβαση. Από τα πεδία αυτά καταγράφονται για κάθε χρήστη (διεύθυνση IP) οι προσπελάσεις στις σελίδες του Site (ΑΑ). Επίσης γίνεται και ο υπολογισμός των σχετικών προσπελάσεων (RA) για κάθε σελίδα και ανά χρήστη που θα χρησιμοποιηθούν στο επόμενο στάδιο από τον αλγόριθμο βελτιστοποίησης της δομής του site. 98

99 Εικόνα 23: Η δομή του Site πριν και μετά την αναδιοργάνωση Η αναδιοργάνωση του Site στο σύστημα Με την επιλογή της διεύθυνσης IP μπορεί να επιλεχθεί ο χρήστης για τον οποίο θα γίνει βελτιστοποίηση της δομής του Site. Στην εικόνα 23 φαίνεται η νέα δομή που προτείνεται για το site με βάση τις επιλογές του συγκεκριμένου χρήστη όπως αυτές υπολογίστηκαν από την ανάλυση του log αρχείου. Τα στοιχεία των μεταβολών που έγιναν και αφορούν την αλλαγή των σχέσεων μεταξύ των σελίδων καθώς και το νέο βάθος στο οποίο βρίσκονται τυπώνονται στο κάτω μέρος του παραθύρου στο σύστημα αναδιοργάνωσης και θα χρησιμοποιηθούν στη συνέχεια για τη βελτιστοποίηση του Site Παρουσίαση της νέας δομής του Site Το Site χωρίς την εφαρμογή της αναδιοργάνωσης φαίνεται στην εικόνα 24. Οι σελίδες του Site περιλαμβάνουν κάποιες βασικές επιλογές που δεν αλλάζουν και αυτή η μορφή θα πρέπει να διατηρηθεί. Για τη βελτιστοποίηση του Site χρησιμοποιήθηκε ένα μενού με συνδέσμους του Site που προτείνονται στο χρήστη με βάση την αναδιοργάνωση που έγινε και ανάλογα με τη θέση (σελίδα) που βρίσκεται. Έτσι όταν συνδεθεί ο χρήστης για τον οποίο έγινε η αναδιοργάνωση, η αρχική σελίδα θα είναι αυτή που παρουσιάζεται στην εικόνα 25. Η διαφορά της με τη σελίδα της εικόνας 24 είναι ότι για τον συγκεκριμένο χρήστη εμφανίζεται μια νέα επιλογή στο αριστερό τμήμα της σελίδας που περιλαμβάνει τις προτάσεις (Recommendations) για τις σελίδες του Site με βάση τη βελτιστοποίηση που έγινε από το σύστημα αναδιοργάνωσης. Αυτό που αξίζει 99

100 να σημειωθεί είναι ότι οι συστάσεις μεταβάλλονται καθώς ο χρήστης μετακινείται στις σελίδες του Site (εικόνες 26, 27). Εικόνα 24:Το Site πριν την αναδιοργάνωση Προσθήκη προτάσεων Εικόνα 25:Το site μετά την αναδιοργάνωση για συγκεκριμένο χρήστη 100

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΔΟΥΒΛΕΤΗΣ ΧΑΡΑΛΑΜΠΟΣ ΕΠΙΒΛΕΠΟΝΤΕΣ ΚΑΘΗΓΗΤΕΣ Μαργαρίτης Κωνσταντίνος Βακάλη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάκληση Πληποφοπίαρ. Διδάζκων Δημήηριος Καηζαρός

Ανάκληση Πληποφοπίαρ. Διδάζκων Δημήηριος Καηζαρός Ανάκληση Πληποφοπίαρ Διδάζκων Δημήηριος Καηζαρός Διάλεξη 18η: 17/05/2017 1 Η μέθοδος BrowseRank 2 Εισαγωγή Η page importance, που αναπαριστά την αξία μιας σελίδας του Web, είναι παράγων-κλειδί για την

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μελέτη του αλγορίθμου ομαδοποίησης k-means σε δεδομένα του παγκόσμιου ιστού

Μελέτη του αλγορίθμου ομαδοποίησης k-means σε δεδομένα του παγκόσμιου ιστού Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Πληροφορικής Μελέτη του αλγορίθμου ομαδοποίησης k-means σε δεδομένα του παγκόσμιου ιστού Διπλωματική εργασία της Ακακιάδου Γεωργίας Επιβλέπων : Παπαδημητρίου

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ Χρήστος Στασινός ουλεύοντας με τη Microsoft Access ΑΘΗΝΑ Κάθε γνήσιο αντίγραφο έχει την υπογραφή του συγγραφέα Έκδοση 1η, Copyright 1998 Έκδοση 2η, Copyright 2007 ISBN: 978-960-8105-97-3 ΕΚΔΟΣΕΙΣ ΝΕΩΝ

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

EBSCOhost Research Databases

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

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

Περιεχόμενα. 2 Αριθμητικά συστήματα

Περιεχόμενα. 2 Αριθμητικά συστήματα Περιεχόμενα Πρόλογος 1 Εισαγωγή 1.1 Το μοντέλο Turing 1.2 Το μοντέλο von Neumann 1.3 Συστατικά στοιχεία υπολογιστών 1.4 Ιστορικό 1.5 Κοινωνικά και ηθικά ζητήματα 1.6 Η επιστήμη των υπολογιστών ως επαγγελματικός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web Mining. Χριστίνα Αραβαντινού Ιούνιος 2014

Web Mining. Χριστίνα Αραβαντινού Ιούνιος 2014 Web Mining Χριστίνα Αραβαντινού aravantino@ceid.upatras.gr Ιούνιος 2014 1 / 34 Χριστίνα Αραβαντινού Web Mining Περιεχόµενα 1 2 3 4 5 6 2 / 34 Χριστίνα Αραβαντινού Web Mining Το Web Mining στοχεύει στην

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

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

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

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

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών Α.Ε.Ι.

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών Α.Ε.Ι. Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών Α.Ε.Ι. Παραδοτέο: Δημοσιότητα Ανάλυση Αρχείων Κίνησης Πληροφοριακού Κόμβου submit-atlas.grnet.gr Σελίδα 1 από 164 Σελίδα 2 από 164 Σύνοψη H

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

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Περιεχόµενα World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών Εισαγωγή Ιστορική Αναδροµή Το ιαδίκτυο και το WWW Υπερκείµενο Εντοπισµός πληροφοριών στο WWW Search Engines Portals Unicode Java Plug-Ins 1 2

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

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

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

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

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

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

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

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

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

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

Στρατηγική ανάπτυξη δικτυακού κόμβου

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

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

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

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

Βασικές Έννοιες Web Εφαρμογών

Βασικές Έννοιες Web Εφαρμογών ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Βασικές Έννοιες Web Εφαρμογών Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου Περιεχόμενα

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

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) ΕΡΓΑΣΙΑ (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) Τίτλος: Εφαρμογή Διαδικτύου Ηλεκτρονικού Καταστήματος Ζητούμενο: Να αναπτυχθεί web εφαρμογή,

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

ΔΙΑΔΙΚΤΥΑΚΟ ΣΥΣΤΗΜΑ ΒΕΛΤΙΣΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΝΕΡΓΕΙΑΚΩΝ ΠΟΡΩΝ E.M.I.R. - Energy Management & Intelligent Reporting

ΔΙΑΔΙΚΤΥΑΚΟ ΣΥΣΤΗΜΑ ΒΕΛΤΙΣΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΝΕΡΓΕΙΑΚΩΝ ΠΟΡΩΝ E.M.I.R. - Energy Management & Intelligent Reporting ΔΙΑΔΙΚΤΥΑΚΟ ΣΥΣΤΗΜΑ ΒΕΛΤΙΣΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΝΕΡΓΕΙΑΚΩΝ ΠΟΡΩΝ E.M.I.R. - Energy Management & Intelligent Reporting Διαδικτυακό OLAP Σύστημα Λήψης Αποφάσεων και δημιουργίας έξυπνων προσαρμοστικών γραφημάτων

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

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Βάση δεδομένων είναι συσχετισμένα μεταξύ τους δεδομένα, οργανωμένα σε μορφή πίνακα. Οι γραμμές του πίνακα αποτελούν τις εγγραφές και περιλαμβάνουν τις πληροφορίες για μια οντότητα. Οι

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

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

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

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

Μεταπτυχιακή Διατριβή

Μεταπτυχιακή Διατριβή Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Υπηρεσία Αυτόματης Ανάκτησης Συνδεδεμένης Δομής Θεματικών Επικεφαλίδων μέσω

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

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

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

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

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER 4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER Σκοπός του κεφαλαίου είναι να παρουσιάσει μερικές εφαρμογές του Μετασχηματισμού Fourier (ΜF). Ειδικότερα στο κεφάλαιο αυτό θα περιγραφούν έμμεσοι τρόποι

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

Τεχνολογία Πολυμέσων. Ενότητα 6: Υπερκείμενο - Υπερμέσα. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα 6: Υπερκείμενο - Υπερμέσα. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογία Πολυμέσων Ενότητα 6: Υπερκείμενο - Υπερμέσα Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών Παραδοτέο: Αναφορά Συντήρησης και Λειτουργίας της Εφαρμογής Ανάλυση αρχείων κίνησης δικτυακού τόπου submit-meteggrafes.minedu.gov.gr Σύνοψη H αναφορά αυτή

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

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6.

MBR Ελάχιστο Περιβάλλον Ορθογώνιο (Minimum Bounding Rectangle) Το µικρότερο ορθογώνιο που περιβάλλει πλήρως το αντικείµενο 7 Παραδείγµατα MBR 8 6. Πανεπιστήµιο Πειραιώς - Τµήµα Πληροφορικής Εξόρυξη Γνώσης από εδοµένα (Data Mining) Εξόρυξη Γνώσης από χωρικά δεδοµένα (κεφ. 8) Γιάννης Θεοδωρίδης Νίκος Πελέκης http://isl.cs.unipi.gr/db/courses/dwdm Περιεχόµενα

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

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

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

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Παραδοτέο: Δημοσιότητα Ανάλυση Αρχείων Κίνησης Διαδικτυακής Πύλης atlas.grnet.gr Σελίδα 1 από 163 Διαδικτυακής Πύλης atlas.grnet.gr» Σύνοψη

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

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

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

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

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

Πληροφοριακά Συστήματα Διοίκησης Πληροφοριακά Συστήματα Διοίκησης Τρεις αλγόριθμοι μηχανικής μάθησης ΠΜΣ Λογιστική Χρηματοοικονομική και Διοικητική Επιστήμη ΤΕΙ Ηπείρου @ 2018 Μηχανική μάθηση αναγνώριση προτύπων Η αναγνώριση προτύπων

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

Πολιτική για τα cookies

Πολιτική για τα cookies Πολιτική για τα cookies Έκδοση 1.0 Πολιτική για τα cookies Εισαγωγή Πληροφορίες για τα cookies Η πλειονότητα των ιστοτόπων που επισκέπτεστε χρησιμοποιεί τα cookies για να βελτιώνει την εμπειρία του χρήστη,

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

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

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

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

Ενημέρωση για την προστασία προσωπικών δεδομένων Δήλωσης Προστασίας Προσωπικών Δεδομένων και Χρήσεως Cookies

Ενημέρωση για την προστασία προσωπικών δεδομένων Δήλωσης Προστασίας Προσωπικών Δεδομένων και Χρήσεως Cookies Ενημέρωση για την προστασία προσωπικών δεδομένων Δήλωσης Προστασίας Προσωπικών Δεδομένων και Χρήσεως Cookies http:// www.thomopoulos-spirits.gr Σας ευχαριστούμε που επισκέπτεστε τον διαδικτυακό τόπο http://www.thomopoulos-spirits.gr

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

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

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

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

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

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

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

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης Μικρομεσαίες Επιχειρήσεις και Καινοτομία Ηλεκτρονικό Εμπόριο H δυνατότητα των καταναλωτών και των εμπορικών καταστημάτων να κάνουν

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

CRM για Εκπαιδευτικούς Φορείς

CRM για Εκπαιδευτικούς Φορείς Cosmos Business Systems S.A. Group CRM για Εκπαιδευτικούς Φορείς CRM Εκπαιδευτικών Φορέων Το CRM Εκπαιδευτικών Φορέων έχει αναπτυχθεί για να ικανοποιήσει τις ανάγκες διαχείρισης του υποψήφιου πελατολογίου

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

Εισαγωγή στο Auto Moto Cube

Εισαγωγή στο Auto Moto Cube POWERED BY ACT Εισαγωγή στο Auto Moto Cube 1 Version: 01 Μάιος 2017 Εισαγωγή Εγχειριδίου Pylon-Auto Moto Cube Ο σκοπός της παρούσας σειράς εγχειριδίων για το Auto Moto Cube είναι η εισαγωγή του αναγνώστη

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

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

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

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

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

Συστήματα Πολυμέσων. Υπερκείμενα & Υπερμέσα A

Συστήματα Πολυμέσων. Υπερκείμενα & Υπερμέσα A Συστήματα Πολυμέσων Υπερκείμενα & Υπερμέσα A Συστήματα υπερκειμένων υπερμέσων (διαχείρισης πολυμεσικής πληροφορίας) αυτόνομα ή κατανεμημένα, διαχειρίζονται, αλληλεπιδραστικά (δευτέρου βαθμού), ένα τεράστιο

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

Προσαρμοζόμενα. μενα και Εξατομικευμένα Επικοινωνιακά Περιβάλλοντα. Κων/νος Μουρλάς Επίκουρος Καθηγητής Τμήμα Επικοινωνίας & ΜΜΕ

Προσαρμοζόμενα. μενα και Εξατομικευμένα Επικοινωνιακά Περιβάλλοντα. Κων/νος Μουρλάς Επίκουρος Καθηγητής Τμήμα Επικοινωνίας & ΜΜΕ Προσαρμοζόμενα μενα και Εξατομικευμένα Επικοινωνιακά Περιβάλλοντα Κων/νος Μουρλάς Επίκουρος Καθηγητής Τμήμα Επικοινωνίας & ΜΜΕ Η Προσαρμογή και η Εξατομίκευση Συστημάτων Ορισμός του Προβλήματος Βασικοί

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

Ευφυής Προγραμματισμός

Ευφυής Προγραμματισμός Ευφυής Προγραμματισμός Ενότητα 10: Δημιουργία Βάσεων Κανόνων Από Δεδομένα-Προετοιμασία συνόλου δεδομένων Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δημιουργία Βάσεων Κανόνων

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

Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους

Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους Η Μεταπτυχιακή Διατριβή παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου

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

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

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

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

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

Το σύστημα θα πρέπει να σχεδιαστεί με τρόπο που θα ικανοποιήσει τις απαιτήσεις του χρήστη εύκολα. Έγγραφο απαιτήσεων 1 Περιγραφή Συστήματος Η online ιστοσελίδα και η αντίστοιχη έκδοση για κινητά τηλέφωνα έχει ως στόχο να υποστηρίξει και να ενισχύσει το User Experience (UX) των επισκεπτών του e-museum,

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

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

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

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

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΕΡΕΥΝΑΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΕΠΙΧΕΙΡΗΣΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ «ΑΝΤΑΓΩΝΙΣΤΙΚΟΤΗΤΑ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ» ΚΑΙ ΠΕΡΙΦΕΡΕΙΩΝ ΣΕ ΜΕΤΑΒΑΣΗ ΕΘΝΙΚΟ ΣΤΡΑΤΗΓΙΚΟ ΠΛΑΙΣΙΟ

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

ΠΡΑΞΗ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» Κωδικός MIS ΥΠΟΕΡΓΟ: και α/α «01»

ΠΡΑΞΗ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» Κωδικός MIS ΥΠΟΕΡΓΟ: και α/α «01» ΠΡΑΞΗ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» Κωδικός MIS 327465 ΥΠΟΕΡΓΟ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» και α/α «01» ΕΠΙΧΕΙΡΗΣΙΑΚΟ

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

"Αθηνά" - Ερευνητικό Κέντρο Καινοτομίας στις Τεχνολογίες της Πληροφορίας, των Επικοινωνιών και της Γνώσης

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

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

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

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

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

Εφαρμοσμένη Βελτιστοποίηση

Εφαρμοσμένη Βελτιστοποίηση Εφαρμοσμένη Βελτιστοποίηση Ενότητα 1: Το πρόβλημα της βελτιστοποίησης Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το

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

Η απάντηση αυτή λαμβάνει 5 μονάδες. Και αφού βέβαια ο εξεταζόμενος γράψει το γράμμα της σωστής απάντησης μόνο.

Η απάντηση αυτή λαμβάνει 5 μονάδες. Και αφού βέβαια ο εξεταζόμενος γράψει το γράμμα της σωστής απάντησης μόνο. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΚΥΡΙΑΚΗ 23/04/2017- ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΟΔΗΓΙΕΣ ΑΥΤΟΔΙΟΡΘΩΣΗΣ ΘΕΜΑ Α Α1. α-σωστό

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

Data Mining: Στοχεύοντας στους σωστούς πελάτες. Αριστομένης Μακρής

Data Mining: Στοχεύοντας στους σωστούς πελάτες. Αριστομένης Μακρής Data Mining: Στοχεύοντας στους σωστούς πελάτες To CRM front-office πελατών Οι Προμηθευτές Οι Πελάτες ΟΟργανισμός Τροφοδότηση ενεργειών Μάρκετινγκ ΒΙ Απόταδεδομέναστηγνώση Επιχειρηματική Γνώση Επιχειρηματικοί

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

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

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

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

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES) ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES) ΣΕΡΕΣΙΩΤΗ ΜΑΡΙΑ ΕΞΑΜΗΝΟ : ΠΤΥΧΙΟ Α.Μ 1999 ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ κος ΛΕΩΝΙΔΑΣ ΤΣΙΑΝΤΗΣ ΔΩΡΟ -ΕΚΠΛΗΞΗ COOKIES ΤΙ ΕΙΝΑΙ ΤΑ COOKIES ΕΙΝΑΙ

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

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

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ

Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ Ρετσινάς Σωτήριος ΠΕ 1703 Ηλεκτρολόγων ΑΣΕΤΕΜ Τι είναι η ερευνητική εργασία Η ερευνητική εργασία στο σχολείο είναι μια δυναμική διαδικασία, ανοιχτή στην αναζήτηση για την κατανόηση του πραγματικού κόσμου.

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

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

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

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

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

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

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

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης.

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης. Γενικές Ρυθμίσεις Στην ενότητα αυτή θα περιγράψουμε τις λειτουργίες των Γενικών Ρυθμίσεων. Εκεί αποθηκεύονται όλες οι ρυθμίσεις του Guru CMS. Εάν κάνετε κλικ στο σύνδεσμο "Γενικές Ρυθμίσεις" από την κύρια

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

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

ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΟΥΒΛΕΤΗΣ ΧΑΡΑΛΑΜΠΟΣ ΟΜΑΔΟΠΟΙΗΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΧΡΗΣΤΩΝ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΔΟΥΒΛΕΤΗΣ ΧΑΡΑΛΑΜΠΟΣ ΤΙΤΛΟΣ: ΟΜΑΔΟΠΟΙΗΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΧΡΗΣΤΩΝ ΣΤΟ ΔΙΑΔΙΚΤΥΟ INTERNET DATA AND USERS CLUSTERING

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

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

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ9: Διαδίκτυο, Web2.0, WebX.0 9.1 Ιστορικά στοιχεία Από πού, πότε με ποια μορφή και με ποια αφορμή ξεκίνησε η λειτουργία του Διαδικτύου; Ξεκίνησε στην Αμερική, το 1969,

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

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

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

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

ΒΟΗΘΕΙΑ για τη χρήση του ιδρυματικού αποθετηρίου ΥΠΑΤΙΑ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

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

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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