Κείμενο

Το κείμενο (text) ήταν ο πρώτος τρόπος απεικόνισης της πληροφορίας σε υπολογιστή και παραμένει μέχρι σήμερα ο κυρίαρχος. Η αδυναμία των αρχικών υπολογιστών να χειριστούν αποτελεσματικά ήχο, εικόνες και video όχι μόνο καθιέρωσε το απλό κείμενο σαν το αποκλειστικό μέσο επικοινωνίας ανθρώπου-υπολογιστή, αλλά είχε και κάποιες  παρενέργειες που γίνονται σήμερα ορατές σε πολλές εφαρμογές πολυμέσων. Για παράδειγμα, το πρότυπο ASCII περιορίζει σημαντικά τη δημιουργία πολυγλωσσικών εφαρμογών, με αποτέλεσμα πολλά συστήματα πολυμέσων να χρησιμοποιούν όχι προτυποποιημένες και πλήρεις λύσεις. Άσχετα με τα όποια προβλήματα παρουσιάζονται σήμερα, είναι φανερό, αλλά και αναμενόμενο αν αναλογιστούμε τη σπουδαιότητα της γραφής στην εξέλιξη των πολιτισμών, ότι το κείμενο αποτελεί βασικό φορέα πληροφορίας  που δεν πρέπει να παραμελείται σε μια εφαρμογή πολυμέσων. Το ζητούμενο δεν είναι η εξάλειψη του κειμένου, αλλά η αποτελεσματική ολοκλήρωση του με τα άλλα είδη πληροφορίας.

Αναπαράσταση κειμένου

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

ASCII (American Standard Code for Information Interchange)

Είναι η πιο απλή αλλά και πιο διαδεδομένη μέθοδος αναπαράστασης κειμένου στους υπολογιστές. Αναπτύχθηκε από τον Αμερικάνικο Οργανισμό Προτυποποίησης και είναι μια απλή κωδικοποίηση χαρακτήρων των 7-bits. Σαν συνέπεια, οι χαρακτήρες που περιλαμβάνει είναι το λατινικό αλφάβητο και κάποια ειδικά σύμβολα. Είναι προφανές ότι δεν υπάρχει πρόνοια για την υποστήριξη άλλων γλωσσών. Κάθε κωδική λέξη ASCII, αν και μήκους 7-bits, συνήθως αποθηκεύεται σε ένα byte. Οι πλεονάζοντες 128 χαρακτήρες χρησιμοποιούνται για την αναπαράσταση όχι-ASCII χαρακτήρων. Αυτοί οι χαρακτήρες μπορεί να είναι κάποια ειδικά σύμβολα ή χαρακτήρες  άλλων αλφάβητων. Δυστυχώς, ο καθορισμός του περιεχομένου αυτών των θέσεων δεν έχει προτυποποιηθεί, γεγονός που οδηγεί σε πληθώρα ασυμβατοτήτων μεταξύ εφαρμογών ακόμα και της ίδιας χώρας προέλευσης.

Κωδικοσελίδες (character sets) του ISO

Τα πρότυπα του ISO (International Organisation for Standardization) έχουν ως στόχο την αδυναμία του ASCII να υποστηρίξει άλλες γλώσσες πλην της αγγλικής. Για παράδειγμα, το πρότυπο ‘ISO Latin’ (ISO 1987b) είναι ένα υπερσύνολο του προτύπου ASCII το οποίο παρέχει κωδικοποίηση για τις περισσότερες ευρωπαϊκές γλώσσες. Υπάρχουν πρότυπα και για γλώσσες με μη-λατινικό αλφάβητο που αναπτύσσονται σε συνεργασία του ISO με εθνικούς οργανισμούς προτυποποίησης. Οι κωδικοποιήσεις του ISO αρχίζουν να διαδίδονται ευρέως και χρησιμοποιούνται, για παράδειγμα, στο X Windows System, στο PostScript και σε διεθνείς εκδόσεις αρκετών πακέτων λογισμικού.

Mark-up κείμενο

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

