H γλώσσα XML

23
H γλώσσα XML Σκοπός, φιλοσοφία και νέες δυνατότητες Ευτυχία Γλένη, 19/01/2006

description

H γλώσσα XML. Σκοπός, φιλοσοφία και νέες δυνατότητες Ευτυχία Γλένη, 19/01/2006. Τα αρχικά XML. Extensible Markup Language Μεταγλώσσα προγραμματισμού για την κωδικοποίηση δεδομένων Έστω ότι θέλουμε να παρουσιάσουμε ένα κείμενο, μια ιστοσελίδα, ένα κολλάζ δεδομένων. - PowerPoint PPT Presentation

Transcript of H γλώσσα XML

Page 1: H  γλώσσα  XML

H γλώσσα XML

Σκοπός, φιλοσοφία και νέες δυνατότητες

Ευτυχία Γλένη, 19/01/2006

Page 2: H  γλώσσα  XML

Τα αρχικά XML

Extensible Markup Language

Μεταγλώσσα προγραμματισμού για την κωδικοποίηση δεδομένων Έστω ότι θέλουμε να παρουσιάσουμε ένα κείμενο, μια ιστοσελίδα, ένα

κολλάζ δεδομένων. Πρέπει να βρούμε έναν τρόπο να συμβολοποιήσουμε την απεικόνιση

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

Στόχος: η επιτυχημένη αποκωδικοποίηση ανάλογα με τις ανάγκες(αναλογία με καρτέλες ευρετηρίου).

(Θέμα: Όσο καλύτερη η κωδικοποίηση τόσο μεγαλύτερες ευκαιρίες επανεπεξεργασίας και διαχείρισης-ο τρόπος κωδικοποίησης θέτει και τα όρια σε αυτό- αναλογία με καρτέλες κωδικοποίησης περιεχομένων βιβλίων)

Page 3: H  γλώσσα  XML

Συνυπολογίζοντας Βασική ερώτηση: Πώς κωδικοποιούμε τα δεδομένα;Έχουμε: Υπολογιστές σε δίκτυο(internet) Τον παγκόσμιο ιστό(www) Έχουμε εφαρμογές διαφορετικού κώδικαΚαι χρειαζόμαστε εν τέλει φιλικότητα προς το χρήστη και

λειτουργικότητα

Πρόβλημα που επιζητά λύσεις: Πώς μπορούμε να διευρύνουμε τη συμβατότητα μεταξύ των

προγραμμάτων; Τα δεδομένα που μεταφέρονται να γίνουν διαχειρίσιμα. Ώστε

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

Page 4: H  γλώσσα  XML

Προσπάθειες Πρώτη γενναία προσπάθεια: Η SGML- Standard

Generalized Markup Language Η γλώσσα αυτή είχε τα γενικά χαρακτηριστικά

που απαιτούνταν αλλά ήταν πολύπλοκη στη χρήση. Γέννησε δύο άλλες γλώσσες, την HTML και την XML.

H HTML ήταν μια έκδοση αρκετά απλουστευμένη ώστε να επιτρέψει την άνθηση των ιστοσελίδων στο διαδίκτυο. Ένα απλοποιημένο, δημοφιλές και λειτουργικό σύστημα κατασκευής ιστοσελίδων.

Οι περιορισμοί όμως της HTML γέννησαν την ανάγκη για την XML.

Page 5: H  γλώσσα  XML

Τι είναι η XML; Γλώσσα: σύστημα αναπαράστασης που θα γίνεται

κατανοητό από τα μέρη που θέλουν να επικοινωνήσουν. Μια κοινή γλώσσα και κοινοί κανόνες, κατάλληλα για τις «συνθήκες συνομιλίας»

Κύριος διαχωρισμός στην Xml, που τον κληρονόμησε από την SGML:

Η διάκριση του περιεχομένου από τη μορφή που αυτό θα λάβει.

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

Page 6: H  γλώσσα  XML

Συγκεκριμένα, Δεν περιέχονται στοιχεία παρουσίασης. Ακόμη, είναι επεκτάσιμη—extensible. Μπορεί δηλαδή ο

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

Markup- ή καλύτερα metamarkup language. Στον ίδιο τον κώδικα περιγράφεται η δομή και το περιεχόμενο

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

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

