ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Hunspell: Προδιαγραφές

Β. Προδιαγραφές
B. 1. Τεχνικές προδιαγραφές

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

Χαρακτηριστικά τής υποδομής λειτουργίας τού ΠΣ:

  • Ανάπτυξη με εργαλεία ανοιχτού λογισμικού τα οποία είναι ευρέως διαδεδομένα και δεν έχουν περιοριστικούς όρους χρήσης και διάθεσης.
  • Λειτουργία σε διακομιστές ανοιχτού λογισμικού, βασισμένων σε Linux.
  • Περιβάλλον εργασίας στο web (μέσω browser). Όλες οι οθόνες, χειριστών, στελεχών, διαχειριστή θα είναι σε web περιβάλλον.
  • Υποστήριξη όλων των γνωστών φυλλομετρητών (όπως Internet Explorer, Firefox, Safari, Chrome κ.ο.κ.).
  • Διασφάλιση της ακεραιότητας των δεδομένων και προστασία των ευαίσθητων προσωπικών δεδομένων.

Β. 2. Λειτουργικές προδιαγραφές

  • Διαχείριση χρηστών. Το ΠΣ παρέχει τη δυνατότητα εγγραφής χρηστών. Ο χρήστης δημιουργεί ένα λογαριασμό, διαμορφώνει το προφίλ με βασικά στοιχεία επικοινωνίας και συνδέεται με όνομα και κωδικό τής επιλογής του.
  • Διαβάθμιση χρηστών. Ένας χρήστης μπορεί να είναι απλός χρήστης ή διαχειριστής τού ΠΣ.
  • Καταγραφή συνεισφοράς. Όταν ένας συνδεδεμένος χρήστης συνεισφέρει με κάποιον τρόπο στο έργο, η συνεισφορά του καταγράφεται στο ημερολόγιο τού ΠΣ. Η συνεισφορά μη συνδεδεμένων χρηστών καταγράφεται με τη διεύθυνση ΙΡ με την οποία συνδέθηκαν.
  • Ρύθμιση αποδοχής συνεισφορών. Το ΠΣ δίνει τη δυνατότητα επιλογής από το Διαχειριστή να επιτρέπει ή να αποτρέπει τη συνεισφορά από μη εγγεγραμμένους χρήστες.
  • Αναζήτηση λέξης στο ορθογραφικό λεξικό ή στο Θησαυρό. Ο χρήστης πληκτρολογεί μία λέξη ή ρίζα λέξης και το ΠΣ επιστρέφει τη λίστα των καταχωρημένων λέξεων στο λεξικό ορθογραφίας και στο θησαυρό, που ταιριάζουν με τη ζητούμενη. Έτσι, οι χρήστες μπορούν να βλέπουν εάν μία λέξη ή τύπος της είναι ήδη καταχωρημένη.
  • Προτάσεις καταχώρησης νέων λέξεων στο ορθογραφικό λεξικό. Ο χρήστης πληκτρολογεί μία λέξη και την υποβάλλει για έλεγχο και περιβολή στη βάση δεδομένων.
  • Στην περίπτωση που ο χρήστης καταχωρεί μία ανεξάρτητη λέξη, αυτή καταχωρείται στη βάση δεδομένων σε κατάσταση “προς έγκριση”. Ένας διαχειριστής τού ΠΣ θα μπορέσει στη συνέχεια να την ελέγξει και να την εγκρίνει ή να την απορρίψει ως λανθασμένη επιλογή.Ο χρήστης μπορεί να υποβάλλει και δέσμη λέξεων, όχι μόνον μία προς μία. Αυτό γίνεται είτε με γραφή τους τη μία κάτω ή δίπλα από την άλλη, είτε επικολλώντας λέξεις από το Πρόχειρο είτε με την εισαγωγή τού περιεχομένου ενός αρχείου κειμένου.
  • Ανάπτυξη κλιτικού συστήματος λέξεων. Ο χρήστης υποβάλλει ένα θέμα λέξης, επιλέγει το μέρος τού λόγου (ουσιαστικό, επίθετο, ρήμα κ.λπ.) και το ανάλογο κλιτικό σύστημα (κλίνεται όπως…). Το ΠΣ αυτόματα αναπαραγάγει το κλιτικό σύστημα τής λέξης. Τα κλιτικά συστήματα που θα ακολουθηθούν είναι αυτά που καταγράφηκαν από το Ίδρυμα Τριανταφυλλίδη στην έκδοση τού ομώνυμου λεξικού τής νέας ελληνικής.
  • Ο χρήστης μπορεί να υποβάλλει δέσμη λέξεων και όχι μόνον μία, όπως παραπάνω. Βέβαια, κάθε λέξη σε μία δέσμη πρέπει να είναι τού ιδίου μέρους τού λόγου και να κλίνεται με τον ίδιο τρόπο.
  • Ο χρήστης βλέπει τις λέξεις και το κλιτικό σύστημα τής κάθε μίας για τυχόν λάθος επιλογές και αποφασίζει για καταχώρηση ή για αναίρεση και διορθώσεις. Καταχωρούμενες οι λέξεις που παράγονται αυτόματα από το ΠΣ με την ανάπτυξη τού κλιτικού τους συστήματος, συνδέονται μεταξύ τους ώστε να γνωρίζουμε ποιές είναι τύποι τού ίδιου θέματος λέξης. Ένας διαχειριστής τού ΠΣ θα μπορέσει στη συνέχεια να ελέγξει και να εγκρίνει ή να απορρίψει ως λανθασμένη την πρόταση.
  • Προτάσεις καταχώρησης νέων θεμάτων ή συνωνύμων στο Θησαυρό. Ο χρήστης πληκτρολογεί μία λέξη και συνώνυμα για αυτήν. Το ΠΣ ελέγχει εάν υπάρχει η λέξη καταχωρημένη στο Θησαυρό και εάν δεν υπάρχει την προσθέτει. Στη συνέχεια ελέγχει ένα ένα τα προτεινόμενα συνώνυμα και προσθέτει όσα δεν υπάρχουν και τα συνδέει με την προτεινόμενη λέξη. Ένας διαχειριστής τού ΠΣ θα μπορέσει στη συνέχεια να την ελέγξει και να την εγκρίνει ή να την απορρίψει ως λανθασμένη επιλογή.
  • Διόρθωση καταχωρημένων λέξεων. Όπως με την προσθήκη νέων λέξεων, οι χρήστες μπορούν να υποβάλλουν προτάσεις για επανέλεγχο ήδη καταχωρημένων λέξεων. Ο χρήστης γράφει μία λέξη και την αναζητά. Το σύστημα την εμφανίζει και ο χρήστης τη χαρακτηρίζει ως αμφισβητούμενη προσθέτοντας και τα σχόλιά του, που πιστεύει ότι είναι το λάθος, ώστε να ελεγχθεί από τους διαχειριστές.
  • Δημοσίευση σε κοινωνικά δίκτυα. Στο προφίλ τού χρήστη προβλέπεται σημαία που δείχνει εάν ο χρήστης επιθυμεί να γίνονται δημοσιεύσεις στη σελίδα του στο Facebook για τη συνεισφορά του. Η αρχική θέση αυτής τής σημαίας είναι ΟΝ.
  • Όταν μία συνεισφορά γίνεται από εγγεγραμμένο χρήση, και η σχετική σημαία στο προφίλ του είναι ΟΝ, το ΠΣ αυτόματα δημιουργεί μία δημοσίευση στη σελίδα τού χρήστη στο Facebook για αυτή τη συνεισφορά. Η μορφή και το μήνυμα τής δημοσίευσης θα συζητηθεί κατά την υλοποίηση.

