[英]SPARQL DBPedia query for seating capacity, optimize and remove duplicates
[英]Geting all possible predicates between Entity types in DBpedia using Sparql
我試圖獲取兩種實體類型之間可能存在的所有可能的謂詞。 以下是兩個具有Person
類型的實體的示例。
SELECT distinct ?p
WHERE { ?url1 rdf:type <http://dbpedia.org/ontology/Person> .
?url2 rdf:type <http://dbpedia.org/ontology/Person> .
?url1 ?p ?url2 .
FILTER(STRSTARTS(STR(?p), "http://dbpedia.org/ontology")).
}
但是,結果輸出包含謂詞,例如birthPlace
, deathPlace
,它們肯定不能在兩種Person
類型之間。
我是否缺少任何約束以獲取更多邏輯輸出?
不知道提供它作為答案是否值得...
您只缺少一點:
由於DBpedia中的數據是自動從Wikipedia中提取的,因此它不是完美無缺的。
您可以檢查為什么在使用時會發生這種情況
SELECT * WHERE {
?url1 rdf:type <http://dbpedia.org/ontology/Person> .
?url2 rdf:type <http://dbpedia.org/ontology/Person> .
?url1 <http://dbpedia.org/ontology/birthPlace> ?url2 .
}
limit 10
除其他外,您得到
+-------------------------------------------+------------------------------------------------------------------------+
| url1 | url2 |
+-------------------------------------------+------------------------------------------------------------------------+
| http://dbpedia.org/resource/Analía_Núñez | http://dbpedia.org/resource/David |
| http://dbpedia.org/resource/Jorvan_Vieira | http://dbpedia.org/resource/Luís_Alves_de_Lima_e_Silva,_Duke_of_Caxias |
| http://dbpedia.org/resource/Adebayo_Lawal | http://dbpedia.org/resource/Offa_of_Mercia+ |
| ... | ... |
+-------------------------------------------+------------------------------------------------------------------------+
讓我們看一下http://dbpedia.org/resource/Analía_Núñez :
DESCRIBE <http://dbpedia.org/resource/Analía_Núñez>
其中,它返回三元組
dbr:Analía_Núñez dbo:birthPlace dbr:Panama ,
dbr:David ,
<http://dbpedia.org/resource/David,_Chiriqu\u00ED> .
您可以看到三個出生地。 雖然它應該是http://dbpedia.org/resource/David,_Chiriqu%C3%AD ,但是您可以從Wikipedia文章中有關AnalíaNúñez的信息框中提取信息時看到錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.