Page 7: H  γλώσσα  XML

Κύριο χαρακτηριστικό Τι δεν είναι η xml Δεν κάνει τα πάντα. Δεν είναι μια γλώσσα

προγραμματισμού. Αναπαριστά με κωδικοποιημένο τρόπο τα δεδομένα. Δεν είναι ούτε πρωτόκολλο μεταφοράς δεδομένων, αλλά ούτε βάση δεδομένων, η οποία είναι ουσιαστικά ένα πρόγραμμα.

Αλλά, τι προσφέρει; Διαχειρίσιμα δεδομένα—portable data

Page 8: H  γλώσσα  XML

Διαχείριση δεδομένων…; Ένας 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) και κάνει ότι του πούμε εμείς στα δεδομένα,

Οτιδήποτε άλλο.

Page 9: H  γλώσσα  XML

Ελαστικότητα Συμπέρασμα: Η XML είναι μια εξαιρετικά ελαστική δομή

κωδικοποίησης δεδομένων. “XML is an extremely flexible format for data”.(Harold and Means, 2002, σελ.8)

Στην πραγματικότητα, η XML είναι κατάλληλη για την αποθήκευση και ανταλλαγή κάθε είδους δεδομένων που μπορεί να κωδικοποιηθεί σε μορφή κειμένου.

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

Επιτρέπει την επαναχρησιμοποίηση ή επανα-οργάνωση των δεδομένων. Εμπορικές κυρίως εφαρμογές. Και information management systems

Page 10: H  γλώσσα  XML

Δομή Μαθηματικού τύπου δομή. Λογικές

προτάσεις σε μορφή εξισώσεων. 3(4+5χ)-[20 -567(11-8χ)] Δομή που έχει όμως ένα νόημα. Έννοιες που εγκλείονται η μία στην άλλη Προσοχή! Πρόκειται για κωδικοποιήσεις

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

Page 11: H  γλώσσα  XML

ΣυντακτικόElements and Attributes Elements- έχουν μια ετικέτα- τίτλο (tag), περιεχόμενο, και γίνεται

το κλείσιμο της ετικέτας <ergasia> Starting with programming</ergasia> Κάποιοι κανόνες για αυτά: Οι ετικέτες αρχίζουν με γράμμα ή κάτω

παύλα, γίνεται διάκριση κεφαλαίων- μικρών και μπορούν να χρησιμοποιηθούν γράμματα, αριθμοί, κάτω παύλες, dashes, periods

Άδειες ετικέτες- ανοίγουν και κλείνουν αμέσως <παρατήρηση/> Σχέσεις μεταξύ των ετικετών- Αναλογία με δενδρική γενεαλογική

δομή—parent element- child element-sibling element <family> <father> George </father> <mother> Maria </mother> <child> Nikos </child> <child> Sophia </child> </family> Κεντρική δομή και υπο-δομές, διακλαδώσεις. Στοιχεία που

εμπεριέχονται

Page 12: H  γλώσσα  XML

Attributes Επιπλέον πληροφορίες για τα στοιχεία. Αν το element

είναι το περιεχόμενο (container), το attribute είναι η ταμπέλα (label on the container) στο περιεχόμενο.

Μοντέλο όνομα- αξία (label- value pair) Ethier & Houser,2001,σελ 57: <message urgency=“low”>Be sure to brush your teeth

twice each day.</message> <message urgency=“high”>Touching a live wire may

cause serious injury or death</message> Σκοπός: Ελαστικότητα στην επεξεργασία και την

ανάσυρση πληροφοριών

Page 13: H  γλώσσα  XML

Άλλα… Declaration. Στην αρχή του κώδικα. Είναι μεν

προαιρετικό, αλλά καλύτερα να μην παραλείπεται.<?xml version=“1.0”?>

Εισαγωγή σχολίων <!--Created by Efi Gleni--> Entities—συντομογραφίες Συγκεκριμένοι χαρακτήρες που απαγορεύονται,

περιγράφονται με συντομογραφίες- αναφορές, καθώς και δεδομένα που δε θέλουμε να τα επαναλαμβάνουμε

