2

您好我正在使用最新版本的 RDF4J 2.4.0-M3,我正在尝试执行以下查询:

PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX lgd: <http://data.linkedeodata.eu/ontology#>
 SELECT ?s1 ?o1 WHERE {
 ?s1 geo:asWKT ?o1 .
  FILTER(geof:sfIntersects(?o1, "POINT (-3.9468805 51.618055)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>)).
}

预期结果如下:

s1                                           o1
http://data.linkedeodata.eu/osm/wales/transport/Geometry/16202470   MULTIPOLYGON (((-3.9469452 51.6180887, -3.9467408 51.6183097, -3.9464539 51.6182493, -3.9457195 51.6174283, -3.9459201 51.617293, -3.9460423 51.6171659, -3.9462114 51.6174525, -3.9463139 51.6175729, -3.9466882 51.6179044, -3.9469452 51.6180887)))

已使用 GraphDB v8.5 和 RDF4J 2.4.0-M3 加载了相同的数据集,已验证存储库。

我收到的java错误如下: java error execution query of RDF4J repo

我为 BOM 和 rdf4j-queryalgebra-geosparql 使用了正确的依赖项。

我的数据集包含 POINT、POLYGON、MULTIPOLYGON。

任何帮助将不胜感激。

4

1 回答 1

2

这是 RDF4J 2.4 里程碑 3 中的 maven 依赖项定义中的一个错误 - 出于某种原因,它抓取了错误版本的 spatial4j 库。问题已记录在https://github.com/eclipse/rdf4j-storage/issues/108

解决方法是在项目 pom 中为正确版本添加显式依赖项:

  <dependency>
    <groupId>org.locationtech.spatial4j</groupId>
    <artifactId>spatial4j</artifactId>
    <version>0.7</version>
  </dependency>
于 2018-09-18T00:42:29.557 回答