H γλώσσα XML

Download Report

Transcript H γλώσσα XML

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χ)-[20 -567(11-8χ)]
Δομή που έχει όμως ένα νόημα.
Έννοιες που εγκλείονται η μία στην άλλη
Προσοχή! Πρόκειται για κωδικοποιήσεις
δεδομένων, πχ κειμένων. Δεν είναι σαφές ότι
προϋπάρχει μια δομή στα δεδομένα. Εμείς την
επιβάλλουμε. Εδώ τίθονται και τα όρια της
κωδικοποίησης που λέγαμε.
Συντακτικό
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>
Κεντρική δομή και υπο-δομές, διακλαδώσεις. Στοιχεία που εμπεριέχονται







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>
Σκοπός: Ελαστικότητα στην επεξεργασία και την ανάσυρση
πληροφοριών
Άλλα…
Declaration. Στην αρχή του κώδικα. Είναι μεν προαιρετικό,
αλλά καλύτερα να μην παραλείπεται.<?xml version=“1.0”?>

Εισαγωγή σχολίων

<!--Created by Efi Gleni-->

Entities—συντομογραφίες

Συγκεκριμένοι χαρακτήρες που απαγορεύονται, περιγράφονται
με συντομογραφίες- αναφορές, καθώς και δεδομένα που δε
θέλουμε να τα επαναλαμβάνουμε

<!ENTITY wr “The writer’s name is Jane Austen.”>
Και έπειτα, για αναφορά της με τα σύμβολα & ;
Πχ &wr;

Document Type Defintion
(DTD)




Ποια είναι η δομή που έχουν τα δεδομένα μας;
Περιγραφή με «μαθηματικούς»-λογικούς όρους. (Δεν
είναι απαραίτητη) Define elements and their
relationship.
Μπορούμε να το φτιάξουμε μόνοι μας ή να πάρουμε
κάποιο έτοιμο. Κάποιο που ταιριάζει στα δεδομένα
μας ή να συμβαδίσουμε με τα ήδη υπάρχοντα σε μια
επέκταση μιας εφαρμογής.
Πρόκειται για μια λίστα των elements και των
ιδιοτήτων τους- τη σειρά εμφάνισης και τη
συχνότητα τους.
Παράδειγμα κώδικα

















Παράδειγμα κώδικα από 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
Ιδιότητες στα 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 251263
Επιπλέον στοιχεία δομής σε σελίδες 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, ηλεκτρονική
διεύθυνση: 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:3443, Ηλεκτρονική διεύθυνση: http://www.sciam.com/article.cfm?articleID=00048144-10D21C70-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
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/indexen.html, προσβάσιμη στις 20/01/06
Θραμπουλίδης, Κλ.(2000).Εισαγωγή στην πληροφορική:Γλώσσες
προγραμματισμού. Ελληνικό Ανοιχτό Πανεπιστήμιο: Πάτρα (σελίδες 3748
Harold, E.R. and Means, S.W.(2002). XML in a nutshell.(2nd
ed.).O’Reilly
Σημειώσεις Τεχνολογίες Διαδικτύου, κεφάλαιο 9