我是GeoSPARQL的新手。我下载了本体,并将其导入Protégé,并在GeoSPARQL用户指南附录B (PDF)之后创建了类和个人。
geof:sf函数时,我不会得到任何结果。发布于 2013-09-03 15:20:53
我没有使用GeoSPARQL,所以我不能解决这些问题,但是,首先,一个类似的查询
SELECT ?geom WHERE {
?x my:exactGeometry ?xGeom .
?xGeom geo:asWKT ?geom .
}默认情况下,将为图模式匹配的每一种方式返回?geom的一个值。例如,如果图中包含
_:x1 my:exactGeometry _:xGeom1 .
_:xGeom1 geo:asWKT _:geom .
_:x2 my:exactGeometry _:xGeom2 .
_:xGeom2 geo:asWKT _:geom .因此,有两个匹配的模式(一个与?x = _:x1和?xGeom = _:xGeom1匹配,另一个与?x = _:x2和?xGeom = _:xGeom2匹配),您将在结果中看到两次_:geom。您可以在查询中使用distinct删除这些类型的副本:
SELECT DISTINCT ?geom WHERE {
?x my:exactGeometry ?xGeom .
?xGeom geo:asWKT ?geom .
}第二点,正如我提到的,我不是GeoSPARQL用户,但我怀疑规范仅仅定义了这些扩展函数应该做什么。除非您下载了一些代码(例如Protégéplugin),否则我看不出这些函数的实现是在哪里提供的。SPARQL扩展必须由SPARQL端点实现提供;它们不是在您下载的本体或查询的数据中定义的。维基百科关于GeoSPARQL的文章有一个实现部分,其中列出了三个支持GeoSPARQL的实现。其中之一是你提到的议会,但你没有提到这些职能是在Protégé起作用,还是在议会中发挥作用。
https://stackoverflow.com/questions/18573336
复制相似问题