Σελίδες

Παρασκευή 13 Φεβρουαρίου 2015

PomLex Editor – Από την προφορική παράδοση στην ψηφιακή πραγματικότητα

Σε προηγούμενη ανάρτησή μου είχα υποσχεθεί ( το έχω αυτό το «ελάττωμα» και τις υποσχέσεις μου συνήθως δεν τις ξεχνώ έτσι εύκολα ) να παρουσιάσω μια δοκιμαστική έκδοση ενός απλούστατου επεξεργαστή κειμένου με δυνατότητα ορθογραφικού ελέγχου σε απλό πομακικό κείμενο και αυτό θα επιχειρήσω να κάνω εν συντομία σ’ αυτή τη δημοσίεση.

Βασικά πρόκειται για μια 32-μπιτη desktop εφαρμογή για Windows, η οποία μπορεί να τρέξει ως τέτοια και σε 64-μπιτο περιβάλλον (την 64-μπιτη αρχιτεκτονική πολλοί ειδήμονες δεν τη θεωρούν και πανάκεια για όλες τις εφαρμογές).


Ο πυρήνας της αποτελείται από  το γνωστό Scintilla ( ένα δωρεάν open source λογισμικό για την επεξεργασία πηγαίου κώδικα που απευθύνεται σε και χρησιμοποιείται από προγραμματιστές κυρίως ), το οποίο εσωτερικά χρησιμοποιεί κωδικοποιήση UTF-8, ενώ το «περίβλημα» MFC (wrapper) βασίζεται σε μια αντίστοιχη προσαρμογή - μεταφορά του για περιβάλλον Windows.  Κάποια μοναδικά χαρακτηριστικά του δε ήταν και τα κριτήρια αυτά που συνέτειναν στην επιλογή του ( Όσο κι αν παιδεύτηκα με τα στοιχεία ελέγχου CEdit και CRichEditCtrl της Microsoft ήταν αδύνατη η επίτευξη του επιθυμητού αποτελέσματος ).


Μιλάμε, βεβαίως, για μια «πειραγμένη» έκδοση του Scintilla, καθώς η πρωτότυπη όχι μόνο τα Πομακικά, αλλά ούτε και τα Ελληνικά δεν υποστήριζε καλά καλά.  Γενικά ήταν «εχθρική» σε οτιδήποτε πέραν του συνόλου χαρακτήρων ASCII και αυτό δημιουργούσε διάφορα προβλήματα.  Έπρεπε επομένως να ανασκουμπωθώ και να εντοπίσω τα σημεία – κλειδιά για να μπρέσω να κάνω τα «μαγικά» μου.  Αυτή είναι η «ομορφιά» του λογισμικού ανοιχτού κώδικα.  Δεν δικαιούμαι, δυστυχώς, να σας δείξω κάποια από τα «μαγικά» αυτά  «κόλπα», γιατί το απαγορεύει η άδεια χρήσης του λογισμικού.


Οποιοδήποτε λογισμικό επεξεργασίας κειμένου, τώρα, για να μπορεί να κάνει ακόμα και στοιχειώδη ορθογραφικό έλεγχο χρειάζεται ένα κατάλληλο λεξικό απ’ όπου μπορεί να αντλεί και να επεξεργάζεται τις διάφορες πληροφορίες.  Ένα τέτοιο λεξικό μπορεί να είναι από μια απλή λίστα λέξεων σε μορφή κειμένου έως και πολύ σύνθετες και πολύπλοκες δομές δεδομένων, όπως αυτή ενός ternary dag, για την οποία δεν χρειάζεται να γράψω κάτι παραπάνω απ’ αυτά που έχω γράψει ήδη.


Επειδή όμως η σύνταξη ενός  καλού και αξιόπιστου λεξικού με αρκετές εκατοντάδες χιλιάδες  τύπους λέξεων (με το ενδεχόμενο ο αριθμός αυτός να υπερβεί ακόμα και το ένα εκατομμύριο – ο ακριβής προσδιορισμός σ’ αυτή τη φάση είναι αδύνατος), με τη φιλοδοξία, μάλιστα, σ’ αυτό να ενσωματωθεί το σύνολο των γραμματικών πληροφοριών για τη δυνατότητα και γραμματικού ελέγχου στο μέλλον,  απαιτεί αρκετό χρόνο και απίστευτες υπερβάσεις, θεώρησα ότι το τεστάρισμα της εφαρμογής θα μπορούσε να γίνει και με άλλη γλώσσα, όπως π.χ. η Ελληνική.


