1

我正在尝试检索 dbpedia-owl:influenced in this page 例如的值:Andy_Warhol

我写的查询是:

PREFIX rsc : http://dbpedia.org/resource
PREFIX dbpedia-owl :http://dbpedia.org/ontology

SELECT ?o WHERE {
   rsc:Andy_Warhol dbpedia-owl:infuenced ?o .
}

但它是空的。

奇怪的是,当我对来自本体类型(如“birthPlace”)的另一个属性进行相同的查询时,sparql 引擎会返回结果:

SELECT ?o WHERE {
  rsc:Andy_Warhol dbpedia-owl:birthplace ?o .
}

这是另一个资源的链接: dbpedia.org/resource/Pittsburgh

我只是很困惑如何编写这个查询?

4

2 回答 2

2

除了@Joshua 的回答中解决的几个形式错误之外,还有一个语义问题,即您正在寻找的属性 - 在这种情况下 - 似乎是在受影响的实体上找到的。

这个查询可能会给你想要的结果

PREFIX rsc: <http://dbpedia.org/resource/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>

SELECT ?s WHERE {
    ?s dbpedia-owl:influencedBy rsc:Andy_Warhol .
}

运行查询

于 2013-05-13T15:53:15.257 回答
1

这里有几个问题。一是所介绍的 SPARQL 不正确。我进行了编辑以使前缀语法合法,但前缀仍然是错误的(它们没有以最后的斜杠结尾)。http://dbpedia.org/resourceAndy_Warhol毕竟你不想被查询;您要查询http://dbpedia.org/resource/Andy_Warhol. DBpedia 的一些标准名称空间列在其SPARQL 端点上。使用这些命名空间和 SPARQL 端点,我们可以通过这个查询请求所有作为主题的三元组:http://dbpedia.org/resource/Andy_Warhol

SELECT * WHERE {
  dbpedia:Andy_Warhol ?p ?o .
}

在那里产生的结果中,您会看到使用http://dbpedia.org/ontology/birthPlace(注意大写字母 P in birthPlace),但您不会看到任何带有 predicate 的三元组http://dbpedia.org/ontology/infuenced,因此您的第一个查询没有结果是有道理的。你有什么理由认为应该有一些结果吗?

于 2013-05-13T14:49:39.233 回答