Transcript RDF(S)
6. RDF(S) : RDF와 RDF Schema
RDF는 단순한 트리플(triple)형태로 웹 지원을 기술하는 언어
W3C에서 개발, 1999년 W3C 권고안으로 채택
RDF Schema
• RDF를 프레임 지식표현 패러다임으로 확장한 언어
• 객체지향 모델링과 비슷한 도메인 구성에 대한 표현력 제공
• 2004년 W3C 권고안으로 채택
OIL, DAML+OIL, OWL : RDF(S) 기술논리 지식표현 패러다임 도입
XML과 RDF 비교분석
RDF와 RDF Schema 소개
지능스마트응용 연구실
1
1) XML과 RDF 비교분석
WWW(World Wide Web)의 관련연구
• HTML(HyperText Markup Language) : 정보를 표현하기 위한 기술
• XML(eXtensible Markup Language), XSL(eXtensible Stylesheet Language) : 정
보의 내용을 레이아웃으로부터 분리
• RDF, RDF Schema, OWL : 시맨틱 웹 관련 기술
XML
• W3C의 후원으로 결성된 XML 워킹 그룹에 의해 1996년 개발
• XML 태그의 역할
– 정보를 구분하는 이름의 역할
– 정보의 검색 및 정렬 가능
– 사용자가 태그를 임의로 작성 가능
•
•
•
•
텍스트 파일로 저장
여러 기종과 운영체제에 대해 이식성이 높다
문서의 구조를 정의하는 스키마 사용, 우수한 호환성
내용과 디자인을 완전히 분리
지능스마트응용 연구실
2
XML
단점
•
•
•
•
정보의 의미를 명확하게 전달해주는 매커니즘 제공 안됨
태그에 의미를 부여하는 정해진 규칙이 없다.
컴퓨터가 태그와 태그사이에 존재하는 의미의 연관성 추론에 문제점
지능적인 시맨틱 웹을 위한 표준 언어로 사용하기에 한계가 있음
예) “김동건이 ‘생각하는 컴퓨터’를 썼다.” 를 XML로 표현
1)
<책 이름=“생각하는 컴퓨터”>
<저자>김동건</저자>
</책>
2)
<저자 이름=“김동건>
<썼다>생각하는 컴퓨터</썼다>
</저자>
3)
<책>
<저자>김동건</저자>
<제목>생각하는 컴퓨터</제목>
</책>
지능스마트응용 연구실
3
RDF
XML의 문제 해결을 위해 제시된 기술
‘자원(주어부)-속성(서술부)-속성값(목적부)’을 하나의 기본 단위로 취급
예) “김동건이 ‘생각하는 컴퓨터’를 썼다.” 를 XML 신택스로 표현
김동건자원(주어부), 썼다속성(서술부), 생각하는 컴퓨터속성부(목적부)
트리플(triple)을 기본 단위로 연결하여 표현 가능
RDF/XML
• XML 신택스
• 추상적인 RDF 데이터 모델은 컴퓨터가 직접 이해할 수 없기 때문에 기계적인 언어
로 표현
• 일반적으로 RDF 데이터 모델은 XML 신택스를 사용하여 표현
지능스마트응용 연구실
4
데이터 모델 관점에 비교
XML
RDF
구조
트리구조(순서위주)
객체간 관계지향 모델
트리플구조(주어부, 서술부, 목적부)
태그
배치 순서 중요
배치 순서 중요하지 않음
유연성
• 노드(태그)가 문서에 포함되어 인텍싱되
므로 메타데이터 표현의 어려움
• 유연성 낮다
해석
구문해석
의미해석
검색
복잡(트리구조)
용이(독립된 트리플 집합)
• 노드가 URIref를 갖는 자원
• 유연성 높다.
지능스마트응용 연구실
5
URI(Uniform Resource Identifier)
웹 상에 존재하는 자원을 지칭하는 스트링 표준형식
종류
• URL(Uniform Resource Location)
• URN(Uniform Resource Name)
URL(Uniform Resource Location)
• 웹 페이지와 같은 자원에 접근할 때 사용되는 실제 네트워크 경로
• ‘프로토콜://파일이 저장된 서버의 DNS이름/디렉터리 이름/파일 이름’으로 구성
예) http:/www.snu.ac.kr/index.html
URN(Uniform Resource Name)
• 임의의 자원을 가리키는 영속적이고 고유한 이름
• 자원이 저장되어 있는 위치와는 무관
• ‘문자열 urn:NID(Namespace Identifier) : NSS(Namespace Specific String)’으로
구성
– NSS는 NID안에서 유일해야 함
예) ISBN 번호 3960152782를 가진 책 urn:isbn: 3960152782
예) 대한민국, 주민등록번호 표시 urn:korean:000101-1234567
지능스마트응용 연구실
6
URIref(Uniform Resource Identifier reference)
RDF는 자원에 대한 식별자로 URIref 사용
종류
• 컨텍스트에 독립적인 ‘절대(absolute) URIref’
• 컨텍스트에 종속적인 ‘상대(relative) URIref’
절대(absolute) URIref
• URI 뒤에 ‘#’과 단편식별자 표시
예) http://Ontology.snu.ac.kr/ont-book/index.html#section3
• 단편식별자 : 네임 스페이스에 해당하는 앞의 URI 안에서 효력이 있는 자원의 식별
자
• RDF에서 기술하는 자원이 URL로 표현되는 전자문서일 때에는 이 문서의 URL, 즉,
단순한 URI가 이에 대한 URIref가 됨
상대(relative) URIref
• 절대(absolute) URIref의 축약형으로 URIref의 URI 부분이 사라진 형태
• 예를 들어 ‘http://Ontology.snu.ac.kr/ont-book/index.html’ 이라는 문서 안에
‘#section3’라는 상대 URIref가 있다면 이것은 절대 URIref인
‘http://Ontology.snu.ac.kr/ont-book/index.html#section3’로 해석됨
지능스마트응용 연구실
7
컨텍스트 고려한다는 것은 해당 문서의 베이스 URI가 무엇인지 찾는 것
베이스 URI를 특별히 지정하지 않으면 상대 URIref를 포함하고 있는 문서의
URI가 베이스 URI가 됨
베이스 URI를 다른 것으로 지정할 필요가 있을 때
• ‘xml:base’ 애트리뷰트 사용
예) <rdf:RDF xml:base=“http://www.Ontologytech.com/2007/01/products”>
이 문서에 ‘#item101’ 과 같은 상대 URIref가 들어 있다면 해당 문서의 URI와 관
계없이 ‘http://www.Ontologytech.com/2007/01/products#item101’로 해석
ref : about 와 rdf : resource 는 애트리뷰트에 대한 값으로 쓰임
rdf : ID는 베이스 URI와 ‘#’을 이 단편 식별자 앞에 붙여 절대 URIref로 변
환
지능스마트응용 연구실
8
2) RDF
2.1 RDF 데이터 모델
RDF는 모든 사물과 개념들을 자원(resource)를 보고 이러한 자원의 식별자
로 URIref를 사용하여 자원이 가지고 있는 속성이나 자원과 자원 간의 관계
를 기술하는 데이터 모델
기본단위는 자원(주어부)-속성(서술부)-속성값(목적부)로 이루어진 서술문
트리플(triple)구조
• 주어부(subject) : 문장의 주어 역할을 하는 부분, 서술부와 목적부에서 기술하는
자원, URIref 로 나타냄
• 서술부(predicate or property) : 주어부의 자원을 설명하는 속성이나 자원간의 관
계 표현, URIref로 나타냄
• 목적부(object) : 자원을 가리키는 URIref 외에 문자열이 올수 있다.
예) ‘동건의 나이는 34세이다.’
‘동건’이라는 자원은 ‘나이’라는 속성을 가지고 있고 이 속성값이 ‘34’
예) ‘동건은 경영학을 전공했다.’
‘동건’이라는 자원과 ‘경영학’이라는 자원이 서로 ‘전공했다’라는 관계로 연결
지능스마트응용 연구실
9
그림6-1 RDF 트리플 그래 프
서술부
(Predicate)
목적부
(Object)
URIref 표시
서술부
(Predicate)
목적부
(Object)
문자열 데이터
주어부
(Subject)
예) 동건은 태희가 사과를 좋아한다고 말했다.
• 동건(주어부), 말했다(서술부), 태희가 사과를 좋아한다(목적부)
• 구체화(reification) : 하나의 서술문에 대한 서술문을 추가하여 모델링하는 것
RDF의 한계점
• RDF 속성은 양쪽에 인수가 두 개인 이진 속성이다.
• 인수가 자연스럽지 못하면, 한 번에 이해하기 어렵다.
• 구체화 매커니즘은 매우 강력한 표현력을 제공하지만, 시맨틱 웹의 기본 계층에 놓
여 있기에는 복잡성을 더하여 부적합한 측면이 있다.
• RDF의 XML 기반 신텍스가 컴퓨터 처리를 위해서는 매우 적합하지만 사람들에게
는 그리 친숙하지 않다.
RDF는 시맨틱 웹의 기본 계층으로서의 충분한 표현력을 제공
다양한 온톨로지 툴들을 이용하면 RDF 신텍스를 정확히 몰라도 편리하고
쉽게 RDF 편집 가능
지능스마트응용 연구실
10
2.2 RDF 그래프와 코딩 예
RDF 데이터 모델을 표현할 수 있는 추천 신택스
XML기반의 RDF/XML, N-트리플, N3
엔터티(ENTITY)
긴문장을 지정된 짧은 문장으로 대체 할 때 사용
엔터티 정의는 문서타입 정의(DOCTYPE : Document Type Declaration) 안에
포함
‘&지정된 문자열;’ 형식 사용
<!DOCTYPE rdf : RDF [
<!ENTITY print “http://Ontology.snu.ac.kr/printer#”> ]>
모든 ‘&printer,’는 ‘http://Ontology.snu.ac.kr/printer#’로 대체 됨
<!DOCTYPE rdf : RDF [
<!ENTITY ontbook “http://Ontology.snu.ac.kr/ont-book#”> ]>
<rdf:Description rdf:about=“&ontbook;Kimdk”>
‘rdf:about’이란 애트리뷰트에 대한 값을 ‘ontbook’이란 엔티티를 사용하여 표현
지능스마트응용 연구실
11
<RDF 코딩>
“김동건은 온톨로지텍이란 회사를 소유하고 있다.”
“온톨로지텍의 홈페이지 주소는 http://www.Ontologytech.com/~out 이다”
“김동건은 경영학을 전공했다.”
“김동건의 나이는 34세이다.”
<RDF 그래프 그림6.2>
경영학
전공하다
Http://ontology.sun.ac.kr/out-book#Management
Http://ontology.sun.ac.kr/out-book#majorsin
김동건
소유하다
Http://ontology.sun.ac.kr/out-book#Kimdk
Http://ontology.sun.ac.kr/out-book#owns
온톨로지텍
나이
Http://ontology.sun.ac.kr/out-book#Ontology/Tech
Http://ontology.sun.ac.kr/out-book#age
홈페이지
Http://ontology.sun.ac.kr/out-book#hasHomepage
34
홈페이지
Http:/www.ontology.com/~out
<RDF/XML 코딩>
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<rdf:RDF>
xmlns : rdf=http://www.x3.org/1999/02/22-rdf-syntax-ns#
xmlns : ontbook=http://Http://ontology.sun.ac.kr/ont-book#
<rdf:Desciption rdf:about=“&ontbook ; Kimdk”>
<ontbook : majorsln rdf : resource=“&ontbook ; Mangement”/>
<ontbook : owns>
<rdf : Description rdf : about = “&ontbook : OntologyTech”>
<ontbook : hasHomepage rdf : resource=http://www.Ontologytech.com/~out/>
</rdf : Desciption>
</outbook : owns>
<ontbook : age rdf : datatype=“&xsd ; integer” >34</ontbook:age>
</rdf> : Description>
</rdf: RDF>
지능스마트응용 연구실
12
RDF/XML 의 기본사항
1. 하나의 rdf:RDF 요소와 하나 이상의 rdf:Description 요소로 이루어져 있다.
–
< rdf:Description> 안에는 하나이상의 서술문이 있고, 중첩가능
2. <rdf:RDF> 안에 필요한 네임스페이스를 선언한다.
–
네임스페이스 : 자원을 정의하는 문서
3. <rdf:Description> 요소는 자원을 지칭
–
<rdf:about>
–
애트리뷰트(attribute)포함
<rdf:ID>와 동등 의미
서술되고 있는 자원이 다른 곳에서 이미 정의되었음을 암시
<rdf:ID>
–
–
단편 식별자를 명시
임의의 베이스 URI 안에서 온톨로지 용어가 처음 정의될 때 한 번 사용
RDF 서술문 : 동일한 자원의 정의를 여러곳에서 할 수 없음
RDF/XML : URIref에 의해 명시되며, 한 곳에서 자원을 정의하고 다른 곳에서 추가적인 속
성 기술 가능
<rdf:Description> 요소의 자식 요소
–
속성요소(property element)
모두 해당 자원이 가지고 있는 속성을 나타냄
이러한 속성에 대한 값은 요소의 내용으로 기록
<rdf : Description rdf : about=“&ontbook;Kimdk”>
<ontbook : majorsln rdf : resource = “&ontbook;Management”/>
<ontbook : age rdf : datatype=“&xsd;integer”>34</ontbook : age>
</rdf : Description>
‘전공하다(ontbook : majorsIn)’와 ‘나이(ontbook:age)’는 각각 “&ontbook;”에 의해 정의된 ‘김동건(Kimdk)’에 대한 ‘속성(서술
부)-속성값(목적부)’쌍을 나타냄
지능스마트응용 연구실
13
RDF/XML 의 기본사항
4. <rdf:resource>
–
–
–
<rdf:about>이나 <rdf:ID>처럼 자원을 분명하게 지칭하기 위해 사용
자원에 대한 다른 정보나 지식을 추가하지 않을 때도 사용
주로 목적부에 해당하는 자원을 가리킬 때 많이 사용
<rdf : Description rdf : about=“#000001”>
<ontbook : name>Kimdk</ontbook : name>
<ontbook : age rdf : datatype=“&xsd;integer”>34</ontbook : age>
</rdf : Description>
<rdf : Description rdf : about=“#COM345”>
<ontbook : name>OnrologyTech</ontbook : name>
<ontbook : isOwnedBy>Kimdk</ontbook : isOwnedBy>
</rdf : Description>
‘#000001’의 ‘김동건’과 ‘#COM345’의 ‘김동건’이 다른 사람으로 인식되는 문제점
<rdf : Description rdf : about=“#COM345”>
<ontbook : name>OnrologyTech</ontbook : name>
<ontbook : isOwnedBy> rdf : resource=“#000001”>
</rdf : Description>
5. <rdf : datatype=&xsd;integer>
–
–
데이터 속성 타입인 ‘나이(age)’의 속성 값의 범위를 정해주기 위해 사용된 애트리뷰트
나이(age)가 정수(integer)임을 나타냄
지능스마트응용 연구실
14
3) RDF Schema
3.1 RDF와 RDF Schema
RDF
• 속성의 도메인을 제한하거나 비슷한 자원을 한 데 묶어서 클래스로 표현하는 기능
이 없음
• 자원이 트리플 구조로 연결되었을때 컴퓨터가 정확하게 이해 할 수 없다.
RDF Schema
•
•
•
•
•
2004년 2월 W3C 권고안으로 발표
RDF를 프레임기반으로 확장
도메인에 필요한 어휘와 기본 가정들의 정의 가능
객체지향 프로그래밍(자바) 언어의 데이터 모델과 비슷
클래스 상속 개념 지원
사람
클래스이름
애트리뷰트
나이
<그림6-3 UML 클래스 다이어그램 예시>
매소드
고용주
회사
전공하다
소유하다
홈페이지
홈페이지주소
전공
15
RDF Schema와 객체지향 모델링의 차이점 : 속성을 다루는 방법
• 객체지향
– 클래스 정의 안에 속성 포함
– 새로운 속성을 추가하려면 클래스 정의까지 수정해야 함
• RDF Schema
–
–
–
–
속서이
클래스
속성을
속성에
명시
온톨로지 전 범위에 걸쳐 유효
정의를 바꾸지 않아도 새로운 속성 적용가능
클래스와 독립적으로 정의
대한 주어부가 될 수 있는 클래스(domain)와 목적부로 올 수 있는 클래스(range)를
[그림6-2]는 [그림6-3]과 같은 스키마에 대한 인스턴스 정보
[그림 6.4]는 [그림 6-3]의 RDF Schema그래프
[그림6-4]RDF와 RDF Schema
사각형: 속성
위쪽 타원 : 클래스
아래쪽 타원 : 인스턴스
지능스마트응용 연구실
16
예1) “서태희는 의류디자인학을 소유하고 있다”
• “소유하다”는 제약조건에 ‘고용주’를 주어부, ‘회사’를 목적부
• ‘의류디자인학’은 회사가 아니므로 ‘소유하다’의 목적부가 될 수 없음
예2) 모든 ‘사람’을 검색할 때
<사람> 서태희 </사람>
<사람> 오혜수 </사람>
<고용주 이름=“김동건”>
<소유하다> 온톨로지텍</소유하다>
</고용주>
• ‘고용주’는 ‘사람’의 하위 클래스[그림 6-4]
• 따라서 ‘서태희’,’오혜수’,’김동건’ 모두 사람으로 검색 가능
RDF Schema의 역할
• 해당 도메인을 기술하기 위해 필요한 어휘를 정의
• 속성이 어떤 종류의 자원에 대해 적용될 수 있고 어떤 값을 취할 수 있는 지를 정의
• 자원 및 속성 간의 계층구조를 포함하는 다양한 관계를 정의 할 수 있다.
지능스마트응용 연구실
17
3.2 기본요소 : 클래스와 속성
3.2.1 클래스(Class)
클래스 : 동일한 속성을 지니고 있어 하나의 부류로 모아지는 개체들의 그
룹
예) A,B,C가 모두 서울대학교 경영학과에서 MIS를 전공하는 대학원생이라는
공통의 특징을 가질 때
‘서울대 경영학과 MIS 전공 대학원생’라는 클래스 생성
<rdfs : subClassOf>
• 하위 클래스를 상위클래스와 연결
• <rdfs : Class>와 </rdfs : Class> 사이에서만 쓰임
하위 클래스에 속한 인트턴스는 자동으로 상위 클래스에 속함
하나의 하위 클래스는 여러 개의 상위 클래스를 가질 수 있음
예) ‘레이저 프린터(LaserPrinter)’가 ‘프린터(Printer)’의 하위 클래스일때,
<rdfs : Class rdf : ID = “LaserPrinter”>
<rdfs : subClassOf rdf : resource=“#Printer”/>
</rdfs : Class>
지능스마트응용 연구실
18
3.2.2 속성(Property)
RDF에 속성 : 자원과 자원의 관계
RDF Schema에 속성 : 클래스와 클래스의 관계
클래스라는 개념을 통해 모든 개체를 효율적으로 묶어 표현 가능
클래스는 다른 클래스와 관계를 형성, 풍부한 의미 전달
예) 교수 – ‘김동건’,’서태희’,’오혜수’
강좌 – ‘경영학개론’,’온톨로지개론’,’시맨틱웹’
‘가르친다’ 라는 관계가 둘 사이에 개입되면
‘오혜수 교수가 시맨틱웹 강좌를 가르친다’로 표현 가능
속성과 관련된 중요 개념
• 정의역(domain), 공역(range)
• 속성의 주어부와 목적부에 올 수 있는 클래스의 범위를 지정
– 주어부 : 어떤 속성을 취할 수 있는 클래스 <rdfs : domain>
– 목적부 : 그 속성이 속성값을 취할 수 있는 범위 <rdfs : range>
• 하나의 속성에 대해서 정의역과 공역은 하나씩만 정의 가능
• 특정한 클래스를 정의역이나 공역으로 지정하지 않으면 모든 클래스를 범위로 인식
• 특정 속성에 대해서 한 번 지정된 정의역이나 공역을 번복하거나 다른 정의역이나 공
역으로 추가 할 수 없다.
<rdfs : Property rdf : ID = “제조되다”>
<rdfs : domain rdf : resource = “#프린터”/>
<rdfs : range rdf : resource = “#제조회사”/>
</rdf : Property>
지능스마트응용 연구실
19
속성을 계층관계로 표현
• <rdfs : subPropertyOf>로 표현
• ‘~의 딸이다’(isAdaughterOf)이라는 속성은 ‘~의 자식이다’(isAChildOf)라는 속성
의 하위 속성
• 어떤 속성이 다른 속성의 하위 속성이 되면 이 속성은 자동적으로 상위 속성의 정
의역과 공역을 자신의 정의역과 공역으로 인식
<rdfs : Property rdf : ID = “isAdaughterOf”>
<rdfs : subPropertyOf rdf : resource = “#isAChildOf”>
</rdf : Property>
지능스마트응용 연구실
20
RDF Schema 주요 어휘
어휘
설명
rdfs : Class
클래스를 정의하는 요소(element)
속성(properties)을 클래스에 할당하기 위해서는 rdf : Property, rdfs : range, rdfs : domain을 함께 사용함
클래스 식별자(identifier)로서 rdf:about 애트리뷰트에 URIref를 써 줌
rdfs : label
클래스에 사람이 이해할 수 있는 라벨을 붙여주는 애트리뷰트
rdfs : subclassOf
한 클래스가 다른 기존 클래스의 하위 클래스임을 명시하는 요소
rdf : Property
클래스의 속성(property)을 정의하는 요소(element)
rdfs : range, rdfs : domain와 함께 사용됨
rdfs : domain
미리 정의된 클래스를 값으로 가지며, 한 속성이 클래스에 속하는지를 정의하는 애트리뷰트(주어부, 정의역)
rdfs : range
미리 정의된 클래스를 값으로 가지며, 한 속성이 취할 수 있는 값의 범위를 정의하는 애트리뷰트(목적부, 공역)
rdfs : Literal
문자열이나 정수 같은 상수 값들로 이루어진 클래스
지능스마트응용 연구실
21
3.3 RDF Schema 코딩 예
[그림 6-4] 의 그래프로 표현된 RDF Schema를 RDF/XML로 코딩 예
지능스마트응용 연구실
22
4) RDF(S)의 한계점
RDF 데이터 모델
• 자원과 속성의 트리플 구조는 간단한 형태로 무한한 지식을 표현
• 자원 – 속성 – 자원 의 형태로 분절하여 나타내기만 하면 됨
• 자원과 자원을 특정한 형태로 연결시켜 놓은 것에 불과해서 자원 간의 관계를 정확
하게 나타내는 데 한계가 있음
RDF Schema
•
•
•
•
•
RDF의 한계를 극복
유사한 개체를 묶어서 하나의 클래스로 정의
속성을 기술할 수 있도록 하는 스키마 언어
클래스와 속성의 계층구조 정의
각 속성이 서술부와 목적부에 어떤 값을 취할 수 있는 지 정의역과 공역의 개념 사
용
• 메타데이터의 속성과 클래스 간의 관계 표현이 가능
지능스마트응용 연구실
23
RDF가 표현할 수 없는 것
속성에 대한 다양한 범위 지정
• <rdfs : rang>를 통해 특정한 속성이 지니는 속성값의 범위를 제한
• 그러나 이는 온톨로지 전체에 대해 적용하는 것이며
• 주어부에 따라 다르게 지정할 수 없어 불편할 때가 많다.
특별한 속성의 특징 표현
• 속성에도 여러가지 종류가 있는데,
• RDF(S)에서는 모든 속성을 동일하게 취급하기 때문에 분류학상으로 정교하지 못함
복잡한 클래스의 정의
• 클래스 역시 속성과 마찬가지로 부울 연산 등을 통해 기존의 클래스를 재조합할 수 있어야 하
는데
• RDF(S)에서는 이를 가능케 하는 어휘를 제공하지 않는다.
클래스의 비접합성 표현
• 클래스간에 공통의 인스턴스가 없는 경우
• 이를 나타낼 수 있는 어휘가 없다.
동치성과 비동치성의 표현
• 각기 다른 온톨로지를 병합하거나 재사용 할 때 이름이 다르지만 같은 의미를 지닌 클래스나
속성의 동치성을 표현할 수 없고
• 이름이 같지만 다른 의미를 지닌 클래스나 속성의 비동치성을 표현할 수 없다.
관계차수의 제한
• 어떤 클래스가 특정한 속성을 통해 몇 개의 속성값을 지닐 수 있는지에 대해 제한 할 수 없다.
위와 같은 표현상의 한계 때문에 모델링 요소들을 확장하고 언어의 표현력을 강화한 OWL
과 같은 온톨로지 언어가 등장
지능스마트응용 연구실
24