מופעים וקבוצות

מאפיין P31 – "מופע של"

רוב המאפיינים בוויקינתונים מתארים תכונות ש"יש" לפריט: לפריט מלחמת הכוכבים – פרק 4: תקווה חדשה (Q17738) יש את המאפיין במאי (P57), יש את מאפיין משך (P2047), יש עלות (P2130). אבל לעיתים קרובות אנחנו מעוניינים באיזה מין דבר הוא הפריט עצמו. לרוב פריטי ויקינתונים יש לפחות הצהרה אחת עם מאפיין P31 – "מופע של". מאפיין זה מגדיר את הקבוצה או המחלקה שהפריט הוא דוגמה שלה ושייך לה.

  • מלחמת הכוכבים – פרק 4: תקווה חדשה הוא מופע של סרט קולנוע (Q11424)
  • מלחמת הכוכבים (Q22092344) היא מופע של סדרת סרטים (Q24856).
  • מלחמת הכוכבים (Q462) הוא מופע של זיכיון מדיה (Q196600).

לפריט יכולה להיות יותר מהצהרת P31 אחת. למשל, מלחמת הכוכבים – פרק 8: אחרוני הג'דיי (Q18486021) הוא מופע של סרט קולנוע (Q11424) וגם מופע של סרט תלת-ממד (Q229390).

ישימו לב שהצהרות מהסוג P31 שואפות להבחנות כלליות ולהעביר נתונים אחרים למאפיינים נוספים, למשל:
ג'ורג' לוקאס (Q38222) הוא מופע של אדם (Q5).
אפשר היה לומר שג'ורג' לוקאס הוא מופע של במאי (Q2526255), כי לוקאס הוא בבירור דוגמה לבמאי ושייך לקבוצה של במאים. אבל הגישה של ארגון המידע בוויקינתונים היא להגדיר את ה"מופע של" לערך הכללי ביותר, ולכלול מידע יותר ספציפי למאפיינים אחרים. למשל, המידע שלוקאס הוא במאי מתואר באמצעות הצהרה עם המאפיין עיסוק (P106).

מאפיין P279 – "תת-קבוצה של"

בעוד פריט Q17738 הוא סרט קולנוע ספציפי – יש לו במאי מסוים (ג'ורג' לוקאס), משך מסוים (121 דקות), רשימת שחקנים (קארי פישר, האריסון פורד,…) וכיו"ב – הפריט סרט קולנוע (Q11424) הוא מושג כללי. לסרטי קולנוע יש במאים, משכים, ורשימות שחקנים, אבל למושג הכללי "סרט קולנוע" אין במאי, משך או שחקנים.
בוויקינתונים מושגים כלליים מקבלים את המאפיין "תת-קבוצה" (P279) – ויכולים לקבל אחת או יותר. למשל:

  • סרט קולנוע (Q11424) הוא תת-קבוצה של "יצירת אמנות חזותית" (Q4502142), אבל גם של "יצירה אודיו-ויזואלית" (Q2431196).
  • סדרת סרטים (Q24856) היא תת-קבוצה של סדרת יצירות (Q7725310), יצירת אמנות (Q838948), יצירה אודיו-ויזואלית (Q2431196) וזכיון מדיה (Q196600).

ההשלכות של ההבחנה בין מופע ותת-קבוצה

נניח שאנחנו רוצים רשימה של כל הסרטים שמתרחשים ביקום של מלחמת הכוכבים.
אנחנו יכולים להריץ את השאילתה הבאה:

השאילתה מחזירה רק 10 תוצאות. ברור שחלק מהסרטים לא נכללו בתוצאות – למשל, מלחמת הכוכבים – פרק 1: אימת הפנטום (Q165713). מדוע?

כי חלק מהפריטים מוגדרים כמופע של סרט באורך מלא (Q24869) – זה הערך שהמאפיין P31 מקבל. אף על פי שסרט באורך מלא הוא תת-קבוצה של סרט קולנוע (Q11424), מבחינת ספארקל התבנית בפסוקית ה-WHERE בשאילתה לא תואמת את הפריט. כלומר, פריטים שהם לא מופע של "סרט קולנוע" לא תואמים את התבנית בשאילתה ולכן אינם מאוחזרים על ידיה.

בעיקרון יכולנו להשתמש באופרטור UNION כדי לבחור סרטים שהם או מופע של "סרט קולנוע" או מופע של "סרט באורך מלא":

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

נתיבי מאפיין

נתיבי מאפיין

