מושג שחוזר על עצמו בדיון על הרשת הסמנטית הוא אותן "טכנולוגיות של רשת סמנטית". אם נרצה להבין את המשמעויות היותר נרחבות של הרשת הסמנטית עם כיוונים אפשריים, כולל נגזרות עסקיות, רצוי להתמצא קצת יותר בפרטים הטכנים. אז להלן מבוא קצר לטכנולוגיות של הרשת הסמנטית.
לפני שנמשיך, הערה שהיא גם אזהרה וגם התנצלות: פוסט שכזה נוטה מטבעו לצד הטכני של הדברים ואני מתנצל מראש אם אני משתמש במושגים שלא מובנים לכל קהל הקוראים. השתדלתי להפנות למקורות שמסבירים בצורה בהירה מושגים מהותיים שחוזרים על עצמם. מצד שני, הפוסט הזה הוא עדיין פוסט בבלוג, ולא נועד להוות מקור ממצה לכל המידע הנדרש, אלא רק מעין מורה נבוכים לטכנולוגיות העיקריות של הרשת הסמנטית. חלק מההסברים הם "על רגל אחת", בעיקר משיקולי מקום וחשיבות העניין לטקסט הכללי. למידע יותר מקיף וממצה רצוי לעקוב אחרי הלינקים השונים המובילים למקורות מידע יותר נרחבים וממצים.
התמונה הגדולה
הארכיטקטורה של הרשת הסמנטית לא נולדה בריק. היא מתבססת במידה רבה על טכנולוגיות ומפרטים שנולדו עוד לפניה ולמעשה בונה עליהם. מבחינה טכנית, הרשת הסמנטית בנויה בשכבות. כל שכבה מתבססת על הקודמות לה ומביאה איתה ערך מוסף:
השכבות הטכנולוגיות של הרשת הסמנטית, מתוך "W3C Semantic Web Activity".
שכבות ה URI, Unicode וה – XML קיימות ללא קשר לרשת הסמנטית, יש להן קיום משל עצמן כבר כיום ברחבי האינטרנט.
שכבת ה RDF באה להגדיר את מודל המידע הבסיסי שבעזרתו מתארים ישויות ויחסים בינהן.
שכבת האונטולוגיה (Ontology) היא השכבה הטכנית שמאפשרת להגדיר אוצר מילים ויחסים בין אוצר מילים אחד למשנהו.
שכבת הלוגיקה מאפשרת לנו להגדיר את הדרך שבה אנו מסיקים מידע ממידע קיים בצורה של RDF, וכיצד אנו מוכיחים נכונות של מידע כזה בצורה אוטומטית.
שכבת ה Trust היא השכבה הטכנית שמאפשרת לנו לבנות סכמות של אמון – להגדיר למי אני מאמין ובאיזה מקרה, ובצורה כזו לתת לתוכנת מחשב להסיק מסקנות רק על פי מקורות שאני סומך עליהם.
באופן מעשי, מפרטים טכניים מוגדרים היטב קיימים לשכבות ה RDF והאונטולוגיה, ועל כך מיד. שכבות הלוגיקה והאמון עוד לא מוגדרות ברמה כזו שמאפשרת עבודה עם מפרט מוגדר היטב.
RDF
RDF הם ראשי התיבות של Resource Description Framework. בבסיסו, זהו מפרט שנותן לנו את האפשרות לומר כל דבר על כל דבר. חשוב להבין שאומנם מבחינה טכנית RDF מתבסס על XML לצורכי כתיבה והעברת מידע, אך בפועל RDF מהווה תשתית לוגית לתיאור ישויות.
בבסיסו RDF מפרט כיצד ניתן לכתוב היגדים בצורה של שלשות: <subject, predicate, object> ז"א: object מתייחס ל subject באמצעות predicate (ללוגיקאים שבינינו: predicate הוא יחס שמתקיים עבור הזוג <subject,object>).
כך למשל אני יכול לכתוב (קונספטואלית, זה אינו התחביר האמיתי):
this pen, color-is, blue.
ז"א: הצבע של העט הזה הוא כחול.
ובמקרה זה: subject = this pen, predicate = color-is, object = blue.
ובצורה כזו אני יכול לרשום היגדים נוספים דומים:
this pen, belongs-to,lior
this pen, shape,round
נשים לב שעל מנת שמכונה תדע להבין כי אכן מדובר באותה ישות, עלינו להתייחס לעט מסוים באופן יחודי. וכאן בא לעזרתנו ה URI: מזהה יחודי שמאפשר לזהות באופן חד ערכי עט מסוים, או אפילו את המושג עט. הרעיון של URI אינו חדש לנו ומוכר כבר מהאינטרנט – כתובות אתרים הן דוגמאות ל URI כאלה.
למעשה, RDF מגדיר שה subject וה predicate חייבים להיות URIs ואילו שדה ה object יכול להיות URI או מחרוזת תווים כלשהי.
השימוש ב URI מאפשר לנו להתייחס לאותן ישויות (מכיוון שיש להן URI קבוע כלשהו), ע"י אותן התכונות (מכיוון שגם ה predicates מזוהים ע"י URIs).
כך סדרה של היגדים כזו יוצרת למעשה מן רשת של קשרים בין עצמים שונים – הצמתים הם ה objects,subjects והקשתות הם ה predicates:
למעשה, בבסיסו של RDF עומד מודל הגרף שהוא המודל שמאפשר לנו לתאר ישויות וקשרים בינהן בעולם.
ולמה זה חשוב?
ברגע שנדע לתאר ישויות בעזרת גרף כזה, המחשב יכול להכנס למשחק. גרפים שכאלה הם מהמבנים היותר שימושיים במדעי המחשב והרבה יותר קל למצוא או לכתוב אלגוריתם ממוחשב שפועל על גרף לוגי שכזה.
קיימים המון מחקרים על צורות שונות לניתוח ועיבוד של גרפים כאלה ע"י מחשבים. עבור תוכנות, מבנה הגרף הוא מבנה טבעי לניתוח קשרים ותכונות בין ישויות.
כשניגשים להתעמק ב RDF חשוב לזכור שני דברים:
1. RDF הוא מודל מבני לכתיבת היגדים שגוזר גרף של ישויות וקשרים בינהם – הוא לא כופה שום אוצר מילים מסוים או דרך להסכים על אוצר מילים שכזה.
2. שאלת התחביר היא חשובה, אך משנית לרעיון העיקרי של מודל הגרף. באופן רשמי קיים תחביר מבוסס XML ל RDF וזהו התחביר המומלץ מכיוון שהוא קל לעיבוד ע"י מחשב. תחביר נוסף שקיים הוא: N3, שהוא צורה יותר קריאה (לבני אדם) לכתוב RDF. הוא נוצר בעיקר כדי לסייע בלימוד RDF ולא נועד, בעקרון, לשימוש נרחב למרות שהתחביר מוגדר היטב.
RDFS: RDF Schema
עכשיו כשיש לנו דרך לתאר ישויות, אנחנו צריכים לתאר את הישויות בעזרת אוסף של תכונות וערכים שאנחנו מכירים. היינו רוצים שגם אדם אחר יכול לכתוב תוכנית שתוכל להתייחס לערכים ולאוצר המילים שבהם אנחנו משתמשים לתיאור הישויות שלנו (למשל תכולת מחסן הציוד המשרדי שלנו).
התיאור הזה צריך להיות גם הוא מובן ע"י מכונה שתדע להתייחס לערכים האלה בהתאם.
לדוגמה, אם אני מפרסם קטלוג של ציוד משרדי, אני צריך לפרסם את העובדה שתכונת הצבע נקראת color-of. כעת תוכנות שמחפשות ציוד משרדי על פני קטלוגים יוכלו לשייך את המוצרים שלי לקבוצת המוצרים הכחולים ע"י בחינת הערך המתאים.
יתרה מזאת, אני אוכל גם להגדיר שתכלת הוא סוג של כחול כך שתוכנה שתחפש עטים כחולים ופוגשת עט בצבע תכלת, תוכל "להבין" שמדובר בעט שהוא גם כן כחול.
הדרך שאנו יכולים להגדיר ישויות שכאלה היא ע"י שימוש ב RDF Schema.
RDFS הוא מפרט שמאפשר לנו לתאר אוצר מילים לתיאור ישויות אחרות ואת הקשרים בין המושגים המוגדרים.
באופן קצת יותר פורמלי, RDFS מאפשרת לנו להגדיר:
1. תכונות של ישויות. לדוגמה: "שייך ל-", "נוצר על ידי", "מנהל את" וכו'
2. הגבלות על תכונות. לדוגמה: התכונה "שייך ל-" יכולה להצביע רק לישויות שהן מהמחלקה של "בן-אדם".
3. מחלקות (classes) של ישויות ע"י הגדרת אוסף התכונות ששייכות למחלקה המדוברת והטיפוסים (המחלקות) שלהם.
4. יחסים בין מחלקות (ירושה). לדוגמה: "מכונית" היא סוג של "כלי רכב".
מבחינה תחבירית סכמות של RDF כתובות ב RDF בעצמן. בסופו של דבר אנחנו עוסקים בתיאור ישויות, במקרה דנן הישויות הן המושגים שאנחנו מגדירים והקשרים בינהן, אך אנחנו עדיין עוסקים בהגדרה של "משהו". העובדה הזו היא חשובה מכיוון שהיא מאפשרת לנו לקרוא סכמות של RDFS ו"להבין" אותן, כמו שאנחנו קוראים מסמכי RDF.
OWL
OWL הן ראשי התיבות של Web Ontology Language (היפוך סדר האותיות הוא מכוון). OWL היא שפה שמכוונת לתאר אוסף ישויות ואת הקשרים בינהן (=אונטולוגיה).
אם זה נשמע לכם מוכר – זה לא במקרה: OWL באה למלא תפקיד זהה לזה של RDFS. אך OWL, להבדיל מ RDFS היא בעלת כוח הבעה רב הרבה יותר, OWL היא למעשה שכלול של RDFS. המפרט המלא של OWL נותן לנו להגדיר, בגדול, כל דבר שנרצה וכל סוג של קשר בין ישויות.
הבעיה, כמו תמיד במיחשוב, היא שכוח הבעה שכזה דורש כוח מיחשוב גדול מאוד, ולפעמים אפילו לא סביר. למעשה, לא ניתן לממש מסיק שיעשה שימוש בכל כוח ההבעה ש OWL נותנת, מסיבות של סיבוכיות חישובית.
לאור העובדה הזו, נוצרו מספר גרסאות (variants\flavors) שונות ל OWL. כל גרסה כזו ממירה סיבוכיות בכוח הבעה חלש יותר.
קיימות 3 גרסאות ל OWL. בסדר סיבוכיות עולה הן:
OWL Lite: זו הגרסה הקלה ביותר מבחינת אפשרויות החישוב שלה, אך גם בעלת כוח ההבעה הקטן ביותר.
OWL DL: זו גרסת הביניים שמאפשרת לנו לתאר את רוב הדברים שכנראה ניתקל בהם באופן מעשי. OWL DL מבוססת על Description Logic (מכאן השם). למעשה, ב OWL DL אנחנו מגדירים את הישויות שלנו באמצעות שימוש בפעולות על קבוצות (חיתוך, איחוד וכו'). וכל קבוצה של ישויות (מחלקה) מוגדרת על פי תכונה או על פי קבוצות אחרות. לדוגמה: קבוצת העטים הכחולים היא החיתוך של קבוצת העטים וקבוצת העצמים הכחולים.
OWL Full: זו הגרסה המלאה של OWL שמאפשרת לתאר כל סוג של ישות אפשרית, גם כאלה שלא ניתן לתאר ע"י שייכות לקבוצות אחרות.
כאמור, OWL Full היא לא ישימה מבחינה חישובית, למרות שהיא מלאה ושלמה מבחינה לוגית.
SPARQL: RDF Query Language
כשיש לנו אוצר מילים (אונטולוגיה) ופיסות מידע בצורה של RDF, היינו רוצים כעת להיות מסוגלים למצוא את דרכנו בקלות ברחבי המידע הזה. לשם כך נדרשת שפה שמאפשרת לנו לתשאל גרף של RDF. כדאי לשים לב שאומנם מבחינה טכנית היינו יכולים להשתמש בשפת שאילתה המבוססת על XML (כמו XQuery) ולהשיג תוצאות דומות. אך השימוש ב RDF בצורה כזו מאבד לחלוטין את כל שכבת הסמנטיקה שבנינו. שימוש שכזה הוא גם מסובך יותר באופן ניכר.
היינו רוצים שסוכן התוכנה שלנו "ידבר" ברמה של הסמנטיקה המוגדרת – מחלקות של ישויות והתכונות שלהם.
SPARQL היא מן שפת שאילתות שכזו, המאפשרת לנו לדבר ברמה של האונטולוגיה שהגדרנו (או שהוגדרה על ידי מישהו אחר). ולתשאל את מסד הנתונים (אותו גרף RDF) ולאחזר נתונים בצורה "חכמה" – עם סמנטיקה. בעזרת SPARQL אני יכול לבנות שאילתות שמדברות על האלמנטים הסמנטים שהגדרתי: ישויות, מחלקות והתכונות שלהן.
SPARQL דומה בתחביר שלה ל SQL (שפת שאילתות מוכרת למסדי נתונים טבלאיים) ושואבת ממנה את האופי ההצהרתי של השאילתות.
זה הכל?
לא, ממש לא. קיימות עוד טכנולוגיות ומפרטים שונים הבאים למלא מטרות שונות (למשל GRDDL). חלק מהמפרטים הנ"ל עדיין לא מוגדרים באופן סופי וכזה שמקובל על הקהילה או שאינם מהווים חלק מהותי מהארכיטקטורה של הרשת הסמנטית.



תגובות אחרונות