ठीक है, स्पष्ट पहली शुरुआत वर्गों और गुण डेटा में मौजूद को देखने के लिए है।
यहाँ कैसे क्या वर्गों इस्तेमाल किया जा रहा है देखने के लिए है:।
SELECT DISTINCT ?class
WHERE {
?s a ?class .
}
LIMIT 25
OFFSET 0
(LIMIT
और OFFSET
पेजिंग के लिए देखते हैं यह इन खासकर यदि आप इंटरनेट पर आपकी क्वेरी भेज रहे हैं करने के लिए इस्तेमाल हो रही लायक है मैं। 'करूँगा उन्हें अन्य उदाहरण में छोड़ देते हैं)
a
है एक विशेष SPARQL (और Notation3/Turtle) वाक्य रचना rdf:type
विधेय प्रतिनिधित्व करने के लिए -। यह करने के लिए owl:Class
/rdfs:Class
प्रकार व्यक्तिगत उदाहरणों लिंक एस (एसक्यूएल आरडीबीएमएस में टेबल के बराबर बराबर)।
दूसरा, आप गुणों को देखना चाहते हैं। आप या तो कक्षाओं का उपयोग करके या केवल संपत्तियों की तलाश करके ऐसा कर सकते हैं। सिर्फ दुकान से बाहर सभी गुण प्राप्त करते हैं:
SELECT DISTINCT ?property
WHERE {
?s ?property ?o .
}
यह सभी गुण है, जो आप शायद में कोई दिलचस्पी नहीं कर रहे हैं मिल जाएगा यह एसक्यूएल में सभी पंक्ति कॉलम की एक सूची के बराबर है, लेकिन बिना। तालिका द्वारा किसी भी समूह।
अधिक उपयोगी क्या गुण उदाहरणों कि एक विशेष वर्ग की घोषणा के द्वारा प्रयोग किया जा रहा है देखने के लिए है:
SELECT DISTINCT ?property
WHERE {
?s a <http://xmlns.com/foaf/0.1/Person>;
?property ?o .
}
इससे आप वापस किसी उदाहरण पर इस्तेमाल किया गुण है कि पहली ट्रिपल संतुष्ट हो जाएगा - अर्थात्, है http://xmlns.com/foaf/0.1/Person
का।
याद रखें, क्योंकि एक rdf: संसाधन में कई rdf हो सकते हैं: गुण गुण - वर्ग यदि आप करेंगे - और क्योंकि आरडीएफ का डेटा मॉडल योजक है, तो आपके पास हीरा समस्या नहीं है। यह प्रकार सिर्फ एक और संपत्ति है - यह कहना एक उपयोगी सामाजिक समझौता है कि कुछ चीजें व्यक्ति या कुत्ते या जीन या फुटबॉल टीम हैं। इसका मतलब यह नहीं है कि डेटा स्टोर में आमतौर पर उस प्रकार से जुड़े गुण होते हैं। प्रकार किसी संसाधन के गुणों के संदर्भ में कुछ भी गारंटी नहीं देता है।
आपको डेटा मॉडल और SPARQL के यूनियन और वैकल्पिक वाक्यविन्यास के उपयोग से परिचित होना चाहिए। Rdf का मोटा मैपिंग: एसक्यूएल टेबल पर टाइप करना सिर्फ इतना है - मोटा।
आप जानना चाहते हैं कि संपत्ति किस प्रकार की इकाई को इंगित कर रही है। सबसे पहले, आप शायद डेटाटाइप गुणों के बारे में जानना चाहते हैं - शाब्दिक या प्राइमेटिव के बराबर। आप जानते हैं, तार, पूर्णांक, आदि। आरडीएफ इन अक्षरों को स्ट्रिंग से विरासत में सभी के रूप में परिभाषित करता है।हम सिर्फ उन गुणों है कि SPARQL फिल्टर विधि isLiteral
का उपयोग कर शाब्दिक हैं फ़िल्टर कर सकते हैं:
SELECT DISTINCT ?property
WHERE {
?s a <http://xmlns.com/foaf/0.1/Person>;
?property ?o .
FILTER isLiteral(?o)
}
हम यहाँ हैं केवल गुण होते हैं कि उनके वस्तु एक शाब्दिक रूप में प्राप्त करने के लिए जा रहा - एक स्ट्रिंग, तिथि-समय, बूलियन, या अन्य एक्सएसडी डेटाटाइप में से एक।
लेकिन गैर-शाब्दिक वस्तुओं के बारे में क्या? एक सादृश्य के रूप में यह बहुत ही सरल छद्म जावा वर्ग परिभाषा पर विचार करें: ऊपर क्वेरी का उपयोग करना
public class Person {
int age;
Person marriedTo;
}
, हम शाब्दिक है कि उम्र का प्रतिनिधित्व करते हैं, तो उम्र संपत्ति ही है वापस मिल जाएगा। लेकिन विवाहित है कोई आदिम नहीं है (यानी आरडीएफ शर्तों में एक शाब्दिक) - यह किसी अन्य वस्तु का संदर्भ है - आरडीएफ/ओडब्ल्यूएल शब्दावली में, यह एक वस्तु संपत्ति है। लेकिन हम नहीं जानते कि उन गुणों (भविष्यवाणी) द्वारा किस प्रकार की वस्तुओं का उल्लेख किया जा रहा है। यह क्वेरी आपको साथ के साथ गुणों को वापस ले जाएगी।
SELECT DISTINCT ?property, ?class
WHERE {
?s a <http://xmlns.com/foaf/0.1/Person>;
?property ?o .
? a ?class .
FILTER(!isLiteral(?o))
}
यह किसी विशेष डेटासेट में स्वयं को उन्मुख करने के लिए पर्याप्त होना चाहिए। बेशक, मैं यह भी सिफारिश करता हूं कि आप केवल कुछ व्यक्तिगत संसाधनों को खींचें और उनका निरीक्षण करें। आपको लगता है कि वर्णन क्वेरी का उपयोग कर सकते हैं:
DESCRIBE <http://example.org/resource>
कुछ SPARQL उपकरण हैं - SNORQL, उदाहरण के लिए - कि तुम चलो एक ब्राउज़र में ऐसा करते हैं। एसएनओआरक्यूएल इंस्टेंस जो मैंने लिंक किया है, संभावित नामित आलेखों की खोज के लिए एक नमूना क्वेरी है, जिसे मैंने यहां शामिल नहीं किया है।
यदि आप SPARQL से अपरिचित हैं, तो ईमानदारी से, यदि आप अटक जाते हैं तो सबसे अच्छा संसाधन विनिर्देश है। यह एक डब्ल्यू 3 सी स्पेक है लेकिन एक बहुत अच्छा है (उन्होंने एक सभ्य परीक्षण सूट बनाया ताकि आप वास्तव में देख सकें कि कार्यान्वयन ने इसे सही तरीके से किया है या नहीं) और यदि आप जटिल भाषा प्राप्त कर सकते हैं, तो यह बहुत उपयोगी है।
बाहर फ्लैट भयानक जवाब - धन्यवाद बहुत टॉम! – significance
मुझे पता है कि मुझे सरल पोस्ट नहीं करना चाहिए "धन्यवाद!"एसओ पर संदेश, लेकिन आपने केवल एक SPARQL नोब की गंभीरता से मदद की है, इसलिए:" धन्यवाद! "। –