יום רביעי, יולי 25, 2007

לך תסביר - למחשב


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

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

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

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

אינטראקציה בסיסית כזו היא לא טריוויאלית בין מכונות. נסו למשל לחשוב כיצד תייצגו את העובדה שמדובר בעט בצבע כחול: האם תשלחו הודעה למכונה אחרת שאומרת: this pen is blue. ואז המכונה השניה צריכה לפרש את רצף התווים blue כמשמעות של הצבע הכחול.
ז"א, עצם ההסכמה על שמות העצם היא כבר בעייתית.
חישבו גם על הבעת הקשר בין שמות העצם. הטענה: "הצבע של... הוא ..." היא דבר שנראה טריוויאלי בשפה מדוברת (בעיקר כי כולנו שכחנו את היום שלא ידענו את זה) אבל ההבעה של התכונה הזו באופן מבוזר (מכונות שונות יכולות להוסיף תכונות ושמות עצם משל עצמם) היא לא טריוויאלית.
ז"א, גם אם נלמד שתי מכונות לדבר על עטים וצבעים, איך נעביר את זה גם למכונה שלישית, מבלי לכתוב לה תוכנה משל עצמה (או להתקין את התוכנה שכתבנו לשתי הראשונות). כיצד התוכנה השלישית תוכל להוסיף שמות עצם וישויות לעולם המושגים שלנו?

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

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

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

the color of this pen is blue
this sentence is in english

בצירוף מידע שקיים אצלו בצורה:

"color of" זה הצורה האנגלית של "הצבע של"
"english" זה אנגלית

אז המחשב יוכל להסיק:
הצבע של this pen is blue.

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

נשים לב לעוד נקודה: בהודעה מהדוגמה האחרונה, אנו מתייחסים לעט מסוים (this pen). ולצבע מסוים (כחול, blue). ז"א המחשבים צריכים להסכים על שמות עצם. בעולם של הרשת הסמנטית, המקבילה של שמות העצם הם ה URI. כל "דבר" שצריך לדבר עליו מבוטא כ URI ייחודי וזאת על מנת שמכונות יוכלו לתקשר על אותם דברים.
כך שכשאני מדבר על עט מסוים אני בעצם אומר: יש לי אובייקט X (עם מזהה ייחודי - URI) שהטיפוס שלו הוא "עט": the type of X is a pen. כמובן שגם את שם העצם "עט" אני צריך לזהות עם מזהה ייחודי משלו. ההבנה שמדובר בעצם מוארך המכיל דיו ומשמש לכתיבה היא מעבר להבנתו של המחשב - זה כבר תלוי בהגדרות שלנו. בתקשורת בין סוכנים מבוזרים, מה שמעניין אותנו היא אותה הסכמה בין המכונות.

כך ש RDF (ביחד עם URIs) מאפשר למחשבים לתקשר ולחבר בין פיסות מידע שנוצרות באופן מבוזר, על מערכות שונות. עצם היכולת להסכים על טענות מסוימות והיכולת להסיק מהן מידע חדש (ידע) הוא מה שעומד בבסיס השיטה.
ל RDF עצמו יש מספר חלופות ("טעמים" - flavors). יש RDF שמבוסס על XML, ויש כזה שמבוסס על היגדים הרשומים בצורה טקסטואלית - N3.

זהו בינתיים.
תגובות/הארות/הערות יתקבלו בברכה.

- סחבק

תוויות:

0 Comments:

הוסף רשומת תגובה

<< Home