Γ. Προδιαγραφές κανόνων Hunspell

Οι κανόνες που θα διαμορφωθούν πρέπει να αντιμετωπίζουν τουλάχιστον τα παρακάτω ζητήματα. Θα εκτιμηθεί θετικά η πρόταση επιπλέον περιπτώσεων που πρέπει να αντιμετωπιστούν.

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

Δ. Εξαγωγή για χρήση

Με βάση τις καταχωρημένες ενεργές λέξεις τού ορθογραφικού λεξικού και του Θησαυρού συνωνύμων, το ΠΣ δημιουργεί αυτόματα το αρχείο γλωσσικής υποστήριξης τής ελληνικής για το Hunspell και την προτείνει στο χρήστη για online λήψη. Ο χρήστης λαμβάνει το αρχείο και το εγκαθιστά στο λογισμικό που χρησιμοποιεί, π.χ. στο OpenOffice.org. Έτσι, ανά πάσα στιγμή μπορεί οποιοσδήποτε να λάβει και να εγκαταστήσει την τελευταία μορφή τής γλωσσικής υποστήριξης για τα ελληνικά.

Εισαγωγή
Βοηθητικές Επεκτάσεις
Προϋπολογισμός

9 Σχόλια
Oldest
Newest Most Voted
Inline Feedbacks
Δείτε όλα τα σχόλια
Dimitris D

