H γλώσσα XML Σκοπός, φιλοσοφία και νέες δυνατότητες Ευτυχία Γλένη, 19/01/2006
Τα αρχικά XML Extensible Markup Language Μεταγλώσσα προγραμματισμού για την κωδικοποίηση δεδομένων Έστω ότι θέλουμε να παρουσιάσουμε ένα κείμενο, μια ιστοσελίδα, ένα κολλάζ δεδομένων. Πρέπει να βρούμε έναν τρόπο να συμβολοποιήσουμε την απεικόνιση αυτή ώστε να γίνει δυνατή τουλάχιστον η μεταφορά και η επεξεργασία από την τεχνολογία που διαθέτουμε (αναλογία με το να μου δίνει κάποιος πληροφορίες και να τις γράφω στον πίνακα). Στόχος: η επιτυχημένη αποκωδικοποίηση ανάλογα με τις ανάγκες(αναλογία με καρτέλες ευρετηρίου). (Θέμα: Όσο καλύτερη η κωδικοποίηση τόσο μεγαλύτερες ευκαιρίες επανεπεξεργασίας και διαχείρισης-ο τρόπος κωδικοποίησης θέτει και τα όρια σε αυτό- αναλογία με καρτέλες κωδικοποίησης περιεχομένων βιβλίων)
Συνυπολογίζοντας Βασική ερώτηση: Πώς κωδικοποιούμε τα δεδομένα; Έχουμε: Υπολογιστές σε δίκτυο(internet) Τον παγκόσμιο ιστό(www) Έχουμε εφαρμογές διαφορετικού κώδικα Και χρειαζόμαστε εν τέλει φιλικότητα προς το χρήστη και λειτουργικότητα Πρόβλημα που επιζητά λύσεις: Πώς μπορούμε να διευρύνουμε τη συμβατότητα μεταξύ των προγραμμάτων; Τα δεδομένα που μεταφέρονται να γίνουν διαχειρίσιμα. Ώστε κάθε πρόγραμμα επεξεργασίας και αναπαράστασης των δεδομένων να μπορεί να τα προσπελάσει ανάλογα με τα δικά του standards. Μια προσπάθεια για κοινή γλώσσα επικοινωνίας των εφαρμογών.
Προσπάθειες Πρώτη γενναία προσπάθεια: Η SGML- Standard Generalized Markup Language Η γλώσσα αυτή είχε τα γενικά χαρακτηριστικά που απαιτούνταν αλλά ήταν πολύπλοκη στη χρήση. Γέννησε δύο άλλες γλώσσες, την HTML και την XML. H HTML ήταν μια έκδοση αρκετά απλουστευμένη ώστε να επιτρέψει την άνθηση των ιστοσελίδων στο διαδίκτυο. Ένα απλοποιημένο, δημοφιλές και λειτουργικό σύστημα κατασκευής ιστοσελίδων. Οι περιορισμοί όμως της HTML γέννησαν την ανάγκη για την XML.
Τι είναι η XML; Γλώσσα: σύστημα αναπαράστασης που θα γίνεται κατανοητό από τα μέρη που θέλουν να επικοινωνήσουν. Μια κοινή γλώσσα και κοινοί κανόνες, κατάλληλα για τις «συνθήκες συνομιλίας» Κύριος διαχωρισμός στην Xml, που τον κληρονόμησε από την SGML: Η διάκριση του περιεχομένου από τη μορφή που αυτό θα λάβει. Προσπάθεια εννοηματοδοτημένης κωδικοποίησης της δομής. Περιγραφή του περιεχομένου και ενσωμάτωσή του σε λογικές δομές
Συγκεκριμένα, Δεν περιέχονται στοιχεία παρουσίασης. Ακόμη, είναι επεκτάσιμη—extensible. Μπορεί δηλαδή ο προγραμματιστής να καθορίσει τα δικά του στοιχεία, να καθορίσει τη δομή του περιεχομένου της κωδικοποίησης. Για παράδειγμα, άλλα στοιχεία θα έχει ένας κώδικας xml που θα περιγράφει τη δομή ενός κειμένου χημείας και άλλα ένας κώδικας που περιγράφει τα χαρακτηριστικά των αποθηκευμένων βιβλίων. Είναι παραμετροποιήσιμη. Markup- ή καλύτερα metamarkup language. Στον ίδιο τον κώδικα περιγράφεται η δομή και το περιεχόμενο των δεδομένων. Παρουσιάζονται οι λογικές δομές που έχουν χρησιμοποιηθεί και αποδίδεται νόημα στην κωδικοποίηση που έχει επιλεχθεί. Περιγραφή των δεδομένων που έχει και των σχέσεων που έχουν χρησιμοποιηθεί. Κατά αυτόν τον τρόπο γίνονται κατανοητές όχι μόνο από τον άνθρωπο αλλά και από άλλα προγράμματα που μπορεί να θέλουμε να προσπελάσουν το κείμενο. Είναι περισσότερο δομημένη και μπορεί η δομή της αυτή να αξιολογηθεί από ένα άλλο πρόγραμμα.
Κύριο χαρακτηριστικό Τι δεν είναι η xml Δεν κάνει τα πάντα. Δεν είναι μια γλώσσα προγραμματισμού. Αναπαριστά με κωδικοποιημένο τρόπο τα δεδομένα. Δεν είναι ούτε πρωτόκολλο μεταφοράς δεδομένων, αλλά ούτε βάση δεδομένων, η οποία είναι ουσιαστικά ένα πρόγραμμα. Αλλά, τι προσφέρει; Διαχειρίσιμα δεδομένα—portable data
Διαχείριση δεδομένων…; Ένας web browser Ένας επεξεργαστής-διορθωτής κειμένου, Μία βάση δεδομένων που αποθηκεύει αρχεία δεδομένων (Microsoft SQL Server stores xml data in a new record) Ένα σχεδιαστικό πρόγραμμα, ένα πρόγραμμα που «βλέπει» τον κώδικα σαν μια μορφή οικονομικού κειμένου, Ένα πρόγραμμα διαμοίρασης πληροφοριών που παίρνει τις νέες πληροφορίες (a syndication program that reads the xml document and extracts the headlines for today’s news), Ένα πρόγραμμα που έχουμε γράψει μόνοι μας (σε Java, C, Python) και κάνει ότι του πούμε εμείς στα δεδομένα, Οτιδήποτε άλλο.
Ελαστικότητα Συμπέρασμα: Η XML είναι μια εξαιρετικά ελαστική δομή κωδικοποίησης δεδομένων. “XML is an extremely flexible format for data”.(Harold and Means, 2002, σελ.8) Στην πραγματικότητα, η XML είναι κατάλληλη για την αποθήκευση και ανταλλαγή κάθε είδους δεδομένων που μπορεί να κωδικοποιηθεί σε μορφή κειμένου. Πραγματικά, είναι ακατάλληλη μόνο για την κωδικοποίηση δεδομένων πολυμέσων, όπως οι φωτογραφίες, ο ήχος, το βίντεο και άλλες μορφές πολύπλοκης παράστασης δεδομένων. Επιτρέπει την επαναχρησιμοποίηση ή επανα-οργάνωση των δεδομένων. Εμπορικές κυρίως εφαρμογές. Και information management systems
Δομή Μαθηματικού τύπου δομή. Λογικές προτάσεις σε μορφή εξισώσεων. 3(4+5χ)-[ (11-8χ)] Δομή που έχει όμως ένα νόημα. Έννοιες που εγκλείονται η μία στην άλλη Προσοχή! Πρόκειται για κωδικοποιήσεις δεδομένων, πχ κειμένων. Δεν είναι σαφές ότι προϋπάρχει μια δομή στα δεδομένα. Εμείς την επιβάλλουμε. Εδώ τίθονται και τα όρια της κωδικοποίησης που λέγαμε.
Συντακτικό Elements and Attributes Elements- έχουν μια ετικέτα- τίτλο (tag), περιεχόμενο, και γίνεται το κλείσιμο της ετικέτας Starting with programming Κάποιοι κανόνες για αυτά: Οι ετικέτες αρχίζουν με γράμμα ή κάτω παύλα, γίνεται διάκριση κεφαλαίων- μικρών και μπορούν να χρησιμοποιηθούν γράμματα, αριθμοί, κάτω παύλες, dashes, periods Άδειες ετικέτες- ανοίγουν και κλείνουν αμέσως Σχέσεις μεταξύ των ετικετών- Αναλογία με δενδρική γενεαλογική δομή—parent element- child element-sibling element George Maria Nikos Sophia Κεντρική δομή και υπο-δομές, διακλαδώσεις. Στοιχεία που εμπεριέχονται
Attributes Επιπλέον πληροφορίες για τα στοιχεία. Αν το element είναι το περιεχόμενο (container), το attribute είναι η ταμπέλα (label on the container) στο περιεχόμενο. Μοντέλο όνομα- αξία (label- value pair) Ethier & Houser,2001,σελ 57: Be sure to brush your teeth twice each day. Touching a live wire may cause serious injury or death Σκοπός: Ελαστικότητα στην επεξεργασία και την ανάσυρση πληροφοριών
Άλλα… Declaration. Στην αρχή του κώδικα. Είναι μεν προαιρετικό, αλλά καλύτερα να μην παραλείπεται. Εισαγωγή σχολίων Entities—συντομογραφίες Συγκεκριμένοι χαρακτήρες που απαγορεύονται, περιγράφονται με συντομογραφίες- αναφορές, καθώς και δεδομένα που δε θέλουμε να τα επαναλαμβάνουμε Και έπειτα, για αναφορά της με τα σύμβολα & ; Πχ ≀
Document Type Defintion (DTD) Ποια είναι η δομή που έχουν τα δεδομένα μας; Περιγραφή με «μαθηματικούς»-λογικούς όρους. (Δεν είναι απαραίτητη) Define elements and their relationship. Μπορούμε να το φτιάξουμε μόνοι μας ή να πάρουμε κάποιο έτοιμο. Κάποιο που ταιριάζει στα δεδομένα μας ή να συμβαδίσουμε με τα ήδη υπάρχοντα σε μια επέκταση μιας εφαρμογής. Πρόκειται για μια λίστα των elements και των ιδιοτήτων τους- τη σειρά εμφάνισης και τη συχνότητα τους.
Παράδειγμα κώδικα Παράδειγμα κώδικα από Ethier & Houser,2001,σ. 87 Επεξήγηση συμβόλων: ? προαιρετικά, μία φορά * προαιρετικά, μία ή περισσότερες φορές + αναγκαστικά, μία ή περισσότερες φορές κανένα σύμβολο αναγκαστικά, μία φορά , ακολουθείται η σειρά που δείχνεται | μόνο ένα από τα στοιχεία θα εμφανιστεί αν (…….)* τότε όλα τα στοιχεία μπορεί να προκύψουν σε τυχαία σειρά ( ) όπως στα μαθηματικά PCDATA parsed character data
Ιδιότητες στα attributes Ποιες ιδιότητες μπορούν να έχουν τα attributes; Μπορούν να είναι: κείμενο (CDATA) Να αναφέρονται σε κάτι άλλο που έχει ειπωθεί κάπου αλλού (ΕΝΤΙΤΥ)- (ENTITIES) Μοναδικές λέξεις- μόνο αυτές (NTOKEN)-(NTOKENS) Να ταυτοποιούνται- παίρνουν μια ταυτότητα (ID) Να αναφέρονται σε άλλα ταυτοποιημένα στοιχεία (IDREF) –(IDREFS) Τα στοιχεία της ταυτότητας είναι μοναδικά. Σα να αποδίδεται ένα μοναδικό νόημα στο στοιχείο αυτό.
Η Μορφή; Όσον αφορά τη μορφή που θα πάρει ο κώδικας, ο σκοπός της XML ήταν να είναι όσο το δυνατόν διαχειρίσιμη. Μπορεί να γίνει με τη βοήθεια άλλων προγραμμάτων και εφαρμογών Τα XML Style Sheets H XSLT- XML Stylesheet Language Tranformation XPath- Μπορεί καλύτερα να επιλέξει τα δεδομένα που θα παρουσιάσει CSS-Cascading Style Sheets Σαν ένα ανεξάρτητο αρχείο ου δίνει τις πληροφορίες παρουσίασης που του λέμε Interactive document-DOM- Document Object Model pages Επιπλέον στοιχεία δομής σε σελίδες HTML- XHTML
Επέκταση της XML XML Schemas Μια προσπάθεια επέκτασης του DTD, ώστε να περιέχει καλύτερα τα δομικά στοιχεία της εφαρμογής που χρησιμοποιούμε. Πρόβλημα, ιδιαίτερα στις εφαρμογές που χρειάζονται μαθηματικούς τύπους. To DTD είναι περιγραφικό, κείμενο δηλαδή. Έτσι, έχουμε τα namespaces, μια προσπάθεια διασύνδεσης του συντακτικού με ένα συγκεκριμένο διαθέσιμο και αναγνωρισμένο λεξιλόγιο. Για παράδειγμα, η επιστημονική κοινότητα έχει τη MathML- Mathematical Markup Language Ακόμη, στην XML οι συνδέσεις με άλλα έγγραφα γίνονται πιο απλές αναφορές σε σημασιολογικές διασυνδέσεις. Όχι μόνο με άλλες ιστοσελίδες, αλλά και με διάφορες εφαρμογές, όπως τις βάσεις δεδομένων. Αυτό έχει σημασία για τη δημιουργία του σημασιολογικού ιστού.
Τι έχουμε πετύχει με την XML; Να επικοινωνούν διαφορετικές εφαρμογές μεταξύ τους. Να έχουμε δηλαδή μεγαλύτερη μεταφορά δεδομένων. Να έχουμε σημασιολογική σύνδεση των δεδομένων- πηγών. Αυτό πως γίνεται; Με τον εγκλεισμό σε κάθε μορφή δεδομένων, στον κώδικα, μια σημασιολογική αναφορά σε ένα αναγνωρισμένο και έγκυρο «ειδικό λεξικό»- URI-Universal Resource Identifier
Ο Σημασιολογικός Ιστός Το όραμα του Σημασιολογικού Ιστού Επιστημονική φαντασία. Μπορούν οι υπολογιστές να σκέφτονται για μας; Να κάνουν τέτοιες συνδέσεις σε γεγονότα –δεδομένα ώστε να μας βοηθούν στην καθημερινότητά μας; Με μια έννοια μπορούν να σκάφτονται καλύτερα κάνοντας αναρίθμητους υπολογισμούς. Ο υπολογιστής ως βοηθός του ανθρώπου. Για παράδειγμα: Σε ποιο πανεπιστήμιο να κάνω μεταπτυχιακό; Εισαγωγή κριτηρίων και δεδομένων αναζήτησης…
Οράματος συνέχεια Μπορούν οι υπολογιστές να κάνουν κρίσεις; Να σκεφτούν δημιουργικά; Συσχετίζοντας δεδομένα με τρόπο που δεν είχαν προηγουμένως συσχετιστεί; Artificial Intelligence H XML και τα προγράμματα που την υποβοηθούν προτείνει τη λύση. Embedded semantics- Σημασία μέσα στον κώδικα του κειμένου και δημιουργία δικτύου σημασιών- URI
Βιβλιογραφία A gentle introduction to XML by the Text Encoding Initiative Consortium, ηλεκτρονική διεύθυνση: προσβάσιμη στις 20/01/06http:// A gentle introduction to SGML by the Text Encoding Initiative Consortium, ηλεκτρονική διεύθυνση: προσβάσιμη στις 20/01/06http:// Berners-Lee, T.,Hendler,J. and Lassila, O. The Semantic Web. Scientific American, 284:34- 43, Ηλεκτρονική διεύθυνση: 1C70-84A9809EC588EF21, προσβάσιμη στις 18/01/06http:// 1C70-84A9809EC588EF21 Bosak, J. Media-Independent Publishing:Four Myths about XML, ηλκεκτρονική διεύθυνση: προσβάσιμη στις 20/01/06 Bosak, J.XML, Java and the future of the Web, ηλεκτρονική διεύθυνση: προσβάσιμη στις 20/01/06http://
Ethier, K. and Houser, A.(2001). XML Weekend crash course. Hungry Minds: New York Garshol, L.M. An introduction to xml, ηλεκτρονική διεύθυνση: en.html, προσβάσιμη στις 20/01/06http:// en.html Θραμπουλίδης, Κλ.(2000).Εισαγωγή στην πληροφορική:Γλώσσες προγραμματισμού. Ελληνικό Ανοιχτό Πανεπιστήμιο: Πάτρα (σελίδες Harold, E.R. and Means, S.W.(2002). XML in a nutshell.(2nd ed.).O’Reilly Σημειώσεις Τεχνολογίες Διαδικτύου, κεφάλαιο 9