[英]SPARQL query returns no data
為什么此SPARQL查詢不返回任何數據 ?
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
如果您查看DBpedia頁面 ,它會顯示該人員有摘要。 是否與URL中的括號有關? 如果是這樣,我怎么能繞過這個?
這個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'。
正如AKSW所提到的,資源實際上並沒有很多屬性,而是通過owl: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')
}
它沒有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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.