راهنمای توسعه دهنده DSPL

DSPL مخفف Dataset Publishing Language است. این یک فرمت نمایشی برای ابرداده (اطلاعات مربوط به مجموعه داده، مانند نام و ارائه‌دهنده آن، و همچنین مفاهیمی که حاوی و نمایش داده می‌شود) و داده‌های واقعی مجموعه‌های داده است. مجموعه داده‌های توصیف‌شده در این قالب را می‌توان به Google Public Data Explorer وارد کرد، ابزاری که امکان کاوش بصری و غنی داده‌ها را فراهم می‌کند.

توجه: برای آپلود داده‌ها در Google Public Data با استفاده از ابزار بارگذاری داده‌های عمومی ، باید یک حساب Google داشته باشید.

این سند برای صاحبان داده در نظر گرفته شده است که می خواهند محتوای آنها در کاوشگر داده های عمومی در دسترس باشد. با غواصی عمیق تر در جزئیات طرح DSPL و ویژگی های پشتیبانی شده، فراتر از آموزش است. تنها آشنایی اولیه با XML فرض می شود، اگرچه دانش پایگاه های داده رابطه ای نیز مفید است.

اگرچه الزامی نیست، اما پیشنهاد می‌کنیم قبل از دیدن این سند، آموزش را که کوتاه‌تر و هضم‌تر است، مطالعه کنید.

بررسی اجمالی

مجموعه داده DSPL یک فایل zip. است که حاوی یک فایل XML و مجموعه ای از فایل های CSV است. فایل‌های CSV جداول ساده حاوی داده‌های مجموعه داده هستند، در حالی که فایل XML فراداده مجموعه داده را توصیف می‌کند. دومی شامل ابرداده های اطلاعاتی مانند توصیف معیارها و همچنین ابرداده های ساختاری مانند مراجع بین جداول است. این ابرداده به کاربران غیر متخصص اجازه می دهد تا داده های شما را کاوش و تجسم کنند.

روند

به طور کلی، فرآیند ایجاد یک مجموعه داده DSPL به شرح زیر است (برخی مراحل ممکن است به صورت موازی انجام شود):

  1. فایل DSPL XML خود را ایجاد کنید.
  2. هر گونه منبع داده خارجی را برای استفاده در مجموعه داده خود شناسایی کنید.
  3. مفاهیم، ​​برش ها و (به صورت اختیاری) موضوعات خود را تعریف کنید. به طور مکرر محتوای فایل DSPL خود را به روز کنید.
  4. داده های منبع خود را به فایل های csv. صادر کنید.
  5. یک مجموعه داده DSPL ایجاد کنید.
  6. مجموعه داده را به گوگل ارسال کنید.

ساختار XML

بررسی اجمالی

فایل DSPL XML فراداده مجموعه داده، از جمله روابط ساختاری بین مفاهیم، ​​برش ها، موضوعات و جداول را تعریف می کند. اگرچه امکان ایجاد این فایل به صورت دستی وجود دارد، اما ابزارهای پردازش داده و اسکریپت ها می توانند روند را تا حد زیادی ساده کنند. نمونه فایل DSPL را در یک پنجره جدید ببینید .

این فایل شامل تعدادی بخش است که در جدول زیر خلاصه شده است. در ادامه جدول، هر یک از موارد قبلی را با جزئیات بیشتری شرح می دهیم.

بخش خلاصه اطلاعات بیشتر
سربرگ و واردات والد برای همه عناصر دیگر مجموعه داده. شامل فضای نام هدف (یعنی شناسه) برای مجموعه داده، به همراه فضای نام هر مجموعه داده وارد شده است. مستندات
اطلاعات مجموعه داده نام، توضیحات و 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>

فضای نام یک شناسه منحصر به فرد است که می تواند با یک طرح XML (مجموعه ای از عناصر و ویژگی های XML) مرتبط شود. targetNamespace یک URI فراهم می کند که مجموعه داده شما را شناسایی می کند. این URI برای اشاره به یک منبع واقعی لازم نیست، اما ایده خوبی است که URI را به سندی که محتوا یا مجموعه داده شما را توصیف می کند، حل و فصل کنید.

شما نیازی به ارائه یک targetNamespace . اگر این کار را نکنید، در زمان واردات، یکی به طور خودکار برای شما ایجاد می شود.

