簡體   English   中英

查詢sparql中的年齡

[英]Query for age in sparql

我正在寫一個查詢,計算知道某人的生日和死亡日期的年齡。 我想請一位特定的藝術家(在本例中為邁克爾·傑克遜)。 問題是我無法在以下查詢中重用生日和死亡日期:

select ?artist ?age  
where { 
  dbr:Michael_Jackson dbo:birthDate ?birthdate .

  dbr:Michael_Jackson dbo:deathDate ?deathdate . 

  bind( year(?deathdate) - year(?birthdate) - if(month(?deathdate)<month(?birthdate) || (month(?deathdate)=month(?birthdate) && day(?deathdate<day(?birthdate)),1,0) as ?age)
}

有人知道如何解決這個問題嗎?

我對查詢進行了一些編輯,以獲取要針對其進行計算的值 -

birthdate                                              deathdate
"1958-8-29"^^<http://www.w3.org/2001/XMLSchema#date>   "2009-6-25"^^<http://www.w3.org/2001/XMLSchema#date>

您遇到的錯誤是因為它們不是有效的xsd:date文字-本月需要2位數字。

該數據問題已在Wikipedia和DBpedia-Live等上得到修復,如您所見 ,您的查詢在此起作用。 DBpedia-Live數據還有其他問題(例如,當您只想查看最新的摘要時,將顯示多個版本的摘要),但這也許可以解決您的迫切需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM