ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ ΕΠΙΣΤΗΜΩΝ & ΖΩΗΣ» ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ

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

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ ΕΠΙΣΤΗΜΩΝ & ΖΩΗΣ» ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ ΕΠΙΣΤΗΜΩΝ & ΖΩΗΣ» ΤΜΗΜΑ ΙΑΤΡΙΚΗΣ «ΑΝΑΒΑΘΜΙΣΗ ΔΥΝΑΜΙΚΟΥ ΙΣΤΟΤΟΠΟΥ ΔΙΑΓΝΩΣΤΙΚΟΥ ΚΕΝΤΡΟΥ ΜΕ ΧΡΗΣΗ ΚΑΤΑΛΛΗΛΩΝ ΕΦΑΡΜΟΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΚΑΙ ΚΑΝΟΝΩΝ ΤΕΧΝΗΤΗΣ ΝΟΗΜΟΣΥΝΗΣ» ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του φοιτητή Κίτρου Κωνσταντίνου ΑΜ: 1559

2 Αφιερώνω αυτή τη Διπλωματική Εργασία: Στους Γονείς μου, Λένια και Μιχάλη Στα Αδέρφια μου, Σελήνη και Παναγιώτη Στη Σύντροφό μου, Μάχη Στο Κέντρο Παιδείας Επιστημών Πάτρας 2

3 ΠΡΟΛΟΓΟΣ Σε αυτήν την διπλωματική εργασία τέθηκε σαν στόχος η αναβάθμιση ενός ήδη υπάρχοντος διαδικτυακού τόπου με διεύθυνση ώστε να περιλαμβάνει εργαλεία και επιλογές για τον επισκέπτη που θα καταστήσουν την ιστοσελίδα, όχι απλά μια ενημερωτική στατική σελίδα, αλλά έναν διαδικτυακό τόπο που θα προσεγγίζει τον τομέα της υγείας και της λειτουργίας ενός ιατρικού διαγνωστικού κέντρου από πολλές σκοπιές. Στην πρωτόλεια μορφή του, ο διαδικτυακός τόπος με όνομα πεδίου ήταν ένας καθαρά ενημερωτικός ιστό-τόπος. Μέσα από αυτήν την διπλωματική εργασία αποκτά άλλη υπόσταση. Πιο συγκεκριμένα, για τον σχεδιασμό και την υλοποίηση της νέας σελίδας, χρησιμοποιήθηκε ένα σύστημα διαχείρισης περιεχομένου (CMS), το πολύ δημοφιλές Joomla!, στην αναβαθμισμένη του έκδοση (2.5). Ο λόγος ήταν να αποκτήσει ο ιστότοπος δυναμικότητα, εύκολη τροποποίηση, δυνατά εργαλεία διαχείρισης, να ξεφύγει από την στατικότητα που τον χαρακτήριζε. Σε μία δυναμική ιστοσελίδα, τόσο το περιεχόμενο όσο και η παρουσίαση διατηρούνται ξεχωριστά από την ίδια την ιστοσελίδα. Εν συνεχεία, χρησιμοποιήθηκαν εργαλεία, μέσα από τα οποία δημιουργήθηκαν ομάδες χρηστών. Αυτό έδωσε τη δυνατότητα στην ιστοσελίδα να «αναγνωρίζει» τον επισκέπτη και να του παρέχει πληροφορίες που είναι συναφείς με την ιδιότητά του (Ιδιώτης ή Ιατρός). Επίσης δημιουργήθηκαν κανόνες «τεχνητής νοημοσύνης» σε περιβάλλον CLIPS και ενσωματώθηκαν στην ιστοσελίδα με χρήση της μηχανής εξαγωγής συμπερασμάτων Jess, με σκοπό η ιστοσελίδα να αποκτήσει έναν «ψηφιακό σύμβουλο» για θέματα που αφορούν το ασθενή, όπως, για παράδειγμα, ένα έμπειρο σύστημα που θα μπορεί να τον συμβουλέψει κατάλληλα για τυχόν αντενδείξεις, σε περίπτωση που επιθυμεί να κάνει μία μαγνητική τομογραφία. Αυτοί οι κανόνες προέκυψαν από δέντρα απόφασης. Τα δέντρα απόφασης με τη σειρά τους σχηματοποιήθηκαν με τη βοήθεια του λογισμικού WEKA (έκδοση 3.6.9). Για την εξαγωγή των κανόνων χρησιμοποιήθηκαν Βάσεις Δεδομένων με περιεχόμενο σχετικό με τις δραστηριότητες των ασθενών στο Διαγνωστικό Κέντρο που αφορά η ιστοσελίδα. Επιπροσθέτως, έγινε πολύ μεγαλύτερη και προσεκτικότερη μελέτη για το τι θα περιλαμβάνει η νέα σελίδα του Διαγνωστικού Κέντρου. Ο νέος σχεδιασμός βασίστηκε σε δύο άξονες. Ο πρώτος που περιλαμβάνει οτιδήποτε θα επιθυμούσε να δει ένας Ιατρός από έναν διαδικτυακό τόπο ιατρικού περιεχομένου και ο δεύτερος που αφορά τον ασθενή ιδιώτη. Οι λέξεις κλειδιά που απαρτίζουν τον πρώτο άξονα είναι «επιστήμη», «ενημέρωση», «κίνητρο» για συνεργασία. Για τον δεύτερο άξονα σχεδιασμού οι αντίστοιχες είναι η «ενημέρωση», η «πρόληψη», και η «επικοινωνία». Θα ήθελα σε αυτό το σημείο να εκφράσω την απόλυτη ευγνωμοσύνη μου στο Διαγνωστικό Κέντρο «Β Διάγνωση», που εδρεύει στην Πάτρα, για την στήριξή του και την εμπιστοσύνη που μου έδειξαν τα μέλη του Διοικητικού Συμβουλίου της εταιρίας, καθότι, τόσο ο παλιός, όσο και ο νέος διαδικτυακός τόπος, αφορούν το εν λόγω Διαγνωστικό Κέντρο και επομένως είναι πάρα πολύ σημαντικό και για το ίδιο το Κέντρο να υπάρχει στο διαδίκτυο μία σελίδα αντάξια της ιστορίας του και των υπηρεσιών που προσφέρει. 3

4 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 Ο ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ (CMS)... 6 ΚΕΦΑΛΑΙΟ 2 Ο ΑΡΧΙΚΟΣ ΣΧΕΔΙΑΜΟΣ ΚΕΦΑΛΑΙΟ 3 Ο ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ (ΘΕΩΡΗΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ) ΚΕΦΑΛΑΙΟ 4 Ο ΕΝΑΡΞΗ ΥΛΟΠΟΙΗΣΗΣ ΣΧΕΔΙΑΣΜΟΥ ΤΟΥ ΙΣΤΟΤΟΠΟΥ ΕΠΙΛΟΓΗ ΚΑΤΑΛΛΗΛΟΥ ΠΡΟΤΥΠΟΥ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΤΟΥ ΜΕΝΟΥ ΚΕΦΑΛΑΙΟ 5 Ο ΕΞΕΛΙΞΗ ΚΑΙ ΑΝΑΒΑΘΜΙΣΗ ΕΙΣΑΓΩΓΗ ΣΤΑ ΕΝΘΕΜΑΤΑ (MODULES) ΕΠΙΣΚΟΠΗΣΗ ΤΩΝ ΕΝΘΕΜΑΤΩΝ ΤΟΥ SITE ΜΑΣ ΕΝΗΜΕΡΩΤΙΚΑ ΕΝΘΕΜΑΤΑ ΕΝΘΕΜΑΤΑ ΜΕ EXTERNAL LINKS ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ ΕΝΘΕΜΑΤΑ ΕΝΘΕΜΑ «ΓΙΝΕ ΜΕΛΟΣ!» ΕΝΘΕΜΑ «ΣΥΝΔΕΣΗ ΜΕΛΩΝ» ΔΙΑΧΩΡΙΣΜΟΣ ΤΩΝ ΜΕΛΩΝ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ ΠΡΟΣΒΑΣΗΣ ΚΕΦΑΛΑΙΟ 6 Ο EXPERT SYSTEM Ο ΨΗΦΙΑΚΟΣ ΣΥΜΒΟΥΛΟΣ EXPERT SYSTEMS ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΚΑΙ ΜΕΙΟΝΕΚΤΗΜΑΤΑ ΤΩΝ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ ΞΕΚΙΝΩΝΤΑΣ ΝΑ ΣΧΕΔΙΑΖΟΥΜΕ ΤΟΝ «ΨΗΦΙΑΚΟ ΣΥΜΒΟΥΛΟ» - Η ΔΗΜΙΟΥΡΓΙΑ ΤΗΣ ΒΑΣΗΣ ΓΝΩΣΗΣ WEKA: DATA MINING SOFTWARE CLIPS: Η ΣΥΓΓΡΑΦΗ ΤΟΥ ΚΩΔΙΚΑ CLIPS: ΣΗΜΑΝΤΙΚΕΣ ΕΝΤΟΛΕΣ CLIPS: ΚΑΤΑΛΗΓΟΝΤΑΣ ΣΤΟΝ ΚΩΔΙΚΑ ΓΙΑ ΤΟ ΠΡΩΤΟ ΔΙΚΟ ΜΑΣ ΈΜΠΕΙΡΟ ΣΥΣΤΗΜΑ CLIPS: ΤΡΕΧΟΝΤΑΣ ΤΟ ΈΜΠΕΙΡΟ ΣΥΣΤΗΜΑ / ΔΟΚΙΜΗ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΟΔΗΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ ΈΜΠΕΙΡΟΥ ΣΥΣΤΗΜΑΤΟΣ «ΜΠΟΡΩ ΝΑ ΚΑΝΩ ΜΑΓΝΗΤΙΚΗ ΤΟΜΟΓΡΑΦΙΑ;» ΜΕ ΑΦΕΤΗΡΙΑ ΤΟΝ ΙΣΤΟΤΟΠΟ ΜΑΣ ΈΜΠΕΙΡΟ ΣΥΣΤΗΜΑ: «ΠΩΣ ΠΡΕΠΕΙ ΝΑ ΠΡΟΕΤΟΙΜΑΣΤΩ ΓΙΑ ΤΟΝ ΥΠΕΡΗΧΟ;» / ΣΧΕΔΙΑΣΜΟΣ Ε.Σ. ΠΑΙΡΝΟΝΤΑΣ ΕΤΟΙΜΟΥΣ ΤΟΥΣ ΚΑΝΟΝΕΣ ΟΔΗΓΙΕΣ ΣΧΕΔΙΑΣΗΣ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ ΈΜΠΕΙΡΟΥ ΣΥΣΤΗΜΑΤΟΣ «ΠΩΣ ΠΡΕΠΕΙ ΝΑ ΠΡΟΕΤΟΙΜΑΣΤΩ ΓΙΑ ΤΟΝ ΥΠΕΡΗΧΟ;» ΜΕ ΑΦΕΤΗΡΙΑ ΤΟΝ ΙΣΤΟΤΟΠΟ ΜΑΣ

5 ΚΕΦΑΛΑΙΟ 7Ο QUIZ ΓΙΑ ΤΗΝ ΥΓΕΙΑ - ΧΡΗΣΗ JOOMLA COMPONENT ΜΕ ΕΠΕΞΕΡΓΑΣΙΑ PHP ΚΩΔΙΚΑ ΚΕΦΑΛΑΙΟ 8 Ο - ΑΞΙΟΛΟΓΗΣΗ ΤΟΥ ΙΣΤΟΤΟΠΟΥ ΜΑΣ ΑΠΟ ΤΕΛΙΚΟΥΣ ΧΡΗΣΤΕΣ ΠΑΡΑΡΤΗΜΑ

6 Κεφάλαιο 1 ο ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ (CMS) Οι μέθοδοι που μπορεί να χρησιμοποιήσει ένας σχεδιαστής ιστοσελίδων (web designer) ή ένας προγραμματιστής (web developer) ποικίλλουν σημαντικά. Το ποια (ή ποιες) εντέλει θα επιλέξει, εξαρτάται αποκλειστικά από τον αρχικό σχεδιασμό που έχει κάνει. Ο αρχικός σχεδιασμός περιλαμβάνει τους σκοπούς και τους στόχους που θέλουμε να επιτύχουμε με τη δημιουργία ενός ιστοτόπου. Μία σελίδα στο Διαδίκτυο μπορεί να έχει καθαρά ενημερωτικό χαρακτήρα, το περιεχόμενό της να είναι πολύ συγκεκριμένο, να μην απαιτεί συχνές ανανεώσεις, να θυμίζει περισσότερο μία παρουσίαση, παρά κάτι δυναμικό που προσαρμόζεται στην καθημερινότητα. Έναν τέτοιο χαρακτήρα είχε η ιστοσελίδα πριν ξεκινήσει αυτή η διπλωματική εργασία. Είναι, επομένως, ξεκάθαρο πως, για να αναβαθμιστεί σε μία δυναμική ιστοσελίδα, όπου θα υπάρχουν εργαλεία που θα την κάνουν πιο ελκυστική και πιο «έξυπνη», χρειάζεται μία πλατφόρμα διαχείρισης διαφορετική που θα μπορεί να παρέχει στον σχεδιαστεί όλες τις προαναφερθείσες δυνατότητες. Αυτός ακριβώς ήταν και ο λόγος επιλογής του Joomla! ως την πλατφόρμα διαχείρισης. Το Joomla! είναι ένα από τα δημοφιλέστερα συστήματα διαχείρισης περιεχομένου (CMS) ανοιχτού κώδικα σε όλο τον κόσμο. Διατίθεται δωρεάν μέσω διαδικτύου και για την εν λόγω διπλωματική εργασία προτιμήθηκε η έκδοση Τι εννοούμε, όμως, όταν λέμε «σύστημα διαχείρισης περιεχομένου» και τι εννοούμε όταν λέμε «ανοιχτού κώδικα»; Ένα σύστημα διαχείρισης περιεχομένου (CMS) είναι μία συλλογή αρχείων script, η λειτουργία των οποίων είναι να διαχωρίζουν το περιεχόμενο ενός ιστότοπου από την παρουσίασή του. Τα κύρια χαρακτηριστικά του είναι η ευκολία με την οποία γίνεται η δημιουργία και επεξεργασία του περιεχομένου και οι δυναμικά παραγόμενες ιστοσελίδες. Τα CMS είναι, στην πλειοψηφία τους, πολύ προηγμένα συστήματα και μπορούν να υποστηρίξουν δυνατότητες όπως οι ροές ειδήσεων, τα φόρουμ και τα ηλεκτρονικά καταστήματα. Ένα CMS διαχωρίζει τις αρμοδιότητες και τους ρόλους που επωμίζεται ο καθένας που εμπλέκεται στην ανάπτυξη μιας ιστοσελίδας. Αυτό σημαίνει πως οι σχεδι- 6

7 αστές μπορούν να επικεντρωθούν στο σχεδιασμό του ιστότοπου, ενώ άλλοι χρήστες, χωρίς ιδιαίτερη τεχνική κατάρτιση, να αναλάβουν την ευθύνη για την διαχείριση του περιεχομένου του. Τα περισσότερα CMS έχουν πολύ μεγαλύτερες δυνατότητες, αξιοποιώντας μία ευρεία γκάμα επεκτάσεων και πρόσθετων εργαλείων, τα οποία διαδραματίζουν καταλυτικό ρόλο στην λειτουργικότητα και την ελκυστικότητα του εκάστοτε διαδικτυακού τόπου. Όσον αφορά τα λογισμικά «ανοικτού κώδικα», αυτό που τα χαρακτηρίζει είναι το γεγονός πως ο κάτοχος των πνευματικών τους δικαιωμάτων (copyright) είναι ένας μη κερδοσκοπικός οργανισμός. Ένα έργο ανοιχτού κώδικα αναπτύσσεται από μία κοινότητα προγραμματιστών από όλο των κόσμο, οι οποίοι προσφέρουν εθελοντικά το χρόνο τους. Παραδείγματα λογισμικών ανοικτού κώδικα που θεωρούνται δημοφιλή είναι οι εφαρμογές Firefox, Openoffice, Google Chrome και πολλές άλλες. Ένα τέτοιο παράδειγμα λογισμικού ανοικτού κώδικα είναι και το Joomla!. Κάτοχος των πνευματικών δικαιωμάτων του Joomla! είναι ο μη κερδοσκοπικός οργανισμός Source Matters (www.opensourcematters.org). Χαρακτηριστικά και Δυνατότητες του Joomla! Η ακόλουθη λίστα αναφέρει ορισμένα από τα χαρακτηριστικά και δυνατότητες που προσφέρει η βασική εγκατάσταση του Joomla!: Απλές διαδικασίες δημιουργίας και αναθεώρησης του περιεχομένου χρησιμοποιώντας έναν συντάκτη κειμένων από το αποκαλούμε frontend Δημόσιο Τμήμα ή μέσω του μη προσβάσιμου στο κοινό τομέα ιστοτόπου, το λεγόμενο backend (Περιοχή Διαχείρισης) Δυνατότητες εγγραφής χρηστών και περιορισμού της εμφάνισης σελίδων με βάση το επίπεδο δικαιωμάτων του εκάστοτε χρήστη Έλεγχος των διαδικασιών επεξεργασίας και δημοσίευσης του περιεχομένου με βάση διάφορα επίπεδα δικαιωμάτων «διαχειριστών» Δημοσκοπήσεις Απλές φόρμες επικοινωνίας Δημόσια προσβάσιμα στατιστικά για τον ιστότοπο Λεπτομερή, «ιδιωτικά» στατιστικά κυκλοφορίας/επισκεψιμότητας για τον ιστότοπο Ενσωματωμένη λειτουργικότητα αναζήτησης περιεχομένου σε όλη την έκταση ενός ιστότοπου Δυνατότητες αποστολής , δημιουργίας pdf αρχείων και εκτύπωσης Ροές RSS Απλό σύστημα αξιολόγησης του περιεχομένου 7

8 Εμφάνιση ροών ειδήσεων (newsfeeds) από άλλους ιστότοπους Γίνεται, επομένως, αντιληπτό, πως το Joomla! διαθέτει ορισμένες εξαιρετικές λειτουργίες και δυνατότητες. Υποστηρίζεται, δε, από μία τεράστια κοινότητα προγραμματιστών και κατασκευαστών λογισμικού παγκοσμίως (πάνω από ) οι ο- ποίοι έχουν ήδη συνεισφέρει και πλέον επεκτάσεις (extensions) για το Joomla!, η μεγαλύτερη πλειοψηφία των οποίων διατίθεται δωρεάν. Στην ακόλουθη λίστα αναφέρονται ορισμένα από τα δημοφιλέστερα είδη επεκτάσεων (extensions) για το Joomla!: Φόρουμ (Forum) Εφαρμογές καλαθιού αγορών (shopping cart) Αποστολή ενημερωτικών δελτίων μέσω (Newsletters) Ημερολόγια (Calendars) Συλλογές φωτογραφιών (photo galleries) Φόρμες (forms) Κατάλογοι και προφίλ χρηστών Αρκετές από τις παραπάνω επεκτάσεις καθώς και μερικές ακόμη, έχουν χρησιμοποιηθεί και εγκατασταθεί στο Joomla! για τις ανάγκες του ιστοτόπου στον οποίο είναι αφιερωμένη αυτή τη διπλωματική εργασία. Αναλυτικότερη περιγραφή σχετικά με το ποιες επεκτάσεις ακριβώς χρησιμοποιήθηκαν και ποια είναι η λειτουργικότητά τους θα γίνει στη συνέχεια, αφού πρωτίστως καταστήσουμε σαφή το αρχικό σχεδιασμό που έγινε, την ανάγκη που μας οδήγησε στην χρήση της εκάστοτε επέκτασης, καθώς και, κυρίως αυτό, αφότου αναφέρουμε τους σκοπούς και τους στόχους της νέας, α- ναβαθμισμένης ιστοσελίδας που δημιουργήθηκε, προβάλλοντας αναλυτικά τις νέες δυνατότητες και εργαλεία που παρέχει στον επισκέπτη. Είναι προφανές, πως το Joomla! όπως και κάθε λογισμικό, απαιτεί εγκατάσταση σε έναν ηλεκτρονικό υπολογιστή. Η διαδικασία εγκατάστασης του Joomla! περιλαμβάνει αρκετά βήματα: 8

9 1. Απόκτηση του πακέτου αρχείων μιας οποιασδήποτε έκδοσης του Joomla! 2. Δημιουργία μιας Βάσης Δεδομένων MySQL 3. Αποσυμπίεση των αρχείων σε έναν server 4. Χρήση ενός οδηγού (wizard) για την ολοκλήρωση της εγκατάσταση Τα παραπάνω βήματα θα τα εξετάσουμε αναλυτικά σε άλλο κεφάλαιο της εργασίας. Σαν, όμως, μία εισαγωγική παρατήρηση σχετικά με το 3 ο βήμα «Αποσυμπίεση των αρχείων σε έναν server», υπάρχουν δύο εναλλακτικές πορείες. Μπορούμε είτε να αποσυμπιέσουμε τα αρχεία του Joomla! σε έναν λογαριασμό φιλοξενίας (δηλαδή σε έναν απομακρυσμένο εξυπηρετητή server), είτε να δημιουργήσουμε τον δικό μας server τρέχοντας αντίστοιχο λογισμικό web server στον υπολογιστή μας (π.χ. wampserver). Η δεύτερη μέθοδος, αποδεικνύεται ιδιαίτερα χρήσιμη όταν θέλουμε να κάνουμε πολλές δοκιμές πριν βγάλουμε ένα site «στον αέρα». Για τον λόγο αυτό άλλωστε προτιμήθηκε η δεύτερη μέθοδος για τους σκοπούς αυτής της διπλωματικής εργασίας. 9

10 Κεφάλαιο 2 Ο ΑΡΧΙΚΟΣ ΣΧΕΔΙΑΜΟΣ Ο αρχικός σχεδιασμός μιας ιστοσελίδας δεν άπτεται της ηλεκτρονικής διαχείρισης. Αυτό που επιβάλλεται να προηγηθεί, είναι καταγραφή των αναγκών. Πρέπει, επομένως, να σκεφτούμε και να καταγράψουμε προσεκτικά και δομημένα το τι θα περιλαμβάνει. Για να το κάνουμε σωστά θα πρέπει να σκεφτούμε αφενός την εταιρία ή το φυσικό πρόσωπο το οποίο εκπροσωπεί και αφετέρου τους λόγους για τους ο- ποίους κάποιος θα την επισκεπτόταν. Ένας ιστότοπος που αφορά ένα Διαγνωστικό Κέντρο εκτείνεται σε δύο άξονες: Ο πρώτος αφορά τους ασθενείς ιδιώτες. Ο δεύτερος αφορά τους Ιατρούς και γενικότερα οποιονδήποτε επιστημονικό κλάδο παρουσιάζει συνάφεια με τον τομέα της Υγείας. Ως εκ τούτου, το πρώτο σκέλος του αρχικού μας σχεδιασμού αφορούσε το τι θα εμπεριέχει χονδρικά ο εκάστοτε άξονας. Όσον αφορά τους Ασθενείς η λίστα ενδιαφέροντος που προέκυψε ήταν η εξής: Ενημέρωση για τα τμήματα εξετάσεων που διαθέτει το Διαγνωστικό Κέντρο Ενημέρωση σχετικά με τα ασφαλιστικά ταμεία με τα οποία συνεργάζεται / είναι συμβεβλημένο Στοιχεία επικοινωνίας Φωτογραφικό Υλικό που θα εμφανίζει τις εγκαταστάσεις του Διαγνωστικού Κέντρου Λίστα με τους Ιατρούς οι οποίοι εργάζονται στο Διαγνωστικό Κέντρο Υπηρεσίες που μπορούν να προσφερθούν στον ασθενή κατ οίκον Δυνατότητα εγγραφής ενός ασθενή ιδιώτη ως εξουσιοδοτημένο μέλος του ιστοτόπου που θα του παρέχεται από τον ιστότοπο πρόσβαση σε συγκεκριμένο περιεχόμενο που τον αφορά Quiz γενικών γνώσεων γύρω από την υγεία που θα βοηθούν τους ασθενείς ιδιώτες να μαθαίνουν σημαντικές πληροφορίες όσον αφορά σύγχρονα θέματα υγείας, παθήσεις κτλ (π.χ. αιμοδοσία, καρκίνος του προστάτη) Ψηφιακός Σύμβουλος που θα υποβάλλει στον ασθενή ιδιώτη κάποιες ερωτήσεις και σύμφωνα με τις απαντήσεις που θα δίνει ο χρήστης, θα γίνεται η εξαγωγή ενός συμπεράσματος συμβουλής σχετικά με την καταλληλότητα υποβολής ενός ασθενή σε μία εξέταση ή το πότε πρέπει να κλείσει ένα ραντεβού Πρωτοσέλιδα Εφημερίδων Έκτακτη τρέχουσα επικαιρότητα Ειδικές προσφορές για εξετάσεις 10

11 Προσαρμογή της ιστοσελίδας για διαχείρισή της μέσω κινητού τηλεφώνου Όσον αφορά τους Ιατρούς η λίστα ενδιαφέροντος που προέκυψε ήταν η εξής: Ενημέρωση για τα τμήματα εξετάσεων που διαθέτει το Διαγνωστικό Κέντρο Ενημέρωση σχετικά με τα ασφαλιστικά ταμεία με τα οποία συνεργάζεται / είναι συμβεβλημένο Στοιχεία επικοινωνίας Φωτογραφικό Υλικό που θα εμφανίζει τις εγκαταστάσεις του Διαγνωστικού Κέντρου Λίστα με τους Ιατρούς οι οποίοι εργάζονται στο Διαγνωστικό Κέντρο Δυνατότητα εγγραφής ενός Ιατρού ως εξουσιοδοτημένο μέλος του ιστοτόπου που θα του παρέχεται από τον ιστότοπο πρόσβαση σε συγκεκριμένο περιεχόμενο που τον αφορά Διαρκής Ιατρική ενημέρωση που ημερησίως θα ανανεώνεται και θα σχετίζεται με επιστημονικά ζητήματα που αφορούν τους Ιατρούς Ενημέρωση σχετικά με τα χαρακτηριστικά και τις δυνατότητες των νέων Ιατρικών Μηχανημάτων και Οργάνων που εγκαταστάθηκαν στο Διαγνωστικό Κέντρο Πρωτοσέλιδα Εφημερίδων Έκτακτη τρέχουσα επικαιρότητα Προσαρμογή της ιστοσελίδας για διαχείρισή της μέσω κινητού τηλεφώνου Όπως προκύπτει από τις δύο παραπάνω λίστες, υπάρχουν bullet points που α- φορούν τόσο τους Ιατρούς όσο και τους Ασθενείς. Αυτές οι θεματικές ενότητες θα πρέπει να είναι άμεσα προσβάσιμες, χωρίς κάποιο τύπο εγγραφής, δίχως να απαιτείται εξουσιοδοτημένος χρήστης να συνδεθεί στον διαδικτυακό τόπο του Διαγνωστικού Κέντρου με κάποιο όνομα χρήστη (username) και κωδικό πρόσβασης (password). Από εκεί και έπειτα όμως, υπάρχουν θέματα τα οποία δεν άπτονται του κοινού ενδιαφέροντος. Συνεπώς, είναι σημαντικό το site, στην αναβαθμισμένη του μορφή, να έχει την δυνατότητα να «ξεχωρίζει» έναν Ασθενή Ιδιώτη από έναν Ιατρό και, αφού κάνει αυτόν τον διαχωρισμό να τον παραπέμπει σε ένα τμήμα του ιστοτόπου, όπου θα εμφανίζονται links που θα αφορούν στοχοποιημένα την εκάστοτε ομάδα επισκεπτών. Τέλος, ανεξάρτητα από τις θεματικές ενότητες που αναφέρονται στις δύο παραπάνω λίστες, ένα σύγχρονο site είναι σημαντικό να περιλαμβάνει και ορισμένα ακόμη εργαλεία που εξυπηρετούν είτε στη διαφήμισή του, είτε στην εύκολη αναζήτηση τους από τον οποιονδήποτε χρήστη στο διαδίκτυο μέσω των μηχανών αναζήτησης (π.χ. Google). Τέτοια παραδείγματα είναι η ανάρτηση στο side κάποιας μπάρας κοινωνικής δικτύωσης (π.χ. facebook, twitter, linkedin κτλ), καθώς επίσης και μία επιλογή 11

12 στην κεντρική σελίδα, που θα περιλαμβάνει «Συνδέσεις Links» με εξωτερικούς ιστοτόπους (external url) των οποίων το περιεχόμενο με κάποιον τρόπο σχετίζεται με το αντίστοιχο του ιστοτόπου τον οποίο εμείς σχεδιάζουμε. Αφού ολοκληρώσουμε την καταγραφή των αναγκών, καλούμαστε να αποφασίσουμε σχετικά με το λογισμικό που θα χρησιμοποιήσουμε για τον σχεδιασμό της ιστοσελίδας (web designing web developing software). Η επιλογή ενός τέτοιου προγράμματος (ή συνδυασμού αυτών) δεν είναι απλή υπόθεση. Είναι σημαντικό, όμως, το γεγονός πως έχουμε καταγράψει όλες μας τις ανάγκες σχετικά με τις υπηρεσίες πληροφορίες που θα περιλαμβάνει το site, επειδή με αυτή τη μέθοδο θα μπορέσουμε να αποφανθούμε για τα εργαλεία που χρειαζόμαστε ώστε να υλοποιήσουμε όλες τις παραπάνω ανάγκες. Όταν καλούμαστε να σχεδιάσουμε μία ιστοσελίδα η οποία έχει καθαρά ενημερωτικό χαρακτήρα (στατική), τότε προσανατολιζόμαστε στο να χρησιμοποιήσουμε ένα λογισμικό όσο το δυνατόν πιο απλό στη χρήση του, από το οποίο δεν θα έχουμε ιδιαίτερες απαιτήσεις. Ίσως οι μόνες απαιτήσεις για έναν ιστότοπο τέτοιου τύπου να είναι η εισαγωγή κειμένου και εικόνων, η δυνατότητα μιας ελκυστικής παρουσίασης τους και μια αξιοπρεπή δομή όλων αυτών των πληροφοριών σε links πάνω στην κεντρική σελίδα (home page). Όταν, όμως, ένας ιστότοπος δεν έχει μόνο ενημερωτικό χαρακτήρα, αλλά, αφενός ανανεώνεται συνεχώς (είναι δυναμικός) και αφετέρου απαιτεί εργαλεία αλληλεπίδρασης με τον χρήστη (ο χρήστης παρεμβαίνει στον ιστότοπο) τότε ένα λογισμικό τέτοιου τύπου δεν μας ικανοποιεί. Αν ανατρέξουμε, παραπάνω, στις θεματικές ενότητες που κατηγοριοποιήσαμε στους δύο άξονες, θα δούμε κάποιες που μια απλή εισαγωγή κειμένου και ίσως κάποιων εικόνων θα ήταν αρκετή. Υπάρχουν, ωστόσο, και κάποιες άλλες που για να υλοποιηθούν σε ένα ανταγωνιστικό πλαίσιο είναι απαραίτητη η τεχνογνωσία και η επιλογή του κατάλληλου εργαλείου υλοποίησης. Αν, λοιπόν, κατηγοριοποιούσαμε τις παραπάνω θεματικές ενότητες σε «ενημερωτικού περιεχομένου» και σε «ενότητες αλληλεπίδρασης με τον χρήστη», ανεξάρτητα με τον αν απευθύνονται σε Ασθενή Ιδιώτη ή σε Ιατρό, τότε ο διαχωρισμός θα ήταν ο εξής: «Ενότητες Ενημερωτικού Περιεχομένου» Ενημέρωση για τα τμήματα εξετάσεων που διαθέτει το Διαγνωστικό Κέντρο Ενημέρωση σχετικά με τα ασφαλιστικά ταμεία με τα οποία συνεργάζεται / είναι συμβεβλημένο Στοιχεία επικοινωνίας Λίστα με τους Ιατρούς οι οποίοι εργάζονται στο Διαγνωστικό Κέντρο Υπηρεσίες που μπορούν να προσφερθούν στον ασθενή κατ οίκον Πρωτοσέλιδα Εφημερίδων Έκτακτη τρέχουσα επικαιρότητα 12

13 Ενημέρωση σχετικά με τα χαρακτηριστικά και τις δυνατότητες των νέων Ιατρικών Μηχανημάτων και Οργάνων που εγκαταστάθηκαν στο Διαγνωστικό Κέντρου Ειδικές προσφορές για εξετάσεις Εάν οι απαιτήσεις μας σχετικά με την ιστοσελίδα που καλούμαστε να σχεδιάσουμε ήταν μόνο αυτές τις παραπάνω λίστας, δεν θα χρειαζόταν ένα λογισμικό όπως το Joomla!. Η αποστολή μας θα ήταν πάρα πολύ απλή και θα ήταν αρκετό ένα λογισμικό θα μπορούσε απλώς να διαχειρίζεται on line κείμενο και εικόνες. Στην λίστα που ακολουθεί με βάση τον τελευταίο διαχωρισμό μου κάναμε, παραθέτονται εκείνες οι θεματικές ενότητες που κάνουν το site «έξυπνο», - «διαδραστικό», επιτρέπουν σε στο χρήστη να παρεμβαίνει on line στο περιεχόμενό του και το site να «αντιδρά» ανάλογα με αυτήν του την παρέμβαση: «Ενότητες Αλληλεπίδρασης με τον Χρήστη - Επισκέπτη» Δυνατότητα εγγραφής ενός ασθενή ιδιώτη ως εξουσιοδοτημένο μέλος του ιστοτόπου που θα του παρέχεται από τον ιστότοπο πρόσβαση σε συγκεκριμένο περιεχόμενο που τον αφορά Δυνατότητα εγγραφής ενός Ιατρού ως εξουσιοδοτημένο μέλος του ιστοτόπου που θα του παρέχεται από τον ιστότοπο πρόσβαση σε συγκεκριμένο περιεχόμενο που τον αφορά Quiz γενικών γνώσεων γύρω από την υγεία που θα βοηθούν τους ασθενείς ιδιώτες να μαθαίνουν σημαντικές πληροφορίες όσον αφορά σύγχρονα θέματα υγείας, παθήσεις κτλ (π.χ. αιμοδοσία, καρκίνος του προστάτη) Ψηφιακός Σύμβουλος που θα υποβάλλει στον ασθενή ιδιώτη κάποιες ερωτήσεις και σύμφωνα με τις απαντήσεις που θα δίνει ο χρήστης, θα γίνεται η εξαγωγή ενός συμπεράσματος συμβουλής σχετικά με την καταλληλότητα υποβολής ενός ασθενή σε μία εξέταση ή το πότε πρέπει να κλείσει ένα ραντεβού Φωτογραφικό Υλικό που θα εμφανίζει τις εγκαταστάσεις του Διαγνωστικού Κέντρου ***Παρατήρηση: Ο λόγος που το φωτογραφικό υλικό του ιστότοπου εντάσσεται στις αλληλεπιδραστικές ενότητες έχει να κάνει με το ότι δεν θα πρόκειται για μια απλή παρουσίαση φωτογραφιών, αλλά για την χρήση ενός εξειδικευμένου εργαλείου που θα δίνει τη δυνατότητα στο χρήστη να περιηγείται στο φωτογραφικό album του site με κουμπιά περιήγησης, η ανάλυση και το μέγεθος θα προσαρμόζονται αυτόματα στα χαρακτηριστικά της εικόνας και η προβολή θα γίνεται σε λειτουργία flash. 13

14 Φτάνοντας στον επίλογο του αρχικού μας σχεδιασμού, καταλήγουμε στο συμπέρασμα πως είναι αναγκαία και επιβεβλημένη η χρήση των παρακάτω εργαλείων: Χρήση εργαλείου που θα «αναγνωρίζει» έναν χρήστη με βάση μία ιδιότητα που θα τον χαρακτηρίζει και θα του εμφανίζει τμήματα του site που τον αφορούν Χρήση εργαλείου που θα μπορεί να θέτει ένα quiz σε έναν επισκέπτη, θα του δίνει τη δυνατότητα απάντησης σε ερωτήσεις που θα του τίθενται και, φυσικά, θα μπορεί να αξιολογεί την ορθότητα αυτών των απαντήσεων και να παρέχει αντίστοιχη ανατροφοδότηση στον ιδιώτη που κάνει το quiz βάσει αυτής της αξιολόγησης Χρήση κανόνων Τεχνητής Νοημοσύνης. Με χρήση μίας Βάσης Δεδομένων της οποίας το περιεχόμενο θα είναι πραγματικό και θα πραγματεύεται πληροφορίες που αφορούν τους ασθενείς που επισκέπτονται το Διαγνωστικό Κέντρο, θα γίνει χρήση λογισμικού και αλγορίθμων για την εξαγωγή Δέντρων Απόφασης και, εν συνεχεία, μετατροπή αυτών των Δέντρων σε κανόνες μέσα από μία γλώσσα κανόνων. Το αποτέλεσμα αυτών θα καταλήγει σε ένα εργαλείο που θα μπορεί να τρέχει τον κώδικα σε web interface Χρήση εξειδικευμένου εργαλείου περιήγησης εικόνων Είναι, πλέον, προφανές, πως η πλατφόρμα μέσω από την οποία θα διαχειριστούμε και θα σχεδιάσουμε την ιστοσελίδα μας με βάση τις ανάγκες που έχουμε ήδη καταγράψει, θα πρέπει να υποστηρίζει όλα τα παραπάνω εργαλεία. Για την α- κρίβεια, θα πρέπει να υπάρχουν αυτά τα εργαλεία διαθέσιμα μέσω διαδικτύου ή στο εμπόριο, σχεδιασμένα κατάλληλα για να ενσωματώνονται στην πλατφόρμα διαχείρισης που θα επιλέξουμε και να συνεργάζονται αρμονικά με αυτήν. Παραδείγματα τέτοιων προγραμμάτων διαχείρισης και σχεδιασμού ιστοσελίδων είναι το Drupal, το Jupiter, το ContentNow το Joomla! και φυσικά υπάρχουν πολλά άλλα. Ο λόγος που τελικά καταλήγουμε στο Joomla! έχει να κάνει καθαρά με την εμπειρία του συντάκτη αυτής της διπλωματικής εργασίας, αφού η συντριπτική πλειοψηφία των ιστοσελίδων που έχει σχεδιάσει είναι σχεδιασμένες σε Joomla! Όσον αφορά τους κανόνες Τεχνητής Νοημοσύνης, ένα απλό εργαλείο το οποίο θα δρα συμπληρωματικά στο CMS (στη συγκεκριμένη περίπτωση στο Joomla!) δεν είναι αρκετό. Χρειάζεται μία Βάση Δεδομένων, από την οποία θα δημιουργήσουμε Δέντρα Απόφασης (decision trees) και στη συνέχεια θα εξάγουμε τους κανόνες σε μία γλώσσα προγραμματισμού. Γιατί, όμως, αυτούς τους κανόνες τους αποκαλούμε «Κανόνες Τεχνητής Νοημοσύνης»; Τι εννοούμε με τον όρο «Τεχνητή Νοημοσύνη»; Τι περιλαμβάνει; Και, εν πάση περιπτώσει, τι εννοούμε γενικότερα με το όρο «Νοημοσύνη»; Μπορεί ο υπολογιστής να παρουσιάζει στοιχεία οποιασδήποτε μορφής ευφυΐας; Πριν περάσουμε, λοιπόν, στο κομμάτι της υλοποίησης του site στον υπολογιστή, θα προσεγγίσουμε θεωρητικά στο επόμενο κεφάλαιο την «Τεχνητή Νοημοσύνη», προσπαθώντας να 14