صفت targetNamespace با یک سری ویژگی xmlns دنبال می شود که طرحواره های XML دیگری را که در فایل مورد استفاده قرار می گیرند مشخص می کند. هر فایل DSPL باید شامل طرحواره داده های عمومی Google باشد که URI آن "http://schemas.google.com/dspl/2010" است و از آن به عنوان فضای نام پیش فرض استفاده کند. همچنین باید شامل طرحواره استاندارد W3 XML باشد که توسط "http://www.w3.org/2001/XMLSchema-instance" شناسایی شده است. همانطور که در بخش بعدی توضیح داده شد، فضاهای نام دیگری را می توان برای گنجاندن اطلاعات از مجموعه داده های دیگر اضافه کرد.

وارد کردن سایر فضاهای نام مجموعه داده

مجموعه داده ها می توانند از تعاریف و داده های دیگر مجموعه داده ها استفاده مجدد کنند. به عنوان مثال، گوگل تعدادی مجموعه داده اساسی را ارائه می دهد که مفاهیمی را که معمولاً در داده های کاربر ظاهر می شوند را تعریف می کند. به عنوان مثال، بیشتر مجموعه داده ها به مفهومی برای نمایش سال ها نیاز دارند. به جای تعریف یک مفهوم جدید، می توانید از مفهوم سال از مجموعه داده "http://www.google.com/publicdata/dataset/time" استفاده کنید. برای اطلاعات بیشتر به صفحه Canonical Concepts مراجعه کنید.

برای استفاده از یک مجموعه داده خارجی، عنصر <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 ارجاع دهد. این فرآیند را برای هر مجموعه داده ای که می خواهید به آن ارجاع دهید، تکرار کنید.

ارجاع به محتوا در مجموعه داده های خارجی

هنگامی که مجموعه داده دیگری را وارد کردید، باید بتوانید مفاهیم، ​​برش ها و داده ها را از آن مجموعه داده ارجاع دهید. برای انجام این کار، می توانید از مراجع فرمت 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>

عناصر

عنصر ضروری؟ شرح
<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>

عناصر

عنصر ضروری؟ شرح
<provider> آره تمام اطلاعات توصیفی در مورد ارائه دهنده مجموعه داده را در بر می گیرد. شامل عناصر فرزند <name> و <url> است.
<name> اختیاری فرزند <provider> . شامل عنصر فرزند <value> است که نام ارائه دهنده مجموعه داده را مشخص می کند.
<url> اختیاری فرزند <info> . پیوندی به یک URL با اطلاعات بیشتر درباره ارائه‌دهنده مجموعه داده.

مفاهیم

شرح

هر مجموعه داده شامل یک یا چند مفهوم است. مفهوم تعریفی از نوع داده ای است که در یک مجموعه داده ظاهر می شود. یک مجموعه داده با داده های جمعیتی، برای مثال، می تواند مفاهیم کشور، ایالت، جمعیت و سال را داشته باشد. مقادیر داده مربوط به یک مفهوم معین را نمونه هایی از آن مفهوم می نامند. مفاهیم معمولاً در مجموعه داده توصیف می شوند، اما برخی از مفاهیم (مانند زمان یا سال) ممکن است در مجموعه داده های خارجی توصیف شوند.

