我正在使用 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
,、。看起来许多功能没有完全(或部分)在空间逻辑中实现。显然,有一个返回很多. 无论如何,理解什么是让 GEOSPARQL 正常工作的正确程序是一团糟(并且没有记录)。他们只说你可以实现你自己的,但之后如何使用它是一个谜。SpatialSupport
SpatialSupportInitializer
DefaultSpatialAlgebra
notSupported
SpatialSupportInitializer
从文档中,显然还有一种使用其他 SAIL 的方法,但同样,对此一无所知。
任何人都可以为我提供一些指导,或者至少是一段代码,其中显示了如何实际传递给引擎 a SpatialAlgebra
or SpatialSupport
or SpatialSupportInitializer
,这不是默认的吗?或者是否有任何现有的 SAIL 实现了所有这些方法,我该如何使用它?谢谢。
PS:我其实是依赖2.4.0 M2版本的RDF4J,里面好像没有org.eclipse.rdf4j.query.algebra.evaluation.function.geosparql
包(我手动导入的)。我也尝试使用 2.3.1 版本,但我遇到了同样的问题。