15 δώσουμε κάποιες απαντήσεις στα παραπάνω ερωτήματα και, φυσικά, να δημιουργήσουμε νέους προβληματισμούς. 15

16 Κεφάλαιο 3 ο ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ (ΘΕΩΡΗΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ) Ένας από τους πρώτους ορισμούς που διατυπώθηκαν από τους Barr και Feigenbaum αναφέρει ότι: «Τεχνητή Νοημοσύνη είναι ο τομέας της επιστήμης των υπολογιστών, που ασχολείται με τη σχεδίαση ευφυών (νοημόνων) υπολογιστικών συστημάτων, δηλαδή συστημάτων που επιδεικνύουν χαρακτηριστικά που σχετίζονται με την νοημοσύνη στην ανθρώπινη συμπεριφορά». Εδώ δημιουργείται η ανάγκη να αποσαφηνιστεί αρχικά ο όρος «Νοημοσύνη». Στο ερμηνευτικό λεξικό του Cambridge η νοημοσύνη αναφέρεται ως «η ικανότητα για μάθηση, κατανόηση και κρίση ή αιτιολογημένη έκφραση γνώμης». Στο λεξικό Merriam-Webster αναφέρεται ότι «Νοημοσύνη είναι η ικανότητα για μάθηση ή η αντιμετώπιση νέων ή δύσκολων καταστάσεων». Στην περίπτωση των Η/Υ θα μπορούσαμε να ισχυριστούμε ότι είναι η μάθηση μέσω εμπειρίας (συνήθως μέσω παραδειγμάτων που παρέχονται από ένα δάσκαλο) όπως τα Νευρωνικά Δίκτυα και η αιτιολογημένη έκφραση γνώμης όπως τα Έμπειρα Συστήματα ή Συστήματα Εμπειρογνώμονες. Είναι προφανές, ότι η απόκτηση νοημοσύνης από τον υπολογιστή, απαιτεί ανθρώπινη παρέμβαση. Για περισσότερο από 2000 χρόνια, φιλόσοφοι όπως ο Αριστοτέλης, ο Ηράκλειτος, ο Descartes και άλλοι, προσπάθησαν να περιγράψουν τον μηχανισμό της μάθησης, της απομνημόνευσης, της όρασης, της αντίληψης και του συλλογισμού. Τα ερευνητικά πεδία τα οποία περικλείει η Τεχνητή Νοημοσύνη ακουμπούν ακριβώς πάνω σε αυτές τις δεξιότητες και κυρίως στην αντίληψη και την συλλογιστική. Παραδείγματα συστημάτων Τεχνητής Νοημοσύνης είναι το Ηλεκτρονικό Σκάκι (όπου ο άνθρωπος τίθεται αντιμέτωπος του Ηλεκτρονικού Υπολογιστή), τα παίγνια ικανοτήτων, η αυτόματη απόδειξη θεωρημάτων, η διάγνωση ασθενειών και άλλα. Συχνά, ε- ρευνητές από άλλες επιστημονικές περιοχές καταφεύγουν στην Τεχνητή Νοημοσύνη με σκοπό να βρουν εργαλεία για να αυτοματοποιήσουν τα λογικά βήματα που χρησιμοποιούν στην εργασία τους. Ο Alan Turing, ο οποίος θεωρείται ο πρώτος άνθρωπος που συνέλαβε την ιδέα της λειτουργίας μιας μηχανής, εμπνεύστηκε μία δοκιμασία το 1950, η οποία πήρε και το όνομά του (δοκιμασία Turing). Αυτή η δοκιμασία βασίζεται σε μία σειρά από ερωτήσεις που υποβάλει ένας άνθρωπος εξεταστής ταυτόχρονα σε έναν άνθρωπο και σε μία μηχανή, χωρίς να γνωρίζει εκ των προτέρων ποιος είναι τι. Αν στο τέλος ο εξεταστής δεν καταφέρει να ξεχωρίσει τον άνθρωπο από τη μηχανή, τότε η μηχανή πετυχαίνει τη δοκιμασία και θεωρείται ευφυής. Αν και η αποτελεσματικότητα της δοκιμασίας Turing εξαρτάται από πολλούς παράγοντες, θεωρείται μέχρι σήμερα ένα καλό μέτρο σύγκρισης της Φυσικής με την Τεχνητή Νοημοσύνη. Προσεγγίζοντας την Τεχνητή Νοημοσύνη ως τομέα της Επιστήμης των Υπολογιστών θα λέγαμε πως είναι ο τομέας εκείνος που ασχολείται με την σχεδίαση και την υλοποίηση προγραμμάτων τα οποία είναι ικανά να μιμηθούν τις ανθρώπινες γνωστικές ικανότητες, εμφανίζοντας έτσι χαρακτηριστικά που αποδίδουμε συνήθως σε ανθρώπινη συμπεριφορά, όπως για παράδειγμα η επίλυση προβλημάτων, η αντίληψη μέσω της όρασης, η μάθηση, η εξαγωγή συμπερασμάτων, η κατανόηση 16

17 φυσικής γλώσσας κτλ. Τα τελευταία χρόνια υπήρξαν σημαντικές εξελίξεις σε εφαρμογές της Τεχνητής Νοημοσύνης όπως η Ρομποτική, η Μηχανική Όραση, η Μηχανική Μάθηση και ο Σχεδιασμός Ενεργειών. Αυτή τη στιγμή υπάρχουν ευφυή συστήματα τα οποία βοηθούν το χρήστη στο να χρησιμοποιήσει ορισμένες εφαρμογές (όπως για παράδειγμα το Office Assistant), να αναζητήσει πληροφορία στο διαδίκτυο, να στείλει ένα μήνυμα ηλεκτρονικού ταχυδρομείου, να τηρήσει ένα ραντεβού, να συγκρίνει τιμές προϊόντων και πολλά άλλα. Στον Ψηφιακό Σύμβουλο που δημιουργήσαμε στον ιστότοπο του Διαγνωστικού Κέντρου Β Διάγνωση, έγινε μία προσπάθεια σχεδιασμού ενός έμπειρου συστήματος με μηχανική μάθηση. Μηχανική μάθηση ονομάζεται η δημιουργία μοντέλων ή προτύπων από ένα σύνολο δεδομένων, από ένα υπολογιστικό σύστημα. Έχουν αναπτυχθεί πολλές τεχνικές, γενικότερα, μηχανικής μάθησης, οι οποίες χρησιμοποιούνται ανάλογα με τη φύση του προβλήματος και εμπίπτουν σε ένα από τα παρακάτω δύο είδη: Μάθηση με επίβλεψη ή Μάθηση με παραδείγματα Μάθηση χωρίς επίβλεψη ή Μάθηση από παρατήρηση Στη Μάθηση με επίβλεψη (είδος μάθησης που αντιστοιχεί και στο έμπειρο σύστημά μας) το σύστημα καλείται να «μάθει» μία έννοια ή συνάρτηση από ένα σύνολο δεδομένων, η οποία αποτελεί περιγραφή ενός μοντέλου. Ονομάζεται έτσι επειδή θεωρείται ότι υπάρχει κάποιος «επιβλέπων», ο οποίος παρέχει την σωστή τιμή εξόδου της συνάρτησης, για τα δεδομένα που εξετάζονται. Αντίθετα, στην Μάθηση χωρίς επίβλεψη το σύστημα πρέπει μόνο του να α- νακαλύψει συσχετίσεις ή ομάδες σε ένα σύνολο δεδομένων, δημιουργώντας πρότυπα, χωρίς να είναι γνωστό αν υπάρχουν, πόσα και ποια είναι. Το μοντέλα περιγράφουν το σύνολο των δεδομένων που χαρακτηρίζονται και ως μοντέλα πρόβλεψης επειδή προβλέπουν την τιμή μιας μεταβλητής. Εκτός από τις δυνατότητες πρόβλεψης επιπλέον έχουν και κάποιες δυνατότητες πληροφόρησης επειδή δίνουν και ποιοτικές πληροφορίες για τα δεδομένα. Αντίθετα, τα πρότυπα έ- χουν τοπικό χαρακτήρα, δηλαδή το καθένα περιγράφει ένα μέρος των δεδομένων και χαρακτηρίζονται ως πρότυπα πληροφόρησης (informative patterns) επειδή περιγράφουν συσχετίσεις μεταξύ των δεδομένων. Για τους σκοπούς σχεδιασμού του δικού μας έμπειρου συστήματος, γράψαμε σε μορφή κώδικα κάποιους κανόνες. Αυτούς του κανόνες τους εξαγάγαμε από μία πραγματική Βάση Δεδομένων του Διαγνωστικού Κέντρου (ελαφρώς τροποποιημένη) μέσω αλγορίθμων παραγωγής Δέντρων Απόφασης. Τα Δέντρα Απόφασης είναι από τους πιο δημοφιλείς αλγόριθμους μάθησης και έχουν εφαρμοστεί αποτελεσματικά σε διάφορους τομείς, όπως διάγνωση ιατρικών περιστατικών, αξιολόγηση ρίσκου αποδοχής αίτησης για πιστωτική κάρτα, πρόβλεψη συμπεριφοράς καταναλωτή κτλ. Είναι μία μέθοδος για την προσέγγιση συναρτήσεων στόχων, που έχουν ως έξοδο διακριτές τιμές. Το αποτέλεσμα τους είναι μία δενδροειδής δομή που με γραφικό τρόπο περιγράφει τα δεδομένα και εναλλακτικά, για την βελτίωση της αναγνωσιμότη- 17

18 τάς του, μπορεί να αναπαρασταθεί και ως σύνολο κανόνων if then, που ονομάζονται κανόνες ταξινόμησης (classification rules). Κάθε κόμβος στο δέντρο ορίζει μία συνθήκη ελέγχου της τιμής κάποιου χαρακτηριστικού (attribute) των περιπτώσεων (instances) και κάθε κλαδί που φεύγει από τον κόμβο αυτό αντιστοιχεί σε μια διαφορετική διακριτή τιμή του χαρακτηριστικού αυτού. Μια περίπτωση ταξινομείται αρχίζοντας από την ρίζα και ακολουθώντας τα κλαδιά του δέντρου προς κάποιο φύλλο, το οποίο περιέχει και μία διακριτή τιμή της κατηγορίας. Σε κάθε κόμβο ελέγχεται η τιμή της περίπτωσης για το χαρακτηριστικό του κόμβου και ακολουθείται το αντίστοιχο κλαδί. Η αναπαράσταση που χρησιμοποιείται από τα δέντρα απόφασης είναι μία διάζευξη που αποτελείται από συζεύξεις περιορισμών στις τιμές των χαρακτηριστικών. Κάθε κομμάτι από τη ρίζα προς ένα φύλλο αντιστοιχεί σε συζεύξεις περιορισμών στις τιμές των χαρακτηριστικών. Το δέντρο, στο σύνολό του, εκφράζει τη διάζευξη αυτών των συζεύξεων, αφού αποτελείται από όλα τα εναλλακτικά μονοπάτια. Τα Δέντρα Απόφασης χρησιμοποιούνται για να προβλέψουν με κάποιο βαθμό ακρίβειας την τιμή της μεταβλητής που μοντελοποιούν με βάση τις τιμές των θεωρούμενων ανεξάρτητων μεταβλητών (χαρακτηριστικών). Το σημαντικότερό τους πλεονέκτημα, είναι η ευκολία με την οποία ερμηνεύονται. Ένας αλγόριθμος που θεωρείται από τους καταλληλότερους για σχηματισμό «δέντρων» τα οποία αναπαριστούν κανόνες που εξάγονται από μία Βάση Δεδομένων, είναι ο J48. Βασική του ικανότητα είναι να αποκλείει δεδομένα τα οποία δεν διαδραματίζουν κάποιο ρόλο στην εξαγωγή του κανόνα και άρα να οδηγείται στον σχηματισμό ενός δέντρου πολύ συνοπτικού και ουσιαστικού. Παράδειγμα ενός Δέντρου Απόφασης για το αν θα πάμε περίπατο 18

19 Κεφάλαιο 4 ο ΕΝΑΡΞΗ ΥΛΟΠΟΙΗΣΗΣ ΣΧΕΔΙΑΣΜΟΥ ΤΟΥ ΙΣΤΟΤΟΠΟΥ 4.1 ΕΠΙΛΟΓΗ ΚΑΤΑΛΛΗΛΟΥ ΠΡΟΤΥΠΟΥ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΤΟΥ ΜΕΝΟΥ Όταν σχεδιάζουμε έναν ιστότοπο, πολύ σημαντικό ρόλο διαδραματίζει το «ύφος» του. Με τον όρο «ύφος» εννοούμε τον συνδυασμό των χρωμάτων, τον τρόπο με τον οποίο προβάλλεται το περιεχόμενό του, καθώς και την ιεραρχία με την οποία το περιεχόμενο αυτό δομείται. Το Joomla, παρέχει την δυνατότητα χρήσης των λεγόμενων προτύπων (templates). Τα πρότυπα ελέγχουν την «εμφάνιση και αίσθηση» ενός βασιζόμενου στο Joomla ιστότοπου, συμπεριλαμβανομένων των φύλλων στυλ CSS και των εικόνων. Ορίζουν επίσης όλες τις θέσεις όπου μπορούν να φορτώνονται ενθέματα (modules) σε μία σελίδα. Ένα ένθεμα είναι συνήθως μία μίνι εφαρμογή, όπως για παράδειγμα η σύνδεση (login) των χρηστών, ή μία αυτοματοποιημένη λίστα εμφάνισης των πιο πρόσφατων αναρτήσεων. Η λογική λέει πως το πρότυπο εκείνο που θα ταιριάζει απόλυτα και θα δένει στο 100% με το ύφος του ιστοτόπου που θέλουμε να σχεδιάσουμε, θα είναι ένα πρότυπο που θα έχουμε σχεδιάσει εμείς. Παρόλα αυτά, στο διαδίκτυο υπάρχουν εκατομμύρια ήδη δημιουργημένα, διαφορετικά πρότυπα ειδικά σχεδιασμένα για το Joomla, που είναι πολύ δύσκολο να μην βρεθεί κάποιο που να ταιριάζει σε αυτό που θα επιθυμούσαμε να «φοράει» η ιστοσελίδα μας. Αμέτρητα site στο διαδίκτυο, επίσημα και ανεπίσημα, δίνουν την δυνατότητα στο χρήστη να κατεβάσει (download) και να εγκαταστήσει στο Joomla, το πρότυπο που επιθυμεί. Αρκεί σε μία μηχανή αναζήτησης (π.χ. Google) να εισάγουμε την φράση «Joomla Templates» και θα εμφανιστεί μία πλειάδα αποτελεσμάτων για να αναζητήσουμε το πρότυπο που μας κάνει. Υπάρχουν πρότυπα τα οποία διατίθενται στο διαδίκτυο δωρεάν και άλλα τα οποία θα πρέπει ο ενδιαφερόμενος να καταβάλει ένα τίμημα (χρηματικό ποσό) για να του δοθεί η δυνατότητα να τα κατεβάσει. Συνήθως τα πρότυπα εκείνα που απαιτούν χρήματα, συνοδεύονται και από κάποια ενσωματωμένα εργαλεία, όπως για παράδειγμα μία έτοιμη προβολή φωτογραφιών σε flash. Μπορούμε όμως, σαφέστατα, να βρούμε πρότυπα για το Joomla στο διαδίκτυο εντελώς δωρεάν και να ταιριάζουν ιδανικά στο «ύφος» που θέλουμε να προσδώσουμε στον ιστότοπό μας. Ένα τέτοιο δωρεάν πρότυπο αναζητήσαμε και βρήκαμε για τις ανάγκες σχεδιασμού του δικού μας ιστοτόπου. Τα κριτήρια με τα οποία το επιλέξαμε σχετίζονται με την ιδιότητα του φορέα που εκπροσωπεί η ιστοσελίδα μας. Μία ιστοσελίδα που παρουσιάζει τις λειτουργίες και δραστηριότητες ενός Διαγνωστικού Κέντρου, οφείλει να έχει ένα αυστηρά επαγγελματικό ύφος. Θα αποφεύγαμε, επομένως, ένα πρότυπο με πολλούς συνδυασμούς χρωμάτων, που θα αποπροσανατόλιζε τον επισκέπτη. Μία πολύ καλή ιδέα για να επιλέξουμε το κατάλληλο πρότυπο για την ιστοσελίδα μας 19

20 είναι να επισκεπτόμαστε αντίστοιχες ιστοσελίδες στο διαδίκτυο σχετικές με το αντικείμενο της δικής μας. Κάτι τέτοιο θα μας βοηθήσει να αποκτήσουμε μία πιο ξεκάθαρη εικόνα σχετικά με το πώς, για παράδειγμα, προβάλλεται ένα site που σχετίζεται με τον τομέα της υγείας. Επιπροσθέτως, ένα site που αφορά μία εταιρία επιχείρηση, είναι σημαντικό να περιλαμβάνει σε εμφανές σημείο και το logo της εταιρίας - επιχείρησης. Το logo με τη σειρά του αποτελείται από τους δικούς του συνδυασμούς χρωμάτων. Είναι σημαντικό, επομένως, το ιδανικό «πάντρεμα» του συνδυασμού των χρωμάτων του logo με των αντίστοιχων του προτύπου. Παρόλα αυτά, ένα πρότυπο στο Joomla δεν επιλέγεται μόνο για τους συνδυασμούς των χρωμάτων του. Πολύ σημαντικό κριτήριο αποτελεί το σε ποιες θέσεις μπορεί να φιλοξενήσει τα ενθέματα (modules) που αναφέραμε παραπάνω. Οι θέσεις που μπορούν βάσει των δυνατοτήτων του προτύπου να φιλοξενήσουν ενθέματα, καθορίζουν τη δομή του site και άρα είναι κάτι το οποίο πρέπει να λάβουμε πολύ σοβαρά υπόψη όταν επιλέγουμε ένα πρότυπο για τον σχεδιασμό ενός ιστοτόπου στο Joomla. Τα χρώματα τα οποία κυρίως ταιριάζουν στο Διαγνωστικό Κέντρο Β Διάγνωση, λαμβάνοντας υπόψη το logo της εταιρίας καθώς και τον κλάδο των υπηρεσιών υγείας στον οποίο υπάγεται είναι το μπλε, το άσπρο και το γκρι. Καταλήξαμε, λοιπόν, σε ένα πρότυπο που κατεβάσαμε δωρεάν από το διαδίκτυο και έχει το όνομα JustBussines-FJT. 20

21 Στην προηγούμενη εικόνα φαίνεται ένα demo αυτού του προτύπου που μας οδήγησε στην απόφαση να το επιλέξουμε. Το menu του στην κορυφή είναι χρώματος μπλε, ενώ το background του συνδυάζει χρωματισμούς του λευκού και του γκρι, τα χρώματα δηλαδή που επιθυμούμε και ταιριάζουν στο Διαγνωστικό Κέντρο. Επίσης, αν και δωρεάν, το συγκεκριμένο πρότυπο περιλαμβάνει ενσωματωμένο ένα ελκυστικό slideshow εικόνων που η χρήση του είναι προαιρετική και εναλλάσσει τις εικόνες που εμείς θα του ορίσουμε, τόσο χειροκίνητα, όσο και αυτόματα. Τέλος, έχει αρκετά ικανοποιητικές θέσεις κάτω από το slideshow, όπου μπορούμε να εισάγουμε ενθέματα αρμονικά στοιχισμένα ώστε το site να έχει μία σοβαρή και άρτια δομή. Για να εγκαταστήσουμε ένα πρότυπο στο Joomla, η διαδικασία έχει ως εξής: Στο control panel του Joomla, στο menu extensions, επιλέγουμε Extension Manager (για την έκδοση Joomla 2.5.X) και εμφανίζεται το παρακάτω παράθυρο διαλόγου: Στη συνέχεια κάνουμε κλικ στο κουμπί «Επιλογή αρχείου» και αναζητούμε την τοποθεσία στον υπολογιστή μας, όπου έχει αποθηκευτεί το πρότυπο που κατεβάσαμε. Αφού το εντοπίσουμε και το επιλέξουμε κάνουμε κλικ στο κουμπί Upload & Install και το πρότυπο εγκαθίσταται με επιτυχία. Θα πρέπει σε αυτό το σημείο να παρατηρήσουμε, πως για να εγκατασταθεί με επιτυχία ένα πρότυπο, οφείλει να είναι συμβατό με την αντίστοιχη έκδοση του Joomla που χρησιμοποιούμε. Αυτή η πληροφορία μας δίδεται για κάθε πρότυπο που επιχειρούμε να κατεβάσουμε από το διαδίκ- 21

22 τυο. Σε αντίθετη περίπτωση, είτε το Joomla δεν θα επιτρέψει την εγκατάσταση (θα εμφανίσει μήνυμα σφάλματος) είτε, ακόμη και αν την επιτρέψει, το site δεν θα εμφανίζεται όπως πρέπει αλλά με σφάλματα και λάθος κατανομή του περιεχομένου του. Μετά την εγκατάσταση του προτύπου, πρέπει να το ορίσουμε ως προεπιλεγμένο. Για να γίνει αυτό, βρισκόμενοι πάντα στο control panel του administration του Joomla, επιλέγουμε extensions και μετά Template Manager. Εμφανίζεται τότε ένα παράθυρο διαλόγου με όλα τα ήδη εγκατεστημένα πρότυπα (εκεί παρατηρούμε πως στο Joomla υπάρχουν ήδη κάποια πρότυπα προ εγκατεστημένα) και μέσα εκεί, με την προϋπόθεση πως έχουμε κάνει εκ προτέρων την εγκατάσταση του προτύπου σωστά, εμφανίζεται και το πρότυπο που μόλις πριν λίγο εγκαταστήσαμε. Αφού το εντοπίσουμε μέσα στη λίστα, δεν έχουμε παρά να κάνουμε κλικ στον αστερίσκο του πεδίου default (προεπιλεγμένο) που αντιστοιχεί στο πρότυπο που θέλουμε και αμέσως το πρότυπο αυτό, ορίζεται ως το προεπιλεγμένο πρότυπο: Έχοντας ολοκληρώσει όλα τα παραπάνω βήματα, μπορούμε, πλέον, να προβάλλουμε το site, έστω και αν στην παρούσα φάση είναι κενό, μόνο και μόνο για να επαληθεύσουμε πως το πρότυπο λειτουργεί χωρίς προβλήματα. Πάντοτε όταν βρισκόμαστε στο control panel του administration του Joomla, εμφανίζεται πάνω δεξιά η επιλογή view site, από όπου, κάνοντας κλικ, μπορούμε ανά πάσα στιγμή να προβάλλουμε τον ιστότοπό μας και να παρουσιαστούν στην οθόνη μας όλες οι λειτουργίες και τα χαρακτηριστικά που του έχουμε προδώσει μέχρι εκείνη τη στιγμή. Αφού, επιτέλους, ολοκληρώσαμε τη διαδικασία επιλογής και εγκατάστασης του κατάλληλου προτύπου, μπορούμε να προχωρήσουμε στον σχεδιασμό του menu. 22

23 Έχοντας τελειώσει με το θέμα το προτύπου περνάμε στον σχεδιασμό του menu. Ένα menu σε ένα site κάνει μία πρώτη κατηγοριοποίηση. Το κάθε τμήμα του αποτελεί και μία κατηγορία και, αν αυτή με τη σειρά της χωρίζεται σε επιμέρους κατηγορίες καλό είναι να επιλέξουμε ένα drop down menu. Στην συντριπτική πλειοψηφία των ιστοτόπων το menu έχει ενημερωτικό χαρακτήρα. Σε περίπτωση δηλαδή που ένα site περιλαμβάνει αλληλεπιδραστικά εργαλεία με τον επισκέπτη, αυτά δεν τοποθετούνται στο menu. Κάθε αλληλεπιδραστικό εργαλείο αποτελεί συνήθως από μόνο του μία εφαρμογή. Στο Joomla, κάθε εφαρμογή περικλείεται σε ένα ένθεμα (module). Τα ενθέματα με τη σειρά τους πολύ σπάνια τοποθετούνται στο menu. Ο βασικότερος λόγος είναι επειδή ένα ένθεμα είναι σημαντικό να συνοδεύεται από μία εικόνα που θα προϊδεάζει τον χρήστη σχετικά με την λειτουργία του. Αντιλαμβανόμαστε πως είναι δύσκολο να τοποθετήσουμε μία εικόνα μέσα σε ένα menu και, ακόμη και αν το κάνουμε, είναι ένα αντιαισθητικό θέαμα. Με βάση το παραπάνω σκεπτικό, ανατρέχουμε στη λίστα με τις ενότητες που φτιάξαμε στην καταγραφή των αναγκών του site. Έχουμε ήδη κάνει μία κατηγοριοποίηση των ενοτήτων σε ενημερωτικές και διαδραστικές. Με γνώμονα τον ενημερωτικό χαρακτήρα που θέλουμε να έχει το menu επιλέγουμε εκεί να τοποθετηθούν θεματικές ενότητες ενημερωτικού κυρίως χαρακτήρα. Επιπροσθέτως, επιλέγουμε θεματικές ε- νότητες οι οποίες με τη σειρά τους διαιρούνται σε υποκατηγορίες για να αξιοποιήσουμε και την ιδιότητα drop down στο menu μας. Συνυπολογίζοντας τα παραπάνω καταλήξαμε στο παρακάτω menu: Menu Β Διάγνωση Ανεξάρτητα με το ποιο menu επιλέγουμε για το site μας, ένα βασικό του χαρακτηριστικό θα είναι πως θα εμφανίζεται πάντα. Ακόμη, δηλαδή, και αν κάνουμε κλικ σε ένα link που υπάρχει στην αρχική σελίδα και μας παραπέμψει (υπερσυνδέσει) αλλού, θα menu της ιστοσελίδας θα συνεχίσει να προβάλλεται κανονικά, όπως φαινόταν και στην αρχική σελίδα. Είναι ιδιαίτερα πρακτικό, επομένως, να υπάρχει στο menu ένα link που θα μας επιτρέπει ανά πάσα στιγμή κάνοντας κλικ πάνω του, να επιστρέφουμε στην αρχική σελίδα. Επίσης, σημαντικό ρόλο παίζει η ονομασία αυτού του link. Βάσει του SEO (βελτιστοποίηση του ιστότοπου ώστε να κατατάσσεται σε καλύτερες θέσεις από τις μηχανές αναζήτησης) που έχουμε ήδη αναφέρει, είναι προτιμότερο να βάλουμε την ονομασία του Διαγνωστικού Κέντρου στο οποίο είναι αφιερωμένο το site επειδή η ονομασία του ακριβώς θα είναι αυτή που κάποιος θα χρησιμοποιήσει σε μία μηχανή αναζήτησης για να βρει για παράδειγμα το site μέσω google, την στιγμή που δεν γνωρίζει την ακριβή διεύθυνση της ιστοσελίδας μας. Ως εκ τούτου το πρώτο link στο menu μας φέρει το όνομα Β Διάγνωση και, οποιαδήποτε στιγμή και αν το επιλέξουμε μας γυρίζει πίσω στην αρχική σελίδα, ακόμη και όταν είμαστε ήδη σε αυτήν. 23

24 Menu Τα Τμήματα Εδώ έχουμε μία θεματική ενότητα που χωρίζεται σε επιμέρους κατηγορίες. Είναι καθαρά ενημερωτική και περιγράφει παρουσιάζει όλα τα τμήματα του Διαγνωστικού Κέντρου που μπορεί ένας ασθενείς να κάνει εξετάσεις. Στη παραπάνω εικόνα φαίνεται η ιδιότητα του drop down menu. Με διέλευση του ποντικιού στο menu «Τα Τμήματα» εμφανίζεται μία λίστα που εμφανίζει το κάθε τμήμα εξετάσεων ξεχωριστά. Επιπλέον, κάθε ξεχωριστό τμήμα φέρει link πάνω του ώστε, αν το επιλέξουμε, να μας παραπέμψει σε μία αντίστοιχη σελίδα που θα περιλαμβάνει ενημερωτικές πληροφορίες που αφορούν του εκάστοτε τμήμα. Για παράδειγμα, έστω ότι κάνουμε κλικ στην Μαγνητική Τομογραφία. Σε αυτήν την περίπτωση θα εμφανιστεί το παρακάτω αποτέλεσμα: 24

25 Σε αυτή τη φιλοσοφία περίπου κινείται το ενημερωτικό κομμάτι για κάθε τμήμα εξετάσεων. Μία εικόνα στην κορυφή κεντρικά στοιχισμένη που αφορά το κάθε link, εδώ για παράδειγμα στην Μαγνητική Τομογραφία εμφανίζεται ο Μαγνητικός Τομογράφος του Διαγνωστικού Κέντρο «Β Διάγνωση», και ακολούθως ένα ενημερωτικό κείμενο σχετικά με την εκάστοτε εξέταση. Σκοπός μας είναι αυτή η λίστα με τα links των τμημάτων να παρέχει χρήσιμες πληροφορίες στον επισκέπτη, είτε είναι Ιατρός, είτε είναι Ασθενής Ιδιώτης. Στην περίπτωση που είναι Ιατρός, ενημερώνεται για τις δυνατότητες των Ιατρικών Μηχανημάτων και Οργάνων του Διαγνωστικού Κέντρου, κάτι το οποίο αποτελεί σημαντικό κριτήριο για το αν θα αποφασίσει να παραπέμψει τον ασθενή του στη Β Διάγνωση. Όσον αφορά τον Ασθενή, αυτός θα ενημερωθεί για την πρακτική αξία της εκάστοτε εξέτασης, για το οφέλη που του προσφέρει, ή για τυχόν αντενδείξεις. Τέλος, αν ο επισκέπτης κάνει απευθείας κλικ στα τμήματα (και όχι σε κάποιο συγκεκριμένα) του εμφανίζεται μία σελίδα που του αποδίδει μία συνολική γενική εικόνα σχετικά με το ποιες εξετάσεις διενεργούνται στο Διαγνωστικό Κέντρο. Menu Προετοιμασία Αποτελεί ακόμη ένα στοιχείο του menu που εκμεταλλεύεται την drop down ιδιότητα, αφού μπορεί να χωριστεί σε επιμέρους κατηγορίες. Υπάρχουν συγκεκριμένες εξετάσεις, ουκ ολίγες, όπου ο ασθενής πρέπει να κάνει μία προσωπική προετοιμασία πριν προσέλθει στο Διαγνωστικό Κέντρο για την εκτέλεσή τους. Αυτό μπορεί για παράδειγμά, να αφορά ένα συγκεκριμένο διατροφικό πρόγραμμα που πρέπει να ακολουθήσει κάποιες ώρες πριν την εξέταση (π.χ. να μείνει νηστικός τις τελευταίες 8 ώρες). Επίσης μπορεί να έχει να κάνει με κάποιο φάρμακο που θα πρέπει να προσκομίσει ο ίδιος στο Διαγνωστικό Κέντρο, όπως το σκιαγραφικό, για παράδειγμα, για μία Αξονική Τομογραφία. Επομένως οι επιμέρους κατηγορίες της προετοιμασίας, αφορούν το εκάστοτε τμήμα εξετάσεων και την προσωπική προετοιμασία που απαιτείται από τον Ασθενή. Ως εκ τούτου πρόκειται για ένα ενημερωτικό καθαρά τμήμα του menu, που δεν αφορά τους Ιατρούς αλλά αποκλειστικά τους Ασθενείς. 25

26 Αξίζει να σημειώσουμε σε αυτό το σημείο πως, σχετικά με την προετοιμασία των εξετάσεων, έχουμε σχεδιάσει και έναν «έξυπνο» ψηφιακό σύμβουλο στον οποίο θα αναφερθούμε αναλυτικότερα σε επόμενη κεφάλαιο αυτής της Διπλωματικής Εργασίας. Είναι, ωστόσο, σημαντικό να αναφέρουμε εκ των προτέρων, πως η παρουσία του «Συμβούλου» δεν σχετίζεται με το τμήμα του menu αναφορικά με την προετοιμασία των εξετάσεων. Και αυτό γιατί, στην περίπτωση που ο επισκέπτης του site πάει από το menu ενημερώνεται για το ποια μέτρα πρέπει να πάρει ο ίδιος για την εξέταση, ενώ αν απευθυνθεί στον Ψηφιακό Σύμβουλο, θα «εισπράξει» μίαν απάντηση σχετικά με την καταλληλότητα της εξέτασης. Δηλαδή, για να καταλάβουμε καλύτερα τη διαφορά, αν ο Ψηφιακός Σύμβουλος κρίνει έναν Ασθενή «ακατάλληλο» για μία εξέταση, τότε δεν υπάρχει κανένας λόγος να ενημερωθεί από το menu προετοιμασία, σχετικά με την προσωπική προετοιμασία που θα έπρεπε να κάνει για την εξέταση αυτή. Menu Ασφαλιστικά Ταμεία Εδώ έχουμε μία περίπτωση στοιχείου menu που δεν περιλαμβάνει επιμέρους κατηγορίες. Αυτό σημαίνει πως με διέλευση του ποντικιού πάνω από το λήμμα «Ασφαλιστικά Ταμεία» δεν ενεργοποιείται η ιδιότητα drop down του menu μας, παρά δίνεται μόνον η δυνατότητα στον επισκέπτη να κάνει απευθείας κλικ σε αυτό και έτσι προκύπτει το παρακάτω αποτέλεσμα: 26

27 Πρόκειται για μία σελίδα καθαρά ενημερωτική και χρήσιμη τόσο για τον Ασθενή, όσο και για τον Ιατρό που παραπέμπει τον ασθενή για μια εξέταση. Συγκεκριμένα, εμφανίζεται μία αναλυτική λίστα σχετικά με τα Ασφαλιστικά Ταμεία με τα οποία συνεργάζεται το Διαγνωστικό Κέντρο. Αυτή η πληροφορία, όπως γίνεται αντιληπτό, είναι πάρα πολύ σημαντική. Ο εγγεγραμμένος σε ένα Ασφαλιστικό Ταμείο Ασθενής, είναι φυσικό να θέλει το μεγαλύτερο μέρος του οικονομικού κόστους των εξετάσεων που θα κάνει να του το καλύψει το ταμείο του. Αυτό αποτελεί αναφαίρετο δικαίωμα, βάσει νόμου, για τον κάθε Ασθενή. Για να μπορεί, όμως, να πάρει υπόσταση και να αξιοποιηθεί σαν νόμιμο δικαίωμα, θα πρέπει να εκάστοτε Διαγνωστικό Εργαστήριο να είναι συμβεβλημένο με τον εκάστοτε Ασφαλιστικό Φορέα Υγείας στον οποίο υπάγεται ο Ασθενής. Επομένως, ο Ασθενής ενημερώνεται για το αν το Ασφαλιστικό του Ταμείο συμπεριλαμβάνεται στη λίστα αυτών με τα οποία συνεργάζεται η Β Διάγνωση κάτι το οποίο, ποσό μάλλον με την οικονομική κρίση που ταλανίζει τη χώρα μας, αποτελεί πολύ σοβαρό κριτήριο για το αν θα επιλέξει το συγκεκριμένο Διαγνωστικό Κέντρο για να κάνει τις εξετάσεις του. Αυτή η πληροφορία είναι σχεδόν εξίσου σημαντική και για τον Ιατρό, αφού μπορεί να καθοδηγήσει τον ασθενή του να πάει να κάνει τις εξετάσεις του σε ένα Διαγνωστικό Εργαστήριο όπου ο Ασφαλιστικός του φορέας θα του καλύπτει το μεγαλύτερο μέρος των εξόδων του. Menu Gallery Κάνοντας κλικ σε αυτό το στοιχείο του menu, εμφανίζονται μικρογραφίες φωτογραφιών που απεικονίζουν διάφορους χώρους εγκαταστάσεις ιατρικά μηχανήματα του Διαγνωστικού Κέντρου «Β Διάγνωση». Αντίστοιχα, επιλέγοντας με το ποντίκι την εκάστοτε μικρογραφία, η εικόνα που αφορά μεγεθύνεται όπως φαίνεται παρακάτω: 27

28 Στην παραπάνω εικόνα έχει γίνει εκ των προτέρων κλικ στη μικρογραφία της. Εμφανίζεται μεγεθυμένη και όλες οι υπόλοιπες φωτογραφίες του άλμπουμ εμφανίζονται σαν μικρογραφίες σε μορφή λωρίδας στο κάτω μέρος της εικόνας, συνοδευόμενες από βελάκια πλοήγησης. Επομένως, επιλέγοντας να εμφανίσουμε μία εικόνα σε μεγεθυμένη μορφή, συνεχίζουμε να έχουμε τη δυνατότητα της απευθείας μετάβασης σε οποιαδήποτε άλλη φωτογραφία του άλμπουμ, χωρίς να χρειαστεί την εικόνα που προβάλλεται εκείνη την στιγμή να την κλείσουμε. Είναι ίσως ήδη αντιληπτό, πως, τις παραπάνω ιδιότητες και τα εργαλεία διαχείρισης των φωτογραφιών, δεν είναι στοιχεία ενσωματωμένα από προεπιλογή στην εφαρμογή του Joomla. Αντιθέτως, για να προβάλλεται μία λίστα από εικόνες που έ- χουμε κάνει upload σε ένα site που σχεδιάζουμε, κατά αυτόν τον τρόπο, είναι απαραίτητη η χρήση κάποιου ενθέματος (module). Για να βρούμε το ένθεμα που χρειαζόμαστε στην εκάστοτε περίσταση (χρησιμοποιώντας νόμιμο τρόπο πάντα) δεν έχουμε παρά να επισκεφθούμε την ιστοσελίδα και στο πλαίσιο αναζήτησης να πληκτρολογήσουμε τις λέξεις κλειδιά σχετικά με το ένθεμα το οποίο ψάχνουμε. Το ένθεμα που καταλήξαμε για να φτιάξουμε το Gallery του ιστοτόπου μας, είναι το sigplus: 28

