למה כל כך קשה לכתוב בעברית?

מעשה חושב, יולי 1996

© 1996 יונתן רוזן, כל הזכויות שמורות

למה כל כך קשה לכתוב בעברית? כמעט כל מי שהשתמש במחשב לכתיבה בעברית שאל שאלה זאת. קשה להתרגל למעבד התמלילים, קשה להעביר טקסט ממערכת למערכת.

התשובה קלה: זה פשוט קשה ומסובך.

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

יתר על כן, אין אחידות בקידוד.

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

גם על הקידוד לא יכולנו להסכים. בעברית כידוע 27 אותיות, כולל הסופיות, לעומת 26 באנגלית. כולנו מיפינו את האותיות ב' עד ת' על האותיות A עד Z או a עד z, אולם לא הצלחנו להסכים על מיקום האות א. במשך הזמן נוצרו מצבים שאפילו באותו מתקן השתמשו בקודים שונים ובצורות אחסון שונות.

כאשר התפשט השימוש בקודים בני 8 סיביות זכתה העברית למקום נפרד, שלא על חשבון האותיות האנגליות, אולם גם כאן נוצרו שלושה קודים בשימוש רחב: קוד המחשב האישי, בו האות א' במקום 128, קוד יבמ (Bulletin), בו ה-א' במקום 65, וקוד אייס"ו (ISO 8859-8), בו ה-א' במקום 224. בעיה זו אינה ייחודית לעברית, ומפתחי Windows החליטו לנטוש את קודי המחשב האישי בכל השפות ולעבור לקודים תקניים מסדרת ISO 8859.

הכיווניות

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

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

לדוגמה, ניקח את השורה הבאה. מבנה העימוד שלה:

"על השלט התנוססו בגאווה המילים King
David."

לאחר עריכה קלה ושינוי העימוד:

"על השלט התנוססו המילים King David."

ואם נבקש לשוב ולחזור למצב הראשון נקבל עתה:

"על השלט התנוססו בגאווה המילים David.
King"

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

על השלט התנוססו בגאווה המילים King, David.

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

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

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

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

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

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

אלגוריתם הכיווניות המשתמעת

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

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

מה קובע התקן?

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

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

במקרים הנפוצים האלגוריתם מנחש נכון את כוונתנו: 100, 100.00, +150, $200, 17%, 31/12/1996, 11:00 - כל אלה מתאימים לרצוי. יש מקרים שמתקבלת תוצאה מפתיעה: כאשר נקיש מ, מינוס, 1, 0 נקבל מ10- ולא מ-10 שכנראה רצינו, אולם מקרים אלה מועטים, ברוב המקרים הניחוש טוב.

תווים בלתי נראים

הכיווניות המשתמעת מגדירה מספר תווי עזר שאינם נראים.

החשובים הם Right to Left Mark ו-Left to Right Mark, או בקיצור RLM ו-LRM. ה-RLM הוא תו בלתי נראה שכיוונו מימין לשמאל, וה-LRM תו בלתי נראה שכיוונו שמאל לימין. כאשר קטע טקסט מתחיל או מסתיים בתווים חסרי כיוון, ניתן להוסיף תווים אלה על מנת שהתווים חסרי הכיוון יהיו מוקפים תווים בעלי כיוון ויקבלו את הכיוון הרצוי על פי הכללים שמנינו.

העברית באינטרנט

האינטרנט מעצם טבעו מקשר בין מערכות שונות, כאשר למשתמש אין מידע על המערכת אתה הוא מתקשר. הבעיות הכרוכות ביישום העברית ברורות. למזלנו, רב המערכות מבוססות על Windows או על Unix ולכן ניתן ללא קושי להסכים על שיטת הקידוד של התווים (קוד אייס"ו, א' = 224). ליישומי דואר אלקטרוני באינטרנט מקובלת שיטת הכיווניות החזותית, אולם היא אינה מתאימה ליישומי ה-World Wide Web ושפת HTML. בשלב זה, כאשר אין עדיין יישום תקני של שפות מלבד אנגלית ב-WWW, אנו נאלצים להשתמש בעברית חזותית למרות הקשיים, אולם התקינה המתגבשת בגופים האחראים לתקינה באינטרנט, IETF ו-W3C, מבוססת על כיווניות משתמעת.

יישום הכיווניות המשתמעת

מכון התקנים אימץ בזמנו את עקרונות הכיווניות המשתמעת, ותוכנית העבודה כוללת את אימוץ האלגוריתם המלא. במספר מערכות מיושמת הכיווניות המשתמעת על פי העקרונות שאומצו, הנפוצות ביותר הן Windows ו-Macintosh.

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

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

המחבר

יונתן (ג'וני) רוזן הוא נציג אילא בוועדת תקינה 1109, התאמת מחשבים לעבודה בעברית. במסגרת הוועדה השתתף בוועדות תקינה בינלאומיות שעסקו בעברית. יונתן, שהיה מראשוני ממר"מ, פרש לפני שנה מיבמ, שבה מילא תפקידים שונים בתחומי הבנקאות והתקשורת, והוא כעת יועץ עצמאי בתחום מחשבים ותקשורת נתונים.