我想使用“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
任何?
答案 0 :(得分:2)
我认为这是输入问题。假设您正在通过the SPARQL web interface测试dbpedia,您可以通过
获取内容duration
和genre
标记为可选(因此不需要指定)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数据集中如此深入地使用)
而here是SELECT
而不是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
也无效)的原因。这似乎是索引程序的一个错误。