2011-01-30 12 views
5

मेरा एक अनुरोध है जो दोनों bibleontology और dbpedia अर्थ डेटाबेस का उपयोग करता है बनाने के लिए कोशिश कर रहा हूँ:SPARQL क्वेरी में अर्थ अंतिमबिंदुओं जुड़ें

PREFIX bibleontology: <http://bibleontology.com/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 

SELECT ?art ?abstract WHERE { 
bibleontology:Ezra owl:sameAs ?art . 
?art dbo:abstract ?abstract . 
} 

अनुरोध इस तरह की न bibleontology SPARQL समाप्ति बिंदु पर काम करता है, और न ही dbpedia SPARQL पर अंत बिंदु। अनुरोधों के व्यक्तिगत भाग प्रत्येक SPARQL अंतराल पर ठीक काम करते हैं।

क्या इस तरह डेटाबेस में शामिल होना संभव है?

+1

तुम कैसे पार क्वेरी प्रदर्शन कर सकते हैं अपनाया हूँ वापस देना जब मॉडल विलय नहीं किया जाता । हो सकता है कि आप दो rdf स्टोर्स (मॉडल) को विलय करके डेटा कॉलेशन स्वयं कर सकें, लेकिन जैसा कि, आप एक क्रॉस क्वेरी नहीं कर सकते हैं। –

+0

तो आरडीएफ उन स्थानों के लिंक प्रदान करता है जहां मॉडल का वर्णन किया गया है, लेकिन डेटा कभी नहीं? मैंने सोचा था कि अर्थात् वेब के लक्ष्यों में से एक को विभिन्न डेटासेट पर वितरित प्रश्नों की अनुमति देना था? –

+0

हो सकता है कि मैं टिप्पणी को समझ में नहीं आया, जैसा कि मॉडल में विलय हो रहा है। बाइबिलोंटोलॉजी के लिए एक ही प्रविष्टि: एज्रा एक डीबीओ प्रविष्टि के लिए एक लिंक देता है। यही कारण है कि मुझे लगता है कि उनसे जुड़ना संभव होगा। –

उत्तर

6

यह क्वेरी न तो dbpedia या bibleontology पर काम नहीं करती है क्योंकि जानकारी दो अलग-अलग डेटाबेस में संग्रहीत होती है और जब आप SPARQL क्वेरी चलाते हैं तो आप मूल रूप से एक या दूसरे को दबाते हैं। इसका अर्थ यह है कि आपको एक स्थानीय ट्रिपल स्टोर में रखने के लिए दोनों डेटाबेसों से डेटा डाउनलोड करना होगा ताकि आपके द्वारा दिखाए गए SPARQL क्वेरी को चलाने में सक्षम हो सके। एक और विकल्प लाइब्रेरी का उपयोग करना है जो आपके लिए करता है।

The Semantic Web Client Library आपके SPARQL क्वेरी में मौजूद सभी यूआरआई का पालन करेगा और प्रत्येक संसाधन से आरडीएफ डेटा डाउनलोड करेगा ताकि यह आपके द्वारा पूछे जाने वाले सभी ट्रिपल पैटर्न में शामिल हो और उत्तर दे सके।

आप कुछ मामूली परिवर्तन के साथ आपकी क्वेरी चला सकते हैं:

PREFIX bibleontology: <http://bibleontology.com/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX dbpedia: <http://dbpedia.org/ontology/> 

SELECT * WHERE { 
bibleontology:Ezra owl:sameAs ?art . 
?art dbpedia:abstract ?abstract . 
FILTER langMatches(lang(?abstract), "EN") 
} 

परिवर्तन की व्याख्या:

  1. शामिल owl और dbpedia नामस्थान
  2. ?art dbpedia:abstract ?abstract . आप dbpedia:abstract विधेय मिलान करने के लिए प्राप्त करने की आवश्यकता dbpedia
  3. 0 से अमूर्त प्राप्त करने के लिए bibleontology:abstract के बजाय सार
  4. मैंने अंग्रेजी में केवल सार तत्वों को पुनः प्राप्त करने के लिए filter भी शामिल किया है, यह निश्चित रूप से वैकल्पिक है।

एक बार जब आप "अर्थ वेब लाइब्रेरी" डाउनलोड करने और आप एक फ़ाइल में आपकी क्वेरी डाल (यानी: query.sparql) आप अपनी क्वेरी का परीक्षण करने के लिए निम्न आदेश चला सकते हैं:

./semwebquery -sparqlfile query.sparql -retrieveduris -maxsteps 5 

सभी कमांड पैरा वेब सेमेन्टिक वेब क्लाइंट लाइब्रेरी दस्तावेज में समझाया गया है।

| ?art        | ?abstract 
| <http://dbpedia.org/resource/Ezra> | "Ezra is a major .... "@en | 

Successfully dereferenced URIs: 

http://www.w3.org/2002/07/owl 
http://bibleontology.com/data/Ezra 
http://dbpedia.org/data/Ezra.xml 
http://dbpedia.org/data3/abstract.n3 

मैं सादगी के लिए dbpedia से लंबे सार नहीं दिखाए हैं:

