2017-02-28 22 views
0

我做了我的第一個關於金正恩的RDF(龜)文件。我想過濾我的查詢結果,以便只顯示他在1984年之前出生的男性兄弟姐妹,但我遇到了麻煩,因爲這些出生年份顯示爲文字。有誰知道我能如何解決這個問題?SPARQL - 如何將文字轉換爲整數,以便可以過濾我的查詢結果?

RDF龜數據

(前綴去掉,因爲我需要鏈接多點聲望)

dbp:Kim_Jong-un dbp-ont:sibling wiki-en:Kim_Yo-jong. 
wiki-en:Kim_Yo-jong dbp-ont:birthYear  "1987^^xsd:gYear"; 
foaf:name "Kim Yo-jong"; 
foaf:gender "female". 

SPARQL查詢

SELECT * 
    WHERE { 

    dbp:Kim_Jong-un dbp-ont:sibling ?sibling. 
    ?sibling foaf:gender ?gender. 
    ?sibling foaf:name ?name. 
    ?sibling dbp-ont:birthYear ?birthYear. 
    FILTER (?gender="male", ?birthYear<"1984") 

} 

回答

0

兩個選項:

  1. 比較文字與給定爲字符串STR(?birthYear) < "1984"值的詞彙形式(這由數據類型的語義禁用比較)

  2. 使用XPath構造函數來獲取字面對於給定的字符串值(?birthYear < xsd:gYear("1984"))

並且不要忘記用&&來結合FILTER中的多個表達式!

相關問題