SPARQL查询资源过滤其他资源的数据

时间:2016-06-05 21:01:54

标签: filtering sparql

参加我在高级建模中的考试,并对SPARQL问题方法提出疑问。这是去年考试的考题:

问题:编写一个SPARQL查询,列出巴黎附近所有酒店的纬度和经度均在0.006以内 酒店的经度为0.01度,经度为“Hotel Saint-Germain-des-Pres”。

  • 假设您有一个RDF图,它对所有资源标题使用dc:title谓词。某些 资源代表酒店。他们有rdf:type schema:Hotel。

  • RDF图还使用schema:address谓词来描述每家酒店的地址。一个 地址资源有rdf:type schema:PostalAddress。我们会假装每个邮政地址都有 schema:city谓词,将酒店的城市作为字符串文字。

  • 图表中的每个酒店都有纬度和经度的地理坐标。

到目前为止,我已提出:

SELECT ?hotelName WHERE {
?hotel rdf:type schema:Hotel;
    dc:title "Hotel Saint-Germain-des-Pres"^^xsd:string
    geo:latitude ?targLat;
    geo:longitude ?targLong .
?hotel rdf:type schema:Hotel;
    schema:city "Paris"^^xsd:string;
    dc:title ?hotelName;
    geo:latitude ?lat
    geo:longtitude ?long .
    FILTER((geo:long <= targLong + 0.006 && geo:long >= targLong - 0.006) && (geo:lat <= targLat + 0.01 && geo:lat >= targLat - 0.01))

}

Pseudo: ?hotelName long & lat within long(0.006)/lat(0.01) of"Hotel Saint-Germain-des-Pres"

但是,当涉及到纬度和纬度时,碰到了一堵墙。经度必须在另一个资源的位置。

如何在SPARQL中显示此限制?

提前感谢您的任何答案。

0 个答案:

没有答案