问题标签 [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.

0 投票
0 回答
30 浏览

sparql - 在 GeoSPARQL-Jena (Fuseki) 中使用 tdbloader 和 tdbquery

使用 Jena,以下内容可以加载和查询数据,而无需运行任何服务器:

是否可以在 GeoSPARQL-Jena 中类似地加载和查询数据,即无需运行服务器?由于 GeoSPARQL-Jena 使用了 Fuseki,而 Fuseki 似乎只在服务器模式下运行,我认为没有。

到目前为止我所拥有的:

0 投票
1 回答
32 浏览

java - 在 Jena 中使用自定义函数时优化 SPARQL 查询

我使用 Jena 在 Owl Ontology 上有以下 SPARQL 查询:

这个想法是:

  • 我有一个Aircraft叫“myAircraft”的
  • 我有几个航点
  • Waypoint我使用 GeoSPARQL搜索最接近的
  • 我想返回最接近的标签Waypoint,它与“myAircraft”的距离Aircraft

这个查询没有任何问题。

现在我正在使用 Jena 添加自定义词汇表FunctionFactory。在我的情况下,我想实时检索在航路点位置以米为单位的气象可见度(举个例子)。为了做到这一点,我用一个visibility词创建了一个自定义词汇表。在我的情况下Label,它只有一个论点。Waypoint

然后我将查询更改如下:

它也可以毫无问题地工作,但是我在调​​试器中指出,Javavisibility函数被WaypointOntology 中的每个调用,而不仅仅是最接近的一个。如果我有很多航路点,我将不得不调用我的 Java 函数Waypoint,而理想情况下我只想为其中一个,最接近的一个。

有没有办法加速这个查询?(想法是,在现实生活中,我会为我的 Waypoint 调用一个气象服务,但我不想为每一个都这样做Waypoint,而只是我在查询中找到的那个)。

0 投票
0 回答
30 浏览

postgresql - stSPARQL / GeoSPARQL 错误 - 空间数据之间的交叉问题 - 几何

大家好,新年快乐!!我正在使用StSparql/Geosparql 端点,并且我有一个空间数据集,其中包含湖泊和河流的几何形状。我的目标是尝试找到所有相互交叉的湖泊和河流,并将它们显示在地图上。我尝试了一些简单的方法,如下所示:

或者更准确地说,像这样更精确的东西:

我也尝试在 ?river 或 ?lake 上放置 geof:buffer,但我无法收回相交的河流和湖泊的整个区域,而是出现以下错误:

org.openrdf.sail.rdbms.exceptions.RdbmsQueryEvaluationException:org.postgresql.util.PSQLException:错误:GEOSIntersects:TopologyException:侧位置冲突22.958592013338393 40.590552060768502 SELECT έ2.obj, l_k.value, NULL , NULL FROM triples_1 t0 INNER JOIN Triples_6 ε1 ON (ε1.subj = t0.subj) INNER JOIN triples_19 έ2 ON (έ2.subj = ε1.obj) INNER JOIN 有(h3.subj = ε1.obj) INNER JOIN aswkt_26 a4 ON (a4.subj = h3.obj) INNER JOIN geo_values l_river ON (l_river.id = a4.obj) INNER JOIN geo_values l_lake ON ((ST_Intersects(l_river.strdfgeo, l_lake.strdfgeo))) INNER JOIN aswkt_26 a6 ON (a6.obj = l_lake.id) INNER JOIN hasgeometry_12 h7 ON (h7.obj = a6.subj) INNER JOIN Triples_6 ε8 ON (ε8.obj = h7.subj) INNER JOIN Triples_1 t9 ON (t9.obj = ? AND t9.subj = ε8.subj) LEFT JOIN label_values l_k ON (l_k.id = έ2.obj) WHERE t0.obj = ?

我已经更改了很多东西,但是错误仍然存​​在,并且每次都与我发布的内容几乎相似。我也尝试过不同的功能,例如 geof:sfTouches 或 geof:sfContains 等...但我不明白为什么它不起作用...任何想法?

0 投票
0 回答
41 浏览

python - GeoSPARQL:计算两个线串之间的距离

GeoSPARQL 是否提供计算两个线串之间距离的功能?(编辑:我正在使用带有 GeoSPARQL 扩展的 Jena Fuseki。)

结果没有按预期工作。

线串查询,假设所有几何图形也是线串:

相反,如果我计算点之间的距离,那么这将按预期工作。

点,假设所有的几何图形也是点:

那么点到线的距离呢,反之亦然?

编辑:这是给定我的数据集的线对线搜索的结果。距离显然是错误的。这些线通常不超过几公里,但所有这些结果都显示为小于 1 公里。例如,最后一个结果显示为 0.35KM,但它在路易斯安那州,而原始点在伊利诺伊州。

同样,这些结果来自带有 GeoSPARQL 扩展的 Jena Fuseki。

指数 wkt.value 距离值
0 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(46.7082 -89.9785,46.7 -89.9892) 0.168957e0
1 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(46.699902 -89.989067,46.669998 -90.046654) -0.186799e0
2 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(41.84 -87.607,41.839 -87.605) 0.205283e0
3 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(41.865 -87.607,41.863 -87.607) 0.208798e0
4 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(46.708 -89.978,46.7096 -89.9749) 0.246481e0
5 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(41.894 -87.614,41.894 -87.612) 0.26358e0
6 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(41.904 -87.624,41.902 -87.622) 0.272661e0
7 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(41.8234 -87.5966,41.8215 -87.595) 0.278589e0
8 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(41.924 -87.63,41.914 -87.62) 0.326035e0
9 <http://www.opengis.net/def/crs/EPSG/0/27700> LINESTRING(29.226625 -90.001852,29.211947 -90.026484) -0.353463e0
0 投票
0 回答
23 浏览

sparql - GeoSPARQL:推断距离

是否可以使用 RDF 创建点之间的关系(纬度/经度),以便在加载到商店(例如带有 GeoSPARQL 扩展的 Jena Fuseki)时,将推断点之间的距离,例如以公里为单位?

否则,为了确定点之间的距离并将其添加到三重存储,我想每个点都需要一个查询(和/或带有子查询的查询基本上可以在一个单一的询问)。这听起来正确吗?

理想情况下,解决方案很快,因为可能有数百万个点。例如,我尝试在 Jena GeoSPARL Fuseki 中测量 600,000 个点到 9,000 个线串(600k x 9k 比较),每次比较大约需要 10 秒。

0 投票
0 回答
30 浏览

python - Jena Fuseki GeoSPARQL:无法删除数据

尝试从运行 GeoSPARQL 扩展的 Jena Fuseki 服务器中删除数据。

查询似乎无效。

尝试使用DELETEor时服务器的输出DELETE DATA是:

从头开始运行服务器的命令,没有空索引和 tdb 文件:

( prefix spa: <http://jena.apache.org/spatial#>)

因此,删除查询是:

这对应于按预期工作的选择查询(即正确选择应删除的行):

有任何想法吗?

编辑: 导致解析错误的删除查询不正确。这个新的删除查询不会导致错误。但是,这仍然不会删除数据。

此外,查询 URL 是/ds/query,删除 URL 是/ds/update

最后,请求在python中执行如下:

查询的响应代码delete415while 对于 select 它是200

编辑#2: 将内容类型从更改application/sparql-queryapplication/sparql-update导致状态代码为400,但仍不会按预期删除数据。

要清楚:

即使这样也行不通: