H:::SPARQL

H_6. fn을 이용한 현재 나이 계산

joyHong 2012. 6. 5. 17:10

나이는 시간이 흐름에 따라 변하기 때문에 instance 값으로 지정하여 넣기가 애매하다.

따라서 출생년도를 통해 계산하도록 꼼수(?)를 부려보았다.


----------------------------------------------

SELECT ?s ?age 

WHERE {

    ?s ec:birthday ?bday .

    BIND (fn:substring(str(?bday), 0, 4) AS ?y) .

    BIND (fn:substring(str(afn:now()), 0, 4) AS ?n) .

    BIND (((xsd:int(?n) - xsd:int(?y)) + 1) AS ?age) .

}


----------------------------------------------

ec:birthday는 xsd:date 형으로서 

현재 날짜와 birthday의 앞 4자리를 취해

나이를 계산하는 쿼리..