29 ***Παρατήρηση: Θα έχουμε την ευκαιρία σε επόμενο Κεφάλαιο να αναλύσουμε πως τοποθετούμε κατάλληλα ένα ένθεμα σε μία θέση του προτύπου μας, καθώς και τον τρόπο με τον οποίο καθορίζουμε το πότε αυτό θα εμφανίζεται. Menu Επικοινωνία Πρόκειται να ένα στοιχείο menu που είναι απαραίτητο όλα τα site να περιλαμβάνουν. Το οξύμωρο είναι πως, ενώ πρόκειται για το πιο απλό κομμάτι στο σχεδιασμό του ιστοτόπου, είναι παράλληλα και το πιο δημοφιλές, όσον αφορά την αιτία που κάποιος θα επισκεφθεί την ιστοσελίδα μας. Ειδικά, στο παράδειγμά μας, είναι σχεδόν προφανές, πως κάποιος θα αναζητήσει ένα Διαγνωστικό Κέντρο στο google και εν συνεχεία θα επισκεφθεί την «προσωπική» του ιστοσελίδα, με σκοπό να μάθει βασικά στοιχεία, όπως το τηλέφωνο επικοινωνίας για να κλείσει ένα ραντεβού ή την διεύθυνση για να μάθει που βρίσκεται ο χώρος που θα έρθει να κάνει τις εξετάσεις του: 29

30 Κεφάλαιο 5 ο ΕΞΕΛΙΞΗ ΚΑΙ ΑΝΑΒΑΘΜΙΣΗ Όταν για μία ιστοσελίδα που σχεδιάζουμε έχουμε εφαρμόσει το πρότυπο που επιθυμούμε και παράλληλα έχουμε υλοποιήσει όλο το αρχικό menu της κεντρικής σελίδας, τότε μπορούμε να πούμε ότι και τυπικά έχουμε ολοκληρώσει το αρχικό εισαγωγικό κομμάτι σχεδιασμού του ιστοτόπου μας. Η συνέχεια της υλοποίησης κάνει το έργο μας πολύ πιο εξειδικευμένο. Βάσει την αρχικής καταγραφής αναγκών που έχουμε κάνει, πρέπει να ανακαλύψουμε όλα εκείνα να εργαλεία που θα ικανοποιήσουν αυτές τις ανάγκες. Έχουμε ήδη αναφέρει που το αποτέλεσμα πρέπει να βρει το νέο site εξελιγμένο και αναβαθμισμένο σε σχέση με το προηγούμενο. Χρειάστηκε, επομένως, να ψάξουμε ενδελεχώς και να βρούμε ενθέματα κατάλληλα που θα δώσουν στο site δυναμική και θα το κάνουν να ξεχωρίζει από τα υπόλοιπα που υπάρχουν στον αντίστοιχο κλάδο. Επίσης, αναλάβαμε την δύσκολη αποστολή να εφαρμόσουμε κανόνες Τεχνητής Νοημοσύνης που θα βρίσκουν έξοδο για προβολή στο site μέσα από το Joomla. Πως, όμως, υλοποιήθηκαν όλα αυτά; Σε ποια ενθέματα καταλήξαμε για να καλύψουμε τις ανάγκες μας και γιατί; Σε αυτά τα ερωτήματα θα απαντήσουμε στις ενότητες του τρέχοντος κεφαλαίου, αφού πρωτίστως κάνουμε μία μικρή εισαγωγή για να κατανοήσουμε την φιλοσοφία και τον τρόπο χρήσης ενός ενθέματος (module) γενικά. 5.1 ΕΙΣΑΓΩΓΗ ΣΤΑ ΕΝΘΕΜΑΤΑ (MODULES) Θα μπορούσαμε να χαρακτηρίσουμε τα ενθέματα στο Joomla ως μικρές ε- φαρμογές, πολύ απλές στην διαχείρισή τους. Ο στόχος τους είναι να συμπληρώνουν, με κάποιο τρόπο, τη λειτουργικότητα του περιεχομένου ή τη διαδραστικότητα μιας σελίδας. Για να διαχειριστούμε τα ήδη εγκατεστημένα ενθέματα (των οποίων η εγκατάσταση γίνεται με τον ίδιο ακριβώς τρόπο όπως και στα πρότυπα) επιλέγουμε από το control panel του administration του Joomla, Extensions > Module Manager (για την έκδοση 2.5.Χ.): 30

31 Στη λίστα με τα ήδη εγκατεστημένα ενθέματα που εμφανίζονται στην παραπάνω εικόνα, αναφέρονται βασικές πληροφορίες για το κάθε ένθεμα ξεχωριστά όπως: Ο τίτλος του (Title) Το εάν είναι ενεργοποιημένο (Status) Τη θέση που θα πρέπει να εμφανιστεί στη διάταξη της σελίδας, όπως καθορίζεται από το πρότυπο που έχουμε ήδη επιλέξει (Position) Τη σειρά τοποθέτησής του, εάν υπάρχουν κι άλλα ενθέματα στην ίδια θέση (Ordering) Το επίπεδο πρόσβασης (Access Level) Το Access Level καθορίζει ποιες ομάδες χρηστών (βάσει δικαιωμάτων) θα μπορούν να βλέπουν περιεχόμενο από αυτό το ένθεμα σε μία σελίδα. Με αυτήν την ιδιότητα, μας δίδεται η δυνατότητα να δημιουργήσουμε ολοκληρωτικά διαφορετικές εκδόσεις ενός ιστότοπου για διαφορετικά επίπεδα χρηστών, όπως οι επισκέπτες (guests), οι εγγεγραμμένοι χρήστες (registered) και οι διαχειριστές (administrators). Τέλος, ένα πολύ σημαντικό ζήτημα αναφορικά με τα ενθέματα, έχει να κάνει (ανεξάρτητα από τα δικαιώματα του εκάστοτε χρήστη) με το σε ποιες περιπτώσεις θα εμφανίζεται το ένθεμα. Αυτό καθορίζεται και εξαρτάται από το πώς έχουμε διαχειριστεί εξαρχής τα menu και συγκεκριμένα πόσα έχουμε ήδη δημιουργήσει. Να σημειώσουμε πως, με τον όρο menu εδώ, δεν αναφερόμαστε στο menu που βλέπουμε στην 31

32 κεντρική σελίδα και που αναφερθήκαμε σε προηγούμενο κεφάλαιο, αλλά για τα menu που δημιουργούμε στο control panel του administration του Joomla. Τα menu και τα στοιχεία μενού (menu items) είναι πολύ σημαντικά για έναν ιστότοπο βασισμένο στο Joomla. Σε έναν στατικό ιστότοπο, δημιουργημένο μόνο με HTML κώδικα, εξυπηρετούν απλώς οι μηχανισμοί πλοήγησης. Σε έναν ιστότοπο Joomla όχι μόνο εξυπηρετούν αυτόν τον στόχο, αλλά καθορίζουν επίσης πως θα δείχνουν οι δυναμικές παραγόμενες σελίδες, καθώς και ποιο περιεχόμενο θα εμφανίζουν όταν μεταβούμε σε αυτές. Κάθε menu συσχετίζεται με έναν ένθεμα, το οποίο ελέγχει που και πως θα εμφανίζεται το menu σε μία σελίδα: Το main menu που φαίνεται στην παραπάνω εικόνα είναι το κύριο menu. Το κύριο menu περιέχει τους κύριους μηχανισμούς πλοήγησης. Το user menu (μενού χρήστη) περιέχει λειτουργίες για συνδεδεμένους χρήστες. Και τα δύο menu υπάρχουν ήδη στο menu manager. Στις περισσότερες περιπτώσεις, όμως, που σχεδιάζουμε έναν ιστότοπο βασισμένο στο Joomla, χρειάζεται να δημιουργήσουμε τα δικά μας μενού ή να προσαρμόσουμε κατάλληλα, σύμφωνα με τις ανάγκες μας, τα προαναφερθέντα. Κάθε menu διακρίνεται στο λεγόμενο frontend και στο backend κομμάτι του. Το backend, που ορίζει το ποιο σύνδεσμοι θα εμφανίζεται σε αυτό το περιεχόμενο των σελίδων ορίζεται και ελέγχεται μέσω του Menu Manager. Αντιθέτως, το frontend κομμάτι ενός μενού, η θέση τοποθέτησής του και η εμφάνισή του, είναι παράμετροι που ορίζονται και ελέγχονται μέσω του ενθέματος του μενού στο Module Manager. Κάθε μενού δημιουργημένο στο Joomla αποτελείται από τα λεγόμενα «στοιχεία μενού». Τα στοιχεία αυτά (menu items) κάνουν πολλά πράγματα! Όπως έχουμε πολλές αναφέρει σε αυτήν την διπλωματική εργασία, σε έναν ιστότοπο Joomla όλες οι σελίδες παράγονται δυναμικά. Το Joomla χρησιμοποιεί πληροφορίες από το σύνδεσμο στον οποίο έκανε κλικ ένας επισκέπτης του ιστότοπου για να αποφασίσει τι θα περιέχει η ιστοσελίδα που θα εμφανιστεί και πως θα δείχνει. 32

33 Μπορούμε να φανταστούμε τους συνδέσμους ενός μενού σαν οντότητες που συνδυάζουν τα ακόλουθα χαρακτηριστικά: Ποιο περιεχόμενο θα εμφανίζει ο σύνδεσμος Πώς θα δείχνει η παραγόμενη σελίδα Ποιο πρότυπο επιλέγεται για τον έλεγχο του στυλ και της εμφάνισης της σελίδας Πώς ελέγχεται η εμφάνιση των ίδιων των συνδέσμων στα μενού Οι σύνδεσμοι ενός μενού ελέγχονται μέσω των menu items που αυτό περιέχει, στο Menu Manager. Από εδώ καθορίζουμε σε ποιες σελίδες θα οδηγούν, καθώς και την εμφάνιση αυτών των σελίδων. Επομένως, τα μενού και οι σύνδεσμοι έχουν ορισμένα σημαντικά χαρακτηριστικά: Τα μενού είναι αυτά που «ελέγχουν» τον ιστότοπο. Οι σελίδες παράγονται δυναμικά, δηλαδή δεν υφίστανται μέχρι κάποιος να κάνει κλικ σε έναν σύνδεσμο (στοιχείο μενού). Τα μενού, οι σύνδεσμοι και το περιεχόμενο διατηρούνται απολύτως ανεξάρτητα το ένα από το άλλο στη Βάση Δεδομένων. Το περιεχόμενο πρέπει πρώτα να δημιουργηθεί και μετά να διασυνδεθεί με ένα στοιχείο μενού για να εμφανιστεί σε μία σελίδα Τα στοιχεία μενού μπορούν να λειτουργούν ως σύνδεσμοι προς περιεχόμενο (άρθρα) ή άλλες εφαρμογές Τα στοιχεία μενού καθορίζουν, τόσο το περιεχόμενο, όσο και την εμφάνιση των σελίδων που παράγουν Το Joomla μας παρέχει τη δυνατότητα ένα ένθεμα (module) να υπάγεται σε παραπάνω από ένα menu. Αυτό καθορίζεται από το module manager. Κάθε φορά που εισάγουμε στον ιστότοπό μας ένα ένθεμα, αφού ρυθμίσουμε τις παραμέτρους του, οφείλουμε να ορίσουμε σε ποια από τα ήδη δημιουργημένα μενού θα αντιστοιχεί. Στην πραγματικότητα, με αυτόν τον τρόπο, καθορίζουμε πότε το κάθε ένθεμα θα εμφανίζεται στον ιστότοπό μας. Στον ιστότοπο που σχεδιάσαμε για το Διαγνωστικό Κέντρο «Β Διάγνωση» έχουμε επιλέξει αρκετά ενθέματα για να καλύψουν την καταγραφή των αναγκών μας για το site που κάναμε στην αρχή. Είναι εύκολο αν πλοηγηθούμε σε αυτόν τον ιστότοπο να παρατηρήσουμε πως κάποια από αυτά τα ενθέματα εμφανίζονται στην αρχική σελίδα, κάποια άλλα αν κάνουμε κλικ σε έναν σύνδεσμο, κάποια εμφανίζονται παντού, ενώ έχουμε και περιπτώσεις που ένα ένθεμα είναι εμβόλιμα τοποθετημένο μέσα σε ένα άλλο. Όλα τα παραπάνω, λοιπόν, τα πετυχαίνουμε με την συνεργασία των ενθεμάτων και των μενού. 33

34 5.2 ΕΠΙΣΚΟΠΗΣΗ ΤΩΝ ΕΝΘΕΜΑΤΩΝ ΤΟΥ SITE ΜΑΣ Όπως έχουμε ήδη αναφέρει, το πρότυπο (template) που έχουμε επιλέξει για τον ιστότοπό μας, είναι και αυτό που καθορίζει σε ποιες θέσεις θα μπορούν να τοποθετηθούν τα ενθέματα. Σε αυτήν την ενότητα θα κάνουμε μία γενική επισκόπηση των ενθεμάτων που επιλέξαμε και χρησιμοποιήσαμε και θα αποσαφηνίσουμε τη δομή του site μας, βάσει των διαθέσιμων θέσεων στις οποίες μπορούσαν να εισαχθούν τα ενθέματα. Για το σκοπό αυτό θα «σπάσουμε» την κεντρική σελίδα του site σε τρία τμήματα: (α) menu πρότυπο (β) κεντρικό πλαίσιο (γ) εικονίδια και ενθέματα. Οι παραπάνω ονομασίες είναι τελείως προσωπικές, δεν σχετίζονται καθόλου ούτε με ορολογία του διαδικτύου, ούτε με το σχεδιασμό ιστοσελίδων, ούτε καν με το καθαυτό Joomla. Ήταν ένας ιδεατός διαχωρισμός δικός μας, για να οργανώσουμε σταδιακά τη δομή της κεντρικής σελίδας του ιστοτόπου μας. Ξεκινώντας από το πρώτο τμήμα (menu πρότυπο), παραθέτουμε σε πρώτη φάση το τι περιλαμβάνει στην παρακάτω εικόνα: Με ψηφιακό μαρκαδόρο, έχουμε σημειώσει τα βασικά στοιχεία του πρώτου τμήματος της κεντρικής σελίδας του ιστοτόπου μας. Έχουμε ήδη αναφερθεί στην α- νάγκη μας για ύπαρξη ενός drop down menu στο site μας. Για να μπορεί ένα τέτοιο εργαλείο να υφίσταται, θα πρέπει το ίδιο το πρότυπο που έχουμε επιλέξει να φιλοξενεί μία θέση για εισαγωγή ενός μενού στην κορυφή της σελίδας. Είναι απαραίτητο το μενού να είναι στην κορυφή αν θέλουμε να εκμεταλλευτούμε την drop down ιδιότητα. Επομένως, δεν είναι αυτονόητη η δυνατότητα εισαγωγή ενός drop down μενού σε ένα site. Θα πρέπει εκ των προτέρων να έχουμε μεριμνήσει στο πρότυπο να που εγκαθιστούμε να μπορεί να εισαχθεί ένα τέτοιο μενού στην συγκεκριμένη περιοχή. Το πρότυπο JustBussines-FJT παρέχει αυτήν την δυνατότητα αφού μία από τις διαθέσιμες θέσεις του είναι η «menuload» την οποία αξιοποιήσαμε για να εισάγουμε σε αυτήν το drop down menu μας. 34

35 Το δεύτερο ένθεμα που εισάγαμε είναι στην θέση logo του προτύπου μας. Έχουμε σημάνει την εν λόγω θέση στην παραπάνω εικόνα και έχουμε εισάγει εκεί το logo του Διαγνωστικού Κέντρο «Β Διάγνωση». Είναι πολύ σημαντικό για μία εταιρία η οποία διαφημίζεται μέσα από τον προσωπικό της ιστότοπο, να φέρει σε κάποια σημείο της κεντρικής σελίδας το logo της. Για το σκοπό αυτό, επιλέξαμε εκ των προτέρων ένα πρότυπο τέτοιο ώστε να έχει μία θέση που θα κάνει αυτήν ακριβώς τη δουλειά. Θα δεσμεύει, δηλαδή, σε μορφή εικόνας το logo της εταιρίας. Τέλος, όσον αφορά το πρώτο τμήμα, παρατηρούμε στην παραπάνω εικόνα πως, κάτω ακριβώς από το drop down menu εμφανίζεται ένα slideshow. Αποτελείται από 4ις εικόνες οι οποίες εναλλάσσονται αυτόματα ή / και χειροκίνητα με τα βελάκια πλοήγησης και αφορούν κάποιες σημαντικές πληροφορίες για το Διαγνωστικό Κέντρο. Κάθε εικόνα συνοδεύεται από μία δική της λεζάντα. Ο συνδυασμός της κάθε εικόνας και του κειμένου της λεζάντας έχει στόχο να τραβήξει την προσοχή του ε- πισκέπτη της ιστοσελίδας, προβάλλοντάς του άμεσα κάποιες από τις πιο βασικές δυνατότητες του Διαγνωστικού Κέντρου, όπως το ότι έχει εγκατασταθεί νέος Μαγνητικός και Αξονικός Τομογράφος, ότι δέχεται ασφαλισμένους Ε.Ο.Π.Υ.Υ. κάτι το οποίο είναι πολύ σημαντικό για την συντριπτική πλειοψηφία των ασθενών, καθώς και μία πρώτη παρουσίαση από τα τμήματα εξετάσεων: 35

36 Στην παραπάνω εικόνα βλέπουμε το τι εμφανίζει το slideshow προχωρώντας αυτόματα ή / και χειροκίνητα τις εικόνες. Να σημειώσουμε εδώ πως το slideshow θα μπορούσε να είναι και αυτό ένα από τα ενθέματα που επιλέξαμε, όμως δεν είναι. Πρόκειται για ένα slideshow ενσωματωμένο στο πρότυπο που έχουμε ορίσει. Αυτό πάλι με τη σειρά του δεν καθιστά τη χρήση του υποχρεωτική. Απλώς, το αν θα χρησιμοποιηθεί ή όχι καθώς και οι επιμέρους ρυθμίσεις του (π.χ. πόσες εικόνες θα εμφανίζει κτλ), επειδή ακριβώς είναι μέρος του προτύπου και όχι ένθεμα, οι παραπάνω ρυθμίσεις γίνονται από το Template Manager και όχι από το Module Manager. Το δεύτερο τμήμα, το οποίο ενδεικτικά ονομάσαμε «Κεντρικό Πλαίσιο» το βλέπουμε στην παρακάτω εικόνα: Εδώ έχουμε την παρουσία τριών ενθεμάτων (modules) ίδιου τύπου, τοποθετημένα όλα στην ίδια θέση. Πιο συγκεκριμένα, είναι τρία ενθέματα προσαρμοσμένου κώδικα HTML τοποθετημένα στη θέση «left» (μία από τις διαθέσιμες θέσεις του προτύπου). Για να εισάγουμε στο Joomla ένα ένθεμα προσαρμοσμένου κώδικά HTML, δεν χρειάζεται να κατεβάσουμε κάποιο ένθεμα από το διαδίκτυο. Αντιθέτως, ανήκει στην κατηγορία ενθεμάτων που είναι έτσι κι αλλιώς διαθέσιμα για χρήση με την εγκατάσταση του Joomla. Το ένθεμα με την εικόνα που φέρει το κείμενο NEWS ALERT έχει σκοπό να ενημερώνει τον ασθενή ή τον ιατρό ανάλογα με την περίπτωση, για μία έκτακτη - σημαντική είδηση. Το κείμενο «Η αλήθεια σχετικά με την αποζημίωση των ασφαλισμένων» είναι συγκυριακό και κατ επέκταση τροποποιήσιμο, με σκοπό κάθε φορά να προσαρμόζεται στην έκτακτη είδηση που βάζουμε εμείς ως σύνδεσμο στην εικόνα. Αυτή η είδηση μπορεί να είναι οτιδήποτε αφορά το χώρο της υγείας. Από μία νέα υπηρεσία που προσφέρει το Διαγνωστικό Κέντρο, μέχρι μία έκτακτη απόφαση του Υπουργείου Υγείας. Επιπροσθέτως, η τοποθεσία στην οποία θα οδηγεί τον επισκέπτη μπορεί να είναι οπουδήποτε. Από μία άλλη σελίδα του ίδιου του site της Β Διάγνωσης, μέχρι έναν εξωτερικό σύνδεσμο (external link) που μπορεί να παραπέμπει σε οποιοδήποτε site ή blog. Το ένθεμα με την εικόνα που φέρει το logo της εταιρίας και το σλόγκαν «Σας ευχαριστούμε για την εμπιστοσύνης σας» παραπέμπει σε μία προσφορά που κά- 36

37 νει το Διαγνωστικό Κέντρο στους ασθενείς του σχετικά με τις εξετάσεις. Κάνοντας ο επισκέπτης κλικ σε αυτήν την εικόνα τον παραπέμπει σε μία εσωτερική σελίδα του site μέσω της οποίας μαθαίνει λεπτομέρειες σχετικά με το πώς μπορεί να επωφεληθεί από αυτήν την προσφορά και να εξοικονομήσει χρήματα, εξασφαλίζοντας έκπτωση στις εξετάσεις που θα κάνει. Τέλος το 3 ο και τελευταίο ένθεμα του κεντρικού πλαισίου είναι ένα widget. Τα widgets είναι μικρά κομμάτια έτοιμου κώδικα που μπορούν να ενσωματωθούν σε οποιοδήποτε σημείο ενός site και να προσθέσουν λειτουργικότητα σε αυτό. Στο συγκεκριμένο παράδειγμα, πρόκειται για ένα widget το οποίο παρέχεται δωρεάν από την ιστοσελίδα και εμφανίζει σε μορφή flash τα πρωτοσέλιδα των ε- φημερίδων. Το μόνο που έχουμε να κάνουμε είναι copy paste τον κώδικά που μας δίνεται έτοιμος, από την επίσημα ιστοσελίδα που παρέχει το widget, σε ένα ένθεμα προσαρμοσμένου κώδικα HTML του Joomla. Το τρίτο τμήμα που εμείς ενδεικτικά ονομάσαμε «Εικονίδια και Ενθέματα» φαίνεται στην παρακάτω εικόνα: Εδώ υπάρχει η συντριπτική πλειοψηφία των ενθεμάτων που επιλέξαμε για την καλύψουν τις απαιτήσεις που προέκυψαν από την καταγραφή των αναγκών μας για το site. Αναλυτική παράθεση του κάθε εικονιδίου - ενθέματος θα κάνουμε σε ε- πόμενη ενότητα. Παρατηρούμε πως τα εικονίδια εμφανίζονται οριοθετημένα, σαν να αποτελούν στοιχεία ενός «αόρατου πίνακα». Στην πραγματικότητα, αυτή η αρμονική στοίχιση των αντικειμένων οφείλεται στην κατάλληλη τοποθέτησή τους στις διαθέσιμες θέσεις του προτύπου. Αν υποθέσουμε πως όλα τα ενθέματα της παραπάνω εικόνας 37

38 είναι μία ενιαία οντότητα, τότε θα μπορέσαμε να πούμε πως συντίθεται ένας πίνακας αποτελούμενος από τρεις στήλες. Το πρότυπο (template) που έχουμε ορίσει για το site μας, περιλαμβάνει (μεταξύ άλλων) τις παρακάτω θέσεις για να τοποθετηθούν ενθέματα: user1, user2 και user3. Κάθε user θέση αντιστοιχεί και σε μία στήλη. Α- ναλυτικότερα, η κάθε θέση περιλαμβάνει τα εξής εικονίδια: User1: Οι Ιατροί, Νέος Μαγνητικός Τομογράφος, Γίνε Μέλος! User2: Κατ Οίκον Αιμοληψίες, Νέος Αξονικός Τομογράφος, Συνδέσεις User3: Ιατρική Ενημέρωση, Β Ακτινοδιάγνωση (Αίγιο), Σύνδεση Μελών Από τα παραπάνω προκύπτει το συμπέρασμα, πως μία θέση ενός προτύπου, μπορεί να φιλοξενήσει περισσότερα του ενός ενθέματα. Από τη στιγμή, όμως, που θα συμβεί κάτι τέτοιο, θα πρέπει να ορίσουμε, κάνοντας κατάλληλη αναδιάταξη, την σειρά με την οποία κάθε ένθεμα θα εμφανίζεται στην εκάστοτε θέση. Αυτό είναι κάτι που ελέγχεται από τις ρυθμίσεις των ενθεμάτων στο Module Manager. Τα εικονίδια του τρίτου τμήματος, αποτελούν χαρακτηριστικό παράδειγμα ενθεμάτων που παραπέμπουν σε άλλα ενθέματα. Τα ενθέματα που έχουν τοποθετηθεί στις θέσεις user1, user2 και user3 αντίστοιχα, είναι όλα ίδιου τύπου και συγκεκριμένα, ενθέματα προσαρμοσμένου κώδικά HTML. Όμως, σε πολλά από αυτά (όπως θα δούμε και στις επόμενες ενότητες αυτής της διπλωματικής), κάνοντας ο επισκέπτης κλικ, παραπέμπεται σε μία άλλη σελίδα στην οποία υπάρχει ένα άλλο ένθεμα κατεβασμένο από το διαδίκτυο, που παρέχει συγκεκριμένη λειτουργία, αναλόγως τον σκοπό για τον οποίο θέλουμε να το χρησιμοποιήσουμε. Στις ενότητες που ακολουθούν, θα γίνει μεταξύ άλλων αναλυτική παράθεση των ενθεμάτων που κάναμε download από το επίσημο site των extensions του Joomla, θα εξηγήσουμε τους λόγους για τους οποίους επιλέξαμε τα συγκεκριμένα ενθέματα, καθώς επίσης και τον τρόπο λειτουργίας τους. Στην πραγματικότητα θα ξεκινήσουμε μία αναλυτική περιγραφή του πώς υλοποιήσαμε το περιεχόμενο του τρίτου τμήματος συνδυάζοντας καθαρά ενημερωτικά ενθέματα, με άλλα που προσδίδουν «νοημοσύνη» και διαδραστικότητα στο site μας. 38

39 5.3 ΕΝΗΜΕΡΩΤΙΚΑ ΕΝΘΕΜΑΤΑ ΟΙ ΙΑΤΡΟΙ Πρόκειται για ένα ένθεμα προσαρμοσμένου κώδικα HTML που, όπως έχουμε ήδη αναφέρει, ανήκει σε αυτά του τρίτου τμήματος της κεντρικής σελίδας του site μας. Είναι ένα ένθεμα καθαρά ενημερωτικού χαρακτήρα. Η παραπάνω εικόνα δεσμεύεται με link τόσο η ίδια, όσο και η λεζάντα της. Και του δύο links οδηγούν στην παρακάτω σελίδα: 39

40 Όπως γίνεται αντιληπτό, πρόκειται για μία σελίδα στην οποία ο επισκέπτης ενημερώνεται σχετικά με το Ιατρικό Δυναμικό που στελεχώνει το Διαγνωστικό Κέντρο Β Διάγνωση. Στην πραγματικότητα, ο επισκέπτης επιβεβαιώνεται πως για κάθε εξέταση στην οποία πρόκειται να υποβληθεί στο Διαγνωστικό Κέντρο, θα υπάρχει πάντα ένας Ιατρός να βγάλει και την αντίστοιχη διάγνωση της εξέτασης. Είναι φανερό πως, στο εν λόγω Διαγνωστικό Κέντρο, εκτός από Ειδικούς Ακτινολόγους - Ακτινοδιαγνώστες, εργάζονται και Ιατροί άλλων ειδικοτήτων (Πνευμονολόγος, Καρδιολόγος, Βιοπαθολόγος). Το γεγονός αυτό εμπλουτίζει το προφίλ του Διαγνωστικού Κέντρου, καθότι φαίνεται πως δεν περιορίζεται στα πλαίσια ενός ακτινολογικού εργαστηρίου, αλλά και άλλων πολύ σημαντικών εξετάσεων, με Ιατρούς καταξιωμένους στο εκάστοτε Ιατρικό πεδίο. Στα πλαίσια της περεταίρω εξέλιξης του site, έχει γίνει ήδη συνεννόηση με τους Ιατρούς που εργάζονται στο Διαγνωστικό Κέντρο, να παράσχουν ένα βιογραφικό τους, το οποίο θα εμφανίζεται όταν γίνεται κλικ στο όνομά τους. ΚΑΤ ΟΙΚΟΝ ΑΙΜΟΛΗΨΙΕΣ Πρόκειται για ένα ένθεμα προσαρμοσμένου κώδικα HTML που, όπως έχουμε ήδη αναφέρει, ανήκει σε αυτά του τρίτου τμήματος της κεντρικής σελίδας του site μας. Είναι ένα ένθεμα καθαρά ενημερωτικού χαρακτήρα. Η παραπάνω εικόνα δεσμεύεται με link τόσο η ίδια, όσο και η λεζάντα της. Και του δύο links οδηγούν στην παρακάτω σελίδα: 40

41 Όπως φαίνεται και στην παραπάνω εικόνα, σκοπός αυτής της σελίδας είναι να ενημερωθεί ο ιδιώτης ασθενής για την δυνατότητα που παρέχει το Διαγνωστικό Κέντρο «Β Διάγνωση» για αιμοληψίες κατ οίκον. Όταν ένας οργανισμός εταιρία και δη στον κλάδο της υγείας, παρέχει έξτρα υπηρεσίες διευκόλυνσης που ενισχύουν τον ανθρωπιστικό του χαρακτήρα, αυτό είναι κάτι που, μέσα από την προσωπική ιστοσελίδα του φορέα, επιβάλλεται να προβάλλεται και να αναφέρεται. Έτσι και σε αυτήν την περίπτωση, ειδικές περιπτώσεις ασθενών με δυσκολία στη μετακίνηση, όπως ηλικιωμένοι και Α.μ.Ε.Α, μπορούν να εξυπηρετηθούν από τη Β Διάγνωση κατ οίκον για αιμοληψία. ΝΕΟΣ ΜΑΓΝΗΤΙΚΟΣ ΤΟΜΟΓΡΑΦΟΣ Πρόκειται για ένα ένθεμα προσαρμοσμένου κώδικα HTML που, όπως έχουμε ήδη αναφέρει, ανήκει σε αυτά του τρίτου τμήματος της κεντρικής σελίδας του site μας. Είναι ένα ένθεμα καθαρά ενημερωτικού χαρακτήρα. Η παραπάνω εικόνα δεσμεύεται με link τόσο η ίδια, όσο και η λεζάντα της. Και του δύο links οδηγούν στην παρακάτω σελίδα: 41

42 Εδώ έχουμε να κάνουμε με ένα ενημερωτικό ένθεμα που αφορά καθαρά τους Ιατρούς. Όταν ένας Ιατρός (φυσικά δεν αναφερόμαστε σε αυτούς που εργάζονται στο Διαγνωστικό Κέντρο) παραπέμπει τον ασθενή του να πάει σε ένα Διαγνωστικό Εργαστήριο να κάνει εξετάσεις (π.χ. μία Μαγνητική Τομογραφία) οφείλει να έχει άποψη για την ποιότητα, τις προδιαγραφές και τις δυνατότητες των Ιατρικών Οργάνων που εμπλέκονται στην εκάστοτε εξέταση. Το γεγονός πως η Β Διάγνωση πρόσφατα εγκατέστησε νέο, σύγχρονο Μαγνητικό Τομογράφο δίνει στον Ιατρό σημαντικό κίνητρο να στείλει σε αυτό το Διαγνωστικό Κέντρο τον ασθενή του. Για την πλήρη ενημέρωση του παραπέμποντος Ιατρού, στην παραπάνω σελίδα αναφέρονται αναλυτικά τα χαρακτηριστικά του Νέου Μαγνητικού Τομογράφου. Μεταξύ άλλων, α- ναφέρεται η εταιρία κατασκευής του, το μαγνητικό του πεδίο, καθώς και μία γκάμα εξετάσεων που έχει τη δυνατότητα να παρέχει στους ασθενείς, που, ένας εξωτερικός Ιατρός πιθανόν να μην εύρισκε αλλού για να στείλει τον πελάτη του. ΝΕΟΣ ΑΞΟΝΙΚΟΣ ΤΟΜΟΓΡΑΦΟΣ Πρόκειται για ένα ένθεμα προσαρμοσμένου κώδικα HTML που, όπως έχουμε ήδη αναφέρει, ανήκει σε αυτά του τρίτου τμήματος της κεντρικής σελίδας του site μας. Είναι ένα ένθεμα καθαρά ενημερωτικού χαρακτήρα. Η παραπάνω εικόνα δεσμεύεται με link τόσο η ίδια, όσο και η λεζάντα της. Και του δύο links οδηγούν στην παρακάτω σελίδα: 42

43 Ομοίως με το προηγούμενο παράδειγμα για τον Μαγνητικό Τομογράφο και εδώ έχουμε να κάνουμε με ένα ενημερωτικό ένθεμα που αφορά καθαρά τους Ιατρούς. Όταν ένας Ιατρός (φυσικά δεν αναφερόμαστε σε αυτούς που εργάζονται στο Διαγνωστικό Κέντρο) παραπέμπει τον ασθενή του να πάει σε ένα Διαγνωστικό Εργαστήριο να κάνει εξετάσεις (π.χ. μία Αξονική Τομογραφία) οφείλει να έχει άποψη για την ποιότητα, τις προδιαγραφές και τις δυνατότητες των Ιατρικών Οργάνων που εμπλέκονται στην εκάστοτε εξέταση. Το γεγονός πως η Β Διάγνωση πρόσφατα εγκατέστησε νέο, σύγχρονο Αξονικό Τομογράφο δίνει στον Ιατρό σημαντικό κίνητρο να στείλει σε αυτό το Διαγνωστικό Κέντρο τον ασθενή του. Για την πλήρη ενημέρωση του παραπέμποντος Ιατρού, στην παραπάνω σελίδα αναφέρονται αναλυτικά τα χαρακτηριστικά του Νέου Αξονικού Τομογράφου. Μεταξύ άλλων, αναφέρεται η εταιρία κατασκευής του, καθώς και μία γκάμα εξετάσεων που έχει τη δυνατότητα να παρέχει στους ασθενείς, που, ένας εξωτερικός Ιατρός πιθανόν να μην εύρισκε αλλού για να στείλει τον πελάτη του. Β ΑΚΤΙΝΟΔΙΑΓΝΩΣΗ (ΑΙΓΙΟ) Πρόκειται για ένα ένθεμα προσαρμοσμένου κώδικα HTML που, όπως έχουμε ήδη αναφέρει, ανήκει σε αυτά του τρίτου τμήματος της κεντρικής σελίδας του site μας. Είναι ένα ένθεμα καθαρά ενημερωτικού χαρακτήρα. Η παραπάνω εικόνα δεσμεύεται με link τόσο η ίδια, όσο και η λεζάντα της. Και του δύο links οδηγούν στην παρακάτω σελίδα: 43

44 Όπως ήδη έχουμε αναφέρει, η Β Διάγνωση είναι ένα Διαγνωστικό Κέντρο που έχει έδρα του την πόλη της Πάτρας. Από εκεί και πέρα όμως, οι υπεύθυνοι του Διαγνωστικού, έχουν προβεί σε μία «γεωγραφική επέκταση» των υπηρεσιών υγείας που παρέχουν, στην ευρύτερη περιοχή του Νομού Αχαΐας και πιο συγκεκριμένα στο Αίγιο. Για τον σκοπό αυτό, λοιπόν, συστάθηκε στην πόλη του Αιγίου η «Β Ακτινοδιάγνωση», στα ίδια μοντέλα και πρότυπα με τη Β Διάγνωση, από τους ίδιους ανθρώπους, με τον πλέον σύγχρονο εξοπλισμό. Μια τέτοια επιχειρηματική δράση στην Υγεία, σαφέστατα και δεν πρέπει να παραληφθεί από την επίσημη ιστοσελίδα του Διαγνωστικού. Επομένως, τόσο ο ασθενής ιδιώτης, όσο και ο Ιατρός, ενημερώνονται για την ύπαρξη της Β Ακτινοδιάγνωσης στο Αίγιο (στοιχεία επικοινωνίας, τμήματα εξετάσεων, Ιατρικό δυναμικό) όπου πιθανά για κάποιους να είναι πολύ ευκολότερη η πρόσβαση εκεί. Πόσο μάλλον δε, που το Διαγνωστικό Κέντρο στο Αίγιο δεν διαθέτει (τουλάχιστον προς το παρόν) δικό του ιστότοπο και, ως εκ τούτου, είναι πολύ σημαντικό να διαφημιστεί μέσω του άμεσα συνεργαζόμενου με αυτό Κέντρου. 5.4 ΕΝΘΕΜΑΤΑ ΜΕ EXTERNAL LINKS Ένας ιστότοπος πάντοτε έχει ένα στοιχείο που τον χαρακτηρίζει. Για παράδειγμα ο ιστότοπος του Διαγνωστικού Κέντρου «Β Διάγνωση» χαρακτηρίζεται από τον κλάδο της υγείας. Το φάσμα ενδιαφέροντος σε έναν τέτοιο κλάδο είναι ιδιαίτερα ευρύ. Ως εκ τούτου, ένας ελκυστικός ιστότοπος δεν περιορίζεται μόνο στο δικό του περιεχόμενο. Αντιθέτως, δίνει έτοιμες προσβάσεις στον επισκέπτη σε άλλες ιστοσελίδες με συναφές περιεχόμενο. Αυτές είναι τα λεγόμενα external links. Για τον σκοπό αυτό, στον ιστότοπο που σχεδιάσαμε για τις ανάγκες αυτής της διπλωματικής εργασίας, περιλάβαμε και ορισμένα ενθέματα το οποίο παραπέμπουν τον επισκέπτη σε άλλες σελίδες, εκτός του τρέχοντος ιστοτόπου. Θα μπορούσα κάποιος να αναρωτηθεί τον λόγο για τον οποίο θα ήταν σημαντικό ένα τέτοιο εγχείρημα. Η αλήθεια είναι πως, με μία πρώτη ματιά, δεν μοιάζει λογικό να επιθυμούμε να δίνονται «αφορμές» στον επισκέπτη μας για να φεύγει από τη δική μας σελίδα και να παραπέμπεται σε άλλες. Όταν όμως, μέσα από την καθημερινή επισκεψιμότητα στη σελίδα μας συνειδητοποιήσει πως, με μεθοδικό πάντα τρόπο, μπορεί να βρει τα πιο σημαντικά external links για την υγεία μαζεμένα σε μία σελίδα, τότε θα μας προτιμήσει και η σελίδα η δική μας θα αποτελέσει την αφετηρία για επίσκεψη σε άλλες σελίδες. Στην πραγματικότητα, όσον αφορά αυτό το κομμάτι σχεδιασμού, ο ιστότοπό μας συμπεριφέρεται σαν ένα «site κόμβος» μέσα από το οποίο παρέχεται η δυνατότητα άμεσης πρόσβασης σε πολλά άλλα sites. 44

