פסוקית OPTIONAL

ערכים חסרים ופסוקית OPTIONAL

כפי שכבר ראינו, כשיש יותר מתבנית אחת להתאמה בפסוקית ה-WHERE,

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

#סרטי מלחמת הכוכבים

SELECT ?item  ?itemLabel ?directorLabel ?cost
WHERE 
{ 
  ?item wdt:P179 wd:Q22092344. # הפריט הוא חלק מסדרת הסרטים מלחמת הכוכבים
  ?item wdt:P57 ?director.     # ?director הערך של המאפיין "במאי" של הפריט נאסף על ידי המשתנה
  ?item wdt:P2130 ?cost.       # ?cost הערך של המאפיין "עלות" של הפריט נאסף על ידי המשתנה
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
  
}

בין ההצהרות בשורות מספר 6, 7, ו-8 יש יחס של "וגם". לכן, לפריט ויקינתונים תהיה התאמה רק אם יש לו מאפיין P179 (חלק מהסדרה) עם הערך Q22092344 (סדרת הסרטים מלחמת הכוכבים), וגם מאפיין P57 (במאי) וגם מאפיין P2130 (עלות). אם לפריט אין התאמה עם אחת מההצהרות האלה (למשל אין לו את המאפיין עלות) השאילתה תתעלם ממנו.

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

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

הריצו שוב את השאילתה עם עלות כתבנית אופציונלית.

דילוג לתוכן