[英]SPARQL and [property] of query
我正在嘗試在DBpedia中使用SPARQL從<http://dbpedia.org/ontology/Person>
查詢數據。 但是,我要匹配的屬性被列為dbp:children of
(示例在這里: http://dbpedia.org/page/Angelina_Jolie
: http://dbpedia.org/page/Angelina_Jolie
)。
但是,在進行查詢時, dbp:childrenOf
, dbo:children_of
和其他類似的方法不起作用。 我應該如何要求該財產?
謝謝!
這是我的示例查詢:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT DISTINCT ?person ?birthDate ?birthPlace ?parents
WHERE {
?person a dbo:Person .
{ ?person rdfs:label "Angelina Jolie"@en }
UNION { ?person dbp:name "Angelina Jolie"@en } .
?person dbo:birthDate ?birthDate.
?person dbo:birthPlace ?bp.
?bp rdfs:label ?birthPlace.
OPTIONAL { ?person dbp:childrenOf ?parents}
FILTER (LANG(?birthPlace)='en')
}
我要修復的行是OPTIONAL
子句。
不幸的是,我不認為安吉麗娜(Angelina)的任何孩子都擁有Wikipedia頁面(因此沒有DBpedia頁面),因此您很難通過該特定示例來解決任何答案。
這是用於檢索其他人的父母的查詢的稍有不同的版本-
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT DISTINCT ?person ?birthDate ?birthPlace ?parents
WHERE {
?person a dbo:Person .
{?person rdfs:label "Ras Barker"@en}
UNION
{?person dbp:name "Ras Barker"@en}
UNION
{?person dbo:birthName "Ras Barker"@en}
OPTIONAL { ?person dbo:birthDate ?birthDate. }
OPTIONAL { ?person dbo:birthPlace ?bp . ?bp rdfs:label ?birthPlace. }
#OPTIONAL { ?person dbo:parent ?parents }
OPTIONAL { ?parents dbo:child ?person }
FILTER (LANG(?birthPlace)='en')
}
我選擇使用dbo
謂詞child
而不是childrenOf
(不確定此謂詞是否正在使用)。 將與出生相關的內容包裝到OPTIONAL
子句中,因為您不能100%依賴具有這些謂詞的實例數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.