Αρχιµήδης ΙΙ Ενίσχυση Ερευνητικών Οµάδων του ΤΕΙ Κρήτης Τίτλος Υποέργου: Εφαρµογές Τεχνητής Νοηµοσύνης στην Τεχνολογία Λογισµικού και στην Ιατρική Επιστηµονικός Υπεύθυνος: ρ Εµµανουήλ Μαρακάκης ραστηριότητα 3: Πληροφοριακό Σύστηµα Υποστήριξης για την ιάγνωση Παιδικής Επιληψίας. Πακέτο Εργασίας 3.2 (ΠΕ 3.2): Σχεδιασµός Συστήµατος. Χρονική ιάρκεια : 1/10/05 µέχρι 28/2/06 Παραδοτέο: Π3.2 - Ερευνητική Μελέτη Σχεδιασµού του Συστήµατος Μέλη της ερευνητικής Οµάδας Ονοµατεπώνυµο Υπογραφή Α. ρ. Εµµανουήλ Μαρακάκης... Β. ρ Κων/νος Βασιλάκης. Γ. Εµµανουήλ Καλυβιανάκης. Επιστηµονικός Υπεύθυνος Υποέργου "The Project ARXIMIDIS ΙΙ is co-funded by the European Social Fund and National Resources EPEAEK ΙΙ "
ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...1 2. Τµήµατα του συστήµατος που αλληλεπιδρούν...2 2.1 Υποσύστηµα για την διάγνωσης της παιδικής επιληψίας...4 2.2 Υποσύστηµα για την γραφική παρουσίαση της βάσης κανόνων...6 2.3 Υποσύστηµα Ενηµέρωσης Βάσης Κανόνων...7 3. Αναπαράσταση Γνώσεων....9 3.1 Υλοποίηση της Βάσης Γνώσεων σε Prolog...12 3.2 Ασαφής Γνώση - Παράγοντες Βεβαιότητας...15 4. Τρόπος ιάγνωσης...19 5. Σχεδιασµός της διεπικοινωνίας....23 6. ΒΙΒΛΙΟΓΡΑΦΙΑ...30 ΠΑΡΑΡΤΗΜΑ A Μεταβλητές / σταθερές και τιµές...31 2
1. ΕΙΣΑΓΩΓΗ Αντικείµενο του συγκεκριµένου πακέτου εργασίας είναι ο αναλυτικός σχεδιασµός της δοµής του συστήµατος για την υποστήριξη της διάγνωσης της παιδικής επιληψίας. Στο προηγούµενο πακέτο εργασίας προσδιορίστηκε ο σκοπός του διαγνωστικού συστήµατος, ο οποίος σε γενικές γραµµές ς είναι να βοηθήσει το χρήστη-γιατρό, στον εντοπισµό του τύπου επιληψίας που παρουσιάζει κάποιος ασθενής του. Η διαδικασία εύρεσης πιθανών επιληψιών γίνεται µε την ανάλυση των ιατρικών εξετάσεων του ασθενούς σε σχέση µε τα δεδοµένα που έχουν καταχωρηθεί στο σύστηµα. Το σύστηµα δίνει στο χρήστη τα αποτελέσµατα της ανάλυσης των στοιχείων. Χρήστες του έµπειρου συστήµατος είναι οι εξής: 1. Χρήστης εφαρµογής (γιατρός): Αυτός είναι συνήθως ο γιατρός που θα χρησιµοποιήσει το σύστηµα για να εντοπίσει τους πιθανούς τύπους επιληψίας. Αυτός θα χρησιµοποιήσει το σύστηµα σαν ιατρικό σύµβουλο και θα επιλέξει τους πιθανούς τύπους επιληψίας µέσα από µια λίστα πιθανών επιληψιών. 2. Εµπειρογνώµονας (Χρήστης ανάπτυξης επέκτασης βάσης γνώσεων): Αυτός είναι κάποιος κορυφαίος επιστήµονας γιατρός µε εξειδίκευση στην παιδική επιληψία ο οποίος γνωρίζει αρκετά καλά το σύστηµα. Μπορεί να προσθέσει κανόνες στο σύστηµα χρησιµοποιώντας το υποσύστηµα ενηµέρωσης της Βάσης Γνώσεων. 3. Μηχανικός γνώσεων: Αυτός είναι ο κατασκευαστής του συστήµατος ο οποίος αναλαµβάνει να µετατρέψει τις γνώσεις του εµπειρογνώµονα σε πρόγραµµα. Ο µηχανικός γνώσεων αλληλεπιδρά µε τον εµπειρογνώµονα παίρνοντας την απαραίτητη γνώση που χρειάζεται για να φτιάξει την βάση γνώσεων και για να αναπτύξει το σύστηµα σε κάποια γλώσσα προγραµµατισµού. Στο παραδοτέο αυτό αρχικά περιγράφει όλο το διαγνωστικό σύστηµα σαν ενότητα τµηµάτων που αλληλεπιδρούν µεταξύ τους. Στη συνέχεια γίνεται αναλυτική περιγραφή των τριών λειτουργιών του διαγνωστικού συστήµατος. Αυτές είναι οι εξής: 1. Η διαδικασία διάγνωσης επιληψίας. 2. Η διαδικασία γραφικής παρουσίασης της Βάσης Γνώσης 3. Η διαδικασία ενηµέρωσης της Βάσης Γνώσης. Ακολουθούν µελέτες για: την περιγραφή του τρόπου δοµής και χρήσης της Βάσης Γνώσεων (Βάσης Γεγονότων και Βάσης Κανόνων). τον τρόπο εύρεσης των πιθανοτήτων των κανόνων µε την χρήση παραγόντων βεβαιότητας. την ανάλυση και σχεδιασµό του τρόπου διάγνωσης του συστήµατος. τον σχεδιασµό της διεπικοινωνίας χρήστη - συστήµατος. 1
2. Τµήµατα του συστήµατος που αλληλεπιδρούν Ο χρήστης εφαρµογής του συστήµατος, ο οποίος είναι γιατρός, θα χρησιµοποιεί το σύστηµα σαν ιατρικό σύµβουλο για να εντοπίσει κάποιους τύπους επιληψίας οι οποίοι µπορεί να ισχύουν στην κάθε περίπτωση που εξετάζεται. Ο χρήστης, αφού εκτελέσει µια σειρά από ιατρικές εξετάσεις στον ασθενή, θα εισάγει τα αποτελέσµατα στο πρόγραµµα. Αυτό θα πρέπει να επεξεργάζεται τα δεδοµένα για να προσδιορίσει κάποιον ή κάποιους τύπους επιληψίας οι οποίοι είναι δυνατόν να ισχύουν. Η διάγνωση του συστήµατος είναι συµβουλευτική για το γιατρό, αυτός έχει την τελική κρίση. Ο γιατρός αφού αναλύσει τα αποτελέσµατα θα καταλήξει στον τύπο επιληψίας που θεωρεί σωστό σύµφωνα µε την κρίση του και τις εµπειρίες του. Επίσης θα πρέπει να υπάρχει η δυνατότητα παρουσίασης της βάσης γνώσεων του συστήµατος σε κατανοητή για τον χρήστη µορφή. Μια απλή µορφή είναι η δενδρική, δηλαδή το σύστηµα να µπορεί να δίνει στον χρήστη ένα δέντρο γραφικής παρουσίασης της Βάσης Γνώσεων. Ο σκοπός ύπαρξης αυτό του δέντρου είναι να βοηθήσει το χρήστη να κατανοήσει καλύτερα τη διαδικασία διάγνωσης του συστήµατος. Το σύστηµα θα επιδεικνύει στον χρήστη τα δεδοµένα της Βάσης Γνώσεων σε µορφή δέντρου. Τέλος, άλλο υποσύστηµα θα πρέπει να υποστηρίζει την ανανέωση της Βάσης Γνώσεων δίνοντας στον χρήστη τη δυνατότητα πρόσθεσης νέων τύπων επιληψίας ή τροποποίησης κάποιου κανόνα ο οποίος ήδη υπάρχει στη βάση. Στόχος είναι ο χρήστης (γιατρός) να µπορεί να κάνει σχετικά εύκολα αλλαγές στο πρόγραµµα χωρίς να απαιτούνται οι γνώσεις προγραµµατισµού του µηχανικού γνώσεων. Αυτό το χαρακτηριστικό θα κάνει το διαγνωστικό µας σύστηµα ένα εργαλείο αρκετά ευέλικτο και προσαρµοστικό σε νέα ιατρικά δεδοµένα. Η γλώσσα προγραµµατισµού Prolog διαθέτει µηχανισµούς αποτελεσµατικής κατασκευής Έµπειρων Συστηµάτων αλλά δεν έχει δικούς της µηχανισµούς (προδεδηλωµένα κατηγορήµατα), για γρήγορη κατασκευή διεπικοινωνίας σε παραθυρική µορφή. Όµως το µειονέκτηµα αυτό αντισταθµίζεται µε την δυνατότητα που παρέχει στον προγραµµατιστή για επικοινωνία µε γλώσσες προγραµµατισµού που παρέχουν αυτή τη δυνατότητα, όπως η Visual Basic, TCL-TK και άλλες. ιεπικοινωνία µε χρήση προδεδηλωµένων κατηγορηµάτων της Prolog µπορεί να γίνει σε επίπεδο εντολών το οποίο στην περίπτωση µας θα έκανε την επικοινωνία του συστήµατος ανιαρή και µη λειτουργική. Έτσι αποφεύγουµε την επαφή του χρηστή µε ένα τέτοιο δυσλειτουργικό περιβάλλον και του δίνουµε περισσότερα κίνητρα για να χρησιµοποιήσει το σύστηµα αυτό. Επίσης οι δυο γλώσσες προγραµµατισµού, Visual Basic και Prolog οι οποίες έχουν διαφορετική φιλοσοφία κατασκευής, µας προσφέρουν η καθεµία στον δικό της τοµέα την δυνατότητα καλύτερης και ευκολότερης επεξεργασίας των στοιχείων που αναλύουν. Για αυτό τον λόγο προτείνεται ο διαχωρισµός του υπό ανάπτυξη συστήµατος σε δύο βασικά τµήµατα, αντίστοιχα µε τα εργαλεία ανάπτυξης (Prolog Visual basic): 1. Το πρώτο τµήµα αφορά στην διεπικοινωνία του συστήµατος µε τον χρήστη, η οποία θ αναπτυχθεί σε γλώσσα προγραµµατισµού Visual Basic. Η γλώσσα αυτή δίνει την δυνατότητα κατασκευής γραφικού περιβάλλοντος. Οι χρήστες του συστήµατος χρησιµοποιούν µόνο αυτό το τµήµα του συστήµατος, δίνουν τα δεδοµένα και λαµβάνουν τα αποτελέσµατα µέσο αυτού. Με διεπικοινωνία σε παραθυρική µορφή όλες οι λειτουργίες του συστήµατος γίνονται φιλικότερες προς τον χρήστη. Θεωρούµε ότι ο χρήστης είναι ποιο εξοικειωµένος µε την χρήση περιβάλλοντος εργασίας σε παραθυρική µορφή. 2. Το δεύτερο τµήµα αφορά στη γλώσσα κατασκευής του καθεαυτού Έµπειρου Συστήµατος, η οποία είναι η Prolog. Σε αυτό το τµήµα θα κατασκευαστεί η Βάση Γνώσεων του συστήµατος και θ αναπτυχθεί ο µηχανισµός εξαγωγής συµπερασµάτων (inference engine) για την εκµετάλλευση της βάσης γνώσεων Στο Σχήµα 2.1 παρουσιάζουµε την γενική µορφή του συστήµατος µε τις τρεις λειτουργίες που υποστηρίζει, δηλαδή την ενηµέρωση της Βάσης Γνώσεων, τη γραφική παρουσίαση της Βάσης Γνώσεων και τη διάγνωση επιληψίας, καθώς και πως αυτές αλληλεπιδρούν µε το υπόλοιπο σύστηµα. Περαιτέρω το σύστηµα χωρίζετεαι σε τέσσερα τµήµατα οι λειτουργίες των οποίων καθώς 2
και αλλά υποσυστήµατα τα οποία περιέχονται σε αυτά περιγράφονται παρακάτω. Τα τέσσερα κύρια τµήµατα του συστήµατος είναι τα εξής: 1. ιεπικοινωνία συστήµατος. 2. Υποσύστηµα Ενηµέρωσης Βάσης Γνώσεων. 3. Υποσύστηµα διάγνωσης επιληψίας. 4. Βάση Γνώσεων. 1 4 1.1 2 ιεπικοινωνία ενηµέρωσης Υποσύστηµα Βάσης Γνώσεων Ενηµέρωσης Βάσης Γνώσεων Χρήστης ιεπικοινωνία γραφικής παρουσίασης Βάσης Κανόνων 1.2 1.3 3 Βάση Γνώσεων ιεπικοινωνία ιάγνωσης Επιληψίας Υποσύστηµα ιάγνωσης Επιληψίας Σχήµα 2.1 Αρχιτεκτονική ιαγνωστικού Συστήµατος Επιληψίας Σηµείωση: Οι συνεχείς γραµµές του σχήµατος δεικνύουν ροή πληροφοριών / γνώσεων. Τα τµήµατα και οι λειτουργίες κάθε τµήµατος έχουν ως εξής: 1. Τµήµα 1, ιεπικοινωνία ιαγνωστικού Συστήµατος Επιληψίας: Το τµήµα 1 του σχεδιαγράµµατος παρέχει την διεπικοινωνία µεταξύ χρήστη και συστήµατος. Αυτό αναλύεται στα τµήµατα 1.1, 1.2 και 1.3 τα οποία έχουν τις εξής λειτουργίες: i. Τµήµα 1.1, ιεπικοινωνία ενηµέρωσης Βάσης Γνώσεων (ΒΓ): Αυτό το τµήµα δέχεται τις εντολές και τα αντίστοιχα στοιχεία ενηµέρωσης της Βάσης Γνώσεων. Οι δυνατές εντολές τις οποίες µπορεί να δώσει ο χρηστής είναι οι εξής: α) Εισαγωγή ενός νέου κανόνα. β) Τροποποίηση κανόνα από την Βάση Γνώσεων. γ) ιαγραφή κανόνα από τη Βάση Γνώσεων. Χρήστες αυτού του τµήµατος διεπικοινωνίας είναι ο µηχανικός γνώσεων και ο εµπειρογνώµονας. ii. Τµήµα 1.2, ιεπικοινωνία γραφικής παρουσίασης Βάσης Κανόνων: Αυτό το τµήµα δίνει τη δυνατότητα στο χρήστη να δει σε δενδροειδή µορφή την Βάση Κανόνων. Χρήστες αυτού του τµήµατος διεπικοινωνίας είναι ο µηχανικός γνώσεων, ο εµπειρογνώµονας και ο χρήστης εφαρµογής (γιατρός). 3
iii. Τµήµα 1.3, ιεπικοινωνία διάγνωσης επιληψίας: Αυτό το τµήµα διεπικοινωνίας δέχεται τα δεδοµένα του ασθενούς για να γίνει στη συνέχεια η επεξεργασία τους. Αυτό το τµήµα διεπικοινωνίας το χρησιµοποιεί ο γιατρός. 2. Τµήµα 2, Υποσύστηµα ενηµέρωσης Βάσης Γνώσεων: Αυτό το τµήµα ενηµερώνει τη Βάση Γνώσεων ανάλογα µε την εντολή του χρήστη. 3. Τµήµα 3, Υποσύστηµα διάγνωσης επιληψιών: Αυτό το υποσύστηµα επεξεργάζεται τα δεδοµένα του ασθενούς για να εξάγει τα αποτελέσµατα. 4. Τµήµα 4, Βάση Γνώσεων: Το τµήµα 4 παριστά την Βάση Γνώσεων του συστήµατος η οποία περιγράφεται λεπτοµερώς στην παράγραφο 3.2 αυτού του κεφαλαίου. Τα τµήµατα 1.1, 1.2, 1.3 και 2 υλοποιούνται σε γλώσσα προγραµµατισµού Visual Basic. Ενώ τα τµήµατα 3, 4.1 και 4.2 υλοποιούνται σε γλώσσα προγραµµατισµού Prolog. Όλες οι παραπάνω λειτουργίες του συστήµατος αναπτύσσονται αναλυτικότερα στις επόµενες παραγράφους. 2.1 Υποσύστηµα για την διάγνωσης της παιδικής επιληψίας Το υποσύστηµα διάγνωσης παιδικής επιληψίας όπως προαναφέραµε αναλαµβάνει να εντοπίσει πιθανούς τύπους επιληψίας χρησιµοποιώντας τη Βάση Γνώσεων του συστήµατος. Για να πραγµατοποιηθεί η λειτουργία αυτή, θα πρέπει να δοθούν κάποια δεδοµένα τα οποία είναι οι ιατρικές εξετάσεις που έχουν γίνει από τον γιατρό (χρήστη του συστήµατος). Τα τµήµατα 1.3, 3 και 4 του σχήµατος 2.1 παριστούν αυτή τη λειτουργία. Το τµήµα διεπικοινωνίας, τµήµα 1.3, αλληλεπιδρά µε το τµήµα διάγνωσης επιληψιών, τµήµα 3, για να δοθούν τα δεδοµένα προς ανάλυση και να επιστραφούν τα αποτελέσµατα της έρευνας. Το τµήµα διάγνωσης επιληψιών λαµβάνει τα δεδοµένα της Βάσης Γνώσης, τµήµα 4, τα συγκρίνει µε αυτά του ασθενούς και επιστρέφει τα αποτελέσµατα που προκύπτουν στο πρόγραµµα διεπικοινωνίας. Στο σχήµα 2.2 βλέπουµε την δοµή του υποσυστήµατος διάγνωσης επιληψιών το οποίο είναι κατασκευασµένο σε γλώσσα προγραµµατισµού Prolog. Το σχήµα αυτό περιγράφει µε περισσότερες λεπτοµέρειες το αντίστοιχο τµήµα 3 του σχήµατος 2.1. Με αυτό τον τρόπο οι λειτουργίες που εκτελούνται είναι οι εξής: 1. Τµήµα 3.1, Υποσύστηµα επεξεργασίας δεδοµένων και εύρεσης πιθανών επιληψιών: Στο τµήµα αυτό το σύστηµα πραγµατοποιεί µια διαδικασία ανάλυσης των δεδοµένων που εισάγει ο χρήστης για να εντοπίσει τους τύπους επιληψίας που µπορεί να ισχύουν στην συγκεκριµένη περίπτωση. 2. Τµήµα 3.2, Υποσύστηµα Επαλήθευσης επιληψιών και εύρεσης παραγόντων βεβαιότητας: Στο τµήµα αυτό το σύστηµα επαληθεύει την ορθότητα του τύπου επιληψίας που εξετάζεται και υπολογίζει τον παράγοντα βεβαιότητας του κανόνα για τα στοιχεία του ασθενούς (ιατρικές εξετάσεις, διαγνώσεις γιατρού κλπ). Το υποσύστηµα διάγνωσης επιληψιών αναλαµβάνει να εντοπίσει τους πιθανούς τύπους επιληψίας µε ανάλυση των δεδοµένων που υπάρχουν στη Βάση Γνώσης. Στο σύστηµα εισάγονται τα αποτελέσµατα των εξετάσεων που πραγµατοποιεί ο γιατρός. Σε πρώτη φάση, αυτά αναλύονται και εντοπίζονται οι πιθανοί τύποι επιληψίας, τµήµα 3.1. Στην επόµενη φάση επαληθεύονται οι τύποι επιληψίας αν ικανοποιούν τα δεδοµένα του ασθενούς και υπολογίζεται ο παράγοντας βεβαιότητας για καθένα τύπο επιληψίας χωριστά, τµήµα 3.2. Κάθε αποτέλεσµα της έρευνας επιστρέφεται στο χρήστη του συστήµατος (τύπος επιληψίας και παράγοντας βεβαιότητας). Η παραπάνω διαδικασία εντοπισµού των πιθανών τύπων επιληψίας επαναλαµβάνεται κάθε φορά που θέλουµε να εντοπίσουµε κάποιον νέο τύπο επιληψίας. ηλαδή αν σε µια έρευνα έχουν εντοπιστεί τέσσερις πιθανοί τύποι επιληψίας, η παραπάνω διαδικασία θα πραγµατοποιηθεί τέσσερις φορές, δίνοντας στον χρήστη του συστήµατος τα αποτελέσµατα αυτά. Ο χρήστης θα πρέπει να 4
δίνει κάθε φορά την εντολή επανάληψης της έρευνας µέχρι το σύστηµα να δηλώσει ότι η έρευνα έχει ολοκληρωθεί. 3 3.1 3.2 Είσοδος δεδοµένων προς ανάλυση Υποσύστηµα επεξεργασίας δεδοµένων και εύρεσης πιθανών επιληψιών Υποσύστηµα επαλήθευσης επιληψιών και εύρεσης παράγοντα βεβαιότητας Είσοδος δεδοµένων Βάσης Γνώσεων Έξοδος αποτελεσµάτων Σχήµα 2.2 Υποσύστηµα ιάγνωσης Επιληψιών Η σηµαντικότερη διαδικασία που πραγµατοποιείται στο υποσύστηµα του σχήµατος 2.2 είναι το τµήµα επεξεργασίας των δεδοµένων, τµήµα 3.1 Σχήµα 2.2. Σε αυτό το τµήµα εντοπίζονται όλοι οι πιθανοί τύποι επιληψίας που µπορεί να εντοπίσει το σύστηµα για τα δεδοµένα που έχουν εισαχθεί. Στη φάση αυτή, το σύστηµα ελέγχει µερικά πολύ σηµαντικά στοιχεία της Βάσης Κανόνων την οποία χρησιµοποιεί για να οδηγηθεί στον εντοπισµό των πιθανών επιληψιών. Οι τύποι επιληψίας που θα εντοπιστούν σε αυτή τη φάση είναι οι µόνοι τους οποίους το σύστηµα θα επιστρέψει στον χρηστή. Όµως, σε αρκετές περιπτώσεις, κάποιοι από αυτούς τους τύπους επιληψίας απορρίπτονται στη φάση της επαλήθευσης και υπολογισµού των παραγόντων βεβαιότητας, τµήµα 3.2 Σχήµα 2.2. Η απόρριψη αυτή γίνετε γιατί υπάρχουν περιπτώσεις που ο παράγοντας βεβαιότητας έχει πολύ µικρή τιµή ή στη Βάση Γεγονότων υπάρχουν στοιχεία τα οποία αποκλείουν κάποιον ή κάποιους από τους τύπους επιληψίας. Στο υποσύστηµα επεξεργασίας των δεδοµένων και εύρεσης των πιθανών επιληψιών, τµήµα 3.1 σχήµα 2.2, το σύστηµα ελέγχει τα παρακάτω στοιχεία: 1. Ελέγχει τη Βάση Γεγονότων για να εντοπίσει τις περιπτώσεις που ο Τύπος Κρίσης (Seizure Type) του ασθενούς ταιριάζει µε αυτόν της βάσης. Στη διαδικασία αυτή επιλέγονται όλοι οι τύποι επιληψίας που ικανοποιούν τα ιατρικά δεδοµένα του ασθενούς. 2. Ελέγχει τους τύπους επιληψίας των κατηγοριών: 1.2.1 (Localization-related, Symptomatic, simple partial seizures), 1.2.2 (Localization-related, Symptomatic, Complex partial seizures), και 1.2.3 (Localization-related, Symptomatic, secondary generalized seizures). Οι κατηγορίες αυτές επιληψίας έχουν σχεδόν ίδια στοιχεία διάγνωσης. Για αυτό το λόγο εκτελούµε µια διαδικασία διάκρισης τους. Σε αυτή τη διαδικασία εντοπίζουµε πιο από τα παρακάτω ιατρικά δεδοµένα Ηλεκτροεγκεφαλογράφηµα (EEG Type) ή Τύπος Εστίασης (Seizure Focus) του ασθενούς είναι σηµαντικότερο. Με βάση αυτή τη διαδικασία διάκρισης επιλέγουµε τους πιθανούς τύπους επιληψίας των κατηγοριών 1.2.(1, 2, 3).(A, B, C, D, E, F). Οι κωδικοί των πιθανών τύπων επιληψίας έχουν την εξής µορφή: 1.2.Χ.Υ όπου Χ є {1, 2, 3} και Υ є {A, B, C, D, E, F} 5
Για παράδειγµα, 1.2.1.A, 1.2.2.C είναι κωδικοί πιθανών τύπων επιληψίας. 3. Εντοπίζει τους σηµαντικούς τύπους Ηλεκτροεγκεφαλογραφήµατος (EEG Type). Κάποιοι τύποι Ηλεκτροεγκεφαλογραφήµατος είναι πολύ σηµαντικοί στην εύρεση των πιθανών επιληψιών. Γι αυτό γίνεται έλεγχος και επιλογή των επιληψιών από τη Βάση Γνώσεων των οποίων ο τύπος Ηλεκτροεγκεφαλογραφήµατος ταιριάζει µε αυτό του ασθενούς. Στη διαδικασία αυτή επιλέγονται όλοι οι πιθανοί τύποι επιληψίας που ικανοποιούν την προηγούµενη πρόταση. 4. Ελέγχει τα επιπρόσθετα συµπτώµατα που παρουσιάζει ο ασθενής. Αυτά συγκρίνονται µε τα αντίστοιχα της Βάσης Γεγονότων και καταγράφονται οι πιθανοί τύποι επιληψίας. Όλοι οι παραπάνω τύποι επιληψίας ενώνονται σε µια λίστα η οποία περιέχει όλους τους πιθανούς τύπους επιληψίας του ασθενούς. Το σύστηµα στο τέλος της προαναθερθείσας λειτουργίας υπολογίζει τον παράγοντα βεβαιότητας κάθε τύπου επιληψίας που εντοπίστηκε. Ο τρόπος υπολογισµού του παράγοντα βεβαιότητας περιγράφεται πιο κάτω (παράγραφος????). 2.2 Υποσύστηµα για την γραφική παρουσίαση της βάσης κανόνων Το υποσύστηµα γραφικής παρουσίασης των κανόνων επιδεικνύει στον χρηστή του συστήµατος την Βάση Κανόνων σε δενδροειδή µορφή. Σε αυτό το υποσύστηµα εκτελούνται οι εξής λειτουργίες: 1. Τµήµα 1.2.1, Υποσύστηµα επιλογής τύπου επιληψίας από τη Βάση Κανόνων: Αυτό το τµήµα δίνει τη δυνατότητα στο χρηστή να επιλέξει τον κανόνα που επιθυµεί να δει µε βάση τον τύπο επιληψίας. Ο χρήστης επιλέγει τον τύπο επιληψίας και το σύστηµα επιδεικνύει τον αντίστοιχο κανόνα. 2. Τµήµα 1.2.2, Υποσύστηµα επεξεργασίας δεδοµένων: Αυτό το τµήµα επεξεργάζεται τα δεδοµένα και τα ποσοστά των κανόνων από τη Βάση Κανόνων και τα διαµορφώνει µε τρόπο ώστε να µπορούν να προβληθούν από το πρόγραµµα σε δενδροειδή µορφή. 3. Τµήµα 1.2.3, Υποσύστηµα γραφικής παρουσίασης: Αυτό το τµήµα προβάλλει την Βάση Κανόνων σε δενδροειδή µορφή στον χρήστη. 1.2 Χρήστης του Συστήµατος Έξοδος Γραφική Παρουσίαση Κανόνα Υποσύστηµα επιλογής τύπου επιληψίας από τη Βάση Κανόνων για παρουσίαση 1.2.1 1.2.2 1.2.3 Υποσύστηµα επεξεργασίας δεδοµένων και επιλογής αντίστοιχων ποσοστών Υποσύστηµα γραφικής παρουσίασης Βάσης Κανόνων Βάση Γνώσεων Σχήµα 2.3 Υποσύστηµα Γραφικής παρουσίασης Βάσης Κανόνων Γενικότερα µε αυτόν τον τρόπο, οι χρήστες µπορούν να δουν µε λεπτοµέρεια την δοµή κάθε κανόνα της Βάσης Γνώσεων. Οι λόγοι ύπαρξης αυτής της λειτουργίας στο σύστηµα είναι οι εξής: 1. Να δει ο µηχανικός γνώσεων τα δεδοµένα της Βάσης Κανόνων δοµηµένα σε δενδροειδή µορφή. Αυτό βοηθάει στην ευκολότερη κατανόηση των κανόνων. 2. Να βοηθήσει τον εµπειρογνώµονα να ελέγξει τους κανόνες για τυχόν απαραίτητες διορθώσεις και 6
3. Να βοηθήσει το γιατρό (χρήστη του συστήµατος) να κατανοήσει τον λόγο επιλογής κάποιων τύπων επιληψίας και την «φιλοσοφία» του συστήµατος 2.3 Υποσύστηµα Ενηµέρωσης Βάσης Κανόνων Το υποσύστηµα ενηµέρωσης της Βάσης Γνώσεων εκτελεί τα εξής: 1) Προσθέτει νέους κανόνες στο σύστηµα. 2) Αφαιρεί κανόνες από το σύστηµα. 3) Τροποποιεί τους υπάρχοντες κανόνες του συστήµατος. Οι λειτουργίες αυτές περιγράφονται στο σχήµα 2.4 το οποίο είναι ανάλυση του τµήµατος 2 του σχήµατος 2.1. 2 2.2 2.3 Επεξεργασία εδοµένων και δηµιουργία κανόνων 2.3.1 Είσοδος εδοµένων 2.1 Καταχώρηση δεδοµένων και παραγόντων βεβαιότητας στο πρόγραµµα διεπικοινωνίας Παρουσίαση δεδοµένων για επαλήθευση και αλλαγές ηµιουργία αρχείων Ασφαλείας Επεξεργασία δεδοµένων και δηµιουργία κανόνων ιαγραφή παλιών κανόνων 2.3.2 2.3.3 Αρχεία προγράµµατος Prolog 2.3.4 Αποθήκευση νέων κανόνων Σχήµα 2.4 Αρχιτεκτονική Υποσυστήµατος Ενηµέρωσης της Βάσης Γνώσεων Σηµείωση: Οι συνεχείς γραµµές του σχήµατος δεικνύουν ροή πληροφοριών / γνώσεων. Οι διακεκοµµένες γραµµές δεικνύουν τη δυνατότητα επιστροφής σε προηγούµενες φάσεις εφόσον αυτό χρειαστεί. ηλαδή, αυτές είναι γραµµές έλεγχου. Οι λειτουργίες κάθε τµήµατος έχουν ως εξής: 1. Τµήµα 2.1, Καταχώρηση δεδοµένων και παραγόντων βεβαιότητας στο πρόγραµµα διεπικοινωνίας: Στο τµήµα αυτό τα δεδοµένα µετατρέπονται σε µορφή αποδεκτή από το πρόγραµµα Prolog. ηλαδή δηµιουργείται η δοµή της Βάσης Κανόνων. 2. Τµήµα 2.2, Παρουσίαση δεδοµένων για επαλήθευση και αλλαγές: Σε αυτό το τµήµα ο χρήστης του προγράµµατος έχει τη δυνατότητα να ελέγξει τα στοιχεία που έχει εισάγει για τυχόν λάθη. Επίσης έχει τη δυνατότητα να παρέµβει σε αυτά κάνοντας τις κατάλληλες αλλαγές. 3. Τµήµα 2.3, Επεξεργασία δεδοµένων και δηµιουργία κανόνων: Σε αυτό το τµήµα το πρόγραµµα εκτελεί τη διαδικασία ενηµέρωσης της Βάσης Γνώσεων. Αυτή περιλαµβάνει τα εξής σταδία: 7
i. α. Τµήµα 2.3.1 ηµιουργία αρχείων ασφάλειας: Στο τµήµα αυτό του συστήµατος δηµιουργούνται αρχεία ασφάλειας για όλα τα αρχεία που µεταβάλλονται στη διάρκεια ενηµέρωσης του συστήµατος. Η διαδικασία αυτή µας επιτρέπει να µπορούµε να επαναφέρουµε το σύστηµα στην προηγούµενη κατάσταση του σε περίπτωση που οι αλλαγές δηµιουργούν προβλήµατα στην λειτουργία του συστήµατος. Η διαδικασία επαναφοράς των παλιών αρχείων δεν γίνετε αυτόµατα και θα πρέπει ο χρήστης να πραγµατοποιήσει αυτή τη διαδικασία µόνος του. ii. β. Τµήµα 2.3.2 Επεξεργασία δεδοµένων και δηµιουργία κανόνων: Στο τµήµα αυτό δηµιουργούνται οι κανόνες που θα εισαχθούν στο σύστηµα. Το πρόγραµµα διεπικοινωνίας δηµιουργεί αυτόµατα τους κανόνες και τα δεδοµένα της Βάσης Γνώσεων. iii. γ. Τµήµα 2.3.3 ιαγραφή παλιών κανόνων: Στο τµήµα αυτό διαγράφονται όλα τα δεδοµένα τα οποία είναι περιττά µετά την νέα ενηµέρωση. iv. δ. Τµήµα 2.3.4 Αποθήκευση νέων κανόνων: Στο τµήµα αυτό αποθηκεύονται στο σύστηµα όλα τα νέα στοιχεία που δηµιουργήθηκαν κατά τις προηγούµενες διαδικασίες. Το υποσύστηµα ενηµέρωσης της Βάσης Γνώσεων µπορεί να χρησιµοποιηθεί από τους χρήστες που γνωρίζουν καλά το σύστηµα. Ο εµπειρογνώµονας και ο χρήστης εφαρµογής αν έχουν καλή γνώση του συστήµατος µπορούν εύκολα να προσθέσουν κάποιους νέους τύπους επιληψίας χωρίς να είναι απαραίτητη η γνώση προγραµµατισµού. Ο µηχανικός γνώσης µπορεί επίσης να χρησιµοποιήσει αυτή τη λειτουργία για να εισάγει γρηγορότερα κάποιους κανόνες. Στην διαδικασία πρόσθεσης ή τροποποίησης κανόνων, ο χρήστης θα πρέπει να κατασκευάσει τους κανόνες µε τρόπο ώστε να εξασφαλίζεται η αποτελεσµατικότητα του συστήµατος. 8
3. Αναπαράσταση Γνώσεων. Με τον όρο αναπαράσταση γνώσεων εννοούµε τον τρόπο δοµής και παράστασης της Βάσης Γνώσεων σε κάποια γλώσσα αναπαράστασης γνώσεων. Η Βάση Γνώσεων χωρίζεται στη Βάση Κανόνων και στη Βάση Γεγονότων. Η Βάση Γνώσεων περιέχει την αναπαράσταση των κανόνων του συστήµατος. Ο τρόπος υλοποίησης τους σε Prolog περιλαµβάνει για κάθε κανόνα του συστήµατος ένα Prolog γεγονός (πρόταση γεγονός) και ένα Prolog κανόνα (πρόταση κανόνας). Η αναπαράσταση γνώσεων είναι ένα πολύ σηµαντικό τµήµα ενός έµπειρου συστήµατος. Από τη σωστή δοµή της Βάσης Γνώσεων εξαρτάται σε µεγάλο βαθµό η αποτελεσµατικότητα του έµπειρου συστήµατος. Επιπλέον, η σωστή δοµή της Βάσης Γνώσεων δίνει τη δυνατότητα στο σύστηµα να καταλήγει στα σωστά συµπεράσµατα εύκολα και µε σαφήνεια. Ο εµπειρογνώµονας και ο µηχανικός γνώσεων είναι σηµαντικό να µεταφέρουν µε σαφήνεια ο ένας στον άλλο τις απόψεις τους για το έµπειρο σύστηµα. Ο µηχανικός γνώσεων θα πρέπει να κατανοήσει όσο το δυνατό καλύτερα το πρόβληµα για να µπορέσει να κατασκευάσει καλύτερους κανόνες. Ο εµπειρογνώµονας θα πρέπει να κατανοήσει την δοµή της Βάσης Γνώσεων (κανόνων και γεγονότων) για να µπορέσει να µετάδοση τις γνώσεις του σωστά στον µηχανικό γνώσεων. Κάθε τύπος επιληψίας αντιστοιχεί σ ένα κανόνα του συστήµατος, ο οποίος και παριστάνεται στη Βάση Γνώσεων. Κάθε κανόνας του συστήµατος περιγράφεται από ένα σύνολο διαγνωστικών κριτηρίων και τις αντίστοιχες τιµές τους. Για παράδειγµα ο πίνακας 3.1 περιγράφει τον κανόνα για τον τύπο επιληψίας 1.1.Ε. Για καθένα από τα 28 διαγνωστικά κριτήρια υπάρχουν οι αντίστοιχες τιµές οι οποίες πρέπει να ισχύουν. Για παράδειγµα, για το διαγνωστικό κριτήριο Seizure Type οι δυνατές τιµές για να έχουµε τύπο επιληψίας 1.1.Ε είναι IA1 ή IC ή IB1b. Για το διαγνωστικό κριτήριο Pregnancy Status η τιµή είναι, αυτό σηµαίνει ότι δεν λαµβάνετε υπόψη στην διάγνωση. ηλαδή, οποιαδήποτε τιµή για αυτό το διαγνωστικό κριτήριο είναι αποδεκτή και δεν επηρεάζει το τελικό αποτέλεσµα. Epileps y Type 1.1.E 1 2 3 4 5 6 7 Seizure Type Seizure Seizure EEG Type Age Pregnancy Delivery Focus Severity Status Status IA1 Frontal Slight C33 4-8 - - IC Intermedia C34 IB1b ry B1-f 8 9 10 11 12 13 14 Family Inheritance School Performance Lab Findings Behavior Neurological Estimation Psychomot or Developme nt Lab Focal - - Normal - - - - 15 16 17 18 19 20 21 Vocalization Seizures Per Day Seizure During Seizure After Sleep Fever in Seizure Metabolic Symptoms Toxic Poisoning Min/Max Sleep Yes 0, 0 No No No No No 22 23 24 25 26 27 28 Head Injury Nervous System Disease Not Nervous System Disease Acquired Aphasia Primary Visual Ictal Seizure Speech Problems Behavior Problems During Seizure No No No No No No No Πίνακας 3.1 Παράδειγµα Βάσης Γνώσεων 9
Τα στοιχεία του πίνακα 3.1 εισάγονται στην Βάση Γνώσεων του προγράµµατος Prolog και χρησιµοποιούνται από αυτή κατάλληλα για να βρεθούν οι πιθανοί τύποι επιληψίας. Η γενική µορφή των κανόνων σε ψευδοκώδικα είναι η εξής: If (Seizure_type є ST_set) (Seizure_focus є SF_set) (Seizure_severity є SS_set) (EEG є EEG_set) (Age є Age_set) (Pregnancy_status є PS_set) (Delivery_status є DS_set) (Family_inheritance є FI_set) (School_performance є SP_set) (Lab_findings є LF_set) (Behavior є Be_set) (Neurological_estimation є NE_set) (Phychomotor_development є PD_set) (Lab_focal є LFoc_set) (Vocalization є yes_no_set) (Seizures_Per_Day є SPD_data_set) (Seizure_During_Sleep є yes_no_set) (Seizure_After_Sleep є yes_no_set) (Seizure_Fever є yes_no_set) (Metavolic_Symptoms є yes_no_set) (Toxic_Poisoning є yes_no_set) (Head_Injury є yes_no_set) (Neurous_System_Disease є yes_no_set) (NOT_Neurous_System_Disease є yes_no_set) (Acquired_Aphasia є yes_no_set) (Primary_Visual_Ictal_Seizure є yes_no_set) (Speech_Problems є yes_no_set) (Behavior_Problems_During_Seizure є yes_no_set) then Epilepsy_type = ET Όπου τα στοιχεία όλων των συνόλων ST_set, SF_set,, LF_set είναι ζεύγη δύο τιµών της µορφής (Τιµή_συνόλου, Παράγοντας_βεβαιότητας). Τα στοιχεία του yes_no_set είναι ζεύγη της µορφής (yes, Παράγοντας_βεβαιότητας) (no, Παράγοντας_βεβαιότητας). Τα στοιχεία του SPD_data_set έχουν την µορφή ((Τιµή_ελάχιστη, Τιµή_µέγιστη), Παράγοντας_βεβαιότητας). Το ΕT περιλαµβάνει τον τύπο επιληψίας που ικανοποιείται από τα δεδοµένα που δίνονται. Για παράδειγµα, ο κανόνας για τον τύπο επιληψίας 1.1.E είναι ο εξής: 10
If (Seizure_type є {(ia1, 0.2), (ic, 0.2), (ib1b, 0.2) (οτιδήποτε, 0.0)}) (Seizure_focus є {(frontal, 0.05), (οτιδήποτε, 0.0)}) (Seizure_severity є {(slight, 0.05), (intermediary, 0.05), (οτιδήποτε, 0.0)}) (EEG є {(c33, 0.3), (c34, 0.3), (b1-f, 0.3), (οτιδήποτε, 0.0)}) (Age є {(3, 0.03), (4, 0.05), (5, 0.05), (6, 0.05), (7, 0.05), (8, 0.05), (9, 0.03)}) (Lab_findings є {(normal, 0.05), (οτιδήποτε, 0.0)}) (Vocalization є {(yes, 0.3)}) then Epilepsy_type = 1.1.E Η ερµηνεία του παραπάνω κανόνα χρησιµοποιώντας τον κλασικό τρόπο παράστασης µε τους τελεστές and ( ), or ( ) και not ( ) είναι η εξής: Epilepsy_type_1.1.E ΠΒ ((Seizure_type = ia1) ΠΒ=0.2 (Seizure_type = ic) ΠΒ=0.2 (Seizure_type = ib1b) ΠΒ=0.2 (Seizure_type = οτιδήποτε) ΠΒ=0.0 ) ((Seizure_focus = frontal) ΠΒ=0.05 ((S_Focus = οτιδήποτε) ΠΒ=0.0 ) ((Seizure_severity = slight) ΠΒ=0.05 (Seizure_severity = intermediary) ΠΒ=0.05 (Seizure_severity = οτιδήποτε) ΠΒ=0.0 ) ((EEG = c33) ΠΒ=0.3 (EEG = c34) ΠΒ=0.3 (EEG = b1-f) ΠΒ=0.3 (EEG = οτιδήποτε) ΠΒ=0.0 ) (((Age 4) (Age 8) ΠΒ=0.05 ) ((Age 3) (Age 9) ΠΒ=0.03 )) ((Lab_findings = normal) ΠΒ=0.05 (Lab_findings = οτιδήποτε) ΠΒ=0.0 ) ((Vocalization = yes) ΠΒ=0.3 ) Το σχήµα 3.1 παριστά γραφικά τον παραπάνω κανόνα. Seizure Type Seizure Focus Seizure Severity EEG Type IA1 Temp Slight C29 and Pariet and and and IF IC Front Inter Other Other Other C30 Age Lab Findings and 4 A 8 and Normal and Vocalization Yes THEN epilepsy 1.1.E 1 A 11 Other Σχήµα 3.1 Γραφική παράσταση του κανόνα για τύπο επιληψίας 1.1.Ε 11
Η µετάφραση του σχήµατος 3.1 σαν IF THEN κανόνας γίνεται ως εξής: Η λέξη IF ακολουθείται από την προϋπόθεση του κανόνα και η λέξη THEN ακολουθείται από το συµπέρασµα του κανόνα. Η προϋπόθεση του κανόνα (µετά το IF και πριν το THEN) αποτελείται από πλαίσια τα οποία συνδέονται µεταξύ τους µε and συνδέσµους. Τα στοιχεία της Βάσης Γνώσεων που είναι µέσα σε κάθε πλαίσιο µε τη διακεκοµµένη γραµµή συνδέονται µε or συνδέσµους. Όταν έχουµε or συνδέσµους θα πρέπει τουλάχιστον ένα από τα δεδοµένα να ικανοποιείται για να είναι επιτυχής ο κανόνας. Ενώ όταν έχουµε and συνδέσµους θα πρέπει όλα τα δεδοµένα να ικανοποιούνται για να είναι επιτυχής ο κανόνας. 3.1 Υλοποίηση της Βάσης Γνώσεων σε Prolog Η υλοποίηση της αναπαράστασης των κανόνων του συστήµατος σε Prolog γίνεται ως εξής: Για κάθε κανόνα του συστήµατος υπάρχει ένα Prolog γεγονός µε τα δεδοµένα του κανόνα που παριστάνεται από πρόταση του κατηγορήµατος data_rule/29 και ένας Prolog κανόνας που παριστάνεται από πρόταση του κατηγορήµατος epitype/1. Μεταφραστής Βάσης Γνώσεων του συστήµατος 1 2 Βάση Γεγονότων Βάση Κανόνων Σχήµα 3.2 Υλοποίηση Βάσης Γνώσεων σε Prolog Ο µεταφραστής της Βάσης Γνώσεων του συστήµατος, τµήµα 3 Σχήµα 3.2, για κάθε Κανόνα της Βάσης Γνώσεων, τµήµα 2 Σχήµα 3.2, βρίσκει τα αντίστοιχα δεδοµένα από τη Βάση Γεγονότων, τµήµα 1 Σχήµα 3.2, και σχηµατίζει τον κανόνα, ο οποίος και χρησιµοποιείται για την διάγνωση. Περιγραφικά αυτή η σχέση φαίνεται στο Σχήµα 3.2. Η γενική µορφή των γεγονότων της Βάσης Γνώσεων του συστήµατος, Prolog κατηγόρηµα data_rule/29, είναι η παρακάτω. Το σύµβολο. σηµαίνει εδοµένα της Βάσης Κανόνων ενώ το σύµβολο Π.Β. σηµαίνει Παράγοντας Βεβαιότητας του αντίστοιχου δεδοµένου της Βάσης Κανόνων. data_rule (Epilepsy Type, [[. Seizure_type], [Π.Β. Seizure_type]], [[. Seizure_focus], [Π.Β. Seizure_focus]], [[. Seizure_severity], [Π.Β. Seizure_severity]], [[. EEG], [Π.Β. EEG]], 12
[[. Age], [Π.Β. Age]], [[. Pregnancy_status], [Π.Β. Pregnancy_status]], [[. Delivery_status], [Π.Β. Delivery_status]], [[. Family_inheritance], [Π.Β. Family_inheritance]], [[. School_performance], [Π.Β. School_performance]], [[. Lab_findings], [Π.Β. Lab_findings]], [[. Behavior], [Π.Β. Behavior]], [[. Neurological_estimation], [Π.Β. Neurological_estimation]], [[. Phychomoto_development], [Π.Β. Phychomoto_development]], [[. Lab_Focal], [Π.Β. Lab_Focal]], [[(yes/no) Vocalization], [Π.Β. Vocalization]], [[. Seizures_Per_Day], [Π.Β. Seizures_Per_Day]], [[(yes/no) Seizure_During_Sleep], [Π.Β. Seizure_During_Sleep]], [[(yes/no) Seizure_After_Sleep], [Π.Β. Seizure_After_Sleep]], [[(yes/no) Seizure_Fever], [Π.Β. Seizure_Fever]], [[(yes/no) Metavolic_Symptoms], [Π.Β. Metavolic_Symptoms]], [[(yes/no) Toxic_Poisoning], [Π.Β. Toxic_Poisoning]], [[(yes/no) Head_Injury], [Π.Β. Head_Injury]], [[(yes/no) Neurous_System_Disease], [Π.Β. Neurous_System_Disease]], [[(yes/no) NOT_Neurous_System_Disease], [Π.Β. NOT_Neurous_System_Disease]], [[(yes/no) Acquired_Aphasia], [Π.Β. Acquired_Aphasia]], [[(yes/no) Primary_Visual_Ictal_Seizure], [Π.Β. Primary_Visual_Ictal_Seizure]], [[(yes/no) Speech_Problems], [Π.Β. Speech_Problems]], [[(yes/no) Behavior_Problems_During_Seizure], [Π.Β. Behavior_Problems_During_Seizure]]. Για παράδειγµα, για τον τύπο επιληψίας 1.1.E του πίνακα 3.1 το γεγονός data_rule/29 είναι το εξής: data_rule (1.1.E, [[ia1, ic, ib1b], [0.2, 0.2, 0.2]], [[frontal], [0.05]], [[slight, intermediary], [0.05, 0.05]], [[c33, c34, b1-f], [0.3, 0.3, 0.3]], [(4, 8), 0.05], [[. Pregnancy_status], [Π.Β. Pregnancy_status]], [[. Delivery_status], [Π.Β. Delivery_status]], [[. Family_inheritance], [Π.Β. Family_inheritance]], [[. School_performance], [Π.Β. School_performance]], [[normal], [0.05]], [[. Behavior], [Π.Β. Behavior]], [[. Neurological_estimation], [Π.Β. Neurological_estimation]], [[. Phychomoto_development], [Π.Β. Phychomoto_development]], [[. Lab_Focal], [Π.Β. Lab_Focal]], [[yes], [0.3]], [(0, 0)], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]], 13
[[no], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]], [[no], [0.0]]). Τα διαγνωστικά κριτήρια του πίνακα 3.1 από Vocalization µέχρι και Behavior_Problems_During_Seizure είναι κάποια επιπρόσθετα στοιχεία που αναφέρονται στην κατάσταση του ασθενούς. Αυτά περνούν τιµές yes ή no (µε εξαίρεση τα Seizures_Per_Day_Min και Seizures_Per_Day_Max που παίρνουν αριθµητικές τιµές), ανάλογα, αν ο ασθενής παρουσιάζει την συγκεκριµένη µορφή ασθένειας. Για κάθε τύπο επιληψίας υπάρχει µια πρόταση (clause) του κατηγορήµατος epitype/1 η οποία µεταφράζει τα δεδοµένα του αντίστοιχου τύπου επιληψίας σύµφωνα µε την περιγραφή που δώσαµε παραπάνω. ηλαδή, µεταφράζει τα δεδοµένα που παριστάνονται από το αντίστοιχο γεγονός του κατηγορήµατος, data_rule/29. Η πρόταση του κατηγορήµατος epitype/1 περιλαµβάνεται στη Βάση Κανόνων. Η µορφή των προτάσεων του κατηγορήµατος epitype είναι η εξής: epitype (Epilepsy_type):- member ((Seizure_type_patient, _), [Seizure_type_elements]), member ((Seizure_focus_patient, _), [Seizure_focus_elements]), member ((Seizure_severity_patient, _), [Seizure_severity_elements]), member ((EEG_type_patient, _), [EEG_type_elements]), member ((Age_patient, _), [Age_elements]), member ((Pergnancy_status_patient, _), [Pergnancy_status_elements]), member ((Delivery_status_patient, _), [Delivery_status_elements]), member ((Family_inheritance_patient, _), [Family_inheritance_elements]), member ((School_performance_patient, _), [School_performance_elements]), member ((Lab_findings_patient, _), [Lab_findings_elements]), member ((Behavior_patient, _), [Behavior_elements]), member ((Neurological_estimation_patient, _), [Neurological_estimation_elements]), member ((Phychomoto_development_patient, _), [Phychomoto_development_elements]), member ((Lab_focal_patient, _), [Lab_focal_elements]), ((Vocalization_patient, _), (Vocalization_elements)), ((Seizures_Per_Day_patient, _), (Seizures_Per_Day_elements)), ((Seizure_During_Sleep_patient, _), (Seizure_During_Sleep_elements)), ((Seizure_After_Sleep_patient, _), (Seizure_After_Sleep_elements)), ((Seizure_Fever_patient, _), (Seizure_Fever_elements), ((Metavolic_Symptoms_patient, _), (Metavolic_Symptoms_elements), ((Toxic_Poisoning_patient, _), (Toxic_Poisoning_elements), ((Head_Injury_patient, _), (Head_Injury_elements), ((Neurous_System_Disease_patient, _), (Neurous_System_Disease_elements), ((NOT_Neurous_System_Disease_patient, _), (NOT_Neurous_System_Disease_elements), ((Acquired_Aphasia_patient, _), (Acquired_Aphasia_elements), ((Primary_Visual_Ictal_Seizure_patient, _), (Primary_Visual_Ictal_Seizure_elements), ((Speech_Problems_patient, _), (Speech_Problems_elements), ((Behavior_Problems_During_Seizure_patient, (Behavior_Problems_During_Seizure_elements)). _), 14
Όπου τα στοιχεία των λιστών (Seizure_type_elements,, Behavior_Problems_During_Seizure_elements) είναι ζεύγη της µορφής (τιµή, παράγοντας_βεβαιότητας). Για παράδειγµα, για τον τύπο επιληψίας 1.1.E η αντίστοιχη πρόταση του κατηγορήµατος epitype/1 είναι η εξής: epitype (1.1.E):- member ((Seizure_type_patient, _), [(ia1, 0.2), (ic, 0.2), (ib1b, 0.2), (anything_else, 0.0)]), member ((Seizure_focus_patient, _), [(frontal, 0.05), (anything_else, 0.0)]), member ((Seizure_severity_patient, _), [(slight, 0.05),(intermediary, 0.05), (anything_else, 0.0)]), member ((EEG_type_patient, _), [(c33, 0.3), (c34, 0.3), (b1-f, 0.3), (anything_else, 0.0)]), member ((Age_patient, _), [(3, 0.03), (4, 0.05), (5, 0.05), (6, 0.05), (7, 0.05), (8, 0.05), (9, 0.03)]), member ((Lab_findings_patient, _), [(normal, 0.05), (anything_else, 0.0)]), member ((Vocalization_patient, _), [(yes, 0.3)]). Το σύστηµα επιλέγει κάποιο κανόνα από τη Βάση Γνώσεων µε βάση τα ιατρικά δεδοµένα του ασθενούς (συµπτώµατα και αποτελέσµατα ιατρικών εξετάσεων). 3.2 Ασαφής Γνώση - Παράγοντες Βεβαιότητας Σε πολλές περιπτώσεις όταν κατασκευάζεται κάποιο έµπειρο σύστηµα υπάρχει η ανάγκη να λαµβάνονται αποφάσεις έχοντας ατελή πληροφορίες, είτε επειδή αυτές δεν είναι διαθέσιµες ή επειδή απλά δεν χρειάζονται. Για τον λόγο αυτό οι µη ακριβείς τεχνικές λήψης αποφάσεων έχουν µεγάλη πρακτική αξία. Ένα έµπειρο σύστηµα θα πρέπει να είναι ευέλικτο για να µπορεί να αντιµετωπίσει προβλήµατα έλλειψης πληροφοριών. Αβεβαιότητα είναι η έλλειψη ακριβούς πληροφορίας και οι κυριότερες πήγες αβεβαιότητας που παρουσιάζονται κατά την επίλυση προβληµάτων είναι τα ανακριβή δεδοµένα, τα ελλιπή δεδοµένα, οι ελλείψεις στην περιγραφή της γνώσης και γενικά κάθε είδους περιορισµοί που κάνουν το όλο σύστηµα ατελές. Για να αντιµετωπιστούν αυτά τα προβλήµατα χρησιµοποιούνται τεχνικές για το χειρισµό της αβεβαιότητας, όπως οι συντελεστές βεβαιότητας (certainty factors) και η ασαφής λογική (fuzzy logic). Η ασαφής λογική και η θεωρία βεβαιότητας παριστούν την αβεβαιότητα σαν βαθµό πίστης για την αλήθεια ενός γεγονότος ή ενός κανόνα. Οι συντελεστές βεβαιότητας ή παράγοντες βεβαιότητας (Certainty Factors - CF) είναι αριθµητικές τιµές που εκφράζουν τη βεβαιότητα για την αλήθεια µιας πρότασης ή γεγονότος. Τέτοιου είδους κανόνες έχουν την εξής γενική µορφή: if γεγονός then υποθετικό συµπέρασµα µε βεβαιότητα CF ηλαδή, αν ισχύει το γεγονός τότε είµαστε βέβαιοι για το υποθετικό συµπέρασµα σε βαθµό CF. Οι συντελεστές βεβαιότητας, για το έµπειρο σύστηµα διάγνωσης παιδικής επιληψίας, παίρνουν τιµές στο διάστηµα [0,1] ή [0 %, 100 %]. Η τιµή 0 εκφράζει µη βεβαιότητα (ή µη αλήθεια) για την πρόταση. Αντίθετα, η τιµή 1 εκφράζει την απόλυτη βεβαιότητα ότι η πρόταση είναι αληθής. Για παράδειγµα, αν ο τύπος επιληψίας, κατά την ανάλυση των στοιχείων ενός ασθενούς, είναι ο 1.1.E µε παράγοντα βεβαιότητας 0.8 (βεβαιότητα 80 %)τότε ισχύει ο εξής κανόνας: if στοιχεία_ ασθενούς then epilepsy_1.1.e CF 0.8 Το σύστηµα για την διάγνωσης της παιδικής επιληψίας επιστρέφει στον χρήστη µια λίστα από πιθανούς τύπους επιληψίας. Κάθε τύπος επιληψίας συνοδεύεται από τον παράγοντα βεβαιότητας του. Μεγάλη τιµή του παράγοντα βεβαιότητας σηµαίνει µεγάλο βαθµό πίστης για την ισχύ (αλήθεια) αυτού του τύπου επιληψίας. 15
Η βεβαιότητα που συνοδεύει τον κανόνα προκύπτει από τις τιµές βεβαιότητας των τιµών των διαγνωστικών κριτηρίων του κανόνα. Ο τελικός παράγοντας βεβαιότητας του συστήµατος διάγνωσης παιδικής επιληψίας είναι το άθροισµα των επιµέρους παραγόντων βεβαιότητας κάθε διαγνωστικού κριτηρίου του κανόνα. Για παράδειγµα, αν ο ασθενής παρουσιάζει Τύπο Κρίσης ia1 (Seizure Type: IA1) και Τύπο Ηλεκτροεγκεφαλογραφήµατος c29 (EEG Type: C29) τότε θα έχει τύπο επιληψίας τον 1.1.E µε βεβαιότητα 0.8 και θα ισχύει ο εξής κανόνας: if Seizure_type: ia1 CF 1 0.1 AND EEG: c29 CF 2 0.7 then epilepsy_1.1.e CF 0.8 Ο παράγοντας βεβαιότητας κάθε στοιχείου συµβάλλει αθροιστικά στον τελικό παράγοντα βεβαιότητας του συµπεράσµατος του κανόνα. Η γενική µορφή του κανόνα είναι: Epilepsy_type = Value_ET CF (Seizure_type = Value_ST) CF1 (Seizure_focus = Value_SF) CF2 (Seizure_severity = Value_SS) CF3 (EEG_type = Value_EEG) CF4 (Age = Value_Age) CF5 (Pregnancy_status = Value_PS) CF6 (Delivery_status = Value_DS) CF7 (Family_inheritance = Value_FI) CF8 (School_perfornmance = Value_SP) CF9 (Lab_findings = Value_LF) CF10 (Behavior = Value_B) CF11 (Neurological_estimation = Value_NE) CF12 (Phychomoto_development = Value_PD) CF13 (Lab_focal = Value_LFoc) CF14 (Vocalization = Value_Voc) CF15 (Seizures_per_day = Value_SPD) CF16 (Seizure_during_sleep = Value_SDS) CF17 (Seizure_after_sleep =Value_SAS) CF18 (Fever_in_seizure = Value_FIS) CF19 (Metabolic_symptoms = Value_MS) CF20 (Toxic_poisoning = Value_TP) CF21 (Head_injury = Value_HI) CF22 (Nervous_system_disease = Value_NSD) CF23 (NOT_Nervous_system_disease = Value_NNSD) CF24 (Acquired_aphasia = Value_AA) CF25 (Primary_visual_ictal_seizure = Value_PVIS) CF26 (Speech_problems = Value_SP) CF27 (Behavior_problems_during_seizure = Value_BPDS) CF28 Ο τελικός παράγοντας βεβαιότητας της διάγνωσης θα είναι ο εξής: CF = CF 1 + CF 2 + CF 3 + + CF 28 16
Το άθροισµα όλων των παραγόντων βεβαιότητας δεν υπερβαίνει την µονάδα, CF 1 +CF 2 + + CF n 1. Αυτοί οι παράγοντες βεβαιότητας είναι οι εκτιµήσεις των εµπειρογνωµόνων γιατρών για την συνεισφορά κάθε διαγνωστικού κριτηρίου (ιατρικού ευρήµατος) στην τελική διάγνωση. Παράδειγµα: Ο χρήστης εφαρµογής εισάγει στο σύστηµα τα παρακάτω δεδοµένα: Τύπος Κρίσης (Seizure Type) Τύπος Εστίασης (Seizure Focus) Σφοδρότητα Κρίσης (Seizure Severity) Ηλεκτροεγκεφαλογράφηµα (EEG Type) ia1 frontal don t know b1-f Ηλικία (Age) 7 Κληρονοµικότητα (Family Inheritance) Εργαστηριακά Ευρήµατα (Lab Findings) Εκφορά Ήχου κατά την κρίση (Vocalization) suspicious suspicious yes Πίνακας 3.2 Παράδειγµα εύρεσης παράγοντα βεβαιότητας. Το σύστηµα µετά από επεξεργασία των δεδοµένων του πίνακα 3.2 καταλήγει στο συµπέρασµα ότι ένας από τους πιθανούς τύπους επιληψίας είναι ο 1.1.Ε. Η διαδικασία που ακολουθεί το σύστηµα για τον υπολογισµό του παράγοντα βεβαιότητας διάγνωσης είναι η παρακάτω: 1. Το σύστηµα εκτελεί τον παρακάτω Prolog κανόνα, κατηγόρηµα epitype/1, από τη Βάση Γεγονότων: epitype (1.1.E): - member ((Seizure_type_patient = ia1, ΠΒ 1 ), [(ia1, 0.2), (ic, 0.2), (ib1b, 0.2), (anything_else, 0.0)]), member ((Seizure_focus_patient = frontal, ΠΒ 2 ), member ((Seizure_severity_patient = don t know, ΠΒ 3 ), member ((EEG_type_patient = b1-f, ΠΒ 4 ), member ((Age_patient = 7, ΠΒ 5 ), [(frontal, 0.05), (anything_else, 0.0)]), [(slight, 0.05), (intermediary, 0.05), (anything_else, 0.0)]), [(c33, 0.3), (c34, 0.3), (b1-f, 0.3), (anything_else, 0.0)]), [(3, 0.03), (4, 0.05), (5, 0.05), (6, 0.05), (7, 0.05), (8, 0.05), (9, 0.03)]), member ((Lab_findings_patient = suspicious, ΠΒ 6 ), member ((Vocalization_patient = yes, ΠΒ 7 ), [(yes, 0.3)]). [(normal, 0.05), (anything_else, 0.0)]), Σηµείωση: Το κατηγόρηµα member/1 της Prolog ταυτοποιεί την µεταβλητή ΠΒ 1 µε την τιµή 0.2, την µεταβλητή ΠΒ 2 µε την τιµή 0.05 και ούτω καθεξής. 2. Υπολογίζετε ο τελικός παράγοντας βεβαιότητας του κανόνα από τη σχέση: ΠΒ διάγνωσης = ΠΒ 1 + ΠΒ 2 + ΠΒ 3 + ΠΒ 4 + ΠΒ 5 + ΠΒ 6 + ΠΒ 7 Αυτός έχει την παρακάτω τιµή: ΠΒ διάγνωσης = 0.2 (ΠΒ1) + 0.05 (ΠΒ2) + 0.0 (ΠΒ3) + 0.3 (ΠΒ4) + 0.05 (ΠΒ5) + 0.0 (ΠΒ6) + 0.3 (ΠΒ7) = 0.9 (ΠΒ διάγνωσης ) 17
Από το παραπάνω κατηγόρηµα συµπεραίνουµε ότι ο τύπος επιληψίας 1.1.Ε µπορεί να ισχύει µε βεβαιότητα 0.9 ή 90%. Αυτό σηµαίνει ότι είµαστε σχεδόν σίγουροι για την ορθότητα του αποτελέσµατος του συστήµατος. Οι λόγοι για τους οποίους επιλέξαµε να χρησιµοποιήσουµε παράγοντες βεβαιότητας στους κανόνες µας είναι οι εξής: 1. Ο εµπειρογνώµονας γιατρός χρησιµοποίησε αυτό τον τρόπο για να κάνει την διάγνωση. Ουσιαστικά το σύστηµα προσοµοιώνει τον τρόπο διάγνωσης του γιατρού εµπειρογνώµονα. 2. Το δείγµα των δεδοµένων µας δεν ήταν επαρκές για να χρησιµοποιήσουµε κάποια άλλη µέθοδο. 18