SPARQL - Неизвестная ошибка префикса пространства имен - PullRequest
0 голосов
/ 30 мая 2018

У меня есть файл 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, редактором, который я использую для реализации этого.

Чего мне не хватает, что вызывает эту ошибку?Можно ли просто позвонить weather:region в моем запросе SPARQL?Если да, то как это исправить?

1 Ответ

0 голосов
/ 30 мая 2018

Как следует из сообщения об ошибке, пространство имен weather: не определено - поэтому в SPARQL вам нужен PREFIX для определения погоды, например:

PREFIX weather: <weatheruri>

Или выследует поставить явный URI погоды вместо weather:

URI пространства имен погоды (или он называется IRI?) будет находиться в пространствах имен XML в документе rdf - он будет заканчиваться на / или # такесли URI равен http://weather.com/, определение префикса равно PREFIX weather: <http://weather.com/>

...