<!ENTITY wr “The writer’s name is Jane Austen.”>Και έπειτα, για αναφορά της με τα σύμβολα & ;Πχ &wr;

Page 14: H  γλώσσα  XML

Document Type Defintion (DTD)

Ποια είναι η δομή που έχουν τα δεδομένα μας; Περιγραφή με «μαθηματικούς»-λογικούς

όρους. (Δεν είναι απαραίτητη) Define elements and their relationship.

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

Πρόκειται για μια λίστα των elements και των ιδιοτήτων τους- τη σειρά εμφάνισης και τη συχνότητα τους.

Page 15: H  γλώσσα  XML

Παράδειγμα κώδικα Παράδειγμα κώδικα από Ethier & Houser,2001,σ. 87 <!ELEMENT family (father, mother, offspring?)> <!ELEMENT father (#PCDATA | surname)*> <!ELEMENT mother (#PCDATA | maiden| surname)*> <!ELEMENT offspring (child +)> <!ELEMENT child (#PCDATA | surname)*> <!ELEMENT surname (#PCDATA)> <!ELEMENT maiden (#PCDATA)> Επεξήγηση συμβόλων: ? προαιρετικά, μία φορά * προαιρετικά, μία ή περισσότερες φορές + αναγκαστικά, μία ή περισσότερες φορές κανένα σύμβολο αναγκαστικά, μία φορά , ακολουθείται η σειρά που δείχνεται | μόνο ένα από τα στοιχεία θα εμφανιστεί αν (…….)* τότε όλα τα στοιχεία μπορεί να

προκύψουν σε τυχαία σειρά ( ) όπως στα μαθηματικά PCDATA parsed character data

Page 16: H  γλώσσα  XML

Ιδιότητες στα attributes Ποιες ιδιότητες μπορούν να έχουν τα attributes; Μπορούν να είναι: κείμενο (CDATA) Να αναφέρονται σε κάτι άλλο που έχει ειπωθεί

κάπου αλλού (ΕΝΤΙΤΥ)- (ENTITIES) Μοναδικές λέξεις- μόνο αυτές (NTOKEN)-

(NTOKENS) Να ταυτοποιούνται- παίρνουν μια

ταυτότητα (ID) Να αναφέρονται σε άλλα ταυτοποιημένα

στοιχεία (IDREF) –(IDREFS) Τα στοιχεία της ταυτότητας είναι μοναδικά.

Σα να αποδίδεται ένα μοναδικό νόημα στο στοιχείο αυτό.

Page 17: H  γλώσσα  XML

Η Μορφή; Όσον αφορά τη μορφή που θα πάρει ο κώδικας, ο

σκοπός της XML ήταν να είναι όσο το δυνατόν διαχειρίσιμη.

Μπορεί να γίνει με τη βοήθεια άλλων προγραμμάτων και εφαρμογών

Τα XML Style Sheets H XSLT- XML Stylesheet Language Tranformation XPath- Μπορεί καλύτερα να επιλέξει τα δεδομένα που

θα παρουσιάσει CSS-Cascading Style Sheets Σαν ένα ανεξάρτητο αρχείο ου δίνει τις πληροφορίες

παρουσίασης που του λέμε Interactive document-DOM- Document Object Model

pages 251-263 Επιπλέον στοιχεία δομής σε σελίδες HTML- XHTML

Page 18: H  γλώσσα  XML

Επέκταση της XML XML Schemas Μια προσπάθεια επέκτασης του DTD, ώστε να περιέχει

καλύτερα τα δομικά στοιχεία της εφαρμογής που χρησιμοποιούμε. Πρόβλημα, ιδιαίτερα στις εφαρμογές που χρειάζονται μαθηματικούς τύπους. To DTD είναι περιγραφικό, κείμενο δηλαδή. Έτσι, έχουμε τα namespaces, μια προσπάθεια διασύνδεσης του συντακτικού με ένα συγκεκριμένο διαθέσιμο και αναγνωρισμένο λεξιλόγιο. Για παράδειγμα, η επιστημονική κοινότητα έχει τη MathML- Mathematical Markup Language

Ακόμη, στην XML οι συνδέσεις με άλλα έγγραφα γίνονται πιο απλές αναφορές σε σημασιολογικές διασυνδέσεις. Όχι μόνο με άλλες ιστοσελίδες, αλλά και με διάφορες εφαρμογές, όπως τις βάσεις δεδομένων.

Αυτό έχει σημασία για τη δημιουργία του σημασιολογικού ιστού.

Page 19: H  γλώσσα  XML

Τι έχουμε πετύχει με την XML; Να επικοινωνούν διαφορετικές εφαρμογές

μεταξύ τους. Να έχουμε δηλαδή μεγαλύτερη μεταφορά δεδομένων.

Να έχουμε σημασιολογική σύνδεση των δεδομένων- πηγών.

Αυτό πως γίνεται; Με τον εγκλεισμό σε κάθε μορφή δεδομένων, στον κώδικα, μια σημασιολογική αναφορά σε ένα αναγνωρισμένο και έγκυρο «ειδικό λεξικό»- URI-Universal Resource Identifier

Page 20: H  γλώσσα  XML

Ο Σημασιολογικός Ιστός Το όραμα του Σημασιολογικού Ιστού Επιστημονική φαντασία. Μπορούν οι

υπολογιστές να σκέφτονται για μας; Να κάνουν τέτοιες συνδέσεις σε γεγονότα –δεδομένα ώστε να μας βοηθούν στην καθημερινότητά μας; Με μια έννοια μπορούν να σκάφτονται καλύτερα κάνοντας αναρίθμητους υπολογισμούς. Ο υπολογιστής ως βοηθός του ανθρώπου.

Για παράδειγμα: Σε ποιο πανεπιστήμιο να κάνω μεταπτυχιακό;

Εισαγωγή κριτηρίων και δεδομένων αναζήτησης…

Page 21: H  γλώσσα  XML

Οράματος συνέχεια Μπορούν οι υπολογιστές να κάνουν

κρίσεις; Να σκεφτούν δημιουργικά; Συσχετίζοντας δεδομένα με τρόπο που δεν είχαν προηγουμένως συσχετιστεί; Artificial Intelligence

H XML και τα προγράμματα που την υποβοηθούν προτείνει τη λύση.

Embedded semantics- Σημασία μέσα στον κώδικα του κειμένου και δημιουργία δικτύου σημασιών- URI

Page 22: H  γλώσσα  XML

Βιβλιογραφία A gentle introduction to XML by the Text Encoding Initiative Consortium,

ηλεκτρονική διεύθυνση: http://www.tei-c.org.uk/P4X/SG.html, προσβάσιμη στις 20/01/06

A gentle introduction to SGML by the Text Encoding Initiative Consortium, ηλεκτρονική διεύθυνση: http://www.isgmlug.org/sgmlhelp/g-index.htm, προσβάσιμη στις 20/01/06

Berners-Lee, T.,Hendler,J. and Lassila, O. The Semantic Web. Scientific American, 284:34-43, Ηλεκτρονική διεύθυνση: http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21, προσβάσιμη στις 18/01/06

Bosak, J. Media-Independent Publishing:Four Myths about XML, ηλκεκτρονική διεύθυνση: http://www.ibiblio.org/pub/sun-info/standards/xml/why/4myths.htm, προσβάσιμη στις 20/01/06

Bosak, J.XML, Java and the future of the Web, ηλεκτρονική διεύθυνση: http://www.ibiblio.org/pub/sun-info/standards/xml/why/xmlapps.htm,

προσβάσιμη στις 20/01/06

Page 23: H  γλώσσα  XML

Ethier, K. and Houser, A.(2001). XML Weekend crash course.

Hungry Minds: New York

Garshol, L.M. An introduction to xml, ηλεκτρονική διεύθυνση:http://www.garshol.priv.no/download/text/xml-intro/index-en.html, προσβάσιμη στις 20/01/06

Θραμπουλίδης, Κλ.(2000).Εισαγωγή στην πληροφορική:Γλώσσες προγραμματισμού. Ελληνικό Ανοιχτό Πανεπιστήμιο: Πάτρα (σελίδες 37-48

Harold, E.R. and Means, S.W.(2002). XML in a nutshell.(2nd ed.).O’Reilly

Σημειώσεις Τεχνολογίες Διαδικτύου, κεφάλαιο 9