दिलचस्प सवाल, क्योंकि यह काफी आसान लगता है और फिर भी क्वेरी को सही ढंग से व्यक्त करना मुश्किल है। William Greenly's answer जो आप चाहते हैं उसे प्रदान नहीं करता है, हालांकि वह अपने स्पष्टीकरण में बिल्कुल सही है और सही ढंग से property path का उपयोग करें। सही प्रश्न पूछने में सक्षम होने के लिए जो आपके प्रश्न का उत्तर देता है, यह माना जाना चाहिए कि सभी सूचियां अच्छी तरह से बनाई गई हैं (उनके पास केवल एक पहला तत्व है, एक आराम है और वे एक शून्य के साथ समाप्त होते हैं)।
आपकी क्वेरी में समस्या यह है कि यह डेटासेट में सभी सूचियों के सभी सदस्यों की गणना करेगा। rdf:first
को केवल एक सूची के तत्व से संबंधित करने के लिए आपको कुछ चाहिए।
आप एक यूआरआई सूची अपने में रुचि रखते हैं की पहचान है, तो आप निम्न कर सकते हैं:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://www.example.org/#>
SELECT (COUNT(?member) AS ?count)
WHERE {
ex:uriOfTheList rdf:rest*/rdf:first ?member
}
लेकिन अक्सर, सूचियों यूआरआई से पहचान नहीं हो। इस मामले में, अन्य गुणों का उपयोग करके कुछ सूचियों की पहचान करना संभव है। उदाहरण के लिए, मान लें कि एक ex:listOfAuthors
संपत्ति है, तो आप कर सकते हैं:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://www.example.org/#>
SELECT (COUNT(?member) AS ?count)
WHERE {
ex:publication ex:listOfAuthors ?list .
?list rdf:rest*/rdf:first ?member .
}
नोट अगर आप बस करना है कि:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT (COUNT(?member) AS ?count)
WHERE {
?list rdf:rest*/rdf:first ?member .
}
आप सूचियों और उप-सूचियों के सभी आकारों के ऊपर जोड़ देंगे। अब चीजें जटिल हो जाती हैं यदि आपने भविष्यवाणी नहीं की है कि आप सूची संलग्न कर सकते हैं और आपके पास यूआरआई नहीं है और शायद आप सभी सूचियों के लिए गिनती प्राप्त करना चाहते हैं।
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT (COUNT(?c) AS ?count)
WHERE {
?thing !rdf:rest ?list .
?list rdf:rest*/rdf:first ?member .
}
क्या यह कह रहा है कि हम कुछ एक सूची से कनेक्ट होता है पता लगाना चाहते है, लेकिन विधेय rdf:rest
साथ नहीं: वहाँ एक तरीका है कि काम करना चाहिए है। सिद्धांत रूप में, केवल किसी सूची की शुरुआत किसी अन्य इकाई के लिए एक अनुमान के माध्यम से जुड़ी होती है, अगर इकाई स्वयं सूची नहीं है और अनुमान rdf:rest
नहीं है। इसके अलावा, सूचियों को आम तौर पर किसी अन्य तरह से अन्य संस्थाओं से जोड़ा जाता है, क्योंकि किसी और चीज से स्वतंत्र रूप से सूची का वर्णन करने में कोई बात नहीं होगी।
धन्यवाद एंटोनी, आपने किसी चीज़ से जुड़ा हुआ सूची का एक बहुत ही महत्वपूर्ण बिंदु पहचाना है। मैंने इसके बारे में तब नहीं सोचा जब मैंने डेटासेट पर क्वेरी की कोशिश की जिसमें केवल एक सूची थी। – user1278577