Μια λύση στο παραπάνω πρόβλημα είναι η μίξη του κανονικού κειμένου με οδηγίες παρουσίασης (tags). Το κείμενο που προκύπτει ονομάζεται markup. Για παράδειγμα, στο σύστημα troff που συναντάται στη πλατφόρμα UNIX:

.ce

Aυτή είναι μια γραμμή

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

H SGML (Standardised General Markup Language) είναι ένα παράδειγμα τέτοιας γλώσσας, που αποτελεί μάλιστα και πρότυπο του ΙSO. Σε συστήματα UNIX χρησιμοποιείται πολύ συχνά και η γλώσσα TEX η χρήση της οποίας διευκολύνεται από το σύστημα LATEX.

Δομημένο κείμενο

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

Hypertext

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

Η δυσκολία με το hypertext είναι ο τρόπος αναπαράστασης και χειρισμού των συνδέσμων. Βρίσκει κανείς συνδέσμους μιας η διπλής κατεύθυνσης, συνδέσμους που οδηγούν σε άλλους κόμβους ή τμήματα του ίδιου κόμβου ακόμα και συνδέσμους που δεν οδηγούν σε κείμενο αλλά σε κάποια εικόνα, ήχο ή video.

Ευρύτατη διάδοση γνωρίζει σήμερα η HTML (Hypertext Markup Language) η οποία, όπως υποδηλώνει το όνομα της, αποτελεί μια markup γλώσσα για τη περιγραφή hypertext κειμένων. Η γλώσσα αυτή χρησιμοποιείται στο WWW (World Wide Web), μια δικτυακή εφαρμογή που θα περιγράψουμε με λεπτομέρεια σε επόμενο κεφάλαιο.

Χειρισμός Κειμένου

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

Πράξεις χαρακτήρων

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

Πράξεις συμβολοσειρών

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

Επεξεργασία (Editing) κειμένου

Η συγγραφή ενός κειμένου σε υπολογιστή προϋποθέτει ένα πρόγραμμα που να επιτρέπει την εισαγωγή και διαγραφή χαρακτήρων καθώς και την αποθήκευση του κειμένου σε μορφή αρχείου υπολογιστή. Τέτοια προγράμματα είναι πολύ κοινά και υπάρχουν σε όλες τις υπολογιστικές πλατφόρμες. Πολλοί editors κειμένου έχουν περισσότερες δυνατότητες: επιτρέπουν επιλογή και κατόπιν αποκοπή ή αντιγραφή και επικόλληση (selection, cut/copy, paste) τμημάτων κειμένου, αναγνωρίζουν και δημιουργούν αυτόματα κάποια στοιχεία της δομής του κειμένου όπως παραγράφους, αριθμημένες λίστες κλπ.

Φορμάρισμα κειμένου

Φορμάρισμα ονομάζεται η διαδικασία επιβολής κάποιων χαρακτηριστικών εμφάνισης στο κείμενο. Σήμερα, το φορμάρισμα γίνεται σχεδόν αποκλειστικά με τη χρήση interactive εφαρμογών στις οποίες κάθε αλλαγή στο φορμάρισμα εμφανίζεται στην οθόνη ακριβώς όπως θα τυπωθεί στον εκτυπωτή. Αυτό το μοντέλο ονομάζεται WYSIWYG (What You See is What You Get). Αυτά τα προγράμματα ονομάζονται επεξεργαστές κειμένου (word processors) και εκτός από τις λειτουργίες φορμαρίσματος προσφέρουν και όλες τις λειτουργίες ενός editor. Επιπλέον, δίνουν την δυνατότητα μίξης του κειμένου με εικόνες, διαγράμματα ακόμα και ήχους ή άλλα μη εκτυπώσιμα αντικείμενα, δημιουργώντας έτσι ένα νέο είδος κειμένου: το ηλεκτρονικό πολυμεσικό κείμενο (multimedia document).

