2016-09-15 180 views
1

我使用RDF4J工作台:是否RDF4J支持GeoSPARQL?

System Information 
Application Information 
Application Name RDF4J Workbench 
Version 2.0.1 
Runtime Information 
Operating System Windows 8.1 6.3 (amd64) 
Java Runtime Oracle Corporation Java HotSpot(TM) 64-Bit Server VM (1.8.0_101) 
Process User Greg 
Memory 
Used 203 MB 
Maximum 3463 MB 

虽然我可以看到在github上RDF4J存储库GeoSPARQL引用,它似乎并没有在这个时候实施。我跑在清除“存储在内存中与RDFS + SPIN支持”库这个SPARQL更新查询设置上RDF4J工作台测试:

PREFIX geo: <http://www.opengis.net/ont/geosparql#> 
PREFIX sf: <http://www.opengis.net/ont/sf#> 
PREFIX sxxicci: <http://www.disa.mil/dso/a2i/ontologies/PBSM/Interface/SXXIComplianceCheckIndividuals#> 

INSERT DATA 
{ 
    sxxicci:aPolygon geo:asWKT "Polygon((0.5 -0.5, 0.5 0.5, -0.5 0.5, 0.5 -0.5))"^^sf:wktLiteral . 
} 

这导致库与一个事实。

现在我试图寻找与下面的查询文字多边形的重叠应该找我的一个事实成立上述:

PREFIX geo: <http://www.opengis.net/ont/geosparql#> 
PREFIX geof: <http://www.opengis.net/def/function/geosparql/> 
PREFIX sf: <http://www.opengis.net/ont/sf#> 

SELECT DISTINCT * 
WHERE 
{ 
    ?bGeom geo:asWKT ?bWKT . 
    FILTER (geof:sfIntersects(?bWKT, "Polygon((1 0, 1 1, 0 1, 1 0))"^^sf:wktLiteral)) 
} 

这个查询提供了一个错误的结果HTML我已经有渲染:

enter image description here

这似乎表明,

  1. 我做错了什么事在设立这个试验(如果有,是什么?)OR

  2. RDF4J不支持GeoSPARQL(至少不是杰夫:sfIntersects功能)

1和/或2或其他什么?

感谢。

+1

我不知道,如果工作台包含相关的.jar文件都GeoSPARQL,但在这里,我想我们可以估算的(至少)支持该功能:https://github.com/eclipse/rdf4j/tree/master /测试包/ geosparql/SRC /主/资源/测试用例-geosparql /功能 – AKSW

+1

严,确实具有_zero_文档计数为 “疏记载”?无论如何,我们正在努力改善这一点,敬请期待。 –

+0

我敢打赌,一个函数'杰夫:sfIntersects'总是比一个神奇的谓词'地理较慢:sfIntersects',因为该功能需要做一个全面的扫描 –

回答

1

我有一个类似的问题,在maven应用程序中使用RDF4J API,问题最终导致GeoSPARQL函数在rdf4j-queryalgebra-geosparql包中定义;这不是默认包含的。将它添加到我的POM后,查询按预期工作。

我不是很熟悉的应用程序服务器,而是一个快速浏览一下rdf4j,工作台,部署在Tomcat中,显示该库从lib /目录丢失。一旦我手动添加并重新加载应用程序,我的空间查询解析并正确执行。