我正在使用RDF4J,这是因为我发现其广告实现是GEOSPARQL(在其他RDF框架中找不到)。我遵循了基本指南和教程,但是不幸的是,我基本上无法执行任何广告查询。我阅读并遵循了http://docs.rdf4j.org/programming/#_geosparql处的所有文档,以及http://graphdb.ontotext.com/documentation/standard/geosparql-support.html和https://portal.opengeospatial.org/files/?artifact_id=47664处的所有示例。在SPARQL查询中似乎起作用的唯一空间函数是geof:distance,所有其他空间函数均不产生任何结果。因此,我最终深入研究了org.eclipse.rdf4j.query.algebra.evaluation.function.geosparql包中的代码,以了解有些类和接口可能应该实现和扩展,例如SpatialAlgebra,SpatialSupport,SpatialSupportInitializer。看来许多功能并未在空间逻辑中完全(或部分)实现。显然,有一个DefaultSpatialAlgebra返回很多notSupported。无论如何,了解使GEOSPARQL正常工作的正确程序是一个混乱的过程(没有文档)。他们只是说您可以实现自己的SpatialSupportInitializer,但是后来如何使用它是一个谜。从文档中可以明显看出,还有一种使用其他SAIL的方法,但同样,还不清楚。有人可以为我提供一些指导,或者至少是一段代码片段,其中显示了如何将SpatialAlgebra或SpatialSupport或SpatialSupportInitializer实际传递给引擎,这不是默认的?还是已经存在实现所有这些方法的SAIL,该如何使用?谢谢。PS:我实际上是依靠2.4.0 M2版本的RDF4J,它似乎没有内部的org.eclipse.rdf4j.query.algebra.evaluation.function.geosparql包(我手动导入了)。我也尝试使用2.3.1版,但存在相同的问题。 最佳答案 更新自RDF4J 2.4.0-M3起,GeoSPARQL功能支持更加全面。 improved documentation提供了所有受支持功能的完整列表,并希望更好地解释如何开始使用GeoSPARQL。它的简短之处在于,您需要做的就是添加以下Maven模块:<dependency> <groupId>org.eclipse.rdf4j</groupId> <artifactId>rdf4j-queryalgebra-geosparql</artifactId> <version>2.4.0-M3</version></dependency>并且您可以在任何类型的RDF4J存储库上使用GeoSPARQL。RDF4J还提供了其他几项GeoSPARQL功能,除了distance,union,intersection,symDifference,difference,convexHull,boundary,envelope和也至少受支持。不幸的是,getSRID当前不属于默认设置。这主要是由于RDF4J在早期版本的JTS库中存在许可问题(需要多边形支持)。但是,作为LocationTech项目的一部分,已经完成了更多的JTS发布,并且这些许可证问题已得到解决,因此我们希望能够在不久的将来进行扩展(在https://github.com/eclipse/rdf4j-storage/issues/89处存在跟踪此问题)。同时,您确实需要创建自己的`SpatialAlgebra`类,您可以通过`SpatialSupportInitializer`将其添加到RDF4J中。这是一种变通办法,但是您应该使用org.eclipse.rdf4j.query.algebra.evaluation.function.geosparql.SpatialSupportInitializer`作为其完全限定的名称来创建一个类,并确保它扩展了` org.eclipse.rdf4j.query.algebra.evaluation.function.geosparql.SpatialSupport`抽象类,重写其getSpatialContext和getSpatialAlgebra方法以提供您的自定义变体。添加到您的类路径并重新启动,RDF4J将选择它并使用您的`SpatialAlgebra`实现而不是其自己的实现。底线是:这都是beta。坦率地说,如果您认为可以使用我上面提到的解决方法来实现其他GeoSPARQL功能,那么我们很乐意在实际将其添加到RDF4J本身时提供您的意见(如果可能的话,还有您的帮助)。
07-24 09:33