Μαθηματικά Λογισμικά και Γλώσσες Δρ. Γεώργιος Χρ. Μακρής 18 Μαΐου 2018
Αναπαράσταση Μαθηματικών Κειμένων στο διαδίκτυο (υπάρχουσα κατάσταση) Περίπτωση 1: Όλο το κείμενο παρέχεται στη ιστοσελίδα με ειδική μορφή (format) και η ανάγνωσή του επιτυγχάνεται με χρήση επιπρόσθετων λογισμικών. Περίπτωση 2: Η ιστοσελίδα είναι γραμμένη με το συνήθη τρόπο ενώ οι σχέσεις έχουν ενσωματωθεί σε αυτήν ως εικόνες. Περίπτωση 3: Οι μαθηματικές σχέσεις είναι γραμμένες σε HTML, χρησιμοποιώντας τα σύμβολα των γραμματοσειρών. Περίπτωση 4: Η παρουσίαση των σχέσεων γίνεται με τη βοήθεια Java Applets, Java Scripts. 2
Μειονεκτήματα της υπάρχουσας κατάστασης Η δυνατότητα αντιγραφής και επεξεργασίας ολόκληρης ή μέρος της μαθηματικής έκφρασης είναι περιορισμένη. Αδυναμία εύρεσης μαθηματικών εκφράσεων με βάση το ίδιο το περιεχόμενο των εκφράσεων. Δεν υπάρχει τρόπος κωδικοποίησης του μαθηματικού περιεχομένου. 3
MathML (1/3) Η MathML είναι συντομογραφία για το Mathematical Markup Language, δηλαδή Γλώσσα Μαθηματικής Επισήμανσης. Είναι μια εφαρμογή XML για την περιγραφή μαθηματικών εννοιών και καλύπτει τόσο τη δομή (συμπεριλαμβανομένων των πολύπλοκων διδιάστατων συμβολικών απεικονίσεων), όσο και τα περιεχόμενά τους, ενώ δίνει τη δυνατότητα κοινοποίησης της δομής και του περιεχομένου στο Διαδίκτυο. (Οι εξισώσεις διαβάζονται ως εξισώσεις, γίνονται κατανοητές και επεξεργάσιμες από τις μηχανές) 4
MathML (2/3) Η MathML μπορεί να χρησιμοποιηθεί για την κωδικοποίηση τόσο την παρουσίαση των μαθηματικών συμβολισμών σε υψηλής ευκρίνειας οθόνες όσο και το μαθηματικό περιεχόμενο, για εφαρμογές όπου η σημασιολογία παίζει πιο σημαντικό ρόλο όπως σε επιστημονικό λογισμικό και στη σύνθεση φωνής. Συχνά χρησιμοποιείται για την αναπαράσταση εξισώσεων, μαθηματικών τύπων, βιομηχανικών τυποποιήσεων κ..α και χρησιμοποιείται παράλληλα με την XHTML, SVG και άλλες εφαρμογές. 5
MathML (3/3) Αποτελείται από ένα συνδυασμό από συνόλων Presentation Tags και Content Tags. Ως μια XML εφαρμογή συμμορφώνεται με τις XML τυποποιήσεις. Τα Presentation Tags χρησιμοποιούνται στην δημιουργία κλασσικών μαθηματικών συμβολισμών και παράλληλα παρέχουν μηχανισμούς για την βελτιστοποίηση της οπτικής απόδοσης των μαθηματικών σε Web περιβάλλον. Οι Content Tags έχουν σκοπό να υποστηρίξουν την κωδικοποίηση του υποκείμενου μαθηματικού περιεχομένου μιας έκφρασης. 6
Παράδειγμα 1 - MathML <math> <mrow> <mi>x</mi> <mo>+</mo> <mn>5</mn> <mo>=</mo> <mn>200</mn> </mrow> </math> x 5 200 7
Παράδειγμα 2 -MathML <MSUP> <MI>x</MI> <MN>2</MN> </MSUP> <MO>+</MO> <MN>4</MN> <MO>⁢</MO> <MI>x</MI> <MO>+</MO> <MN>4</MN> <MO>=</MO> <MN>0</MN> <EXPR> <EXPR> <EXPR> <MI>x</MI> <POWER/> <MN>2</MN> </EXPR> <PLUS/> <EXPR> <MN>4</MN> <TIMES/> <MI>x</MI> </EXPR> <PLUS/> <MN>4</MN> </EXPR> <E/> <MN>0</MN> </EXPR> 8
Η εξέλιξη της MathML Η έκδοση 1.0 ανακοινώθηκε τον Απρίλιο του 1998 Η έκδοση 1.01 ανακοινώθηκε το Ιούλιο του 1999 Η έκδοση 2.0 ανακοινώθηκε στις 01/12/1999, αναπτύχθηκε και εμπλουτίστηκε έως τις 21/10/2003. (http://www.w3.org/standards/history/mathml2) Η έκδοση 3.0 ανακοινώθηκε στις 27/04/2007. Η επίσημη ημερομηνία εφαρμογής της είναι στις 21/10/2010. (http://www.w3.org/standards/history/mathml3) 9
Οι στόχοι της MathML Κωδικοποίηση της μαθηματικής αναπαράστασης και του μαθηματικού νοήματος. Υλοποίηση της μετατροπής από και προς άλλα μαθηματικά μορφότυπα, και τα δύο παρουσιάσιμα και σημασιολογικά. Να επιτρέπει τη μεταφορά πληροφορίας με σκοπό συγκεκριμένους μεταγλωττιστές και εφαρμογές. Παροχή αποτελεσματικής εμφάνισης στον ιστό για μεγάλες εκφράσεις. Παροχή επεκτασιμότητας. Να είναι κατάλληλη για πρότυπα και άλλες τεχνικές μαθηματικής επεξεργασίας. Να είναι ανθρώπινη (αν και είναι πολύ περιγραφική), και απλή για το λογισμικό να παραχθεί και να επεξεργαστεί. 10
Γιατί MathML; MathML Διασύνδεση Μαθηματικών εκφράσεων διαμέσου εφαρμογών / προγραμμάτων 11
Πως γράφω κώδικα MathML; Χρησιμοποιώντας έναν απλό κειμενογράφο χρησιμοποιώντας τις ετικέτες της MathML Εξάγω τον κώδικα MathML από το πρόγραμμα που χρησιμοποιώ για σύνταξη Μαθηματικών Εκφράσεων. Χρησιμοποιήσω ελεύθερο λογισμικό (Formulator AMAYA, FireFox, OpenOffice,..). 12
Εξαγωγή από MathType: 13
Σύνταξη κώδικα MathML 1/4 14
Σύνταξη κώδικα MathML 2/4 15
Σύνταξη κώδικα MathML 3/4 16
Σύνταξη κώδικα MathML 4/4 17
Μειονεκτήματα της MathML Ο Internet Explorer δεν υποστηρίζει MathML. Χρειάζεται ένα add-on το Math-Player (διατίθεται δωρεάν). Δεν υποστηρίζει γραφικές παραστάσεις σχήματα. http://www.w3.org/math/xsl/pmathml2.xml 18
19
Επιλογή του τρόπου παρουσίασης Η ανάγνωση του κειμένου θα γίνεται με τα συνήθη προγράμματα ή θα απαιτείται επιπλέον λογισμικό; θα εξαρτάται από το λειτουργικό σύστημα; Θα υπάρχει η δυνατότητα αναζήτησης μαθηματικών όρων-σχέσεων στο κείμενο ή όχι; Θα είναι ένα στατικό κείμενο ή ο αναγνώστης ερωτήσεις, απαντήσεις ή διορθώσεις; θα επεμβαίνει με Η ποιότητα της εκτύπωσης του κειμένου είναι καθοριστική ή θα είναι μόνο για ανάγνωση στην οθόνη; Μελλοντικές μεταβολές στο κείμενο θα είναι εύκολες ή πολύπλοκες; Οι μαθηματικές σχέσεις θα μπορούν να χρησιμοποιηθούν σε άλλες μαθηματικές εφαρμογές με απλή αντιγραφή; Πόσο εύχρηστο είναι το λογισμικό συγγραφής του κειμένου; Ποιό κόστος έχουν τα προγράμματα που θα χρησιμοποιηθούν στη συγγραφή και στην παρουσίαση και πόσο εύχρηστα είναι αυτά; Υπάρχουν προβλήματα συμβατότητας με την ελληνική γλώσσα; 20
Συμπεράσματα Εάν μας ενδιαφέρει να προσανατολιστούμε στο νόημα και στην σημασία του περιεχομένου των μαθηματικών κειμένων που δημοσιεύουμε στις ιστοσελίδες τότε η MathML αποτελεί την καλύτερη επιλογή. Με την ανάπτυξη του σημασιολογικού ιστού (Web 3.0 Semantic Web) οι μηχανές αναζήτησης θα δίνουν την δυνατότητα στους χρήστες αναζητούν ιστοσελίδες του διαδικτύου με μαθηματικές εκφράσεις με κριτήριο το περιεχόμενο τους. 21
AbiMathView plugin http://helm.cs.unibo.it/mml-widget/ 22
Amaya http://www.w3.org/amaya/ 23
EzMath http://www.w3.org/people/raggett/ezmath/ 24
Formulator MathML Weaver http://www.mmlsoft.com/hdata/fml_home.php 25
Gemse http://www.andonyar.com/rec/2008-12/gemse/ 26
Integre MathML Equation Editor http://www.integretechpub.com/techexplorer/ 27
MathCast http://mathcast.sourceforge.net/home.html 28
MathEdit http://wme.lzu.edu.cn/mathedit/index.html 29
MathMagic equation editor http://www.mathmagic.com/ 30
http://www.study4exams.gr 31
http://digitalschool.minedu.gov.gr/ 32
http://digitalschool.minedu.gov.gr/modules/ebook/s how.php/dsgym-b105/2/1,5/unit=365 33
<?xml version="1.0" encoding="iso-8859-7"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/math/dtd/mathml2/xhtml-math11-f.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>mathml Πρότυπο </title> </head> <body> <math xmlns='http://www.w3.org/1998/math/mathml'> <mrow> <mi>x</mi> <mo>+</mo> <mn>5</mn> <mo>=</mo> <mn>200</mn> </mrow> </math> </body> </html> 34
Βασικές ετικέτες MathML Ετικέτα Περιγραφή Πλήθος Ορισμάτων <mi> </mi> Ονομασία μιας μεταβλητής, μιας συνάρτησης, μιας σταθεράς κτλ 1 <mn> </mn> Αριθμός 1 <mo> </mo> Τελεστής, π.χ. πρόσθεσης, παρένθεση κτλ. 1 <mtext>. </mtext> Κείμενο 1 <mspace>.. </mspace> Κενό διάστημα 1 <ms>. </ms> Αλφαριθμητικό 1 35
Ετικέτες Γενικής Παρουσίασης MathML Ετικέτα Περιγραφή Πλήθος Ορισμάτων <mrow> </mrow> Ομαδοποιεί πολλές ετικέτες σε μία οριζόντια συνιστώσα N <mfrac> </mfrac> Κλάσμα 2 <msqrt> </msqrt> Τετραγωνική ρίζα 1 <mroot> </mroot> Ρίζα τάξης k 2 <mstyle> </mstyle> Αλλαγή στυλ εμφάνισης 1 36
Ετικέτες Εκθετών και Δεικτών MathML Ετικέτα Περιγραφή Πλήθος Ορισμάτων <msub> </msub> Δείκτης 2 <msup> </msup> Δύναμη 2 <msubsup>. </msubsup> <munder> </munder> Δείκτης και δύναμη 3 Βάση και κάτω από την βάση 2 <mover> </mover> Βάση και πάνω από την βάση 2 <munderover> </munderover> Κάτω και πάνω από την Βάση 3 37
Ετικέτες Πινάκων MathML Ετικέτα Περιγραφή Πλήθος Ορισμάτων <mtable> </mtable> Πίνακας N <mtr> </mtr> Νέα γραμμή πίνακα Ν <mtd> </mtd> Νέα εισαγωγή στην γραμμή του πίνακα (κελί) 1 38
Βασικά στοιχεία παρουσίασης <mi> ονομασία, π.χ. μιας μεταβλητής, μιας συνάρτησης, μιας σταθεράς κτλ. Παράδειγμα: <mi>cos</mi> παρουσιάζει: cos Παράδειγμα: <mi>x</mi> παρουσιάζει: x <mo> Τελεστής, π.χ. πρόσθεσης, παρένθεση κτλ. Παράδειγμα: <mo>(</mo> παρουσιάζει: ( Παράδειγμα: <mo> </mo> παρουσιάζει: S 39
Απλό παράδειγμα <mi>x</mi><mo> </mo> <mo>(</mo> <mn>3</mn><mo>+</mo><mi>y</mi> <mo>)</mo> x (3 + y) 40
Εισαγωγή MathML σε μια σελίδα Πρέπει να προσδιοριστεί επακριβώς πότε αρχίζει και πότε τελειώνει το τμήμα της MathML σε μια σελίδα Το τμήμα της MathML πρέπει να βρίσκεται ανάμεσα στις ετικέτες: <math> και </math> Παράδειγμα: <math> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo> </mo><mn>4</mn> </math> 2 b 4 41
Επιπλέον παραδείγματα b 2 4 ac <math> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo> </mo> <mn>4</mn> <mi>a</mi> <mi>c</mi> </math> <math> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo> </mo> <mn>4</mn> <mo>&invisibletimes;<mo> <mi>a</mi> <mo>&invisibletimes;<mo> <mi>c</mi> </math> 42
Επιπλέον παραδείγματα <math display='block'> <mrow> <msup> <mi>x</mi><mn>2</mn> </msup> <mo>+</mo> <msup> <mi>y</mi><mn>2</mn> </msup> <mo>=</mo> <msup> <mi>r</mi><mn>2</mn> </msup> </mrow> </math> 43 x2 y2 r2
Χρήσιμες Διευθύνσεις http://www.w3.org/amaya/ http://www.ams.org/publications/authors/tex/tex http://www.w3.org/math/software/mathml_softwar e_cat_editors.html http://www.w3.org/math/ http://www.wolfram.com/products/webmathematic a/ 44
http://www.webscience.auth.gr 45