המבנה התחבירי שמאפשר לנו לבחור פריטים ששייכים לאותה קבוצה משתמש בנתיבי מאפיין (property paths). נתיבי מאפיין הם דרך מקוצרת לרשום את המאפיינים המחברים בין שני פריטים.

כדי להבין את המבנה התחבירי של נתיבי מאפיין, נסתכל על התצוגה הגרפית של חלק מהמידע על הפריט מלחמת הכוכבים – פרק 1: אימת הפנטום (Q165713):

לפריט Q165713 יש מאפיין P31 (מופע של) המקבל את הערך "סרט באורך מלא" Q24869. ההצהרה של פריט-מאפיין-ערך היא אם כן:
Q24869 – P31 – Q165713

הנתיב בין פריט Q165713 לפריט Q24869 הוא הפשוט והקצר ביותר: מאפיין אחד.

לפריט Q24869 (סרט באורך מלא) יש מאפיין P279 (תת-קבוצה של) המקבל את הערך "סרט קולנוע" Q11424.
ההצהרה של פריט-מאפיין-ערך היא אם כן:
Q11424 – P279 – Q24869

גם הנתיב בין פריט Q24869 לפריט Q11424 הוא בעל מאפיין אחד בלבד.

אפשר לחבר אלמנטים של הנתיב בעזרת קו נטוי קדמי (/). כאשר בשאילתה מופיע המבנה התחבירי wdt:P31/wdt:P279 הוא מסמן נתיב בין שני פריטים המורכב ממאפיין P31 (מופע של) וממאפיין P279 (תת-קבוצה של).

אבל אם התבנית להתאמה בשאילתה היא:
.item wdt:P31/wdt:P279 wd:Q11424?
השאילתה תמצא התאמה אך ורק עם פריטים שהם מופע של תת-קבוצה של סרט קולנוע – כלומר פריטים שהנתיב שלהם לפריט "סרט קולנוע" (Q11424) מורכב מ-P31 וגם P279. פריטים שהם מופע של "סרט קולנוע" בעצמם (כלומר יש להם מאפיין P31 עם הערך Q11424) לא יאוחזרו כיוון שהם לא תואמים את המבנה התחבירי של התבנית.

הביטוי *wdt:P31/wdt:P279 בשורה 6 הוא דרך קיצור לציין שיש מאפיין "מופע של" ואחריו מספר כלשהו של מאפייני "תת-קבוצה של" בין item? לבין הפריט "סרט קולנוע" (Q11424).

אם מסירים את הכוכבית (*) בשורה 6 בשאילתה ומריצים את השאילתה, התוצאות לא כוללות פריטים שהם בעצמם מופע של סרט קולנוע.
הכוכבית (*) אחרי אלמנט בנתיב פירושה "אפס או יותר מהאלמנט הזה". מכאן שהתבנית להתאמה
item wdt:P31/wdt:P279* wd:Q11424?
יכולה להתאים ל:
.item wdt:P31 wd:Q11424?
או
.item wdt:P31/wdt:P279 wd:Q11424?
או
.item wdt:P31/wdt:P279/wdt:P279 wd:Q11424?
או
.item wdt:P31/wdt:P279/wdt:P279/wdt:P279 wd:Q11424?
וכן הלאה.

DISTINCT

DISTINCT – הצגת תוצאות ייחודיות

בוא נסתכל שוב על השאילתה שמראה את כל יצירות האמנות (Q838948) שמתרחשות ביקום הבדיוני של מלחמת הכוכבים:

אם תריצו את השאילתה תוכלו לראות שיש בתוצאות כמה כפילויות: פריטים מסוימים, כמו Q19590955 (רוג אחת: סיפור מלחמת הכוכבים) ו-Q6074 (מלחמת הכוכבים – פרק 7: הכוח מתעורר) מופיעים יותר מפעם אחת.
לעיתים קרובות שאילתות עלולות להחזיר תוצאות כפולות – למשל כשמשתמשים בתבנית שכוללת מבנה תחבירי עם נתיבי מאפיין כמו:
item wdt:P31/wdt:P279* ?class?
אם יש מספר נתיבים מ-item? ל-class? תתקבלת תוצאה חדשה עבור כל אחד מהנתיבים. למשל, לפריט Q19590955 (רוג אחת: סיפור מלחמת הכוכבים) יש את הערכים "סרט קולנוע" וגם "סרט תלת-ממד" למאפיין P31, ולכל אחד מהם יש נתיב למחלקה "יצירת אמנות". כתוצאה מכך, הפריט מופיע פעמיים בתוצאות.

כדי להסיר כפילויות מהתוצאות מוסיפים את מילת המפתח DISTINCT אחרי SELECT:

דילוג לתוכן