45 ΙΑΤΡΙΚΗ ΕΝΗΜΕΡΩΣΗ Πρόκειται για ένα ένθεμα το οποίο το προσθέσαμε στο site του Διαγνωστικού Κέντρου για να ενημερώνεται ο επισκέπτης για σημαντικά θέματα υγείας, τα οποία δεν άπτονται της λειτουργίας και των δραστηριοτήτων του Διαγνωστικού. Στην παραπάνω εικόνα φαίνεται το αντικείμενο που εμφανίζεται στην Αρχική Σελίδα (Home Page) το οποίο έχει το ίδιο ενεργό link τόσο στην εικόνα του, όσο και στην λεζάντα «Ιατρική Ενημέρωση» που συνοδεύει την εικόνα. Επομένως, κάνοντας κλικ σε οποιοδήποτε από τα δύο (εικόνα ή λεζάντα) εμφανίζεται η παρακάτω σελίδα: Όπως παρατηρούμε στην παραπάνω εικόνα, κατά την είσοδο του επισκέπτη στο ένθεμα «Ιατρική Ενημέρωση» εμφανίζεται μία διακριτική λίστα με τίτλους ειδήσεων σχετικούς με την Υγεία. Κάθε τίτλος συνοδεύεται από την ημερομηνία στην οποία έγινε η ανάρτηση της Ιατρικής είδησης. Όλοι οι τίτλοι εμφανίζονται ταξινομημένοι σε φθίνουσα σειρά με βάση την ημερομηνία. Αποτελεί κοινή πεποίθηση πως οι τίτλοι ειδήσεων που αναρτήθηκαν πιο πρόσφατα, είναι και οι πιο επίκαιροι. Συνεπώς, η 45

46 ταξινόμηση αυτή επιτρέπει στον επισκέπτη να αντιληφθεί πως τις πιο πρόσφατες ειδήσεις θα τις εντοπίσει στην κορυφή της σχετικής λίστας. Κάθε τίτλος, σε κάθε γραμμή της προαναφερθείσας λίστας, φέρει ένα external link. Όταν, δηλαδή, ο επισκέπτης κάνει κλικ στον εκάστοτε τίτλο, η ιστοσελίδα του Διαγνωστικού Κέντρου θα τον παραπέμψει σε μία ιστοσελίδα εξωτερική, που δεν περιλαμβάνεται σε αυτές του domain της Β Διάγνωσης. Αυτή η εξωτερική ιστοσελίδα θα περιλαμβάνει τον τίτλο που είχα κάνει αρχικά κλικ ο επισκέπτης και ένα συνοδευτικό κείμενο (άρθρο) σχετικό με αυτόν τον τίτλο. Το url παραπομπής, μπορεί να είναι ένα οποιοδήποτε url, αρκεί να είναι συναφές τόσο με τον τίτλο, όσον και με τον ευρύ κλάδο της υγείας γενικότερα. Έστω, για παράδειγμα, ότι κάνουμε κλικ στον τίτλο με το κείμενο «Απίστευτο: Η γραφειοκρατία μετά στο δρόμο 2000 βαριά ασθενείς!» που βρίσκεται στην κορυφή της λίστας (οφείλουμε να είναι αυτός που βρίσκεται πιο κοντά στην εκάστοτε «σημερινή» ημερομηνία σε σχέση με όλους τους υπόλοιπους τίτλους), τότε το αποτέλεσμα θα είναι να μας παραπέμψει στην παρακάτω σελίδα: Από την παραπάνω εικόνα γίνεται ξεκάθαρο που έχουμε οδηγηθεί σε μία σελίδα που δεν υπάγεται στο domain του Διαγνωστικού Κέντρου «Β Διάγνωση». Πρόκειται για μία σελίδα που ανήκει σε ένα blog ιατρικής ενημέρωσης και συγκεκριμένα το medispin.blogspot.gr. Έχουμε φροντίσει, δε, το εξωτερικό link να ανοίγει σε νέο παράθυρο (new window) ώστε να μην «αντικαθιστά» τη σελίδα μας. Αυτή η μέθοδος καθιστά ακόμη πιο σαφές στον επισκέπτη πως, τη δεδομένη χρονική στιγμή, έχει παραπεμφθεί σε μία άλλη ιστοσελίδα και πως, για να επιστρέψει σε αυτήν της Β Δι- 46

47 άγνωση δεν έχει παρά να επιλέξει εκ νέου το παράθυρο που βρισκόταν αμέσως πριν. Όπως γίνεται αντιληπτό, το συγκεκριμένο ένθεμα με τα external links προσδίδει μεγάλη δυναμικότητα στο site μας. Την δυναμικότητα, όμως, αυτή, δεν την προσδίδουν στο site τα external links. Όπως θα δούμε παρακάτω, υπάρχει κι άλλο ένθεμα που έχουμε εισάγει στον ιστότοπό μας με external links το οποίο δεν προσδίδει καμία απολύτως δυναμικότητα στον ιστότοπο. Στην πραγματικότητα, η δυναμικότητα εδώ έγκειται στα χαρακτηριστικά του ίδιου του ενθέματος, που μας δίδουν την δυνατότητα, με πολύ απλό τρόπο κάθε φορά, να αλλάζουμε τους τίτλους για τα external links, διατηρώντας κάθε φορά την Ιατρική Ενημέρωση ιδιαίτερα επίκαιρη. Τέλος, να αναφέρουμε πως, με βάση τον αρχικό σχεδιασμό που είχαμε κάνει, όπου είχαμε διακρίνει τους επισκέπτες σε ασθενείς ιδιώτες και σε ιατρούς, εδώ βλέπουμε ένα δυναμικό ενημερωτικό ένθεμα, που απευθύνεται τόσο στην μία κατηγορία επισκεπτών, όσο και στην άλλη ΣΥΝΔΕΣΕΙΣ Πρόκειται για ένα ένθεμα, που εμφανίζεται με το παραπάνω εικονίδιο στην αρχική μας σελίδα, το οποίο, όπως και το προηγούμενο που περιγράψαμε, εμφανίζει έναν οριοθετημένο πίνακα με ορισμένα external links. Υπάρχει όμως μία πολύ σημαντική διαφορά. Στην πρώτη περίπτωση, τα external links πρέπει, σε καθημερινή βάση (πολλές φορές και κατά τη διάρκεια της ίδιας της ημέρας), να αλλάζουν. Όπως θα δούμε και στη συνέχεια, τα external links του ενθέματος «Συνδέσεις», πολύ σπάνια θα χρειαστεί να υποστούν κάποια τροποποίηση. Ένας ιστότοπος που «παρουσιάζει» μία εταιρία πρέπει στο περιεχόμενό του, να κάνει μια στοιχειώδη αναφορά σε τυχόν συνεργάτες αυτής της εταιρίας. Η συνεργασία στα πλαίσια της υγείας είναι μια ιδιαίτερα ευρεία έννοια, δεδομένου πως δεν προβλέπει απαραίτητα την οικονομική συναλλαγή μεταξύ των συνεργατών. Επίσης δεν είναι υποχρεωτικό οι συνεργάτες μεταξύ τους να είναι ομόλογοι. Για να πούμε περισσότερα, ας δούμε παρακάτω τι θα εμφανιστεί αν, βρισκόμενοι στην αρχική μας σελίδα, κάνουμε κλικ στο παραπάνω εικονίδιο, ή, αντίστοιχα, στη λεζάντα του: 47

48 Σε αυτό το σημείο, οφείλουμε να κάνουμε μία πολύ συνοπτική αναφορά σε κάθε μία από τις παρακάτω συνδέσεις ξεχωριστά: Ο πασίγνωστος Εθνικός Οργανισμός Παροχής Υπηρεσιών υγείας. Πρόκειται για ένα νέο Νομικό πρόσωπο δημοσίου δικαίου το οποίο συνεστήθη με τον νόμο ΦΕΚ ΤΕΥΧΟΣ Β ΑΡ.ΦΥΛΛΟΥ 2456/2011, με σκοπό την παροχή υπηρεσιών υγείας από έναν ενιαίο εθνικό φορέα. Η έναρξη λειτουργίας του Οργανισμού είναι η 1η Ιανουαρίου Βρίσκεται σε άμεση συνεργασία με το Διαγνωστικό Κέντρο Β Διάγνωση (η πλειοψηφία των ασθενών είναι ασφαλισμένοι στον παραπάνω φορέα) στο οποίο αναφέρεται ο ιστότοπος που σχεδιάσαμε. Όπως είναι λογικό το external link εδώ παραπέμπει στην αρχική σελίδα του οργανισμού που είναι το url: 48

49 Ο Πανελλήνιος Σύνδεσμος Ιδιωτικών Διαγνωστικών Κέντρων. Παραπέμπει στο url: όπου εμφανίζονται ανακοινώσεις σχετικά με οτιδήποτε νεότερο αφορά τα Διαγνωστικά Εργαστήρια σε όλη την Ελλάδα External link που παραπέμπει στο επίσημο site του Υ- πουργείου Υγείας με url: Παραπέμπει στο επίσημο site του Ιατρικού Συλλόγου της Πάτρας με url: External link που οδηγεί σε ειδησεογραφικό site των Ελλήνων της Ομογένειας στα πλαίσια αμφίδρομης διαφήμισης και καλής σχέσης μεταξύ των εταίρων των δύο εταιριών 49

50 Παραπέμπει στο site της Πανελλήνιας Ένωσης Ιδιωτικών Κλινικών με url: External link που οδηγεί στην επίσημη ιστοσελίδα της Πανελλήνιας Ομοσπονδίας Σωματείων Ιδιωτικής Πρωτοβάθμιας Υγείας με url: Παραπέμπει στην επίσημη ιστοσελίδα του Πανελληνίου Συλλόγου Γυναικών με Καρκίνο του Μαστού που έχει url: 50

51 5.5 ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ ΕΝΘΕΜΑΤΑ Τα αλληλεπιδραστικά ενθέματα αποτελούν, ίσως, το πιο περίπλοκο κομμάτι στον σχεδιασμό ενός ιστοτόπου. Φυσικά, δεν οφείλει ο κάθε ιστότοπος να αποτελείται από αλληλεπιδραστικά ενθέματα. Πολλές φορές μάλιστα, βάσει του περιεχομένου που προβλέπεται να έχει, ανάλογα με το τι πρεσβεύει, δεν προβλέπεται καν. Σε κάθε περίπτωση, όμως, ένας δυναμικός ιστότοπος γίνεται πολύ πιο ελκυστικός, όταν σε αυτόν προστίθενται ενθέματα με αλληλεπιδραστικό χαρακτήρα. Με τον όρο «αλληλεπιδραστικό» στην προκειμένη περίπτωση, αναφερόμαστε στην δυνατότητα που δίνει το ένθεμα στον κάθε επισκέπτη χρήστη, να παρεμβαίνει στον ιστότοπο, να «αναγνωρίζεται» από τον ιστότοπο και γενικότερα να αλλάζει τον τρόπο εμφάνισης και «συμπεριφοράς» της ιστοσελίδας. Όπως έχει χαρακτηριστικά αναφερθεί και στον πρόλογο αυτής της διπλωματικής εργασίας, ένας από τους βασικότερους στόχους μας είναι η αναβάθμιση της ιστοσελίδας του Διαγνωστικού Κέντρου «Β Διάγνωση». Με τον όρο «αναβάθμιση», δεν αναφερόμαστε στη χρήση τρισδιάστατων γραφικών, ούτε εντυπωσιακών εφέ. Αντιθέτως, επιδιώκεται η ποιοτική αναβάθμιση του site. Υπάρχει διάχυτη η φιλοδοξία, να προστίθεται συνεχώς στον ιστότοπο ενθέματα και εργαλεία που θα τον κάνουν συνεχώς όλο και πιο ελκυστικό. Για να χαρακτηριστεί ως «ελκυστικός» ένας ιστότοπος, οφείλει να δίνει συνεχώς στον επισκέπτη «αφορμές» για την παραμονή του σε αυτόν. Το να έχει μία ιστοσελίδα επισκεψιμότητα και να την επισκέπτονται χιλιάδες χρήστες σε καθημερινή βάση, το γεγονός αυτό από μόνο του μπορεί να μην λέει τίποτα. Το «εύκολο» έργο για αυτόν που σχεδιάζει έναν ιστότοπο, είναι να παρακινήσει έναν χρήστη να επισκεφθεί μια σελίδα στο web. Το «δύσκολο», όμως, έργο είναι να τον κάνει να παραμείνει στον ιστότοπο παραπάνω από δύο λεπτά, προσελκύοντάς τον να πλοηγηθεί περαιτέρω στο περιεχόμενό του. Για να επιτευχθεί ένα τέτοιος στόχος, οφείλουμε σχεδιάζοντας μία ιστοσελίδα να μην αρκούμαστε μόνον σε ενημερωτικό περιεχόμενο. Κάθε άλλο μάλιστα. Ένας ιστότοπος καθαρά ενημερωτικός τείνει να χαρακτηριστεί απρόσωπος και «απόμακρος». Όταν ο επισκέπτης αισθανθεί πως ο ιστότοπος είναι σχεδιασμένος για εκείνον, για τις ανάγκες του, για τα ενδιαφέροντά του, ότι θα επηρεάσει την εξέλιξη του ιστοτόπου ή γνώμη του, η άποψή του, τότε το πιο πιθανό αποτέλεσμα είναι ένας «εφήμερος» επισκέπτης, να μετατραπεί σε «μόνιμο» επισκέπτη. Ο τελευταίος, θα επισκέπτεται την ιστοσελίδα μας σε καθημερινή βάση και, ο λόγος που θα το κάνει αυτό, θα είναι γιατί αφενός θα υπάρχει συνεχώς κάτι καινούριο να δει και, αφετέρου, γιατί θα μπορεί να παρεμβαίνει σε αυτήν και να παίρνει τις πληροφορίες που θέλει άμεσα, ανάλογα με την ιδιότητά του και τις ανάγκες του. Αυτό σημαίνει πως ο ιστότοπος, θα πρέπει να έχει την δυνατότητα να «φιλτράρει» τις πληροφορίες, να αποκρύπτει αυτές που δεν έχουν ιδιαίτερη σημασία για εκείνων και να θέτει ως προτεραιότητα την εμφάνιση εκείνων των πληροφοριών που τον ενδιαφέρουν περισσότερο. Αυτός είναι και ο λόγος που στον αρχικό μας σχεδιασμό και στην καταγραφή των αναγκών για την υλοποίηση του ιστοτόπου μας, κά- 51

52 ναμε έναν αρχικό διαχωρισμό των πιθανών επισκεπτών του site μας σε δύο άξονες - κατηγορίες. (Α) Στους Ασθενείς Ιδιώτες και (Β) στους Ιατρούς. Ο σκοπός αυτού του διαχωρισμού γίνεται για να μας δοθεί η «πρόκληση» να σχεδιάσουμε μία ιστοσελίδα που θα μπορεί να «ξεχωρίζει» τον εκάστοτε επισκέπτη, να τον κατατάσσει αυτόματα σε μία από τις δύο κατηγορίες και να έχει την στοιχειώδη «νοημοσύνη» να του εμφανίσει πληροφορίες και εργαλεία διαχείρισης που ταιριάζουν περισσότερο στην κατηγορία που υπάγεται, ενώ, παράλληλα, θα αποκρύπτει «άχρηστες» για αυτόν πληροφορίες ΕΝΘΕΜΑ «ΓΙΝΕ ΜΕΛΟΣ!» Έχουμε ήδη αναφέρει το βασικό αρχικό διαχωρισμό που έχουμε κάνει στους επισκέπτες του ιστοτόπου μας. Από τη μία μεριά έχουμε τους «Ασθενείς Ιδιώτες» και από την άλλη τους «Ιατρούς». Έχουμε επίσης επισημάνει πως μεγάλο μέρος του περιεχομένου της ιστοσελίδας μας απευθύνεται και στην μία κατηγορία επισκεπτών και στην άλλη. Όμως, από ένα σημείο και μετά, σχεδιάσαμε ενθέματα τα οποία αφορούν μία συγκεκριμένη κατηγορία. Για παράδειγμα, έχουμε σχεδιάσει ένθεμα το οποίο αναφέρεται στα Ιατρικά Συνέδρια που διενεργήθηκαν ή ακόμη πιο σημαντικό, που πρόκειται να διενεργηθούν, τόσο στην Ελλάδα, όσο και στο εξωτερικό. Αυτού του είδους οι πληροφορίες, αντικειμενικά αφορούν πολύ περισσότερο τους Ιατρούς παρά έναν οποιονδήποτε άλλον επισκέπτη. Ένας ασθενής που θα συναντήσει μία επιλογή που να αφορά Ιατρικά Συνέδρια, το πιο πιθανό σενάριο είναι να την αγνοήσει αμέσως ή ακόμη και να ενοχληθεί αισθανόμενο πως ο ιστότοπος τον οποίο επισκέφθηκε του εμφανίζει περιεχόμενο το οποίο δεν το αφορά. Αυτό είναι σίγουρα κάτι που θα λειτουργήσει ανασταλτικά στο να μας επισκεφθεί ο συγκεκριμένος χρήστης εκ νέου. Για τους παραπάνω λόγους, σκεφτήκαμε πως η ιστοσελίδα μας επιβάλλεται να έχει την δυνατότητα να διαχωρίζει τον «ασθενή ιδιώτη» από τον «ιατρό» και να του εμφανίζει το αντίστοιχο περιεχόμενο που θα τον ενδιαφέρει περισσότερο. Ένα τέτοιο εργαλείο διαχωρισμού δίνει στον οποιονδήποτε επισκέπτη την αίσθηση πως οι άνθρωποι που επιμελήθηκαν τον ιστότοπο τον «νοιάζονται». Είναι γεγονός πως το εξειδικευμένο περιεχόμενο για συγκεκριμένες ομάδες χρηστών πάντοτε είναι ελκυστικό, δεδομένου πως ο χρήστης αισθάνεται πως μπαίνει σε έναν χώρο του άμεσου ενδιαφέροντός του. Για να επιτευχθούν, όμως, όλα τα παραπάνω χρειάζεται και η συνεισφορά των ίδιων των χρηστών. Σε πρώτη φάση, είναι σημαντικό ο ιστότοπός μας να τους δίδει την δυνατότητα να συμμετέχουν σε αυτήν την διαδικασία εθελοντικά. Αυτό σημαίνει, πως θα υπάρχει ένα γενικό περιεχόμενο για τον οποιονδήποτε χρήστη ε- πισκέπτη (και σίγουρα μέσα σε αυτό θα περιλαμβάνεται και η αρχική σελίδα) αλλά, από εκεί και πέρα, εάν ο ίδιος το επιθυμεί, θα μπορεί να αποκτήσει πρόσβαση σε έναν χώρο που το περιεχόμενο από μόνο του τον εντάσσει σε μία κατηγορία και είναι του άμεσου ενδιαφέροντός του. Εθελοντικά, επομένως, θα πρέπει να μπορεί ο κάθε επισκέπτης να δηλώνει τον εαυτό του ως ΜΕΛΟΣ του ιστοτόπου μας. 52

53 Συνεπώς, δημιουργήσαμε στην αρχική μας σελίδα, ώστε κάθε επισκέπτης να μπορεί να το δει, το παρακάτω ένθεμα: Το ένθεμα (προσαρμοσμένου html κώδικα) της παραπάνω εικόνας έχει κοινό ενεργό link τόσο στο εικονίδιό του, όσο και στην λεζάντα «Γίνε Μέλος!». Επομένως, οπουδήποτε εκ των δύο και αν κάνει κλικ ο επισκέπτης, θα εμφανιστεί το παρακάτω αποτέλεσμα: 53

54 Στην παραπάνω εικόνα είναι εμφανές πως στον εκάστοτε χρήστη γίνεται σαφές το ποια θα είναι τα «οφέλη» αν αποφασίσει να γίνει διαδικτυακό μέλος της Β Διάγνωσης. Εμείς θα σταθούμε στο κομμάτι που έχει να κάνει με την δήλωση της ι- διότητας του κάθε μέλους, μιας και αυτό αποτελεί την βάση της «αλληλεπιδραστικότητας» του ενθέματος. Θα παραθέσουμε παρακάτω ένα παράδειγμα που θα φανεί ο τρόπος λειτουργίας του ενθέματος, η ανατροφοδότηση που λαμβάνουμε εμείς ως διαχειριστές στο Joomla και, γενικότερα, το πώς ξεκινάμε να δουλεύουμε στο σύνολό του αυτό το εργαλείο αναγνώρισης και διαχωρισμού των χρηστών, όπου, όπως θα αποδειχθεί και στη συνέχεια, ένα μόνο ένθεμα δεν είναι αρκετό για να επιτευχθεί κάτι τέτοιο. Έστω, λοιπόν, πως ένας χρήστης με δηλώνει τον εαυτό του ως μέλος του site (και συγκεκριμένα με την ιδιότητα του Ιατρού), με όνομα Kostas μέσα από το panel που δείξαμε στην παραπάνω εικόνα. Τα στοιχεία επομένως πρέπει να συμπληρωθούν ως εξής: και στη συνέχεια, φυσικά, κλικ στο κουμπί Subscribe Κατόπιν, ο Διαχειριστής (Administrator) του ιστοτόπου (στην προκειμένη περίπτωση ο συντάκτης αυτής της διπλωματικής εργασίας) ανατρέχει στο control panel του Joomla και στη συνέχεια στην αντίστοιχη εφαρμογή πάνω στην οποία βασίστηκε το ένθεμα για τα μέλη. Για τον ιστότοπο του Διαγνωστικού Κέντρου «Β Διάγνωση» επιλέχθηκε το extension με όνομα jnews το οποίο διατίθεται δωρεάν στο επίσημο site εφαρμογών του Joomla το 54

55 Συγκεκριμένα, βρισκόμενοι στο control panel του Administration του Joomla, κάνουμε τα εξής βήματα: Όπως φαίνεται και στην παραπάνω εικόνα ανατρέχουμε στο menu Components μετά στην εφαρμογή jnews και μετά επιλέγουμε Subscribers έτσι ώστε να εμφανιστεί η λίστα με τους χρήστες οι οποίοι έχουν δηλωθεί ως μέλη. Το αποτέλεσμα φαίνεται παρακάτω: Όπως φαίνεται και από τη λίστα της παραπάνω εικόνας, ο χρήστης με από το στιγμή που δηλώθηκε ως μέλος, εμφανίστηκε αυτόματα στους subscribers της εφαρμογής. 55

56 Με αυτόν τον τρόπο ο διαχειριστής της σελίδας μπορεί να δει το του εκάστοτε μέλους και να του στείλει από τον λογαριασμό ηλεκτρονικού ταχυδρομείου που ανήκει στο Διαγνωστικό Κέντρο ένα μήνυμα που θα περιέχει το username και το password του για να αποκτήσει αυτός με τη σειρά του εξουσιοδοτημένη πρόσβαση στο εξειδικευμένο περιεχόμενο (μόνο για μέλη) της ιστοσελίδας. Το πού εισάγονται τα στοιχεία για την πρόσβαση σε αυτό το περιεχόμενο, θα το δούμε σε επόμενη ενότητα αυτής της διπλωματικής. Όταν, λοιπόν, ο Διαχειριστής της σελίδας στείλει το μήνυμα, θα εμφανιστεί στο λογαριασμό του χρήστη μέλους με τον παρακάτω τρόπο: Η παραπάνω εικόνα αποτελεί ένα δείγμα από το panel ανοικτού εισερχόμενου μηνύματος ενός χρήστη που έχει λογαριασμό στο gmail (google mail). Παρατηρούμε πως ο χρήστης με το έχει λάβει ένα εισερχόμενο μήνυμα από τη Β Διάγνωση. Το μήνυμα αυτό, αφενός του επιβεβαιώνει και επίσημα πως έχει γίνει διαδικτυακό μέλος του Διαγνωστικού Κέντρου, αφετέρου του γνωστοποιεί το όνομα χρήστη και τον κωδικό που θα χρειαστεί για να εισέλθει στο εξειδικευμένο περιεχόμενο του site που σχετίζεται με την ιδιότητα κατά τη οποία δήλωσε τον εαυτό του όταν εγγράφτηκε ως μέλος Αυτό το μήνυμα που εμφανίσαμε ως δείγμα, δεν θα είναι, φυσικά, το τελευταίο μήνυμα που θα λάβει από τον διαδικτυακό λογαριασμό της εταιρίας. Ο σκοπός της χρήσης της εφαρμογής και του ενθέματος jnews, δεν ήταν απλός για να μπορεί κάποιος χρήστης να εγγράφεται και να αποκτά κάπου πρόσβαση σαν εξουσιοδοτημένος, πλέον, χρήστης. Μία έξτρα δυνατότητα που επιθυμούμε να εκμεταλλευτούμε από τη χρήση αυτής της εφαρμογής, είναι αυτή της συνεχούς ενημέρωσης των μελών. Επειδή, μέχρι στιγμής, έχουμε παραθέσει πολλά παραδείγματα που αναδεικνύουν ενημερωτικές πτυχές αυτού του site, οφείλουμε σε αυτό το σημείο να 56

57 ξεκαθαρίσουμε το τι είδους ενημέρωση θα είναι αυτή η οποία θα λαμβάνουν τα μέλη. Συνεπώς παραθέτουμε στα παρακάτω bullets τους άξονες που θα είναι προσανατολισμένη αυτή η ενημέρωση: Ενημέρωση των μελών για οποιαδήποτε ΝΕΑ εφαρμογή προστεθεί στο site. Είναι σημαντικό το μέλος να αισθάνεται τη δυναμικότητα του ιστοτόπου και να περιμένει συνεχώς που αυτό θα εμπλουτίζεται με νέα εργαλεία. Αυτό του κρατά το ενδιαφέρον σταθερά σε επιθυμητό επίπεδο και του δίνει διαρκές κίνητρο να επισκέπτεται τον ιστότοπό μας Ενημέρωση των Ιατρών για την υποστήριξη νέων εξετάσεων από το Διαγνωστικό Κέντρο, για την αγορά νέου εξοπλισμού, νέων Ιατρικών Μηχανημάτων και Οργάνων, για οποιαδήποτε επιστημονική και τεχνολογική εξέλιξη του Κέντρου, καθώς και για τυχόν ημερίδες που διενεργούνται από το Κέντρο και οι Ιατροί Μέλη αποτελούν τους καλεσμένους αυτών Ενημέρωση των ασθενών ιδιωτών για νέες τιμές σε εξετάσεις, για εκπτωτικά πακέτα, για προσφορές, για την υποστήριξη νέων εξετάσεων, για υπουργικές αποφάσεις σχετικά με το ασφαλιστικό κτλ Όπως διαφαίνεται από τα παραπάνω, υπάρχουν, μεν, ενημερώσεις που αφορούν όλα τα μέλη (ανεξαρτήτου ιδιότητος), υπάρχουν όμως και ενημερωτικά newsletters που το αντικείμενο ενδιαφέροντός τους εστιάζεται πολύ περισσότερο σε μία συγκεκριμένη ιδιότητα. Για παράδειγμα, τα επιστημονικά θέματα αφορούν καθαρά σχεδόν τους Ιατρούς, ενώ τα εκπτωτικά πακέτα εξετάσεων τους ασθενείς. Επομένως, επιβάλλεται να υπάρχει η δυνατότητα, πέραν από τη μαζική αποστολή ενημερωτικών e- mails στα μέλη, να μπορεί να πραγματοποιείται και επιμέρους διαχωρισμός. Να μπορεί δηλαδή ένα μήνυμα να αποσταλεί ναι μεν μαζικά, αλλά μόνο στη μία ομάδα μελών (π.χ. μόνον στους Ιατρούς) και όχι στην άλλη. Ευτυχώς αυτή η δυνατότητα παρέχεται στο jnews, την εφαρμογή δηλαδή που έχουμε επιλέξει για αυτόν τον σκοπό: 57

58 Στην παραπάνω εικόνα φαίνεται ένα σαφές παράδειγμα της δυνατότητας της συγκεκριμένης εφαρμογής. Ο διαχειριστής (administrator) έχει ήδη δημιουργήσει τις ομάδες. Από εκεί και πέρα ένας subscriber (μέλος) διαλέγει να ενταχθεί σε μία από αυτές. Για να στείλει ένα νέο newsletter ο διαχειριστής του site θα πρέπει να κάνει τα εξής βήματα: Όπως φαίνεται και στην παραπάνω εικόνα, βρισκόμενος στο administration panel του Joomla θα πρέπει να ανατρέξει στα components, να επιλέξει jnews και μετά Newsletters. Το Joomla τότε θα τον παραπέμψει στο παράθυρο που φαίνεται στην επόμενη εικόνα: 58

59 Σε αυτό το παράθυρο εμφανίζεται μία λίστα με όλα τα ενημερωτικά s που έχουν σταλεί μέχρι στιγμής από τον διαχειριστή. Πάνω δεξιά σε σχέση με αυτήν την λίστα παρατηρούμε ένα κουμπί που αναγράφει New όπου κάνουμε κλικ για να συντάξουμε ένα νέο newsletter. Το αποτέλεσμα θα είναι να εμφανιστεί ένα νέο παράθυρο όπου εκεί θα πληκτρολογήσουμε το κείμενο του newsletter και στα δεξιά αυτού θα εμφανιστεί η εικόνα για την οποία μιλήσαμε νωρίτερα όπου δίνεται η δυνατότητα στον διαχειριστή να αποστείλει το newsletter σε μία συγκεκριμένη ομάδα και όχι απαραίτητα σε όλα τα μέλη. Με την ολοκλήρωση αυτής της διαδικασίας το νέο newsletter θα προστεθεί στη λίστα με τα ήδη υπάρχοντα και, αν παρατηρήσουμε καλύτερα την παραπάνω εικόνα, θα δούμε πως για το κάθε ένα ενημερωτικό μήνυμα ξεχωριστά υπάρχει η επιλογή send όπου ως αποτέλεσμα θα έχει το newsletter να αποσταλεί στην ομάδα μελών που έχει από πριν οριστεί πως απευθύνεται ΕΝΘΕΜΑ «ΣΥΝΔΕΣΗ ΜΕΛΩΝ» Όπως ήδη έχουμε αναφέρει, από τη στιγμή που ένας επισκέπτης του site γίνει διαδικτυακό μέλος του ιστοτόπου μας, πέραν όλων των άλλων, του παρέχεται και η εξουσιοδοτημένη δυνατότητα εισόδου σε έναν εξειδικευμένο χώρο στον ιστότοπο, όπου αν δεν γινόταν μέλος, δεν θα μπορούσε να εισέλθει σε αυτήν. Το ένθεμα «Σύνδεση Μελών» έχει ως στόχο να βοηθήσει τα μέλη να εισέλθουν στο δικό τους αποκλειστικό χώρο, σχεδιασμένο με γνώμονα την ιδιότητά τους (ασθενής ιδιώτης ή ιατρός). Γίνεται επομένως αντιληπτό πως πρόκειται για ένα ένθεμα που χρησιμοποιείται σαν προέκταση του ενθέματος «Γίνε Μέλος!» για το οποίο μιλήσαμε στην αμέσως προηγούμενη ενότητα. Δεν υπάρχει, ως εκ τούτου, κανένας λόγος από τον επισκέπτη να ενεργοποιήσει το ένθεμα «Σύνδεση Μελών» εάν δεν έχει ορίσει ήδη εαυτόν ως διαδικτυακό μέλος του ιστοτόπου μας. Το ένθεμα «Σύνδεση Μελών» εμφανίζεται στο κάτω δεξιά μέρος της αρχικής σελίδας του site μας με την παρακάτω μορφή: Στη πραγματικότητα πρόκειται για μία μορφή, ας μας επιτραπεί να την χαρακτηρίσουμε «προενθέματος» για την τελική εισαγωγή στο κύριο ένθεμα μέσα από το οποίο τα ήδη μέλη συνδέονται στο εξειδικευμένο τους περιεχόμενο. Το προένθεμα είναι προσαρμοσμένου html κώδικα και στηρίζεται στην προηγούμενη λογική των περισσότερων ενθεμάτων της αρχικής σελίδας. Αυτό σημαίνει πως η παραπομπή του χρήστη στο κύριο ένθεμα, μπορεί να γίνει τόσο από το εικονίδιο, όσο και από τη λεζάντα «Σύνδεση Μελών» κάνοντας ένα απλό κλικ πάνω της. 59

60 Συνεπώς, το αποτέλεσμα κάνοντας κλικ οπουδήποτε σε αυτά που αναφέρθηκαν παραπάνω, φαίνεται στην παρακάτω εικόνα (επειδή είναι σημαντικό να φανεί όλο το πάνελ, το φωτογραφίσαμε σε δύο μέρη καρέ καρέ): Μέρος 1 ο : Καλωσόρισμα Μέρος 2 ο : Login Μελών 60

61 Στο κομμάτι που αφορά το καλωσόρισμα γίνεται μία επεξήγηση στα μέλη, σχετικά με τον τρόπο που θα αξιοποιήσουν τους κωδικούς που τους έχουν ήδη σταλεί στο λογαριασμό του ηλεκτρονικού τους ταχυδρομείου, ανάλογα με την ιδιότητά τους. Στο δεύτερο μέρος που είναι η καθαυτή σύνδεση των μελών, φαίνεται ξεκάθαρα ο διαχωρισμός ανάμεσα στις δύο κατηγορίες των διαδικτυακών μελών μας. Παρατηρούμε πως υπάρχει ένα ξεχωριστό login ένθεμα για τους ασθενής ιδιώτες και ένα άλλο για τους ιατρούς. Πολύ σωστά μπορεί να παρατηρήσει κάποιος πως θα φαινόταν πολύ πιο όμορφο και αρμονικό αυτό το περιβάλλον να χρησιμοποιεί το ίδιο login ένθεμα και για τις δύο κατηγορίες των μελών. Όμως, στο Joomla, κάτι τέτοιο πολλές φορές δεν καθίσταται εφικτό. Αν στον ίδιο χώρο ενός τμήματος του ιστοτόπου μας, καλέσουμε δύο φορές το ίδιο ένθεμα, παρουσιάζονται πολλές φορές διάφορες δυσλειτουργίες που οδηγούν εντέλει στο να μην «δουλεύει» το ένα από τα δύο, ή και τα δύο, ή να εμφανίζει σφάλμα κατά την εμφάνισή της η σελίδα κτλ. Αυτός ήταν ο λόγος που τελικά επιλέξαμε δύο διαφορετικά login ενθέματα, ένα για κάθε κατηγορία των μελών μας. Το σε πιο ένθεμα θα πρέπει να ανατρέξει ο εκάστοτε χρήστης είναι κάτι το οποίο το επεξηγούμε στο καλωσόρισμα της τρέχουσας σελίδας. Έτσι, λοιπόν, για την σύνδεση των ασθενών ιδιωτών, χρησιμοποιήσαμε το ένθεμα BT Login το οποίο διατίθεται δωρεάν από το επίσημο site των extensions του Joomla το οποίο έχουμε ήδη αναφέρει ποιο είναι. Το ένθεμα αυτό φαίνεται ως link για νόμιμο download στην παρακάτω εικόνα: Όσον αφορά την σύνδεση των διαδικτυακών μελών μας που, κατά την έγγραφή τους δηλώθηκαν ως Ιατροί, χρησιμοποιήσαμε το ήδη διαθέσιμο default login ένθεμα που έχει ενσωματωμένο το Joomla και μπορούμε να το χρησιμοποιήσουμε ανά πάσα στιγμή από την ώρα που θα το εγκαταστήσουμε. Σε αυτό το σημείο δημιουργείται το εξής ερώτημα: Πως καταφέρνει το site και αναγνωρίζει τα μέλη; Πως «αποφασίζει» για το αν θα επιτρέψει την είσοδο σε κάποιο μέλος ή όχι; Πως γίνεται και «καταλαβαίνει» ποια ενθέματα εργαλεία θα καλέσει για εμφάνιση ανάλογα με την ιδιότητα του κάθε μέλους; Όλα αυτά τα πολύ σημαντικά ερωτήματα που διαδραματίζουν καταλυτικό ρόλο στην αναβάθμιση του ιστοτόπου μας σε ένα «έξυπνο» site, θα τα απαντήσουμε στην ενότητα που ακολουθεί. 61

62 5.5.3 ΔΙΑΧΩΡΙΣΜΟΣ ΤΩΝ ΜΕΛΩΝ ΚΑΙ ΔΙΚΑΙΩΜΑΤΑ ΠΡΟΣΒΑΣΗΣ Έχουμε ήδη αναφερθεί στα access levels που παρέχει το Joomla για τους χρήστες. Αυτά τα access levels πρέπει να ρυθμιστούν τόσο από τον User Manager του Joomla στο Administration Panel, όσο και από τις ρυθμίσεις του εκάστοτε ενθέματος το οποίο αφορούν αυτά τα δικαιώματα πρόσβασης. Ας ξεκινήσουμε, λοιπόν, με τον User Manager του Joomla. Βρισκόμενοι στο Administration Panel του Joomla, όπως φαίνεται και στην παραπάνω εικόνα, επιλέγουμε Users και στη συνέχεια User Manager. Το παράθυρο που προκύπτει φαίνεται στην εικόνα που ακολουθεί: Στη λίστα με τους users, αν παρατηρήσουμε προσεκτικά, φαίνονται τρεις εγγεγραμμένοι χρήστες. Ο Super User υπάρχει έτσι κι αλλιώς και δεν χρειάζεται να τον δηλώ- 62

