Dbpedia上的“DESCRIBE”SPARQL查询

时间:2012-09-23 17:35:24

标签: rdf sparql dbpedia

我想使用“DESCRIBE”查询将dbpedia数据提取到RDF。

例如,如果我输入:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX db: <http://dbpedia.org/ontology/> 
PREFIX prop: <http://dbpedia.org/property/>
DESCRIBE ?movie ?author ?genre
WHERE { 
?movie rdf:type db:Film ;
prop:author ?author ;
prop:genre ?genre .
}
LIMIT 50
OFFSET 0

一切正常。

但是,如果我添加actor和duration属性:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX db: <http://dbpedia.org/ontology/> 
PREFIX prop: <http://dbpedia.org/property/>
DESCRIBE ?movie ?author ?genre ?actor ?duration
WHERE { 
?movie rdf:type db:Film ;
prop:author ?author ;
prop:genre ?genre;
prop:actor ?actor;
prop:duration ?duration .
}
LIMIT 50
OFFSET 0

我得到空的RDF。

这是电影的架构:http://schema.org/Movie

任何?

1 个答案:

答案 0 :(得分:2)

我认为这是输入问题。假设您正在通过the SPARQL web interface测试dbpedia,您可以通过

获取内容
  • durationgenre标记为可选(因此不需要指定)
  • 使用dbpprop:starring代替dbpprop:actor

以下查询

DESCRIBE ?movie ?author ?genre ?actor ?duration
WHERE { 
  ?movie a dbpedia-owl:Film ;
    dbpprop:author ?author ;
    dbpprop:starring ?actor .
  OPTIONAL {
   ?movie dbpprop:duration ?duration ;
     dbpprop:genre ?genre
  }
}
LIMIT 5
OFFSET 0

会得到你some graphs。另请注意,我认为您应该使用http://schema.org/前缀来使用该电影模式(但它们似乎不会在dbpedia数据集中如此深入地使用)

hereSELECT而不是DESCRIBE的结果(为什么你想要DESCRIBE结果格式?) - 我认为这是有道理的。

我想我也发现了一些有趣的东西。如果您查询

DESCRIBE dbpparam:starring

get an interesting error message

  

谓词的错误表达式   &#39; http://www.w3.org/2002/07/owl#equivalentProperty' ;: schema:actors

我认为这就是为什么schema:actor(也许dbpprop:actor也无效)的原因。这似乎是索引程序的一个错误。