סרטים בסדרה מלחמת הכוכבים
זוהי שאילתת הספארקל הראשונה שנלמד. השאילתה הפשוטה הזו מראה את הסרטים ששייכים לסדרה מלחמת הכוכבים.
# סרטי מלחמת הכוכבים SELECT ?item WHERE { ?item wdt:P179 wd:Q22092344. }
קידוד צבעים בממשק השאילתות
בממשק השאילתות של ויקינתונים יש משמעות לצבעים השונים, שמסייעים להבין ולהסביר את הקוד בספארקל:
- אפור: השורה הראשונה של השאילתה מתחילה בסולמית (#) ולאחריה טקסט באפור. זוהי הדרך לסמן הערה – משהו שאנחנו כותבים שלא משפיע על השאילתה עצמה. כל טקסט שמופיע אחרי # הוא הערה וממשק השאילתות מתעלם ממנו, פרט לתבניות מסויימות שנראה בחלקים הבאים.
- אדום: המילים SELECT ו-WHERE בשורות 2-3 מופיעות באדום ובאותיות גדולות זוהי הדרך לסמן מילות תחביר "שמורות" של ספארקל, שהן סוג של "פקודה":
- SELECT – אחרי מילה זו מצהירים את שמות המשתנים שיוצגו בתוצאות השאילתה
- WHERE – אחרי מילה זו מופיעה התבנית להתאמה שלפיה ייבחרו הפריטים, כלומר הקריטריונים או המגבלות על היחסים בין משתני השאילתה, לרוב בצורה של שלישיות שמשקפות את מבנה הפריט-מאפיין-ערך של ויקינתונים.
- ירוק: בשורות 2 ו-5 מופיע הביטוי "item?". בשפת ספארקל שמות של משתנים מתחילים בסימן שאלה ומסומנים בירוק. שמות משתנים יכולים לקבל כל רצף של תווים (פרט למילים שמורות). בדוגמא למעלה מופיע המשתנה item? אך התוצאות יהיו זהות גם אם נקרא למשתנה בשם אחר, כמו film?, או x? או any_variable_name?. התפקיד של משתנים הוא להחזיק ערכים לשימוש עתידי.
- כחול: בשורה מספר 5 מופיעים מספר מונחים בצבע כחול. אלה מסמנים תחיליות (prefixes). תחיליות הן קיצורי דרך שמאפשרות לשאילתות להיות מוצגות בצורה יותר קומפקטית ובהירה. ללא התחיליות היינו צריכים לציין את כתובת ה-URL המלאה של כל אלמנט בשאילתה.
- wdt: תחילית המסמנת מאפיין בוויקינתונים + המספר המזהה של המאפיין (אחרי האות P).
ללא התחילית היינו צריכים להציג את המאפיין כך: http://www.wikidata.org/prop/direct/>:P179
- wd: תחילית עבור פריטים בוויקינתונים + המספר המזהה של הפריט (אחרי האות Q).
ללא התחילית היינו צריכים להציג את המאפיין כך: <http://www.wikidata.org/entity/>:Q22092344
- wdt: תחילית המסמנת מאפיין בוויקינתונים + המספר המזהה של המאפיין (אחרי האות P).
הסבר לשאילתה
עכשיו נסתכל איך השאילתה עובדת.
שאילתת ספארקל מורכבת בדרך כלל משתי פסוקיות (clause) או יותר, שהן חלקים של השאילתה עם פונקציות שונות. בשאילתת הספארקל הבסיסית שלנו יש שתי פסוקיות:
פסוקית SELECT
בפסוקית ה-SELECT אנחנו מפרטים את המשתנים שהשאילתה תחזיר בתוצאות – במקרה הנוכחי קראנו למשתנה שלנו item?. בעיקרון השורה הזו אומרת "אנחנו הולכים למצוא כמה ערכים ולשמור אותם במשתנה item?, ואז אנחנו נציג את הערכים האלה".
פסוקית WHERE
בפסוקית ה-WHERE אנחנו מציינים את התנאים למשתנים, לרוב בצורה של שלישיות. מבחינה לוגית, ספארקל עובד לפי התאמת תבניות (pattern matching). כלומר, המעבד של ספארקל מחפש התאמה בין התבניות שאנחנו מגדירים בפסוקית ה-WHERE להצהרות בוויקינתונים, שכזכור יש להן מבנה עם שלושה חלקים (נושא, מושא, נשוא). פסוקית ה-WHERE אומרת למעבד איזה ערכים של המאפיין להכניס למשתנים שהצהרנו בפסוקית ה-SELECT, ואיך לשלוף את הנתונים.
תבנית השאילתה הבסיסית של ספארקל משקפת את המבנה של פריט-מאפיין-ערך, שהוא הצורה בה המידע נשמר במאגר של נתונים מקושרים. התבנית להתאמה בשאילתה הפשוטה שלנו ניתנת כהצהרה:
פריט – עם מאפיין:חלק מהסדרה – עם ערך:מלחמת הכוכבים (סדרת סרטים)
במילים אחרות, השאילתה בוחרת פריטים שהם: (1) עם מאפיין: חלק מסדרה (P179), ו-(2) למאפיין יש את הערך "מלחמת הכוכבים (סדרת סרטים)" (Q22092344).
שימו לב שאם אתם עומדים עם הסמן מעל התחילית או המספר המזהה הקשור אליה, ממשק השאילתות יציג לכם את התווית והתיאור של המאפיין או הפריט.
לחצו על כפתור ה"Play" (הכפתור הכחול עם החץ) על מנת להריץ את השאילתה. יש לגלול בתוך המסגרת כדי לראות את התוצאות.
השאילתה מחזירה את המספר המזהה של כל סרט בסדרת הסרטים מלחמת הכוכבים, אבל לא את השם של הסרט.
בחלק הבא נלמד איך לאחזר גם את השמות של הסרטים.