63 σουμε εμείς. Είναι ο Administrator του site (εδώ, η ο συντάκτης της διπλωματικής) ο οποίος έχει πλήρη και απεριόριστη πρόσβαση σε όλες τις περιοχές του site, καθώς και πλήρη δικαιώματα τροποποίησης του ιστοτόπου, προσθήκης, διαγραφής, επεξεργασίας άλλων χρηστών και διαμοιρασμών συγκεκριμένων δικαιωμάτων σε αυτούς. Οι υπόλοιποι δύο χρήστες είναι εγγεγραμμένοι από τον Super User (δηλαδή τον Administrator) και τους έχουν δοθεί συγκεκριμένα δικαιώματα πρόσβασης. Καταρχάς να πούμε πως αυτοί οι δύο χρήστες δεν είναι καθόλου τυχαίοι. Τόσο αυτός που είναι δηλωμένος με το όνομα Kostas και το όσο και αυτός που είναι δηλωμένος με το όνομα Μάχη Καραγιώργου και είναι χρήστες που έχουν σίγουρα, όχι μόνο επισκεφθεί τον ιστότοπό μας, αλλά συνάμα έχουν δηλώσει εαυτούς ως διαδικτυακά μέλη του ιστοτόπου. Σε προηγούμενη ενότητα, έχουμε αποδείξει πως ο διαχειριστής του ιστοτόπου είναι ανά πάσα στιγμή σε θέση να την γνωρίζει αυτήν την πληροφορία. Αν ανοίξει την εφαρμογή jnews και ανατρέξει στους Subscribers θα δει πόσοι και ποιοι χρήστες έχουν δηλωθεί ως μέλη και, ίσως το πιο σημαντικό, με ποια ιδιότητα του έ- κανα (ασθενής ιδιώτης ή ιατρός). Όπως αρχίζει να γίνεται αντιληπτό, σε αυτό το σημείο o Administrator του site αρχίζει να αναλαμβάνει ορισμένες υποχρεώσεις αναφορικά με το συγκεκριμένο κομμάτι. Σε πρώτη φάση, θα πρέπει, για τον κάθε χρήστη που γίνεται διαδικτυακό μέλος του ιστοτόπου, να τον καταχωρήσει σαν user μέσα από τον User Manager του Administration Panel του Joomla. Και, φυσικά, όχι απλώς να τον καταχωρήσει σαν χρήστη, αλλά να του θέσει και συγκεκριμένα δικαιώματα πρόσβασης που θα έχει στον ιστότοπο. Για να γίνει αυτή η αντιστοιχία των δικαιωμάτων πρόσβασης στους χρήστες, θα πρέπει οι χρήστες με τη σειρά τους να ενταχθούν από τον διαχειριστή σε κάποιο group (user group). Το κάθε group θα έχει ρυθμιστεί κατάλληλα ώστε να έχει συγκεκριμένη προσβασιμότητα στις διάφορες περιοχές του ιστοτόπου. Εδώ καταλήγουμε σε ένα πολύ σημαντικό συμπέρασμα όσον αφορά το Joomla. Τα δικαιώματα πρόσβασης, στην πραγματικότητα, δεν προσδιορίζονται ανάλογα με τον κάθε χρήστη, αλλά, αντίθετα, με το group στο οποίο αυτός υπάγεται. Αυτό διαδραματίζει καταλυτικό ρόλο στο σχεδιασμό μας, μιας και, σε περίπτωση που είμαστε οι διαχειριστές, θα πρέπει πρωτίστως να δημιουργήσουμε και να οργανώσουμε τα groups των χρηστών και μετά να εγγράψουμε τους ίδιους τους χρήστες. Βέβαια, το Joomla, έχει ήδη έτοιμα user groups. Αλλιώς δεν θα μπορούσε ο administrator να είναι ένας ήδη (by default) εγγεγραμμένος χρήστης. Συγκεκριμένα το user group που ανήκει ο administrator είναι αυτό του Super Administrator (υπέρ διαχειριστής) και είναι ένα από τα προεπιλεγμένα user groups του Joomla. Εκτός από τον Super User τα άλλα τρία προεπιλεγμένα επίπεδα πρόσβασης (Access Levels) του Joomla είναι τα εξής: Public Το στοιχείο είναι ορατό στους πάντες Registered Το στοιχείο είναι ορατό στους εγγεγραμμένους χρήστες και άνω Special Το στοιχείο είναι ορατό σε οποιονδήποτε μπορεί να διαχειρίζεται το περιεχόμενο (αρθρογράφο και άνω) Στην περίπτωση που προσπαθούμε να περιγράψουμε σχετικά με τον διαχωρισμό των μελών ανάλογα με την ιδιότητά τους δεν μας κάνει κανένα από τα παρα- 63

64 πάνω. Συγκεκριμένα πρέπει να δημιουργήσουμε δύο καινούρια User Groups, ένα για κάθε ιδιότητα, έτσι ώστε να μπορεί ένα ένθεμα να είναι ορατό και προσβάσιμο μόνο στα μέλη που ο διαχειριστής έχει κατανείμει σε κάποια από αυτές τις ομάδες. Αυτό συμβαίνει γιατί η παράμετρος προσβασιμότητας ενός ενθέματος ορίζεται από το περιβάλλον ρυθμίσεων του ίδιου του ενθέματος. Επομένως οι νέες Access Level ομάδες θα πρέπει να είναι ήδη δημιουργημένες, όταν ο διαχειριστής θα πάει να ορίσει τα Access Levels του ενθέματος. Όπως θα δούμε και αργότερα, στο παράθυρο ρυθμίσεων ενός ενθέματος αυτό που ορίζουμε δεν είναι το που ΔΕΝ θα επιτρέπεται η πρόσβαση αλλά σε ποιο user group θα επιτρέπεται. Αυτή η επιλογή αυτομάτως αποκλείει όλους εκείνους τους χρήστες (μέλη ή μη) που δεν υπάγονται σε αυτό το group. Αυτό ακριβώς κάναμε: Δημιουργήσαμε δύο νέα User Groups (πέραν των προεπιλεγμένων). Το «Ασθενείς Ιδιώτες» και το «Ιατροί»: Επομένως, γίνεται προφανές, πως κάθε μέλος που εγγράφεται στο site με την ιδιότητα του «Ασθενή Ιδιώτη», ο διαχειριστής τον εντάσσει στο User Group «Ασθενείς Ιδιώτες» και, αντίστοιχα, κάθε μέλος μας που εγγράφεται με την ιδιότητα «Ιατρός», ο διαχειριστής τον εντάσσει στο User Group «Ιατροί». Παρακάτω θα εξηγήσουμε: (α) Πώς δημιουργούμε ένα νέο User Group, (β) Πως εντάσσουμε έναν χρήστη μέλος σε αυτό το group και (γ) Πως καθορίζουμε ένα ένθεμα να είναι προσβάσιμο μόνο από χρήστες που ανήκουν σε ένα συγκεκριμένο User Group. 64

65 Καταρχάς ξεκινάμε με το πώς δημιουργούμε ένα νέο User Group. Βρισκόμενοι στο περιβάλλον του User Manager, ανατρέχουμε στα tabs (καρτέλες) και επιλέγουμε User Groups : Κατόπιν κάνουμε κλικ στο κουμπί New πάνω δεξιά στην οθόνη: Το αποτέλεσμα θα είναι το Joomla να μας παραπέμψει το παρακάτω παράθυρο: Από την παραπάνω εικόνα προκύπτει πως για να δημιουργήσουμε ένα νέο User Group πρέπει (προφανώς) να του αποδώσουμε έναν τίτλο και επίσης παρατηρούμε μία επιπλέον απαιτούμενη παράμετρο το Group Parent. Αυτή η παράμετρος υποδηλώνει πως, οποιοδήποτε User Group και αν δημιουργήσουμε, οφείλει να υπάγεται σε τουλάχιστον ένα User Group «Γονέα». Παρατηρούμε πως στην κορυφή της σχετικής λίστας βρίσκεται ένα by default User Group του Joomla, το Public. 65

66 Όπως έχουμε ήδη αναφέρει το Public έχει μηδενικό Access Level. Ο χρήστης ο οποίος υπάγεται σε αυτό (και μόνο σε αυτό) το Group έχει πρόσβαση μόνο σε ενθέματα και menu του εκάστοτε site τα οποία έχουν καθοριστεί να είναι προσβάσιμα για όλους τους χρήστες ανεξαρτήτου ιδιότητος. Στην πραγματικότητα, όσο προχωράμε σε υποσύνολα αυτού του user group, τόσο πιο «αυστηρά» γίνονται τα πράγματα, αφού πλέον το κάθε εργαλείο που έχει οριστεί να είναι προσβάσιμο σε οποιοδήποτε user group πέραν του public, απαιτεί από τον χρήστη να έχει αντίστοιχη εξουσιοδότηση η οποία θα του έχει δοθεί από τον Administrator του ιστοτόπου. Στο παράδειγμά μας, ο μόνος περιορισμός που μας αφορά έγκειται καθαρά στην ιδιότητα των διαδικτυακών μελών μας. Ως εκ τούτου, αποφεύγοντας πολύπλοκες καταστάσεις, δημιουργούμε απλά δύο νέα User Groups που, για να απομνημονεύσουμε τον ρόλο τους πιο εύκολα, αποδίδουμε στο καθένα το όνομα της εκάστοτε ιδιότητας (Ασθενείς Ιδιώτες το ένα και Ιατροί το άλλο). Φτάνουμε αισίως στο σημείο που θα πρέπει να κατανείμουμε τα μέλη μας κατάλληλα στην κάθε ομάδα χρηστών. Μέχρι στιγμής, καθαρά για τις ανάγκες της διπλωματικής εργασίας, καταχωρήθηκαν μόνο δύο μέλη, δεδομένου ότι το site, ακόμη, δεν «εκπέμπει» on line. Ως εκ τούτου θα περιγράψουμε την διαδικασία για το πώς αυτά τα δύο μέλη τοποθετήθηκαν κατάλληλα στις αντίστοιχες ομάδες που θέλουμε να υπάγονται: Γνωρίζουμε ήδη το username τους και το λογαριασμό του ηλεκτρονικού τους ταχυδρομείου. Υπενθυμίζουμε πως αυτές τις πληροφορίες τις παίρνουμε ως administrators από το ένθεμα jnews που καταχωρεί αυτόματα κάθε νέο μέλος ως subscriber. Επιπρόσθετα, το εν λόγω ένθεμα, μας εμφανίζει και την ιδιότητα με την οποία το κάθε member έχει δηλώσει εαυτόν μέσα από το ένθεμα «Γίνε Μέλος», την λειτουργία του οποίου έχουμε περιγράψει σε προηγούμενη ενότητα. Οι πληροφορίες αυτές μας είναι αρκετές για να δηλώσουμε το κάθε μέλος ως user στο site. Είναι, ε- πομένως, σημαντικό να διασαφηνίσουμε πως δεν αρκεί κάποιος να γίνει διαδικτυακό μέλος για να αποκτήσει πρόσβαση στο εξειδικευμένο περιεχόμενο του site μας. Αυτό είναι απλώς το πρώτο στάδιο. Από εκεί και πέρα πρέπει ο Administrator του ιστοτόπου να καταχωρήσει το κάθε μέλος ως User. Η διαδικασία αυτή έχει ως εξής: Όπως φαίνεται και στην παραπάνω εικόνα, πρέπει πρώτα να βεβαιωθούμε πως, βρισκόμενοι στον User Manager είναι επιλεγμένο το tab Users. Στη συνέχεια κάνουμε κλικ στο κουμπί New που βρίσκεται πάνω δεξιά στην οθόνη και το panel που προκύπτει φαίνεται στην εικόνα που ακολουθεί: 66

67 Παρατηρούμε πως τρία πεδία (fields), το Name, το Login Name και το , φέρουν έναν αστερίσκο (*). Αυτό σημαίνει πως πρόκειται για πεδία απαιτητά και άρα δεν μπορούμε να τα παρακάμψουμε και να τα αφήσουμε κενά. Παρόλα αυτά είναι σημαντικό να συμπληρώνουμε κάθε φορά και το πεδίο Password γιατί κατά αυτόν τον τρόπο αποκτά νόημα η εξουσιοδότηση που γίνεται από τον Διαχειριστή στον Χρήστη. Στο πεδίο Name εισάγουμε το username που έδωσε ο επισκέπτης του site μας όταν συμπλήρωσε το αντίστοιχο πεδίο στο ένθεμα «Γίνε Μέλος!». Το username αυτό ως διαχειριστές το βρίσκουμε στο administration panel του ενθέματος jnews. Στο Login Name γράφουμε το ίδιο, ή, εναλλακτικά βάζουμε ένα δικό μας για να δώσουμε μεγαλύτερη «αυστηρότητα» στην πρόσβαση. Στην συνέχεια πληκτρολογούμε έναν κωδικό (ιδανικά να αποτελείται από γράμματα, αριθμούς και σύμβολα) και τον επιβεβαιώνουμε στο πεδίο Confirm Password. Τέλος, καταχωρούμε το του χρήστη το οποίο, το γνωρίζουμε με τον ίδιο ακριβώς τρόπο που αναφέρουμε πως γνωρίζουμε το username του. Πλέον, το μόνο που έχει απομείνει, είναι να δηλώσουμε ο χρήστης σε ποιο User Group θα ανήκει. Η εικόνα που φαίνεται στην αρχή της τρέχουσας σελίδας είναι μόνο ένα τμήμα του panel που διαχειριζόμαστε αυτήν την στιγμή. Λίγο πιο κάτω εμφανίζονται τα User Groups, συνοδευόμενα με checkboxes για να δηλώσουμε σε ποιο (ή ποια) από αυτά θα ενταχθεί ο User που δημιουργούμε εκείνη την ώρα. Το τμήμα που λείπει το παραθέτουμε στην εικόνα που ακολουθεί: 67

68 Στην παραπάνω εικόνα φαίνεται ήδη τσεκαρισμένη η επιλογή «Registered». Αυτή η κατάσταση εμφανίζεται ως προεπιλεγμένη, δεδομένου πως το Joomla «αναγνωρίζει» πως για να δηλώσουμε έναν επισκέπτη ως User σημαίνει πως κατά πάσα πιθανότητα το θέλουμε ως διαδικτυακό μέλος, κάτι το οποίο υποδηλώνει και η επιλογή «Registered». Στο παράδειγμα μας, αυτήν την προεπιλογή δεν έχουμε κανέναν λόγο να την απενεργοποιήσουμε. Απλώς κάθε νέος χρήστης που θα δηλώνουμε θα υπάγεται σε δύο user groups. Στο Registered και σε ένα εκ των Ασθενείς Ιδιώτες ή Ιατροί, ανάλογα με το ποια ιδιότητα έχει τσεκάρει εκείνος για να δηλώσει εαυτόν ως διαδικτυακό μέλος στο site μας. Έτσι, λοιπόν, στην περίπτωση του user Kostas θα τσεκάρουμε επιπροσέτως το «Ιατροί» και σε αυτήν του χρήστη «Machi» το «Ασθενείς Ιδιώτες. Πάμε τώρα να δούμε αυτά τα user groups πως θα τα αξιοποιήσουμε κατά την παραμετροποίηση των ενθεμάτων που έχουν να κάνουν με την σύνδεση των μελών. Όπως έχουμε ήδη αναφέρει έχουμε χρησιμοποιήσει δύο ενθέματα διαφορετικά για αυτόν τον σκοπό, ένα για τους Ασθενείς και ένα για τους Ιατρούς. Όποιο όμως και να είναι το ένθεμα, για οποιονδήποτε σκοπό και με οποιονδήποτε τρόπο και αν πρόκειται να χρησιμοποιηθεί, το μόνο σίγουρο είναι πως θα μας επιτρέπει ως διαχειριστές του ιστοτόπου να ορίσουμε από ποιο user group θα είναι προσβάσιμο. Σε αυτό το σημείο επιβάλλεται να αναφέρουμε το εξής: Αν στις παραμέτρους του ενθέματος ορίσουμε το ένθεμα να είναι προσπελάσιμο από ένα user group που είναι γονέας (δηλαδή διακλαδίζεται και «έχει από κάτω του» και άλλα user groups) τότε το ένθεμα θα είναι επίσης προσπελάσιμο και για αυτά τα επιμέρους user groups. Αν, όμως, δεν είναι γονέας (ανεξάρτητα με το αν υπάγεται σε κάποιον άλλο γονέα), τότε το ε- κάστοτε ένθεμα είναι προσπελάσιμο από το συγκεκριμένο user group και μόνο από αυτό. Αν για παράδειγμα, ορίσουμε ένα ένθεμα να είναι προσπελάσιμο από το user group Registered, αυτομάτως σημαίνει πως η πρόσβαση στο ένθεμα (μιλάμε πάντοτε για το site preview) θα είναι εφικτή τόσο για τα μέλη «Ασθενείς Ιδιώτες», όσο και για τα «Ιατροί». Αν, όμως, για ένα ένθεμα ορίσουμε την προσβασιμότητα να είναι εφικτή μόνο π.χ. για τους «Ασθενείς Ιδιώτες» αυτό σημαίνει πως κανένα άλλο user group δεν θα έχει πρόσβαση και, άρα, ούτε οι «Ιατροί». 68

69 Στην πράξη, για να ορίσουμε από ποιο user group θα είναι προσπελάσιμο ένα ένθεμα, ανατρέχουμε στις ρυθμίσεις του εκάστοτε ενθέματος. Για παράδειγμα, στο login των μελών που δηλώθηκαν ως «Ιατροί», ανατρέχουμε στο ένθεμα που χρησιμοποιήσαμε για το σκοπό αυτό και το οποίο ονομάσαμε DoctorsLogin : Η παραπάνω εικόνα εμφανίζει τις παραμέτρους του ενθέματος. Η παράμετρος που μας ενδιαφέρει σε αυτήν την περίπτωση είναι η παράμετρος Access όπου έχουμε αποθανατίσει την στιγμή που «πειράζουμε» την εν λόγω παράμετρο και ενεργοποιείται η αναπτυσσόμενη λίστα. Παρατηρούμε πως, στη λίστα αυτή, εμφανίζονται όλα τα user groups, τόσο τα προεπιλεγμένα, όσο και αυτά που έχουμε δημιουργήσει εμείς ως διαχειριστές. Εφόσον το τρέχον ένθεμα προορίζεται για τα διαδικτυακά μέλη που δήλωσαν εαυτούς με την ιδιότητα «Ιατρός», θα πρέπει να επιλέξουμε από την λίστα το User Group Ιατροί. Αυτό θα έχει ως αποτέλεσμα, μόνο οι χρήστες που έχουμε ορίσει να ανήκουν σε αυτήν την ομάδα να έχουν πρόσβαση στο εξειδικευμένο περιεχόμενο αυτού του ενθέματος, κάτι το οποίο επιθυμούμε. Για να δούμε, όμως, πετύχαμε το επιθυμητό αποτέλεσμα; Για να πειστούμε για αυτό, θα πρέπει να κάνουμε δύο login απόπειρες: Την πρώτη με το username και το password του χρήστη Kostas (που έχει δηλώσει εαυτόν ως Ιατρό) και την άλλη με το αντίστοιχο username και password του χρήστη Machi (που έχει δηλώσει αυτόν ως Ασθενή Ιδιώτη). Στην πρώτη περίπτωση θα πρέπει να εμφανιστεί το εξειδικευμένο περιεχόμενο του ιστοτόπου που αντιστοιχεί στους Ιατρούς και στην δεύτερη να ΜΗΝ επιτραπεί στον χρήστη Machi η πρόσβαση. Για τις ανάγκες τις τρέχουσας διπλωματικής εργασίας και αφού έχουμε πάρει την άδεια των δύο παραπάνω χρηστών θα γνωστοποιήσουμε το username και το password που αντιστοιχεί στον καθένα, σεβόμενοι πάντα σε ένα ευρύτερο πλαίσιο πως στο ευρύ κοινό τα στοιχεία αυτά πρέπει, σαφέστατα, να είναι άγνωστα: 69

70 Κάνουμε κλικ στο πράσινο κουμπί που αναγράφει Log in στην πρώτη μας απόπειρα να συνδεθούμε ως «Ασθενείς Ιδιώτες». Αμέσως μας ζητείται η καταχώρηση του username και του password: Στο Username πληκτρολογούμε Machi, στο Password (όπως είναι λογικός το password εμφανίζεται κρυπτογραφημένο) πληκτρολογούμε battaglia και στην συνέχεια κλικ στο Log in. Αν τα παραπάνω στοιχεία τα πληκτρολογήσουμε σωστά, με προσοχή στο ταίριασμα πεζών κεφαλαίων, τότε, ως χρήστης μέλος «Μάχη Καραγιώργου», θα έχουμε αποκτήσει πρόσβαση στο εξειδικευμένο περιεχόμενο του site μας που αφορά τους «Ασθενείς Ιδιώτες», του οποίου το αρχικό panel το φωτογραφίσαμε και το παραθέτουμε στην εικόνα που ακολουθεί: 70

71 Το panel της παραπάνω εικόνας είναι ένα ένθεμα προσαρμοσμένου HTML κώδικά. Ξεκινά με ένα «Καλωσόρισμα» στο μέλος που, στην πραγματικότητα του επιβεβαιώνει πως έχει συνδεθεί σε ένα χώρο του ιστοτόπου που διατίθεται συγκεκριμένα για την ιδιότητά του, εν προκειμένω αυτή του «Ασθενή Ιδιώτη». Παρακάτω ακολουθεί ένας μικρός διακριτικός πίνακας αποτελούμενος από τρεις στήλες και μία γραμμή. Εντός του πίνακα, κάθε κελί του ξεχωριστά, καλεί και ένα ένθεμα. Πιο συγκεκριμένα, όπως φαίνεται και στην παραπάνω εικόνα, το πρώτο κελί καλεί ένα ένθεμα με τίτλο «Quiz για την Υγεία», το δεύτερο καλεί το ένθεμα «Ψηφιακός Σύμβουλός!» και, τέλος, το τρίτο κελί καλεί το ένθεμα «Υγεία blog». Για κάθε ένα από αυτά τα ενθέματα θα κάνουμε αναλυτική επεξήγηση στις ενότητες αυτής της διπλωματικής εργασίας που ακολουθούν. Αυτό που θα αναφέρουμε από τώρα, είναι πως πρόκειται για ενθέματα που σχεδιάστηκαν με σκοπό να άπτονται του πιο στενού ενδιαφέροντος των Ασθενών και όχι τόσο των Ιατρών και να απαρτίζουν ένα περιβάλλον αλληλεπίδρασης με τον ασθενή. Αυτή η αλληλεπίδραση τονώνει τη δυναμική του site, αποτελεί ένα από τα στοιχεία που πλέον θα το χαρακτηρίζουν ως ένα «έξυπνο» site και παρέχουν στον Ασθενή Μέλος ψυχαγωγία, γνώση και ενημέρωση. Επιστρέφοντας στο κεντρικό γενικό παράθυρο της σύνδεσης όλων των μελών, θα αποπειραθούμε με τα ίδια ακριβώς στοιχεία μέλους (username: machi / password: battaglia) να συνδεθούμε ως Ιατροί. Εάν επί του πρακτέου ο σχεδιασμός που έχουμε κάνει είναι ο σωστός, θα πρέπει το Joomla να ΜΗΝ επιτρέψει αυτήν την πρόσβαση, δεδομένου ότι, ο παραπάνω χρήστης έχει γίνει μέλος με την ιδιότητα του Ασθενή και όχι με αυτήν του Ιατρού: 71

72 Όπως φαίνεται και στην παραπάνω εικόνα, ανατρέχουμε στο προεπιλεγμένο log in ένθεμα του Joomla που έχουμε αξιοποιήσει για την σύνδεση των Ιατρών. Πάμε στα πεδία Username και Password και βάζουμε αυτά του Ασθενή Μέλους «Μάχη Καραγιώργου». Το αποτέλεσμα φαίνεται στην παρακάτω εικόνα: Η εικόνα αυτή αποτελεί αντιπροσωπευτικό δείγμα της ένδειξης σφάλματος (error) με κωδικό σφάλματος 403 του Joomla, που υποδηλώνει πως ένας χρήστης, χωρίς να έχει πάρει τα δικαιώματα από τον διαχειριστή (administrator) του συστήματος, προσπάθησε να συνδεθεί σε ένα εξειδικευμένο περιεχόμενο στο οποίο, θεωρητικά, δεν του επιτρέπεται η πρόσβαση. Ως εκ τούτου αυτή η ένδειξη σφάλματος θέλαμε να εμφανιστεί διότι, σαφώς, οι Ασθενείς Μέλη μας επιθυμούμε να έχουν πρόσβαση, μεν, στο δικό τους περιεχόμενο, αλλά όχι και σε αυτό που αντιστοιχεί στους Ιατρούς. Μέχρι στιγμής, λοιπόν, φαίνεται πως το site μας στο κομμάτι που έχει να κάνει με την αναγνώριση των χρηστών, ανταποκρίνεται σωστά. Για να βεβαιωθούμε, όμως, πως όλα δουλεύουν όπως πρέπει, θα δοκιμάσουμε και την αντίστροφή διαδικασία. Αυτό σημαίνει πως, για τις δύο παραπάνω απόπειρες σύνδεσης, θα χρησιμοποιήσουμε αυτήν την φορά τα στοιχεία ενός Ιατρού Μέλους και όχι ενός ασθενή. Αντίστοιχα, τώρα, για να πειστούμε πως η αναγνώριση δουλεύει κατάλληλα, θα πρέπει στο πρώτο log in ένθεμά μας να ΜΗΝ επιτραπεί η 72

73 πρόσβαση, αλλά αυτό να συμβεί στο δεύτερο. Το ακριβώς αντίθετο δηλαδή με αυτό που συνέβη με τα χαρακτηριστικά του Ασθενή Μέλους: Ως εκ τούτου στο log in κομμάτι που αφορά τους Ιατρούς, βάζουμε τα στοιχεία του χρήστη μέλους «Kostas» με username: lufakos83 και password: tzole11. Κλικ στο Log in button και το αποτέλεσμα φαίνεται παρακάτω: 73

74 Παρατηρούμε πως η δομή του panel που αφορά του εξειδικευμένο περιεχόμενο των Ιατρών μελών είναι πανομοιότυπη με αυτήν του αντίστοιχου για τους ασθενείς. Αυτό που ουσιαστικά αλλάζει, είναι το περιεχόμενο του διακριτικού πίνακα. Είναι άλλωστε λογικό, αφού έπρεπε αυτή τη φορά ο πίνακας να καλεί ενθέματα που σχετίζονται με ενδιαφέροντα Ιατρικά Επιστημονικά. Προσπαθήσαμε παρόλα αυτά, για να διατηρήσουμε την ίδια φιλοσοφία, να συνδυάσουμε εκ νέου το τρίπτυχο (α) ενημέρωση (β) ψυχαγωγία (γ) γνώση. Για τον λόγο αυτό, τα τρία ενθέματα που περικλείονται στον πίνακα είναι: Ιατρικός Τύπος: Ενημέρωση σχετικά με επιστημονικά θέματα που αφορούν τους Ιατρούς. Το σχετικό link παραπέμπει στο επίσημο site που περιέχει ενημερωτικό περιεχόμενο που άπτεται αποκλειστικά του ενδιαφέροντος των Ιατρών Doctor Games: Καθαρά ψυχαγωγικό ένθεμα που παραπέμπει στην επίσημη ιστοσελίδα όπου εμφανίζει μία μεγάλη γκάμα από on line ηλεκτρονικά παιχνίδια που το interface και το περιεχόμενό τους σχετίζεται με την Ιατρική και την Υγεία γενικότερα Ιατρικά Συνέδρια: Link το οποίο παραπέμπει στο επίσημο site medical.socities.gr, μέσα από το οποίο ο Ιατρός λαμβάνει γνώση για Ιατρικά Συνέδρια που διενεργούνται στην Ελλάδα και στον εξωτερικό, σε περίπτωση που θέλει να λάβει μέρος σε κάποια από αυτά Επομένως, έχουμε ένα ακόμη σκέλος που ολοκληρώνεται με επιτυχία. Το μόνο που μένει, είναι να βεβαιωθούμε πως ο Ιατρός μέλος (στο παράδειγμά μας ο «Kostas ) δεν έχει πρόσβαση στο αντίστοιχο περιεχόμενο των Ασθενών μελών. Πράγματι, αυτήν την δοκιμή την κάναμε και εμφανίστηκε το μήνυμα σφάλματος του Joomla! Κλείνοντας, αναφορικά με την ενότητα αναγνώρισης των χρηστών, θα πρέπει σε αυτό το σημείο να τονίσουμε, πως σε όλες τις προαναφερθείσες απόπειρες, τα usernames και τα passwords των χρηστών είναι πέρα για πέρα αληθινά και περασμένα από τον administrator στην βάση των χρηστών του Joomla. Τι θα συμβεί, ό- μως, στην περίπτωση που στο εκάστοτε log in ένθεμα συμπληρώσουμε (εσκεμμένα ή μη) ανύπαρκτα στοιχεία; Για να απαντήσουμε σε αυτό το ερώτημα, πολύ απλά εν τάχει επινοούμε ένα πλασματικό username και, αντίστοιχα, ένα password. Έστω, λοιπόν, πως πάμε να συνδεθούμε ως Ασθενής μέλος στο ένθεμα login που αφορά τους Ιατρούς, χρησιμοποιώντας όμως ανύπαρκτα στοιχεία. Βάλαμε username: nikos και password: Το αποτέλεσμα αυτής της απόπειρας φαίνεται στην παρακάτω εικόνα: 74

75 Συμπερασματικά, καταλήγουμε στο συμπέρασμα πως, το μήνυμα σφάλματος του Joomla που αποτρέπει την πρόσβαση σε μία συγκεκριμένη σελίδα, διαφοροποιείται όταν ο χρήστης δίνει ανύπαρκτα στοιχεία σε σχέση με την περίπτωση που δίνει υ- παρκτά. Υπενθυμίζουμε πως, με τον όρο «υπαρκτά» εννοούμε να έχει καταχωρηθεί ως user από τον διαχειριστή, στο administration panel του Joomla. Κεφάλαιο 6 ο EXPERT SYSTEM Ο Ψηφιακός Σύμβουλος Στο ευρύτερο πλαίσιο της προσπάθειάς μας να μετατρέψουμε τον ιστότοπο του Διαγνωστικού Κέντρου «Β Διάγνωση» σε ένα «έξυπνο» ιστότοπο σχεδιάσαμε ένα ένθεμα το οποίο περικλείει ένα έμπειρο σύστημα διάγνωσης. Πιο συγκεκριμένα, ο ρόλος του είναι να «αποφασίζει» και να «συμβουλεύει» κατάλληλα έναν ασθενή για το αν είναι σε θέση κάνει μία Μαγνητική Τομογραφία. Ο εκάστοτε ενδιαφερόμενος απαντά σε ορισμένες ερωτήσεις που του υποβάλλει το πρόγραμμα και τελικά, βάσει των απαντήσεων, το έμπειρο σύστημα αποφασίζει για το αν θα πρέπει ο ασθενής να υποβληθεί ή όχι στην εν λόγω εξέταση. Στις ενότητες αυτού του κεφαλαίου που ακολουθούν θα περιγράψουμε, θα αναλύσουμε και θα επεξηγήσουμε τα εξής: Τι είναι και που μπορεί να χρησιμεύσει ένα έμπειρο σύστημα διάγνωσης (expert system) Πως σχεδιάζουμε ένα έμπειρο σύστημα Πως κάνουμε εξαγωγή συμπερασμάτων από μία Βάση Δεδομένων και ποια εργαλεία και ποιους αλγόριθμους χρησιμοποιούμε για τον σκοπό αυτό Ποια Βάση Δεδομένων επιλέξαμε εμείς, για ποιο σκοπό, καθώς και τι συμπεράσματα εξαγάγαμε σχετικά με το πότε προβλέπεται ένας ασθενής να υποβληθεί σε Μαγνητική Τομογραφία Πως μετατρέπουμε τα συμπεράσματα σε κώδικα, καθώς και σε ποιο περιβάλλον γίνεται αυτή η διεργασία Σε ποια κατηγορία έμπειρων συστημάτων εντάσσεται αυτό που δημιουργήσαμε εμείς Ποιες σκέψεις θα μπορούσαμε να κάνουμε, για επιπλέον σχεδιασμό έμπειρων συστημάτων που να είχαν νόημα και να έβρισκαν πρακτική εφαρμογή στον ιστότοπό μας. Ποια τα πιθανά προβλήματα που μπορεί να αντιμετωπίζαμε 75

76 6.1 EXPERT SYSTEMS Στο 3 ο Κεφάλαιο της τρέχουσας Διπλωματικής Εργασίας, ξεκινήσαμε μία θεωρητική προσέγγιση του όρου «Τεχνητή Νοημοσύνη». Σε αυτό το επιστημονικό πεδίο υπάγονται και τα έμπειρα συστήματα (expert systems). Πιο συγκεκριμένα, στην Τεχνητή Νοημοσύνη, ένα έμπειρο σύστημα είναι ένα υπολογιστικό σύστημα το οποίο «μιμείται» την ικανότητα ενός εμπειρογνώμονα στη λήψη αποφάσεων. Σε ένα ευρύτερο πλαίσιο, τα έμπειρα συστήματα σχεδιάστηκαν για να λύνουν πολύπλοκα προβλήματα, συλλογιζόμενα με βάση τη γνώση, όπως κάνει ένας εμπειρογνώμονας και όχι ακολουθώντας την διαδικασία επίλυσης ενός προγραμματιστή, όπως στην περίπτωση του συμβατικού προγραμματισμού. Τα έμπειρα συστήματα δημιουργήθηκαν την δεκαετία του 1970 και έπειτα αναπτύχθηκαν ραγδαία τη δεκαετία του Ανήκουν στις πρώτες πραγματικά επιτυχημένες μορφές λογισμικού στον κλάδο της Τεχνητής Νοημοσύνης. Ένα έμπειρο σύστημα έχει μοναδική δομή, διαφορετική από τα παραδοσιακά προγράμματα. Διακρίνεται σε δύο μέρη: Το σταθερό, ανεξάρτητο από το πεδίο εφαρμογής, τμήμα, που είναι η μηχανή εξαγωγής συμπερασμάτων και Το μεταβλητό, που είναι η Βάση Γνώσης Για να «τρέξει» ένα έμπειρο σύστημα, η μηχανή «σκέφτεται» λογικά, στηριζόμενη στη Βάση Γνώσης, όπως ο άνθρωπος. Την δεκαετία του 1980 εμφανίστηκε ένα τρίτο μέρος, ένα περιβάλλον διαλόγου (interface) επικοινωνίας με τους χρήστες. Αυτή η ικανότητα του έμπειρου συστήματος να επικοινωνεί με τους χρήστες ονομάστηκε αργότερα επικοινωνιακή. Στην τεχνολογία των έμπειρων συστημάτων, η Βάση Γνώσης είναι εκφρασμένη σε κανόνες της μορφής "ΑΝ... ΤΟΤΕ..." Για παράδειγμα: "ΑΝ είναι ζωντανό ΤΟΤΕ είναι θνητό" "ΑΝ η ηλικία του = γνωστή ΤΟΤΕ το έτος γεννήσεώς του = σημερινή ημερομηνία - την ηλικία του σε χρόνια" Αυτή η διατύπωση έχει το πλεονέκτημα ότι είναι πολύ κοντά στη φυσική μας γλώσσα, κάτι που είναι πολύ σπάνιο στην Επιστήμη υπολογιστών (ένα κλασσικό πρόγραμμα είναι κωδικοποιημένο). Οι κανόνες εκφράζουν τη γνώση που μπορεί να αξιοποιηθεί από τα έμπειρα συστήματα. Υπάρχουν κι άλλοι τύποι κανόνων, οι οποίοι δεν είναι τόσο κοντά στην καθημερινή γλώσσα, αλλά είναι κατανοητοί μόνο από τους επιστήμονες των υπολογιστών. Κάθε στυλ κανόνα είναι προσαρμοσμένο σε ένα στυλ μηχανής. Το όλο πρόβλημα των εμπείρων συστημάτων είναι να συλλέξει αυτή τη γνώση, συνήθως από τους ειδικούς. Υπάρχουν μέθοδοι αλλά οι περισσότερες είναι χρησιμοποιήσιμες μόνο από τους επιστήμονες των υπολογιστών. 76

77 6.1.1 ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΚΑΙ ΜΕΙΟΝΕΚΤΗΜΑΤΑ ΤΩΝ ΕΜΠΕΙΡΩΝ ΣΥΣΤΗΜΑΤΩΝ Τα έμπειρα συστήματα προσφέρουν πολλά πλεονεκτήματα στους χρήστες σε σύγκριση με τα παραδοσιακά προγράμματα, επειδή λειτουργούν σαν τον ανθρώπινο εγκέφαλο. Τα βασικότερα από αυτά τα πλεονεκτήματα τα παραθέτουμε στην παρακάτω λίστα: Διάλογος: Τα έμπειρα συστήματα επιτρέπουν στους χρήστες να συνδιαλέγονται με τους υπολογιστές όπως θα έκαναν και με κάποιον άλλο άνθρωπο. Για την εισαγωγή δεδομένων στον υπολογιστή, χρησιμοποιείται αλληλεπίδραση ανθρώπου-μηχανής: η οθόνη εισαγωγής δεδομένων, η οποία είναι ένα μη δια - δραστικό μέσο. Η εισαγωγή δεδομένων ωθεί τον χρήστη να προετοιμάσει ένα σετ δεδομένων χωρίς αυτό να είναι απαραίτητα κατανοητό γιατί να χρειάζεται. Συνήθως απαιτεί από τους χρήστες να κάννουν μία εξάσκηση πριν χρησιμοποιήσουν το λογισμικό αυτό. Ο χρήστης πάντα σκέφτεται μία ερώτηση τη φορά. Γρήγορη διαθεσιμότητα και ευκαιρία να αυτοπρογραμματιστεί: Καθώς η βάση των κανόνων είναι σε φυσική γλώσσα (η μηχανή μένει άθικτη) τα έμπειρα συστήματα μπορούν να γραφτούν πολύ πιο γρήγορα από ότι ένα συμβατικό πρόγραμμα, από χρήστες ή ειδικούς, παρακάμπτοντας τους επαγγελματίες προγραμματιστές και χωρίς να χρειάζεται να επεξηγηθεί το αντικείμενο. Δυνατότητα να εκμεταλλευθεί ένα αξιοσημείωτο σύνολο γνώσης: Τα έμπειρα συστήματα χρησιμοποιούν μία βάση κανόνων, σε αντίθεση με τα συμβατικά προγράμματα, που σημαίνει ότι δεν χρειάζεται να έχει αρκετές γνώσεις κάποιος για να προγραμματίσει. Είτε η βάση κανόνων έχει 10 είτε κανόνες, η λειτουργία της μηχανής είναι ίδια. Αξιοπιστία: Η αξιοπιστία ενός έμπειρου συστήματος είναι ίδια με την αξιοπιστία μίας βάσης δεδομένων, δηλαδή καλή και υψηλότερη από εκείνη ενός κλασσικού συστήματος. Επεκτασιμότητα: Για να εξελιχθεί ένα έμπειρο σύστημα πρέπει, να προστεθούν, να τροποποιηθούν ή να διαγραφούν κανόνες. Εφόσον οι κανόνες είναι γραμμένοι σε απλή γλώσσα, είναι εύκολο να εντοπίζει κανείς εκείνους που χρειάζεται να διαγραφούν ή να τροποποιηθούν. Παιδαγωγία: Οι μηχανές που τρέχουν με απλή λογική είναι σε θέση να επεξηγούν στο χρήστη σε απλή γλώσσα, γιατί κάνουν μία ερώτηση και πώς καταλήγουν στο κάθε συμπέρασμα. Με τον τρόπο αυτό, επιδεικνύουν τη γνώση ενός εμπειρογνώμονα που εμπεριέχεται στα έμπειρα συστήματα. Έτσι, οι χρήστες μπορούν να μαθαίνουν αυτή τη γνώση και να τη χρησιμοποιούν. Ε- πιπλέον, μπορούν να καταλήγουν σε συμπεράσματά τους βήμα-βήμα. Έτσι οι 77

