java - SPARQL query against Portuguese dbpedia endpoint for dcterms:subject returns no results -
मैंने उस क्वेरी का परीक्षण किया:
SELECT? Comment WHERE {& lt; http: // pt.dbpedia.org/resource/Portugal> Dcterms: topic? Comment}
पर और मुझे सही परिणाम मिलता है:
http://pt.dbpedia.org/resource/Categoria:Portugal
लेकिन मैं जेना का उपयोग कर रहा हूं और जब मैं जेना के साथ ऐसा प्रश्न करने की कोशिश करता हूं तो मुझे कोई परिणाम नहीं मिलता। यही तरीका है कि मैं जेना के साथ क्वेरी कर रहा हूं:
निजी स्ट्रिंग पाने का विवरण (स्ट्रिंग uri) {RDFNode नोड; स्ट्रिंग टिप्पणी = ""; अंतिम स्ट्रिंग QUERY = "PREFIX rdf: & lt; http: //www.w3.org/1999/02/22-rdf-syntax-ns#> \ n" + "PREFIX dcterms: & lt; http: // purl Org / dc / terms / subject & gt; \ n "+" चुनें? टिप्पणी कहाँ {"+" & lt; " + यूरी + "& gt; dcterms: subject? टिप्पणी।" + "}"; अंतिम स्ट्रिंग ENDPOINT = "http://pt.dbpedia.org/sparql"; अंतिम परिणामसेट आरएस = क्वेरीएक्ज़ेक्यूशनफैरेंटीसीपीआरसीएल सेवा (एंडपोइन, QUERY) .execSelect (); जबकि (rs.hasNext ()) {QuerySolution querySolution = rs.next (); नोड = querySolution.get ("टिप्पणी"); टिप्पणी = नोड.टस्ट्रिंग (); } वापसी टिप्पणी; }
क्या कोई गड़बड़ है? धन्यवाद!
घनत्व:
उपसर्ग में टाइपो
है dcterms:
उपसर्ग गलत है (इसके अंत में विषय
है)। यह होना चाहिए
http://purl.org/dc/terms/
से बचने के लिए पैरामीटेराइज्डस्परकिलस्टिंग्स का उपयोग करना चाहिए इंजेक्शन समस्याएं
इसके अलावा, जिस तरह से आप क्वेरी में uri
पैरामीटर को विभाजित कर रहे हैं वह थोड़ी भंगुर है, और यह इंजेक्शन के हमलों के अधीन है उदा।, यदि uri
निम्नलिखित स्ट्रिंग थे तो क्या होगा?
& gt; & Lt; & gt; * & lt; & gt; । & LT; http: //example.org/secretData> ? किसी भी प्रॉपर्टी? टिप्पणी #
आप http://example.org/secretData के बारे में जानकारी लीक करेंगे, क्योंकि
& lt; & gt; & Lt; & gt; * & lt; & gt;
हमेशा मिलान होगा, और फिर आप http://example.org के किसी भी संपत्ति के सभी मानों को
टिप्पणी
/ secretData । ऐसा करने का एक उदाहरण है।
Comments
Post a Comment