【问题标题】:How to select only unique latitude and longtitude for one city given multiple options?在给定多个选项的情况下,如何仅为一个城市选择唯一的纬度和经度?
【发布时间】:2012-07-08 11:53:30
【问题描述】:

我有以下疑问:

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>

SELECT DISTINCT ?person1 ?birthplace1 ?person2 ?birthplace2 
                ?lat1 ?long1 ?lat2 ?long2
WHERE 
{
  ?person1 a dbpedia-owl:Person ;
           dbpedia-owl:birthPlace ?birthplace1 ;
           dbpedia-owl:influenced ?person2 .
  ?person2 dbpedia-owl:birthPlace ?birthplace2 .

  ?birthplace1 a dbpedia-owl:City .
  ?birthplace2 a dbpedia-owl:City .

  optional {
    ?birthplace1 geo:lat ?lat1 .
    ?birthplace1 geo:long ?long1 .

    ?birthplace2 geo:lat ?lat2 .
    ?birthplace2 geo:long ?long2 .
   }
}

当我在 iSparql 中查询它时,它会拉出一个长列表。见Perma-Link。我只想要一个城市的个人纬度/经度。没关系,我只想要一个独特的。

另外,谁能告诉我为什么这在 Snorql 中不起作用?谢谢。

【问题讨论】:

标签: latitude-longitude geo dbpedia


【解决方案1】:

你需要GROUP你的结果BY个人和出生地,然后采样纬度和经度值。这只需要对您的 SPARQL 查询稍作更改。现在有

GROUP BY ?person1 ?birthplace1 ?person2 ?birthplace2

在底部,经纬度的投影形式包括SAMPLE

SELECT DISTINCT ?person1 ?birthplace1 ?person2 ?birthplace2 
                (SAMPLE(?lat1) as ?lat1) (SAMPLE(?long1) as ?long1)
                (SAMPLE(?lat2) as ?lat2) (SAMPLE(?long2) as ?long2)

这是整个查询:

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>

SELECT DISTINCT ?person1 ?birthplace1 ?person2 ?birthplace2 
                (SAMPLE(?lat1) as ?lat1) (SAMPLE(?long1) as ?long1)
                (SAMPLE(?lat2) as ?lat2) (SAMPLE(?long2) as ?long2)
WHERE 
{
  ?person1 a dbpedia-owl:Person ;
           dbpedia-owl:birthPlace ?birthplace1 ;
           dbpedia-owl:influenced ?person2 .
  ?person2 dbpedia-owl:birthPlace ?birthplace2 .

  ?birthplace1 a dbpedia-owl:City .
  ?birthplace2 a dbpedia-owl:City .

  optional {
    ?birthplace1 geo:lat ?lat1 ;
                 geo:long ?long1 .

    ?birthplace2 geo:lat ?lat2 ;
                 geo:long ?long2 .
   }
}
GROUP BY ?person1 ?birthplace1 ?person2 ?birthplace2

SPARQL results

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多