본문바로가기

SPARQL 사용방법


1. SPARQL 질의 형식

  • SPARQL 질의 형식은 개략적으로 아래와 같다.
  • 질의에서 사용되는 변수는 ‘?변수명’ 또는 ‘$변수명’와 같은 형태로 사용한다

PREFIX

SELECT / CONSTRUCT / ASK / DESCRIBE

(DISTINCT / REDUCED)

FROM (NAMED)

WHERE

Graph Pattern / OPTIONAL / FILTER / UNION / GRAPH

ORDER BY

LIMIT

OFFSET

2. Syntax 설명

1) PREFIX 2) ORDER BY 3) LIMIT 4) OFFSET 5) WHERE 6) OPTIONAL 7) FILTER 8) UNION 9) SELECT
1) PREFIX

- 질의에서 사용되는 Prefix를 정의한다.

<사용 예>

  • PREFIX nlon: <http://lod.nl.go.kr/ontology/>
  • prefix bibo: <http://purl.org/ontology/bibo/>


<국립중앙도서관 LOD 사용 예>

   - 아래 그림의 빨간색 점선 안쪽에 해당하는 [Prefixes] 선택을 통해 Prefix 사용

          SPARQL Endpoint

2) ORDER BY
  • 결과를 sort 한다.
  • 뒤에 sort할 변수가 오며, ASC(변수) 또는 DESC(변수)를 사용하여 정렬 순서를 정할 수 있다. 디폴트는 ASC이며 다중 정렬도 가능하다.
  • CONSTRUCT 나 DESCRIBE 에서는 Order By의 사용이 가능하지만 그 결과에는 아무런 영향을 끼치지 않는다.
  • ASK 에서는 Order By 를 사용할 수 없다.
  • 정렬 순서는 특정 Term들 사이에서 Fixed 되어 있다.
  • 주의 : order by는 대용량 트리플의 경우 시스템 성능 저하를 초래할 수 있습니다.

<Query>

<Query>

4) OFFSET
  • 결과를 가져올 시작 번호를 정할 수 있다

<Query>

5) WHERE
  • 쿼리의 조건을 명시한다
  • Graph Pattern / OPTIONAL / FILTER / UNION / GRAPH 등을 사용하여 조건 생성이 가능하다
6) OPTIONAL
  • optional은 다음과 같은 형식으로 사용 가능하다.

<사용 형식>

1. pattern OPTIONAL { pattern }

2. { OPTIONAL { pattern } }

3. { { } OPTIONAL { pattern } }

4. pattern OPTIONAL { pattern } OPTIONAL { pattern }

5. { pattern OPTIONAL { pattern } } OPTIONAL { pattern }

*  2번과 3번은 동일

*  4번과 5번은 동일(왼쪽부터 연산된다.)

<Query>

  • 공통 변수를 가지고 있지 않은 경우에는 Full Join 연산을 한다.
7) FILTER
  • Filter는 아래에 설명된 표와 같이 다양한 연산을 사용하여 조건에 대한 제한이 가능하며 이를 위해 다양한 연산방법을 제공한다.
Operator Type(A) Function Result type
XQuery Unary Operators
! A xsd:boolean (EBV) fn:not(A)

xsd:boolean

+ A numeric op:numeric-unary-plus(A) numeric
- A numeric

op:numeric-unary-minus(A)

numeric
SPARQL Tests, defined in section 11.4
BOUND (A) variable bound(A) xsd:boolean
isIRI (A)
isURI (A)
RDF term isIRI(A) xsd:boolean
isBLANK (A) RDF term isBlank(A) xsd:boolean
isLITERAL (A) RDF term isLiteral(A) xsd:boolean
SPARQL Accessors, defined in section 11.4
STR (A) literal str(A) simple literal
STR (A) IRI str(A) simple literal
LANG (A) literal lang(A) simple literal
DATATYPE (A) typed literal datatype(A) IRI
DATATYPE (A) simple literal datatype(A) IRI

<Query>

9) SELECT
  • 변수들과 그 변수들의 값을 return 한다.
  • select 뒤에는 가져올 변수를 선언해야 한다.
  • 여러 개의 변수들은 공백으로 구분한다.
  • 쿼리에서 사용된 모든 변수를 SELECT 하기 위해서 ‘*’ 문자를 사용할 수 있다.