هر مفهوم می تواند یک یا چند ویژگی داشته باشد. یک ویژگی مشخصه یک نمونه مفهومی است که در طول زمان پایدار است. به عنوان مثال، مفهوم کشور می تواند دارای 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 تمام ویژگی ها و ویژگی های تعریف شده توسط مفهوم توسعه یافته را به ارث می برد: نام ویژگی، توضیحات، آدرس اینترنتی، طول و عرض جغرافیایی. برای country اشکالی ندارد که برخی از این ویژگی‌ها و ویژگی‌ها را بازتعریف کند، تا زمانی که تعریف با تعریف ارائه شده توسط مفهوم توسعه‌یافته مطابقت داشته باشد.
  • عنصر مفهوم <info> اطلاعات کلیدی در مورد مفهوم را توصیف می کند. این در صفحه فرود مجموعه داده در Public Data Explorer نمایش داده می شود.
  • عنصر مفهوم <type> به نوع محتوا اشاره دارد. در این مورد رشته است، اما ممکن است متفاوت باشد. مفهوم جمعیت دارای نوع integer است. Eurovision winner می تواند نوع بولی داشته باشد.
  • یک عنصر <property> هر ویژگی مفهوم را توصیف می کند، از جمله شناسه منحصر به فرد آن ( idinfo و type . ویژگی ها همچنین ممکن است به مفاهیم اشاره کنند تا نشان دهند که مقادیر آنها نمونه های معتبری از آن مفاهیم هستند.
  • این مفهوم به جدول داده ای اشاره می کند که به فایل CSV حاوی داده های واقعی اشاره می کند. جدول داده ها به این شکل ارجاع داده می شود: <table ref="countries_table"/> .

    اگر مفهوم شما به جدولی ارجاع می دهد، فایل داده مرتبط باید همه نمونه های مفهوم را فهرست کند. برای مثال نمی‌توانید جدولی ایجاد کنید که فقط چند کشور موجود در مجموعه داده را فهرست کند. (اگر زیرمجموعه ای از کشورها وجود دارد که به آنها اهمیت می دهید، می توانید یک مفهوم جداگانه برای توصیف آنها ایجاد کنید. به عنوان مثال، mycountries .)

عناصر

عنصر ضروری؟ شرح
<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 مورد نیاز دارای مقادیر مجاز زیر است:
  • رشته
  • شناور
  • عدد صحیح
  • تاریخ
  • بولی
اگر مفهوم مفهوم دیگری را بسط دهد ممکن است نوع حذف شود که در این صورت از مفهوم مبسوط به ارث می رسد.
<property> اختیاری

خاصیت مفهوم، مانند capital . مقدار مشخصه مورد id باید منحصر به مفهوم باشد. یک ویژگی concept اختیاری ممکن است برای نشان دادن اینکه مقادیر این ویژگی نمونه هایی از یک مفهوم معین هستند استفاده شود. اگر concept مشخص شده باشد، ممکن است id حذف شود. مقدار آن به طور ضمنی به عنوان شناسه مفهوم ارجاع شده تعریف می شود (به عنوان مثال، <property concept="geo:country"/> معادل <property id="country" concept="geo:country"/> است).

یک ویژگی ممکن است حاوی یک ویژگی Boolean isParent باشد تا نشان دهد که رابطه بین یک نمونه از مفهوم و مقدار این ویژگی سلسله مراتبی است.

یک ویژگی ممکن است حاوی یک ویژگی Boolean isMapping باشد تا نشان دهد که یک نگاشت 1-1 بین نمونه های مفهوم و مقادیر ویژگی وجود دارد.

یک ویژگی ممکن است info و type تودرتو را مشخص کند که دقیقاً همانطور که برای یک مفهوم تعریف شده است. type مورد نیاز است اگر ویژگی مشخصه concept را مشخص نکرده باشد، و در صورت وجود باید با نوع مفهوم ارجاع شده مطابقت داشته باشد.

<attribute> اختیاری

یک ویژگی از مفهوم. ویژگی ها نشان دهنده اطلاعات اضافی در مورد مفهوم هستند (به عنوان مثال، تولید ناخالص داخلی یک درصد است). مقدار مشخصه مورد id باید منحصر به مفهوم باشد. یک ویژگی concept اختیاری ممکن است برای نشان دادن اینکه مقادیر این ویژگی نمونه هایی از یک مفهوم معین هستند استفاده شود. اگر concept مشخص شده باشد، ممکن است id حذف شود. مقدار آن به طور ضمنی به عنوان شناسه مفهوم ارجاع شده تعریف می شود. (به عنوان مثال، <attribute concept="unit:unit"/> معادل <attribute id="unit" concept="unit:unit"/> است.

یک ویژگی ممکن است info و type تودرتو را مشخص کند که دقیقاً مانند یک مفهوم تعریف شده است. type مورد نیاز است اگر مشخصه یک ویژگی concept را مشخص نکرده باشد، و در صورت وجود باید با نوع مفهوم ارجاع شده مطابقت داشته باشد.

<table> اختیاری جدول داده حاوی داده های مفهوم را مشخص می کند. مقدار ویژگی ref مورد نیاز باید با شناسه جدول مشخص شده در عنصر <table> مرتبط مطابقت داشته باشد.

برش ها

شرح

یک برش ترکیبی از مفاهیمی است که داده ها برای آنها وجود دارد. یک برش شامل دو نوع مرجع مفهومی است: ابعاد و معیارها . بعد مفهومی است که برای بخش بندی یا فیلتر کردن داده های شما استفاده می شود. از سوی دیگر، یک متریک، مقدار یا مقادیر مشاهده شده مرتبط با هر نقطه داده را توصیف می کند.

به طور کلی، ابعاد مقوله ای هستند در حالی که متریک ها مقادیر عددی غیر مقوله ای، متغیر با زمان هستند. برخی از نمونه های اولیه هر یک به شرح زیر است:

  • ابعاد : کشور، ایالت، شهرستان، منطقه، سال، ماه، جنس، رده سنی، بخش صنعت
  • معیارها : جمعیت، تولید ناخالص داخلی، نرخ بیکاری، سواد، درآمد، هزینه، قیمت

مثال

<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 است.

عناصر

عنصر ضروری؟ شرح
<slices> آره عنصر سطح بالا تمام عناصر <slice> را در بر می گیرد.
<slice> اختیاری برش را مشخص می کند. مقدار id ویژگی مورد نیاز باید منحصر به فرد باشد.
<dimension> اختیاری با ارجاع به یک مفهوم، بعد از برش را تعریف می کند. مقدار concept ویژگی مورد نیاز باید دقیقاً با شناسه منحصر به فرد مفهوم مطابقت داشته باشد و اگر مفهوم متعلق به یک مجموعه داده وارد شده خارجی است، از یک پیشوند معتبر استفاده کند.
<metric> اختیاری با ارجاع به یک مفهوم، یک متریک از برش را تعریف می کند. مقدار concept ویژگی مورد نیاز باید دقیقاً با شناسه منحصر به فرد مفهوم مطابقت داشته باشد و اگر مفهوم متعلق به یک مجموعه داده وارد شده خارجی است، از یک پیشوند معتبر استفاده کند.
<table> آره جدول داده حاوی داده‌های برش را مشخص می‌کند. مقدار ویژگی ref مورد نیاز باید با شناسه جدول مشخص شده در عنصر <table> مرتبط مطابقت داشته باشد.
<mapDimension> اختیاری فرزند <table> . شامل concept ویژگی ها و toColumn . مقدار اولی یک بعد در برش است و مقدار دومی ستون جدول مربوط به اولی است.
<mapMetric> اختیاری فرزند <table> . شامل concept ویژگی ها و toColumn . مقدار اولی یک متریک در برش است و مقدار دومی ستون جدول مربوط به اولی است.

جداول

شرح

بخش 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 است.

عناصر

عنصر ضروری؟ شرح
<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 باشند.

موضوعات

شرح

موضوعات مفاهیم را به صورت سلسله مراتبی طبقه بندی می کنند و به کاربران این امکان را می دهند که راحت تر در مجموعه داده شما حرکت کنند.

عنصر <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>

موضوعات می توانند تودرتو باشند و یک مفهوم می تواند به بیش از یک موضوع ارجاع دهد.

تعریف عنصر

عنصر ضروری؟ شرح
<topics> آره عنصر سطح بالا تمام عناصر <topic> را در بر می گیرد.
<topic> آره موضوع را مشخص می کند. مقدار مشخصه id مورد نیاز باید منحصر به مجموعه داده باشد.
<info> اختیاری فرزند <topic> . اطلاعات مربوط به یک موضوع را در بر می گیرد.
<name> اختیاری فرزند <info> . عنصر فرزند آن <value> نام موضوع را مشخص می کند.

فایل های داده DSPL

علاوه بر فایل فراداده 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 می کند، بنابراین کشورها قابل نقشه برداری نخواهند بود.
  • هر مقدار برای فیلد id مفهوم (در این مورد، country ) باید منحصر به فرد و غیر خالی باشد (یک فیلد خالی یک با کاراکترهای صفر یا فقط خالی است).
  • مقادیر برای ویژگی هایی که به مفاهیم دیگر ارجاع می دهند یا باید خالی باشند یا یک مقدار معتبر از مفهوم ارجاع شده باشند.
  • محصور کردن مقادیر در دو گیومه اختیاری است به جز زمانی که حاوی کاما، گیومه دوتایی یا کاراکترهای خط جدید باشد.
  • با قرار دادن یک نقل قول دوتایی دیگر، از یک نقل قول دوگانه تحت اللفظی که در یک مقدار ظاهر می شود، فرار کنید.

برش فایل های داده

فایل های داده Slice حاوی داده های مرتبط برای هر برش است. تعریف slice از عنصر <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 Data عمومی قابل مشاهده باشند.

اگر مفهوم شما معادل کشورهای جهان، ایالت های ایالات متحده یا شهرستان های ایالات متحده است، می توانید فقط به مفهوم متعارف 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> مفهوم فرزند، که حاوی شناسه هایی از نمونه هایی از مفهوم والد است، نشان داده می شود.

به عنوان مثال، مفهوم کانتی ایالات متحده گوگل به شکل زیر است:

<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 در تعریف مفهوم مربوطه تعیین می شوند. پسوندها برای نشان دادن اینکه یک مفهوم خاص زیرمجموعه ای از مفهوم گسترده تر دیگری است مفید هستند. مفهوم توسعه‌یافته همه ویژگی‌ها و ویژگی‌های والد خود را به ارث می‌برد و همچنین می‌تواند ویژگی‌های اضافی را اضافه کند.

به عنوان مثال، مفهوم 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 خود آن را آزمایش کنید. تا زمانی که آن را بررسی نکنید و به ما بگویید آماده است منتشر نخواهد شد.