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
Comments
Post a Comment