לדלג לתוכן

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]

בניגוד מוחלט להמלצות, לטיוטות אין כל חשיבות או מעמד רשמי מטעם הארגון.

אפיון טיוטה ראשונה

(זמינה לציבור)

גרסה סופית

(תאריך המלצה)

MathML 1.0 15 במאי 1997[4] 7 באפריל 1998[5]
MathML

1.01

(המלצה קודמת) 7 ביולי 1999[6]
MathML 2.0 1 בדצמבר 1999[7] 21 באוקטובר 2003[8]
MathML 3.0 27 באפריל 2007[9] 10 באפריל 2014[10]
MathML 4.0 26 בינואר 2019[11] (טרם הומלצה)

מטרות השפה

לאור המגבלות של HTML, חוקרים נאלצו להשתמש בתמונות על מנת להציג נוסחאות מתמטיות מורכבות שהכילו בהן סימונים שהתפרשו אופקית (כגון קו שבר, סימון שורש), או אנכית (כגון ווקטורי עמודה) ולא היו ניתנות להצגה פרופורציונלית ומיטבית בעזרת תווי יוניקוד וטבלאות HTML בלבד. שימוש זה הצטבר במשך שנים, והועלתה ההצעה לשכלל את המצב הקיים ולשכלל את משקל ואיכות התמונה (לדוגמה, כפי SVG נתנה מענה לתצוגת תרשימים) במקום לפתח שפת סימון חדשה ייעודית למתמטיקה. לאחר דיונים הוועדה נמנעה מלאמץ את השיטה הקיימת לאור הטיעונים הבאים.[2]

שימושיות

  • לאפשר לקוראים לסמן ולהעתיק חלקים מסוימים מהנוסחה כטקסט רגיל.
  • לאפשר לקוראים לשנות את הגדרות הגופן, את גודל הטקסט, וצבעו כרצונם דרך הדפדפן.
  • לאפשר חיפוש אוטומטי של קטעים בתוך סימונים מורכבים, בעזרת הדפדפן, או בעזרת שאילתה בבסיס נתונים.
  • לאפשר ליישומוני רשת בדפדפן לגשת לתוכן המתמטי שנמצא בתוך הנוסחה עצמה, לקרוא חלקים ממנה, לשנות אותה בזמן הריצה אצל צד הלקוח (במחשב של הקורא) ובכך לאפשר שאלונים אינטראקטיביים.
  • לאפשר לתכנות מחשב (לא בהכרח דפדפנים) לפלוט ולקלוט בקלות ביטויים מתמטיים בלי צורך בספריות מיוחדות לעיבוד תמונה ועריכה גרפית.

תחזוקה ועריכה

  • קליטת ושליפת הסימונים כטקסט (מקודד לשפת סימון) תמיד תהיה חסכונית ומהירה יותר מאשר קובצי תמונה, במיוחד בבסיסי נתונים גדולים.
  • להשתמש בשפת סימון עם התחביר המוכר של XML הישר בתוך קובץ ה־HTML בלי צורך בעורך ייעודי.
  • לעודד משתמשי TeX בקהילה המדעית לעבור ל־MathML ולהמיר את העבודה שלהם בקלות.
  • לאפשר למנועי פריסת תצוגה לשכלל את ההצגה של התוכן המתמטי באופן אחיד בכל הרשת, גם כעבור זמן רב מאז שהתכנים פורסמו מבלי שהעורכים יצטרכו לשנות את המאמרים שכבר פרסמו כדי להבטיח איכות הצגה מיטבית ועדכנית.

נגישות

  • למנוע פגיעה בנגישותם של קוראים לקויי ראייה, כתוצאה מהדחיסה שמורידה את איכות התמונה בשביל להקל על העומס שנוצר על פס הרוחב של השרתים שמאחסנים את קובצי התמונות של הסימונים.
  • לאפשר לתכנות מחשב ודפדפנים לדובב סימוני MathML עבור קוראים שסובלים מעיוורון.
  • להתאים את התצוגה של הסימונים לצגים שונים. טיעון זה כולל תצוגה מותאמת עבור צגים לגובה וצגים לרוחב מבלי לגרוע בנגישות.

דוגמה

נוסחת השורשים הידועה,

תתואר ב־MathML כך:

<mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>&#xB1;<!--plus-minus sign--></mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>&#x2062;<!--invisible times--></mo>
            <mi>a</mi>
            <mo>&#x2062;<!--invisible times--></mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&#x2062;<!--invisible times--></mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
</mrow>
השוואה לשפות סימון אחרות
שפת סימון תיאור
TeX
x=\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
troff/eqn
x={-b +- sqrt{b sup 2 – 4ac}} over 2a
OpenOffice Math

LibreOffice Math

x={-b plusminus sqrt {b^2 – 4 ac}} over {2 a}
x={-b +- sqrt {b^2 – 4ac}} over {2a}
x={-b ± sqrt {b^2 – 4ac}} over {2a}
ASCIIMath
x=(-b +- sqrt(b^2 - 4ac))/(2a)

הפרדה בין ההצגה והמשמעות

MathML עושה הפרדה בין ההצגה והמשמעות של הסימון. הסיבה לכך היא כדי לאפשר למשתמשים להחליט על העדפות האישיות שלהם כיצד ירצו לתקשר את הסימון. דוגמה מהיבט הנגישות, ליקויי ראיה מעדיפים לתת לקורא מסך לדובב את משמעות הסימון במקום לקרוא אותו. דוגמה נוספת מהיבט התחזוקה, ראוי לאחסן רק את משמעות הסימונים בבסיס נתונים כדי לחסוך פס רוחב, מקום, וזמן חיפוש, אבל את ההצגה עצמה אפשר לחולל רק אם יש באמת צורך בהצגה של התוכן.

קישורים חיצוניים

ויקישיתוף מדיה וקבצים בנושא MathML בוויקישיתוף

הערות שוליים

  1. ^ 14:00-17:00, ISO/IEC 40314:2016, ISO (באנגלית)
  2. ^ 1 2 3 4 Mathematical Markup Language (MathML) Version 2.0 (Second Edition), www.w3.org
  3. ^ Standards FAQ - W3C, www.w3.org
  4. ^ Mathematical Markup Language (MathML), www.w3.org
  5. ^ Mathematical Markup Language (MathML), www.w3.org
  6. ^ Mathematical Markup Language (MathML) 1.01 Specification, www.w3.org
  7. ^ Mathematical Markup Language (MathML) Version 2.0, www.w3.org
  8. ^ Mathematical Markup Language (MathML) Version 2.0 (Second Edition), www.w3.org
  9. ^ Mathematical Markup Language (MathML) Version 3.0, www.w3.org
  10. ^ Mathematical Markup Language (MathML) Version 3.0 2nd Edition, www.w3.org
  11. ^ Mathematical Markup Language (MathML) Version 4.0 -- single page HTML + MathML Version, w3c.github.io