python - Sparql query bad formed -


i'm trying build sparql query based on list of properties error saying query bad formed. problem don't know fix it.

this function:

def create_query(dbpedia_uri, props):     #props ('dbpedia-owl', 'birthdate')     filters = ''      prop in queries_dict[ename]:         filters += ' optional { ?x %s:%s ?%s. } \n' % (corresp_dict[prop[0]], prop[1], prop[1])      query = u"""         select * { .          <%s>.           ?x dbpedia-owl:abstract ?abstract.           %s           filter (lang(?abstract) = 'en')         }     """ % (dbpedia_uri, filters)      return query 

this query get:

u"\n        select * { <http://dbpedia.org/resource/tim_cook>\n          ?x dbpedia-owl:abstract ?abstract.\n          optional { ?x dbpedia-owl:birthdate ?birthdate. }\n optional { ?x dbpedia-owl:birthplace ?birthplace. }\n optional { ?x dbpprop:name ?name. }\n optional { ?x dbpedia-owl:profession ?profession. }\n optional { ?x dbpprop:residence ?residence. }\n optional { ?x dbpprop:website ?website. }\n \n          filter (lang(?abstract) = 'en')\n        }\n    " 

or printed:

        select * { <http://dbpedia.org/resource/tim_cook>           ?x dbpedia-owl:abstract ?abstract.           optional { ?x dbpedia-owl:birthdate ?birthdate. }  optional { ?x dbpedia-owl:birthplace ?birthplace. }  optional { ?x dbpprop:name ?name. }  optional { ?x dbpedia-owl:profession ?profession. }  optional { ?x dbpprop:residence ?residence. }  optional { ?x dbpprop:website ?website. }            filter (lang(?abstract) = 'en')         } 

you need define prefixes used e.g. dbpprop ,dbpedia-owl

try: http://www.sparql.org/query-validator.html


Comments