DSPL डेवलपर गाइड

DSPL का मतलब डेटासेट पब्लिशिंग लैंग्वेज है. यह मेटाडेटा (डेटासेट के बारे में जानकारी, जैसे कि इसका नाम और सेवा देने वाली कंपनी (साथ ही, इसमें शामिल सिद्धांत और डिसप्ले) के बारे में जानकारी) और डेटासेट के असली डेटा, दोनों को दिखाने वाला फ़ॉर्मैट है. इस फ़ॉर्मैट में बताए गए डेटासेट को Google Public Data Explorer में इंपोर्ट किया जा सकता है. यह एक ऐसा टूल है जिसकी मदद से डेटा को बेहतर तरीके से एक्सप्लोर किया जा सकता है.

ध्यान दें: सार्वजनिक डेटा अपलोड करने वाले टूल का इस्तेमाल करके, Google के सार्वजनिक डेटा में डेटा अपलोड करने के लिए, आपके पास एक Google खाता होना चाहिए.

यह दस्तावेज़ उन डेटा मालिकों के लिए है जो अपने कॉन्टेंट को सार्वजनिक डेटा एक्सप्लोरर में उपलब्ध कराना चाहते हैं. यह ट्यूटोरियल से आगे बढ़कर, DSPL स्कीमा की जानकारी और इसके साथ काम करने वाली सुविधाओं के बारे में ज़्यादा जानकारी देता है. एक्सएमएल के बारे में सिर्फ़ बुनियादी जानकारी दी जाती है. हालांकि, रिलेशनल डेटाबेस की जानकारी भी मददगार होती है.

हालांकि, ऐसा करना ज़रूरी नहीं है, लेकिन हमारा सुझाव है कि आप इस ट्यूटोरियल को पढ़ें, जो काफ़ी छोटा और जल्दी पढ़ना आसान है.

खास जानकारी

DSPL डेटासेट एक .zip फ़ाइल होती है, जिसमें एक्सएमएल फ़ाइल और CSV फ़ाइलों का सेट होता है. CSV फ़ाइलें ऐसी सरल टेबल होती हैं जिनमें डेटासेट का डेटा होता है, जबकि एक्सएमएल फ़ाइल में डेटासेट के मेटाडेटा की जानकारी होती है. दूसरे तरीके में जानकारी देने वाला मेटाडेटा, जैसे कि माप का ब्यौरा शामिल होता है. साथ ही, संरचना संबंधी मेटाडेटा जैसे टेबल के बीच की जानकारी भी शामिल होती है. इस मेटाडेटा का इस्तेमाल करके, ऐसे उपयोगकर्ता आपका डेटा देख सकते हैं जो विशेषज्ञ नहीं हैं.

संसाधित करें

आम तौर पर, डीएसपीएल डेटासेट को बनाने की प्रोसेस कुछ इस तरह की जाती है (कुछ चरण एक साथ होते हैं):

  1. अपनी DSPL एक्सएमएल फ़ाइल बनाएं.
  2. अपने डेटासेट में इस्तेमाल करने के लिए, बाहरी डेटा सोर्स की पहचान करें.
  3. अपने कॉन्सेप्ट, स्लाइस, और (ज़रूरी नहीं) विषय डालें. अपनी डीएसपीएल फ़ाइल के कॉन्टेंट को बार-बार अपडेट करें.
  4. अपना सोर्स डेटा .csv फ़ाइलों में एक्सपोर्ट करें.
  5. DSPL डेटासेट बनाएं.
  6. Google को डेटासेट सबमिट करना.

एक्सएमएल स्ट्रक्चर

खास जानकारी

DSPL एक्सएमएल फ़ाइल में डेटासेट का मेटाडेटा शामिल होता है. इसमें सिद्धांतों, स्लाइस, विषयों, और टेबल के बीच के मिलते-जुलते संबंध शामिल हैं. हालांकि, इस फ़ाइल को मैन्युअल तौर पर बनाया जा सकता है, लेकिन डेटा प्रोसेसिंग टूल और स्क्रिप्ट की मदद से, इस प्रोसेस को आसान बनाया जा सकता है. नई विंडो में एक नमूना DSPL फ़ाइल देखें.

फ़ाइल में कई सेक्शन होते हैं जिनके बारे में नीचे दी गई टेबल में खास जानकारी दी गई है. टेबल के मुताबिक, हर टेबल में हम हर विषय के बारे में ज़्यादा जानकारी देते हैं.

