Как сохранить координаты многоугольника как литеральные значения WKT, используя RDFLIB? - PullRequest
0 голосов
/ 18 апреля 2020

Я работаю над запросами GEOSPARQL. И я хочу сохранить координаты многоугольника как значения wktLiteral, используя RDF Graph (RDFLIB python). В настоящее время я делаю это, используя приведенный ниже код.

GEO = Пространство имен ("http://www.opengis.net/ont/geosparql#")

if name == "wkt":
   self._graph.add((image, GEO["asWKT"], rl.Literal(value, datatype=GEO.wktGeneral)))

Но когда я вижу результаты в моем Apache Fuseki сервер. Я не могу увидеть правильный тип данных для "POLYGON (()) координат". Пожалуйста, дайте мне знать, если чего-то не хватает. Спасибо.

Results Image

1 Ответ

0 голосов
/ 21 апреля 2020

Попробуйте этот код:

from rdflib import Graph, Literal, URIRef, Namespace

GEO = Namespace("http://www.opengis.net/ont/geosparql#")

g = Graph()
g.bind("geo", GEO)
x = URIRef("x:")
g.add((x, GEO["asWKT"], Literal("value", datatype=GEO.wktLiteral)))


print(g.serialize(format="turtle").decode("utf-8"))

Это возвращает тип данных очень хорошо.

  • вам нужно установить тип wktLiteral, а не wktGeneral
  • вам нужно использовать Literal() напрямую, а не rl.Literal()

Могут быть и другие вещи, но вы не предоставили достаточно кода, чтобы я мог сказать.

...