שאילתה עם יותר ממשתנה אחד

שאילתות עם יותר ממשתנה אחד

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

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

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

הסבר השאילתה

בפסוקית ה-SELECT יש את המשתנים item? ו-director?, כמו גם המשתנה itemLabel? ששולף את התווית עבור המשתנה item?

בפסוקית ה-WHERE, בשורות 6 ו-7, ניתן לראות את התבניות להתאמה:
.item wdt:P179 wd:Q22092344?
.item wdt:P57 ?director?

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

עכשיו נריץ את השאילתה:

מה צריך להוסיף לשאילתה כדי שתציג את שמות הבמאים? הוסיפו זאת והריצו שוב את השאילתה.

פתרון

# פינת התחביר

אם היינו רוצים להראות את השם של הבמאי אבל לא את המספר Q, יכולנו להשמיט את המשתנה director? מפסוקית ה-SELECT ורק להצהיר על המשתנה directorLabel?. תחביר זה מציין שיש משתנה בשם director? (שמופיע בפסוקית ה-WHERE), אבל הוא אינו מוצג בתוצאות.

דילוג לתוכן