78 χρήστες έχουν πληροφορία σχετικά με το πρόβλημά, πολύ νωρίτερα από την τελική απάντηση του έμπειρου συστήματος. Μειονεκτήματα Το έμπειρο σύστημα έχει ένα σημαντικό μειονέκτημα το οποίο εξηγεί τη χαμηλή του διάδοση αν και υπάρχει εδώ και 70 χρόνια. Αυτό το ελάττωμα είναι: η συλλογή γνώσης και η εξήγηση της σε κανόνες, δηλαδή μηχανική γνώσης. Αρκετοί προγραμματιστές δεν έχουν κάποια μέθοδο για να παρουσιάσουν αυτό το έργο. Εργάζονται «χειροκίνητα» κάτι που τους δίνει μεγάλη πιθανότητα να κάνουν λάθος. Η γνώση ενός εμπειρογνώμονα δεν είναι αρκετά κατανοητή, υπάρχει έλλειψη κανόνων, οι οποίοι είναι αντιφατικοί, μερικοί από τους οποίους είναι φτωχά γραμμένοι και άχρηστοι. Χειρότερα, οι περισσότεροι συνήθως χρησιμοποιούν μία μηχανή που δεν μπορεί να κάνει συλλογισμό. Το αποτέλεσμα είναι: το έμπειρο σύστημα λειτουργεί άσχημα και το έργο εγκαταλείπεται. Η σωστή μεθοδολογία ανάπτυξης μπορεί να μετριάσει αυτά τα προβλήματα. Υπάρχει λογισμικό που παίρνει συνέντευξη από τον ειδικό βήμα - βήμα, η οποία αυτόματα γράφει τους κανόνες και ταυτοχρόνως τρέχει το έμπειρο σύστημα μπροστά στα μάτια του, εκτελώντας συνοχή των κανόνων ελέγχου. Έτσι ειδικοί και χρήστες μπορούν να ελέγξουν την ποιότητα του λογισμικού πριν τελειώσει. 78

79 6.2 ΞΕΚΙΝΩΝΤΑΣ ΝΑ ΣΧΕΔΙΑΖΟΥΜΕ ΤΟΝ «ΨΗΦΙΑΚΟ ΣΥΜΒΟΥΛΟ» - Η ΔΗΜΙΟΥΡΓΙΑ ΤΗΣ ΒΑΣΗΣ ΓΝΩΣΗΣ Στηριζόμενοι απόλυτα στην θεωρητική προσέγγιση που κάναμε στην αμέσως προηγούμενη ενότητα περνάμε στο πρακτικό κομμάτι δημιουργίας ενός έμπειρου συστήματος που θα συνδεθεί στην πορεία με τον ιστότοπό μας. Ξεκινάμε από τη Βάση Γνώσης. Για τις ανάγκες του ιστοτόπου μας πρέπει να σχεδιαστεί ένα λογισμικό που θα αναλύει κανόνες, οι οποίοι σχετίζονται με τις αντενδείξεις για έναν ασθενή στο να υποβληθεί σε Μαγνητική Τομογραφία. Ως εκ τούτου, χρειαζόμαστε σε πρώτη φάση μία Βάση Δεδομένων που οι τίτλοι των πεδίων της θα σχετίζονται άρρηκτα με αυτές τις αντενδείξεις. Σε ένα διάστημα τριήμερης επιμελούς επίσκεψης στο Διαγνωστικό Κέντρο παραλάβαμε μία σειρά από ερωτηματολόγια που συμπλήρωναν οι ασθενείς που ε- πιθυμούσαν να υποβληθούν σε Μαγνητική Τομογραφία. Η πληροφορία που αντλήσαμε από το ερωτηματολόγιο είναι ο έλεγχος οι προϋποθέσεις που πρέπει να πληροί ένας ασθενής, για να δώσει ο Ιατρός του Διαγνωστικού Κέντρου την τελική έγκριση για την πραγματοποίηση της εξέτασης. Πιο συγκεκριμένα, αυτό που μπορέσαμε να διακρίνουμε είναι πως τα πεδία του ερωτηματολογίου που συμπλήρωνε ο εκάστοτε ασθενής είχαν να κάνουν με απαντήσεις τύπου ναι / όχι που έδινε σχετικά με τα εξής: Αν έχει κάνει αρθροπλαστική με οποιοδήποτε υλικό πλην τιτανίου Αν έχει βηματοδότη Αν είναι έγκυος Αν έχει ολοκληρώσει την τρίτο μήνα εγκυμοσύνης Αν φοράει σιδεράκια Στο κάτω κάτω μέρος των ερωτηματολογίων που πήραμε σαν δειγματοληψία, εμφανιζόταν η τελική απόφαση για το αν ο ασθενείς πληροί τις προϋποθέσεις για να κάνει Μαγνητική Τομογραφία. Από τα παραπάνω κατασκευάσαμε ένα αρχείο txt που περιλάμβανε όλα τα στοιχεία που μας ενδιέφερε να καταγράψουμε. Μας ενδιέφερε αυτό το αρχείο να περιλαμβάνει τα κριτήρια βάσει των οποίων προκύπτει η τελική απόφαση. Το αρχείο αυτό, αποσκοπούμε στο να αποτελέσει την Βάση Δεδομένων μας από την οποία θα κάνουμε εξόρυξη πληροφοριών και θα σχηματοποιήσουμε τους «κανόνες». Εντέλει, στους κανόνες αυτούς θα στηριχτεί ο κώδικας που θα γράψουμε και, βάσει αυτού του κώδικα, το έμπειρο σύστημα που θα σχεδιάσουμε θα παίρνει μία μίνι συνέντευξη από τον ασθενή και, ανάλογα με τις απαντήσεις που θα λαμβάνει ως feedback, θα επιστρέφει ένα αξιόπιστο συμπέρασμα. Δείγμα αυτού του αρχείου που αποτελεί τη Βάση Δεδομένων μας για το συγκεκριμένο παράδειγμα, παραθέτουμε στην εικόνα που ακολουθεί: 79

80 Στο παραπάνω δείγμα της Βάσης Δεδομένων, εμφανίζονται ορισμένες κωδικοποιημένες εκφράσεις, όπως in και Οι εκφράσεις αυτές συνδέονται άρρηκτα με το λογισμικό που θα χρησιμοποιήσουμε στην πορεία, για ε- ξαγωγή των κανόνων από τη Βάση Γνώσης. Τον τρόπο με τον οποίο συνδέονται και το γιατί επιλέξαμε το συγκεκριμένο λογισμικό, είναι κάτι που θα αναλύσουμε σε επόμενη ενότητα. Ως εκ τούτου, στην παρούσα φάση θα επικεντρωθούμε στο τι μπορούμε να «διαβάσουμε» μέσα από αυτό το txt αρχείο. Αμέσως μετά από κάθε εμφανίζεται ένας τίτλος γραμμένος στα λεγόμενα «greeklish» (π.χ. Arthroplastiki_plin_titaniou). Καθένας από αυτούς τους τίτλους, στην πραγματικότητα αποτελεί και ένα κριτήριο, βάσει του οποίου προκύπτει το συμπέρασμα για το αν είναι ασφαλές ένας ασθενής να υποβληθεί σε Μαγνητική Τομογραφία. Τα κριτήρια, λοιπόν, αυτά τα αποκαλούμε Attributes (Ιδιότητες) της Βάσης Γνώσης. Αμέσως μετά τον τίτλο της κάθε ιδιότητας, εμφανίζονται μέσα σε άγκιστρα οι τελεστές yes και no. Οι τιμές αυτές, εκφράζουν τον τύπο δεδομένων που επιδέχεται η κάθε ιδιότητα. Για παράδειγμα, ένας ασθενής ή θα έχει βηματοδότη, ή δεν θα έχει. Δεν υπάρχει κάποια ενδιάμεση κατάσταση. Όλες οι ιδιότητες κριτήρια της Βάσης Γνώσης μας έχουν αυτό το κοινό χαρακτηριστικό. Αμέσως μετά την κάθε γραμμή αυτού του διακριτικού πίνακα, αποτελεί και μία εγγραφή ενός ασθενή, με στοιχεία που προκύπτουν από το ε- ρωτηματολόγιο το οποίο συμπλήρωσε. Στην παραπάνω εικόνα, εμφανίζεται ένα 80

81 δείγμα από 14 εγγραφές και άρα 14 ασθενείς. Πως όμως διαβάζουμε και αντιλαμβανόμαστε τα στοιχεία της κάθε εγγραφής; Ας πάρουμε ως παράδειγμα της πρώτη. Α- μέσως μετά την η πρώτη εγγραφή που αναγράφεται είναι η εξής: yes, no, no, no, no, no. Κάθε κόμμα που παρεμβάλλεται ανάμεσα στο εκάστοτε yes ή no, αναπαριστά ένα διαχωριστικό μετάβασης σε επόμενη ιδιότητα κριτήριο. Η σειρά αντιστοίχισης των ιδιοτήτων είναι η ίδια με αυτήν που έχουν δηλωθεί αρχικά. Επομένως, στο παράδειγμα μας, το yes της πρώτης εγγραφής, «απαντά» στην ιδιότητα που «ερωτά» αν ο ασθενής έχει κάνει αρθροπλαστική με οποιοδήποτε υλικό πλην του τιτανίου. Το κόμμα που ακολουθεί, μας μεταβιβάζει στην αμέσως επόμενη ιδιότητα που δηλώσαμε που «ερωτά» αν ο ασθενής έχει βηματοδότη. Επομένως αυτό που διαβάζουμε στην πρώτη εγγραφή του παραδείγματός μας είναι το «no» και, ως εκ τούτου, συμπεραίνουμε πως ο συγκεκριμένος ασθενής δεν έχει βηματοδότη. Αντίστοιχα, συνεχίζοντας την ανάγνωση αυτής της εγγραφής, συμπεραίνουμε πως δεν είναι έγκυος και δεν φοράει σιδεράκια. Η τελευταία ιδιότητα (attribute) της Βάσης Γνώσης μας, είναι η έξοδός (output) της που, στην προκειμένη περίπτωση εκφράζει το τελικό συμπέρασμα σχετικά με το αν είναι ασφαλές ο ασθενής μας να υποβληθεί σε Μαγνητική Τομογραφία ή όχι. Μπορούμε, με αφορμή αυτήν την παρατήρησης να καταλήξουμε σε ένα πιο γενικευμένο συμπέρασμα, πως σε καθεμία Βάση Γνώσης τέτοιου τύπου, όλες οι υπόλοιπες ιδιότητες (attributes) αποτελούν την είσοδο (input) και η τελευταία την έξοδο (output). Με βάση αυτό το συμπέρασμα, προκύπτει μια πρώτη ένδειξη από τον πρώτο ασθενή, πως το γεγονός και μόνο ότι έχει κάνει αρθροπλαστική με υλικό πλην τιτανίου, είναι αρκετό για να κριθεί απαγορευτική η Μαγνητική Τομογραφία στην περίπτωσή του. Μία μόνο εγγραφή, όμως, δεν αρκεί για να πάρει αυτή η ένδειξη τη μορφή κανόνα. Για να γίνουμε πιο σαφής, εάν στην πορεία διαβάσουμε τις υπόλοιπες εγγραφές και παρατηρηθεί έστω και μία που να περιγράφει έναν ασθενή που έχει κάνει αρθροπλαστική με υλικό πλην τιτανίου και, παρόλα αυτά, υποβλήθηκε σε Μαγνητική Τομογραφία, αυτομάτως η προοπτική δημιουργίας ενός κανόνα που θα λέει πως «ασθενείς που έχει κάνει αρθροπλαστική με οποιοδήποτε υλικό πλην τιτανίου, δεν θα υποβάλλεται σε Μαγνητική Τομογραφία» καταρρίπτεται. Επομένως, η αρχική ένδειξη, για να πάρει την μορφή κανόνα, θα πρέπει καμία από τις εγγραφές που ακολουθούν να μας οδηγεί σε αντιφατικό συμπέρασμα. Με βάση όλα τα παραπάνω, αντιλαμβανόμαστε πως για να οδηγηθούμε σε έναν τελικό σχηματισμό κανόνων, είναι μία διαδικασία που, για να την κάνουμε μόνοι μας, απαιτεί πάρα πολύ χρόνο (χρόνος ο οποίος αυξάνεται εκθετικά με το πλήθος των εγγραφών), τεράστια προσοχή και συνεχή επιτήρηση, δεδομένου πως η Βάση Γνώσης διαρκώς θα αυγατίζεται από νέους ασθενείς οι οποίοι κάθε τόσο θα συμπληρώνουν το ερωτηματολόγιο στο οποίο στηρίζεται η Βάση Γνώσης μας. Ευτυχώς, λοιπόν, για αυτόν ακριβώς τον σκοπό δημιουργίας και εξόρυξης των κανόνων από μία Βάση Γνώσης, έχουν σχεδιαστεί λογισμικά που χρησιμοποιούν αλγόριθμους οι οποίοι εξάγουν τους κανόνες και μας τους παραδίδουν έτοιμους, γλιτώνοντας μας από μία ιδιαίτερα χρονοβόρα και κοπιαστική εργασία. Κατά πόσο είναι, όμως, αυτά τα λογισμικά αξιόπιστα, ακριβή και ευέλικτα; Ποιο λογισμικό επιλέξαμε τελικά εμείς για τις ανάγκες αυτής της διπλωματικής εργασίας; Τα ερωτήματα αυτά σκοπεύουμε να τα απαντήσουμε στις ενότητες που ακολουθούν. 81

82 6.3 WEKA: Data Mining Software Το WEKA (Wekato Enviroment for knowledge Analysis) είναι ένα λογισμικό (software) για εξόρυξη δεδομένων σε Java το οποίο περιέχει υλοποιημένες μεθόδους για: Προεπεξεργασία Δεδομένων Ταξινόμηση Συσταδοποίηση Εύρεση Κανόνων Συσχέτισης Είναι διαθέσιμο για δωρεάν εγκατάσταση από την ιστοσελίδα Για το περιβάλλον των Microsoft Windows, σε περίπτωση που κάποια έκδοση της Java δεν είναι ήδη εγκατεστημένη, το εκτελέσιμο αρχείο που θα αποθηκευτεί είναι η έκδοση (stable version) που περιλαμβάνει την Java VM 1.6. Τα αρχεία που περιέχουν το σύνολο δεδομένων που επεξεργάζεται το WEKA για εξόρυξη πρέπει να έχουν συγκεκριμένο format και αν αποθηκεύονται με την επέκταση.arff. Αυτό σημαίνει πως το αρχείο txt που δημιουργήσαμε και αποτελεί την Βάση Γνώσης μας πρέπει να το κάνουμε εκ νέου αποθήκευση ώστε να αποκτήσει το συγκεκριμένο file type. Έχοντας ολοκληρώσει αυτήν την διαδικασία, τρέχουμε το WEKA και το interface που εμφανίζεται το παραθέτουμε στην παρακάτω εικόνα: 82

83 Επιλέγουμε το κουμπί Explorer και εμφανίζεται το παρακάτω παράθυρο: Από το παράθυρο αυτό, επιλέγουμε το κουμπί Open file και αναζητούμε το αρχείο arff που περιέχει την Βάση Γνώσης για το έμπειρο σύστημα που θέλουμε να σχεδιάσουμε. Ολοκληρώνοντας αυτήν την διαδικασία, το παράθυρο διαμορφώνεται ως εξής: 83

84 Παρατηρούμε πως, από την στιγμή πως φορτώνουμε το arff αρχείο μας στην εφαρμογή, το WEKA απευθείας απαριθμεί το πλήθος των εγγραφών περιστατικών της Βάσης Γνώσης μας (Instances: 117), καθώς επίσης και το πλήθος των ιδιοτήτων κριτηρίων (Attributes: 6) που έχουμε θέσει! Αυτό βέβαια, προϋποθέτει πως κάποιες εντολές εκφράσεις που περιλαμβάνονται στο arff αρχείο, τις έχουμε δώσει εμείς κατάλληλα ώστε να είναι αναγνώσιμες από το WEKA. Εκεί άλλωστε έγκειται και η δομή που έχουμε πληκτρολογήσει τα δεδομένα πριν αρχίσουμε να περνάμε τις εγγραφές στη Βάση Γνώσης. Ακριβώς από κάτω από το πλήθος των ιδιοτήτων, παρατηρούμε πως εμφανίζονται σε μία λίστα οι τίτλοι που έχουμε αποδώσει σε κάθε ιδιότητα συνοδευόμενη η κάθε μία ξεχωριστά από ένα checkbox. Σε αυτό το σημείο, όπου έχουν απαριθμηθεί η εγγραφές και οι ιδιότητες, επιθυμούμε από την εφαρμογή του WEKA να μας εξάγει ένα Δέντρο Απόφασης (Κεφάλαιο 3 ο ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ (ΘΕΩΡΗΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ)). Όπως έχουμε ήδη αναφέρει για τις ανάγκες εξόρυξης δεδομένων, το WEKA περιλαμβάνει αρκετούς, ήδη εγκατεστημένους, αλγόριθμους, ανάλογα με τον τρόπο που θέλουμε να προβάλουμε τα δεδομένα της Βάσης Γνώσης. Για να εξάγουμε, λοιπόν, ένα Δέντρο Απόφασης θα χρειαστούμε στην προκειμένη περίπτωση τον αλγόριθμο J48, έναν αλγόριθμο ιδανικό για την δημιουργία Δέντρων Απόφασης από μία Βάση Γνώσης. Παραθέτουμε παρακάτω καρέ καρέ τον τρόπο επιλογής του αλγόριθμου: Επιλέγουμε από το παράθυρο του Explorer του WEKA, την καρτέλα Classify και στην συνέχεια κάνουμε κλικ στο κουμπί που αναγράφει Choose : 84

85 Στο παράθυρο που προκύπτει, αναπτύσσουμε τον φάκελο trees και επιλέγουμε τον αλγόριθμο J48 Ακριβώς κάτω από το κουμπί Choose υπάρχουν τα test options. Σε αυτές τις επιλογές μας δίδεται η δυνατότητα διαίρεσης της Βάσης Γνώσης του έμπειρου συστήματος σε επιμέρους Βάσεις. Κάτι τέτοιο μας εξυπηρετεί στο να κάνουμε συγκρίσεις και, μέσα από τις συγκρίσεις αυτές, να οδηγούμαστε σε συμπεράσματα που έχουν να 85

86 κάνουν με την βελτίωση, τις ανάγκες και την ακρίβεια του αρχείου πληροφοριών arff που χρησιμοποιήσαμε. Για παράδειγμα, στο συγκεκριμένο παράδειγμα, έχουμε εισάγει ένα αρχείο στο WEKA, με 117 instances. Μπορούμε από τα «σπλάχνα» αυτού του αρχείου να δημιουργήσουμε ένα νέο αρχείο, από το οποίο θα επιλέξουμε κάποιες, σαφέστατα λιγότερες, από τις 117 εγγραφές, ώστε να προκύψει μία νέα μικρότερη Βάση Γνώσης. Έτσι, μπορούμε να χρησιμοποιήσουμε την αρχική Βάση Γνώσης σαν Training Set και την άλλη, την μικρότερη, σαν Test Set. Κάνοντας στη συνέχεια σύγκριση μεταξύ των κανόνων (Δέντρων Απόφασης) που προκύπτουν από το Training Set και το Test Set, μπορεί να οδηγηθούμε σε πολύ χρήσιμα συμπεράσματα, όπως την ικανότητα του αλγόριθμου να παρακάμπτει attributes που φαινομενικά δεν διαδραματίζουν κάποιον ρόλο στο τελικό αποτέλεσμα, καθώς επίσης και την αναγκαιότητα η Βάση Γνώσης να εμπλουτίζεται συνεχώς με περιστατικά, ούτως ώστε το Δέντρο Απόφασης που προκύπτει να είναι όλο και πιο ακριβές. Θα ξεκινήσουμε με το Training Set, οπότε εδώ χρησιμοποιούμε 86 από τα 117 instances που καταγράψαμε από το δείγμα των 117 ασθενών που συμπλήρωσαν τα ερωτηματολόγια στο Διαγνωστικό Κέντρο. Κάνουμε κλικ, επομένως στο Training Set. To (Nom)MRI, είναι πολύ σημαντικό και υποδηλώνει ποιο Attribute από αυτά που έχουμε ήδη δηλώσει, θα έχει το ρόλο της εξόδου (output), θα είναι δηλαδή η ιδιότητα εκείνη βάσει της οποίας θα προκύπτει το συμπέρασμα: Στο παράδειγμά μας, «πρέπει ή δεν πρέπει ο ασθενής να υποβληθεί σε Μαγνητική Τομογραφία;» Από προεπιλογή (by default) το WEKA ορίζει την τελευταία ιδιότητα που ορίσαμε ως ιδιότητα εξόδου, παρόλα αυτά, αν για οποιοδήποτε λόγο αυτό κάποια στιγμή μπορεί να μην βγάζει νόημα, να μην είναι δηλαδή η ιδιότητα που επιθυμούμε, τότε ενεργοποιούμε την αναπτυσσόμενη λίστα και επιλέγουμε την ιδιότητα που εμείς θέλουμε για την έξοδο. 86

87 Αφού ρυθμίσουμε όλα τα παραπάνω, κάνουμε κλικ στο κουμπί Start για να ξεκινήσει η διαδικασία εξόρυξης πληροφοριών και τελικά η δημιουργία του Δέντρου Απόφασης, από το οποίο θα εξάγουμε τους κανόνες για το έμπειρο σύστημα που θέλουμε να δημιουργήσουμε. Σε αυτό το σημείο εμφανίζεται στο πλαίσιο με τίτλο Classifier Output, χαμηλά στο τέλος, το πλήθος των instances που πήραν την τιμή yes και άρα χωρίς πρόβλημα μπορούν να υποβληθούν σε Μαγνητική Τομογραφία και αυτές που πήραν την τιμή no και άρα ΔΕΝ μπορούν (33 yes και 84 no). Κάτω ακριβώς από το κουμπί Start εμφανίζεται η λίστα αποτελεσμάτων για κάθε Start που έχουμε πατήσει. Σε αυτό το σημείο, προφανώς, εμείς έχουμε μόνο ένα αποτέλεσμα. Για να εμφανίσουμε από αυτό το αποτέλεσμα το αντίστοιχο Δέντρο Α- πόφασης, κάνουμε δεξί κλικ πάνω στον τίτλο του αποτελέσματος και επιλέγουμε Visualize tree. Έτσι προκύπτει το Δέντρο Απόφασης το οποίο παραθέτουμε στην παρακάτω εικόνα: 87

88 Παρατηρούμε πως το Δέντρο Απόφασης που προέκυψε εμφανίζει όλα τα Attributes που είχαμε δηλώσει. Αυτό σημαίνει πως όλες οι ιδιότητες διαδραματίζουν ρόλο στην εξαγωγή του τελικού συμπεράσματος και καμία δεν παρακάμφθηκε. Μέσα από αυτό το Δέντρο Απόφασης θα καταγράψουμε τους κανόνες οι οποίοι μας είναι απαραίτητοι για την συγγραφή του κώδικα στην συνέχεια. Πάμε, λοιπόν, να «διαβάσουμε» τον εν λόγω Δέντρο Απόφασης με τη σειρά που πρέπει, δηλαδή από πάνω προς τα κάτω: Αρχικά ελέγχουμε αν ο ασθενής φοράει σιδεράκια. Αν ναι τότε το πρόγραμμα πρέπει να σταματάει εκεί καθότι δεν χρειάζεται να ελεγχθούν επιμέρους παράμετροι. Μόνο και μόνο το ότι ο ασθενείς φοράει σιδεράκια, είναι μία πληροφορία αρκετή, για να κριθεί ακατάλληλος στο να υποβληθεί σε Μαγνητική Τομογραφία Αν, όμως, ο ασθενής ΔΕΝ φοράει σιδεράκια, αυτομάτως, περνάμε στον έ- λεγχο της επόμενης παραμέτρου, κατά την οποία εξετάζουμε αν έχει κάνει αρθροπλαστική με χρήση οποιουδήποτε υλικό πέρα από τιτάνιο. Αν ναι, τότε ο έλεγχος σταματά και βγαίνει απευθείας συμπέρασμα πως είναι ακατάλληλος στο να υποβληθεί σε Μαγνητική Τομογραφία Αν, όμως, και σε αυτήν την ιδιότητα η απάντηση είναι αρνητική, ο έλεγχος συνεχίζεται κανονικά και αυτή τη φορά εξετάζουμε το αν ο ασθενής έχει βηματοδότη. Αν ναι, τότε ο έλεγχος σταματά και ο ασθενής κρίνεται ακατάλληλος στο να υποβληθεί σε Μαγνητική Τομογραφία 88

89 Αν δεν ισχύει τίποτα από τα παραπάνω, περνάμε στον επόμενο κανόνα που εξετάζει αν ο ασθενής είναι έγκυος. Σε αυτό το σημείο η δομή του Δέντρου Απόφασης αρχίζει να διαφοροποιείται. Πιο συγκεκριμένα, εδώ, η αρνητική απάντηση είναι αυτή που θα σταματήσει την ελεγκτική διαδικασία και όχι η θετική. Επομένως, έχοντας χρειαστεί να εξετάσουμε όλες τις προηγούμενες παραμέτρους και φτάνοντας ως εδώ, αν ο ασθενής έχει δηλώσει πως ΔΕΝ είναι έγκυος, η ελεγκτική διαδικασία σταματά και βγαίνει συμπέρασμα πως μπορεί χωρίς κανένα πρόβλημα να υποβληθεί σε Μαγνητική Τομογραφία. Είναι η πρώτη φορά, στην μέχρι τώρα ανάγνωση του Δέντρου που το συμπέρασμα αλλάζει και είναι θετικό προς τον ασθενή Σε περίπτωση θετικής απάντησης στην ιδιότητα Egyos, η ελεγκτική διαδικασία συνεχίζεται και το πρόγραμμα οφείλει, από τη στιγμή που πάρει το feedback πως ο ασθενής είναι έγκυος, να τον ρωτήσει αν έχει ολοκληρώσει τον τρίτο μήνα της εγκυμοσύνης. Σε αυτό το σημείο, οποιαδήποτε απάντηση και αν δοθεί στο σύστημα, θα έχουμε τερματισμό του ελέγχου, δεδομένου ότι δεν χρειάζεται (και δεν γίνεται γιατί δεν υπάρχουν άλλες) να ελεγχθούν άλλες παράμετροι. Απλώς, αν η απάντηση εδώ είναι θετική, το τελικό συμπέρασμα είναι πως ο ασθενής μπορεί να κάνει Μαγνητική Τομογραφία χωρίς πρόβλημα, ενώ, αν η απάντηση είναι αρνητική, τότε κρίνεται ακατάλληλος, καθότι υπάρχει κίνδυνος να δημιουργηθούν επιπλοκές στην εγκυμοσύνη της εγκύου Οι παραπάνω λίστα με τα bullets που καταγράψαμε, δεν είναι απλώς η «ανάγνωση» του Δέντρου Απόφασης. Είναι οι τελικοί κανόνες που μας είναι πολύτιμοι και απαραίτητοι για να την συγγραφή του κώδικα που απαιτείται από το έμπειρο σύστημα για να μπορεί να λειτουργήσει. Αποδεικνύεται εμφατικά, πως η συγκεκριμένη διαδικασία εξαγωγής των κανόνων είναι πολύ πιο εύκολη και γρήγορη, σε σχέση με το να καθόμασταν να τους σχεδιάσουμε μόνοι μας ελέγχοντας όλες τις εγγραφές μία προς μία στη Βάση Γνώσης. Αυτό ενισχύει την απόφασή μας να χρησιμοποιήσουμε για τον συγκεκριμένο σκοπό την εφαρμογή του WEKA. Σίγουρα, τα πράγματα θα ήταν πολύ πιο εύκολα, αν τους κανόνες αυτούς τους είχαμε έτοιμους με κάποιον τρόπο. Για παράδειγμα, αν ο συντάκτης αυτής της διπλωματικής εργασίας ήταν Ιατρός, θα γνώριζε τους κανόνες ήδη, δεν θα χρειαζόταν να τους ανακαλύψει. Σε αυτήν την περίπτωση, η Βάση Γνώσης η συγκεκριμένη θα ήταν άχρηστη, όπως επίσης δεν θα υπήρχε κανένας λόγος χρήσης του WΕKA. Παρόλα αυτά, σε πολλές περιπτώσεις, όπου οι Βάσεις Γνώσης είναι πολύ μεγαλύτερες και οι ιδιότητες είναι που πρέπει να ελεγχθούν πολύ περισσότερες, ακόμη και για τους ίδιους τους Ιατρούς, μία τέτοια διαδικασία θα ήταν ιδιαίτερα χρήσιμη, ακόμη και αν είχε επαληθευτικό χαρακτήρα. Στο παράδειγμα που ακολουθεί θα κάνουμε χρήση του test set. O διαχωρισμός του training set με το test set γίνεται για να διαπιστώσουμε το κατά πόσο το έμπειρο σύστημά μας λειτουργεί ικανοποιητικά. Παίρνοντας, λοιπόν, μία αναλογία 2 προς 1 μεταξύ training set και test set, οδηγούμαστε στα συνολικά instances του test set που θα είναι , δηλαδή 31: 89

90 Εκ νέου, κάνουμε κλικ στο κουμπί Start για να ξεκινήσει η διαδικασία εξόρυξης πληροφοριών και τελικά η δημιουργία του Δέντρου Απόφασης, από το οποίο θα εξάγουμε τους κανόνες για το έμπειρο σύστημα που θέλουμε να δημιουργήσουμε. Σε αυτό το σημείο εμφανίζεται στο πλαίσιο με τίτλο Classifier Output, χαμηλά στο τέλος, το πλήθος των instances που πήραν την τιμή yes και άρα χωρίς πρόβλημα μπορούν να υποβληθούν σε Μαγνητική Τομογραφία και αυτές που πήραν την τιμή no και άρα ΔΕΝ μπορούν (9 yes και 22 no). Με τον ίδιο τρόπο που έχουμε ήδη α- ναλύσει παραπάνω, παίρνουμε το decision tree για το test set, το οποίο παραθέτουμε στην παρακάτω εικόνα: 90

91 6.4 CLIPS: Η Συγγραφή του Κώδικα Στην προηγούμενη ενότητα οδηγηθήκαμε στην εξαγωγή των κανόνων στους οποίους θα βασιστεί το πρώτο έμπειρο σύστημα που σχεδιάσαμε. Αυτό το έμπειρο σύστημα, θέλουμε να έχει την ικανότητα να αποφασίζει με ακρίβεια για το αν ένας ασθενής μπορεί με ασφάλεια να υποβληθεί σα μαγνητική τομογραφία ή όχι. Έχοντας ολοκληρώσει αυτό το στάδιο της αρχικής σχεδίασης, είμαστε έτοιμοι να περάσουμε στο επόμενο στάδιο ανάπτυξης του λογισμικού μας, που είναι ο προγραμματισμός. Στην πραγματικότητα, αυτό που θέλουμε να επιτύχουμε, είναι να εργαστούμε σε ένα περιβάλλον, μέσα στο οποίο θα συντάξουμε τους κανόνες που έχουμε εξάγει, σε μία γλώσσα προγραμματισμού, κατανοητή και επεξεργάσιμη από το περιβάλλον αυτό. Για τον παραπάνω σκοπό επιλέξαμε το CLIPS. Πρόκειται για ένα περιβάλλον που προσφέρει δυνατότητες για προγραμματισμό με κανόνες, αντικείμενα και συναρτήσεις. Αναπτύχθηκε από τη NASA, με σκοπό να αποτελέσει μία χαμηλού κόστους πλατφόρμα ανάπτυξης έμπειρων συστημάτων, πιο «εξελιγμένων» ώστε να αντικαταστήσουν τα ήδη υπάρχοντα που υπήρχαν μέχρι τότε και ήταν γραμμένα κυρίως σε γλώσσα προγραμματισμού LISP. Το κύρια μέρη του CLIPS είναι: Η λίστα γεγονότων (facts list) η οποία αντιστοιχεί στη μνήμη εργασίας (working memory) των συστημάτων παραγωγής. Όπως δηλώνει και το όνομά της, είναι ο χώρος στον οποίο αποθηκεύονται τα γεγονότα (facts), τόσο εκείνα που ορίζονται κατά την εκκίνηση του συστήματος, όσο και εκείνα που δημιουργούνται κατά την εκτέλεσή του Η βάση κανόνων (rule base / knowledge base), όπου περιέχονται οι κανόνες. Αν και οι κανόνες μπορούν να ορισθούν μέσα από το περιβάλλον του συστήματος, συνήθως είναι αποθηκευμένοι σε κάποιο αρχείο απλού κειμένου (text document), το οποίο φορτώνεται στο σύστημα Ο μηχανισμός εξαγωγής συμπερασμάτων (inference engine), o οποίος ε- λέγχει τη λειτουργία ολόκληρου του συστήματος. Ο μηχανισμός αυτός προσφέρει ένα πλήθος από στρατηγικές επίλυσης συγκρούσεων (conflict resolution strategies) για την επιλογή του κανόνα που θα πυροδοτηθεί. Το σύνολο των υποψήφιων κανόνων για πυροδότηση αποτελεί το σύνολο σύγκρουσης ή την ατζέντα (conflict set ή agenda) του συστήματος Ένα πρόγραμμα στο CLIPS είναι ένα σύνολο από κανόνες και γεγονότα και η εκτέλεση του συνίσταται σε µια ακολουθία από πυροδοτήσεις κανόνων, των οποίων οι συνθήκες ικανοποιούνται. Η ικανοποίηση των συνθηκών γίνεται µέσω ταυτοποίησής τους µε τα γεγονότα που υπάρχουν στη λίστα γεγονότων. Η εκτέλεση τερματίζεται όταν δεν υπάρχουν άλλοι κανόνες προς πυροδότηση ή όταν κληθεί συγκεκριμένη εντολή τερματισμού. 91

92 Το CLIPS είναι λογισμικό το οποίο διατίθεται δωρεάν σε διάφορα url ένα εκ των ο- ποίων είναι και το το οποίο μας παραπέμπει στην παρακάτω σελίδα: Αφού ακολουθήσουμε τα απαραίτητα βήματα εγκατάστασης, τρέχουμε το CLIPS και εμφανίζεται το παρακάτω interface: 92

93 Μέσα στο ελεύθερο πλαίσιο του παραθύρου dialog window πληκτρολογούμε τον κώδικα που θα έχει το έμπειρο σύστημα που θέλουμε να δημιουργήσουμε. Συνήθως, βέβαια, δεν πληκτρολογούμε απευθείας τον κώδικα στο περιβάλλον του CLIPS. Τον συντάσσουμε σε ένα αρχείο txt και από εκεί τον κάνουμε copy paste στο εν λόγω παράθυρο. Με ποια λογική και με ποιες αρχές, όμως, συντάξαμε αυτόν τον κώδικα; Κάθε κώδικας έχει τις δικές του εκφράσεις. Έτσι, αντίστοιχα, και αυτός που γράφεται στον περιβάλλον του CLIPS έχει τις δικές του. Παρακάτω εμείς, για ευνόητους λόγους, δεν θα τις αναφέρουμε όλες, αλλά θα παραθέσουμε εκείνες τις οποίες πραγματικά χρειαστήκαμε για να φτιάξουμε το έμπειρο σύστημα που είναι προσαρμοσμένο στις ανάγκες αυτής της διπλωματικής εργασίας CLIPS: Σημαντικές Εντολές Εντολή slot και deftemplate: Το CLIPS προσφέρει ένα εναλλακτικό τρόπο δημιουργίας και διαχείρισης γεγονότων µέσω ορισμού προτύπων γεγονότων. Τα πρότυπα γεγονότων είναι µια δομή µε την οποία μπορεί να οριστεί η μορφή που θα έχουν τα γεγονότα σε ένα πρόγραμμα. Κάθε πρότυπο έχει ένα σύνολο από ιδιότητες (slots), στις οποίες μπορούν να ανατεθούν τιμές αυτόνομα, ενώ επιπλέον μπορούν να ορισθούν και οι τύποι των τιμών αυτών ώστε να γίνονται οι απαραίτητοι έλεγχοι. Ο ορισμός πρότυπων γεγονότων γίνεται µε τη συνάρτηση deftemplate: Σύνταξη: (deftemplate <template name> (slot <slotname1> (type <type1>)) ;ιδιότητα 1 τύπου1 (multislot <slotname2> (type <type2>)) ;ιδιότητα 2 τύπου2... (slot <slotnamen> (type <typen>)) ;ιδιότητα Ν τύπουν ) όπου slotnamen είναι το όνομα της ιδιότητας και το όρισμα (type <typeν>) καθορίζει τον τύπο της τιμής της συγκεκριμένης ιδιότητας. Ο καθορισμός τύπου είναι προαιρετικός και αν δεν ορισθεί για κάποια ιδιότητα αυτή μπορεί να δεχθεί τιμή οποιουδήποτε τύπου. Υπάρχουν δύο είδη ιδιοτήτων: οι ιδιότητες slot που μπορούν να πάρουν σαν τιμή µόνο ένα σύμβολο ή αριθμό και οι ιδιότητες multislot οι οποίες δέχονται πολλαπλές τιμές. Μπορεί να θεωρηθεί ότι οι πρώτες αντιστοιχούν στις µονότιµες μεταβλητές, ενώ οι δεύτερες στις µμεταβλητές πολλαπλών τιμών. 93

