SPARQL未知命名空间前缀

2024-06-25 06:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个导入了rdflib的python文件,并实现了一些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的错误是:

^{pr2}$

显然,这是由于第15行的错误造成的,pycharm是我用来实现这一点的编辑器。在

我遗漏了什么导致了这个错误? 在我的SPARQL查询中是否还有更多的方法可以调用weather:region? 如果是这样,如何解决这个问题?在


Tags: importformatlocalhosthttpparsehtml错误sparql
1条回答
网友
1楼 · 发布于 2024-06-25 06:36:08

如错误消息所示,名称空间weather:没有定义,因此在SPARQL中,您要么需要一个前缀来定义天气,比如:

PREFIX weather: <weatheruri>

或者您应该将显式的weather URI替换为weather:

天气名称空间URI(或者称为IRI?)将在rdf文档中的XML命名空间中-它将以/或#结尾,因此如果URI是http://weather.com/,则前缀定义是PREFIX weather: <http://weather.com/>

相关问题 更多 >