[Knowledge Graph] 3. RDF Schema
이 글은 2021년 대학원 수업 지식 표현 연구를 중심으로 작성된 포스트이다. 수업시간에 이해한 내용을 복습하는 차원에서 적는 글이니 언제든 댓글은 환영한다🙌
- 지식 표현 연구 시리즈
- What is RDF? RDF란 무엇인가?
- From XML to RDF (XML에서 RDF로)
- 🤚 RDF Schema
- SPARQL
- RDFa란?
이 포스팅은 2003년 Roger L. Costello, David B. Jacobs(The MITRE Corporation)의 Inferring and Discovering Relationships using RDF Schemas의 내용을 담고 있습니다.
1. From RDF to RDF Schema
Question.
RDF에서 부족한 것이 무엇일까? 왜 RDF Schema가 필요할까?
Answer.
RDF에서는 student
라는 의미가 무엇인지 정의할 수 없기 때문이다! 기계가 이해할 수 있기 위해서는 student
가 Person
이라는 의미를 부여해주어야 하는데, RDF에서는 이러한 의미를 부여해 줄 수 없다. 따라서 RDF Schema를 활용해 RDF에서 사용하는 모든 어휘들의 관계와 의미를 정의해주는 것이다.(RDF Schema로부터 ontology
라 부른다.)
- 그렇다면
knowledge graph
는 무엇일까? 일반적으로 지식그래프는Schema 정보(ontology) + 데이터
가 합쳐진 것을 의미한다. 따라서 지식그래프를 구축하기 위해서는 1) 온톨로지 모델링 2) 모델을 데이터에 입혀graph data
로 만드는 과정을 거친다.
2. RDF Schema
- RDF Schema를 사용하는 주요한 목적은 XML 어휘에 아래 항목을 제공하는 것이다.
classes
와 그 관계를 표현하는 것properties
를 정의하고classes
와properties
를 연관시키는 것
- RDF Schema를 사용함으로써 내가 가진 데이터로 추론하거나(inferencing) 검색을 향상시킬 수 있다.
💡 NOTE
아주 복잡한 도메인 온톨로지를 만들지 않는 한, 추론의 기능을 강하게 정의하지 않는 추세다. General한 모델로 많이 만든다는 것인데, 이는 추론보다 데이터를 검색하거나 발견하는데 중심을 두고 있다는 의미이다.
3. RDF Schema와 Taxonomies
RDF Schema는 Taxonomies를 만드는 것에 관한 것이다! NaturallyOccurringWaterSource
하위에 Stream
이 있고, 그 아래에 Brook
, River
, Tributary
가 하위로 들어가며, 또한 Brook
아래에 Rivulet
이 속한다.
4. 무엇이 추론될까?
위의 rdf 파일과 Water의 텍소노미를 함께 생각해보자. 3가지를 추론할 수 있다.
- 양쯔강은
River
이므로, `River`위의 `Classes`인 `Stream`, `NaturallyOccurringWaterSource`에 포함된다고 추론할 수 있다.- Yangtze is a Stream.
- Yangtze is an NaturallyOccurringWaterSource.
emptiesInto
라는 속성의 공역에BodyOfWater
를 적어야하고, 양쯔강의 rdf에emptiesInto
에EastChinaSea
가 적혀있다면, 아래와 같이 추론할 수 있다.httmp://www.china.org/geography#EastChinaSea
is aBodyOfWater
5. 어떻게 taxonomy가 검색을 용이하게 할까?
💁🏻♀️ “Stream
에 관한 정보를 포함하고 있는 정보에 대해 모두 보여줘!”
이렇게 사용자가 검색 엔진에 명령하면, 양쯔강의 rdf 문서에 따르면 양쯔강이 River
이므로 검색엔진이Stream
의 하위 클라스와 연관된다는 것을 인식한다. 따라서 쿼리 결과로 Yangtze is a Stream이 도출되는 것이다.
6. RDF Schema란 taxonomy를 정의하는 것!
따라서 RDF Schemas는 텍소노미들(class의 위계구조)을 정의하는 것에 대한 것이다. 위에서 보았듯, 텍소노미는 추론을 하고, 검색을 용이하게 하는데 사용될 수 있다.
7. Classes/properties를 RDF/XML로 정의하기
- RDF Schema는 classes와 properties를 정의하는데 아래의 RDF/XML 디자인 패턴을 사용한다.
8. 클라스 정의하기
따라서 위의 문서는 아래와 같이 읽힌다.
- “나는 여기서 River 클라스를 정의한다. River는 Stream의 하위 클라스이다.”
- “나는 여기서 Stream 클라스를 정의한다. Stream은 NaturallyOccurringWaterSource의 하위 클라스이다.”
9. rdfs:Class
<rdfs:Class rdf:ID="River">
<rdfs:subClassOf rdf:resource="#Stream"/>
<rdfs:Class>
rdfs:Class
는 클라스를 정의하기 위한 것이다.rdf:ID
는 클라스에 대한 이름을 제공한다. 여기에서는 “River”가 이 클라스의 이름이다.rdfs:subClassOf
는 속성으로 정의된 것이다.- 가지고 있는 속성에 따라 Class가 달라질 수 있으므로 속성이 general해야 한다. 즉, 속성은 Class들을 구분하기위한 기준점이 되어야 한다는 것!
- 지난 rdf 포스팅에서 보았듯,
rdf:Description
+rdf:type
으로도 표현할 수 있다.
10. rdfs:subClassOf
Stream
은River
에 속한다. 즉,set(River) ⊂ set(Stream)
- 이러한 부분집합 관계를
Brook
rdfs:subClassOf
Stream
으로 표현할 수 있다.
10.1 multiple rdfs:subClassOf properties
- 위와 같이 하위 클라스를 multi 상속할 수 있다. (2개 이상)
- 위의 의미는
River
=Stream
&SedimentContainer
- 그러나 모델 안의 관계들을 설명할 때 subClassOf를 2번 이상 사용하게 되면 복잡해질 수 있다.
10.2 전이적인(transitive)
rdfs:subClassOf
는 전이적이다(transitive)- 즉, transitive는 하위 클라스를 설정해 놓으면 자동으로 상위 클라스까지 연결되게 하는 관계를 만들어놓았다는 것이다.
Rivulet
이면Brook
>Stream
>NaturallyOccurringWaterSource
까지 따라가게 된다.- 명시적으로 표현해주어야 transitive 할 수 있다.
- 따라서 transitive한 동시에 위계구조를 가지는데, tree 형태를 ontology에서 만들어주는 기준이
subClassOf
가 된다.
11. 속성 정의하기
위의 문서는 아래와 같이 읽을 수 있다.
- “나는 여기서
emptiesInto
속성을 정의한다. 이 속성의 정의역(domain) 클라스는River
이고, 치역(range)는BodyOfWater
의 인스턴스(instances)이다.” - 즉,
emptiesInto
속성은River
에서BodyOfWater
까지 연관되어 있다.
12. 직접 모델링 해보기
💁🏻♀️ John, Student, StaffMember, Person의 관계를 모델링 해보아라!
- RDF Layer 위에 RDF Schema가 있고, 그 위에 Vocabulary Layer가 쌓이게 되는 것!
- 따라서 RDFS Layer가 비게 되면, RDF에서 쓴 모델들의 의미를 전혀 이해할 수 없게 됨. XML에 불과한 것.
rdf:type
은 인스턴스를 설명해주기 위한 것.- 예를 들어, 승용차의 인스턴스가 그랜져, 소나타인 것처럼 John은 Student와 StaffMember의 인스턴스가 되는 것.
Leave a comment