94 Εντολή salience Η προτεραιότητα ενός κανόνα ορίζεται µέσω της δήλωσης (declare (salience <number>)) στη συνάρτηση ορισμού του κανόνα. Για παράδειγµα: (defrule cartesian ) (declare (salience 30)) ;ορισµός προτεραιότητας κανόνα (element?a) (element?b) => (printout t "Elements: "?a " "?b crlf) Η αριθμητική τιμή καθορίζει την προτεραιότητα του κανόνα. Όσο µμεγαλύτερη είναι η τιμή αυτή τόσο μεγαλύτερη είναι και η προτεραιότητα του συγκεκριμένου κανόνα. Οι επιτρεπτές τιμές της προτεραιότητας είναι από έως Εάν δεν υπάρχει δήλωση, ο κανόνας θεωρείται ότι έχει την προκαθορισμένη τιμή μηδέν. Εντολή bind Η εντολή bind αποτελεί συνάρτηση ανάθεσης τιμής σε μεταβλητή: Σύνταξη: (bind <variable> <value>) Η εντολή χρησιμοποιείται για να ανατεθεί η τιμή <value> σε µια µμεταβλητή <variable> στις ενέργειες των κανόνων. Παράδειγµα: (defrule rule1 ) "example rule" (oldcost?cost) (newcost?newcost) => (bind?total_cost (+?newcost?oldcost)) (assert (cost?total_cost)) (printout t "The total cost is "?total_cost crlf) Με τη χρήση της εντολής bind στο παραπάνω παράδειγμα, υπολογίζεται το συνολικό κόστος (άθροισμα των µμεταβλητών?oldcost?newcost) µόνο µια φορά, το αποτέ- 94

