0

我启发了这篇文章并使用 geosparql 本体创建了一个本体。创建了两个名为 Area 和 Park 的类作为 geosparql 的 Feature 类的子类。本体中添加了 3 个区域实例和 1 个公园实例。然后,几何实例被创建(asWKT)作为 geosparql 的 Polygon 类的子类。并且几何实例通过 hasGeometry 对象属性(创建的本体和实例)与 Park 和 Area 实例相关联。

我试图进行拓扑查询以找出 Park 实例中的 Area 实例。因此,我使用 Protégé 4.3 的 sparql 查询插件运行了以下查询。

前缀 geosparql:http ://www.opengis.net/ont/geosparql# 前缀 su:http ://www.example.org/su#

选择 ?x ?y WHERE { ?xa su:Area ; geosparql:hasGeometry ?xgeo 。?ya su:公园; geosparql:hasGeometry ?ygeo 。?xgeo geosparql:sfWithin ?ygeo 。}

没有结果返回,但我知道 Park 实例中有两个 Area 实例。我没有发现问题。我不使用 geosparql 和 protégé 查询拓扑关系吗?

4

1 回答 1

1

问题是您没有导入sfWithin实体的“好”用途。

http://www.opengis.net/ont/geosparql#sfWithin和之间有区别 http://www.opengis.net/def/function/geosparql/sfWithin

实际上,我还不明白如何在 Protégé 中进行此声明,对此我感到抱歉。

如果你真的需要使用这样的拓扑查询,你可以使用GraphDB,它为 GeoSPARQL 实现了一个很好的工作插件。

于 2018-03-08T15:07:52.153 回答