Για να τεθεί σε εφαρμογή το σχέδιο, αυτό που χρειαζόταν ήταν μια αρκετά πλούσια και αξιόπιστη λίστα ελληνικών λέξεων.  Έπρεπε να βγω, λοιπόν, στη γύρα προς αναζήτηση μιας τέτοιας λίστας.  Αυτή τη φορά στάθηκα πιο τυχερός.  Με μια ολιγόλεπτη περιήγηση στο διαδίκτυο έπεσα πάνω στο ελληνικό λεξικό του OpenOffice που έχουν κατασκευάσει άνθρωποι του  Πανεπιστημίου Πατρών και το οποίο περιλαμβάνει περί τις 600.000 τύπους λέξεων.  Πολύ αξιόλογη προσπάθεια, παρά τις ελλείψεις.  Από τη στιγμή που είχε βρεθεί η λίστα με τις λέξεις, ήταν ζήτημα μερικών κλικ για να μετατραπεί στην επιθυμητή μορφή, έναν Κατευθυνόμενο Ακυκλικό Γράφο ( Directed Acyclic Graph ), και να μπορεί να «συνεργαστεί» με την εφαρμογή μας.


Το δεύτερο στοιχείο που χρειαζόταν ήταν οι κώδικες (οδηγίες) συλλαβισμού της Ελληνικής.  Ένα τέτοιο αρχείο παρέχει, επίσης , η παραπάνω ιστοσελίδα του Πανεπιστημίου Πατρών.  Το αποτέλεσμα όμως που παράγει, έτσι όπως το είδα στην οθόνη του υπολογιστή, δεν μου άρεσε ιδιαίτερα.  Οπότε αποφάσισα να δημιουργήσω πρόχειρα ένα δικό μου αρχείο με οδηγίες συλλαβισμού, όπως τις θυμάμαι από τα μαθητικά μου χρόνια, με αρκετές ελλείψεις.  Έτσι κι αλλιώς είναι για δοκιμαστική χρήση μόνο.  Το αρχείο είναι σε απλή μορφή κειμένου και μπορεί κανείς να το κάνει ό,τι θέλει.


Ένα τρίτο και τελευταίο στοιχείο απαραίτητο για την επίδειξη ήταν οι οδηγίες ταξινόμησης.  Εδώ όμως τα πράγματα σε ό,τι αφορά την Ελληνική ήταν αρκετά εύκολα, καθώς η βιβλιοθήκη ICU είναι αρκετά «έξυπνη» ώστε να χρησιμοποιεί τις προεπιλεγμένες τοπικές ρυθμίσεις του υπολογιστή για να δώσει το επιθυμητό αποτέλεσμα.


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


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


Κάποια μικροζητήματα σε ό,τι αφορά τη χρήση της εφαρμογής με τα Ελληνικά δεν έχουν επιλυθεί ακόμα.  Εκτός αυτού όμως και η ύπαρξη κάποιων δυσλειτουργιών (bugs) δεν αποκλείεται.  Αυτό το νόημα έχει, εξάλλου, μια δοκιμαστική έκδοση του όποιου λογισμικού και το τεστάρισμά του.


Παρακάτω ακολουθούν κάποιες εικόνες για να πάρετε μια πρώτη γεύση προτού αποφασίσετε να κατεβάσετε την εφαρμογή στον υπολογιστή σας.


Οι όποιες παρατηρήσεις και υποδείξεις θα ήταν ιδιαίτερα χρήσιμες για τη βελτίωση της εφαρμογής.  Μη διστάσετε να κάνετε ερωτήσεις.



Το κεντρικό παράθυρο της εφαρμογής ( MFC Single Document Document / View architecture )

Παράθυρο διαλόγου ορθογραφικού ελέγχου



Παράθυρο διαλόγου με τις επιλογές εύρεσης / αντικατάστασης κειμένου


Παράθυρο διαλόγου με τις επιλογές συλλαβισμού


Παράθυρο διαλόγου με κάποιες πληροφορίες για το κείμενο


Παράθυρο διαλόγου ρυθμίσεων


Επιλογές χρωμάτων διαφόρων στοιχείων - λειτουργιών


Υπόδειξη – υπογράμμιση ορθογραφικών λαθών


Λειτουργίες επεξεργασίας – διόρθωσης με το δεξί κλικ


Λειτουργία αύξουσας – φθίνουσας ταξινόμησης


Δυνατότητα εκτύπωσης

Η εφαρμογή για να τρέξει χρειάζεται κάποιες βιβλιοθήκες (αρχεία .dll) της Microsoft.  Σε περίπτωση που αυτές δεν υπάρχουν εγκατεστημένες στον υπολογιστή σας, το λειτουργικό σας θα σας "ενημερώσει" για το τί ακριβώς χρειάζεται.  Αν χρειαστεί να τις κατεβάσετε από το internet, αυτές μπορούν να τοποθετητούν (με απλή αντιγραφή) στον υπολογιστή σας ως εξής: α) στον ίδιο φάκελο που έχετε αντιγράψει την εφαρμογή PomLex (εφ' όσον δεν θα τις χρειαστούν και άλλες εφαρμογές) β) στον φάκελο συστήματος του λειτουργικού (αυτός συνήθως είναι ο "System32" σε 32-bit λειτουργικό) και γ) οπουδήποτε στο σκληρό δίσκο, εφ' όσον έχει οριστεί η διαδρομή τους στη μεταβλητή συστήματος "Path".

Την εφαρμογή μπορείτε να την κατεβάσετε από εδώ
MD5 Checksum: 82bb8048ca69bc921210279f6f9583ad

Σας εύχομαι καλές δοκιμές

Ριτβάν