Εδώ υπάρχει το τεράστιο πρόβλημα των λεξικών. Ελεύθερο μονοτονικό λεξικό δεν υπάρχει. Οι προσθήκες λέξεων θα παραβιάζουν το copyright όλων των λεξικών του εμπορίου.
Μία λύση θα ήταν να ζητήσετε από τον Μπαμπινιώτη ή κάποιον άλλο να σας δώσει άδεια χρήσης του λεξικού του.
Μία καλύτερη λύση θα ήταν να το γυρνούσαμε στο πολυτονικό. Υπάρχουν πολλά λεξικά(openarchive,google) με ληγμένα copyright.

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

Nick Demou

> Ελεύθερο μονοτονικό λεξικό δεν υπάρχει.

υπάρχει[1] με τις εξείς άδειες MPL 1.1/GPL 2.0/LGPL
2.1 [2]

> Οι προσθήκες λέξεων θα παραβιάζουν το copyright όλων των λεξικών του εμπορίου

τι εννοείς? Είμαι σχεδόν σίγουρος [3] πως δεν υπάρχει copyright για την κάθε λέξη ξεχωριστά.

____________
[1] http://elspell.math.upatras.gr/
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=343142#c34
[3] προσοχή δεν είμαι δικηγόρος — από την άλλη έχω διαβάσει ότι σχετικό νόμο βρήκα στο internet

Alexios Zavras (zvr)

Βρίσκω λίγο “επικίνδυνο” το ανά πάσα στιγμή να γίνεται export η τελευταία κατάσταση.

Δηλαδή με ξενίζει που δεν υπάρχει release process, κάποιος να λέει “μέχρι εδώ καλά, version 2011-04-05”.

Φοβάμαι ότι έτσι θα καταλήξουμε να έχει ο καθένας άλλα data στον (κάθε) υπολογιστή του, κι άντε μετά να προσπαθήσεις να βρεις που είναι το πρόβλημα.

Alexios Zavras (zvr)

Επίσης ο όρος “διαχειριστής του ΠΣ” δεν αποδίδει σωστά το ρόλο του “εκδότη” (editor), δηλ. αυτού που κάνει το editing process:
οι χρήστες υποβάλλουν, οι εκδότες εγκρίνουν (ίσως αφού ψηφίσουν).

Alexios Zavras (zvr)

Αντί για παντοδυναμία κάθε ενός editor, θα πρότεινα μια πιο συνεργατική διαδικασία.

Για ομάδες μέχρι 15 άτομα (που φαίνεται λογικό πλήθος για τη συγκεριμένη περίπτωση), είμαι οπαδός του TYANNOTT: Two Yesses And No No’s Or Two Thirds.
[αν 2 πουν ΟΚ και κανείς δεν αντιδράσει, οκ — αν υπάρχει αντίδραση, πρέπει να είναι < 1/3]

Alexios Zavras (zvr)

Τέλος, πιστεύω ότι κάθε συνεισφορά θα πρέπει να αποθηκεύεται με την ιστορία της:
προτάθηκε από το χρήστη Χ (timestamp), εγκρίθηκε από τον Υ (timestamp).

Elias Kalapanidas

Μερικές ιδέες που έρχονται “χύμα”:

Λειτουργία εισαγωγής κειμένου, και επισήμανσης των λέξεων που δεν υπάρχουν στο λεξικό ή που δεν προκύπτουν από τους υπάρχοντες κανόνες. Έτσι με μαζικά copy-paste, θα μπορεί κάποιος από δεδομένα κείμενα (ελεγμένα, π.χ. από φύλλα της Εφημερίδας της Κυβέρνησης, ή από αποκόμματα τύπου) να εντοπίζει λήμματα που λείπουν από το λεξικό.

Για τα συνώνυμα, θα ήταν ενδιαφέρουσα μία συνεργατική εφαρμογή-παιχνίδι τύπου ESP μεταξύ 2 παικτών, εκμεταλλευόμενο την ανθρώπινη υπολογιστική δύναμη, με τον ίδιο τρόπο που το Google απέκτησε annotations για τη βάση δεδομένων των εικόνων στο web
von Ahn, L., Kedia, M., and Blum, M. (2006) Verbosity: A Game for Collecting Common-Sense Facts, ACM CHI Notes 2006 διαθέσιμο Online
von Ahn, L., Ginosar, S., Kedia, M., and Blum, M. (2006) Improving Accessibility of the Web with a Computer Game, ACM CHI Notes 2006
Human-based Computation

