首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从DBpedia获取基于图书的电影

从DBpedia获取基于图书的电影
EN

Stack Overflow用户
提问于 2018-06-03 20:51:55
回答 1查看 281关注 0票数 0

我是第一次接触SPARQL,正在尝试从dbpedia获取一部改编自特定书籍的电影。这就是我到目前为止所知道的:

PREFIX onto: <http://dbpedia.org/ontology/>
SELECT *
WHERE 
{
  <http://dbpedia.org/page/2001:_A_Space_Odyssey> a ?type.
  ?type onto:basedOn ?book .
  ?book   a  onto:Book 
}

我得不到任何结果。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 23:27:21

在使用任何web资源时,您需要确保声明了正确的前缀。如果您从DBpedia SPARQL端点进行查询,那么您可以直接使用dbo:basedOn,甚至不需要声明它,因为它在predefined中。或者,如果您想使用自己的,或者如果您正在使用另一个SPARQL客户机,请确保您为该属性选择的任何短名称都声明了http://dbpedia.org/ontology/的前缀。

然后,首先,为了获得更多的结果,您可能不会限制这个三元模式的主题的类型,因为可能有一些电影实际上不是这样的类型。因此,像这样的查询

select distinct *

{

?movie dbo:basedOn ?book .

?book a dbo:Book .

}

会给你带来很多好的结果,但不是全部。例如,示例中的资源将丢失。您可以使用如下查询轻松地检查和测试这两个资源之间的可用属性:

select  ?p

{
{<http://dbpedia.org/resource/2001:_A_Space_Odyssey_(film)> ?p <http://dbpedia.org/resource/2001:_A_Space_Odyssey> }

UNION

{ <http://dbpedia.org/resource/2001:_A_Space_Odyssey> ?p <http://dbpedia.org/resource/2001:_A_Space_Odyssey_(film)>}
}

您只会得到一个结果:http://www.w3.org/2000/01/rdf-schema#seeAlso

(请注意,URI使用'resource',而不是'page')

然后,您可以使用here描述的方法搜索两个资源之间的任何路径,或者找到其他模式的组合,这将增加结果的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50666623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档