आप निम्न उत्पादन मिलेगा। "सफलतापूर्वक संदर्भित यूआरआई" की सूची लाइब्रेरी द्वारा आपकी क्वेरी का उत्तर देने के लिए पुनर्प्राप्त दस्तावेज हैं। लाइब्रेरी के प्रलेखन में आप देखेंगे कि जावा में प्रोग्रामिक रूप से क्वेरी कैसे चलाएं।

+0

यह दिलचस्प है, हालांकि टूल काफी धीमा है। किसी कारण से, यह टूल केवल एक परिणाम लौटाता है, भले ही अनुरोध एक से अधिक परिणाम लौटाए, जैसे 'PREFIX बो: PREFIX बोप: PREFIX dbo: PREFIX उल्लू: PREFIX dbpedia: डिस्टिंट का चयन करें? अभिभावक? सार कहां { बो: मूसा बोप: हैपेरेंट्स? अभिभावक। ? अभिभावक उल्लू: वही है? कला। ? कला dbpedia: सार? सार। फ़िल्टर (LANG (? सार) = "एन") } ' –

+0

असल में, अगर मैं केवल माता-पिता की खोज करता हूं, तो यह मुझे दो प्रविष्टियों की एक सूची देता है, लेकिन यदि मैं सार तत्वों की खोज करता हूं, तो यह केवल सार तत्वों को सूचीबद्ध करता है पहला माता पिता, दूसरे के लिए नहीं। –

6

अन्य सभी उत्तरों यह कहने में सही हैं कि आप क्वेरी को ऐसा नहीं कर सकते क्योंकि डेटा एक एकल SPARQL एंडपॉइंट में संयुक्त नहीं है। बशर्ते कि यह SERVICE कीवर्ड का समर्थन करता है

PREFIX bibleontology: <http://bibleontology.com/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 

SELECT ?art ?abstract 
WHERE 
{ 
    bibleontology:Ezra owl:sameAs ?art . 
    SERVICE <http://dbpedia.org/sparql?default-graph-uri=http://dbpedia.org> { ?art dbo:abstract ?abstract . } 
} 

आप bibleontology SPARQL समाप्ति बिंदु को ऊपर प्रश्न दर्ज था और: अंतिम बिंदुओं में से एक SPARQL 1.1 संघीय क्वैरी का समर्थन करता है तो आप तो जैसे SERVICE कीवर्ड का उपयोग करने में सक्षम हो सकता है यह आपकी क्वेरी का हिस्सा डीबीपीडिया SPARQL एंडपॉइंट पर भेजता है।

अपने SPARQL endpoint SERVICE कीवर्ड का समर्थन करता है यहां तक ​​कि अगर तो आप अब भी प्रासंगिक डेटा दोनों डेटासेट में किया जा रहा पर निर्भर कर रहे हैं यानी बाइबिल आंटलजी एक owl:sameAs है कि आदेश है कि SERVICE खंड वास्तव में लगता है में एक DBPedia संसाधन के लिए अंक की जरूरत है कुछ भी।

वैकल्पिक रूप से

अपने अंतिम बिंदुओं में से कोई भी समर्थन करते हैं SERVICE कीवर्ड तो आप एक स्थानीय endpoint की स्थापना या कमांड लाइन उपकरण SERVICE कीवर्ड का समर्थन करता है कि उपयोग कर सकते हैं (मैं कुछ लिंक की खुदाई देगा, जब ' रुचि फिर से) और फिर जारी निम्नलिखित:

PREFIX bibleontology: <http://bibleontology.com/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 

SELECT ?art ?abstract 
WHERE 
{ 
    SERVICE <http://bibleontology.com/sparql> { bibleontology:Ezra owl:sameAs ?art . } 
    SERVICE <http://dbpedia.org/sparql?default-graph-uri=http://dbpedia.org> { ?art dbo:abstract ?abstract . } 
} 

अपने स्थानीय उपकरण/endpoint का समर्थन करता है, तो SERVICE तो यह प्रासंगिक अंतिम बिंदुओं को क्वेरी के प्रासंगिक भागों भेजने में सक्षम हो सकता है और स्थानीय स्तर पर और आशा में शामिल होने से क्या करेंगे पूरी तरह से, परिणाम आप कर रहे हैं

+0

यह बहुत रोचक लग रहा है, लेकिन यह कोशिश की गई दो SPARQL अंतराल के किसी भी काम के लिए काम नहीं करता है। मैं अन्य अंतराल पर कोशिश करूँगा। मैं एक स्थानीय एंडपॉइंट कैसे स्थापित करूं? –

+0

हां अनजाने में उपर्युक्त SPARQL 1.1 है इसलिए व्यापक रूप से अभी तक अपनाया नहीं गया – RobV

+0

मैं बस SPARQL में जा रहा हूं और इसी तरह। क्या आप मुझे कुछ स्थानीय अंतराल दे सकते हैं जो SPARQL 1.1 का समर्थन करते हैं? – Karsten

10

के बाद मैं इंजीनियर के लिए bibleontology.com

bibleontology.com SPARQL1.1

PREFIX bibleontology: <http://bibleontology.com/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT ?art ?abstract 
WHERE { 
SERVICE <http://bibleontology.com/sparql/> { bibleontology:Ezra owl:sameAs ?art . } 
SERVICE <http://dbpedia.org/sparql> { ?art dbo:abstract ?abstract . } } 
+0

धन्यवाद winseok oh :-) –