Πέτρος Παπαδόπουλος

Σίγουρα χρειάζεται μια καλά μελετημένη διαδικασία για τους διαχειριστές/editors ώστε να μην υπάρχει “παντοδυναμία”.

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

Το να υπάρχει δυνατότητα διαφωνίας με έναν όρο δεν λύνει το θέμα. Ίσα-ίσα που το περιπλέκει, γιατί θα ανοίξει ένα δένδρο αντιδράσεων, διαφωνιών, συζητήσεων για καθε όρο. Πώς θα γίνει η διαχείριση των διαφωνιών? Θα καταλήγουν πάλι στο διαχειριστή/editor (αυτόν δηλαδή που αποφάσισε για την αρχική απόδοση)? ή θα υπάρχουν επίπεδα διαχειριστών όπως τα δικαστήρια? π.χ. μονομελές, τριμελές κλπ.

Είναι γεγονός ότι το λεξικό είναι χρήσιμο γα νέους όρους (δεν αμφισβητεί κανείς ότι door=πόρτα, αλλά πολλοί αμφισβητούν ότι browser=φυλλομετρητής). Για το λόγο αυτόν ο όγκος των διαφωνιών/απόψεων θα είναι πολύ μεγάλος για τους νέους όρους. Επομένως ένα καλά δομημένο σύστημα διαχειριστών, με επίπεδα, συμμετοχές, ειδικούς από διάφορους κλάδους κλπ. είναι απαραίτητο για την επιτυχία του project.

Steve Stavropoulos

Για μένα υπάρχουν τρία βασικά και ανεξάρτητα το ένα με το άλλο, κομμάτια στο συγκεκριμένο project. Τα αναφέρω παρακάτω μαζί με σχετικά σχόλια.

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

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

2) Το δεύτερο κομμάτι χωρίζεται σε δύο υπομέρη.

α) Δημιουργία συστήματος αυτόματης κλίσης λέξεων.

Σχόλια:
Εδώ φαίνεται να υπάρχει ήδη αρκετό ενδιαφέρον και από τον Dimitris D που το έκανε για τα αρχαία (!) και από φαντάσματα του παρελθόντος που ίσως εμφανιστούν (ακούς doctor;), αλλά και από ‘μένα μέσω της ανάπτυξης ανάλογης εφαρμογής, την οποία έχω ονομάσει flexy.

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

Τα design goals του Flexy είναι τα εξής:
i) Λιγότερες από 100 γραμμές κώδικα (συμπεριλαμβανομένων των comments) στο κύριο κομμάτι της εφαρμογής.
ii) Language independent. Όπως έχουν γραφτεί τώρα κανόνες για τα νέα Ελληνικά, μπορούν να γραφτούν και για τα αρχαία ή για σχεδόν οποιαδήποτε άλλη γλώσσα του κόσμου.
iii) Απλός και περιεκτικός τρόπος γραφής των κανόνων ώστε το μόνο που θα χρειάζεται κάποιος για να τους γράψει να είναι μια ελάχιστη γνώση από regular expressions.

Το development του Flexy μπορεί να το παρακολουθήσει και να συμμετέχει όποιος θέλει στο https://github.com/stevestavropoulos/flexy

β) Δημιουργία web interface παρουσίασης των αποτελεσμάτων της αυτόματης κλίσης και κατηγοριοποίησης λέξεων ανά κανόνα κλίσης.

Σχόλια:
Δε θα πω πολλά για το συγκεκριμένο θέμα, μιας και νομίζω ότι είναι σχετικά απλό ως project. Το μόνο που θα πω είναι ότι, δεδομένου του ιδιαίτερου ενδιαφέροντος που φαίνεται ήδη να υπάρχει για το α κομμάτι, θεωρώ ότι θα ήταν θα ήταν σκόπιμο το web interface να μπορεί να υποστηρίξει περισσότερα από ένα backends για το κλείσιμο των λέξεων. Αυτό σημαίνει μεταξύ άλλων ότι κάθε backend θα πρέπει να μπορεί να ορίζει τα ονόματα των κανόνων που υποστηρίζει, αλλά λεπτομέρειες της αρχιτεκτονική μπορούμε να της συζητήσουμε και αργότερα.

3) Δημιουργία συνωνύμων για την ελληνική γλώσσα και ίσως και για την αρχαία ελληνική.
(χωρίς σχόλια εδώ μιας και δεν έχω ασχοληθεί καθόλου με το θέμα)