티스토리 뷰
RDF(Resource Description Framework)
RDF의 정의
RDF는 W3C 표준으로서 웹페이지의 제목, 저자, 수정일, 내용, 저작 정보와 같은 웹 자원(resource)을 표시하기 위한 것이다. RDF는 인간에게 표시하기 위해 설계된 것이 아니라 기계가 읽고 처리할 수 있도록 하기 위해 설계되었다. 상이한 메타데이터간의 어의, 구문 및 구조에 대한 공통적인 규칙을 지원하는 기법을 통해 메타데이터간의 효율적인 교환 및 상호호환을 목적으로 한다. 이를 위해서 명확하고 구조화된 의미표현을 제공해 주는 공통의 기술언어로 XML(eXtensible Markup Language)을 사용한다.
RDF의 기본적인 구성 단위는 트리플(Triple)이다. 트리플은 주어부(subject), 술어부(predicate), 목적부(object)로 나타낸다. 트리플은 방향성 그래프(directed graph)로서, 각 트리플은 주어부에서 목적부로 가는 에지(edge)이고, 이 에지 상에 레이블로서 술어부를 가지는 것이다.
시맨틱웹에서의 RDF
시맨틱웹에서 RDF는 어떤 역할을 하는 것일까?
시맨틱의 가장 기본적인 부분은 문장 내의 용어와 용어가 참조하는 실세계의 엔티티와의 연결에 대한 표현이다. 이 기본적인 시맨틱의 개념이 시맨틱웹의 동기가 된 개념이다.
우리에게 익숙한 웹은 서로 연결되어 있는 문서들로 이루어져 있다. 문서와 문서가 기술하는 실세계의 사물간의 연결은 오로지 그 문서를 읽는 개인에 의해 만들어진다. 예로 'Miss A'에 대한 문서에서 'Seoul' 이라는 문서에 대한 링크가 있는 것과 같다. 하지만 'Miss A'라는 개체에 대한 개념이나 이 개념을 'Seoul'이라는 개체로 연결시키는 링크는 존재하지 않는다.
어떻게 실세계의 사물, 즉 리소스에 대한 개념이나 하나의 리소스에서 또 다른 리소스로의 링크를 만들 수 있을까? 시맨틱웹에서는 실세계의 사물로 연결시키기 위한 모델로 RDF를 사용한다.
RDF를 사용하여 Miss A의 개념을 나타내면
<http://dbpedia.org/resource/Miss_A> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/class/yago/KoreanMusicalGroups> .
<http://dbpedia.org/resource/Miss_A> <http://dbpedia.org/property/name> "Miss A"@en .
RDF를 사용하여 Miss A와 Seoul 두 개체를 표시하면
<http://dbpedia.org/resource/Miss_A> <http://dbpedia.org/ontology/hometown> <http://dbpedia.org/resource/Seoul> .
이와 같이 나타낼 수 있다.
RDF는 웹 식별기호(Uniform Resource Identifiers 또는 URIs라고 하는)를 사용하여 리소스를 식별하고, 아울러 간단한 성질과 성질 값으로 리소스를 기술한다는 생각에 토대를 두고 있다. URI는 웹에 공통적인 리소스에 대해 전 세계적인 정체성을 부여한다. 이를 통해 정보가 분산되어도 고유의 정보를 식별할 수 있게 된다.
시맨틱웹을 구현하기 위해 정보를 웹에 분산시키는 데이터의 모델로서 RDF가 그 역할을 한다.
RDF의 표현 방법들
1) N-Triples
가장 단순한 형식으로 RDF 트리플의 행과 가장 직접적으로 연관된다. 이는 축약되지 않은 완전한 URI를 사용하여 리소스를 표현한다. 각 URI는 꺽은 화살표(< , >)안에 쓰여지며 세 개의 리소스가 주어부, 술어부, 목적부의 순서로 표현된다. 하나의 문장(행)이 마치는 것을 뜻하는 마침표(.)가 마지막에 쓰여진다.
2) N3 (Notation 3 RDF)
팀 버너스 리에 의해 개발된 형식으로 간결한 RDF 직렬화를 사용한다. N3는 ntriples로부터 얻은 트리플 표현의 명확성과 qname의 간결성을 결합한다. 끝나는 것은 마침표로 끝나는 것이 동일하지만 같은 주어부를 가진 다른 트리플을 표현할 때는 세미콜론(;)을 사용하여 술어부와 목적부만 기술하도록 한다. 또한 같은 주어부와 술어부를 가지고 목적부만 다른 트리플을 표현하기 위해 콤마(,)를 사용하여 표현한다.
3) RDF/XML
N3는 사람이 보기에 편할 뿐만 아니라 인쇄 페이지를 위해서는 간결하지만, 많은 웹 기반 구조에서는 정보를 HTML이나 XML로 표현하는 것이 익숙하다. 따라서 W3C에서는 RDF/XML 표현 방법으로 표현하는 것을 추천해 왔다.
Jena
그렇다면 지금 사용하고 있는 데이터를 RDF로 바꿔서 사용하면 어떨까?
Jena는 HP 시맨틱 웹 연구소(HP Labs Semantic Web Research)의 Brian McBride에 의해 개발된 시맨틱 웹 프레임워크이다. RDF, RDFS 및 OWL을 위한 프로그래밍 환경과 기본적인 RDF파서를 제공하며 내부적으로 룰(rule)기반의 추론엔진을 포함하고 있다. Jena 프레임워크는 다음을 포함한다.
-RDF API
-RDF를 읽고 RDF/XML, N3, N-Triles로 출력
-OWL API
-기억 및 지속적 저장
-온톨로지 언어를 위한 질의어 SPRQL
Jena API를 사용해서 기존의 데이터를 RDF로 표현하고 사용할 수 있다.
http://www.w3schools.com/rdf/default.asp
온톨로지 개발자를 위한 시맨틱웹
RDF Primer
'J:::SemanticWeb' 카테고리의 다른 글
J_6. 문화정보 관련 Ontology & Vocabulary (0) | 2012.05.16 |
---|---|
J_5. SPIN(SPARQL Inference Notation) (0) | 2012.05.07 |
J_4. OWL2 세미나 자료 (0) | 2012.04.30 |
J_2. 온톨로지 (4) | 2012.04.26 |
J_1. 시맨틱웹 (0) | 2012.04.26 |
- Total
- Today
- Yesterday
- TopBraid Composer
- 그래프 데이터베이스
- property graph
- RDF
- Ontology
- TBC
- pyvis
- 장고
- 지식그래프
- Knowledge Graph
- sparql
- 트리플
- neosemantics
- RDF 변환
- Thymeleaf
- Linked Data
- TDB
- rdfox
- cypher
- 트리플 변환
- 지식 그래프
- LOD
- Neo4j
- stardog
- 스프링부트
- 사이퍼
- networkx
- django
- 타임리프
- 온톨로지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |