2011-03-01 12 views
13

मैं एक डीबीपीडिया संसाधन (एक व्यक्ति) के बारे में जानकारी प्राप्त करने के लिए एक SPARQL क्वेरी का उपयोग करने की कोशिश कर रहा हूं। मैं संसाधन यूआरआई को पैरामीटर करके किसी भी व्यक्ति के बारे में डेटा पुनर्प्राप्त करने के लिए एक ही क्वेरी का उपयोग करना चाहता हूं। चूंकि किसी विशेष संसाधन के लिए कुछ विशेषताएं मौजूद नहीं हैं, इसलिए मैं वैकल्पिक कथन का उपयोग कर रहा हूं। के बाद से अगर मैं किसी अन्य व्यक्ति के लिए एक ही क्वेरी का उपयोग, वे उन गुणों नहीं हो सकता हैमौजूद संसाधन के लिए विशेषताओं को पुनर्प्राप्त करने के लिए SPARQL OPTIONAL का सही तरीके से उपयोग कैसे करें?

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
    PREFIX dbo: <http://dbpedia.org/ontology/> 
    PREFIX dbpprop: <http://dbpedia.org/property/> 
    PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
    SELECT DISTINCT ?label ?abstract ?placeOfBirth 
     ?birthPlace ?birthDate ?deathDate ?page ?thumbnail 
    WHERE { 
     <http://dbpedia.org/resource/Neil_Simon> rdfs:label ?label ; 
      dbo:abstract ?abstract ; 
      foaf:page ?page . 
     OPTIONAL { 
      <http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ; 
       dbpprop:birthPlace ?birthPlace ; 
       dbo:birthDate ?birthDate ; 
       dbo:deathdate ?deathDate ; 
       dbo:thumbnail ?thumbnail . 
     } 
     FILTER (LANG(?label) = 'en')  
     FILTER (LANG(?abstract) = 'en') 
    } 
    LIMIT 1 

मैं छोड़कर लेबल, वैकल्पिक में सार और पेज सब कुछ छोड़ दिया है, यहाँ मेरी क्वेरी है। समस्या यह है कि, उन वैकल्पिक विशेषताओं में से कोई भी परिणाम में दिखाई नहीं दे रहा है। नील साइमन के मामले में, आप देख सकते हैं कि जन्मतिथि, जन्मस्थान और थंबनेल के लिए मूल्य हैं: http://dbpedia.org/resource/Neil_Simon। हालांकि, जब मैं क्वेरी चलाता हूं तो वे मान प्रदर्शित नहीं होते हैं: DBpedia SPARQL query। मैं गलत क्या कर रहा हूं, और मैं वैकल्पिक रूप से उन गुणों को कैसे प्राप्त कर सकता हूं?

उत्तर

14

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

मैं वैकल्पिक वैकल्पिक निर्माण को कई वैकल्पिक संरचनाओं में तोड़ने का सुझाव दूंगा।

+0

बेशक, यह इतना समझ में आता है! मैंने प्रत्येक संपत्ति के लिए वैकल्पिक निर्माण को अलग-अलग में विभाजित कर दिया है और यह पूरी तरह से काम करता है। –

+0

कृपया हमारे साथ अपना काम कोड साझा करें –