Sparqlwrapper: он ничего не возвращает, но запрос работает с dbpedia.org/sparql
Я также добавил фрагмент ниже. Этот запрос вернет название компании URI, ее название и материнскую компанию. Он работает с DBpedia.org/sparql, но не с sparqlwrapper(ничего не возвращает;)
query1 = """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX db: <http://dbpedia.org/resource/>
select distinct ?iri ?name ?parent (concat('[',group_concat(distinct ?location;separator=','),']') as ?location)
{
?iri a dbo:Company ;
rdfs:label ?label ;
foaf:name ?name
OPTIONAL { ?iri dbo:parentCompany ?parent.
filter (!isBlank(?parent)) }
OPTIONAL { ?iri dbo:location ?location.}
filter(regex(?name, "\\btata steel\\b","i" )) .
filter(regex(?label, "\\btata steel\\b","i" ))
}
GROUP BY ?iri ?name ?parent
"""
def get_country_description(query):
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setReturnFormat(JSON)
sparql.setQuery(query) # the previous query as a literal string
return sparql.query().convert()
0 ответов
Избавляться от \\b
в вашем regex
выражение, и это работает! (я не знаю, зачем это нужно как tata steel
это целое слово)
Также вам нужно пройти query1
! к вашей функции! и использовать sparql.setReturnFormat('json')
не JSON,
ура