2017-09-13 43 views
1

我試圖檢索某些人的壽命數據。在一段時間以前住過的人的情況下,這是有問題的。例如數據集Pythagoras對於date of birth (P569)似乎具有所謂的「空白節點」。但是這個空白節點引用另一個節點earliest date (P1319),它有我可以正常工作的數據。從維基數據中的空白節點檢索數據

但由於某種原因,我無法檢索該節點。 My first try looked like this,但不知何故,結果在一個完全地空的結果集:

SELECT DISTINCT ?person ?name ?dateofbirth ?earliestdateofbirth WHERE { 
    ?person wdt:P31 wd:Q5.   # This thing is Human 
    ?person rdfs:label ?name.  # Name for better conformation 
    ?person wdt:P569 ?dateofbirth. # Birthday may result in a blank node 
    ?dateofbirth wdt:P1319 ?earliestdateofbirth # Problem: Plausbible Birth 
} 

然後我發現了另一個語法使用?person wdt:P569/wdt:P1319 ?earliestdateofbirth爲某種用於明確導航我上面but this also ends with a empty result set沒有「捷徑」 -syntax的那個建議。

SELECT DISTINCT ?person ?name ?dateofbirth ?earliestdateofbirth WHERE { 
    ?person wdt:P31 wd:Q5.   # Is Human 
    ?person rdfs:label ?name.  # Name for better conformation 
    ?person wdt:P569/wdt:P1319 ?earliestdateofbirth. 
} 

所以我如何訪問一個空節點引用的節點(在我的情況特別是最早的生日)在維基數據?

回答

2

但這個空白節點引用另一個節點...

事情略有不同。 earliest date財產不是_:t550690019的財產,而是聲明wd:Q10261 wdt:P569 _:t550690019的財產。

在Wikidata data model中,這些註釋使用qualifiers表示。

Wikidata data model

您的查詢應該是:

SELECT DISTINCT ?person ?name ?dateofbirth ?earliestdateofbirth WHERE { 
    VALUES (?person) {(wd:Q10261)} 
    ?person wdt:P31 wd:Q5.   # --Is human 
    ?person rdfs:label ?name.  # --Name for better conformation 
    ?person p:P569/pq:P1319 ?earliestdateofbirth. 
    FILTER (lang(?name) = "en") 
} 

Try it!


順便說一句,時間精度(當出生日期被稱爲時使用)尚未另一個限定詞:

SELECT ?person ?personLabel ?value ?precisionLabel { 
    VALUES (?person) {(wd:Q859) (wd:Q9235)} 
    ?person wdt:P31 wd:Q5 ; 
      p:P569/psv:P569 [ wikibase:timeValue ?value ; 
           wikibase:timePrecision ?precisionInteger ] 
    { 
    SELECT ?precision (xsd:integer(?precisionDecimal) AS ?precisionInteger) { 
    ?precision wdt:P2803 ?precisionDecimal . 
    } 
    } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } 
} 

Try it!

+0

我覺得自己很蠢,但我看不出它了:它的工作,但到底是什麼您的查詢做不同? 'FILTER'和'VALUES'似乎只是限制了它。 –

+0

仔細看:)。我會在幾分鐘內解釋,現在我正在尋找良好的鏈接。 –

+0

啊,你對'P569'和'P1319'使用不同的前綴,我會很高興有一些好的鏈接! –