Rdf Dbpedia上的“描述”SPARQL查询

Rdf Dbpedia上的“描述”SPARQL查询,rdf,sparql,dbpedia,Rdf,Sparql,Dbpedia,我想使用descripe查询将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

我想使用descripe查询将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是空的

以下是电影的模式:


有人吗?

我想这是输入的问题。假设您正在通过测试againts dbpedia,您可以通过

将持续时间和类型标记为可选,因此无需指定 使用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数据集中的使用似乎并不深入

并且是选择而不是描述的结果为什么要使用描述结果格式?-我认为这是有道理的

我想我也发现了一些有趣的事情。如果你质疑

DESCRIBE dbpparam:starring

谓词的错误表达式 'http://www.w3.org/2002/07/owlequivalentProperty':schema:actors


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

您能提供RDF输入吗?我不确定您要我做什么。对不起,我对rdf和sparql有点陌生:你有本地文件吗?您是否在dbpedia站点上在线测试您的查询?我正在使用所选的RDF/XML结果格式进行查询。正如我所说,第一个查询返回带有一些数据的rdf,而第二个查询返回空rdf。谢谢,现在这样更好了。我需要描述结果,因为我想将该rdf插入sql数据库,并在我的RESTful服务项目中使用它。我可以用select结果格式吗?我认为select是一种方法。description以代理定义的方式返回数据,正如您所看到的,这在人类探索事物时非常有用,但这使得程序很难对结果执行有用的操作。来自SELECT的结果集再次非常适合SQL数据库,只是为了确保,我可以使用SELECT查询,然后使用JENA RDF API将结果RDF导入SQL数据库?不知何故,我认为我必须使用descripe:descripe输出是非标准的,而且还包含不需要的信息。当一个人想要检查一个数据库时,它很有用,但是为了给一个程序提供信息,你必须使用SELECT。再见,谢谢。然而,我不能推翻你的答案,15声誉是必要的,我没有:/