SPARQL查询不返回任何数据

时间:2015-12-31 19:57:07

标签: sparql dbpedia

为什么this SPARQL query会返回no data

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

SELECT *
WHERE { 
    <http://dbpedia.org/resource/Louis,_Prince_of_Condé_(1530–1569)> dbpedia-owl:abstract ?abstract            
}
LIMIT 1

如果查看the DBpedia page,则会显示此人有摘要。是否与URL中的括号有关?如果是这样,我怎么能绕过这个?

3 个答案:

答案 0 :(得分:4)

此URI不会导致与DBpedia页面相同的结果 - 出于何种原因。你可以用

看到这个
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT *
WHERE { 
    <http://dbpedia.org/resource/Louis,_Prince_of_Condé_(1530–1569)> ?p ?o          
}
LIMIT 100

但它有一只猫头鹰:与它相关 http://dbpedia.org/resource/Louis,_Prince_of_Cond%C3%A9_(1530%E2%80%931569)

这意味着如果您在查询中使用此URI,它应该按预期工作。但你确实应该对语言应用FILTER,例如英语摘要的'en'。

答案 1 :(得分:3)

正如AKSW所提到的那样,资源实际上并没有很多属性,而是与“规范”相关联。版本由猫头鹰:sameAs链接。您可以继续使用您现在正在使用的IRI,在任何方向上跟随owl:sameAs到任何相同的资源(让他们调用它们?),然后询问?s的摘要。 (然后按语言过滤并不是一个坏主意,如果适用的话。)您可以使用这样的查询来执行此操作(请注意,当前的DBpedia端点使用 dbo:,现在,不是较旧的 dbpedia-owl:):

select ?abstract where {
   <http://dbpedia.org/resource/Louis,_Prince_of_Condé_(1530–1569)> (owl:sameAs|^owl:sameAs)* ?s .
   ?s dbo:abstract ?abstract .

  filter langMatches(lang(?abstract),'en')
}

答案 2 :(得分:2)

它没有dbpedia-owl:abstract谓词。如果列出其谓词,则会找到以下属性:

http://www.w3.org/2002/07/owl#sameAs
http://xmlns.com/foaf/0.1/name
http://purl.org/dc/elements/1.1/description
http://dbpedia.org/ontology/alias
http://dbpedia.org/ontology/birthYear
http://dbpedia.org/ontology/deathYear
http://dbpedia.org/ontology/viafId
http://dbpedia.org/ontology/deathPlace
http://dbpedia.org/ontology/deathDate
http://dbpedia.org/ontology/birthPlace
http://dbpedia.org/ontology/birthDate