SPARQL Example 5 – FILTER 사용

SPARQL에서 Filter는 특정 문자열 등에 조건을 주어 원하는 질의를 수행할 있도록 해준다.

아래 예제들을 참고하면 간단하게 SPARQL에서 Filter를 사용해 볼 수 있다. 아래 국립중앙도서관 SPARQL Endpoint 링크에서 사용 가능하다.

[국립중앙도서관 SPARQL Endpoint]

다만 무분별한 Filter의 사용은 SPARQL Endpoint의 성능을 저하시킬 수 있으므로 조심해야 한다.

1
2
3
4
5
6
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT *
WHERE {
?id foaf:name ?name .
FILTER(STR(?name)="고은")
}
1
2
3
4
5
6
7
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT *
WHERE {
?id foaf:name ?name .
FILTER(?name="고은"@ko)
}
1
2
3
4
5
6
7
8
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX afn: <http://jena.hpl.hp.com/ARQ/FUNCTION#>
SELECT *
WHERE {
?s dcterms:creator ?c .
FILTER(afn:SUBSTRING(str(?c),29)='teststring')
}
1
2
3
4
5
6
7
8
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ts: <http://test.com/resource/>
SELECT ?name
WHERE {
ts:me foaf:name ?name.
FILTER(LANG(?name)='ko')
}
1
2
3
4
5
6
7
8
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ts: <http://test.com/resource/>
SELECT *
WHERE {
?id foaf:name ?name.
FILTER REGEX(STR(?name), '고은')
}

[더 많은 예제]