我正在尝试在OWL文件上进行SPARQL查询(请参阅pastebin),但这是我第一次处理OWL文件,所以我在Python中使用RDFLIB来进行SPARQL查询 . 当我运行代码时,我得到一个错误(如下所示代码),我不明白 . 可能是什么导致了这个?
代码
import rdflib
graph = rdflib.Graph()
prefix="""PREFIX dc:
PREFIX foaf:
PREFIX olia-ar:
PREFIX dcterms:
PREFIX rdfs:
PREFIX owl:
PREFIX xsd:
PREFIX lexvo:
PREFIX rdf:
PREFIX p1:
PREFIX base:
PREFIX xmlns:
"""
queryString = prefix+"\n"+"""SELECT ?animalClass
WHERE {
?animal :Has_Usage "Ride";
rdf:type ?animalClass.
}"""
graph.parse('animal.owl')
result = graph.query(queryString)
for row in result:
print row
错误
Traceback (most recent call last):
File "D:\Python27\animal.py", line 22, in
result = graph.query(queryString)
File "build\bdist.win32\egg\rdflib\graph.py", line 1007, in query
query_object, initBindings, initNs, **kwargs))
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\processor.py", line 49, in query
loadContexts=loadContexts)
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\algebra.py", line 358, in TopEvaluate
None)
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\algebra.py", line 179, in ReduceToAlgebra
right = ReduceGraphPattern(right,prolog)
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\algebra.py", line 63, in ReduceGraphPattern
bgp=BasicGraphPattern(list(unRollTripleItems(triple,prolog)),prolog)
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\evaluate.py", line 301, in unRollTripleItems
for item in unRollRDFTerm(items, queryProlog):
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\evaluate.py", line 281, in unRollRDFTerm
convertTerm(propVal.property, queryProlog),
File "D:\Python27\lib\site-packages\rdfextras-0.4-py2.7.egg\rdfextras\sparql\evaluate.py", line 151, in convertTerm
base = queryProlog.prefixBindings[u'']
KeyError: u''