सेक्शन खास जानकारी ज़्यादा जानकारी
हेडर और इंपोर्ट डेटासेट के अन्य सभी एलिमेंट का पैरंट. इसमें इंपोर्ट किए गए डेटासेट के नेमस्पेस के साथ, डेटासेट का टारगेट नेमस्पेस (जैसे कि आइडेंटिफ़ायर) शामिल होता है. दस्तावेज़ के रूप में
डेटासेट की जानकारी डेटासेट का नाम, ब्यौरा, और यूआरएल. दस्तावेज़ के रूप में
सेवा देने वाली कंपनी की जानकारी डेटासेट देने वाले का नाम, ब्यौरा, और यूआरएल. दस्तावेज़ के रूप में
कॉन्सेप्ट

डेटासेट में दिखने वाली "चीज़ों" की परिभाषाएं, जैसे कि देश, बेरोज़गारी दर, लिंग वगैरह)

हर कॉन्सेप्ट का एक यूनीक आइडेंटिफ़ायर होता है, जिसे स्लाइस और टेबल से दिखाया जा सकता है.

दस्तावेज़ के रूप में
स्लाइस

ऐसे कॉन्सेप्ट का कॉम्बिनेशन जिनके लिए डेटासेट में आंकड़ों से जुड़ा डेटा मौजूद होता है. हर स्लाइस में डाइमेंशन और मेट्रिक होती हैं.

स्लाइस में कॉन्सेप्ट बताए गए हैं. साथ ही, टेबल भी दी गई हैं, जिनमें असल डेटा शामिल है. हर स्लाइस का एक यूनीक आइडेंटिफ़ायर होता है, जिसका रेफ़रंस असल डेटा वाली टेबल से दिया जा सकता है.

दस्तावेज़ के रूप में
टेबल कॉन्सेप्ट और स्लाइस के डेटा के बारे में बताएं. कॉन्सेप्ट टेबल में गिनती और स्लाइस टेबल में आंकड़ों का डेटा होता है. टेबल, एक्सएमएल फ़ाइल में तय की जाती हैं और .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>

नेमस्पेस एक यूनीक आइडेंटिफ़ायर होता है, जो किसी एक्सएमएल स्कीमा (एक्सएमएल एलिमेंट और एट्रिब्यूट का सेट) से जुड़ा हो सकता है. targetNamespace से आपके यूआरआई की पहचान करने वाला यूआरआई मिलता है. ज़रूरी नहीं है कि यह यूआरआई किसी ओरिजनल रिसॉर्स पर ले जाए. हालांकि, बेहतर होगा कि आप यूआरआई को ऐसे दस्तावेज़ में डालें जो आपके कॉन्टेंट या डेटासेट के बारे में बताता हो.

आपको targetNamespace देने की ज़रूरत नहीं है. अगर आप ऐसा नहीं करते हैं, तो इंपोर्ट के समय आपके लिए एक कुकी अपने-आप जनरेट हो जाएगी.

targetNamespace एट्रिब्यूट के बाद, xmlns एट्रिब्यूट की एक सीरीज़ होती है. इस एट्रिब्यूट में, फ़ाइल में इस्तेमाल किए जाने वाले अन्य एक्सएमएल स्कीमा की जानकारी दी जाती है. हर DSPL फ़ाइल में Google सार्वजनिक डेटा स्कीमा शामिल होना चाहिए, जिसका यूआरआई "http://schemas.google.com/dspl/2010" हो और उसे डिफ़ॉल्ट नेमस्पेस के तौर पर इस्तेमाल करें. इसमें "http://www.w3.org/2001/XMLSchema-instance" से पहचाना गया स्टैंडर्ड, W3 एक्सएमएल स्कीमा भी शामिल होना चाहिए. जैसा कि अगले सेक्शन में बताया गया है, अन्य डेटासेट में अन्य डेटासेट की जानकारी शामिल करने के लिए, दूसरे नेमस्पेस जोड़े जा सकते हैं.

अन्य डेटासेट नेमस्पेस इंपोर्ट करना

