| תרגיל: איפה נולדו זוכי פרס נובל לספרות?
רמז: למאפיין "פרס שזכה בו" (P166) יש את הערך פרס נובל לספרות (Q37922)
רמז: למאפיין "פרס שזכה בו" (P166) יש את הערך פרס נובל לספרות (Q37922)
שאילתות אלה מאחזרות מידע בנוגע לתאריכים ומציגות אותו בצורה של ציר זמן.
מומלץ לעבור על המבוא לוויקינתונים וללמוד על המבנה של ויקינתונים כמו גם החלק על השאילתה הפשוטה ביותר לפני שממשיכים.
בואו נתחיל עם דוגמה פשוטה: השאילתה הבא מראה מתי יצאו לאור האלבומים של הזמרת מדונה (Q1744):
לאחר שהרצתם את השאילתה, גללו לתוצאות. מעל הטבלה, לחצו על החץ המופיע לצד הסמליל של העין. בחרו מהתפריט שנפתח את האפשרות "Timeline", והממשק יציג את המידע על ציר הזמן.
דרך אחרת להציג את התוצאות בתצוגת מפה היא להגדיר זאת בשאילתה עצמה. הקוד בשורה הראשונה, לאחר הסולמית, אומר לשאילתה שתוצאות השאילתה צריכות להיות מוצגות לא כטבלה אלא על ציר הזמן.
אין צורך לזכור את הקוד המדוייק לתצוגת מפה: בעזרת פונקציית ההשלמה האוטומטית של ממשק השאילתות, ברגע שתקלידו סולמית בחלונית השאילתה יופיע תפריט נפתח שיציע לכם אפשרויות תצוגה שונות.
בשאילתה הקודמת התאריכים היו מקושרים ישירות לפריטים שבחרנו. אבל תאריכים לא בהכרח מקושרים ישירות לפריטים שמעניינים אותנו. השאילתה הבא מציגה את אתרי הצילום עבור כל אחד מהסרטים בסדרת מלחמת הכוכבים. אם כבר למדת אחזור נתונים המקושרים לערכים, השליפה של תאריכים המקושרים לפריטים היא מאוד פשוטה. למשל, השאילתה הבאה מראה את תאריך הלידה של כל אחד מהבמאים של סרטי מלחמת הכוכבים על ציר הזמן:
שימו לב שהשאילתה משתמשת בהוראה DISTINCT כדי להסיר כפילויות מהתוצאות.
רמז: בחרו מדינות ריבוניות (Q3624078) שיש להן מאפיין ראש רשות מושלת (P6) שהיא אישה (כלומר למאפיין מין או מגדר (P21) יש את הערך נקבה (Q6581072), ואחזרו את תאריך הלידה שלהן.
אם כבר למדתם איך לתשאל הצהרות עם מבחינים, נסו את התרגיל הבא:
רמז: למאפיין "שחקנים" (P161) יש את המאפיין P453 ("בתפקיד") כמבחין, עם הערך Q2009573 (ג'יימס בונד).
טיפ: השתמשו בהוראה DISTINCT להסיר כפילויות מהתוצאות
רמז: למאפיין "פרס שזכה בו" (P166) יש את המאפיין P585 (נקודת זמן) כמבחין
אם כבר למדתם על מופעים וקבוצות, נסו לערוך את השאילתה כך שתציג את כל הנשים שזכו בפרס נובל, איזה פרס זה היה, ומתי קיבלו אותו.
רמז: הערך של המאפיין "פרס שזכה בו" הוא תת-קבוצה (P279) של פרס נובל (Q7191).
COUNT היא פונקציית צבירה שמשמשת לשאילתות בה אנחנו רוצים לדעת כמה פריטים יש שמתאימים לתבנית מסוימת. במקרים כאלה אנחנו לא מעוניינים בפריטים עצמם אלא רק במספר הפריטים התואמים לתבנית.
נניח שאנחנו רוצים לדעת כמה פריטי ויקינתונים יש על נשים כימאיות. בעיקרון ניתן להריץ את השאילתה הבאה:
מעל הטבלה עם התוצאות, ממשק השאילתות מראה את מספר הפריטים שנמצאו ומספר אלפיות השניה שנדרשו לשאילתה לרוץ.
אבל האסטרטגיה הזו לא תמיד עובדת. נניח שאנחנו רוצים לדעת כמה פריטים יש בוויקינתונים על שחקניות. בעיקרון נוכל לערוך את השאילתה:
# שחקניות בוויקינתונים SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q5. # הפריט הוא מופע של אדם ?item wdt:P21 wd:Q6581072. # למאפיין "מין או מגדר" יש את הערך נקבה ?item wdt:P106 wd:Q33999. # למאפיין "עיסוק" יש את הערך שחקן SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". } }
ממשק השאילתות אמור להחזיר את כל הפריטים המתאימים לתבניות שהגדרנו ולציין את מספרם. אבל אם מספר הפריטים המתאימים גדול מאוד השאילתה עלולה "להיתקע" מכיוון שלממשק השאילתות יש זמן קצוב של 60 שניות להחזרת התוצאות. שאילתה שדורשת יותר זמן מהזמן הקצוב הזה תחזיר הודעת TIMEOUT:
על מנת לענות על השאלה כמה שחקניות יש בוויקינתונים מצהירים בפסוקית ה-SELECT על השימוש בפונקציית COUNT. בדוגמה הבאה המשתנה actresscount? מוגדר כפונקציית COUNT של המשתנה item? שהוא המשתנה שאוסף את הפריטים התואמים לתבניות בפסוקית ה-WHERE.
לשאילתה יש רק תוצאה אחת: המשתנה actresscount עם הערך של הסכום של כל הפריטים שמתאימים לתבניות שהגדרנו (מופע של אדם ממין/מגדר נקבה עם עיסוק שחקנית)
רמז: השאילתה צריכה לאחזר לא רק פריטים שהם מופע של סרט קולנוע, אלא גם פריטים שהם מופע של תת-קבוצה של סרט קולנוע.
טיפ: השתמשו בהוראה DISTINCT כדי להסיר תוצאות כפולות