【问题标题】:Determining whether DBpedia resources are Cities or Countries确定 DBpedia 资源是城市还是国家
【发布时间】:2014-06-06 10:28:33
【问题描述】:

我使用 DBpedia 提取有关具有给定 IATA 代码的机场的信息。我正在使用的查询如下。我得到的结果包括一个机场的两行;一方面,城市是位置,另一方面,国家是位置。如何检索位置的类型(无论是城市还是国家)?这是我正在使用的查询:

PREFIX dbpprop: <http://dbpedia.org/property/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT * WHERE { 
  ?subject rdf:type dbpedia-owl:Airport;
           rdfs:label ?label;
           dbpedia-owl:location ?location;
           dbpedia-owl:iataLocationIdentifier ?iata;
           geo:lat ?latitude;
           geo:long ?longitude.
  FILTER (lang(?label) = 'en' and regex(?iata, "MGQ"))
}

SPARQL results

【问题讨论】:

    标签: rdf sparql semantic-web dbpedia


    【解决方案1】:

    一般来说,资源可以有很多种类型,因为事物有很多谓词rdf:type的值。在这种情况下,听起来您想要检索关联的城市或国家类型(如果存在)。如果您查看资源http://dbpedia.org/resource/Somalia,您可以看到它的类型为dbpedia-owl:Country。对于http://dbpedia.org/resource/Mogadishu,没有城市类型,但有定居点,这可能最适合识别城市。

    您可以使用values 为变量指定一组允许值,并使用optional 获取一些匹配项(如果存在)。例如,

    select * where {
      ?subject rdf:type dbpedia-owl:Airport;
               rdfs:label ?label;
               dbpedia-owl:location ?location;
               dbpedia-owl:iataLocationIdentifier ?iata;
               geo:lat ?latitude;
               geo:long ?longitude.
      FILTER (langMatches(lang(?label),'en') && contains(?iata, "MGQ"))
    
      optional {
        values ?locationType { dbpedia-owl:Settlement dbpedia-owl:Country } 
        ?location a ?locationType
      }
    }
    

    SPARQL results

    另外请注意,我使用langMatches 来检查语言标签;这是正确的方法。由于正则表达式除了检查字符串中是否出现子字符串之外没有做任何其他事情,所以我将其更改为contains

    对于它的价值,我不知道我以前是否在optional 模式中使用过这个values,但我更喜欢它,我希望它将来可能有用。将values 放在optional 之外 没有相同的效果,因为如果你这样做,那么?locationType 总是会得到一个值,只是optional部分可能不匹配。也就是说,如果您将 values 放在 optional 之外,您将得到四个结果行:2 个位置 × 2 个位置类型 = 4 个组合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-15
      • 2017-10-20
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多