डेटासेट, दूसरे डेटासेट की परिभाषाओं और डेटा का फिर से इस्तेमाल कर सकते हैं. उदाहरण के लिए, Google ऐसे कई डेटासेट उपलब्ध कराता है जिनसे उपयोगकर्ता के डेटा में दिखने वाले कॉन्सेप्ट के बारे में पता चलता है. उदाहरण के लिए, ज़्यादातर डेटासेट में, सालों को दिखाने के लिए कॉन्सेप्ट की ज़रूरत होती है. एक नया कॉन्सेप्ट तय करने के बजाय, "http://www.google.com/publicdata/dataset/time" डेटासेट से साल के कॉन्सेप्ट का इस्तेमाल करें. ज़्यादा जानकारी के लिए, कैननिकल कॉन्सेप्ट पेज देखें.

किसी बाहरी डेटासेट का इस्तेमाल करने के लिए, नेमस्पेस के एलान के तुरंत बाद DSPL फ़ाइल में <import> एलिमेंट जोड़ें और इंपोर्ट किए जाने वाले डेटास्पेस के बारे में बताएं, जैसे:

<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 बाहरी डेटासेट के नेमस्पेस के लिए इस्तेमाल किया जाने वाला प्रीफ़िक्स है.

यहां time डेटासेट के year कॉन्सेप्ट के रेफ़रंस का उदाहरण दिया गया है (ऊपर बताया गया है):

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

डेटासेट की जानकारी

<info> एलिमेंट में डेटासेट के बारे में ज़्यादा जानकारी दी जाती है. काम के एक्सएमएल एलिमेंट का एक उदाहरण और उनकी जानकारी यहां दी गई है.

उदाहरण

<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> का बच्चा. डेटासेट के बारे में ज़्यादा जानकारी देने वाले यूआरएल का लिंक.

कंपनी की जानकारी

<provider> एलिमेंट में, डेटासेट देने वाले की जानकारी शामिल होती है. काम के एक्सएमएल एलिमेंट का एक उदाहरण और उनकी जानकारी यहां दी गई है.

उदाहरण

<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> का बच्चा. डेटासेट देने वाले के बारे में ज़्यादा जानकारी वाले यूआरएल का लिंक.

कॉन्सेप्ट

ब्यौरा

हर डेटासेट में एक या इससे ज़्यादा कॉन्सेप्ट होते हैं. कॉन्सेप्ट, डेटा में मौजूद एक ऐसे टाइप की परिभाषा है जो डेटासेट में दिखता है. उदाहरण के लिए, डेमोग्राफ़िक के हिसाब से जनसंख्या डेटा वाले डेटासेट में देश, राज्य, जनसंख्या, और साल के सिद्धांत हो सकते हैं. किसी कॉन्सेप्ट से जुड़ी डेटा वैल्यू को, उस कॉन्सेप्ट के इंस्टेंस कहा जाता है. आम तौर पर, डेटासेट में कॉन्सेप्ट की जानकारी दी जाती है, लेकिन कुछ डेटासेट (जैसे कि समय या साल) के बारे में बाहरी डेटासेट में बताया जा सकता है.

हर कॉन्सेप्ट की एक या उससे ज़्यादा प्रॉपर्टी हो सकती हैं. प्रॉपर्टी, कॉन्सेप्ट इंस्टेंस की विशेषता है जो समय के साथ बदलती रहती है. उदाहरण के लिए, देश के कॉन्सेप्ट में 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> एलिमेंट, इस कॉन्सेप्ट के बारे में खास जानकारी देता है. यह डेटासेट के लैंडिंग पेज पर, सार्वजनिक डेटा एक्सप्लोरर में दिखता है.
  • <type> एलिमेंट का मतलब है कि कॉन्टेंट किस तरह का है. इस मामले में यह स्ट्रिंग है, लेकिन यह अलग-अलग हो सकती है. जनसंख्या में integer का टाइप होगा; Eurovision winner के टाइप में बूलियन का टाइप हो सकता है.
  • <property> एलिमेंट, कॉन्सेप्ट की हर प्रॉपर्टी की जानकारी देता है. इसमें उसका यूनीक आईडी (id), info, और 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> शामिल है, जिसमें कॉन्सेप्ट का यूआरएल शामिल है.
<pluralName> ज़रूरी नहीं <info> का बच्चा. सिद्धांत का बहुवचन नाम. चाइल्ड एलिमेंट <value> में टेक्स्ट है - उदाहरण के लिए, Countries.
<totalName> ज़रूरी नहीं <info> का बच्चा. कॉन्सेप्ट के सभी इंस्टेंस के कॉम्बिनेशन का नाम. चाइल्ड एलिमेंट <value> में टेक्स्ट है- country कॉन्सेप्ट के मामले में, यह World हो सकता है.
<type> ज़रूरी नहीं इससे पता चलता है कि कॉन्सेप्ट में किस तरह का कॉन्टेंट है. ज़रूरी एट्रिब्यूट ref में ये वैल्यू हो सकती हैं:
  • स्ट्रिंग
  • फ़्लोट
  • पूर्णांक
  • date
  • बूलियन
