अगर आपने Freebase का इस्तेमाल पहले कभी नहीं किया है, तो इस सेक्शन में बुनियादी शब्दावली और कॉन्सेप्ट के बारे में बताया गया है. इससे आपको यह समझने में मदद मिलेगी कि Freebase कैसे काम करता है.
- ग्राफ़
- विषय
- टाइप और प्रॉपर्टी
- डोमेन और आईडी
- कंपाउंड वैल्यू टाइप
- विषय के एमआईडी
- नेमस्पेस, कुंजियां, और विषय के आईडी
- प्रॉपर्टी के बारे में ज़्यादा जानकारी
- खास जानकारी
ग्राफ़
Freebase का डेटा, ग्राफ़ नाम के डेटा स्ट्रक्चर में सेव होता है. ग्राफ़ में नोड होते हैं, जो किनारों से जुड़े होते हैं. Freebase में, नोड को /type/object का इस्तेमाल करके और किनारों को /type/link का इस्तेमाल करके तय किया जाता है. डेटा को ग्राफ़ के तौर पर सेव करके, Freebase विषयों के बीच किसी भी कनेक्शन को तुरंत ढूंढ सकता है. साथ ही, डेटा के स्ट्रक्चर में बदलाव किए बिना, आसानी से नई स्कीमा जोड़ सकता है.
विषय
Freebase में, असल दुनिया की इकाइयों के बारे में 3.9 करोड़ से ज़्यादा विषय हैं. जैसे, लोग, जगहें, और चीज़ें. Freebase के डेटा को ग्राफ़ के तौर पर दिखाया जाता है. इसलिए, ये विषय ग्राफ़ में मौजूद नोड से मेल खाते हैं. हालांकि, हर नोड एक विषय नहीं होता. ऐसे नोड के उदाहरण के तौर पर सीवीटी के बारे में सेक्शन देखें जो विषय नहीं हैं.
Freebase में मौजूद विषयों के उदाहरण:
- फ़िज़िकल इकाइयां, जैसे कि बॉब डिलन, लूव्र म्यूज़ियम, शनि ग्रह, को
- कलात्मक/मीडिया क्रिएशन, जैसे कि The Dark Knight (फ़िल्म), Hotel California (गाना), to
- क्लासिफ़िकेशन, जैसे कि नोबल गैस, कॉर्डेटा, को
- प्यार जैसे ऐब्स्ट्रैक्ट कॉन्सेप्ट के बारे में
- विचारधारा या कला आंदोलन, जैसे कि इंप्रेशनिज़्म.
कुछ विषय इसलिए अहम होते हैं, क्योंकि उनमें बहुत ज़्यादा डेटा होता है. उदाहरण के लिए, Wal-Mart) शामिल हैं. कुछ इकाइयां इसलिए अहम हैं, क्योंकि वे कई अन्य विषयों से जुड़ी होती हैं. ऐसा हो सकता है कि वे जानकारी के अलग-अलग डोमेन से जुड़ी हों. उदाहरण के लिए, प्यार, गरीबी, बहादुरी जैसे ऐब्स्ट्रैक्ट विषयों से जुड़ी ज़्यादा प्रॉपर्टी नहीं होती हैं. हालांकि, ये अक्सर किताबों, कविताओं, फ़िल्मों वगैरह के विषयों के तौर पर दिखते हैं. इससे ये ज़्यादा अहम हो जाते हैं.
टाइप और प्रॉपर्टी
किसी भी विषय को अलग-अलग नज़रियों से देखा जा सकता है. उदाहरण के लिए:
- बॉब डिलन एक गीतकार, गायक, कलाकार, किताब के लेखक, और फ़िल्म अभिनेता थे;
- लियोनार्डो दा विंची एक पेंटर, मूर्तिकार, शरीर रचना विज्ञानी, वास्तुकार, इंजीनियर, ... थे;
- प्यार, किताब का विषय है, फ़िल्म का विषय है, नाटक का विषय है, कविता का विषय है, ...;
- कोई भी शहर एक जगह होती है. यह पर्यटकों के लिए एक जगह हो सकती है. साथ ही, यह सरकारी कर्मचारियों के लिए एक नियोक्ता भी हो सकता है.
कई विषयों की इस तरह की अलग-अलग जानकारी को कैप्चर करने के लिए, हम Freebase में टाइप का कॉन्सेप्ट पेश करते हैं. Freebase में मौजूद विषयों को कई तरह के टाइप असाइन किए जा सकते हैं. बॉब डिलन के बारे में कई तरह के विषय असाइन किए गए हैं: गीतकार, संगीतकार, संगीत कलाकार (गायक), किताब के लेखक वगैरह. हर विषय के लिए, उससे जुड़ी प्रॉपर्टी का अलग सेट होता है. उदाहरण के लिए,
- संगीत कलाकार टाइप में एक ऐसी प्रॉपर्टी होती है जिसमें बॉब डिलन के बनाए गए सभी एल्बम की सूची होती है. साथ ही, उन सभी संगीत वाद्ययंत्रों की सूची होती है जिन्हें वे बजाते थे;
- किताब के लेखक के टाइप में एक ऐसी प्रॉपर्टी होती है जिसमें बॉब डिलन की लिखी या संपादित की गई सभी किताबों की सूची होती है. साथ ही, इसमें उनके लेखन के सिद्धांतों या आंदोलन के बारे में भी जानकारी होती है;
- कंपनी के टाइप में, कंपनी के संस्थापकों, बोर्ड के सदस्यों, पैरंट कंपनी, डिवीज़न, कर्मचारियों, प्रॉडक्ट, हर साल के रेवेन्यू और मुनाफ़े के रिकॉर्ड वगैरह की जानकारी देने वाली कई प्रॉपर्टी होती हैं.
इसलिए, टाइप को प्रॉपर्टी के कॉन्सेप्ट वाले कंटेनर के तौर पर देखा जा सकता है. इनकी ज़रूरत आम तौर पर, जानकारी के किसी पहलू के बारे में बताने के लिए होती है. (टाइप को रिलेशनल टेबल के तौर पर देखा जा सकता है. साथ ही, हर "टाइप" टेबल में एक फ़ॉरेन की होती है. यह फ़ॉरेन की, "पहचान" टेबल में होती है. "पहचान" टेबल, हर विषय को यूनीक तरीके से तय करती है.)
डोमेन और आईडी
जैसे प्रॉपर्टी को टाइप के हिसाब से ग्रुप किया जाता है वैसे ही टाइप को डोमेन के हिसाब से ग्रुप किया जाता है. डोमेन को अपने पसंदीदा अख़बार के सेक्शन के तौर पर समझें: कारोबार, लाइफ़स्टाइल, कला और मनोरंजन, राजनीति, अर्थशास्त्र वगैरह. हर डोमेन को एक आईडी (पहचान करने वाला) दिया जाता है. उदाहरण के लिए,
/business
, कारोबार के डोमेन का आईडी है/music
- संगीत डोमेन/film
- फ़िल्म डोमेन/medicine
- चिकित्सा क्षेत्र से जुड़ा डोमेन
किसी डोमेन का आईडी, फ़ाइल पाथ या वेब पते में मौजूद पाथ की तरह दिखता है.
हर टाइप को एक आईडी भी दिया जाता है. इसका आईडी, उस डोमेन पर आधारित होता है जिससे यह जुड़ा है. उदाहरण के लिए, कंपनी का टाइप, कारोबार के डोमेन में आता है. इसे आईडी /business/company
दिया गया है. यहाँ कुछ और उदाहरण दिए गए हैं:
/music/album
म्यूज़िक डोमेन में मौजूद (म्यूज़िक) एल्बम टाइप का आईडी है/film/actor
- फ़िल्म डोमेन में ऐक्टर टाइप/medicine/disease
- Medicine डोमेन में Disease टाइप
जिस तरह कोई टाइप, अपने आईडी की शुरुआत अपने डोमेन से लेता है उसी तरह कोई प्रॉपर्टी भी अपने आईडी की शुरुआत उस टाइप से लेती है जिससे वह जुड़ी होती है. उदाहरण के लिए, कंपनी टाइप की इंडस्ट्री प्रॉपर्टी (इसका इस्तेमाल यह बताने के लिए किया जाता है कि कंपनी किस इंडस्ट्री में है) को आईडी /business/company/industry
दिया गया है. यहाँ कुछ और उदाहरण दिए गए हैं:
/automotive/engine/horsepower
, (ऑटोमोटिव) इंजन टाइप की हॉर्सपावर प्रॉपर्टी का आईडी है/astronomy/star/planet_s
, स्टार टाइप की Planets प्रॉपर्टी का आईडी है. इसका इस्तेमाल किसी तारे के चारों ओर मौजूद ग्रहों को लिस्ट करने के लिए किया जाता है/language/human_language/writing_system
, Human Language टाइप की Writing System प्रॉपर्टी का आईडी है
इसलिए, भले ही Freebase में टाइप को क्रम के हिसाब से व्यवस्थित नहीं किया जाता हो, लेकिन डोमेन, टाइप, और प्रॉपर्टी को ऐसे आईडी दिए जाते हैं जिन्हें फ़ाइल डायरेक्ट्री की तरह क्रम के हिसाब से व्यवस्थित किया जाता है.
कंपाउंड वैल्यू टाइप
कंपाउंड वैल्यू टाइप, Freebase में मौजूद एक टाइप है. इसका इस्तेमाल ऐसे डेटा को दिखाने के लिए किया जाता है जहां हर एंट्री में कई फ़ील्ड होते हैं. कॉम्प्लेक्स डेटा को दिखाने के लिए, Freebase में कंपाउंड वैल्यू टाइप या सीवीटी का इस्तेमाल किया जाता है. शुरुआत में यह थोड़ा मुश्किल लग सकता है, लेकिन सीवीटी, Freebase स्कीमा का एक बहुत ही अहम हिस्सा है. इससे विषयों के बीच जटिल संबंधों को ज़्यादा सटीक तरीके से मॉडल किया जा सकता है.
यहां दिए गए उदाहरण पर ध्यान दें: किसी शहर की जनसंख्या, समय के साथ बदलती रहती है. इसका मतलब है कि जब भी Freebase से जनसंख्या के बारे में क्वेरी की जाती है, तो कम से कम एक बार किसी तारीख की जनसंख्या के बारे में पूछा जाता है. इसमें दो वैल्यू शामिल हैं: लोगों की संख्या और तारीख. यहां एक ऐसी स्थिति के बारे में बताया गया है जहां सीवीटी बहुत काम आती है. इसके बिना, जनसंख्या के डेटा को मॉडल करने के लिए, आपको एक विषय बनाना होगा. साथ ही, उसे "साल 1997 में वैंकूवर की जनसंख्या" जैसा कोई नाम देना होगा और वहां जानकारी सबमिट करनी होगी.
सीवीटी को एक ऐसे विषय के तौर पर देखा जा सकता है जिसके लिए आपको डिसप्ले नेम बनाने की ज़रूरत नहीं होती. सामान्य विषयों की तरह ही सीवीटी का भी एक GUID होता है. इसे अलग से रेफ़रंस किया जा सकता है. हालांकि, Freebase क्लाइंट इन्हें विषयों से अलग मानता है. ज़्यादातर मामलों में, सीवीटी की हर प्रॉपर्टी, disambiguation प्रॉपर्टी होनी चाहिए.
विषय के एमआईडी
किसी विषय की पहचान नेमस्पेस/कुंजी आईडी से की जा सकती है या नहीं भी की जा सकती. हालांकि, इसकी पहचान हमेशा एमआईडी से की जा सकती है. एमआईडी एक मशीन आइडेंटिफ़ायर होता है, जिसमें /m/
के बाद बेस-32 यूनीक आइडेंटिफ़ायर होता है. एमआईडी, विषय बनाते समय असाइन किए जाते हैं. साथ ही, विषय के पूरे जीवनकाल के दौरान इन्हें मैनेज किया जाता है. जब विषयों को मर्ज या अलग किया जाता है, तब ये आईडी अहम भूमिका निभाते हैं. इससे बाहरी ऐप्लिकेशन, लॉजिकल विषय को ट्रैक कर पाते हैं. भले ही, फ़्रीबेस की फ़िज़िकल आइडेंटिटी (विषय का GUID) बदल जाए. मशीन से जनरेट किए गए आईडी, "id" प्रॉपर्टी से मिले Freebase के ऐसे आईडी से अलग होते हैं जिन्हें आसानी से पढ़ा जा सकता है. इसकी वजह यह है कि:
- मौजूद होने की गारंटी
- मशीन से जनरेट किया गया
- ऑफ़लाइन तुलना करने के लिए डिज़ाइन किया गया
- इसे इंसानों को मतलब समझाने के लिए नहीं बनाया गया है
- छोटा (संभवतः तय लंबाई)
- यह बाहरी सिस्टम और कॉम्पोनेंट (बाहरी, एक्सचेंज) के बीच कुंजियों को तुरंत बदलने के लिए सबसे सही है
Freebase में विषयों को ऐक्सेस करने के लिए, एमआईडी का इस्तेमाल करने का सुझाव दिया जाता है
नेमस्पेस, कुंजियां, और विषय आईडी
डोमेन, टाइप, और प्रॉपर्टी आईडी की फ़ाइल डायरेक्ट्री जैसी हैरारकी, नेमस्पेस और कुंजियों के ज़्यादा सामान्य कॉन्सेप्ट का सिर्फ़ एक ऐप्लिकेशन है. नेमस्पेस, फ़ाइल डायरेक्ट्री की तरह होता है और कुंजी, फ़ाइल के नाम की तरह होती है. जिस तरह किसी फ़ाइल डायरेक्ट्री में मौजूद सभी फ़ाइलों के नाम एक-दूसरे से अलग होने चाहिए, उसी तरह किसी नेमस्पेस में मौजूद सभी कुंजियों के नाम भी एक-दूसरे से अलग होने चाहिए.
ज़्यादा सटीक उदाहरण के तौर पर, /business
Business डोमेन से जुड़ा नेमस्पेस है. इसमें, कारोबार से जुड़े टाइप को कुंजियां दी जाती हैं. जैसे, company
) जो एक-दूसरे से अलग हैं. हर टाइप का आईडी, नेमस्पेस के आईडी में उसकी कुंजी जोड़कर बनाया जाता है. उदाहरण के लिए, /business/company
).
डोमेन और टाइप से जुड़े नेमस्पेस के अलावा, कई तरह के नेमस्पेस होते हैं. सबसे अहम और अक्सर इस्तेमाल किया जाने वाला नेमस्पेस /en
है. यह अंग्रेज़ी नेमस्पेस है. इसमें ज़्यादातर जाने-पहचाने विषयों को यूनीक कुंजियां दी जा सकती हैं, ताकि लोग आसानी से समझ सकें. उदाहरण के लिए, बॉब डिलन इतने मशहूर हैं कि Freebase में उनके विषय को /en
नेमस्पेस में bob_dylan
कुंजी दी गई है. इसलिए, विषय का आईडी /en/bob_dylan
है. इस आईडी की मदद से, वेब क्लाइंट में आसान यूआरएल का इस्तेमाल करके उसके विषय को ऐक्सेस किया जा सकता है
प्रॉपर्टी के बारे में ज़्यादा जानकारी
आखिरी बुनियादी कॉन्सेप्ट में, Freebase प्रॉपर्टी और रिलेशनल डेटाबेस टेक्नोलॉजी में मौजूद उनके ऐनलॉग के बीच के मुख्य अंतर के बारे में बताया गया है. जैसे, रिलेशनल टेबल कॉलम. हर लाइन के लिए, रिलेशनल टेबल कॉलम में सिर्फ़ एक वैल्यू हो सकती है. उदाहरण के लिए, "book" नाम की एक सामान्य रिलेशनल टेबल पर विचार करें. इसमें "author" नाम का एक कॉलम है. "book" टेबल की हर लाइन के लिए, "author" कॉलम में "author" टेबल की सिर्फ़ एक विदेशी कुंजी हो सकती है. अगर किसी किताब के कई लेखक हैं, तो यह आसान रिलेशनल स्कीमा डिज़ाइन काम नहीं करता. ऐसे में, हमें लेखकों की जानकारी देने के लिए एक नई टेबल बनानी होगी. इसका मतलब है कि हमें किताबों और लेखकों के बीच n-to-n संबंध सेव करने के लिए, एक "किताब" टेबल, एक "लेखक" टेबल, और एक "लेखकत्व" टेबल की ज़रूरत होगी. इसके अलावा, एक स्कीमा डिज़ाइन से दूसरे पर स्विच करने पर, डेटा पाने का तरीका भी काफ़ी हद तक बदल जाता है.
पारंपरिक डेटाबेस टेक्नोलॉजी के उलट, Freebase में एक से ज़्यादा वैल्यू वाली प्रॉपर्टी को, असल दुनिया के डेटा को मॉडल करने के लिए बहुत ज़रूरी माना जाता है. इसलिए, यह डिफ़ॉल्ट रूप से एक से ज़्यादा वैल्यू वाली प्रॉपर्टी के साथ काम करता है. इसका मतलब है कि जब /book/written_work/author
प्रॉपर्टी बनाई गई थी, तब यह माना गया था कि हर किताब के लिए एक से ज़्यादा लेखक हो सकते हैं. साथ ही, एक से ज़्यादा वैल्यू वाली प्रॉपर्टी और एक वैल्यू वाली प्रॉपर्टी के लिए, एक ही तरीके से क्वेरी की जा सकती है. आपको यह सोचने की ज़रूरत नहीं है कि क्या आपको n-to-n संबंध को मॉडल करने वाली तीसरी टेबल के साथ जुड़ना है.
खास जानकारी
- टाइप, मिलती-जुलती प्रॉपर्टी का एक कॉन्सेप्टुअल कंटेनर होता है. आम तौर पर, किसी विषय के बारे में जानकारी देने के लिए इनकी ज़रूरत होती है.
- किसी विषय को एक या एक से ज़्यादा टाइप असाइन किए जा सकते हैं. डिफ़ॉल्ट टाइप
/common/topic
होता है - प्रॉपर्टी को टाइप के हिसाब से ग्रुप किया जाता है. इसी तरह, टाइप को डोमेन के हिसाब से ग्रुप किया जाता है.
- नेमस्पेस/कुंजी के क्रम में डोमेन, टाइप, और प्रॉपर्टी को आईडी दिए जाते हैं.
- सामान्य और जाने-माने विषयों को
/en
नेमस्पेस में आईडी दिए जाते हैं. ये आईडी, ऐसी अंग्रेज़ी स्ट्रिंग होती हैं जिन्हें इंसान पढ़ सकते हैं. - Freebase में विषयों की पहचान, GUID की मदद से की जाती है.
- प्रॉपर्टी में डिफ़ॉल्ट रूप से एक से ज़्यादा वैल्यू होती हैं. साथ ही, एक से ज़्यादा वैल्यू वाली प्रॉपर्टी और एक वैल्यू वाली प्रॉपर्टी के लिए, एक ही तरीके से क्वेरी की जा सकती है.