DSPL का मतलब है Dataset Publishing Language. DSPL में बताए गए डेटासेट Google के सार्वजनिक डेटा Explorer एक ऐसा टूल है जिसकी मदद से डेटा शामिल है.
ध्यान दें: Google के सार्वजनिक डेटा पर डेटा अपलोड करने के लिए सार्वजनिक डेटा अपलोड करने वाले टूल का इस्तेमाल करके, आपके पास Google खाता होना चाहिए.
इस ट्यूटोरियल में बेसिक डिज़ाइन करने का सिलसिलेवार उदाहरण दिया गया है DSPL डेटासेट.
DSPL डेटासेट एक बंडल होता है, जिसमें एक एक्सएमएल फ़ाइल और CSV फ़ाइलें. CSV फ़ाइलें साधारण टेबल होती हैं जिनमें इसका data होता है डेटासेट. एक्सएमएल फ़ाइल, डेटासेट के मेटाडेटा के बारे में बताती है, इसमें जानकारी वाला मेटाडेटा शामिल होता है, जैसे कि उपायों का ब्यौरा. साथ ही, स्ट्रक्चरल मेटाडेटा, जैसे कि टेबल के बीच रेफ़रंस. मेटाडेटा आपको जो उपयोगकर्ता विशेषज्ञ नहीं हैं वे आपके डेटा को एक्सप्लोर और विज़ुअलाइज़ कर सकते हैं.
इस ट्यूटोरियल को समझने के लिए बस यही एक ज़रूरी शर्त है कि की समझ है. डेटाबेस के आसान कॉन्सेप्ट की कुछ समझ (जैसे, टेबल, प्राथमिक कुंजी) से मदद मिल सकती है, लेकिन ऐसा करना ज़रूरी नहीं है. रेफ़रंस के लिए, पूरी एक्सएमएल फ़ाइल और पूर्ण डेटासेट इस ट्यूटोरियल से जुड़े बंडल भी समीक्षा के लिए उपलब्ध हैं.
खास जानकारी
हमारा डेटासेट बनाने से पहले, यहां काफ़ी जानकारी दी गई है DSPL डेटासेट में क्या-क्या शामिल होता है:
- सामान्य जानकारी: डेटासेट के बारे में जानकारी
- Concepts: "चीज़ों" की परिभाषाएं वह डेटासेट में दिखाया जा सकता है (उदाहरण के लिए, देश, बेरोज़गारी की दर, लिंग, etc.)
- स्लाइस: कॉन्सेप्ट के कॉम्बिनेशन के हिसाब से डेटा
- टेबल: कॉन्सेप्ट और स्लाइस के लिए डेटा. कॉन्सेप्ट टेबल गिनती और स्लाइस टेबल में आंकड़ों वाला डेटा होता है
- विषय: इसका इस्तेमाल, डेटासेट के सिद्धांतों को व्यवस्थित करने के लिए किया जाता है सही क्रम में लगाने के लिए,
इन अमूर्त अवधारणाओं को समझाने के लिए, डेटासेट ( dummy data) का इस्तेमाल इस ट्यूटोरियल में किया गया है: जनसंख्या और बेरोज़गारी की जानकारी, अलग-अलग देशों के मिले-जुले रूप से देखी जा सकती है. अमेरिका का राज्य और लैंगिक जानकारी.
इस उदाहरण में दिए गए डेटासेट में इन सिद्धांतों के बारे में बताया गया है:
- country
- लिंग
- जनसंख्या
- राज्य
- बेरोज़गारी की दर
- वर्ष
कैटगरी वाले कॉन्सेप्ट, जैसे कि राज्य टेबल, जिसमें सभी संभावित वैल्यू (कैलिफ़ोर्निया, ऐरिज़ोना वगैरह). कॉन्सेप्ट में प्रॉपर्टी के लिए और कॉलम हो सकते हैं, जैसे कि किसी राज्य का नाम या देश का नाम.
स्लाइस में कॉन्सेप्ट का हर कॉम्बिनेशन तय किया जाता है, जिसके लिए
डेटासेट में आंकड़ों का डेटा. स्लाइस में डाइमेंशन होते हैं और
मेट्रिक के मुताबिक हो. ऊपर दी गई तस्वीर में, डाइमेंशन नीले रंग के हैं और
मेट्रिक नारंगी होती हैं. इस उदाहरण में, स्लाइस
gender_country_slice
में मेट्रिक के लिए डेटा मौजूद है
population
और डाइमेंशन country
,
year
और gender
. एक और स्लाइस, जिसे
country_slice
,
देशों.
डाइमेंशन और मेट्रिक के अलावा, स्लाइस भी टेबल, जिनमें असली डेटा होता है.
आइए, अब ऐसे डेटासेट को बनाने के बारे में सिलसिलेवार तरीक़े से जानते हैं. डीएसपीएल.
डेटासेट की जानकारी
शुरू करने के लिए, हमें अपने डेटासेट के लिए एक एक्सएमएल फ़ाइल बनानी होगी. यहां है डेटासेट के उदाहरण के लिए, DSPL के ब्यौरे की शुरुआत:
<?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" xmlns:geo="http://www.google.com/publicdata/dataset/google/geo" xmlns:entity="http://www.google.com/publicdata/dataset/google/entity" xmlns:quantity="http://www.google.com/publicdata/dataset/google/quantity"> <import namespace="http://www.google.com/publicdata/dataset/google/time"/> <import namespace="http://www.google.com/publicdata/dataset/google/entity"/> <import namespace="http://www.google.com/publicdata/dataset/google/geo"/> <import namespace="http://www.google.com/publicdata/dataset/google/quantity"/> <info> <name> <value>My statistics</value> </name> <description> <value>Some very interesting statistics about countries</value> </description> <url> <value>http://www.stats-bureau.com/mystats/info.html</value> </url> </info> <provider> <name> <value>Bureau of Statistics</value> </name> <url> <value>http://www.stats-bureau.com</value> </url> </provider> ... </dspl>
डेटासेट की जानकारी, टॉप लेवल <dspl>
से शुरू होती है
एलिमेंट. targetNamespace
एट्रिब्यूट में ऐसा यूआरआई शामिल है जो
इस डेटासेट की खास तौर पर पहचान करता है. डेटासेट का नेमस्पेस खास तौर पर
महत्वपूर्ण है, क्योंकि यह डेटासेट का ग्लोबल आइडेंटिफ़ायर होगा
शामिल हैं और अन्य लोग इसे समझ सकें.
ध्यान दें कि targetNamespace
एट्रिब्यूट को हटाया जा सकता है. तय सीमा में
इस मामले में, जब डेटासेट होता है, तो एक यूनीक नेमस्पेस अपने-आप जनरेट हो जाता है:
आयात किया गया.
अन्य डेटासेट से जानकारी इस्तेमाल करना
डेटासेट इंपोर्ट करके, दूसरे डेटासेट से डेफ़िनिशन और डेटा का फिर से इस्तेमाल कर सकते हैं
डेटासेट नहीं जोड़ना है. हर <import>
एलिमेंट
नेमस्पेस का इस्तेमाल करें, जिसे यह डेटासेट रेफ़र करेगा.
हमारे उदाहरण डेटासेट में, हमें http://www.google.com/publicdata/dataset/google/quantity से ली गई कुछ परिभाषाओं की ज़रूरत होगी (यह Google का बनाया हुआ डेटासेट है. इसमें ऐसे कॉन्सेप्ट हैं जो उन्हें संख्या वाले), और समय, entity, और geo डेटासेट से लिया गया है, जो समय, इकाइयों, और भूगोल से जुड़ी परिभाषाएं.
सबसे ऊपर मौजूद <dspl>
एलिमेंट, नेमस्पेस प्रीफ़िक्स देता है
एलान (उदाहरण के लिए, हर एक के लिए, xmlns:time="http://..."
)
का एक उदाहरण है. रेफ़रंस के लिए, प्रीफ़िक्स एलान ज़रूरी हैं
दूसरे डेटासेट के एलिमेंट को कम से कम शब्दों में इस्तेमाल किया जा सकता है. उदाहरण के लिए,
time:year
year
की परिभाषा को इसमें
इंपोर्ट किया गया वह डेटासेट जिसका नेमस्पेस प्रीफ़िक्स से जुड़ा है
time
.
डेटासेट और प्रोवाइडर की जानकारी
<info>
एलिमेंट में इसके बारे में सामान्य जानकारी मौजूद है
डेटासेट: नाम, ब्यौरा, और वह यूआरएल जहां ज़्यादा जानकारी
मिल गया.
<provider>
एलिमेंट में
डेटासेट की कंपनी: इसका नाम और यूआरएल जहां ज़्यादा जानकारी
पाया गया (आम तौर पर, डेटा उपलब्ध कराने वाली कंपनी का होम पेज).
कॉन्सेप्ट तय करना
अब हमने डेटासेट के बारे में कुछ सामान्य जानकारी दे दी है, अब हम इसका कॉन्टेंट तय करने के लिए तैयार हैं. हमारा अगला लक्ष्य है कि हम पिछले 50 सालों में देशों की जनसंख्या के आंकड़े.
हमें सबसे पहले उन सिद्धांतों की कुछ परिभाषाएं देनी होंगी जनसंख्या, देश, और साल के हिसाब से. DSPL में, इन परिभाषाओं को Concepts का इस्तेमाल करें.
सिद्धांत ऐसे डेटा की परिभाषा है जो डेटासेट. किसी दिए गए कॉन्सेप्ट से जुड़ी डेटा वैल्यू को इंस्टेंस दिखेंगे.
जनसंख्या
चलिए, जनसंख्या के बारे में बताने से शुरुआत करते हैं. में
DSPL दस्तावेज़, <concepts>
में कॉन्सेप्ट के बारे में बताया गया है
एलिमेंट, जो डेटासेट और सेवा देने वाली कंपनी की जानकारी के ठीक बाद आता है.
यहां जनसंख्या से जुड़ा एक सिद्धांत दिया गया है, जिसमें बहुत कम जानकारी की ज़रूरत है
किसी भी कॉन्सेप्ट के लिए: id
(एक यूनीक आइडेंटिफ़ायर), name
, और
type
.
<dspl ...> ... <concepts> <concept id="population"> <info> <name> <value>Population</value> </name> </info> <type ref="integer"/> </concept> ... </concepts>
यहां इस नमूने के काम करने का तरीका बताया गया है:
- हर कॉन्सेप्ट के लिए
id
देना ज़रूरी है, जो खास तौर पर डेटासेट में मौजूद है. इसका मतलब है कि एक डेटासेट के लिए एक ही आईडी हो सकता है. - डेटासेट और उसे उपलब्ध कराने वाली कंपनी की तरह ही,
<info>
एलिमेंट, जैसे कॉन्सेप्ट, उसका नाम और ब्यौरा. <type>
एलिमेंट, इस मेट्रिक के लिए डेटा टाइप तय करता है इंस्टेंस (दूसरे शब्दों में, इसकी "वैल्यू"). इस उदाहरण में,population
का टाइप यह हैinteger
. DSPL इस तरह के डेटा के साथ काम करता है:string
integer
float
boolean
date
देश
चलिए, अब देश के कॉन्सेप्ट की परिभाषा लिखते हैं:
<concept id="country"> <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> <table ref="countries_table" /> </concept>
देश के कॉन्सेप्ट की परिभाषा, पिछली इमेज की तरह ही शुरू होती है,
id
, info
, और type
के साथ.
कॉन्सेप्ट वैल्यू
देशों जैसी कैटगरी में आने वाले हर विषय के बारे में सभी संभव जानकारी मिलती है
इंस्टेंस. दूसरे शब्दों में, आप उन सभी संभावित देशों की सूची बना सकते हैं
संदर्भ दिया गया है. हालांकि, ऐसा करने के लिए हर देश के लिए एक यूनीक आइडेंटिफ़ायर की ज़रूरत होती है.
इस उदाहरण में
देशों की पहचान करने के लिए आईएसओ देश कोड; ये कोड
string
टाइप का है.
इस उदाहरण में, आपको आईएसओ कोड का इस्तेमाल करने की ज़रूरत नहीं है; की पहचान करें देश का नाम डालने के साथ-साथ. हालांकि, भाषा के हिसाब से नाम अलग-अलग होते हैं. समय के साथ बदल सकता है और सभी डेटासेट में इनका इस्तेमाल हमेशा नहीं किया जाता. देशों के लिए और आम तौर पर कैटगरी से जुड़ी कॉन्सेप्ट के लिए, यह बेहतर है चुनने का अभ्यास करें, छोटा, स्थिर, और आम तौर पर इस्तेमाल होने वाला, और भाषा से अलग आइडेंटिफ़ायर (अगर वे मौजूद हैं).
कॉन्सेप्ट प्रॉपर्टी
इसके id
के अलावा, देश की अवधारणा में
देश का नाम बताने वाला <property>
एलिमेंट.
दूसरे शब्दों में, देश का नाम ("आयरलैंड") एक प्रॉपर्टी है
id
आईई के साथ देश के. प्रॉपर्टी, DSPL की मदद से काम करती हैं
कॉन्सेप्ट के उदाहरणों के बारे में ज़्यादा स्ट्रक्चर्ड जानकारी दी जा सकती है.
कॉन्सेप्ट की तरह ही, प्रॉपर्टी में भी id
,
info
और type
.
कॉन्सेप्ट डेटा
आखिर में, देश के कॉन्सेप्ट में एक <table>
एलिमेंट होता है.
यह एलिमेंट एक ऐसी टेबल का रेफ़रंस देता है जिसमें सभी
देशों.
टेबल का इस्तेमाल कुछ कॉन्सेप्ट के लिए सही है, लेकिन कुछ के लिए नहीं. इसके लिए उदाहरण के लिए, जनसंख्या को अलग-अलग तरह से कैसे सेट करता है. हालांकि, यदि आप कॉन्सेप्ट न हो, तो उस टेबल में कॉन्सेप्ट के सभी इंस्टेंस शामिल होने चाहिए—उदाहरण के लिए, इसमें कुछ सैंपल नहीं, बल्कि हर देश की जानकारी होनी चाहिए.
डेटासेट, countries_table
टेबल के बारे में इस तरह बताता है:
... <tables> <table id="countries_table"> <column id="country" type="string"/> <column id="name" type="string"/> <data> <file format="csv" encoding="utf-8">countries.csv</file> </data> </table> ... </tables>
देशों की टेबल में टेबल के कॉलम और उनके टाइप की जानकारी होती है,
और उस CSV फ़ाइल का रेफ़रंस देता है जिसमें डेटा मौजूद होता है. यह CSV इनमें से कोई भी हो सकती है
डेटासेट एक्सएमएल के साथ बंडल और अपलोड किया गया हो या एचटीटीपी, एचटीटीपीएस के ज़रिए रिमोट तरीके से ऐक्सेस किया गया हो,
या एफ़टीपी. बाद के मामलों में, आपको countries.csv
को इससे बदलना होगा
उदाहरण के लिए, http://www.myserver.com/mydata/countries.csv
.
जहां भी इसे सेव किया जाता है, वहां CSV फ़ाइल इस तरह दिखती है:
country, name AD, Andorra AF, Afghanistan AI, Anguilla AL, Albania US, United States
टेबल की पहली पंक्ति में कॉलम आईडी होते हैं, जैसा कि DSPL में बताया गया है
table
की परिभाषा. निम्न में से प्रत्येक पंक्ति एक पंक्ति से संबंधित है
का उदाहरण लेते हैं. अगर कॉन्सेप्ट में कोई टेबल है, तो
टेबल में सभी कॉन्सेप्ट के इंस्टेंस होने चाहिए, जो
केस में, इसमें सभी देशों की सूची होनी चाहिए.
कॉलम को देश के सिद्धांत और इसकी प्रॉपर्टी के आधार पर मैप किया जाता है
आईडी. पहले कॉलम का आईडी, country
, कॉन्सेप्ट से मेल खाता है
आईडी. इसका मतलब है कि इस कॉलम में देश का यूनीक आइडेंटिफ़ायर दिया गया है
के बारे में बताया गया है. अगला कॉलम इससे संबंधित है
देश के कॉन्सेप्ट की name
प्रॉपर्टी. वैल्यू
इस कॉलम में मौजूद वैल्यू, name
प्रॉपर्टी की वैल्यू से मैच करती हैं.
कॉन्सेप्ट टेबल के CSV डेटा की कुछ ज़रूरी शर्तें हैं:
- डेटा फ़ाइल की पहली लाइन में मौजूद कॉलम के टाइटल को
एग्ज़ैक्ट कॉन्सेप्ट
id
और प्रॉपर्टी से मैच करता होid
(हालांकि, डेटा से जुड़े सिद्धांत का इस्तेमाल करके) क्रम भिन्न हो सकता है). - प्रत्येक पंक्ति में तत्वों की संख्या प्रॉपर्टी सेट अप की जा सकती हैं (भले ही वैल्यू खाली हो).
- कॉन्सेप्ट के
id
फ़ील्ड के लिए हर वैल्यू (यहां, देश का कोड) यूनीक और खाली नहीं होना चाहिए (खाली फ़ील्ड एक शून्य है) या सिर्फ़ व्हाइटस्पेस वर्ण). - अन्य कॉन्सेप्ट का रेफ़रंस देने वाली प्रॉपर्टी की वैल्यू खाली या रेफ़र किए गए कॉन्सेप्ट की मान्य वैल्यू डालें.
- कॉमा, डबल कोट या न्यूलाइन वर्णों के मान इसे डबल कोट में रखा गया हो.
- वैल्यू के अंदर मौजूद लिटरल डबल कोट वाला वर्ण तुरंत होना चाहिए जिसके पहले एक और दोहरा उद्धरण लगता है.
साल
देश की जनसंख्या के डेटा के लिए, हमें जिस आखिरी कॉन्सेप्ट की ज़रूरत है वह है,
सालों को दिखाता है. नया कॉन्सेप्ट तय करने के बजाय, हम
साल के कॉन्सेप्ट के बारे में जानकारी:
"http://www.google.com/publicdata/dataset/google/time". ऐसा करने के लिए,
हमें इसे time:year
के तौर पर रेफ़रंस देना होगा, जहां time
उस डेटासेट के बारे में बताता है जिसका रेफ़रंस दिया गया है. year
से यह पता चलता है कि
कॉन्सेप्ट को समझने की कोशिश करते हैं.
कैननिकल कॉन्सेप्ट
time:year
, कैननिकल कॉन्सेप्ट के छोटे सेट का हिस्सा है
तय किया गया है. कैननिकल सिद्धांत, समय की बुनियादी परिभाषाएं देते हैं,
भूगोल, अंकों वाली संख्या, इकाइयां वगैरह.
असल में, ऊपर परिभाषित देश की अवधारणा
कैननिकल कॉन्सेप्ट से जुड़ी जानकारी शामिल करें. हमने इसे यहां सिर्फ़ दिखाने के लिए बनाया है.
जब भी हो सके, आपको अपने डेटासेट में कैननिकल कॉन्सेप्ट का इस्तेमाल करना चाहिए.
या इन्हें बढ़ाकर देखें (ज़्यादा जानकारी के लिए नीचे एक्सटेंशन के बारे में बताया गया है). कैननिकल कॉन्सेप्ट
अपने डेटा की तुलना दूसरे डेटासेट से की जा सकती है. साथ ही, अपने लिए सुविधाओं को चालू किया जा सकता है
सार्वजनिक डेटा एक्सप्लोरर में डेटासेट. उदाहरण के लिए, समय के साथ डेटा को ऐनिमेट करना
या मैप पर भौगोलिक डेटा दिखाने के लिए, time
और
geo
कैननिकल सिद्धांत.
पहला स्लाइस
अब हमारे पास जनसंख्या, देश, और साल के बारे में कॉन्सेप्ट है, तो समय आ गया है ताकि उन्हें एक साथ रखा जा सके!
इसके लिए, हमें उन्हें जोड़ने वाला एक स्लाइस बनाना होगा. डीएसपीएल में, स्लाइस, कॉन्सेप्ट का मिला-जुला रूप है, जिसके लिए डेटा मौजूद होता है.
क्यों न सिर्फ़ सही कॉलम वाली टेबल बनाएं? क्योंकि स्लाइस कैप्चर करते हैं डेटासेट की जानकारी को इसके कॉन्सेप्ट के तौर पर देखें. यह बन जाएगा और ज़्यादा साफ़ तौर पर समझा जा सकता है, क्योंकि हम अपने डेटासेट के ज़्यादा हिस्से बनाते हैं.
स्लाइस, DSPL फ़ाइल में <slices>
के नीचे दिखते हैं
एलिमेंट, जो concepts
सेक्शन के ठीक बाद दिखना चाहिए.
<slices> <slice id="countries_slice"> <dimension concept="country"/> <dimension concept="time:year"/> <metric concept="population"/> <table ref="countries_slice_table"/> </slice> </slices>
कॉन्सेप्ट की तरह ही, हर स्लाइस में id
मौजूद है
(countries_slice
) खास तौर पर स्लाइस की
डेटासेट.
स्लाइस में दो तरह के कॉन्सेप्ट रेफ़रंस होते हैं: डाइमेंशन और
मेट्रिक के मुताबिक हो. मेट्रिक की वैल्यू, अलग-अलग वैल्यू के साथ अलग-अलग होती हैं
डाइमेंशन. यहां, population
(मेट्रिक) की वैल्यू
country
और year
डाइमेंशन.
कॉन्सेप्ट की तरह ही, स्लाइस में ऐसी टेबल का रेफ़रंस शामिल होता है जो स्लाइस का डेटा होता है. रेफ़र की गई टेबल में स्लाइस के हर डाइमेंशन और मेट्रिक को चुनें. कॉन्सेप्ट की तरह ही, स्लाइस डाइमेंशन और मेट्रिक, एक जैसे आईडी वाले टेबल कॉलम में मैप किए जाते हैं.
स्लाइस टेबल
हमारी जनसंख्या स्लाइस का टेबल tables
में दिखता है
सेक्शन:
<tables> ... <table id="countries_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>
ध्यान दें कि year
कॉलम के साथ format
आता है
एट्रिब्यूट की मदद से साल को फ़ॉर्मैट करने का तरीका तय किया जाता है. तारीख के ये फ़ॉर्मैट इस्तेमाल किए जा सकते हैं
जो Joda DateTime फ़ॉर्मैट से तय होती हैं.
countries_slice
टेबल में टेबल के कॉलम और
और ऐसी CSV फ़ाइल पर ले जाता है जिसमें डेटा मौजूद होता है. CSV फ़ाइल
ऐसा दिखता है:
country, year, population AF, 1960, 9616353 AF, 1961, 9799379 AF, 1962, 9989846 AF, 1963, 10188299 ...
डेटा टेबल की हर लाइन में, डाइमेंशन का एक यूनीक कॉम्बिनेशन होता है
country
और year
. साथ ही, इनसे जुड़ी वैल्यू
population
मेट्रिक में से (उदाहरण के लिए, जनसंख्या -
मेट्रिक - 1960 में अफ़ग़ानिस्तान की - डाइमेंशन).
ध्यान दें कि country
कॉलम में दी गई वैल्यू
country
कॉन्सेप्ट की वैल्यू/आइडेंटिफ़ायर, जो ISO 3166 है
देश का दो अक्षर वाला कोड.
स्लाइस के लिए CSV डेटा को इन शर्तों को पूरा करना होगा:
- किसी डाइमेंशन फ़ील्ड की हर वैल्यू (जैसे,
country
औरyear
) खाली नहीं होनी चाहिए. मेट्रिक फ़ील्ड के लिए वैल्यू (जैसेpopulation
) खाली हो सकता है. खाली वैल्यू को नहीं के तौर पर दिखाया जाता है वर्ण - कॉन्सेप्ट से जुड़ी डाइमेंशन फ़ील्ड की हर वैल्यू
के डेटा का इस्तेमाल कर सकते हैं. उदाहरण के लिए, वैल्यू
AF
country
कॉन्सेप्ट डेटा टेबल में मौजूद होना चाहिए. - डाइमेंशन वैल्यू का हर यूनीक कॉम्बिनेशन, जैसे कि
AF, 2000
, सिर्फ़ एक बार हो सकता है. - डेटा को नॉन-टाइम डाइमेंशन कॉलम (किसी भी क्रम में) के हिसाब से क्रम में लगाया जाना चाहिए,
और फिर, वैकल्पिक रूप से, किसी भी दूसरे कॉलम से. इसलिए, उदाहरण के लिए,
[date, dimension1, dimension2, metric1, metric2]
कॉलम वाली टेबल में, आपके पासdimension1
के हिसाब से क्रम में लगाने का विकल्प है, इसके बादdimension2
और फिरdate
चुकाएं. हालांकि, महीने के हिसाब से ऐसा नहीं होगा:date
और उसके बाद डाइमेंशन.
खास जानकारी
इस समय, हमारे DSPL में देश का वर्णन करने के लिए काफ़ी जनसंख्या का डेटा. एक बार फिर से बता दें कि हमें यह करना था:
- DSPL हेडर और डेटासेट का ब्यौरा और उसकी कंपनी
- जनसंख्या के लिए एक सिद्धांत और देश के लिए दूसरा सिद्धांत बनाएं. csv फ़ाइल है जिसमें सभी देशों और उनके नामों की सूची है.
- समय के साथ देशों की हमारी जनसंख्या के आंकड़ों की मदद से, जानकारी का एक हिस्सा बनाएं. यह इंपोर्ट किए गए टाइम-डेटासेट में, पहले से तय साल के कॉन्सेप्ट का रेफ़रंस देता है देखें.
इस ट्यूटोरियल के बाकी हिस्से में, हम अपने डेटासेट को इस तरह से बेहतर बनाएंगे: ज़्यादा स्लाइस में ज़्यादा डाइमेंशन और 'अपने हिसाब से ग्रुप बनाएं' सेक्शन में ज़्यादा मेट्रिक विषय.
डाइमेंशन जोड़ना: अमेरिका के राज्य
आइए, अब राज्यों की जनसंख्या का डेटा जोड़कर, अपने डेटासेट को बेहतर बनाते हैं अमेरिका. हमें सबसे पहले राज्यों के लिए एक सिद्धांत बनाना होगा. यह बहुत ज़्यादा दिखता है जैसा कि हमने पहले बताया है.
<concept id="state" extends="geo:location"> <info> <name> <value>state</value> </name> <description> <value>US states, identified by their two-letter code.</value> </description> </info> <property concept="country" isParent="true" /> <table ref="states_table"/> </concept>
कॉन्सेप्ट एक्सटेंशन और प्रॉपर्टी रेफ़रंस
स्टेट कॉन्सेप्ट में, DSPL की कई नई सुविधाएं शामिल की गई हैं.
पहला, राज्य एक और कॉन्सेप्ट को बढ़ावा देता है,
geo:location
(इसकी जानकारी बाहरी भौगोलिक डेटासेट में दी गई है
हमने डेटासेट की शुरुआत में इंपोर्ट किया है). मतलब इसका मतलब है कि
state
एक तरह का geo:location
है. इसका नतीजा यह होता है
इसके सभी एट्रिब्यूट और प्रॉपर्टी
geo:location
. स्थान खास तौर पर, स्थान
latitude
और longitude
; नीति का दायरा बढ़ाकर,
हैं, तो ये प्रॉपर्टी स्थिति पर भी लागू होती हैं. इतना ही नहीं, क्योंकि
स्थान entity:entity
से इनहेरिट किया जाता है, स्थिति भी प्राप्त होती है
बाद की सभी प्रॉपर्टी. इनमें name
,
description
और info_url
.
ध्यान दें: देश का ऐसा सिद्धांत जिसके बारे में पहले बताया गया था
तकनीकी रूप से, इसे geo:location
से भी बढ़ा दिया जाना चाहिए.
सादगी की वजह से, इस पॉइंट को पहले हटा दिया गया था; हमने इस समीक्षा को
देश वंशानुक्रम के स्थान पर है, हालांकि,
फ़ाइनल एक्सएमएल फ़ाइल.
ध्यान दें: आप extends
का इस्तेमाल कर सकते हैं
अपने डेटासेट में बनाया जा सकता है, ताकि दूसरे डेटासेट से तय की गई जानकारी का फिर से इस्तेमाल किया जा सके.
extends
का इस्तेमाल करने के लिए यह ज़रूरी है कि आपके कॉन्सेप्ट के सभी इंस्टेंस
के मान्य उदाहरण हो सकते हैं. एक्सटेंशन की मदद से,
को सीमित कर सकता है. साथ ही, इंस्टेंस के सेट को
सबसेट का इस्तेमाल करें.
इनहेरिटेंस के अलावा, स्टेट प्रॉपर्टी
रेफ़रंस कॉन्सेप्ट के बारे में आइडिया.
खास तौर पर, राज्य कॉन्सेप्ट में country
नाम की प्रॉपर्टी होती है,
जो ऊपर दी गई देश की सोच के बारे में है. ऐसा करने के लिए
concept
एट्रिब्यूट का इस्तेमाल करके. ध्यान दें कि यह प्रॉपर्टी
एक आईडी उपलब्ध कराएं, सिर्फ़ एक कॉन्सेप्ट का संदर्भ दें. यह एक आईडी बनाने के बराबर है
दिए गए कॉन्सेप्ट के आईडी की वैल्यू से मेल खाती हो (जैसे,
इस उदाहरण में country
). पदानुक्रमिक संबंध
एक विशेषता देकर राज्य और काउंटी को कैप्चर किया जाता है
isParent="true"
. सामान्य तौर पर,
भौगोलिक संबंधों जैसे डाइमेंशन को
इस तरीके से दिखाया जाएगा, जिसमें चाइल्ड कॉन्सेप्ट में
isParent
एट्रिब्यूट का इस्तेमाल करके, पैरंट कॉन्सेप्ट का रेफ़रंस देता है.
राज्यों के लिए टेबल की परिभाषा इस तरह दिखती है:
<tables> ... <table id="states_table"> <column id="state" type="string"/> <column id="name" type="string"/> <column id="country" type="string"> <value>US</value> </column> <column id="latitude" type="float"/> <column id="longitude" type="float"/> <data> <file format="csv" encoding="utf-8">states.csv</file> </data> </table> ... </tables>
देश के कॉलम की वैल्यू हमेशा एक ही होती है. इसे इसमें निर्दिष्ट किया जा रहा है
DSPL का इस्तेमाल करके, डेटा में हर स्थिति के लिए उस वैल्यू को दोहराने से बचा जा सकता है. यह भी नोट करें
कॉलम में name
, latitude
, और
longitude
राज्य ने इन प्रॉपर्टी को यहां से इनहेरिट किया है
geo:location
. दूसरी ओर, इनहेरिट की गई कुछ प्रॉपर्टी
(उदाहरण के लिए, description
) में कॉलम नहीं हैं; यह ठीक है-
अगर किसी प्रॉपर्टी को कॉन्सेप्ट डेफ़िनिशन टेबल से हटा दिया जाता है, तो उसका मान
वैल्यू को कॉन्सेप्ट के हर उदाहरण के लिए तय नहीं माना जाएगा.
CSV फ़ाइल इस तरह दिखेगी:
state, name, latitude, longitude AL, Alabama, 32.318231, -86.902298 AK, Alaska, 63.588753, -154.493062 AR, Arkansas, 35.20105, -91.831833 AZ, Arizona, 34.048928, -111.093731 CA, California, 36.778261, -119.417932 CO, Colorado, 39.550051, -105.782067 CT, Connecticut, 41.603221, -73.087749 ...
हमारे पास जनसंख्या और साल से जुड़े सिद्धांत पहले से ही हैं, इसलिए हम इनका दोबारा इस्तेमाल कर सकते हैं का इस्तेमाल करें.
<slices> <slice id="states_slice"> <dimension concept="state"/> <dimension concept="time:year"/> <metric concept="population"/> <table ref="states_slice_table"/> </slice> </slices>
डेटा टेबल की परिभाषा इस तरह दिखती है:
<tables> ... <table id="states_slice_table"> <column id="state" type="string"/> <column id="year" type="date" format="yyyy"/> <column id="population" type="integer"/> <file format="csv" encoding="utf-8">state_slice.csv</file> </table> ... </tables>
और CSV फ़ाइल इस तरह दिखेगी:
state, year, population AL, 1960, 9616353 AL, 1961, 9799379 AL, 1962, 9989846 AL, 1963, 10188299
रुकें, हमने एक और स्लाइस जोड़ने के बजाय नया स्लाइस क्यों बनाया डाइमेंशन को पिछले वाले डाइमेंशन के साथ कैसे इस्तेमाल करना है?
राज्य और देश, दोनों के लिए डाइमेंशन वाला स्लाइस सही नहीं होगा, क्योंकि कुछ पंक्तियां देश के डेटा के लिए होंगी और कुछ पंक्तियां राज्य के लिए होंगी डेटा शामिल है. टेबल में "छेद" होंगे कुछ डाइमेंशन के लिए है, जो अनुमति नहीं है (ध्यान रखें कि जो वैल्यू मौजूद नहीं हैं उनकी अनुमति सिर्फ़ मेट्रिक और डाइमेंशन नहीं हैं).
डाइमेंशन "प्राइमरी पासकोड" के तौर पर काम करते हैं स्लाइस के लिए. इसका मतलब है कि हर डेटा लाइन में सभी डाइमेंशन के लिए वैल्यू होनी चाहिए. इसमें दो डेटा लाइन नहीं होनी चाहिए सभी डाइमेंशन के लिए बिलकुल एक जैसे वैल्यू हो सकती हैं.
मेट्रिक जोड़ना: बेरोज़गारी रेट करें
आइए, अब अपने डेटासेट में एक और मेट्रिक जोड़ें:
<concept id="unemployment_rate" extends="quantity:rate"> <info> <name> <value>Unemployment rate</value> </name> <description> <value>The percent of the labor force that is unemployed.</value> </description> <url> <value>http://www.bls.gov/cps/cps_htgm.htm</value> </url> </info> <type ref="float/> <attribute id="is_percentage"> <type ref="boolean"/> <value>true</value> </attribute> </concept>
इस मेट्रिक के info
सेक्शन में नाम, ब्यौरा, और
यूआरएल (यूएस ब्यूरो ऑफ़ लेबर स्टैटिस्टिक्स से लिंक).
इस कॉन्सेप्ट में, quantity:rate
के कैननिकल सिद्धांत को भी शामिल किया गया है.
quantity
डेटासेट से संख्याओं की संख्या दिखाने वाले मुख्य सिद्धांतों के बारे में पता चलता है. तय सीमा में
है, तो आपको
संख्या का सही सिद्धांत. इस तरह, population
कॉन्सेप्ट
ऊपर परिभाषित किया गया है, तकनीकी रूप से
quantity:amount
.
कॉन्सेप्ट एट्रिब्यूट
इस कॉन्सेप्ट में, एट्रिब्यूट बनाने के बारे में भी बताया गया है. तय सीमा में
इस उदाहरण में, एक एट्रिब्यूट का इस्तेमाल करके यह बताया गया है कि unemployment_rate
प्रतिशत है. is_percentage
एट्रिब्यूट को यहां से लिया गया है
quantity:rate
कॉन्सेप्ट भी मिला है. यह
जानकारी का इस्तेमाल सार्वजनिक डेटा एक्सप्लोरर के ज़रिए प्रतिशत चिह्न दिखाने के लिए किया जाता है जब
डेटा को विज़ुअलाइज़ करना.
एट्रिब्यूट, कुंजी/वैल्यू पेयर को अटैच करने का एक सामान्य तरीका देते हैं
कॉन्सेप्ट (प्रॉपर्टी के उलट, जो अतिरिक्त वैल्यू को
इंस्टेंस दिखते हैं. कॉन्सेप्ट और प्रॉपर्टी की तरह ही,
एट्रिब्यूट में id
, info
, और
type
. प्रॉपर्टी की तरह, वे अन्य कॉन्सेप्ट का रेफ़रंस दे सकती हैं.
एट्रिब्यूट का इस्तेमाल सिर्फ़ पहले से तय सामान्य चीज़ों के लिए नहीं किया जाता है, जैसे कि अंकों वाली संख्या प्रॉपर्टी. अपने कॉन्सेप्ट के लिए, अपने एट्रिब्यूट तय किए जा सकते हैं.
अमेरिका के लिए बेरोज़गारी की दर का डेटा जोड़ना स्थितियां
अब हम अमेरिकी राज्यों में बेरोज़गारी की दर का डेटा जोड़ने के लिए तैयार हैं. क्योंकि बेरोज़गारी की दर एक मेट्रिक है और हमारे पास राज्यों की जनसंख्या का डेटा पहले से मौजूद है, हम इसे राज्य और साल के लिए पहले से बनाए गए हिस्से में जोड़ सकते हैं डाइमेंशन:
<slices> ... <slice id="states_slice"> <dimension concept="state"/> <dimension concept="time:year"/> <metric concept="population"/> <metric concept="unemployment_rate"/> <table ref="states_slice_table"/> </slice> ... </slices>
... और टेबल की परिभाषा में एक और कॉलम जोड़ें:
<tables> ... <table id="states_slice_table"> <column id="state" type="string"/> <column id="year" type="date" format="yyyy"/> <column id="population" type="integer"/> <column id="unemployment_rate" type="float"/> <data> <file format="csv" encoding="utf-8">state_slice.csv</file> </data> </table> ... </tables>
... और CSV फ़ाइल में:
state, year, population, unemployment_rate AL, 1960, 9616353, 5.1 AL, 1961, 9799379, 5.2 AL, 1962, 9989846, 4.8 AL, 1963, 10188299, 6.9
हमने पहले बताया था कि हर स्लाइस के लिए, डाइमेंशन एक प्राथमिक कुंजी बनाते हैं स्लाइस के लिए. इसके अलावा, हर डेटासेट में दिया गया है. इनके लिए उपलब्ध सभी मेट्रिक डाइमेंशन उसी स्लाइस से जुड़े होने चाहिए.
ज़्यादा डाइमेंशन: लिंग के हिसाब से जनसंख्या का ब्रेकडाउन
आइए, अब हम अपने डेटासेट को देशों. अब तक आपको इसके बारे में पता होने लगा है... हमें सबसे पहले ये काम करने होंगे लिंग के लिए एक अवधारणा जोड़ें:
<concept id="gender" extends="entity:entity"> <info> <name> <value>Gender</value> </name> <description> <value>Gender, Male or Female</value> </description> <pluralName> <value>Genders</value> </pluralName> <totalName> <value>Both genders</value> </totalName> </info> <type ref="string"/> <table ref="genders_table"/> </concept>
लिंग की अवधारणा info
सेक्शन में
pluralName
, जो रेफ़रंस के लिए इस्तेमाल किया जाने वाला टेक्स्ट उपलब्ध कराता है
कई उदाहरण हैं. info
सेक्शन में भी
इसमें एक totalName
शामिल है, जिससे वह टेक्स्ट मिलता है जिसका इस्तेमाल किया जा सकता है
लैंगिक सिद्धांत के सभी उदाहरणों का संदर्भ दें. ये दोनों ही
सार्वजनिक डेटा एक्सप्लोरर द्वारा लिंग से संबंधित जानकारी को प्रदर्शित करने के लिए उपयोग किया जाता है
कॉन्सेप्ट को समझने की कोशिश करते हैं. सामान्य तौर पर, आपको उन्हें उन अवधारणाओं के लिए प्रदान करना चाहिए जिनका उपयोग
डाइमेंशन.
ध्यान दें कि लैंगिक सिद्धांत का इस्तेमाल,
entity:entity
. यह कॉन्सेप्ट के लिए अच्छा तरीका है
जिनका इस्तेमाल डाइमेंशन के तौर पर किया जाता है. इससे कस्टम नाम,
अलग-अलग कॉन्सेप्ट के लिए यूआरएल और रंग.
लिंग का सिद्धांत genders_table
टेबल को दिखाता है, जो
इसमें लिंग और उनके डिसप्ले नेम के लिए संभावित वैल्यू शामिल हैं
(यहां हटाया गया).
अपने डेटासेट में लिंग के हिसाब से जनसंख्या जोड़ने के लिए, हमें एक नया स्लाइस बनाना होगा (ध्यान दें: डाइमेंशन का हर उपलब्ध कॉम्बिनेशन, आपके डेटासेट).
<slice id="countries_gender_slice"> <dimension concept="country"/> <dimension concept="gender"/> <dimension concept="time:year"/> <metric concept="population"/> <table ref="countries_gender_slice_table"/> </slice>
स्लाइस के लिए टेबल की परिभाषा इस तरह दिखती है:
<table id="countries_gender_slice_table"> <column id="country" type="string"/> <column id="gender" type="string"/> <column id="year" type="date" format="yyyy"/> <column id="population" type="integer"/> <data> <file format="csv" encoding="utf-8">gender_country_slice.csv</file> </data> </table>
टेबल के लिए CSV फ़ाइल इस तरह दिखेगी:
country, gender, year, population AF, M, 1960, 4808176 AF, F, 1960, 4808177 AF, M, 1961, 4899689 AF, F, 1961, 4899690...
पिछले देशों, जनसंख्या, और बेरोज़गारी के आंकड़ों की तुलना में, इसमें एक अतिरिक्त डाइमेंशन है; जनसंख्या मेट्रिक की हर वैल्यू किसी ख़ास देश और साल के हिसाब से ही नहीं, बल्कि विशेष लिंग.
ध्यान दें कि हमने एक "स्पार्स" बनाया है डेटासेट. ऐसा हो सकता है कि सभी पक्षों को मेट्रिक सभी डाइमेंशन के लिए उपलब्ध हैं: जनसंख्या यह सुविधा देशों और अमेरिकी राज्यों के लिए सालाना आधार पर उपलब्ध है, लेकिन बेरोज़गारी की वजह से की दर सिर्फ़ देशों के लिए उपलब्ध है. लिंग के हिसाब से डेटा देखने की सुविधा उपलब्ध है सिर्फ़ देश के हिसाब से जनसंख्या के लिए; यह बेरोज़गारी दर के लिए उपलब्ध नहीं है मेट्रिक हो सकती है, न कि राज्य डाइमेंशन के लिए. डेटा में गड़बड़ी भी हो सकती है के लेवल पर हो सकता है, जिसमें कुछ मेट्रिक के लिए किसी डाइमेंशन वैल्यू की वैल्यू न हो. लेकिन उसे DSPL में नहीं दिखाया जाता.
विषय
अपने डेटासेट में इस्तेमाल करने के लिए, DSPL की आखिरी सुविधा विषय है. विषयों का इस्तेमाल, हैरारकी के हिसाब से कॉन्सेप्ट की कैटगरी तय करने के लिए किया जाता है. साथ ही, इनका इस्तेमाल दिए गए हैं जिनसे उपयोगकर्ताओं को आपके डेटा पर नेविगेट करने में मदद मिलती है.
DSPL फ़ाइल में, विषय, कॉन्सेप्ट से ठीक पहले दिखते हैं. यहां एक सैंपल दिया गया है विषय पदानुक्रम:
<dspl ... > ... <topics> <topic id="geography"> <info> <name> <value>Geography</value> </name> </info> </topic> <topic id="social_indicators"> <info> <name> <value>Social indicators</value> </name> </info> </topic> <topic id="population_indicators"> <info> <name> <value>Population indicators</value> </name> </info> </topic> <topic id="poverty_and_income"> <info> <name> <value>Poverty & income</value> </name> </info> </topic> <topic id="health"> <info> <name> <value>Health</value> </name> </info> </topic> </topics>
ज़रूरत के हिसाब से विषयों को नेस्ट किया जा सकता है.
विषयों का इस्तेमाल करने के लिए, आपको सिर्फ़ कॉन्सेप्ट से उनका रेफ़रंस देना होगा परिभाषा की जानकारी यहां दी गई है:
<concept id="population"> <info> <name> <value>Population</value> </name> <description> <value>Size of the resident population.</value> </description> </info> <topic ref="population_indicators"/> <type ref="integer"/> </concept>
कोई कॉन्सेप्ट एक से ज़्यादा विषयों के बारे में हो सकता है.
अपना डेटासेट सबमिट करना
आपने अपना डेटासेट बना लिया है, तो अब अगला चरण उसे ज़िप करना और ज़िप फ़ाइल अपलोड करके Google का सार्वजनिक डेटा एक्सप्लोरर टूल. अगर आपको कोई समस्या आती है, तो जांच करें अक्सर पूछे जाने वाले सवाल, जिसमें चर्चा शामिल है के बारे में ज़्यादा जानें.
रेफ़रंस के लिए, पूरी एक्सएमएल फ़ाइल और पूरा डेटासेट बंडल भी डाउनलोड किया जा सकता है इस ट्यूटोरियल से जुड़ा है.
यहां से कहां जाएं
अपना पहला DSPL डेटासेट बनाने के लिए बधाई! अब जब कि तो हमारा सुझाव है कि आप डेवलपर गाइड को पढ़ें. इसमें, अन्य चीज़ों के अलावा, दस्तावेज़ "बेहतर" डीएसएल की सुविधाओं में ये शामिल हैं और मैप करने लायक सिद्धांत.
डेटासेट के कुछ और उदाहरण भी देखे जा सकते हैं.