我正在处理GEOSPARQL查询。我想使用RDF Graph(RDFLIB python)将多边形坐标存储为wktLiteral值。目前,我正在使用以下代码进行此操作。
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(())坐标”的正确数据类型。请让我知道是否有任何遗漏。谢谢。
尝试此代码:
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()
可能还有其他事情,但是您提供的代码不足以告诉我。