我启发了this篇文章,并使用geosparql本体创建了一个本体论。创建了名为Area和Park的两个类作为geosparql的Feature类的子类。 3个区域实例和1个Park实例被添加到本体中。然后,创建几何实例(asWKT)作为Geosparql的Polygon类的子类。几何实例通过hasGeometry对象属性(The created ontology and instances)与Park和Area实例相关联。
我尝试进行拓扑查询以找出Park实例中的哪些Area实例。所以,我使用Protégé4.3的sparql查询插件运行了以下查询。
PREFIX geosparql:http://www.opengis.net/ont/geosparql# PREFIX su:http://www.example.org/su#
SELECT?x?y 在哪里{ ?x su:Area; geosparql:hasGeometry?xgeo。 苏:公园; geosparql:hasGeometry?ygeo。 ?xgeo geosparql:sfWithin?ygeo。 }
没有结果返回但我知道Park实例中有两个Area实例。我没有发现问题。我不使用geosparql和protégé查询拓扑关系吗?
答案 0 :(得分:1)
问题是你没有导入sfWithin
实体的“好用”。
之间存在差异
http://www.opengis.net/ont/geosparql#sfWithin
和http://www.opengis.net/def/function/geosparql/sfWithin
。
实际上,我还不明白如何在Protégé中继续这个陈述,我很抱歉。
如果你真的需要使用这样的拓扑查询,你可以改用GraphDB,这为GeoSPARQL实现了一个很好的工作插件。