2

我对 GeoSPARQL 很陌生。我下载了本体,将其导入 Protégé,并按照GeoSPARQL 用户指南 (PDF) 中的附录 B创建了类和个人。

  1. 当使用议会请求 WKT 时,值被重复,这在 Protégé 中没有发生:

    SELECT ?geom 
    WHERE {
        ?x my:exactGeometry ?xGeom .
        ?xGeom geo:asWKT ?geom .
    }
    

    结果显示每个值 2 次。

  2. geof:sf执行函数时我没有得到任何结果。

4

1 回答 1

0

我没有使用过 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 = _:x1and ?xGeom = _:xGeom1,另一个与?x = _:x2and ?xGeom = _:xGeom2),您将_:geom在结果中看到两次。distinct您可以在查询中使用删除这些类型的重复项:

SELECT DISTINCT ?geom WHERE {
    ?x my:exactGeometry ?xGeom .
    ?xGeom geo:asWKT ?geom .
}

第二点,正如我所提到的,我不是 GeoSPARQL 用户,但我怀疑规范只是定义了这些扩展函数应该做什么。除非您下载了一些代码(例如,Protégé 插件),否则我看不到这些功能的实现会在哪里提供。SPARQL 扩展必须由 SPARQL 端点实现提供;它们没有在您下载的本体或您查询的数据中定义。关于 GeoSPARQL 的 Wikipedia 文章有一个实现部分,其中列出了三个支持 GeoSPARQL 的实现。其中之一是你提到的议会,但你没有提到这些职能是否在 Protégé 或​​议会中不起作用。

于 2013-09-03T15:20:53.720 回答