问题标签 [geosparql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sparql - 无法使用 GeoSparqrl 和 sfWithin 函数找到点是否在多边形内
我需要编写一个查询来检查确定的点是否在多边形内。
我正在尝试使用 GeoSparql,但没有产生预期的结果。
如果我执行一个简单的查询,就像它:
结果是:
但是,如果我将下面的过滤器添加到查询中,它不会返回任何内容。但问题是:点在多边形内
java - RDF4J 和 GEOSparql 空间函数不起作用(或未实现)
我正在使用 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 版本,但我遇到了同样的问题。
rdf4j - RDF4J 2.4.0-M3 GeoSPARQL 查询不工作
您好我正在使用最新版本的 RDF4J 2.4.0-M3,我正在尝试执行以下查询:
预期结果如下:
已使用 GraphDB v8.5 和 RDF4J 2.4.0-M3 加载了相同的数据集,已验证存储库。
我收到的java错误如下: java error execution query of RDF4J repo
我为 BOM 和 rdf4j-queryalgebra-geosparql 使用了正确的依赖项。
我的数据集包含 POINT、POLYGON、MULTIPOLYGON。
任何帮助将不胜感激。
sparql - 如何过滤 SPARQL 查询中的简单主题
我想我被 SPARQL 的基础所困。有人可以帮忙吗?
我只是想过滤所有包含 RDS 数据库“Mountain”的主题。
查询导致错误:
lucene - 支持 Lucene 的 RDF4J 中的空间 SPARQL 查询
我正在空间查询上测试 RDF4J。我已经在 Appache Tomcat 9.0.12 上部署了 RDF4J Server 和 Workbench 应用程序。我当前的数据集有 853 个 LineStrings 和 88 个 Polygons 表示为 WKT 字段。但是查询的性能因我正在使用的存储库类型而异。以下是 SPARQL 查询。
查询运行良好,结果返回 567 作为任何多边形内的线串对象的计数。
问题在于返回结果所需的时间。如果存储库是简单内存或本机类型,则此查询执行时间在不同迭代中介于 10 到 40 秒之间。但是,如果存储库是使用 Lucene 创建的,则此查询的执行时间会超过 30 分钟。
从 RD4J 的文档中,我了解到使用 lucene 应该有一个用于 asWKT 字段的空间索引,因此我希望空间连接能够在更短的时间内与 Lucene 一起运行。但相反似乎使用 lucene,相同的查询性能呈指数级下降。
我从两者测试了相同的场景:工作台 aap 以及 Eclipse 项目中的 API。在这两种情况下,当涉及 Lucene 时,查询性能都会下降太多。
谁能告诉我我在这里缺少什么?
此致
sparql - 是否可以仅从 SPARQL 中的查询中推断出有关本体的新知识?
是否可以仅从 SPARQL 中的查询中推断出有关本体的新知识?
我有一个关于使用 SPARQL 语言关于本体的问题。到目前为止,我一直认为 SPARQL 相当于关系数据库中的 SQL 语言,也就是说,使用 SPARQL 只能查阅本体中明确存在的数据,而无法访问可以访问的数据。被推断,将推断的责任留给推理者。
但是,我阅读了一些文档,从中我推断出 SPARQL 确实有能力推断本体中的隐式和非显式知识。我的推断是真的吗?也就是说,是否可以通过 SPARQL 查询推断知识而不需要推理器?如果答案是正确的,那么使用推理器比使用 SPARQL 有什么优势?
问候,曼努埃尔普埃布拉。
geospatial - GraphDB 8.6.1 Free - 地理空间谓词不适用于运行时,但适用于 Workbench
我正在使用一个没有启用规则集的仓库。Query_1使用geof:sfIntersects()和Query_2使用geo:sfIntersects谓词。在 Workbench v8.6.1 中,Query_1 可以正确执行,而 Query_2 不能正确执行,不返回任何行,如文档中所述。启用 GeoSPARQL 插件后,使用 Workbench 两个查询都能正确执行,但 Query_2 更快。在 Java POM 中使用 Runtime v8.6.1,我尝试在启用 GeoSPARQL 插件的情况下针对 repo 执行 Query_1 和 Query_2。Query_1 正确执行(与 Workbench 一样),但 Query_2 未正确执行,不返回任何行(好像 GeoSPARQL 插件已禁用!)。我有证据表明 GeoSPARQL 插件已启用,因为如果我使用 Workbench 重复相同的任务,两个查询都会成功,同时/storage/GeoSPARQL/v2/config.properties具有以下内容:
java 选项正确指向-Dregister-external-plugins=/home/tioannid/graphdb-free-8.6.1 /lib/plugins
查询_1:
Query_2 日志:
如果此功能仅适用于 Workbench,那将是一种浪费……
问候
graphdb - 未在 graphdb 中计算的面积
我需要计算面积,但出现错误查询评估错误:未知函数' http://www.opengis.net/def/function/geosparql/area'(HTTP状态 500)通过图像中的以下查询
但它适用于stardog,请看图片
感谢您提前回复
plugins - 通过 RDF4J API 配置/启用 GeoSPARQL 插件
我正在尝试自动创建必须启用 GeoSPARQL 插件的 GraphDB 存储库。为此,我发送了 2 个 INSERT 语句,第一个用于配置索引和准确性,第二个用于启用插件。但是 conn.prepareUpdate(QueryLanguage.SPARQL, enablePluginStatement).execute() 操作“似乎”异步运行。而不是等到索引操作完成(就像从 Workbench 运行相同的 INSERT 查询时发生的那样),它几乎立即继续执行以下语句,即关闭存储库。当我通过 Netbeans 调试器执行相同的代码时,相同的单个语句需要更多时间才能完成并且确实完成了正确的索引。关于这个或类似问题的任何见解?