2013-05-13 41 views
1

我试图找回DBpedia中,猫头鹰的价值:在此页面如影响:Andy_WarholSPARQL空的结果:影响物业

我写的查询是:

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

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

但它是空的。

奇怪的是,当我从本体类型,如“出生地”的另一个属性相同的查询时,SPARQL引擎给出结果回:

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

这是其他资源的链接: dbpedia.org/resource/Pittsburgh

我只是困惑如何编写此查询?

+0

在哪里,你是如何运行这些查询?当我在[DBpedia SPARQL端点](http://dbpedia.org/sparql)上运行它们时,我没有得到任何查询的结果。 – 2013-05-13 14:39:44

+0

它看起来像你的前缀是不好的。你不想查询'http:// dbpedia.org/resourceAndy_Warhol';你想要查询'http:// dbpedia.org/resource/Andy_Warhol'。 – 2013-05-13 14:43:16

回答

1

这里有几个问题。一个是SPARQL如前所述不正确。我编辑的前缀语法是合法的,但前缀仍然是错误的(它们没有以最终斜杠结尾)。毕竟你不想查询http://dbpedia.org/resourceAndy_Warhol;你想查询http://dbpedia.org/resource/Andy_Warhol。 DBpedia的某些standard namespacesSPARQL endpoint上列出。使用这些名称和SPARQL端点,我们可以要求所有http://dbpedia.org/resource/Andy_Warhol与此查询主题的三元组:

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

在那里生产的结果,你会看到使用http://dbpedia.org/ontology/birthPlace(注一在birthPlace的资本P),但你不会看到任何三元组与谓词http://dbpedia.org/ontology/infuenced,所以它是有道理的,你的第一个查询没有结果。你有没有理由认为应该有一些结果?

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 . 
} 

run query