H έξοδος ενός προγράμματος φορμαρίσματος κειμένου μπορεί να είναι μια bitmap εικόνα του φορμαρισμένου κειμένου ή η περιγραφή του σε μια λεπτομερή γλώσσα περιγραφής σελίδας (Page Description Language). Η πιο διαδεδομένη γλώσσα περιγραφής σελίδας είναι η PostScript  (Adobe Systems Inc.) που χρησιμοποιείται ευρέως από εκτυπωτές laser και άλλες μονάδες εξόδου υψηλής ανάλυσης.

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

  • το μέγεθος, το οποίο μετριέται σε στιγμές  (points=1/72 inches)
  • οι χαρακτήρες είναι έντονοι ή όχι (bold)
  • οι χαρακτήρες είναι πλάγιοι ή όχι
  • οι χαρακτήρες είναι υπογραμμισμένοι ή όχι
  • συνδυασμός των παραπάνω

Οι γραμματοσειρές χωρίζονται σε δυο βασικές κατηγορίες:

  • Χαρτογραφικές (bitmap fonts): οι πρώτες γραμματοσειρές είχαν αυτή τη μορφή. Αν και η επεξεργασία και εκτύπωση αυτών είναι γρήγορη, χάνουν σε ανεξαρτησία από τη μονάδα εξόδου, απαιτήσεις χώρου αποθήκευσης και ποιότητα μετά από κάποιο μετασχηματισμό (όπως μεγέθυνση ή περιστροφή).
  • Διανυσματικές: η περιγραφή αυτών των γραμματοσειρών γίνεται με μαθηματικό τρόπο, γεγονός που διορθώνει τα ελαττώματα των χαρτογραφικών γραμματοσειρών αλλά αυξάνει το χρόνο εκτύπωσης. Αυτή τη λογική ακολουθούν οι τύποι γραμματοσειρών PostScript Type 1 και TrueType που χρησιμοποιούνται στη γλώσσα PostScript και στην πλατφόρμα MS Windows αντίστοιχα.

Αναζήτηση

Τα περισσότερα προγράμματα επεξεργασίας κειμένου προσφέρουν λειτουργίες αναζήτησης προτύπων. Τα πρότυπα αυτά μπορεί να είναι απλές λέξεις  ή λέξεις που περιέχουν χαρακτήρες ειδικής σημασίας (wild cards). Τέτοια πρότυπα περιγράφονται συνήθως με τη χρήση κανονικών μορφών (regular expressions).

Ιδιαίτερο ενδιαφέρον παρουσιάζει η αναζήτηση σε μεγάλους όγκους κειμένου. Σε αυτές τις περιπτώσεις δεν ενδιαφέρει η ανεύρεση κάποιων προτύπων, αλλά κειμένων που αναφέρονται σε κάποιο συγκεκριμένο θέμα. Αυτά τα θέματα ερευνούνται από την Επιστήμη της Πληροφορίας (Information Science).

Συμπίεση

Η συμπίεση κειμένων δεν είναι τόσο μεγάλης σημασίας σε σχέση με την περίπτωση της εικόνας και του ήχου. Σε ειδικές ,περιπτώσεις όπου γίνεται αναγκαία η συμπίεση, εφαρμόζονται οι τεχνικές αντικατάστασης προτύπων και η κωδικοποίηση Huffman. (Bell et al. 1989)

Κρυπτογράφηση

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

Μια διαδεδομένη μέθοδος κρυπτογράφησης είναι η DES (Data Encryption Standard) που αναπτύχθηκε από την IBM για την αμερικάνικη κυβέρνηση. Πολύ συχνά (και με καλύτερα αποτελέσματα) χρησιμοποιούνται οι αλγόριθμοι με δημόσιο κλειδί (public key). Η ιδέα στην οποία στηρίζονται αυτοί οι αλγόριθμοί είναι η εξής:

 

Η διαδικασία κρυπτογράφησης μπορεί πολύ εύκολα να βρεθεί με δεδομένο ένα δημόσιο κλειδί το οποίο γνωστοποιεί ο παραλήπτης στους αποστολείς. Αντίθετα, η αποκρυπτογράφηση δεν μπορεί να γίνει μόνο με το δημόσιο κλειδί, αλλά απαιτείται και το ιδιωτικό κλειδί (private key) το οποίο γνωρίζει μόνο ο παραλήπτης.