티스토리 뷰

O:::Linked Data

O_5. SKOS의 사용

joyHong 2012. 5. 2. 18:41

SKOS는 여러 도메인에서 사용하고 있는 것 같다.

서지정보학, 분류학 등 지식체계를 다루는 곳이면 빠지지 않고 심심치 않게 등장을 하곤 한다.

또한 시맨틱웹이나 Linked Data에서 FOAF와 같이 종종 등장을 한다.

SKOS는 과연 무엇일까?


SKOS는 Simple Knowledge Organization System의 줄임말이다.

한 마디로 저식어휘체계를 표현하기 위한 RDF 어휘라고 할 수 있겠다.


그렇다면 지식 어휘체계를 표현하여 어떻게 쓰일까?

같은 어휘체계안의 개념들은 상호 관계를 가지거나

다른 어취체계안의 개념과도 관계를 가질수 있다.

따라서 같은 어휘체계안의 개념들 관계 혹은 다른 체계안의 개념들 간의 관계 또는 체계를 표현할 수 있도록 한다.


간단한 예로

A, B, C 3개의 체계가 있는데 이 체계는 각각 '인간' 이라는 개념을 서로 다른 어휘로 표현한다.

A는 person

B는 perple

C는 human

이러한 자연어를 읽은 사람이라면 각각의 '인간' 이라는 어휘를 같은 개념으로 인지하겠지만

기계는 그렇지 못하다...

따라서 SKOS를 통해 지식어휘체계를 구성하도록 하면

A체계에서 사용하는 인간이라는 개념과

B, C 체계에서 사용하는 인간이라는 개념이 같다고 명시를 하여

기계 혹은 사람이 같은 개념이라고 인지하게 된다.


SKOS 기반으로 지식어휘체계를 관리하면

다른 어휘들과 융복합 될 수 있으며 확장이 가능하다고 한다.

Linked Data에서는 서로 다른 소스의 데이터를 엮어 링크를 만드는데

그렇게 하다보면 여러 지식어휘체계를 직면하게 될 수 있다.

이때 어휘체계를 SKOS로 잘 표현하면 다른 지식체계의 데이터라도 사용할 수 있게 된다.


SKOS에서 Label을 사용할 때 주의하여야 할 사항이 있다.

Label은 색인어 및 다국어 레이블을 표현하는 prefLabel,

약어, 동의어 등 부가적인 것을 표현하는 altLabel,

기계 접근이 가능한 텍스트 데이터이나 사람에게 숨기고 싶은 것을 표현하는 hiddenLabel 등이 있다

각각 사용할 때 주의점은 prefLabel은 언어태그 하나당 한개의 값만 허용한다는 것이고

prefLabel altLabel hiddenLabel의 값이 각각 같고 언어태그도 같은 경우는 허용하지 않는다.

그러나 prefLabel altLabel hiddenLabel의 값이 각각 같고 언어태그가 다른 경우는 허용하고 있다.


개념에 대한 간단한 RDF 표현은 아래와 같다.


ex:pineapples rdf:type skos:Concept;

skos:prefLabel "pineapples"@en;

skos:prefLabel "ananas"@fr;

skos:definition "The fruit of plants of the family Bromeliaceae"@en;

skos:definition "Le fruit d'une plante herbacee de la famille des bromeliacees"@fr.


RDF Graph의 예시


SKOS Core 어휘를 사용한 RDF graph


XML 포맷의 시소러스를 SKOS로도 표현할 수 있다.

그 예시는 아래와 같다.

<concept></concept>

<descriptor>Zygotes</descriptor>

<uf>Ookinetes</uf>

<bt>Ova</bt>

<nt>Oocysts</nt>

<rt>Hemizygosity</rt>

<rt>Reproduction</rt>

<rt>Zygosity</rt>

<sc>ASF Aquatic Sciences and Fisheries</sc>

<sc>LSC Life Sciences</sc>

<sta>Approved</sta>

<typ>Descriptor</typ>

<inp>2007-08-14</inp>

<upd>2007-08-14</upd>

// XML 포맷의 시소러스


<description rdf:about="http://thesaurus.nbii.gov/nbii#Zygotes"></description>

<type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"></type>

<inscheme rdf:resource="http://thesaurus.nbii.gov/nbii#conceptScheme"></inscheme>

<altlabel>Ookinetes</altlabel>

<broader rdf:resource="http://thesaurus.nbii.gov/nbii#Ova"></broader>

<narrower rdf:resource="http://thesaurus.nbii.gov/nbii#Oocysts"></narrower>

<preflabel>Zygotes</preflabel>

<related rdf:resource="http://thesaurus.nbii.gov/nbii#Hemizygosity"></related>

<related rdf:resource="http://thesaurus.nbii.gov/nbii#Zygosity"></related>

<scopenote>ASF Aquatic Sciences and Fisheries LSC Life Sciences</scopenote>

// SKOS로 표현된 내용


SKOS로 표현하는 개념이 어떤 지식어휘체계에 속하는지도 명시할 수 있다.

이때에는 ConceptScheme를 사용하게 된다.


ex:animalThesaurus rdf:type skos:ConceptScheme;

dct:title "Simple animal thesaurus";

dct:creator ex:antoineIsaac.

ex1:referenceAnimalScheme rdf:type skos:ConceptScheme;

dct:title "Extensive list of animals"@en.

ex1:animal rdf:type skos:Concept;

skos:prefLabel "animal"@en;

skos:inScheme ex1:referenceAnimalScheme.

ex1:platypus rdf:type skos:Concept;

skos:prefLabel "platypus"@en;

skos:inScheme ex1:referenceAnimalScheme.


체계를 정리하다보면 수정이 되는 개념들도 있을 것인데

SKOS에서는 changeNote를 사용할 수 있고

외부 어휘를 이용하여 부가적인 내용을 명시할 수 있는데

아래의 예시는 dc-terms를 이용하여 생성한 사람을 명시한다.


ex:tomato skos:changeNote [

rdf:value "Moved from under 'fruits' to under 'vegetables'"@en;

dct:creator ex:HoraceGray;

dct:date "1999-01-23"

].

ex:HoraceGray rdf:type foaf:Person; foaf:name "Horace Gray".





http://www.w3.org/TR/2005/WD-swbp-skos-core-guide-20051102/

'O:::Linked Data' 카테고리의 다른 글

O_7. KDATA 오픈  (0) 2012.08.21
O_6. 국내 SPARQL Endpoint  (0) 2012.05.08
O_4. Linked Data 솔루션  (0) 2012.04.30
O_3. Linked Data 기반 기술 요소  (0) 2012.04.30
O_2. Linked Data 발행 원칙  (0) 2012.04.30
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함