Я новичок в SPARQL и, возможно, я делаю логическую ошибку, но у меня есть проблема:
Я хочу получить "Freddie_Mercury" из списка людей, каждый из которых имеетrdf: введите как dbo: MusicalArtist тоже.
Первый запрос, который я сделал, это:
select ?x where{?x a dbo:MusicalArtist; dbo:birthName ?realName. FILTER regex(?realName,"Farrokh Bulsara")}
Это прекрасно работает.Я получаю ссылку на страницу Фредди Меркьюри, и я могу идти.Но если я запускаю следующий код Python, Фредди Меркьюри не вносить в список.Почему?
from SPARQLWrapper import SPARQLWrapper, JSON
#select all people with type MusicalArtist#
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery(
"""select ?singer where{?singer a dbo:MusicalArtist} """)
sparql.setReturnFormat(JSON)
resultsSingers = sparql.query().convert()
#creating list of singers (only complete name)#
singerNames = []
iFoundFreddie = False
#for result in "bindings"#
for result in resultsSingers["results"]["bindings"]:
try:
#get string in "singer" in "value", after "/resource/"#
singerN = result["singer"]["value"].split("/resource/")[1]
#add string to list#
singerNames.append(singerN)
if "_Mercury" in singerN:
iFoundFreddie = True
except:
print("",end="")
print(iFoundFreddie)