2

我想使用“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

一切正常。

但是,如果我添加演员和持续时间属性:

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

任何人?

4

1 回答 1

2

我认为这是输入的问题。假设您正在通过SPARQL Web 界面测试 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

会给你一些图表。另请注意,我认为您应该引入http://schema.org/前缀以使用该电影模式(但它们在 dbpedia 数据集中似乎没有被如此深入地使用)

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

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

DESCRIBE dbpparam:starring

收到一条有趣的错误消息

谓词“http://www.w3.org/2002/07/owl#equivalentProperty”的错误表达式:schema:actors

我认为这就是为什么schema:actor(也许dbpprop:actor也是)不起作用的原因。索引程序似乎有错误。

于 2012-09-23T22:52:54.813 回答