SPARQL - 未知的命名空间前缀错误
SPARQL - Unknown namespace prefix error
我有一个 python 文件,其中导入了 rdflib 并实现了一些 SPARQL 查询
from rdflib import Graph
import html5lib
if __name__ == '__main__':
g = Graph()
g.parse('http://localhost:8085/weather-2.html', format='rdfa')
res1 = g.parse('http://localhost:8085/weather-2.html', format='rdfa')
print(res1.serialize(format='pretty-xml').decode("utf-8"))
print()
res2 = g.query("""SELECT ?obj
WHERE { <http://localhost:8085/weather-2.html> weather:region ?obj . }
""")
for row in res2:
print(row)
res1 打印出来没有问题,但对于 res2 我收到一条错误消息:
Exception: Unknown namespace prefix : weather
显然这是由于第 15 行的错误导致的,根据 pycharm,我用来实现它的编辑器。
我错过了什么导致了这个错误?
在我的 SPARQL 查询中调用 weather:region
是否还有更多内容?
如果是,如何解决这个问题?
如错误消息所示,命名空间 weather:
未定义 - 因此在 SPARQL 中您需要一个前缀来定义天气,例如:
PREFIX weather: <weatheruri>
或者您应该使用明确的天气 URI 而不是 weather:
天气命名空间 URI(或者称为 IRI?)将位于 rdf 文档的 XML 命名空间中 - 如果 URI 为 http://weather.com/
,它将以 / 或 # 结尾前缀定义是 PREFIX weather: <http://weather.com/>
我有一个 python 文件,其中导入了 rdflib 并实现了一些 SPARQL 查询
from rdflib import Graph
import html5lib
if __name__ == '__main__':
g = Graph()
g.parse('http://localhost:8085/weather-2.html', format='rdfa')
res1 = g.parse('http://localhost:8085/weather-2.html', format='rdfa')
print(res1.serialize(format='pretty-xml').decode("utf-8"))
print()
res2 = g.query("""SELECT ?obj
WHERE { <http://localhost:8085/weather-2.html> weather:region ?obj . }
""")
for row in res2:
print(row)
res1 打印出来没有问题,但对于 res2 我收到一条错误消息:
Exception: Unknown namespace prefix : weather
显然这是由于第 15 行的错误导致的,根据 pycharm,我用来实现它的编辑器。
我错过了什么导致了这个错误?
在我的 SPARQL 查询中调用 weather:region
是否还有更多内容?
如果是,如何解决这个问题?
如错误消息所示,命名空间 weather:
未定义 - 因此在 SPARQL 中您需要一个前缀来定义天气,例如:
PREFIX weather: <weatheruri>
或者您应该使用明确的天气 URI 而不是 weather:
天气命名空间 URI(或者称为 IRI?)将位于 rdf 文档的 XML 命名空间中 - 如果 URI 为 http://weather.com/
,它将以 / 或 # 结尾前缀定义是 PREFIX weather: <http://weather.com/>