MathML
MathML (ראשי תיבות של Mathematical Markup Language) היא שפת סימון לתיאור סימונים מתמטיים. מטרת השפה היא לשלב ולהציג סימונים מתמטיים מורכבים בצורה מסודרת בדפי אינטרנט ובמסמכים אחרים ללא צורך בשילוב תמונות, סימון TeX, עיבוד JavaScript, או בתוספות צד־שלישי לדפדפן. השפה היא חלק מ־HTML5, ותקן ISO/IEC DIS 40314 החל משנת 2015.[1] היסטוריהבעיית קידוד הסימונים המתמטיים במחשבים הייתה קיימת עוד לפני האינטרנט. משתמשי דואר אלקטרוני נהגו לקודד סימונים מתמטיים בעזרת תווי ASCII. מספר שיטת ושפות לסימון מתמטי, לדוגמה TeX, היו נמצאות בשימוש נרחב כבר בשנת 1992 מעט לפני שהאינטרנט הפך לכלי פופולרי לשיתוף מידע בין מדענים וגולשים. HTML – שפת הסימון של הרשת – נוצרה בדיוק למטרת שיתוף המידע בין מדענים באקדמיה, ולמרות זאת, הדרכים לשתף סימונים מתמטיים בעזרת HTML היו מוגבלות מאוד. במקום זאת נעשה שימוש בתמונות כדי להציג את הנוסחאות המתמטיות בדפי הרשת. תמונות אלה בדרך כלל לא היו קריאות כי סבלו מטשטוש שנוצר מדחיסת תמונה, ובנוסף גרמו לקושי בעריכה ותחזוקה עבור החוקרים.[2] ארגון ה־W3C זיהה כי המחסור בדרכים יעילות לשיתוף מסרים מדעיים ברשת היווה בעיה רצינית וקשה שדרשה תקינה. בשנת 1994 התקבלה ההצעה הראשונה שכונתה HTML Math עבור HTML 3.0, שאותה הגיש דֵייב רָאגֶט. בשנת 1995 נעשה דיון נוסף מסביב לבעיה בכנס של ה־W3C בדרמשטאדט, בנובמבר 1995 נציגים מטעם Wolfram Research הגישו הצעה נוספת ל־W3C. במאי 1996 בכנס ה־Digital Library Initiative בשמפיין, אלינוי שוב הועלה הנושא בין גורמים שונים. אחרי הכנס הזה הוקמה הוועדה לעריכה מתמטית ב־HTML (באנגלית HTML Math Editorial Review Board) הראשונה מטעם ה־W3C שהוקצתה לאתגר. במשך הזמן הוועדה התרחבה והשתכללה, במרץ 1997 הוועדה התחדשה כ־קבוצת העבודה למתמטיקה מטעם ה־W3C (באנגלית W3C Math Working Group) הראשונה. קבוצת העבודה השנייה למתמטיקה מטעם ה־W3C הוקמה ביולי 1998, קבוצה זאת המשיכה לעבוד על המשימה עד לסוף שנת 2000.[2] MathML נוצרה כדי לתת מענה מיטבי לתחומי עניין והתמחות מגוונים במתמטיקה, מדע, והנדסה. בנוסף לכך הוועדה דאגה שההצעה הסופית תתחשב גם בנגישות עבור לקויי ראייה. חוקרים מטעם Wolfram Research שהיו חלק מהוועדה הביאו אתם ניסיון וידע קודם מהפיתוח של Mathematica 3.0 שהתמודדה גם היא עם בעיות דומות בהצגה של מבנים מתמטיים. בוועדה השתתפו עוד מדענים ואנשי מחקר רבים שתרמו לעיצובה של MathML, ובניהם נציגים מטעם מייפל, IBM, אוניברסיטת מערב אונטריו, INRIA (המכון הצרפתי לחקר מדעי המחשב), הוצאת Elsevier, ונוספים. MathML הושפעה מפרויקט ה־OpenMath, של קב' עבודה מס' 12083 מטעם ארגון התקינה הבינלאומי (ISO). האגודה האמריקאית למתמטיקה (AMS) לקחה תפקיד מרכזי בעיצובה של MathML.[2] אפיונים והמלצותהמלצות מטעם W3C נחשבות בפועל לתקני רשת.[3] בניגוד מוחלט להמלצות, לטיוטות אין כל חשיבות או מעמד רשמי מטעם הארגון.
מטרות השפהלאור המגבלות של HTML, חוקרים נאלצו להשתמש בתמונות על מנת להציג נוסחאות מתמטיות מורכבות שהכילו בהן סימונים שהתפרשו אופקית (כמו קו שבר, סימון שורש), או אנכית (כמו וקטורי עמודה) ולא היו ניתנות להצגה פרופורציונלית ומיטבית בעזרת תווי יוניקוד וטבלאות HTML. שימוש זה הצטבר במשך שנים, והועלתה ההצעה לשכלל את המצב הקיים ולשפר את משקל ואיכות התמונה (לדוגמה, כפי ש־SVG נתנה מענה לתצוגת תרשימים ברשת) במקום לפתח שפת סימון חדשה ייעודית למתמטיקה. לאחר דיונים הוועדה נמנעה מלאמץ את השיטה הקיימת לאור הטיעונים הבאים.[2] שימושיות
תחזוקה ועריכה
נגישותהשימוש הנפוץ בתמונות עבור סימונים מתמטיים התלווה בדחיסה תמונה שהקלה על העומס שנוצר על השרתים שמאחסנים את קובצי התמונות. בתמורה לכך הטקסט היה פחות קריא, והגדלתן הייתה יוצרת הצגת סימונים מטושטשים ולא ברורים.
דוגמהנוסחת השורשים הידועה:
תתואר ב־MathML כך: <mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mrow>
<mo>-</mo>
<mi>b</mi>
</mrow>
<mo>±<!--plus-minus sign--></mo>
<msqrt>
<mrow>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>-</mo>
<mrow>
<mn>4</mn>
<mo>⁢<!--invisible times--></mo>
<mi>a</mi>
<mo>⁢<!--invisible times--></mo>
<mi>c</mi>
</mrow>
</mrow>
</msqrt>
</mrow>
<mrow>
<mn>2</mn>
<mo>⁢<!--invisible times--></mo>
<mi>a</mi>
</mrow>
</mfrac>
</mrow>
הפרדה בין ההצגה והמשמעותMathML עושה הפרדה בין ההצגה והמשמעות של הסימון. הסיבה לכך היא כדי לאפשר למשתמשים להחליט על העדפות האישיות שלהם כיצד ירצו לתקשר את הסימון. דוגמה מהיבט הנגישות, ליקויי ראייה מעדיפים לתת לקורא מסך לדובב את משמעות הסימון במקום לקרוא אותו. דוגמה נוספת מהיבט התחזוקה, ראוי לאחסן רק את משמעות הסימונים בבסיס נתונים כדי לחסוך פס רוחב, מקום, וזמן חיפוש, אבל את ההצגה עצמה אפשר לחולל רק אם יש באמת צורך בהצגה של התוכן. תחביר ההצגהתחביר ההצגה (באנגלית: "presentation markup"), הוא התחביר שמתאר את צורת ההצגה של התוכן ב־MathML. תחביר התוכן
תחביר התוכן (באנגלית "content markup"), הוא התחביר שמתאר את משמעות התוכן ב־MathML. את התחביר הזה עצבו במקור אנשי OpenMath, ומאוחר יותר בשיתוף פעולה עם מעצבי MathML.[21] למבנה התחביר קיים דמיון רב לשפות Lisp, משתמשים בתגיות <apply>
<eq/>
<ci>x</ci>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<minus/>
<ci>b</ci>
</apply>
<apply>
<root/>
<apply>
<minus/>
<apply>
<power/>
<ci>b</ci>
<cn>2</cn>
</apply>
<apply>
<times/>
<cn>4</cn>
<ci>a</ci>
<ci>c</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<times/>
<cn>2</cn>
<ci>a</ci>
</apply>
</apply>
</apply>
ראו גם
קישורים חיצוניים
הערות שוליים
|