问题标签 [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 - 在 GeoSPARQL-Jena (Fuseki) 中使用 tdbloader 和 tdbquery
使用 Jena,以下内容可以加载和查询数据,而无需运行任何服务器:
是否可以在 GeoSPARQL-Jena 中类似地加载和查询数据,即无需运行服务器?由于 GeoSPARQL-Jena 使用了 Fuseki,而 Fuseki 似乎只在服务器模式下运行,我认为没有。
到目前为止我所拥有的:
java - 在 Jena 中使用自定义函数时优化 SPARQL 查询
我使用 Jena 在 Owl Ontology 上有以下 SPARQL 查询:
这个想法是:
- 我有一个
Aircraft
叫“myAircraft”的 - 我有几个航点
Waypoint
我使用 GeoSPARQL搜索最接近的- 我想返回最接近的标签
Waypoint
,它与“myAircraft”的距离Aircraft
这个查询没有任何问题。
现在我正在使用 Jena 添加自定义词汇表FunctionFactory
。在我的情况下,我想实时检索在航路点位置以米为单位的气象可见度(举个例子)。为了做到这一点,我用一个visibility
词创建了一个自定义词汇表。在我的情况下Label
,它只有一个论点。Waypoint
然后我将查询更改如下:
它也可以毫无问题地工作,但是我在调试器中指出,Javavisibility
函数被Waypoint
Ontology 中的每个调用,而不仅仅是最接近的一个。如果我有很多航路点,我将不得不调用我的 Java 函数Waypoint
,而理想情况下我只想为其中一个,最接近的一个。
有没有办法加速这个查询?(想法是,在现实生活中,我会为我的 Waypoint 调用一个气象服务,但我不想为每一个都这样做Waypoint
,而只是我在查询中找到的那个)。
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 等...但我不明白为什么它不起作用...任何想法?
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 |
sparql - GeoSPARQL:推断距离
是否可以使用 RDF 创建点之间的关系(纬度/经度),以便在加载到商店(例如带有 GeoSPARQL 扩展的 Jena Fuseki)时,将推断点之间的距离,例如以公里为单位?
否则,为了确定点之间的距离并将其添加到三重存储,我想每个点都需要一个查询(和/或带有子查询的查询基本上可以在一个单一的询问)。这听起来正确吗?
理想情况下,解决方案很快,因为可能有数百万个点。例如,我尝试在 Jena GeoSPARL Fuseki 中测量 600,000 个点到 9,000 个线串(600k x 9k 比较),每次比较大约需要 10 秒。
python - Jena Fuseki GeoSPARQL:无法删除数据
尝试从运行 GeoSPARQL 扩展的 Jena Fuseki 服务器中删除数据。
查询似乎无效。
尝试使用DELETE
or时服务器的输出DELETE DATA
是:
从头开始运行服务器的命令,没有空索引和 tdb 文件:
( prefix spa: <http://jena.apache.org/spatial#>
)
因此,删除查询是:
这对应于按预期工作的选择查询(即正确选择应删除的行):
有任何想法吗?
编辑: 导致解析错误的删除查询不正确。这个新的删除查询不会导致错误。但是,这仍然不会删除数据。
此外,查询 URL 是/ds/query
,删除 URL 是/ds/update
。
最后,请求在python中执行如下:
查询的响应代码delete
是415
while 对于 select 它是200
。
编辑#2:
将内容类型从更改application/sparql-query
为application/sparql-update
导致状态代码为400
,但仍不会按预期删除数据。
要清楚:
即使这样也行不通: