260 likes | 695 Views
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 소개.
E N D
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) 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 태그의 역할 • 정보를 구분하는 이름의 역할 • 정보의 검색 및 정렬 가능 • 사용자가 태그를 임의로 작성 가능 • 텍스트 파일로 저장 • 여러 기종과 운영체제에 대해 이식성이 높다 • 문서의 구조를 정의하는 스키마 사용, 우수한 호환성 • 내용과 디자인을 완전히 분리 지능스마트응용 연구실
XML • 단점 • 정보의 의미를 명확하게 전달해주는 매커니즘 제공 안됨 • 태그에 의미를 부여하는 정해진 규칙이 없다. • 컴퓨터가 태그와 태그사이에 존재하는 의미의 연관성 추론에 문제점 • 지능적인 시맨틱 웹을 위한 표준 언어로 사용하기에 한계가 있음 예) “김동건이 ‘생각하는 컴퓨터’를 썼다.” 를 XML로 표현 1) <책 이름=“생각하는 컴퓨터”> <저자>김동건</저자> </책> 2) <저자 이름=“김동건> <썼다>생각하는 컴퓨터</썼다> </저자> 3) <책> <저자>김동건</저자> <제목>생각하는 컴퓨터</제목> </책> 지능스마트응용 연구실
RDF • XML의 문제 해결을 위해 제시된 기술 • ‘자원(주어부)-속성(서술부)-속성값(목적부)’을 하나의 기본 단위로 취급 예) “김동건이 ‘생각하는 컴퓨터’를 썼다.” 를 XML 신택스로 표현 김동건자원(주어부), 썼다속성(서술부), 생각하는 컴퓨터속성부(목적부) • 트리플(triple)을 기본 단위로 연결하여 표현 가능 • RDF/XML • XML 신택스 • 추상적인 RDF 데이터 모델은 컴퓨터가 직접 이해할 수 없기 때문에 기계적인 언어로 표현 • 일반적으로 RDF 데이터 모델은 XML 신택스를 사용하여 표현 지능스마트응용 연구실
데이터 모델 관점에 비교 지능스마트응용 연구실
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 지능스마트응용 연구실
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’로 해석됨 지능스마트응용 연구실
컨텍스트 고려한다는 것은해당 문서의 베이스 URI가 무엇인지 찾는 것 • 베이스 URI를 특별히 지정하지 않으면 상대 URIref를 포함하고 있는 문서의 URI가 베이스 URI가 됨 • 베이스 URI를 다른 것으로 지정할 필요가 있을 때 • ‘xml:base’ 애트리뷰트 사용 예) <rdf:RDFxml: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로 변환 지능스마트응용 연구실
2) RDF 2.1 RDF 데이터 모델 • RDF는 모든 사물과 개념들을 자원(resource)를 보고 이러한 자원의 식별자로 URIref를 사용하여 자원이 가지고 있는 속성이나 자원과 자원 간의 관계를 기술하는 데이터 모델 • 기본단위는 자원(주어부)-속성(서술부)-속성값(목적부)로 이루어진 서술문 • 트리플(triple)구조 • 주어부(subject) : 문장의 주어 역할을 하는 부분, 서술부와 목적부에서 기술하는 자원, URIref 로 나타냄 • 서술부(predicate or property) : 주어부의자원을 설명하는 속성이나 자원간의 관계 표현, URIref로 나타냄 • 목적부(object) : 자원을 가리키는 URIref 외에 문자열이 올수 있다. 예) ‘동건의 나이는 34세이다.’ ‘동건’이라는 자원은 ‘나이’라는 속성을 가지고 있고 이 속성값이 ‘34’ 예) ‘동건은 경영학을 전공했다.’ ‘동건’이라는 자원과 ‘경영학’이라는 자원이 서로 ‘전공했다’라는 관계로 연결 지능스마트응용 연구실
그림6-1 RDF 트리플 그래 프 URIref 표시 예) 동건은 태희가 사과를 좋아한다고 말했다. • 동건(주어부), 말했다(서술부), 태희가 사과를 좋아한다(목적부) • 구체화(reification): 하나의 서술문에 대한 서술문을 추가하여 모델링하는 것 • RDF의 한계점 • RDF 속성은 양쪽에 인수가 두 개인 이진 속성이다. • 인수가 자연스럽지 못하면, 한 번에 이해하기 어렵다. • 구체화 매커니즘은 매우 강력한 표현력을 제공하지만, 시맨틱 웹의 기본 계층에 놓여 있기에는 복잡성을 더하여 부적합한 측면이 있다. • RDF의 XML 기반 신텍스가 컴퓨터 처리를 위해서는 매우 적합하지만 사람들에게는 그리 친숙하지 않다. • RDF는 시맨틱 웹의 기본 계층으로서의 충분한 표현력을 제공 • 다양한 온톨로지 툴들을 이용하면 RDF 신텍스를 정확히 몰라도 편리하고 쉽게 RDF 편집 가능 문자열 데이터 서술부 (Predicate) 목적부 (Object) 주어부(Subject) 목적부 (Object) 서술부 (Predicate) 지능스마트응용 연구실
2.2 RDF 그래프와 코딩 예 • RDF 데이터 모델을 표현할 수 있는 추천 신택스 • XML기반의 RDF/XML, N-트리플, N3 • 엔터티(ENTITY) • 긴문장을 지정된 짧은 문장으로 대체 할 때 사용 • 엔터티 정의는 문서타입 정의(DOCTYPE : Document Type Declaration) 안에 포함 • ‘&지정된 문자열;’ 형식 사용 • 모든 ‘&printer,’는 ‘http://Ontology.snu.ac.kr/printer#’로 대체 됨 • ‘rdf:about’이란 애트리뷰트에 대한 값을 ‘ontbook’이란 엔티티를 사용하여 표현 <!DOCTYPE rdf : RDF [ <!ENTITY print “http://Ontology.snu.ac.kr/printer#”> ]> <!DOCTYPE rdf : RDF [ <!ENTITY ontbook“http://Ontology.snu.ac.kr/ont-book#”> ]> <rdf:Descriptionrdf:about=“&ontbook;Kimdk”> 지능스마트응용 연구실
<RDF 코딩> “김동건은 온톨로지텍이란 회사를 소유하고 있다.” “온톨로지텍의 홈페이지 주소는 http://www.Ontologytech.com/~out 이다” “김동건은 경영학을 전공했다.” “김동건의 나이는 34세이다.” • <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:Desciptionrdf:about=“&ontbook ; Kimdk”> • <ontbook : majorslnrdf : resource=“&ontbook ; Mangement”/> • <ontbook : owns> • <rdf : Description rdf : about = “&ontbook : OntologyTech”> • <ontbook : hasHomepagerdf : resource=http://www.Ontologytech.com/~out/> • </rdf : Desciption> • </outbook : owns> • <ontbook : age rdf : datatype=“&xsd ; integer” >34</ontbook:age> • </rdf> : Description> • </rdf: RDF> <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 코딩> 지능스마트응용 연구실
RDF/XML 의 기본사항 • 하나의 rdf:RDF요소와 하나 이상의 rdf:Description요소로 이루어져 있다. • < rdf:Description> 안에는 하나이상의 서술문이 있고, 중첩가능 • <rdf:RDF> 안에 필요한 네임스페이스를 선언한다. • 네임스페이스 : 자원을 정의하는 문서 • <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 : majorslnrdf : resource = “&ontbook;Management”/> <ontbook : age rdf : datatype=“&xsd;integer”>34</ontbook : age> </rdf : Description> ‘전공하다(ontbook : majorsIn)’와 ‘나이(ontbook:age)’는각각 “&ontbook;”에 의해 정의된 ‘김동건(Kimdk)’에 대한 ‘속성(서술부)-속성값(목적부)’쌍을 나타냄 지능스마트응용 연구실
RDF/XML 의 기본사항 • <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> • <rdf : datatype=&xsd;integer> • 데이터속성 타입인 ‘나이(age)’의속성 값의 범위를 정해주기 위해 사용된 애트리뷰트 • 나이(age)가정수(integer)임을나타냄 지능스마트응용 연구실
3) RDF Schema 3.1 RDF와 RDF Schema • RDF • 속성의 도메인을 제한하거나 비슷한 자원을 한 데 묶어서 클래스로 표현하는 기능이 없음 • 자원이 트리플 구조로 연결되었을때 컴퓨터가 정확하게 이해 할 수 없다. • RDF Schema • 2004년 2월 W3C 권고안으로 발표 • RDF를프레임기반으로 확장 • 도메인에 필요한 어휘와 기본 가정들의 정의 가능 • 객체지향 프로그래밍(자바) 언어의 데이터 모델과 비슷 • 클래스 상속 개념 지원 클래스이름 사람 <그림6-3 UML 클래스 다이어그램 예시> 애트리뷰트 나이 매소드 고용주 회사 전공하다 소유하다 홈페이지 홈페이지주소 전공
RDF Schema와 객체지향 모델링의 차이점 : 속성을 다루는 방법 • 객체지향 • 클래스 정의 안에 속성 포함 • 새로운 속성을 추가하려면 클래스 정의까지 수정해야 함 • RDF Schema • 속서이온톨로지 전 범위에 걸쳐 유효 • 클래스 정의를 바꾸지 않아도 새로운 속성 적용가능 • 속성을 클래스와 독립적으로 정의 • 속성에 대한 주어부가 될 수 있는 클래스(domain)와 목적부로 올 수 있는 클래스(range)를 명시 • [그림6-2]는 [그림6-3]과 같은 스키마에 대한 인스턴스 정보 • [그림 6.4]는 [그림 6-3]의 RDF Schema그래프 [그림6-4]RDF와 RDF Schema 사각형: 속성 위쪽 타원 : 클래스 아래쪽 타원 : 인스턴스 지능스마트응용 연구실
예1) “서태희는 의류디자인학을 소유하고 있다” • “소유하다”는 제약조건에 ‘고용주’를 주어부, ‘회사’를 목적부 • ‘의류디자인학’은 회사가 아니므로 ‘소유하다’의 목적부가 될 수 없음 예2) 모든 ‘사람’을 검색할 때 • ‘고용주’는 ‘사람’의 하위 클래스[그림 6-4] • 따라서 ‘서태희’,’오혜수’,’김동건’ 모두 사람으로 검색 가능 • RDFSchema의 역할 • 해당 도메인을 기술하기 위해 필요한 어휘를 정의 • 속성이 어떤 종류의 자원에 대해 적용될 수 있고 어떤 값을 취할 수 있는 지를 정의 • 자원 및 속성 간의 계층구조를 포함하는 다양한 관계를 정의 할 수 있다. <사람> 서태희 </사람> <사람> 오혜수 </사람> <고용주 이름=“김동건”> <소유하다> 온톨로지텍</소유하다> </고용주> 지능스마트응용 연구실
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 : subClassOfrdf : resource=“#Printer”/> </rdfs : Class> 지능스마트응용 연구실
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> 지능스마트응용 연구실
속성을 계층관계로 표현 • <rdfs : subPropertyOf>로표현 • ‘~의 딸이다’(isAdaughterOf)이라는 속성은 ‘~의 자식이다’(isAChildOf)라는 속성의 하위 속성 • 어떤 속성이 다른 속성의 하위 속성이 되면 이 속성은 자동적으로 상위 속성의 정의역과 공역을 자신의 정의역과 공역으로 인식 <rdfs : Property rdf : ID = “isAdaughterOf”> <rdfs : subPropertyOfrdf : resource = “#isAChildOf”> </rdf : Property> 지능스마트응용 연구실
RDF Schema 주요 어휘 지능스마트응용 연구실
3.3 RDF Schema 코딩 예 • [그림 6-4] 의 그래프로 표현된 RDF Schema를 RDF/XML로 코딩 예 지능스마트응용 연구실
4) RDF(S)의 한계점 • RDF 데이터 모델 • 자원과 속성의 트리플 구조는 간단한 형태로 무한한 지식을 표현 • 자원 – 속성 – 자원 의 형태로 분절하여 나타내기만 하면 됨 • 자원과 자원을 특정한 형태로 연결시켜 놓은 것에 불과해서 자원 간의 관계를 정확하게 나타내는 데 한계가 있음 • RDF Schema • RDF의 한계를 극복 • 유사한 개체를 묶어서 하나의 클래스로 정의 • 속성을 기술할 수 있도록 하는 스키마 언어 • 클래스와 속성의 계층구조 정의 • 각 속성이 서술부와 목적부에 어떤 값을 취할 수 있는 지 정의역과 공역의 개념 사용 • 메타데이터의 속성과 클래스 간의 관계 표현이 가능 지능스마트응용 연구실
RDF가 표현할 수 없는 것 • 속성에 대한 다양한 범위 지정 • <rdfs : rang>를 통해 특정한 속성이 지니는 속성값의 범위를 제한 • 그러나 이는 온톨로지 전체에 대해 적용하는 것이며 • 주어부에 따라 다르게 지정할 수 없어 불편할 때가 많다. • 특별한 속성의 특징 표현 • 속성에도 여러가지 종류가 있는데, • RDF(S)에서는 모든 속성을 동일하게 취급하기 때문에 분류학상으로 정교하지 못함 • 복잡한 클래스의 정의 • 클래스 역시 속성과 마찬가지로 부울 연산 등을 통해 기존의 클래스를 재조합할 수 있어야 하는데 • RDF(S)에서는이를 가능케 하는 어휘를 제공하지 않는다. • 클래스의 비접합성 표현 • 클래스간에 공통의 인스턴스가 없는 경우 • 이를 나타낼 수 있는 어휘가 없다. • 동치성과 비동치성의 표현 • 각기 다른 온톨로지를 병합하거나 재사용 할 때 이름이 다르지만 같은 의미를 지닌 클래스나 속성의 동치성을 표현할 수 없고 • 이름이 같지만 다른 의미를 지닌 클래스나 속성의 비동치성을 표현할 수 없다. • 관계차수의 제한 • 어떤 클래스가 특정한 속성을 통해 몇 개의 속성값을 지닐 수 있는지에 대해 제한 할 수 없다. • 위와 같은 표현상의 한계 때문에 모델링 요소들을 확장하고 언어의 표현력을 강화한 OWL과 같은 온톨로지 언어가 등장 지능스마트응용 연구실