המדריך למפתחים של DSPL

השם של DSPL הוא Dataset Publishing Language. זהו פורמט ייצוג של המטא-נתונים (מידע על מערך הנתונים, למשל שם הספק והספק שלו, כמו גם המושגים שהוא מכיל ומוצג), וגם הנתונים בפועל של מערכי הנתונים. ניתן לייבא קבוצות נתונים שמתוארות בפורמט הזה אל Google Public Data Explorer, כלי שמאפשר ניתוח ויזואלי ועשיר של הנתונים.

הערה: כדי להעלות נתונים לנתונים ציבוריים של Google באמצעות הכלי להעלאה של נתונים ציבוריים, צריך להיות לכם חשבון Google.

המסמך הזה מיועד לבעלי נתונים שרוצים שהתוכן שלהם יהיה זמין ב-Public Data Explorer. היא כוללת הרבה מעבר למדריך כדי להתעמק בפרטים של סכימת DSPL ושל תכונות נתמכות. ההנחה היא רק ידע בסיסי ב-XML, אבל גם ידע לגבי מסדי נתונים יחסיים שימושי.

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

סקירה כללית

מערך נתונים של DSPL הוא קובץ ZIP שמכיל קובץ XML וקבוצה של קובצי CSV. קובצי ה-CSV הם טבלאות פשוטות המכילות את הנתונים של מערך הנתונים, בעוד שקובץ ה-XML מתאר מטא נתונים של מערך הנתונים. הסוג השני כולל מטא-נתונים של מידע, כמו תיאורים של מדדים, וגם מטא-נתונים מבניים, כמו הפניות בין טבלאות. המטא-נתונים האלה מאפשרים למשתמשים שאינם מומחים לבדוק את הנתונים שלך ולהמחיש אותם.

עבד

באופן כללי, תהליך היצירה של מערך נתונים ב-DSPL הוא הבא (חלק מהפעולות עשויות להתבצע במקביל):

  1. יצירת קובץ XML ל-DSPL.
  2. מזהים את מקורות הנתונים החיצוניים שרוצים להשתמש בהם במערך הנתונים.
  3. מגדירים את הקונספטים, את פרוסות הנתונים ואת הנושאים (אופציונלית). עליך לעדכן את התוכן של קובץ ה-DSPL שוב ושוב.
  4. מייצאים את נתוני המקור לקובצי .csv
  5. יצירת מערך נתונים של DSPL.
  6. שולחים את מערך הנתונים ל-Google.

מבנה XML

סקירה כללית

קובץ ה-XML של DSPL מגדיר את המטא-נתונים של מערך הנתונים, כולל קשרים מבניים בין קונספטים, פרוסות, נושאים וטבלאות. אפשר ליצור את הקובץ באופן ידני, אבל כלים וסקריפטים לעיבוד נתונים יכולים לייעל את התהליך במידה רבה. הצגת קובץ DSPL לדוגמה בחלון חדש.

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

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

