H:::SPARQL

H_11. IF를 통한 분류

joyHong 2014. 1. 23. 11:24

레이블에 따라서 가, 나, 다...등으로 구분하고자할 때 

regex, if, bind를 통하여

질의가 가능하다.


쿼리

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

prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

select * where { 

 ?s rdfs:label ?o  . 

filter(lang(?o)='ko')

bind ( 

if( regex(str(?o), '^[가-깋]'),'가',

if( regex(str(?o), '^[나-닣]'),'나',

if( regex(str(?o), '^[다-딯]'),'다','none'))

) as ?t )

} limit 50 

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


설명

bind(xxx as 변수)

if(조건, true일 경우값, false일 경우값)



결과

?s     ?o            ?t

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

x    기상@ko        가

t     난초@ko        나

a    내일@ko        나

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