【问题标题】:DBPedia: trouble with dbo:region propertyDBPedia:dbo:region 属性有问题
【发布时间】:2020-03-06 16:34:58
【问题描述】:

我正在尝试使用 SPARQL 查询从 DBPedia 收集所有在美国活跃的音乐家。我尝试了以下查询,但它返回一个空列表:

PREFIX dbp: <http://dbpedia.org/property/>
SELECT distinct ?person where {?person a dbo:MusicalArtist . ?person dbp:region "United States"} LIMIT 100

我不确定这里出了什么问题。我已经尝试在 foaf:name 等其他属性上匹配字符串值而没有任何问题,所以我不确定为什么“区域”属性不起作用。

【问题讨论】:

  • 为什么你认为音乐家有这样的属性?我的意思是,你检查过任何音乐家吗?我不认为存在这样的属性值。为什么你认为它必须是字符串文字而不是 URI?
  • 我的问题基于这样的音乐家:dbpedia.org/page/Nicki_Minaj 您可以看到“dbp:region”的值是“United States”。
  • 真的。但许多其他人没有。这样你不会得到完整的结果。无论如何,问题是缺少文字类型:PREFIX dbp: &lt;http://dbpedia.org/property/&gt; SELECT distinct ?person where {?person a dbo:MusicalArtist . ?person dbp:region "United States"^^rdf:langString} LIMIT 100

标签: sparql dbpedia


【解决方案1】:

对我来说,这段代码有效 -

PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT distinct ?person where 
{
    ?person a dbo:MusicalArtist . 
    ?person dbp:region "United States"@en .
} 
LIMIT 100

【讨论】:

    【解决方案2】:

    解决了!感谢上面 cmets 中的@UninformedUser。

    我们只需要指定字符串匹配的文字类型。

    PREFIX dbp: <http://dbpedia.org/property/> 
    SELECT distinct ?person where {?person a dbo:MusicalArtist . ?person dbp:region "United States"^^rdf:langString} LIMIT 100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2017-11-07
      • 2013-07-28
      • 1970-01-01
      相关资源
      最近更新 更多