Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σημασιολογικός Ιστός (Semantic Web) - XML 4/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων XML Εισαγωγή
Παράδειγμα HTML: Λίστα Βιβλίων <HTML> <BODY> Fiction: <UL><LI>Author: Milan Kundera </LI> <LI>Title: Identity </LI> <LI>Published: 1998 </LI> </UL> Science: <UL><LI> Author: Richard Feynman </LI> <LI> Title: The Character of Physical Law </LI> <LI> Hardcover </LI> </UL> </BODY> </HTML>
Μειονεκτήματα της HTML Δεν είναι επεκτάσιμη - extensible Εστιάζει μόνο στην παρουσίαση Πρόβλημα αν απαιτείται σύνθετη μορφοποίηση Παρουσιάζει ένα μίγμα λογικών δομών (titles, paragraphs..) + presentation tags (bold, image alignment, etc.) Μη χρήσιμη για απλές δικτυακές εφαρμογές
Μειονεκτήματα της HTML Παρουσιάζει μόνο μία όψη των δεδομένων Δύσκολο να γράψουμε HTML που παρουσιάζει τα ίδια δεδομένα με διαφορετικό τρόπο ανάλογα με τις απαιτήσεις των χρηστών dynamic HTML Απαιτεί μεγάλο όγκο script Δεν λύνει το πρόβλημα
Μειονεκτήματα της HTML Δεν είναι άμεσα reusable Μικρή ή καθόλου σημασιολογική δομή Οι περισσότερες Web applications θα επωφεληθούν από τη δυνατότητα να παρουσιάζουν δεδομένα σύμφωνα με την ερμηνεία τους και όχι με το layout τους
Γιατί άλλη μία γλώσσα? Η XML χρησιμοποιείται για την ανταλλαγή δεδομένων Επιτρέπει σαφή ορισμό των δεδομένων Όλοι οι συμμετέχοντες «μεταφράζουν» με τον ίδιο τρόπο τα δεδομένα Αντικαθιστά το EDI (Electronic Data Interchange) Χρησιμοποιεί το διαδίκτυο για την ανταλλαγή δεδομένων Είναι πιο ευέλικτη Επιτρέπει τον ορισμό άλλων γλωσσών WSDL Web Services Description Language
Τι είναι η XML; EXtensible Markup Language Υποσύνολο της SGML (Standard Generalized Markup Language) Μετα-γλώσσα κατάλληλη για τον ορισμό άλλων γλωσσών Σχεδιάστηκε για τον ορισμό δεδομένων Οι δομές δεδομένων ανεξάρτητες από την πλατφόρμα Εύκολη η αυτόματη επεξεργασία των δεδομένων Ο χρήστης μπορεί να ορίσει τα δικά του tags Δεν περιγράφει τον τρόπο εμφάνισης δεδομένων! Ένα XSL αρχείο ορίζει την εμφάνιση ενός XML αρχείου Ένα DTD (Document Type Definition) ή ένα XML Schema ορίζει τη σύνταξη ενός XML αρχείου
XML & HTML Η XML δεν έχει σκοπό να αντικαταστήσει την HTML, αλλά να την συμπληρώσει Η HTML σχεδιάστηκε για να παρουσιάζει δεδομένα δίνοντας έμφαση στο πώς αυτά φαίνονται Η XML σχεδιάστηκε για να περιγράφει δεδομένα δίνοντας έμφαση στο τι είδος δεδομένα είναι
Η οικογένεια της XML XML: μετα-γλώσσα, η οποία χρησιμοποιείται για τον ορισμό γλωσσών σήμανσης XML Namespaces: προδιαγραφή για την αποφυγή ονοματολογικών συγκρούσεων μέσω καθορισμού χώρων ονομάτων για έγγραφα XML XML Schema: καθορίζει τύπους στοιχείων που μπορούν να περιέχονται σε ένα έγγραφο XML, και τα δεδομένα που μπορούν να περιλαμβάνουν αυτοί οι τύποι. XPath και XPointer: επιτρέπουν την αναφορά σε τμήματα ενός εγγράφου XML και τον ορισμό fragment identifiers. XLink: δίνει τη δυνατότητα ορισμού υπερσυνδέσμων ανάμεσα σε έγγραφα XML
Η οικογένεια της XML XForms: επιτρέπει τον καθορισμό φορμών εισαγωγής στοιχείων σε XML XML Signature: παράσχει συντακτικό και κανόνες επεξεργασίας για ψηφιακές υπογραφές σε XML DOM (document object model): API για την περιγραφή ενός εγγράφου XML ως δένδρου κόμβων και για τον καθορισμό του πώς οι κόμβοι αυτοί είναι δομημένοι, πώς μπορούμε να έχουμε πρόσβαση σε αυτούς και πώς μπορούμε να τους αλλάξουμε.
Η οικογένεια της XML XSL (extensible Stylesheet Language): είναι μια γλώσσα για μετασχηματισμό εγγράφων XML σε άλλα έγγραφα XML και για την αναπαράστασή τους, π.χ. σε HTML, Braille, κλπ. XQuery: γλώσσα επερωτήσεων XML εγγράφων, η οποία θεωρεί ένα XML αρχείο σαν ΒΔ. CSS: απλή γλώσσα περιγραφής οδηγών στοιχειοθεσίας. XHTML: ορισμός της HTML4.0 σε XML
Η οικογένεια της XML RDF (Resource Description Framework): ακρογωνιαίος λίθος του σημασιολογικού Ιστού (semantic web). Ορίζει ένα απλό μοντέλο δεδομένων για την περιγραφή των σημασιολογικών χαρακτηριστικών πόρων του Ιστού. RDF Schema: σχήμα για τον ορισμό γλωσσών RDF. DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer): γλώσσες για την περιγραφή οντολογιών που επεκτείνουν το RDF Schema.
XML & HTML Τα tags της XML είναι case sensitive Στην XML όλα τα tags πρέπει να έχουν αρχή και τέλος HTML <img src = image1.gif > XML <img src = image1.gif > </ img >
Ορισμός XML Αποτελείται από στοιχειώδες μόνο συντακτικό. Όταν δημιουργούμε ένα έγγραφο XML, δημιουργούμε τα δικά μας στοιχεία με δικιές μας ονομασίες για αυτό «επεκτάσιμη»...
Ένα απλό XML αρχείο.xml <?xml version = "1.0"?> <!-- Simple introduction to XML markup --> <mymessage> <message>welcome to XML!</message> </mymessage>
Περιγραφή λίστας βιβλίων <?xml version="1.0"?> <INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>mass market paperback</binding> <PAGES>298</PAGES> <PRICE>$5.49</PRICE> </BOOK> </INVENTORY> Τα INVENTORY, BOOK, TITLE δεν αποτελούν μέρος του ορισμού της XML
Η XML δεν κάνει τα πάντα Δημιουργήθηκε για να δομεί, αποθηκεύει και μεταφέρει δεδομένα Το αρχείο XML δεν κάνει τίποτα. Αποτελείται από πληροφορία και tags. Ανάγκη για λογισμικό που να μπορεί να το λάβει, να το στείλει και να το παρουσιάσει Ορισμός XML «XML is a software and hardware independent tool for carrying information»
Ιεραρχική δόμηση εγγράφου XML Inventory Book Book Title Author Binding Pages Price Title Author Binding Pages Price
Ακεραιότητα δεδομένων με χρήση XML Η XML μας δίνει τη δυνατότητα να διασφαλίζουμε ένα μίνιμουμ επίπεδο εμπιστοσύνης στα δεδομένα μας με μηχανισμούς όπως: Έλεγχος απλών συντακτικών κανόνων (wellformedness) με απλούς σαρωτές (parsers) Έλεγχος «καλής σύνταξης» με σαρωτές σύνταξης (validating parsers), με βάση κάποιο μοντέλο εγγράφου (document model) εκφρασμένου ως: Document Type Definition (DTD file): δεν υποστηρίζει πολλούς ελέγχους στο περιεχόμενο XML Schema: προσφέρει μεγαλύτερες δυνατότητες ελέγχου της σύνταξης των στοιχείων ενός εγγράφου XML
Υποστήριξη πολλών γλωσσών Η XML υιοθετεί το σύνολο χαρακτήρων (character set) Unicode, το οποίο υποστηρίζει διαφορετικές γραφές: λατινική, αραβική, ελληνική, εβραϊκή κλπ. Υποστηρίζει διαφορετικές κωδικοποιήσεις των χαρακτήρων. Π.χ.: UTF-8, iso-8859-1 κλπ
Εμφάνιση εγγράφων XML Πώς??? Σε μια σελίδα HTML, ο φυλλομετρητής γνωρίζει ότι ένα στοιχείο Η1 είναι επικεφαλίδα ανωτάτου επιπέδου και το μορφοποιεί ανάλογα, επειδή το στοιχείο είναι μέρος του προτύπου της HTML Πώς μπορεί ΟΜΩΣ ένας φυλλομετρητής να γνωρίζει πώς πρέπει να χειριστεί και να εμφανίσει τα στοιχεία ενός εγγράφου XML που έχουμε δημιουργήσει εμείς??? (π.χ. στοιχεία BOOK και BINDING)
Εμφάνιση εγγράφων XML Σύνδεση φύλλων στυλ. Σύνδεση ενός φύλλου στυλ με το έγγραφο XML. To φύλλο στυλ είναι ξεχωριστό αρχείο που περιέχει οδηγίες για τη μορφοποίηση στοιχείων της XML: φύλλο επάλληλων στυλ (cascading style sheet CSS) που χρησιμοποιείται και για σελίδες HTML φύλλο στυλ επεκτάσιμης γλώσσας (Extensible Stylesheet Language, XSL), πιο ισχυρό από CSS, έχει σχεδιαστεί ειδικά για έγγραφα XML Δέσμευση δεδομένων (Data binding) Δημιουργία σελίδας HTML, σύνδεση με αυτή του εγγράφου XML, και δέσμευση στη σελίδα πρότυπων στοιχείων HTML, όπως το TABLE, με στοιχεία XML. Έτσι τα στοιχεία HTML θα εμφανίσουν αυτόματα τις πληροφορίες των στοιχείων XML με τα οποία είναι συνδεδεμένα
Εμφάνιση εγγράφων XML Γραφή σεναρίων. (Scripting) Δημιουργία σελίδας HTML, συνδέση με αυτή του εγγράφου ΧΜL, προσπέλαση και εμφάνιση κάθε στοιχείου XML γράφοντας κώδικα σεναρίων (είτε σε JavaScript είτε σε Microsoft Visual Basic Scripting Edition VBScript) Ο φυλλομετρητής παρουσιάζει το έγγραφο XML ως μοντέλο αντικειμένου εγγράφου (Document Object Model, DOM), το οποίο παρέχει μεγάλο αριθμό αντικειμένων, ιδιοτήτων, και μεθόδων που ο κώδικας σεναρίων μπορεί να χρησιμοποιήσει για να προσπελάσει, να χειριστεί, και να εμφανίσει τα στοιχεία XML
Επίσημοι στόχοι της XML Τα έγγραφα της XML πρέπει να είναι αναγνώσιμα από τον άνθρωπο και σαφή Η δυνατότητα ανάγνωσης της ΧΜL δίνει τη δυνατότητα στους ανθρώπους αλλά και σε εξειδικευμένα προγράμματα λογισμικού να γράφουν και να διαβάζουν έγγραφα XML Τα έγγραφα XML μπορούν να διαβαστούν εύκολα από άνθρωπο - γραμμένα σε απλή μορφή και έχουν λογική δομή δένδρου. Βελτίωση της αναγνωσιμότητας της XML επιλέγοντας λογικά ονόματα για τα στοιχεία, τις ιδιότητες, και τις ενότητες των εγγράφων και προσθέτοντας χρήσιμα σχόλια
Επίσημοι στόχοι της XML Τα έγγραφα XML θα δημιουργούνται εύκολα Πρέπει να είναι εύκολη η δημιουργία των εγγράφων Στη γλώσσα XML έχει ελάχιστη σημασία η λακωνικότητα Τα έγγραφα της ΧΜL πρέπει να είναι αναγνώσιμα από τον άνθρωπο και σαφή), η XML δεν πρέπει να είναι υπερβολικά λακωνική ώστε να γίνεται δυσνόητη.
Τυπικές εφαρμογές XML Μια εφαρμογή XML κανονικά ορίζεται με τη δημιουργία ενός ορισμού τύπου εγγράφου (document type definition, DTD), το οποίο αποτελεί προαιρετικό στοιχείο ενός εγγράφου XML To DTD μοιάζει με σχήμα βάσης δεδομένων (database schema): ορίζει και δίνει ονόματα στα στοιχεία που μπορούν να χρησιμοποιηθούν στο έγγραφο, τη σειρά εμφάνισής τους, τις ιδιότητές τους που μπορούν να χρησιμοποιηθούν, καθώς και άλλα χαρακτηριστικά του εγγράφου
Τυπικές εφαρμογές XML Συμπεριλαμβάνουμε το DTD της εφαρμογής στο έγγραφο, οπότε περιορίζονται τα στοιχεία και η δομή που μπορούμε να χρησιμοποιήσουμε και το έγγραφο προσαρμόζεται στο πρότυπο της εφαρμογής Πλεονεκτήματα: Εύκολο το μοίρασμα εγγράφων με όλους τους υπόλοιπους χρήστες της ίδιας εφαρμογής
Πρακτικές χρήσεις XML Αποθήκευση βάσεων δεδομένων χρήση XML για να τοποθετήσει ετικέτες σήμανσης σε οποιοδήποτε πεδίο πληροφοριών μέσα σε οποιαδήποτε βάση δεδομένων. (πχ, να ορίσει ετικέτες για κάθε όνομα/διεύθυνση, και αριθμό τηλεφώνου στις εγγραφές μιας βάσης δεδομένων με διευθύνσεις.) Δόμηση εγγράφων Δενδροειδής δομή εγγράφων XML ιδανική για περιγραφή δομής εγγράφων Π.χ. θεατρικά έργα διαχωρισμός έργου σε πράξεις, σκηνές, ομιλητές, ατάκες, σκηνικές οδηγίες
Πρακτικές χρήσεις XML Μορφοποίηση μαθηματικών τύπων και επιστημονικών πληροφοριών στον Ιστό. (MathML ή Mathematical Markup Language) Περιγραφή μοριακών δομών. (CML ή Chemical Markup Language) Κωδικοποίηση και εμφάνιση πληροφοριών σχετικά με ακολουθίες DNA, RNA, και πρωτεϊνών. (BSML ή Bioinformatic Sequence Markup Language) Κωδικοποίηση γενεαλογικών στοιχείων. (GedML ή Genealogical Data Markup Language) Ανταλλαγή πληροφοριών σχετικά με την αστρονομία. (AML ή Astronomical Markup Language) Συγγραφή μουσικής παρτιτούρας. (MusicML ή Music Markup Language)