הגדרות של "דברים" שמופיעים במערך הנתונים (למשל, מדינות, שיעור אבטלה, מגדר וכו')

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

מסמכי תיעוד
פרוסות

שילובים של מושגים שלגביהם קיימים נתונים סטטיסטיים במערך הנתונים. כל פרוסה מכילה מאפיינים ומדדים.

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

מסמכי תיעוד
טבלאות הגדרת הנתונים לקונספטים ולפרוסות. בטבלאות קונספט יש ספירות וטבלאות פרוסות מכילות נתונים סטטיסטיים. הטבלאות מוגדרות בקובץ ה-XML, והן מפנות לקובצי .csv שמכילים את הנתונים בפועל. מסמכי תיעוד
נושאים קטגוריות לארגון קונספט של מערך נתונים. לא חובה, אבל הפרטים האלה יכולים להועיל מאוד למשתמשים שמנווטים בנתונים. מסמכי תיעוד

כותרת וייבוא

הצהרת מרחב השמות של נתונים ציבוריים

מערך נתונים של DSPL מתחיל ברכיב <dspl> ברמה העליונה. הפעולה הזו משמשת להכללת כל פרטי מערך הנתונים, ולציון מרחבי שמות שישמשו לאורך הקובץ. לדוגמה:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.example.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010" >
    ...
</dspl>

namespace הוא מזהה ייחודי שניתן לשייך לסכימת XML (קבוצה של אלמנטים ומאפיינים של XML). targetNamespace מספק URI שמזהה את מערך הנתונים שלך. ה-URI הזה לא נדרש כדי להפנות למשאב בפועל, אבל כדאי שה-URI יצביע על מסמך שמתאר את התוכן או את מערך הנתונים שלך.

אין צורך לספק targetNamespace. אחרת, המערכת תיצור בשבילך קובץ באופן אוטומטי בזמן הייבוא.

המאפיין targetNamespace כולל סדרה של מאפייני xmlns המציינים סכימות XML אחרות שבהן ייעשה שימוש בקובץ. כל קובץ DSPL חייב לכלול את סכימת הנתונים הציבוריים של Google, שה-URI שלו הוא "http://schemas.google.com/dspl/2010" ולהשתמש בו בתור מרחב השמות המוגדר כברירת מחדל. הוא אמור לכלול גם את סכימת ה-XML הרגילה של W3 המזוהה על ידי " http://www.w3.org/2001/XMLSchema-instance". כפי שמתואר בקטע הבא, אפשר להוסיף מרחבי שמות כדי לכלול מידע ממערכי נתונים אחרים.

ייבוא של מרחבי שמות אחרים של מערכי נתונים

מערכי הנתונים יכולים לעשות שימוש חוזר בהגדרות ובנתונים ממערכי נתונים אחרים. למשל, Google מספקת מספר מערכי נתונים בסיסיים שמגדירים קונספטים שמופיעים בדרך כלל בנתוני המשתמשים. לדוגמה, לרוב מערכי הנתונים צריך להיות מושג כדי לייצג שנים. במקום להגדיר קונספט חדש, ניתן להשתמש בקונספט לשנה מתוך מערך הנתונים "http://www.google.com/publicdata/dataset/time". מידע נוסף מפורט בדף מושגים קנוניים.

כדי להשתמש במערך נתונים חיצוני, צריך להוסיף את הרכיב <import> לקובץ ה-DSPL מיד אחרי הצהרת מרחב השמות, ולציין את מרחב הנתונים שמייבאים באופן הבא:

<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

לאחר מכן מוסיפים את מרחב השמות המיובא (במקרה הזה, time="http://www.google.com/publicdata/dataset/google/time") להצהרת מרחב השמות שבראש הקובץ, כך:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.stats-bureau.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010"
    xmlns:time="http://www.google.com/publicdata/dataset/google/time" >
<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

עכשיו קובץ ה-DSPL יכול להפנות לרכיבים מתוך מערך הנתונים של Google Public Data. חוזרים על התהליך הזה לכל מערך נתונים שרוצים להתייחס אליו.

הפניות לתוכן במערכי נתונים חיצוניים

אחרי שמייבאים מערך נתונים אחר, צריכה להיות לך אפשרות להפנות קונספטים, פרוסות ונתונים ממערך הנתונים הזה. לשם כך, ניתן להשתמש בהפניות בפורמט prefix:other_id, כאשר prefix הוא הקידומת של מרחב השמות של מערך הנתונים החיצוני.

הנה דוגמה של הפניה לקונספט year מתוך מערך הנתונים time (כמתואר למעלה):

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

פרטי מערך הנתונים

הרכיב <info> כולל מידע תיאורי לגבי מערך הנתונים. למטה אפשר לראות דוגמה ופרטים לגבי רכיבי ה-XML הרלוונטיים.

דוגמה

<info>
  <name>
    <value>Unemployment Rates</value>
  </name>
  <description>
    <value>Worldwide unemployment rates by region</value>
  </description>
  <url>
    <value>http://www.example.com/mystats/info.html</value>
  </url>
</info>

Elements

רכיב חובה? Description
<info> כן כולל את כל המידע התיאורי על מערך הנתונים. כולל את רכיבי הצאצא <name>, <description> ו<url>.
<name> כן צאצא של <info>. כולל רכיב הצאצא <value>, שמזהה את השם של מערך הנתונים.
<description> אופציונלי צאצא של <info>. כולל רכיב הצאצא <value>, שכולל תיאור טקסט של מערך הנתונים.
<url> כן צאצא של <info>. קישור לכתובת ה-URL עם מידע נוסף על מערך הנתונים.

פרטי הספק

ברכיב <provider> מפורט מידע לגבי ספק מערך הנתונים. למטה אפשר לראות דוגמה ופרטים לגבי רכיבי ה-XML הרלוונטיים.

דוגמה

<provider>
  <name>
    <value>Bureau of Statistics</value>
  </name>
  <url>
    <value>http://www.example.com</value>
  </url>
</provider>

Elements

רכיב חובה? Description
<provider> כן כולל את כל המידע התיאורי על ספק מערך הנתונים. כולל את רכיבי הצאצא <name> ואת <url>.
<name> אופציונלי צאצא של <provider>. כולל רכיב הצאצא <value>, שמזהה את השם של ספק מערך הנתונים.
<url> אופציונלי צאצא של <info>. קישור לכתובת URL עם מידע נוסף על ספק מערך הנתונים.

מושגים

Description

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

לכל קונספט יכול להיות נכס אחד או יותר. מאפיין הוא מאפיין של מופע קונספט יציב לאורך זמן. לדוגמה, הקונספט של המדינה יכול לכלול את המאפיינים name, population ו-capital.

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

דוגמה

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

<concept id="country" extends="geo:location">
  <info>
    <name><value>Country</value></name>
    <description>
      <value>My list of countries.</value>
    </description>
  </info>
  <type ref="string"/>
  <property id="name">
    <info>
      <name><value>Name</value></name>
      <description>
        <value>The official name of the country</value>
      </description>
    </info>
    <type ref="string" />
  </property>
  <property concept="geo:continent" isParent="true"/>
  <property id="capital" concept="geo:city" />
  <table ref="countries_table" />
</concept>

כך עובדת דוגמה זו.

  • הקוד הזה מתאר את מדינת הקונספט, שכוללת את המזהה country ואת המאפיינים name, continent ו-capital.
  • הקונספט נמשך על geo:location, הקונספט הקנוני למיקומים . אם מרחיבים את geo:location, country יורש את כל המאפיינים והמאפיינים שנקבעו על ידי הקונספט המורחב: שם המאפיינים, התיאור, כתובת ה-URL, קו הרוחב וקו האורך. מותר להשתמש ב-country כדי להגדיר מחדש חלק מהמאפיינים והמאפיינים האלה, כל עוד ההגדרה שלהם תואמת להגדרה הראשונית של הקונספט המורחב.
  • רכיב הקונספט <info> מתאר את המידע העיקרי על הקונספט. הוא מוצג בדף הנחיתה של מערך הנתונים ב-Public Data Explorer.
  • רכיב הקונספט <type> מתייחס לסוג התוכן. במקרה הזה זו מחרוזת, אבל היא יכולה להשתנות. הקונספט לאוכלוסייה יהיה מסוג integer; לקונספט Eurovision winner יכול להיות הסוג בוליאני.
  • רכיב <property> מתאר כל מאפיין של הקונספט, כולל המזהה הייחודי שלו (id), info ו-type. הנכסים יכולים גם להתייחס לקונספטים האלה, כדי לציין שהערכים שלהם הם מופעים חוקיים של אותם מושגים.
  • הקונספט מפנה לטבלה של נתונים שמצביעה על קובץ ה-CSV שמכיל את הנתונים בפועל. טבלת הנתונים מפנה כך: <table ref="countries_table"/>.

    אם הקונספט שלך מפנה לטבלה, קובץ הנתונים המשויך צריך לכלול את כל המופעים של הקונספט. לדוגמה, לא ניתן ליצור טבלה שבה מפורטות רק חלק מהמדינות שנכללות במערך הנתונים. (אם יש קבוצת משנה של מדינות שחשובות לך, אפשר ליצור קונספט נפרד כדי לתאר אותן. לדוגמה: mycountries.)

Elements

רכיב חובה? Description
<concepts> כן רכיב ברמה העליונה. כולל את כל <concept> הרכיבים.
<concept> כן זיהוי הקונספט. הערך של המאפיין הנדרש id חייב להיות ייחודי לקונספט במערך הנתונים. אם התפיסה מתייחסת לטבלת נתוני קונספט, הערך של id חייב להתאים לכותרת העמודה שמתארת את הקונספט בטבלת הנתונים. אפשר להשתמש במאפיין extends כדי לציין שהקונספט הזה מרחיב מושג אחר. הערך של extends חייב להתאים למזהה של קונספט שמוגדר באותו מערך נתונים, או להיות בצורה prefix:concept_id, כאשר concept_id הוא המזהה של קונספט שהוגדר במערך הנתונים החיצוני המיובא המשויך ל-prefix.
<info> אופציונלי כולל מידע תיאורי על הקונספט.
<name> כן צאצא של <info>. שם התפיסה. רכיב הצאצא <value> מכיל את הטקסט, לדוגמה Country.
<description> אופציונלי צאצא של <info>. כולל את רכיב הצאצא <value>, שכולל תיאור טקסט של הקונספט.
<url> אופציונלי צאצא של <info>. כולל את רכיב הצאצא <value>, הכולל כתובת URL עבור הקונספט.
<pluralName> אופציונלי צאצא של <info>. שם הרבים של הקונספט. רכיב הצאצא <value> מכיל את הטקסט, לדוגמה Countries.
<totalName> אופציונלי צאצא של <info>. השם של שילוב כל המופעים של הקונספט. רכיב הצאצא <value> מכיל את הטקסט - במקרה של קונספט country, לדוגמה, הוא יכול להיות World.
<type> אופציונלי מזהה את סוג התוכן המתואר בקונספט. המאפיין הנדרש ref כולל את הערכים המותרים הבאים:
  • מחרוזת
  • מספר ממשי (float)
  • מספר שלם
  • תאריך
  • boolean
אפשר להשמיט את הסוג אם הקונספט מרחיב מושג אחר, ובמקרה כזה הוא עבר בירושה מהקונספט המורחב.
<property> אופציונלי

מאפיין של הקונספט, למשל capital. הערך של המאפיין הנדרש id חייב להיות ייחודי לקונספט. אפשר להשתמש במאפיין concept אופציונלי כדי לציין שהערכים של הנכס הזה הם מופעים של מושג מסוים. אם מציינים את המאפיין concept, לא תהיה אפשרות להשתמש ב-id; הערך שלו יוגדר באופן לא מפורש כמזהה של הקונספט שאליו מתייחס (למשל, <property concept="geo:country"/> שווה ערך ל-<property id="country" concept="geo:country"/>).

נכס יכול להכיל מאפיין בוליאני isParent, כדי לציין שהקשר בין מופע של הקונספט לבין הערך של הנכס הזה הוא היררכי.

נכס יכול להכיל מאפיין isMapping בוליאני כדי לציין שיש מיפוי של 1-1 בין המופעים של הקונספט לבין ערכי הנכס.

מאפיין יכול לציין info ו-type מקוננים, כפי שהם מוגדרים לקונספט. אם לא מציינים את המאפיין concept, צריך להזין את המאפיין type. אם הוא תואם, צריך לבחור בסוג המאפיין שאליו הוא מפנה.

<attribute> אופציונלי

תכונה של הרעיון. המאפיינים מייצגים מידע נוסף על הקונספט (למשל, תמ"ג הוא אחוז). הערך של המאפיין הנדרש id חייב להיות ייחודי לקונספט. אפשר להשתמש במאפיין concept אופציונלי כדי לציין שהערכים של המאפיין הזה הם מופעים של מושג מסוים. אם השדה concept צוין, ייתכן שהשדה id יושמט. הערך שלו מוגדר באופן מפורש כמזהה של הקונספט שאליו מפנה. (למשל: <attribute concept="unit:unit"/> היא שוות-ערך ל-<attribute id="unit" concept="unit:unit"/>.

מאפיין יכול לציין info ו-type מקוננים, שמוגדרים בדיוק כמו שרוצים לקונספט מסוים. המאפיין type נדרש אם למאפיין לא מצוין מאפיין concept, והוא חייב להתאים לסוג הקונספט שאליו מפנה, אם כן.

<table> אופציונלי מזהה את טבלת הנתונים המכילה נתונים עבור הקונספט. הערך של המאפיין הנדרש ref חייב להתאים למזהה הטבלה שצוין ברכיב <table> הקשור.

פרוסות

Description

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

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

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

דוגמה

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

כך עובדת דוגמה זו.

  • הפלח הזה מייצג אוכלוסייה לפי מדינה.
  • הוא כולל את המדד population, ואת המאפיינים country, ואת year. כל מאפיין הוא מושג שכבר מוגדר במקום אחר. הקונספט country והמדד population קיימים באותו מערך נתונים כמו הפלח הנוכחי, ומתבצעת הפניה אליהם כך: concept="country"
  • הקונספט year קיים בזמן של מערך הנתונים המיובא, המזוהה לפי הקידומת שנעשה בה שימוש לפני שם הקונספט (year), כך: concept="time:year"
  • הפלח מפנה לטבלת נתונים שמפנה לקובץ ה-CSV שמכיל את הנתונים בפועל. טבלת הנתונים כוללת התייחסות כזו: <table ref="country_slice_table"/>. (יש לעיין למעלה לקבלת מידע על ייבוא מערכי נתונים.)

הערה: באופן כללי, מערך הנתונים יהיה גמיש יותר אם המדדים יהיו מינימליים, ובמקום זאת ייווצרו מאפיינים משמעותיים. לדוגמה, במקום ליצור את המדדים Female Unemployment ו-Male Unemployment, צריך ליצור את המדד היחיד Unemployment, ולהוסיף את המאפיין Gender שכולל את המופעים Female ו- Male.

Elements

רכיב חובה? Description
<slices> כן רכיב ברמה העליונה. כולל את כל <slice> הרכיבים.
<slice> אופציונלי מזהה את הפרוסה. הערך של המאפיין הנדרש id חייב להיות ייחודי לפלח.
<dimension> אופציונלי מגדיר מאפיין של הפלח באמצעות התייחסות לקונספט. הערך של המאפיין הנדרש concept חייב להתאים במדויק למזהה הייחודי של הקונספט, ולהשתמש בקידומת חוקית אם הקונספט שייך למערך נתונים חיצוני שיובא.
<metric> אופציונלי מגדיר מדד של הפלח, על ידי התייחסות לקונספט. הערך של המאפיין הנדרש concept חייב להתאים בדיוק למזהה הייחודי של הקונספט, ולהשתמש בקידומת חוקית אם הקונספט שייך למערך נתונים חיצוני שיובא.
<table> כן מזהה את טבלת הנתונים שמכילה את הפלח. הערך של המאפיין הנדרש ref חייב להתאים למזהה הטבלה שצוין ברכיב <table> הקשור.
<mapDimension> אופציונלי צאצא של <table>. מכיל את המאפיינים concept ו-toColumn. הערך של הראשון הוא מאפיין בפלח, והערך של השני הוא עמודת הטבלה שתואמת לעמודה הראשונה.
<mapMetric> אופציונלי צאצא של <table>. מכיל את המאפיינים concept ו-toColumn. הערך של הראשון הוא ערך בפלח, והערך של השני הוא עמודת הטבלה שתואמת לעמודה הראשונה.

טבלאות

Description

הקטע tables בקובץ ה-DSPL מזהה את טבלאות הנתונים הכלולות במערך הנתונים. אפשר להפנות לטבלאות האלה לפי קונספטים או לפי פלחים. כל רכיב <table> מציין את העמודות של הטבלאות ואת הסוגים שלהן, ומפנה לקובץ CSV שמכיל את נתוני הטבלה.

דוגמה

<tables>
  <table id="country_slice_table">
    <column id="country" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <data>
      <file format="csv" encoding="utf-8">country_slice.csv</file>
    </data>
  </table>
  ...
</tables>

כך עובדת הדוגמה.

  • בדוגמה זו מתוארת הטבלה country_slice_table. הטבלה כוללת את העמודות country, year ו-population.
  • לכל עמודה בטבלה יש מזהה ייחודי, שמוגדר על ידי המאפיין id. המזהה הזה חייב להיות זהה לכותרת העמודה המתאימה בקובץ הנתונים המשויך.
  • הערך של המאפיין האופציונלי type מגדיר את סוג הנתונים לכל עמודה.
  • הרכיב <data> מתאר את קובץ ה- .csv בפועל ( country_slice.csv) שמכיל את נתוני הטבלה. הפורמט של הקובץ הוא תמיד csv.

Elements

רכיב חובה? Description
<tables> כן רכיב ברמה העליונה. כולל את כל <table> הרכיבים.
<table> כן מזהה את הטבלה. הערך של המאפיין הנדרש id חייב להיות ייחודי לטבלה.
<column> אופציונלי צאצא של <table>. מידע על עמודה שכלולה בטבלה. כולל את המאפיינים הבאים:
  • id (חובה): המזהה של העמודה.
  • type (אופציונלי): סוג הנתונים של המידע בעמודה שצוינה. הערכים המותרים הם: string, float, integer, date או boolean.
<data> אופציונלי צאצא של <table>. קובץ הנתונים שאליו מפנה הטבלה. אם שם הקובץ הוא בצורה של כתובת URL (למשל, http://...), הקובץ יאוחזר באמצעות הפרוטוקול המתאים (HTTP , HTTPS או FTP). אחרת, צריך לצרף לקובץ הזה את השם של מערך הנתונים הזה. הערך של המאפיין הנדרש format הוא תמיד csv. למרות שהמאפיין encoding הוא אופציונלי, קובצי ה- .csv חייבים להיות בקידוד UTF-8.

הנושאים

Description

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

הרכיב <topics> צריך להופיע ממש לפני הרכיב <concepts> בקובץ ה-DSPL. (סדר הרכיבים חשוב, וייתכן שלא תהיה אפשרות להעלות את מערך הנתונים אם הרכיבים מופיעים בסדר לא נכון). כדי להשתמש בנושאים, צריך להפנות אליהם מההגדרה של הקונספט.

דוגמה

הנה דוגמה להגדרת נושא:

<topics>
  <topic id="population_indicators">
    <info>
      <name>
        <value>Population indicators</value>
      </name>
    </info>
  </topic>
  ...
</topics>
  

...והנה דוגמה לדוגמה בנושא הזה:

<concept id="population">
  <info>
    <name>
      <value>Population</value>
    </name>
    <description>
      <value>Size of the resident population.</value>
    </description>
  <topic ref="population_indicators"/>
  <type ref="integer"/>
</concept>

ניתן לשייך נושאים לקונספט, וקונספט יכול להתייחס ליותר מנושא אחד.

הגדרת הרכיב

רכיב חובה? Description
<topics> כן רכיב ברמה העליונה. כולל את כל <topic> הרכיבים.
<topic> כן מזהה את הנושא. הערך של המאפיין הנדרש id חייב להיות ייחודי של מערך הנתונים.
<info> אופציונלי צאצא של <topic>. כולל מידע על נושא מסוים.
<name> אופציונלי צאצא של <info>. רכיב המשנה הצאצא <value> מציין את שם הנושא.

קובצי נתונים של DSPL

בנוסף לקובץ ה-metadata של ה-XML, מערך נתונים של DSPL יכול לכלול גם קובץ נתונים אחד או יותר בפורמט CSV. כל קובץ נתונים תומך בטבלה במערך הנתונים, ומתבצעת הפניה שלו מהקובץ הקודם בקטע <data>...</data>. באופן עקרוני, הקבצים האלה והטבלאות המשויכות אליהם משמשים לייצוג של הגדרות קונספט או נתוני פרוסה. כל אחד מסוגי קובצי הנתונים האלה מתואר בפירוט בהמשך.

שימו לב, ללא קשר למטרה, כל קובצי הנתונים צריכים להיות קובצי טקסט בפורמט UTF-8 מופרדים בפסיקים (CSV). הקבצים חייבים להכיל טקסט פשוט בלבד, ולא HTML. ניתן ליצור את קובצי הנתונים באופן ידני. אבל בפועל, תצטרכו לבצע עיסוי של הנתונים בכלי שמכיל את מקור הנתונים המקורי (למשל, גיליון אלקטרוני), או בקובץ המיוצא עצמו.

אפשר לקבץ קבצים עם מערך הנתונים, או אם השם הוא בצורת כתובת URL, המאוחזר באמצעות HTTP , HTTPS או FTP ממקור מרוחק.

קובצי נתונים של קונספט

קובצי נתונים של קונספטים מכילים מידע רלוונטי לכל קונספט. הגדרת הקונספט משתמשת ברכיב <table> כדי להפנות לקובץ הזה.

דוגמה

הנה דוגמה לטבלה של הקונספט country שהוגדר למעלה:

country, name
AD, Andorra
AF, Afghanistan
AI, Anguilla
AL, Albania
AO, Angola
AQ, Antarctica
AS, American Samoa

דוגמה זו:

  • אלא אם מצוינים מיפויים, השורה הראשונה בקובץ הנתונים (כותרות העמודות) חייבת להתאים בדיוק למזהה הקונספט ולמזהי הנכס המתאימים של הקונספט שאליו משויכים הנתונים. עם זאת, הסדר של העמודות לא חייב להיות זהה בקובץ הנתונים ובטבלת הקונספט. במקרה כזה, העמודה הראשונה משויכת לקונספט country והעמודה השנייה משויכת לנכס name.
  • עמודות הנכס הן אופציונליות. אם לנכס אין עמודה בטבלה, ההנחה היא שהערך של כל שורה הוא לא מוגדר. בטבלה שלמעלה, כמו כן, מושמטות העמודות של הנכסים מסוג latitude ושל longitude, ולכן לא תהיה אפשרות למפות את המדינות.
  • כל ערך בשדה מזהה הקונספט (במקרה הזה, country) חייב להיות ייחודי ולא ריק (שדה ריק הוא שדה אפס או רק תווי רווח לבן).
  • ערכים עבור מאפיינים שמפנים למושגים אחרים חייבים להיות ריקים או להיות ערך חוקי של הקונספט שאליו מתייחסים.
  • לא חובה להוסיף ערכים במירכאות כפולות, אלא אם הם כוללים פסיקים, מירכאות כפולות או תווי שורה חדשה.
  • יש להוסיף מירכאות כפולות מילוליות כדי להופיע בערך, או להוסיף מירכאות כפולות לפני ערך אחר.

קובצי נתונים של פרוסה

קובצי נתוני הפרוסות מכילים נתונים רלוונטיים לכל פרוסה. הגדרת הפלח משתמשת ברכיב <table ref="..."> כדי להתייחס להגדרה <table>, שמזהה את הקובץ הזה.

דוגמה

דוגמה לקובץ .csv שמכיל את הנתונים לגבי פלח population_by_country שתואר למעלה:

country, year, population
AF, 1960, 9616353
AF, 1961, 9799379
AF, 1962, 9989846
AF, 1963, 10188299

כך עובדת הדוגמה:

  • שדה המדד הוא population. השדות country ו-year הם שדות מאפיינים.
  • כל ערך של שדה מאפיין אינו יכול להיות ריק. הנתונים כוללים גם מימדי זמן. ערכים לשדות מדדים יכולים להיות ריקים. ערך ריק לא מיוצג על ידי תו.
  • כל כותרת של עמודה שמתייחסת לקונספט (לדוגמה, השדה הראשון בדוגמה שלמעלה מתייחס לקונספט country) חייב להתאים בדיוק למזהה הייחודי של הקונספט בהגדרה של הקונספט.
  • שילוב ייחודי של ערכי מאפיינים, למשל AF, 2000, יכול להתרחש רק פעם אחת.
  • השורות באותה סדרת זמן (כלומר שורות עם שילוב זהה של כל ערכי המאפיינים, מלבד זמן) צריכות להיות מקובצות יחד, אבל אין צורך למיין אותן אחרת.

תכונות מתקדמות

מערכי נתונים בשפות מרובות

ערכי XML מתורגמים

אפשר להשתמש במאפיין xml:lang עם כל אלמנט <value> בקובץ ה-DSPL. המאפיין הזה מציין את שפת התוכן של הרכיב, באמצעות תגי השפה הרגילים של W3C. לתשומת ליבך, השימוש בתכונה הזו הוא אופציונלי. אם לא נכלל מאפיין של xml:lang, ההנחה היא שהתוכן הוא באנגלית.

הדוגמה הבאה מציגה דגמים של מערך נתונים באנגלית, בבולגרית, בקטלנית ובסינית פשוטה:

<dspl ...>
  <info>
    <name>
      <value xml:lang="en">World Bank, World Development Indicators</value>
      <value xml:lang="bg">Световна банка, Индикатори за световно развитие</value>
      <value xml:lang="ca">Banc Mundial, Indicadors del desenvolupament mundial</value>
      <value xml:lang="zh-CN">国家/地区</value>
    </name>
    ...
  </info>

  <concepts>
    <concept id="country">
      <info>
        <name>
          <value xml:lang="en">Country</value>
          <value xml:lang="bg">Страна</value>
          <value xml:lang="ca">País</value>
          <value xml:lang="zh-CN">国家/地区</value>
        </name>
        ...
      </info>
      ...
    </concept>
    ...
  </concepts>

  ...
</dspl>

מאפיינים מתורגמים

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

כדי לספק ערכים כאלה בכמה שפות, צריך ליצור עמודה אחת בטבלת ההגדרות המתאימה לכל שילוב של נכס/שפה. לאחר מכן, יש לקשר את העמודות האלה לנכסים ולשפות המשויכים אליהן. כדי לעשות זאת, יש להוסיף קבוצה של רכיבי <mapProperty xml:lang="..." ref="..." toColumn="..."> לתג ההפניה של הטבלה עבור הקונספט.

דוגמה להגדרה של מושג במדינה עם שמות באנגלית, בספרדית ובצרפתית:

<concepts>
  ...
  <concept id="country" extends="geo:location">
    ...
    <property id="name">
      <info>
        <name>
          <value>Name</value>
        </name>
        <description>
          <value>The official name of the country</value>
        </description>
      </info>
      <type ref="string" />
    </property>
    ...
    <table ref="countries_table">
      <mapProperty xml:lang="en" ref="name" toColumn="name_en"/>
      <mapProperty xml:lang="es" ref="name" toColumn="name_es"/>
      <mapProperty xml:lang="fr" ref="name" toColumn="name_fr"/>
    </table>
  </concept>
  ...
</concepts>

...

<tables>
  ...
  <table id="countries_table">
    <column id="country" type="string"/>
    <column id="name_en" type="string"/>
    <column id="name_es" type="string"/>
    <column id="name_fr" type="string"/>
    ...
  </table>
</tables>

קובץ ה-CSV עבור countries_table יהיה בפורמט הבא:

country,name_en,name_es,name_fr,...
...
US,United States of America,Estados Unidos de América,États-Unis d'Amérique,...
...

מושגים שניתנים למיפוי

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

אם הקונספט שלך זהה למדינות ברחבי העולם, למדינות בארה"ב או למחוזות בארה"ב, אפשר פשוט לקשר לקונספט הקנוני המתאים של Google ולא נדרש קידוד גיאוגרפי מפורש. לפרטים נוספים, יש לעיין במדריך הקונספטים הקנוניים.

אם לא, עליכם להפוך את הקונספט למיפוי. השלב הראשון הוא להאריך אותו מ-geo:location:

<concept id="..." extends="geo:location">
  ...
</concept>

לאחר מכן, צריך להוסיף באופן מפורש את קווי האורך והרוחב כמאפיינים:

<concept id="..." extends="geo:location">
  ...
  <property id="latitude"/>
  <property id="longitude"/>
</concept>
  

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

יחסי קונספט

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

בסעיפים הבאים נתאר את קשרי הקונספט הנתמכים בסכימת DSPL.

היררכיות

היררכיות של רעיונות מיוצגות ב-DSPL באמצעות המאפיין isParent="true" בתג <property> של הקונספט הצאצא, שמכיל מזהים של מופעים מהקונספט ההורה.

לדוגמה, הקונספט של מחוז Google בארה"ב כולל את הטופס הבא:

<concept id="us_county" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">County</value>
    </name>
    ...
  </info>
  ...
  <property id="state" concept="us_state" isParent="true"/>
  ...
  <data>
    <table ref="reference_us_counties"/>
  </data>
</concept>
  

בטבלת הנתונים הנתמכים יש עמודה state עם קוד מדינה בן שתי אותיות לכל מחוז. סוג זה של מטא-נתונים מאפשר ל-Public Data Explorer להציג מדינות ומחוזות כהיררכיה, תכונה שהופכת את הניתוח לקל יותר עבור המשתמשים.

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

מיפוי

מיפויי קונספט (כלומר, מושגים שמייצגים בעיקרון את אותו הדבר) מיוצגים באמצעות מאפיין isMapping="true" בתג property של הרעיון הממופה.

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

<concept id="my_country" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">Country</value>
    </name>
    ...
  </info>
  ...
  <property id="google_country_code" concept="geo:country" isMapping="true"/>
  <data>
    <table ref="countries_concept"/>
  </data>
</concept>
  

תוספים

תוספי הקונספט מוגדרים דרך רכיב extends בהגדרת הקונספט התואם. תוספים שימושיים כדי לציין שקונספט מסוים הוא קבוצת משנה של קונספט אחר, רחב יותר. הקונספט המורחב יורש את כל המאפיינים והתכונות של ההורה שלו, ויכול גם להוסיף מאפיינים נוספים.

לדוגמה, הקונספט של Google עבור currency כולל את unit:

<concept id="unit">
  ...
</concept>

<concept id="currency" extends="unit">
  <info>
    <name>
      <value xml:lang="en">Currency unit</value>
    </name>
    ...
  </info>
  ...
  <table ref="currency_table"/>
</concept>
  

לדיון על דוגמאות ודוגמאות, ניתן לעיין בדיון על תוספי קונספט.

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

כדי לשלוח את מערך הנתונים שלכם ל-Google Public Data Explorer, יש לפעול לפי ההוראות הבאות:

  1. יוצרים ספרייה.
  2. שומרים את קובץ ה-DSpl של מערך הנתונים בספרייה שיצרתם. הקפידו להשתמש בסיומת xml.
  3. שומרים את כל קובצי ה-CSV המקומיים באותה ספרייה. ניתן להשמיט קובצי נתונים שאליהם מתבצעת הפניה דרך כתובות URL.
  4. מכווצים את הספרייה.
  5. עליך להעלות את מערך הנתונים שלך ל-Google Public Data Explorer.

אחרי שמעלים את מערך הנתונים ומאמתים אותו, אפשר לבדוק אותו בחשבון Google. כדי שהוא יפורסם, צריך לבדוק אותו ולוודא שהוא מוכן.