2011-12-20 12 views
9

मैं SPARQL करने के लिए एक शुरुआत कर रहा हूँ और अगर वहाँ एक प्रश्न जो मुझे सकर्मक संबंधों लौटने में मदद कर सकता था सोच रहा था। उदाहरण के लिए मैं नीचे n3 फ़ाइल एक प्रश्न है कि वापसी होगी या उन पंक्तियों के साथ कुछ "एक sameas सी है" चाहते हैं। धन्यवादSPARQL क्वैरी सकर्मक

@prefix : <http://websitename.com/links/> . 
@prefix owl: <http://www.w3.org/2002/07/owl#> . 

:a owl:sameas :b. 
:b owl:sameas :c. 

उत्तर

13

यदि आप एक उपयुक्त सक्षम SPARQL 1.1 इंजन का उपयोग कर रहे हैं संपत्ति रास्तों का उपयोग कर सकते हैं, तो आप अपने प्रश्न जेना टैग किया है तो मैं आप अपनी ARQ इंजन जो इस सुविधा का समर्थन का उपयोग कर रहे मान।

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT * 
WHERE 
{ 
    ?x owl:sameAs+ ?y 
} 

नोट + विधेय के बाद, संकेत मिलता है कि यह एक/अधिक कदम से बना संबंधों के लिए दिखना चाहिए इस्तेमाल किया:

तो आप निम्नलिखित की तरह एक प्रश्न लिख सकते हैं।

संपत्ति पथों के लिए वाक्यविन्यास here पाया जा सकता है और यह बहुत नियमित अभिव्यक्ति है। इस का उपयोग करते हुए प्रश्नों के केवल नकारात्मक पक्ष यह है कि आप के बारे में कब तक रास्ते हैं या मध्यवर्ती नोड्स क्या कर रहे हैं किसी भी जानकारी को नहीं मिलता है।

+0

धन्यवाद। SPARQL सिंटैक्स – Sam

+3

पर लिंक को निश्चित रूप से देखने के लिए जा रहे हैं यदि आप जिस चीज से पूछ रहे हैं वह ओडब्लूएल तर्क का समर्थन करता है, विशेष रूप से ओडब्ल्यूएल की एक प्रोफ़ाइल जिसमें पारगमनशीलता शामिल है और आपने संपत्ति को एक ट्रांजिटिव प्रॉपर्टी के रूप में परिभाषित किया है, तो आपको किसी विशेष SPARQL की आवश्यकता नहीं है वाक्य रचना, तो आप सिर्फ सामान्य रूप से संपत्ति का उपयोग कर सकते हैं और तार्किक सही काम करेंगे। – Michael

4

जबकि RobV's answer आपके मामले में सही है, मुझे लगता है कि उल्लू की द्वि-दिशात्मक प्रकृति: समान है उल्लेखनीय है।

के इस करके अपने उदाहरण का विस्तार करते हैं:

:a owl:sameAs :d. 
:e owl:sameAs :d. 

उस मामले एक सरल owl:sameAs+:e लगाने के लिए पर्याप्त नहीं होगा में, तो शायद (owl:sameAs|^owl:sameAs)+ की तरह कुछ का उपयोग पूरे तुल्यता पेड़ लगाने के लिए। ध्यान रखें कि अंत बिंदु के आधार पर इस छोरों के कारण हो सकता हो।

इसके अलावा हो सकता है कार्यान्वयन विशिष्ट एक्सटेंशन ऐसे Virtuoso में के रूप में owl:sameAs तर्क को संभालने के लिए,:

DEFINE input:same-as "yes" 
select * where { :a ?p ?o. } 

भी ?p और ?o कि :b, :c, :d और :e के लिए जारी किए जाते हैं लौटने। मदद के लिए फिर से

संबंधित मुद्दे