हो सकता है कि कॉन्सेप्ट किसी दूसरे सिद्धांत के हिसाब से हो. ऐसे में, हो सकता है कि वह टाइप एक्सटेंडेड कॉन्सेप्ट से इनहेरिट हो जाए. हालांकि, ऐसा नहीं हो सकता.
<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> ज़रूरी नहीं

सिद्धांत की विशेषता. एट्रिब्यूट, कॉन्सेप्ट के बारे में ज़्यादा जानकारी दिखाते हैं (उदाहरण के लिए, GDP एक प्रतिशत है). ज़रूरी एट्रिब्यूट id की वैल्यू, कॉन्सेप्ट के लिए यूनीक होनी चाहिए. वैकल्पिक concept एट्रिब्यूट का इस्तेमाल यह बताने के लिए किया जा सकता है कि इस एट्रिब्यूट की वैल्यू, दिए गए कॉन्सेप्ट के उदाहरण हैं. अगर concept बताया गया है, तो id को हटाया जा सकता है. इसकी वैल्यू साफ़ तौर पर, बताए गए कॉन्सेप्ट के आईडी के तौर पर दी गई है. (उदाहरण के लिए, <attribute concept="unit:unit"/>, <attribute id="unit" concept="unit:unit"/> के बराबर है.

एट्रिब्यूट, नेस्ट किया गया info और type तय कर सकता है. ये कॉन्सेप्ट किसी कॉन्सेप्ट की तरह ही होते हैं. अगर एट्रिब्यूट में concept एट्रिब्यूट के बारे में कोई जानकारी नहीं दी गई है, तो type ज़रूरी है. अगर एट्रिब्यूट, बताए गए सिद्धांत से मेल खाता है, तो उसे उसी तरह के होना चाहिए.

<table> ज़रूरी नहीं इस सिद्धांत के लिए, डेटा टेबल की पहचान करता है. ज़रूरी ref एट्रिब्यूट की वैल्यू, उससे जुड़े <table> एलिमेंट में दिए गए टेबल आईडी से मेल खानी चाहिए.

स्‍लाइस

ब्यौरा

स्लाइस, उन सिद्धांतों को मिलाकर बनाया जाता है जिनके लिए डेटा मौजूद है. स्लाइस में दो तरह के कॉन्सेप्ट शामिल होते हैं: डाइमेंशन और मेट्रिक. डाइमेंशन एक ऐसा कॉन्सेप्ट है जिसका इस्तेमाल, आपके डेटा को सेगमेंट करने या फ़िल्टर करने के लिए किया जाता है. वहीं, मेट्रिक, हर डेटा पॉइंट से जुड़ी वैल्यू या देखी गई वैल्यू दिखाती है.

आम तौर पर, डाइमेंशन कैटगरी की होती हैं, जबकि मेट्रिक, बिना किसी कैटगरी के, समय के साथ बदलती रहती हैं. यहां प्रोटोटाइप के कुछ उदाहरण दिए गए हैं:

  • डाइमेंशन: देश, राज्य, देश, इलाका, साल, महीना, लिंग, उम्र की कैटगरी, उद्योग का सेगमेंट
  • मेट्रिक: जनसंख्या, GDP, बेरोज़गारी की दर, साक्षरता, आय, लागत, कीमत

उदाहरण

<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 एट्रिब्यूट शामिल होते हैं. पहले वैल्यू की वैल्यू स्लाइस में मेट्रिक होती है. वहीं, दूसरी वैल्यू का वैल्यू, टेबल कॉलम में पहले वाले कॉलम के हिसाब से होता है.

टेबल

ब्यौरा

DSPL फ़ाइल का tables सेक्शन, डेटासेट में शामिल डेटा टेबल की पहचान करता है. इन टेबल को कॉन्सेप्ट या स्लाइस से रेफ़र किया जा सकता है. हर <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> का बच्चा. टेबल से जुड़ी डेटा फ़ाइल. अगर फ़ाइल का नाम यूआरएल के रूप में है (उदाहरण के लिए, http://...), तो फ़ाइल को सही प्रोटोकॉल (एचटीटीपी, एचटीटीपीएस या फ़ाइल ट्रांसफ़र प्रोटोकॉल (एफ़टीपी)) की मदद से फ़ेच किया जाएगा. अगर नहीं, तो इस नाम की फ़ाइल को डेटासेट के साथ बंडल किया जाना चाहिए. ज़रूरी एट्रिब्यूट format की वैल्यू हमेशा csv होती है. हालांकि, encoding एट्रिब्यूट ज़रूरी नहीं है, लेकिन आपकी .csv फ़ाइलें, UTF-8 कोड में बदली गई होनी चाहिए.

विषय

ब्यौरा

विषय, सिद्धांतों को क्रम के हिसाब से अलग-अलग कैटगरी में बांटते हैं. इससे उपयोगकर्ता आपके डेटासेट पर आसानी से नेविगेट कर पाते हैं.

<topics> एलिमेंट आपकी DSPL फ़ाइल में, <concepts> एलिमेंट से ठीक पहले दिखना चाहिए. (एलिमेंट का क्रम अहम है. अगर आपके एलिमेंट गलत क्रम में हैं, तो हो सकता है कि आप डेटासेट अपलोड न कर पाएं.) विषयों का इस्तेमाल करने के लिए, कॉन्सेप्ट की परिभाषा से उनका रेफ़रंस लें.

उदाहरण

यहां विषय की परिभाषा का उदाहरण दिया गया है:

<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 डेटा फ़ाइलें

एक्सएमएल मेटाडेटा फ़ाइल के साथ-साथ, DSPL डेटासेट को CSV फ़ॉर्मैट में, एक या इससे ज़्यादा डेटा फ़ाइलों को भी शामिल किया जा सकता है. हर डेटा फ़ाइल में डेटासेट में एक टेबल होती है. साथ ही, उसका डेटा <data>...</data> सेक्शन में दी गई पिछली टेबल से लिया जाता है. सैद्धांतिक तौर पर, इन फ़ाइलों और इनसे जुड़ी टेबल का इस्तेमाल कॉन्सेप्ट की परिभाषाओं या स्लाइस डेटा को दिखाने के लिए किया जाता है. इनमें से हर डेटा फ़ाइल टाइप के बारे में ज़्यादा जानकारी दी गई है.

ध्यान दें, मकसद के बावजूद, सभी डेटा फ़ाइलों को कॉमा-डीलिमिटेड (CSV) वाली UTF-8 टेक्स्ट फ़ाइलें होनी चाहिए. फ़ाइलों में सिर्फ़ सादा टेक्स्ट होना चाहिए, न कि एचटीएमएल. डेटा फ़ाइलों को मैन्युअल तरीके से बनाया जा सकता है. हालांकि, असल में आपको टूल में मूल डेटा सोर्स वाले टूल (उदाहरण के लिए, स्प्रेडशीट) या एक्सपोर्ट की गई फ़ाइल में मसाज करनी होगी.

फ़ाइलों को डेटासेट के साथ बंडल किया जा सकता है. इसके अलावा, अगर नाम यूआरएल के तौर पर मौजूद है, तो उसे रिमोट सोर्स से एचटीटीपी, एचटीटीपीएस या एफ़टीपी के ज़रिए फ़ेच किया जा सकता है.

कॉन्सेप्ट डेटा फ़ाइलें

डेटा की फ़ाइलों में हर कॉन्सेप्ट के बारे में काम की जानकारी मौजूद है. इस कॉन्सेप्ट की परिभाषा में, <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 फ़ील्ड डाइमेंशन फ़ील्ड हैं.
  • किसी डाइमेंशन फ़ील्ड की हर वैल्यू खाली नहीं होनी चाहिए. इसमें समय डाइमेंशन शामिल हैं. मेट्रिक फ़ील्ड की वैल्यू खाली हो सकती हैं. बिना शीर्षक वाली वैल्यू में कोई वर्ण नहीं होता.
  • हर कॉलम का शीर्षक, एक कॉन्सेप्ट को रेफ़र करता है. उदाहरण के लिए, ऊपर दिए गए उदाहरण के पहले फ़ील्ड में, कॉन्सेप्ट की परिभाषा में दिए गए यूनीक आईडी से पूरी तरह मेल खाना चाहिए.
  • डाइमेंशन वैल्यू का यूनीक कॉम्बिनेशन, जैसे कि AF, 2000, सिर्फ़ एक बार हो सकता है.
  • एक ही टाइम सीरीज़ की पंक्तियों (जैसे, वे पंक्तियां जिनमें समय को छोड़कर सभी डाइमेंशन मान एक ही होते हैं) का एक साथ होना ज़रूरी है, हालांकि उन्हें किसी और क्रम से लगाने की ज़रूरत नहीं होती है.

बेहतर सुविधाएं

कई भाषाओं वाले डेटासेट

अनुवाद की गई एक्सएमएल वैल्यू

आप अपनी डीएसपीएल फ़ाइल में हर <value> एलिमेंट के साथ xml:lang एट्रिब्यूट इस्तेमाल कर सकते हैं. यह एट्रिब्यूट, स्टैंडर्ड, 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>

countries_table की CSV फ़ाइल का फ़ॉर्मैट ऐसा होगा:

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>
  

इसके बाद, इनसे जुड़ी वैल्यू को कॉन्सेप्ट की परिभाषा वाले डेटा टेबल में कॉलम के तौर पर दिखाया जाता है.

कॉन्सेप्ट रिलेशनशिप

सिद्धांत अक्सर व्यवस्थित तरीके से दूसरी चीज़ों से जुड़े होते हैं. उदाहरण के लिए, एक महाद्वीप के इंस्टेंस में देश के कई इंस्टेंस हो सकते हैं. हालांकि, इसमें कई राज्य या प्रांत के इंस्टेंस भी शामिल हो सकते हैं. इन संबंधों को डेटासेट मेटाडेटा में एन्कोड करने से, बेहतर विज़ुअलाइज़ेशन सुविधाएं मिल सकती हैं. उदाहरण के लिए, ऐसी जगहों के शीर्षक को छोटा करने का ट्री जहां से चुना जा सकता है.

नीचे दिए गए सेक्शन में, हम डीएसपीएल स्कीमा की मदद से बनाए गए सिद्धांतों के बारे में बताते हैं.

हैरारकी

कॉन्सेप्ट के क्रम को डीएसपीएल में, चाइल्ड कॉन्सेप्ट के <property> टैग में, isParent="true" एट्रिब्यूट का इस्तेमाल करके दिखाया जाता है. इसमें पैरंट कॉन्सेप्ट के इंस्टेंस के आइडेंटिफ़ायर शामिल होते हैं.

उदाहरण के लिए, 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 कॉलम होता है. इस तरह के मेटाडेटा से, पब्लिक डेटा एक्सप्लोरर, राज्य और काउंटी को क्रम के हिसाब से दिखा पाता है. इस सुविधा से, उपयोगकर्ताओं के लिए एक्सप्लोरेशन को काफ़ी आसान बना दिया जाता है.

ध्यान दें कि एक कॉन्सेप्ट में कई बच्चे हो सकते हैं, लेकिन एक से ज़्यादा पैरंट नहीं हो सकते.

डेटा मैपिंग

कॉन्सेप्ट मैपिंग (यानी, वे सिद्धांत जो मूल रूप से एक ही चीज़ को दिखाते हैं) मैप किए गए कॉन्सेप्ट के property टैग में isMapping="true" एट्रिब्यूट के ज़रिए दिखाए जाते हैं.

किसी कॉन्सेप्ट को मैप करने से, दूसरे कॉन्सेप्ट की मदद से, दूसरे एट्रिब्यूट की सभी प्रॉपर्टी और एट्रिब्यूट को अपने-आप लागू किया जा सकता है. दूसरे ऐप्लिकेशन के साथ यह सुविधा, भौगोलिक भौगोलिक कॉन्सेप्ट को "लिंक" करने के लिए मददगार होती है. इन सिद्धांतों को 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 फ़ाइलों को एक ही डायरेक्ट्री में सेव करें. यूआरएल के ज़रिए बताई गई डेटा फ़ाइलों को हटाया जा सकता है.
  4. डायरेक्ट्री को zip करें.
  5. Google Public Data Explorer में अपना डेटासेट अपलोड करें.

आपके डेटासेट को अपलोड करने और उसकी पुष्टि होने के बाद, Google खाते में साइन इन करके, उसकी जांच की जा सकती है. यह तब तक पब्लिश नहीं किया जाएगा, जब तक आप इसकी जांच करके हमें यह तैयार नहीं कर देते.