95 λεσμα αποθηκεύεται στη μεταβλητή?total_cost και χρησιμοποιείται στη συνέχεια σαν όρισμα σε δύο διαφορετικές συναρτήσεις Εντολή defrule Στις ενέργειες του κανόνα περιγράφεται το τι θα λάβει χώρα κατά την πυροδότησή του (firing). Οι ενέργειες μπορούν να περιλαμβάνουν οποιαδήποτε συνάρτηση του CLIPS, όπως για παράδειγμα την εισαγωγή ή διαγραφή ενός γεγονότος από τη λίστα γεγονότων, την εκτύπωση αποτελεσμάτων, υπολογισμό τιμών, κλπ. Οι κανόνες ορίζονται µέσω της συνάρτησης defrule του CLIPS. Σύνταξη: ) (defrule < rule-name > ;Όνοµα Κανόνα (µοναδικό) "< comments >" ;Επεξηγηµατικά σχόλια για τον κανόνα (condition 1) ;Συνθήκη 1 (condition 2) ;Συνθήκη 2... (condition n) ;Συνθήκη n => (command 1) ;Εντολή 1 (command 2) ;Εντολή 2... (command n) ;Εντολή n Το σύμβολο "=>" διαχωρίζει τις συνθήκες από τις ενέργειες του κανόνα. Το όνομα του κανόνα πρέπει να είναι μοναδικό. Εντολή Printout Σύνταξη: (printout <device> <expression>). Αποστέλλει την έκφραση <expression> στη συγκεκριμένη συσκευή <device>. Η συσκευή μπορεί να είναι οποιαδήποτε συσκευή Ι/Ο, για παράδειγμα ένα αρχείο ή η οθόνη. Στη περίπτωση που η συσκευή είναι η οθόνη, η εντολή συντάσσεται µε τιμή t(terminal) στην παράμετρο <device>. Παράδειγµα: (printout t "The day was "?type crlf) 95

96 Όταν εκτελεστεί η παραπάνω εντολή και η τιμή της µμεταβλητής?type είναι για παράδειγμα sunny, τότε θα τυπωθεί στην οθόνη το μήνυμα: The day was sunny. Το σύμβολο crlf δηλώνει ότι μετά την εκτύπωση του μηνύματος στην οθόνη ο δρομέας θα αλλάξει γραμμή. Εντολή Assert Είναι εντολή εισαγωγής γεγονότων στη λίστα γεγονότων. Σύνταξη: (assert <fact>) Η εντολή assert εισάγει ένα γεγονός στη λίστα γεγονότων. Χρησιμοποιείται συνήθως στο δεξιό μέρος των κανόνων. Παράδειγµα: Η επόµενη εντολή εισάγει το γεγονός (water tank empty)στη λίστα γεγονότων: (assert (water tank empty)) CLIPS: Καταλήγοντας στον κώδικα για το πρώτο δικό μας Έμπειρο Σύστημα Όπως ήδη αναφέραμε στην προηγούμενη ενότητα, κάναμε μία σύντομη περιγραφή ορισμένων (και όχι όλων) εντολών του κώδικα σε περιβάλλον CLIPS για να μπορέσουμε στη συνέχεια, με πολύ μεγαλύτερη ευκολία, να συντάξουμε, να διαβάσουμε και να κατανοήσουμε τον τρόπο λειτουργίας του κώδικα που συνθέτει το πρώτο δικό μας έμπειρο σύστημα. Οι παραπάνω εντολές που περιγράψαμε, μας δίνουν όλα τα απαραίτητα εφόδια που χρειαζόμαστε ούτως ώστε να δηλώσουμε τους κανόνες που εξαγάγαμε από το WEKA σαν μεταβλητές, να ορίσουμε τον τύπο δεδομένων αυτών των μεταβλητών, να προσδώσουμε μια μορφή στο έμπειρο σύστημά μας που θα είναι μία μορφή συνέντευξης με τον χρήστη ασθενή κ.α. Στην πραγματικότητα, οι μεταβλητές που θα δηλώσουμε στον κώδικα, δεν θα είναι παρά οι ιδιότητες που αναγνώρισε το weka μέσα από το arff αρχείο που του φορτώσαμε και που είναι αυτές που εμφανίζονται στο δέντρο απόφασης που εξαγάγαμε με τη βοήθεια του J48 αλγόριθμου. Όλες οι ιδιότητες, μέσω τον οποίων προκύπτει το συμπέρασμα εάν ο ασθενής με ασφάλεια μπορεί να υποβληθεί σε Μαγνητική Τομογραφία ή όχι, έχουν ένα κοινό χαρακτηριστικό: Δεδομένου ότι το έμπειρο σύστημα θα λειτουργεί με τη μορφή συνέντευξης, όπου ο συνεντευξιαζόμενος θα είναι ο ίδιος ο ασθενής, αυτό που ισχύει για όλες τις ιδιότητες είναι πως θα απαντάει με ένα «ναι» (yes) ή ένα «όχι» (no). Αυτός είναι και ο τύπος δεδομένων {yes, no} που θα πρέπει να δηλώσουμε στον κώδικα για όλες τις μεταβλητές μας. Παραθέτουμε, λοιπόν, παρακάτω τον κώδικα που συγγράψαμε, για αυτό το πρώτο έμπειρο σύστημα της τρέχουσας διπλωματικής εργασίας: 96

97 ; DIAGNOSI PROETOIMASIA EKSETASEWN GIA MRI (deftemplate init_data ) (slot Arthroplastiki_me_yliko_plin_titaniou) (slot Vimatodotis) (slot Egyos) (slot Olokliromenos_3os_minas) (slot Siderakia) (slot MRI) (defrule erotiseis (declare (salience 1000)) => (printout t "Exete kanei arthroplastiki me opoiodhpote yliko plin tou titaniou? ") (bind?arthroplastiki_me_yliko_plin_titaniou (read)) (printout t "Exete vimatodoth? ") (bind?vimatodotis (read)) (printout t "Eiste egyos? ") (bind?egyos (read)) (printout t "Exete oloklirwsei ton trito mhna ths egkymosynhs sas? - An sto prohgoumeno erwthma apanthsate *no* kante to idio kai gia auto - ") (bind?olokliromenos_3os_minas (read)) (printout t "Forate siderakia? ") (bind?siderakia (read)) (assert (init_data(arthroplastiki_me_yliko_plin_titaniou?arthroplastiki_me_yliko_plin_titaniou)(vimatodotis?vimatodotis)(egyos?egyos) (Olokliromenos_3os_minas?Olokliromenos_3os_minas)(Siderakia?Siderakia))) ) (defrule elegxos1 (declare (salience 500)) 97

98 (init_data (Siderakia yes)) => (assert (cannot_do_mri)) ) (defrule apotelesma1 (declare (salience 100)) (cannot_do_mri) => (printout t "Lypoumaste, alla den mporeite na kanete Magnitiki Tomografia" crlf ) ) ( (defrule elegxos2 (declare (salience 500)) (init_data (Arthroplastiki_me_yliko_plin_titaniou yes)) => (assert (cannot_do_mri)) ) ( (defrule elegxos3 (declare (salience 500)) (init_data (Vimatodotis yes)) => (assert (cannot_do_mri)) ) ( (defrule elegxos4 (declare (salience 400)) 98

99 (init_data (Siderakia no)(arthroplastiki_me_yliko_plin_titaniou no)(vimatodotis no)(egyos yes)(olokliromenos_3os_minas no)) => (assert (cannot_do_mri)) ) ( (defrule elegxos5 (declare (salience 400)) (init_data (Siderakia no)(arthroplastiki_me_yliko_plin_titaniou no)(vimatodotis no)(egyos no)) => (assert (can_do_mri)) ) (defrule apotelesma2 (declare (salience 100)) (can_do_mri) => (printout t "Mporeite, xwris kanena provlima, na kanete Magnitiki Tomografia" crlf) ) (defrule elegxos6 (declare (salience 400)) (init_data (Siderakia no)(arthroplastiki_me_yliko_plin_titaniou no)(vimatodotis no)(egyos yes)(olokliromenos_3os_minas yes)) => (assert (can_do_mri)) ) ΤΕΛΟΣ ΚΩΔΙΚΑ 99

100 Τον παραπάνω κώδικα, το συντάξαμε σε μία απλή εφαρμογή επεξεργασίας κειμένου και τον αποθηκεύσαμε σε μορφή ενός txt αρχείου. Χαρακτηριστικά με bold έχουμε βάλει όλες εκείνες τις εντολές την λειτουργία και χρησιμότητα των οποίων έχουμε περιγράψει παραπάνω, για να κάνουμε τον κώδικα εύκολο προς ανάγνωση και κατανόηση. Στη συνέχεια, το περιεχόμενο αυτού του txt αρχείου, το κάναμε copy paste στο πρόγραμμα του CLIPS και το αποθηκεύσαμε ως clp αρχείο. Πως, όμως, θέτουμε το πρόγραμμα σε λειτουργία; Πως μπορούμε να βεβαιωθούμε πως ο κώδικας που συντάξαμε λειτουργεί σωστά και δεν έχει λάθη; Απαντήσεις σε αυτά τα ερωτήματα δίδονται στην ενότητα που ακολουθεί CLIPS: Τρέχοντας το Έμπειρο Σύστημα / Δοκιμή και Αξιολόγηση Έχοντας δημιουργήσει το clp αρχείο, ανοίγουμε το περιβάλλον το CLIPS και από το menu του τρέχοντος παραθύρου επιλέγουμε file load: Εντοπίζουμε το clp αρχείο που περιέχει το επιθυμητό κώδικα και το κάνουμε load. Το αποτέλεσμα φαίνεται στην παρακάτω εικόνα: 100

101 Η ένδειξη TRUE στο κάτω μέρος του παραθύρου αποτελεί μία σημαντική επιβεβαίωση πως έχουμε συντάξει το κώδικά μας σωστά. Σε αντίθετη περίπτωση το μήνυμα θα ήταν FALSE και το CLIPS θα μας είχε επισημάνει τα τμήματα εκείνα του κώδικα στα οποία έχουμε κάνει συντακτικό λάθος (syntax error). Πάμε τώρα να «τρέξουμε» (execute) το πρόγραμμα. Από το menu του ίδιου παραθύρου επιλέγουμε Execution και μετά Run: Το αποτέλεσμα φαίνεται στην παρακάτω εικόνα: Παρατηρούμε πως με την εκκίνηση της εκτέλεσης του προγράμματος εμφανίζεται το πρώτο κείμενο ερώτηση προς τον ασθενή που έχουμε πληκτρολογήσει στον κώδικά μας στην εντολή printout t. Λίγο πιο δεξιά φαίνεται με τη μορφή συμπαγούς μαύρου ορθογωνίου ο κέρσορας που υποδεικνύει το σημείο πληκτρολόγησης απάντησης από τον χρήστη ασθενή. Με βάση τον τύπο δεδομένων που έχουμε αποδώσει στις ιδιότητες μεταβλητές μας, η τιμή που θα δίνει ο συνεντευξιαζόμενος σε κάθε ερώτηση θα πρέπει να φέρει την τιμή yes ή no και, για να προχωρήσει στην ερώτηση που ακολουθεί να πατάει το πλήκτρο enter. Με το πέρας όλων των ερωτήσεων, το έμπειρο σύστημα οφείλει να του εξάγει ένα συμπέρασμα σχετικά με το αν είναι ασφαλές να υποβληθεί σε Μαγνητική Τομογραφία. Ας ξεκινήσουμε, λοιπόν, να ελέγχουμε πειραματικά το πρόγραμμα. Θα στηριχτούμε στη Βάση Γνώσης 101

102 του προγράμματός μας και πολύ περισσότερο στο Δέντρο Απόφασης που εξαγάγαμε από αυτήν, για να ελέγξουμε αν το αποτέλεσμα συμπέρασμα που εμφανίζει το έμπειρο σύστημα που δημιουργήσαμε είναι λογικό, αν υπακούει δηλαδή στους κανόνες που έχει θέσει βάσει του Δέντρου Απόφασης. Για το σκοπό αυτό, θα πάρουμε μία περίπτωση που το αποτέλεσμα θα πρέπει να είναι μία αρνητική απάντηση και μια άλλη περίπτωση που το αποτέλεσμα θα πρέπει να είναι μία θετική απάντηση. 1 ο Παράδειγμα : Σύμφωνα με το Δέντρο Απόφασης, αν ένας ασθενής φοράει σιδεράκια, δεν πρέπει να κάνει Μαγνητική Τομογραφία, ανεξάρτητα με το τι απάντηση θα δοθεί στις υπόλοιπες ιδιότητες. Πάμε λοιπόν, να δούμε αν το έμπειρο σύστημα θα μας εμφανίσει το σωστό αποτέλεσμα συμπέρασμα: Στην παραπάνω εικόνα παρατηρούμε πως ένα χρήστης απάντησε σε όλες τις ερωτήσεις της συνέντευξης που έχουμε προγραμματίσει. Έχει δώσει σε όλες τις ερωτήσεις την απάντηση no με εξαίρεση αυτήν που τον ερωτά αν φοράει σιδεράκια, όπου έχει απαντήσει yes. Με το πέρας όλων των απαντήσεων στις ερωτήσεις, το πρόγραμμά μας εμφάνισε, όπως βλέπουμε, το αποτέλεσμα: Lypoumaste, alla den mporeite na kanete Magnitiki Tomografia, κάτι που είναι και το σωστό, για τους λόγους που εξηγήσαμε παραπάνω. Ως εκ τούτου, σε αυτήν την πρώτη δοκιμή, το πρόγραμμα ανταποκρίθηκε σωστά! 102

103 Πάμε, τώρα, στο δεύτερο παράδειγμα. Εδώ θα πάρουμε την περίπτωση μιας ασθενούς η οποία: (α) δεν φοράει σιδεράκια, (β) δεν έχει κάνει αρθροπλαστική, (γ) δεν έχει βηματοδότη και (δ) είναι στον πέμπτο μήνα της εγκυμοσύνης της. Σε αυτό το παράδειγμα, περιμένουμε από το πρόγραμμά μας, να εγκρίνει την πραγματοποίηση Μαγνητικής Τομογραφίας, δεδομένου ότι, ναι μεν η ασθενής είναι έγκυος, έχει όμως ολοκληρώσει τον τρίτο μήνα εγκυμοσύνης της. Το πώς τελικά «αντέδρασε» το πρόγραμμα, φαίνεται στην παρακάτω εικόνα: Παράδειγμα 2 ο : Όπως φαίνεται στην παραπάνω εικόνα, η ασθενής απάντηση yes μόνο στις ερωτήσεις σχετικά με το αν είναι έγκυος και αν έχει ολοκληρώσει τον τρίτο μήνα της εγκυμοσύνης της, ενώ σε όλες τις υπόλοιπες απάντησε no. Βλέπουμε, πως και αυτή τη φορά το πρόγραμμα δεν λαθεύει και εμφανίζει σωστό συμπέρασμα το οποίο είναι: Mporeite, xwris kanena provlima, na kanete Magnitiki Tomografia. Επομένως, οι πρώτες ενδείξεις σε αυτά τα δύο παραδείγματα είναι θετικές και επιβεβαιώνουν πως το λογισμικό μας είναι προγραμματισμένο σωστά. 103

104 Για να ελέγξουμε την καταλληλότητα του προγράμματος θα χρησιμοποιήσουμε τέσσερις μετρικές, τιμές των οποίων θα υπολογίσουμε τόσο από τα αποτελέσματα του training set όσο και από αυτά του test set. Αυτές είναι οι: Η Ακρίβεια (Accuracy): µας δηλώνει το ποσοστό των γεγονότων του συνόλου µας για τα οποία έγινε σωστή πρόβλεψη, Η Ευαισθησία (Sensitivity): µας δηλώνει το ποσοστό των θετικών γεγονότων για τα οποία έγινε σωστή πρόβλεψη, Η Ιδιαιτερότητα (Specificity): µας δηλώνει το ποσοστό των αρνητικών γεγονότων για τα οποία έγινε σωστή πρόβλεψη, Η Ακρίβεια (Precision): µας δηλώνει το ποσοστό των θετικών προβλέψεων που ήταν στην πραγματικότητα θετικά γεγονότα. Προχωρήσαμε στην διαδικασία αξιολόγησης του εκάστοτε έμπειρου συστήματος με χρησιμοποιώντας στην πρώτη περίπτωση του κανόνες που προκύπτουν από το training set και στην δεύτερη περίπτωση τους κανόνες που προκύπτουν από το test set. Τα κριτήρια αξιολόγησης και στις δύο περιπτώσεις, διαμορφώθηκαν με βάση τις παραπάνω μετρικές. Για κάθε ασθενή που συμπλήρωνε ένα ερωτηματολόγιο, περνούσαμε τις απαντήσεις του ηλεκτρονικά στο έμπειρο σύστημα μέσα από το CLIPS. Είχαμε ήδη διαμορφώσει ένα έμπειρο σύστημα που λειτουργούσε με βάση του κανόνες του training set και ένα ακόμη που λειτουργούσε με βάση τους κανόνες του test set. Για κάθε έμπειρο σύστημα συγκρίναμε για είκοσι (20) καινούρια περιστατικά, την έξοδο που έβγαζε το clips όταν κάναμε execute το κάθε αρχείο, σε σχέση με την τελική εισήγηση του επιστημονικού υπεύθυνου του Διαγνωστικού Κέντρου. Με βάση τα παραπάνω οι μετρικές μας διαμορφώθηκαν ως εξής: Α. Για το training set Accuracy: Στα 20 περιστατικά, σωστή πρόβλεψη έγινε για τα 19. Υπήρξε ένα περιστατικό στο οποίο ο Ιατρός έδωσε εντέλει αρνητική εισήγηση για λόγους που δεν άπτονται των κανόνων του έμπειρου συστήματος. Πιο συγκεκριμένα, ο εν λόγω ασθενής πολλές φορές δεν είχε συνεργαστεί στο παρελθόν λόγω κλειστοφοβίας, οπότε κρίθηκε σκόπιμο να αναβληθεί η εξέτασή του και να γίνει μία άλλη ημερομηνία με την παρουσία αναισθησιολόγου. (19/20) Sensitivity: Από τα 20 περιστατικά, το έμπειρο σύστημα έδωσε θετική εισήγηση για τα 16. Από αυτές τις 16 θετικές εισηγήσεις ταυτίστηκαν οι αντίστοιχες 15 του ιατρού. (15/16) Specificity: Στις 4ις αρνητικές εισηγήσεις του συστήματος, η άποψη του ιατρού συμφωνεί (4/4) Precision: Δεδομένου ότι η αξιολόγηση έγινε σε live time περιβάλλον, η μετρική αυτή ταυτίζεται με την Sensitivity (15/16) 104

105 Β. Για το test set Από το test set, το δέντρο απόφασης το οποίο έχει εξαχθεί είναι περίπου το ίδιο με αυτό του training set. Η μόνη διαφορά είναι πως, ο τρόπος με τον οποίο στο test set ιεραρχούνται τα κριτήρια δεν είναι έγκυρος. Σε προηγούμενη ενότητα, πράγματι, αν παρατηρήσουμε το δέντρο απόφασης που εξάγεται από το test set, βλέπουμε πως πρώτα ελέγχεται αν η ασθενής έχει ολοκληρώσει τον τρίτο μήνα της εγκυμοσύνης της και μετά αν γενικότερα είναι έγκυος. Η διαφορά, όμως, αυτή, λόγω συσχετισμών, δεν επηρεάζει το αποτέλεσμα που εξάγεται. Εν κατακλείδι οδηγούμε στις ίδιες μετρικές τόσο για το training set όσο και για το test set. Σε μορφή ποσοστού, οι μετρικές είναι οι παρακάτω: ΑΞΙΟΛΟΓΗΣΗ ΤΟΥ ΕΜΠΕΙΡΟΥ ΣΥΣΤΗΜΑΤΟΣ Accuracy 95% Sensitivity 93,75% Specificity 100% Precision 93,75% Με δεδομένο πως, για κάθε μετρική αξιολόγησης του έμπειρου συστήματος, ένα ποσοστό μεγαλύτερο του 80% θα μας ικανοποιούσε αρκετά, καταλήγουμε στο συμπέρασμα πως μπορούμε να χαρακτηρίσουμε το έμπειρο σύστημα που δημιουργήσαμε ως «Αξιόπιστο». Στην ενότητα που ακολουθεί, θα δείξουμε τον τρόπο που ένας ασθενής ιδιώτης θα αποκτήσει πρόσβαση στη χρήση του έμπειρου συστήματος που σχεδιάσαμε, με δίαυλο πρόσβασης τον ιστότοπό μας. Επίσης, σε επόμενο κεφάλαιο, θα δείξουμε πως προβήκαμε στην δημιουργία και άλλων έμπειρων συστημάτων, χρησιμοποιώντας εναλλακτικούς τρόπους εξαγωγής κανόνων, πέραν του WEKA. 105

106 6.4.4 Οδηγίες σχεδίασης και χρήσης του Έμπειρου Συστήματος «Μπορώ να κάνω Μαγνητική Τομογραφία;» με αφετηρία τον ιστότοπό μας Σε αυτήν την ενότητα θα περιγράψουμε βήμα βήμα όλη την απαραίτητη διαδικασία που πρέπει να ακολουθήσει ο εκάστοτε ασθενής ιδιώτης για να κάνει χρήση του Ψηφιακού Συμβούλου του site μας. Σε αυτήν την περιγραφή θα εμπεριέχετε ο τρόπος λειτουργίας του πρώτου έμπειρου συστήματος που σχεδιάσαμε και που του έχουμε αποδώσει τον τίτλο «Μπορώ να κάνω Μαγνητική Τομογραφία;». Δεδομένου, όμως, πως και για τα έμπειρα συστήματα που θα ακολουθήσουν χρησιμοποιήσαμε την ίδια μεθοδολογία, όλα όσα θα περιγράψουμε παρακάτω μπορούν άνετα να αξιοποιηθούν σαν guider (οδηγός) και για τα υπόλοιπα expert systems που θα συμπεριλάβουμε στην ιστοσελίδα μας. Καταρχάς, για να κάνει ένας επισκέπτης χρήση του Ψηφιακού Συμβούλου του ιστοτόπου μας, θα πρέπει να είναι ήδη εγγεγραμμένος ως διαδικτυακό μας μέλος και, πιο συγκεκριμένα, με την ιδιότητα «ασθενής ιδιώτης» (βλέπε Ένθεμα «Γίνε Μέλος»). Στη συνέχεια, βρισκόμενος στην αρχική σελίδα του ιστοτόπου θα πρέπει να ανατρέξει στην Σύνδεση Μελών (βλέπε Ένθεμα «Σύνδεση Μελών»). Πραγματοποιούμε Log In ως ασθενείς ιδιώτες κάνοντας χρήση του username και του password που έχει σταλεί στο ηλεκτρονικό μας ταχυδρομείο από τον διαχειριστή (administrator) του συστήματος. Τότε θα εισέλθουμε στον εξειδικευμένο χώρο για τα μέλη «ασθενείς ιδιώτες», όπου εμφανίζονται τρία νέα ενθέματα, από τα οποία το μεσαίο είναι ο Ψηφιακός Σύμβουλος: 106

107 Κάνουμε κλικ στο link του Ψηφιακού Συμβούλου και το παράθυρο που μας παραπέμπει ο ιστότοπος το παραθέτουμε στην παρακάτω εικόνα: Στη συνέχεια, όπως βλέπουμε, κάνουμε κλικ στο κουμπί «Ψηφιακός Σύμβουλος» και ενεργοποιείται η web εφαρμογή που έχουμε σχεδιάσει. Το αρχικό panel αυτής φαίνεται στην παρακάτω εικόνα: Στο panel της εφαρμογής που φαίνεται στην παραπάνω εικόνα υπάρχουν δύο διακριτά τμήματα: 1. Το αριστερό, όπου φαίνονται (α) το logo της εφαρμογής (β) το πρώτο έμπειρο σύστημα που σχεδιάσαμε για την Μαγνητική Τομογραφία και (γ) το δεύτερο έμπειρο σύστημα που σχεδιάσαμε για τον υπέρηχο (πρέπει να προχωρήσουμε με την μπάρα κύλισης για να το δούμε). 2. Το δεξιό τμήμα, όπου εμφανίζονται οι ερωτήσεις του εκάστοτε έμπειρου συστήματος που έχουμε ήδη επιλέξει από το αριστερό. Στην τρέχουσα ενότητα, θα δούμε ένα παράδειγμα χρήσης της εφαρμογής εστιάζοντας στο έμπειρο σύστημα που σχετίζεται με το αν μπορεί ένας ασθενής να υποβληθεί σε Μαγνητική Τομογραφία. Θα κάνουμε, μάλιστα χρήση του πιο «περίπ- 107

108 λοκου» παραδείγματος προγραμματιστικά, ώστε να πείσουμε παραπάνω για την α- ξιοπιστία της εφαρμογής μας. Παίρνουμε, λοιπόν, την περίπτωση ενός ασθενή που έχει τρέξει την εφαρμογή μέσα από τον ιστότοπό μας και στο αριστερό τμήμα που περιγράψαμε πριν, έχει επιλέξει το έμπειρο σύστημα σχετικά με την Μαγνητική Τομογραφία («Μπορώ να κάνω Μαγνητική Τομογραφία;»). Οι απαντήσεις που έδωσε φαίνονται στην παρακάτω εικόνα: Με βάση τους κανόνες που εξαγάγαμε μέσα από το Weka και συντάξαμε σε κώδικα για το CLIPS, σε περίπτωση που η ασθενής δεν έχει βηματοδότη, δεν έχει κάνει αρθροπλαστική με οποιοδήποτε υλικό πλην τιτανίου, δεν φοράει σιδεράκια στα δόντια και είναι έγκυος, έχοντας ολοκληρώσει τον τρίτο μήνα εγκυμοσύνης της, τότε μπορεί, χωρίς κανένα πρόβλημα, να υποβληθεί σε Μαγνητική Τομογραφία. Πατώντας, λοιπόν, ο ασθενής ιδιώτης το κουμπί που φέρει το κείμενο «Υποβολή Απαντήσεων» θα πρέπει να εμφανιστεί αντίστοιχο μήνυμα που να τον βεβαιώνει πως μπορεί να κάνει Μαγνητική Τομογραφία. Το αποτέλεσμα, τελικά, που εμφανίζεται πατώντας «Υποβολή Απαντήσεων», φαίνεται στην παρακάτω εικόνα: 108

109 Πώς, όμως, επιτυγχάνεται η επικοινωνία ανάμεσα στην web εφαρμογή μας και στο CLIPS; Πώς διαβάζονται και ελέγχονται οι κανόνες του clp αρχείου που συντάξαμε μέσα από την ιστοσελίδα μας; Πως μπορεί και εξάγεται κάθε φορά το σωστό αποτέλεσμα; Την απάντηση σε αυτά τα ερωτήματα μας την δίνει η Jess. H Jess είναι μία μηχανή επεξεργασίας κώδικα γραμμένο σε Java. Πρόκειται για μία πλατφόρμα κανόνων που μπορεί να αξιοποιηθεί από τις εφαρμογές της Java (Java Applets). Παρέχεται δωρεάν για ακαδημαϊκή χρήση και το link μέσα από το οποίο μπορούμε να την κάνουμε download είναι το Θεωρείται ιδανική για τον σχεδιασμό έμπειρων συστημάτων σε γραφικό περιβάλλον, χωρίς να χρειάζεται να «τρέξουμε» το CLIPS. Η επικοινωνία ανάμεσα στη Jess και το web επιτυγχάνεται ως εξής: Πρέπει να έχουμε, καταρχάς, εγκαταστήσει στον υπολογιστή εξυπηρετητή που βρίσκει εφαρμογή η ιστοσελίδας μας, την JAVA JDK (http://www.oracle.com/technetwork/java/javase/downloads/index.html). Επιπροσθέτως πρέπει να έχουμε θέσει τις κατάλληλες μεταβλητές περιβάλλοντος. Αφενός την JAVA_HOME, με path την τοποθεσία όπου εγκαταστήσαμε την JAVA JDK και αφετέρου την JESS_HOME στο path όπου έχουμε κάνει extract τα αρχεία της Jess. Επίσης, στο φάκελο της Jess, έχουμε φροντίσει να μεταφέρουμε τα clp αρχεία στα οποία έχουμε συντάξει τον κώδικα για το clips. Η Jess, με κατάλληλα χρήση κώδικα, έχει τη δυνατότητα να κάνει αυτόματα execute τα clp αρχεία, χωρίς το CLIPS, όπως το είχαμε δει μέχρι τώρα να χρειάζεται πουθενά. Για να θέσουμε μία μεταβλητή περιβάλλοντος, πρέπει να πάμε στο εικονίδιο «Ο Υπολογιστής μου», να κάνουμε δεξί κλικ σε αυτό και να επιλέξουμε «ιδιότητες» (properties). Στη συνέχεια, από τις διαθέσιμες επιλογές του παραθύρου που εμφανίζεται, επιλέγουμε «Ρυθμίσεις συστήματος για προχωρημένους». 109

110 Όσον αφορά τον κώδικα που πρέπει να εισάγουμε στην php για να επικοινωνήσει με την Jess, παραθέτουμε το παρακάτω παράδειγμα: <body> <?php // Input Values $df = "eas"; $metric = "2"; $anafno = "2"; $negno = "0"; $specno = "0"; $qin = "yes"; $cin = "1"; // Fact formalization $input="(fnl (foldif $df) (ord $metric)(ana $anafno) (neg $negno) (spe $specno) (qin $qin) (cin $cin) )"; // Expert System Input file $file = 'expert_in.txt'; $fh = fopen($file, 'w') or die('could not open file1!'); fwrite($fh, $input); fclose($fh); // Run Expert System // Υπάρχουν δύο δυνατότητες: 110

111 // Η exec τρέχει την εντολή και επιστρέφει μόνο την τελευταία γραμμή της εξόδου // Η passthru τρέχει την εντολή (πρώτο όρισμα) και επιστρέφει ολόκληρη την έξοδο στο δεύτερο όρισμα. //$tetst = exec("bin\jess.bat bin/rulesfinal.clp"); passthru("bin\jess.bat bin/rulesfinal.clp",$tetst); sleep(0.5); // Μικρή καθυστέρηση για να διασφαλιστεί οτι έχει ολοκληρωθεί η εκτέλεση της εντολής echo '<td>'.$tetst.'</td> '; // Εκτύπωση της εξόδου της εκτέλεσης της εντολής // Άνοιγμα και εκτύπωση του αρχείου εξόδου του έμπειρου συστήματος $filedif = fopen("expert_out.txt","r"); $df1=fgets($filedif); fclose($filedif); $df1=trim($df1); echo '<td>'.$df1.'</td>';?> </body> </html> ΤΕΛΟΣ PHP ΚΩΔΙΚΑ

112 Το συμπέρασμα που προκύπτει από τον παραπάνω κώδικα, είναι πως η php δίνει ένα αρχείο στην Jess (expert_in.txt). Απαραίτητη προϋπόθεση για να δεχθεί η Jess και να επεξεργαστεί το εισερχόμενο αρχείο, είναι να έχουμε πληκτρολογήσει στο κώδικα του clp αρχείου που επεξεργάζεται η Jess την εντολή load-facts. Σε αυτή τη φάση, η Jess κάνει execute το clp αρχείο και πυροδοτούνται συγκεκριμένοι κανόνες του βάσει των περιεχομένων του αρχείου expert_in.txt, το οποίο περιεχόμενο πρέπει να έχουμε εξασφαλίσει πως θα έχει δομή κατάλληλη για να αναγνωστεί σωστά από την Jess (βλέπε σε προηγούμενο κεφάλαιο στην επεξήγηση των κανόνων του CLIPS). Με την ολοκλήρωση του execution του clp αρχείου, η Jess θα βγάλει ένα αποτέλεσμα σαν έξοδο (output). Αυτό το αποτέλεσμα, στη συνέχεια το παίρνει η php και το «τυπώνει» στην οθόνη του υπολογιστή (expert_out.txt). Με βάση την παραπάνω λογική σχεδιάσαμε την εφαρμογή που φιλοξενεί τα δύο έμπειρα συστήματα του ιστοτόπου μας. Όλη αυτή η διαδικασία έγινε, για να μην χρειάζεται ο εκάστοτε ασθενής ιδιώτης να χρησιμοποιήσει το CLIPS για να κάνει χρήση του έμπειρου συστήματος. Συνεπώς, με την παραπάνω μέθοδο πετύχαμε το βέλτιστο, να γίνεται (φαινομενικά τουλάχιστον) όλη η διαδικασία μέσα από το web και άρα ο web browser (chrome, safari, firefox κτλ) να είναι υπεραρκετός για το μέλος μας που επιθυμεί να κάνει χρήση της εφαρμογής. 112

113 6.4.5 Έμπειρο Σύστημα: «Πώς πρέπει να προετοιμαστώ για τον Υπέρηχο;» / Σχεδιασμός Ε.Σ. παίρνοντας έτοιμους τους κανόνες Σε προηγούμενη ενότητα περιγράψαμε με αναλυτικό τρόπο όλες τις πτυχές της δημιουργίας του πρώτου έμπειρου συστήματος με τίτλο «Μπορώ να κάνω Μαγνητική Τομογραφία;». Δεν σταματήσαμε, όμως, εκεί. Αντίθετα, προχωρήσαμε στην δημιουργία και δεύτερου έμπειρου συστήματος με τίτλο «Πώς πρέπει να προετοιμαστώ για τον Υπέρηχο;». Όπως λέει και το όνομά του, πρόκειται για ένα έμπειρο σύστημα το οποίο μπορεί να αποφανθεί για την προετοιμασία που πρέπει να κάνει ένας ασθενείς ανάλογα με την εξέταση υπερήχου που επιθυμεί να υποβληθεί. Σε αυτήν την ενότητα θα περιγράψουμε την διαδικασία δημιουργία αυτού του νέου έμπειρου συστήματος, καθώς επίσης και θα προβούμε σε μία σύγκριση μεταξύ του εν λόγω έμπειρου συστήματος και του πρώτου που σχεδιάσαμε για την Μαγνητική Τομογραφία. Όπως έχουμε ήδη αναφέρει, για να δημιουργήσουμε ένα έμπειρο σύστημα, μας είναι απαραίτητη μία Βάση Γνώσης. Μέσα από αυτήν την, εξάγουμε τους κανόνες και οδηγούμαστε στην συγγραφή του κώδικα. Για την περίπτωση της Μαγνητικής Τομογραφίας κάναμε χρήση συγκεκριμένου λογισμικού για την εξαγωγή των κανόνων. Αυτό συνέβη διότι τους κανόνες δεν τους γνωρίζαμε ήδη. Είχαμε μόνο μία Βάση Δεδομένων από ασθενείς που είχαν συμπληρώσει τα σχετικά ερωτηματολόγια και μέσα από τις απαντήσεις τους έπρεπε να συμπεράνουμε τους κανόνες. Στο Διαγνωστικό Κέντρο «Β Διάγνωση» δεν προβλέπεται, όμως, συμπλήρωση ερωτηματολογίου ή οποιουδήποτε άλλου σχετικού εντύπου για την εξέταση του υπερήχου. Η τακτική δεοντολογίας που ακολουθείται, είναι ο ασθενής να ενημερώνεται για την προετοιμασία που πρέπει να κάνει, την στιγμή που κλείνει το ραντεβού για τον υπέρηχο. Επομένως, αυτό που κάναμε εμείς, για να εξάγουμε τους κανόνες προετοιμασίας για την εξέταση του κάθε υπέρηχου, ήταν να αφιερώσουμε χρόνο παρευρισκόμενοι στο τηλεφωνικό κέντρο του Διαγνωστικού και να καταγράψουμε τις συμβουλές προετοιμασίας που έδιναν οι υπάλληλοι της Β Διάγνωσης στους ασθενείς που έπαιρναν τηλέφωνο για να κλείσουν ραντεβού για υπέρηχο. Ως εκ τούτου, σε αυτό το δεύτερο έμπειρο σύστημα που σχεδιάσαμε, τους κανόνες τους πήραμε έτοιμους. Αυτό έχει ως συνέπεια το βήμα χρήσης λογισμικού (π.χ. WEKA) εξαγωγής κανόνων από μία Βάση Δεδομένων να παρακάμπτεται και να οδηγούμαστε απευθείας στην συγγραφή του κώδικα. Πριν παραθέσουμε, λοιπόν, τον κώδικα τον οποίο συντάξαμε, πάμε να δούμε τους κανόνες στους οποίους καταλήξαμε: Για υπέρηχο θυρεοειδούς, οσχέου, επινεφριδίων και μαλακών μορίων, δεν απαιτείται καμία προετοιμασία Για υπέρηχο νεφρών και ουροδόχου κύστεως, θα πρέπει ο εξεταζόμενος να προσέλθει στο Διαγνωστικό Κέντρο μισή ώρα πριν από το προγραμματισμένο ραντεβού. Στο χρονικό διάστημα αυτού του μισάωρου, θα πρέπει να πιει 5 ποτήρια νερό και να μην πάει στην τουαλέτα. Η ίδια ακριβώς προετοιμασία 113

114 προβλέπεται και για υπέρηχο μήτρας, παραμητρίων, ελάσσονος πυέλου και προστάτη Σε περίπτωση που ο υπέρηχος είναι ήπατος, χολής, παγκρέατος, σπληνός, χοληφόρου χοληδόχου κύστεως, τότε ο εξεταζόμενος θα πρέπει να μείνει νηστικός τουλάχιστον οκτώ ώρες πριν από την προγραμματισμένη ώρα εξέτασης Για υπέρηχο μαστών θα πρέπει, σε περίπτωση που η ασθενής έχει κύκλο, να προγραμματίσει το ραντεβού της εντός της 7 ης με 9 ης μέρας του κύκλου της. Αν υπάρχει προηγούμενη μαστογραφία που έχει κάνει στο παρελθόν, θα πρέπει να την προσκομίσει Με βάση, λοιπόν, τους παραπάνω κανόνες, συγγράψαμε το παρακάτω κώδικα για το CLIPS: ΚΩΔΙΚΑΣ Ε.Σ. «Πώς πρέπει να προετοιμαστώ για τον Υπέρηχο» ; DIAGNOSI PROETOIMASIA GIA YPERHXO (deftemplate init_data (slot us_no_preparation) (slot us_nefrwn_kystews) (slot us_hpatos_xolhs) (slot us_mastwn) (slot mastografia) ) (defrule erotiseis (declare (salience 1000)) => (printout t "Thelete na kanete kapoion / kapoious apo tous parakatw yperhxous: -a- Thyreoeidous -b- Osxeou -c- Epinefridiwn -d- Malakwn Moriwn? An den endiafereste gia kanena apo auta ta 4 eidh eksetasewn parakalw apanthste <<no>>, enw an endiafereste 114

115 gia ena h perissotera, parakalw apanthste <<yes>> ") (bind?us_no_preparation (read)) (printout t "Aneksarthta apo thn apanthsh pou dwsate sto prwto erwthma, exete kleisei rantevou gia kapoion / kapoious apo tous parakatw yperhxoys: -a- Nefrwn -b- Ourodoxou kystews -c- Mhtras -d- Elassonos Pyelou -e- Prostath? An den exete kleisei rantevou gia kanena apo auta ta 5 eidh eksetasewn parakalw apanthste <<no>>, enw an exete kleisei rantevou estw gia ena apo auta, parakalw apanthste <<yes>> ") (bind?us_nefrwn_kystews (read)) (printout t "Aneksarthta apo thn apanthsh pou dwsate sto prwto erwthma, exete kleisei rantevou gia kapoion / kapoious apo tous parakatw yperhxoys: -a- Hpatos -b- Xolhs - c- Pagreatos -d- Splhnos -e- Xolhforou - Xolhdoxou kystews? An den exete kleisei rantevou gia kanena apo auta ta 5 eidh eksetasewn parakalw apanthste <<no>>, enw an exete kleisei rantevou estw gia ena apo auta, parakalw apanthste <<yes>> ") (bind?us_hpatos_xolhs (read)) (printout t "Epithymeite na kleisete rantevou gia yperhxo mastwn? ") (bind?us_mastwn (read)) (printout t "Exete kanei sto parelthon mastografia? ") (bind?mastografia (read)) 115

116 (assert?us_no_preparation)(us_nefrwn_kystews?us_hpatos_xolhs) (init_data(us_no_preparation?us_nefrwn_kystews)(us_hpatos_xolhs (us_mastwn?us_mastwn)(mastografia?mastografia))) ) (defrule elegxos1 (declare (salience 500)) (init_data (us_no_preparation yes)(us_nefrwn_kystews no)(us_hpatos_xolhs no)(us_mastwn no)) => (assert (den_apaiteitai_proetoimasia)) ) (defrule apotelesma1 (declare (salience 100)) (den_apaiteitai_proetoimasia) => (printout t "Den xreiazetai na kanete kapoia proetoimasia" crlf ) ) ( (defrule elegxos2 (declare (salience 500)) (init_data (us_nefrwn_kystews yes)) => (assert (5_pothria_nero)) ) 116

117 (defrule apotelesma2 (declare (salience 100)) (5_pothria_nero) => (printout t "Parakaleiste, opws proselthete sto kentro mas mish wra prin to prokathorismeno rantevou sas. Sto diasthma autou tou misawrou prepei na pieite 5 pothria nero kai na mhn pate sthn toualeta" crlf) ) ( (defrule elegxos3 (declare (salience 500)) (init_data (us_hpatos_xolhs yes)) => (assert (nistikos)) ) (defrule apotelesma3 (declare (salience 100)) (nistikos) => (printout t "Parakalw opws parameinete nistikos toulaxiston gia 8 wres prin thn programmatismenh wra eksetashs sas" crlf) ) ( (defrule elegxos4 (declare (salience 400)) (init_data (us_mastwn yes)(mastografia no)) 117

118 => (assert (kyklos)) ) (defrule apotelesma4 (declare (salience 100)) (kyklos) => (printout t "An exete kyklo, o yperhxos mastwn prepei na pragmatopoihtei metaksi ths evdomhs ) kai dekaths meras tou kyklou sas. An den exete kyklo den yparxei periorismos" crlf) ( (defrule elegxos5 (declare (salience 400)) (init_data (us_mastwn yes)(mastografia yes)) => (assert (prohgoumenh_mastografia)) ) (defrule apotelesma5 (declare (salience 100)) (prohgoumenh_mastografia) (printout t "An exete kyklo, o yperhxos mastwn prepei na pragmatopoihtei metaksi ths evdomhs kai dekaths meras tou kyklou sas. An den exete kyklo den yparxei periorismos. Parakaleiste epishs, opws aparaithtws proskomisete sto kentro mas prohgoumenh mastografia pou exete kanei sto parelthon" crlf) ) ΤΕΛΟΣ ΚΩΔΙΚΑ

119 Αν παρατηρήσουμε τον παραπάνω κώδικα προσεκτικά, θα δούμε ότι η δομή στο σύνολό του, μοιάζει ιδιαίτερα με αυτήν εκείνου που γράφτηκε για το πρώτο έμπειρο σύστημα. Όλοι οι υπέρηχοι για τους οποίους δεν απαιτείται κάποια προετοιμασία, περικλείονται στην ιδιότητα no_preparation. Επιπροσθέτως, έχουν δημιουργηθεί δύο ακόμη ομάδες. Αυτήν κατά την οποία ο ασθενής πρέπει απλώς να προσέλθει μισή ώρα πριν και να πιει 5 ποτήρια νερό και αυτήν κατά την οποία ο ασθενής πρέπει να μείνει νηστικός για τουλάχιστον οκτώ ώρες πριν το προκαθορισμένο ραντεβού του. Είναι σημαντικό εδώ να αναφέρουμε, πως η μία ομάδα δεν υπερκερνά απαραίτητα την άλλη. Αντιθέτως, εάν έστω ένας κανόνας από τις δύο ομάδες πυροδοτηθεί, τότε υπερκερνιέται ο κανόνας που αφορά την ομάδα των υπέρηχων που δεν απαιτούν κάποια προετοιμασία. Τέλος, μία ανεξάρτητη από τις υπόλοιπες ομάδα, είναι αυτή του υπέρηχου μαστών, όπου, σε περίπτωση που ο κανόνας της πυροδοτηθεί, θα επισημάνει στην ασθενείς τις μέρες του κύκλου της μέσα στις οποίες πρέπει να προγραμματίσει το ραντεβού της. Πάμε να δούμε ορισμένα παραδείγματα για να βεβαιωθούμε πως το πρόγραμμα λειτουργεί σωστά. Η διαδικασία που θα ακολουθηθεί, δεν χρειάζεται να περιγραφεί εκ νέου δεδομένου ότι είναι η ίδια με αυτήν του πρώτου έμπειρου συστήματος που αφορά την Μαγνητική Τομογραφία: Παράδειγμα 1 ο : Στην παραπάνω εικόνα, έχουμε βάλει μέσα σε κόκκινο κύκλο τις απαντήσεις που δόθηκαν από τον χρήστη για να είναι πιο διακριτές. Το μήνυμα που επέστρεψε ως συμπέρασμα το λογισμικό μας, το υπογραμμίσαμε με πράσινο χρώμα. Είναι το συμπέρασμα σωστό; Η απάντηση είναι «Ναι». Ο ασθενής σε αυτό το παράδειγμα, δήλωσε πως προθυμοποιείται να κάνει μόνο υπέρηχους που ανήκουν στην γκάμα αυτών που δεν απαιτούν κάποια προετοιμασία. 119

120 Παράδειγμα 2 ο : Στην παραπάνω εικόνα, επί τούτου, έχουμε βάλει ένα παράδειγμα ασθενή, ο οποίος, ναι μεν θέλει να κάνει υπέρηχους που δεν απαιτούν προετοιμασία, αλλά επίσης θέλει να κάνει και κάποιους που απαιτούν. Και σε αυτήν την περίπτωση το πρόγραμμά μας ανταποκρίθηκε σωστά, δεδομένου ότι η πυροδότηση του 2 ου κανόνα υπερκέρασε τον 1 ο, κάτι που είναι λογικό, αφού από τη στιγμή που μεταξύ των υπερήχων υ- πάρχει έστω ένας που απαιτεί συγκεκριμένη προετοιμασία, ο ασθενής θα πρέπει να ενημερωθεί για την προετοιμασία αυτή. Παράδειγμα 3 ο : Στον κώδικά μας, όμως, δεν έχουμε καταγράψει μόνον έναν τύπο προετοιμασίας. Στο τρίτο και τελευταίο παράδειγμα που παραθέτουμε παρακάτω για το έμπειρο σύστημα που αφορά τους υπέρηχους, θα δούμε πως η πυροδότηση περισσότερων του ενός κανόνων μπορεί άνετα να γίνει ταυτόχρονα, χωρίς απαραίτητα ένας κανόνας να υπερκεράσει κάποιον άλλο. Στο παράδειγμα που ακολουθεί, έ- χουμε μια ασθενή η οποία πρέπει να κάνει υπέρηχους που απαιτούν να μείνει νηστική. Εκτός αυτού, όμως, πρέπει να κάνει και υπέρηχο μαστών, ο οποίος, εφόσον η ασθενής δεν είναι σε εμμηνόπαυση, πρέπει να γίνει μέσα σε συγκεκριμένες μέρες του κύκλου. Θα φάνει, λοιπόν, στην παρακάτω εικόνα, πως το πρόγραμμα θα ενημερώσει την ασθενή, τόσο για τη μία κατηγορία υπερήχων, όσο και για την άλλη: 120

121 6.4.6 Οδηγίες σχεδίασης και χρήσης του Έμπειρου Συστήματος «Πως πρέπει να προετοιμαστώ για τον Υπέρηχο;» με αφετηρία τον ιστότοπό μας Η διαδικασία που ακολουθήθηκε για να έχει πρόσβαση ο επισκέπτης μέλος στο έμπειρο σύστημα που αφορά την εξέταση του υπέρηχο, παίρνοντας σαν αφετηρία τον ιστότοπό μας, είναι ακριβώς η ίδια με αυτήν που ακολουθήθηκε για το έμπειρο σύστημα που αφορά την Μαγνητική Τομογραφία: 121

122 Η δυσκολία που αντιμετωπίσαμε εδώ σε σχέση με το προηγούμενο έμπειρο σύστημα, είναι πως, με την υποβολή των απαντήσεων από τον ασθενή ιδιώτη, υ- πάρχει ως πολύ πιθανό το ενδεχόμενων πυροδότησης πολλαπλών κανόνων ταυτόχρονα. Παραθέτουμε, λοιπόν, παρακάτω ένα παράδειγμα πυροδότησης των περισσότερων δυνατών κανόνων και άρα εμφάνισης των περισσότερων δυνατών αποτελεσμάτων, προκειμένου να πείσουμε για την αξιοπιστία του έμπειρου συστήματός μας, όσον αφορά την λειτουργία του ως εφαρμογή στο web: Στην πρώτη σελίδα του έμπειρου συστήματος για τον υπέρηχο, ο ασθενής ιδιώτης, δηλώνει πως θέλει να κάνει υπέρηχο Θυρεοειδούς και Επινεφριδίων και στη συνέχεια κλικάρει «συνέχεια» για να εμφανιστεί η δεύτερη σελίδα. Θυμίζουμε πως οι μέχρι στιγμής δύο υπέρηχοι που έχουν επιλεγεί, δεν απαιτούν καμία προετοιμασία. Προχωράμε στην επόμενη σελίδα: 122

123 Στην δεύτερη σελίδα του Ε.Σ. παρατηρούμε πως ο ασθενής δήλωσε πως έχει κλείσει ραντεβού για υπέρηχο νεφρού και μήτρας. Υπενθυμίζουμε πως, ανεξάρτητα από τα υπόλοιπα αποτελέσματα, μόνο και μόνο για αυτούς τους δύο υπέρηχους πρέπει να εμφανιστεί αποτέλεσμα που να συμβουλεύει τον ασθενή να προσέλθει μισή ώρα νωρίτερα στο Διαγνωστικό Κέντρο, να έχει πιει 4-5 ποτήρια νερό και να μην πάει στην τουαλέτα. Προχωράμε στην επόμενη σελίδα: 123

124 Στην Τρίτη σελίδα του Ε.Σ. βλέπουμε πως, επιπροσθέτως ο ασθενής έχει κλείσει ραντεβού για υπέρηχο χοληφόρου χοληδόχου κύστεως. Υπενθυμίζουμε πως, ανεξαρτήτως των υπολοίπων επιλογών, μόνο και μόνο για αυτόν τον υπέρηχο το Ε.Σ. θα πρέπει να συμβουλέψει τον ασθενή να μείνει νηστικός για τουλάχιστον οκτώ (8) ώρες πριν το προκαθορισμένο ραντεβού του. Προχωράμε για την τελευταία σελίδα και την εξαγωγή των συμπερασμάτων: Στην τελευταία σελίδα του Ε.Σ. παρατηρούμε πως ο ασθενής θέλει να κάνει υπέρηχο μαστών και μάλιστα δηλώνει πως έχει κάνει στο παρελθόν μαστογραφία. Ανεξάρτητα από τις υπόλοιπες σελίδες, μόνο για αυτές τις δύο παραμέτρους θα πρέπει στο τέλος το Ε.Σ. να τον συμβουλέψει πως ο υπέρηχος μαστών γίνεται ι- δανικά συγκεκριμένες μέρες του κύκλου, καθώς επίσης και να τον παροτρύνει να προσκομίσει στο Κέντρο μαστογραφία που έχει κάνει στο παρελθόν. Βλέπουμε, λοιπόν, να δούμε τα αποτελέσματα του Ε.Σ. πατώντας το κουμπί «Υποβολή Απαντήσεων» και είναι απολύτως ορθά: 124

125 Κεφάλαιο 7ο QUIZ ΓΙΑ ΤΗΝ ΥΓΕΙΑ - Χρήση Joomla Component με επεξεργασία PHP Κώδικα Τα δεδομένα στο χώρο της υγείας αλλάζουν συνεχώς. Αυτό έχει ως συνέπεια, ένα νοσοκομείο, μια κλινική και, φυσικά, ένα Διαγνωστικό Κέντρο, να παρακολουθούν συνεχώς τις εξελίξεις, σε καθημερινή βάση, και να ενημερώνουν έγκαιρα και έγκυρα τον κόσμο για τα τυχόν νέα δεδομένα. Μια τέτοια πολύ σημαντική αλλαγή έγινε με τον ερχομό του έτους 2012 και την σύσταση του Ε.Ο.Π.Υ.Υ. (Εθνικός Οργανισμός Παροχής Υπηρεσιών Υγείας). Ο Ε.Ο.Π.Υ.Υ. είναι ένα νέο Νομικό Πρόσωπο Δημοσίου Δικαίου το οποίο συνεστήθη με σκοπό την παροχή υπηρεσιών υγείας από έναν ενιαίο εθνικό φορέα. Η έναρξη λειτουργίας του οργανισμού είναι η 1 η Ιανουαρίου Τα ασφαλιστικά ταμεία που εντάχθηκαν στον Ε.Ο.Π.Υ.Υ. είναι τα ακόλουθα: ΙΚΑ (Ιδρυμα Κοινωνικών Ασφαλίσεων), από 1η Ιανουαρίου 2012 ΟΓΑ (Οργανισμός Γεωργικών Ασφαλίσεων), από 1η Ιανουαρίου 2012 ΟΑΕΕ (Οργανισμός Ασφάλισης Ελευθέρων Επαγγελματιών), από 1η Ιανουαρίου 2012 ΟΠΑΔ (Οργανισμός Περίθαλψης Ασφαλισμένων Δημοσίου), από 1η Ιανουαρίου 2012 ΤΥΔΚΥ (Ταμείο Υπαλλήλων Δήμων και Κοινοτήτων), από 1η Ιανουαρίου 2012 Οίκος Ναύτου ή ΝΑΤ, από 1η Απριλίου 2012 ΤΑΥΤΕΚΩ, από 1η Μαΐου 2012 ΕΤΑΑ, από 1η Νοεμβρίου 2012 ΕΤΑΠ-ΜΜΕ, από 1η Δεκεμβρίου 2012 Το ΛΙΜΕΝΙΚΟ από Μάιο 2013 με ένταξη στον ΟΠΑΔ. Με τη σύσταση του Ε.Ο.Π.Υ.Υ., καθώς και κατά τη διάρκεια λειτουργίας του, έγιναν σημαντικές αλλαγές στο χώρο τις υγείας. Αυτές οι αλλαγές εμπεριέχουν και αρκετά σημαντικά ζητήματα που άπτονται του ενδιαφέροντος των ασθενών. Πολλοί ασθενείς, ακόμη και σήμερα, δεν γνωρίζουν ακριβώς σε ποιον ασφαλιστικό φορέα υπάγονται. Δεν γνωρίζουν επίσης τα οικονομικά δεδομένα, δηλαδή τη συμμετοχή τη δική τους και, γενικότερα, σε τι βαθμό του καλύπτει οικονομικά ο Ασφαλιστικός του Φορέας. Αυτά και άλλα σημαντικά θέματα που αφορούν τη σωστή ενημέρωση των 125

126 ασθενών, είναι στοιχεία που, σε κάθε περίπτωση, πρέπει να τα πραγματεύεται δυναμικά ένας ιστότοπος Διαγνωστικού Κέντρου. Θα μπορούσαμε, πολύ απλά, να συντάξουμε ένα κατεβατό κείμενο, το οποίο θα συγκέντρωνε όλη αυτήν την ενημέρωση. Γνωρίζουμε, όμως, πολύ καλά, πως τέτοιου είδους κείμενα δεν είναι ελκυστικά για έναν επισκέπτη μιας ιστοσελίδας. Για το λόγο αυτό, σκεφτήκαμε έναν πρωτότυπο διαφορετικό τρόπο προσέγγισης του ασθενή, ώστε με αλληλεπιδρατικό και παράλληλα ψυχαγωγικό τρόπο, να αντλήσει σημαντικές πληροφορίες για τα νέα δεδομένα στην υγεία, τα οποία τον αφορούν ά- μεσα. Πιο συγκεκριμένα, καταλήξαμε στην επιλογή ενός δια δραστικού ενθέματος όπου, με κατάλληλη επεξεργασία του php κώδικά του, καταφέραμε να δημιουργήσουμε ένα είδος quiz. Σε αυτό το quiz ο ασθενής απαντά σε ερωτήσεις πολλαπλής επιλογής και στο τέλος αξιολογείται βάσει των απαντήσεων που έδωσε. Είναι προφανές, πως η επιλογή των ερωτήσεων μόνο τυχαία δεν ήταν, αντιθέτως, έγινε με γνώμονα τα σημαντικά θέματα υγείας αναφορικά με το Ε.Ο.Π.Υ.Υ. τα οποία έχει μεγάλη σημασία να γνωρίζει ο ασφαλισμένος στον εν λόγω φορέα. Όπως και με τα υπόλοιπα ενθέματα, ανατρέξαμε με νόμιμο τρόπο να βρούμε μία εφαρμογή στην επίσημη ιστοσελίδα των extensions του Joomla: και καταλήξαμε στο component με όνομα jquarks : Στη συνέχεια εγκαταστήσαμε αυτήν την εφαρμογή στο Joomla, με τον τρόπο που σε προηγούμενη ενότητα έχουμε δείξει πώς εγκαθιστούμε στο Joomla μια εφαρμογή. Σε πρώτη φάση θα δείξουμε το πώς αυτό το quiz δουλεύει. Εν συνεχεία, θα αναλύσουμε τον τρόπο με τον οποίο προσαρμόσαμε αυτό το component στις ανάγκες μας. Για να δοκιμάσει τις γνώσεις του ένας επισκέπτης σε αυτό το quiz, απαραίτητη προϋπόθεση αποτελεί το να είναι εγγεγραμμένος ως μέλος στον ιστότοπό μας και συγκεκριμένα με την ιδιότητα του ασθενή ιδιώτη. Με δεδομένο, λοιπόν, πως είναι ήδη μέλος, ανατρέχει στον ένθεμα «Σύνδεση Μελών» στην αρχική σελίδα του ιστοτόπου μας. Εισάγει κατάλληλα το username και το password του, τα οποία, όπως ήδη έχουμε αναφέρει, του έχουν σταλεί στο ηλεκτρονικό του ταχυδρομείο από τον διαχειριστή του συστήματος. Το αποτέλεσμα θα είναι να εισέλθει στο εξειδικευμένο περιεχόμενο του ιστοτόπου μας που αφορά τους ασθενείς ιδιώτες: 126

127 Όπως φαίνεται και στην παραπάνω εικόνα, πρόκειται για τον ίδιο ακριβώς χώρο ό- που συναντάμε και τον Ψηφιακό Σύμβουλο που αναλύσαμε στην προηγούμενη ενότητα. Αριστερά, λοιπόν, του Ψηφιακού Συμβούλου, υπάρχει η εικόνα με τη σχετική λεζάντα που παραπέμπουν, τόσο το ένα όσο και το άλλο, στο ένθεμα «Quiz για την υγεία!». Το παράθυρο που θα εμφανιστεί μετά από το αντίστοιχο κλικ φαίνεται στην παρακάτω εικόνα: 127

128 Παρατηρούμε πως εμφανίζεται ένα παράθυρο προθάλαμος για το ένθεμα, που, μεταξύ άλλων, περιλαμβάνει τον τίτλο του πρώτου quiz που δημιουργήσαμε. Αυτό υπονοεί πως, στην πορεία, υπάρχει δυνατότητα δημιουργίας περισσότερων quiz που προφανώς θα άπτονται ιατρικών θεμάτων και, γενικότερα, ζητημάτων που θα αφορούν το χώρο της υγείας. Ο τίτλος του quiz που δημιουργήσαμε (τον περιβάλλουμε με κόκκινο χρώμα και ένδειξη στην παραπάνω εικόνα) είναι «Είμαι ασφαλισμένος στον Ε.Ο.Π.Υ.Υ. Τι πρέπει να γνωρίζω;». Αν κάνουμε κλικ πάνω σε αυτόν τον τίτλο, τότε θα ενεργοποιηθεί το παράθυρο που περιλαμβάνει το καθαυτό ένθεμα, δηλαδή το quiz: Βήμα 1 ο Στο πρώτο βήμα πρέπει να τσεκάρουμε την παράμετρο που λέει πως αποδεχόμαστε τους όρους και τους περιορισμούς του quiz. Ουσιαστικά, αποδεχόμαστε το χρονικό όριο που μας γνωστοποιείται (3 λεπτά) πως έχουμε για να απαντήσουμε στις ερωτήσεις, καθώς και το γεγονός ότι οι απαντήσεις μας θα αξιολογηθούν με την ολοκλήρωση του quiz. Αφού, λοιπόν, αποδεχτούμε τους όρους κάνουμε κλικ στο κουμπί που αναγράφει: Proceed to quiz και εμφανίζεται το παρακάτω παράθυρο: 128

129 Βήμα 2 ο Σε αυτό το παράθυρο (μέρος του οποίου εμφανίζεται στην παραπάνω εικόνα, προσπαθούμε να επιλέξουμε σε ένα quiz πολλαπλής επιλογής, την σωστή απάντηση σε κάθε ερώτηση: Αν προλάβουμε να απαντήσουμε σε όλες τις ερωτήσεις πριν ολοκληρωθούν τα 3 λεπτά χρονικού ορίου για την διευθέτηση του quiz, τότε κάνουμε κλικ στο κουμπί που αναγράφει Submit answers και το ένθεμά μας θα «τρέξει» έναν κώδικα αξιολόγησης των απαντήσεων που δώσαμε. Αν δεν προλάβουμε να απαντήσουμε σε όλες τις ερωτήσεις μέσα στον προαπαιτούμενο χρόνο, τότε το κουμπί Submit answers ε- νεργοποιείται αυτόματα και αξιολογούνται μόνον οι απαντήσεις που προλάβαμε να τσεκάρουμε. Όλες οι υπόλοιπες, αξιολογούνται αυτομάτως ως λανθασμένες. Θα προσποιηθούμε πως είμαστε ένας χρήστης που απάντησε όλες τις ερωτήσεις και, ορισμένες, τις απάντησε λάθος: 129

130 Στην παραπάνω εικόνα εμφανίζεται το παράθυρο αξιολόγησης των απαντήσεων που έδωσε ο χρήστης, Παρατηρούμε πως γίνεται τόσο γενική, όσο και ειδική αξιολόγηση. Συγκεκριμένα αποδίδεται το γενικό score (στο παράδειγμα μας 50%, που σημαίνει πως ο χρήστης απάντησε μόνο στις μισές από τις ερωτήσεις σωστά), καθώς επίσης εμφανίζεται σχετική σήμανση για κάθε απάντηση ξεχωριστά. Με πράσινο χρώμα και σχόλιο correct, εμφανίζονται οι απαντήσεις που αξιολογήθηκαν από το σύστημα ως σωστές. Με κόκκινη σήμανση και σχόλιο wrong εμφανίζονται οι α- παντήσεις που αξιολογήθηκαν από το σύστημα ως λανθασμένες. Παρατηρούμε πως, ακόμη και στις λανθασμένες απαντήσεις, συνεχίζει να υπάρχει πράσινη ένδειξη, η οποία σηματοδοτεί την σωστή απάντηση που θα έπρεπε να είχε δώσει ο χρήστης. Μέσα, λοιπόν, από αυτό το quiz ο ασθενής μαθαίνει από τις λάθος απαντήσεις που δίνει και επιβεβαιώνει τις γνώσεις του μέσα από τις σωστές. Πρόκειται αναμφισβήτητα για μία πολύ πιο προσιτή και διασκεδαστική διαδικασία, από το να του παρείχαμε ένα κατεβατό κείμενο πληροφοριών, το οποίο κατά πάσα πιθανότητα δεν θα διάβαζε κιόλας. Πώς, όμως, προσαρμόσαμε αυτό το quiz στις ανάγκες μας; Πως ορίσαμε το ποιες θα είναι οι ερωτήσεις; Πως καταφέραμε να αξιολογείται με σωστό τρόπο η κάθε απάντηση; 130

131 Τα περισσότερα components που έχουν σχεδιαστεί για το Joomla είναι γραμμένα σε php κώδικα. Η γλώσσα php (Hypertext Preprocessor) δημιουργήθηκε από την Zend Technologies. Είναι μία γλώσσα ανοιχτού κώδικα (open source). Εγκαθίσταται ως module πάνω σε έναν εξυπηρετητή διαδικτύου (web server), στην περίπτωσή μας στον apache. Διαχειρίζεται όλα τα αρχεία με τύπο.php Ένα αρχείο php μπορεί να περιέχει τόσο html tags όσο και scripts. Η σύνταξη της γλώσσας php είναι βασισμένη σε αυτήν της C++. Μπορούμε να την κατεβάσουμε και να την εγκαταστήσουμε δωρεάν από τη διεύθυνση Από την στιγμή που, στο παράδειγμά μας, έχουμε εγκαταστήσει wamp server, αυτό σημαίνει πως έχουμε ότι χρειαζόμαστε για να «τρέξει» η php, δηλαδή mysql (για database) και apache (για web server). Το λειτουργικό μας σύστημα (Ms Windows) ανήκει στην κατηγορία αυτών που, χωρίς κανένα πρόβλημα, συνεργάζεται η γλώσσα php, ενώ το ίδιο το Joomla, που αποτελεί την πλατφόρμα, πάνω στην οποία έχει σχεδιαστεί ολόκληρος ο ιστότοπός μας, είναι λογισμικό γραμμένο σε php γλώσσα. Σε γενικές γραμμές, η php είναι μια γλώσσα εύκολη στην εκμάθησή της. Παρόλα αυτά, τα components που έχουν σχεδιαστεί για το Joomla, μας παρέχουν panels μέσα από τα οποία αποφεύγουμε την χειροκίνητη διαδικασία τροποποίησης του php κώδικα. Όσο «έτοιμο» και αν είναι ένα component προς χρήση, πάντοτε θα είναι απαραίτητες σημαντικές τροποποιήσεις που θα πρέπει να γίνουν σε αυτό και συγκεκριμένα στο php κώδικά του, ώστε η τελική του μορφή να είναι αυστηρά προσαρμοσμένη στα μέτρα μας και στις ανάγκες μας. Το ίδιο ακριβώς συμβαίνει και με το component jquarks. Παρόλο που πρόκειται για ένα quiz με αρκετά, ήδη διαμορφωμένα συνεργαζόμενα php αρχεία, ο σχεδιαστής του είναι προφανές να μην μπορεί εκ των προτέρων να γνωρίζει σημαντικές παραμέτρους όπως: Ποιες θα είναι οι ερωτήσεις του quiz Ποια απάντηση θα αξιολογείται ως σωστή ανάλογα με την ερώτηση Ποια θα είναι η μέγιστη χρονική διάρκεια ολοκλήρωσης του quiz 131

132 Όλα τα παραπάνω, θα μπορούσαμε, σαφέστατα, να τα τροποποιήσουμε εμείς διαμορφώνοντας κατάλληλα τον php κώδικα του εν λόγω component. Το Joomla, όμως, μας επιτρέπει να αποφύγουμε αυτήν την χρονοβόρα διαδικασία. Πάμε, λοιπόν, να περιηγηθούμε, μέσα από το Joomla, στο panel του component jquarks, ώστε να δούμε πως μπορούμε πολύ πιο εύκολα και γρήγορα, να κάνουμε τις τροποποιήσεις που αναφέραμε στα παραπάνω bullets. Στο administration panel του Joomla πάμε στο menu Components και επιλέγουμε jquarks Στην καρτέλα Quizzes δημιουργούμε το νέο μας quiz 132

133 Στη συνέχει επιλέγουμε την καρτέλα Categories για να δημιουργήσουμε μία νέα (κενή προσωρινά) κατηγορία ερωτήσεων. Στο παράδειγμά μας την κατηγορία αυτή την ονομάσαμε «Ασφαλισμένος στον Ε.Ο.Π.Υ.Υ.» Μετά επιλέγουμε την καρτέλα Questions για να δημιουργήσουμε τις ερωτήσεις μας: Κάθε φορά που, βρισκόμενοι στην καρτέλα Questions επιλέγουμε New, εμφανίζεται το παρακάτω παράθυρο, στο οποίο έχουμε σημάνει με κόκκινο χρώμα τα πιο κομβικά σημεία του: Πρέπει να ορίσουμε την κατηγορία στην οποία θα υπάγεται η νέα ερώτηση που θέλουμε να δημιουργήσουμε Στον editor από κάτω, πληκτρολογούμε το κείμενο της ερώτησης Κάνουμε κλικ στο κουμπί Add a proposition, τόσες φορές, όσες και το πλήθος των πιθανών απαντήσεων που θέλουμε να δώσουμε σε αυτόν που α- παντάει την ερώτηση, γράφοντας στο αντίστοιχο πλαίσιο που εμφανίζεται το κείμενο της κάθε απάντησης Για την απάντηση που το σύστημα θέλουμε να αξιολογεί ως σωστή, τσεκάρουμε την παράμετρο correct 133

134 Στην συνέχεια ανατρέχουμε στην καρτέλα Sets of Questions. Αυτό είναι το λεγόμενο σετ ερωτήσεων. Στην πραγματικότητα πρόκειται για ένα group ερωτήσεων. Ο όρος group υπονοεί πως, κάθε σετ που ενδεχομένως θα δημιουργηθεί, θα περιλαμβάνει ερωτήσεις γύρω από ένα συγκεκριμένο θεματικό αντικείμενο και άρα δεν θα είναι άσχετες μεταξύ τους. Η σχέση που έχουν τα Sets of questions με τα Quizzes είναι αμφίδρομη. Ένα quiz μπορεί να εμπεριέχει πολλά sets of questions, αλλά και ένα set of question μπορεί να έχει χρησιμοποιηθεί το ίδιο σε παραπάνω από ένα quiz. Το σίγουρο είναι πως για να έχει υπόσταση ένα quiz που θα δημιουργήσουμε θα πρέπει να εμπεριέχει τουλάχιστον ένα set of questions. Στο παράδειγμά μας, το set ερωτήσεων και το quiz που σχεδιάσαμε έχουν τον ίδιο τίτλο. Αυτός είναι και ο λόγος (φαίνεται στην παρακάτω εικόνα) που τόσο το πεδίο Title όσο και το πεδίο Associated to quizzes φέρουν το ίδιο ακριβώς όνομα, δηλαδή «Είμαι ασφαλισμένος στον Ε.Ο.Π.Υ.Υ. Τι πρέπει να γνωρίζω;». Στο νέο set ερωτήσεων που δημιουργούμε, ορίζουμε ποια κατηγορία ερωτήσεων αντιστοιχεί. Εφόσον, τόσο την κατηγορία, όσο και τις ερωτήσεις που θα περιέχει τις έχουμε ορίσει από πριν, με το που θα αντιστοιχίσουμε την κατηγορία στο set ερωτήσεων, το μόνο που μένει είναι να αντιστοιχίσουμε το set ερωτήσεων στο quiz που επιθυμούμε και το quiz είναι έτοιμο! 134

135 Κατά τη δημιουργία νέου quiz, προαιρετικά ορίζουμε χρονικό όριο (time limit) καθώς επίσης και το αν θέλουμε να εμφανιστούν στο χρήστη απευθείας on-line τα αποτελέσματα μέσα από τη σελίδα μας (τσεκάρουμε show results in front end): Τέλος, μία σημαντική παρατήρηση, στην καρτέλα Candidates, ο διαχειριστής του ιστοτόπου (Administrator) μπορεί να παρακολουθεί ποιοι από τα μέλη του ιστοτόπου επιχείρησαν το quiz, καθώς επίσης και το αν το ολοκλήρωσαν με επιτυχία ή α- νεπιτυχώς: 135

136 Κεφάλαιο 8 ο - ΑΞΙΟΛΟΓΗΣΗ ΤΟΥ ΙΣΤΟΤΟΠΟΥ ΜΑΣ ΑΠΟ ΤΕΛΙΚΟΥΣ ΧΡΗΣΤΕΣ Παίρνοντας μία δειγματοληψία 20 ατόμων ζητήσαμε από αυτούς τους ανθρώπους να επισκεφθούν τον ιστότοπό μας και να αφιερώσουν λίγο από τον πολύτιμο χρόνο τους για να γίνουν μέλη αυτού, ώστε να έχουν τη δυνατότητα να αποκτήσουν πλήρη εικόνα του περιεχομένου του. Σε αυτό το σημείο θα πρέπει να τονιστεί πως αυτά τα 20 άτομα δεν αποτελούν μέλη στελέχη του Διαγνωστικού Κέντρου «Β Διάγνωση». Επίσης πρέπει να τονίσουμε πως η εύρεση ακόμη και αυτών των 20 ατόμων δεν ήταν μια εύκολη διαδικασία, δεδομένου ότι το site, θυμίζουμε, μέχρι την ολοκλήρωση της τρέχουσας διπλωματικής εργασίας, είναι εγκατεστημένο τοπικά στον φορητό υπολογιστή του συντάκτη σε wamp server και άρα απαιτείτο κατά τη διάρκεια της αξιολόγησης από τους τελικούς χρήστες, ο φορητός υπολογιστής να είναι ανοικτός και, είτε να χρησιμοποιείται από τους ίδιους, είτε να έχει αποδοθεί σε αυτούς μία IP address για να είναι εφικτή η φόρτωση του site στον υπολογιστή τους. Τους ευχαριστούμε! Τα κριτήρια βάση των οποίων τους ζητήσαμε να αξιολογήσουν τον ιστότοπό μας, στο σύνολό του, ήταν τα εξής: 1. Λειτουργικότητα: Παράμετρος η οποία σχετίζεται με την ταχύτητα φόρτωσης του ιστοτόπου, με την απλούστευση της πλοήγησης σε αυτόν, καθώς επίσης και με τον πόσο ο κάθε του σύνδεσμός γίνεται εύκολα κατανοητό στο τι περιγράφει και στο πού παραπέμπει 2. Πρωτοτυπία: Από τις πολύ σημαντικές παραμέτρους αξιολόγησης για εμάς, δεδομένου ότι από τους πρώτους μας στόχους ήταν τα site να έχει κάτι ξεχωριστό / διαφορετικό σε σχέση με τα αντίστοιχα site των υπολοίπων Διαγνωστικών Κέντρων και Ιδιωτικών Κλινικών 3. Πληρότητα: Παράμετρος αξιολόγησης μέσω της οποίας ο τελικός χρήστης καταθέτει την άποψή του σχετικά με το αν ένας ιστότοπος καλύπτει την απαιτούμενη γκάμα θεμάτων και πληροφοριών γύρω από το θέμα που πραγματεύεται 4. Γενική Αξιολόγηση: Επειδή, σε κάθε περίπτωση, μπορεί να υπάρχουν παράμετροι αξιολόγησης που δεν συμπεριλαμβάνονται σε ένα πρότυπο, προσθέσαμε αυτήν την παράμετρο, ώστε ν&