RDF 개념 및 구문 소개 2009 시맨틱 웹 튜토리얼: RDF 집중분석 김동범 (eastkim@gmail.com, eastkim@twitter) 시맨틱 웹 스터디 그룹 (http://groups.google.com/group/semanticwebstudy) 2009-10-31
RDF stands for Resource Description Framework What is RDF? : URI를 갖는 모든 것 (웹 페이지, 이미지, 동영상 등) : 자원(Resource)들의 속성, 특성, 관계 기술 : 위의 것들을 기술하기 위한 모델, 언어, 문법 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Where is RDF on the Semantic Web Layer Aspect 시맨틱 웹 표준의 첫 번째 Layer Web Aspect Image source : http://www.w3.org/2007/Talks/0130-sb-W3CTechSemWeb/ 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Definition W3C RDF 문서에서의 정의 Framework for representing information in the Web. 웹에 있는 Resource에 대한 정보를 표현하기 위한 언어 특히, 웹 Resource에 대한 Metadata를 표현하기 위함. 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF 탄생 스토리 1990년대 중반 1997년 1998년 RDF 제안 (W3C) Ramanathan V. Guha (Apple) MCF (Meta Content Framework) 라는 메타데이터 포맷 개발 RDF의 모태가 됨 1997년 Guha의 Netscape로 이직 Tim Bray 와 함께 MCF/XML 프로젝트 착수 MCF/XML: Microsoft 의 CDF (Channel Document Format) 과 경쟁하기 위한 프로젝트 1998년 RDF 제안 (W3C) 시맨틱 웹의 기본 구성요소가 됨 2009 시맨틱 웹 튜토리얼: RDF 집중분석
(information science) Semantic Web 언어의 흐름 DAML+OIL RDF Scheme (W3C WD) RDF (W3C WD) DAML Ontology (information science) SPARQL (WD) 1996.11 1999 2002 1970s 1997.08 1998.04 1999 2000 2004.10 XML (W3C WD) OIL (Europe IST Project) OWL (W3C WD)
왜 RDF를 만들었을까? 웹은 글로벌하고 방대한 정보 공간 그런데 지금의 웹은 사람은 보기 쉽지만 기계가 처리하기에는 너무 모호하고 힘들어. 웹에 있는 정보를 데이터베이스처럼 표현할 수 없을까? (Linked Data, Web of Data) 그러면 웹 상의 정보를 기계가 좀 더 처리하기 쉬울텐데... (Machine processible, readable, understandable) 또 웹에 흩어진 정보를 가져와서 내 정보와 쉽게 결합할 수 있을 텐데... (Interworking among the applications) 2009 시맨틱 웹 튜토리얼: RDF 집중분석
W3C RDF 문서들 Primer Concepts Syntax Semantics Vocabularies RDF Concept, Abstract Syntax (RDF Graph) Syntax RDF 모델에 대한 XML Syntax (RDF/XML), N-triples Semantics RDF, RDF Schema 가 담고 있는 의미론, 추론 규칙에 대한 설명 Vocabularies RDF Schema와 RDF Vocabulary를 기술하는 방법 http://www.w3.org/RDF/ 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Data Model 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Data Model RDF는 Graph Model 을 갖고 있다. predicate 주어 (Resource) 술어 subject Object predicate 주어 (Resource) 술어 (Property, Relation) 목적어 (Resource, Literal) URI Blank Node URI URI Literal 2009 시맨틱 웹 튜토리얼: RDF 집중분석
By Ian Davis (ian.davis@talis.com) RDF is A Graph !! The formal semantics of RDF is described using graphs. Think in terms of graphs, not XML or documents. By Ian Davis (ian.davis@talis.com) 2009 시맨틱 웹 튜토리얼: RDF 집중분석
By Ian Davis (ian.davis@talis.com) Graph Model 예제 http://dbpedia.org/resource/Billie_Jean has a singer whose value is Michael Jackson Subject : http://dbpedia.org/resource/Billie_Jean (URI) Predicate: http://www.example.com/terms/singer (URI) Object: Michael_Jackson (Literal) By Ian Davis (ian.davis@talis.com) 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Basic Graph http://dbpedia.org/resource/Billie_Jean http://www.example.com/terms/released http://www.example.com/terms/singer 1983-01-02 Michael_Jackson 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Basic Graph 확장 http://dbpedia.org/resource/Billie_Jean http://www.example.com/terms/released http://www.example.com/terms/singer 1983-01-02 http://dbpedia.org/resource/Michael_Jackson http://www.example.com/terms/name http://www.example.com/terms/age Michael_Jackson 44 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Typed Literal http://dbpedia.org/resource/Billie_Jean http://www.example.com/terms/released http://www.example.com/terms/singer “1983-01-02”^^xsd:date http://dbpedia.org/resource/Michael_Jackson http://www.example.com/terms/name http://www.example.com/terms/age Michael_Jackson 44^^xsd:integer 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Merge by linking 서로 다른 source를 나타내는 그래프는 병합될 수 있다. 같은 URI를 가진 Node는 같은 resource를 취급한다. 어떤 RDF도 다른 RDF와 병합될 수 있다. 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Source : http://research.talis.com Merging Example Source : http://research.talis.com 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Schema 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Schema RDF Schema는 property에 대한 추가 정보 제공함으로써 사용 방법을 보다 명확히 함 (Domain, Range) Resource의 타입을 기술 (type, Class) Book, Person, Publisher Not Like XML Scheme Resource를 설명하는데 있어 의미 표현을 추가한 것 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Source : http://research.talis.com RDFS example Resource <http://example.com/ISBN/xxxx> 의 타입(type)은 <http://ex.org/bib/Book> 이다. http://example.com/ISBN/xxxx Source : http://research.talis.com 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDFS example <http://ex.org/bib/Book> 은 <http://ex.org/bib/ArtisticWork> 의 하위 클래스다. 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDFS example <http://example.com/ISBN/xxxx> 의 타입이 <http://ex.org/bib/Book> 이면, 또한 <http://ex.org/bib/ArtisticWork> 의 타입을 갖는다. http://example.com/ISBN/xxxx 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Domain 과 Range 속성은 Domain(정의역)과 Range(공역)를 가질 수 있다. Domain은 Property의 Subject 의 클래스를 알려준다. Range는 Property의 Object(Value)의 클래스를 알려준다. 2009 시맨틱 웹 튜토리얼: RDF 집중분석
다음과 같은 Triple 있다. 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Property <http://ex.org/bib/author>는 아래와 같이 domain 과 range를 갖는다 2009 시맨틱 웹 튜토리얼: RDF 집중분석
우리는 이와 같이 subject와 object 의 type을 추론할 수 있다. 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Syntax 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Graph를 언어로 표현하기 Turtle RDF/XML a text based format, easy to scribble, easy to read RDF/XML an XML based format, hard to read/write 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Turtle – Basic Syntax Triple은 마침표(.) 로 끝을 맺는다. URIs 는 <> 로 감싸서 표현한다. Literal 은 “” 로 감싼다. 약식 URI를 위해 prefix를 사용한다 <http://example.com/Thing> <http://example.com/relation> “some text” . @prefix ex: <http://example.com> . ex:Thing ex:relation “some text” . ex:Thing ex:relation2 “some text2” . 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Turtle – Basic Syntax Blank Nodes Literal with language @prefix ex: <http://example.com> . _:a ex:relation “some text” . Literal with language @prefix ex: <http://example.com> . ex:thing ex:relation “hello@en” . ex:thing ex:relation “Bonjour@fr” . Literals with datatype @prefix ex: <http://example.com> . ex:Thing ex:relation “24”^^http://www.w3.org/2001/XMLScheme#integer . 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF/XML Syntax example title RDF 개념 및 구문 소개 author DongBum Kim http://www.dbdb.kr/rdf_tutorial author DongBum Kim <RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:ex=“http://www.dbdb.kr/”> <Description about=“http://www.dbdb.kr/rdf_tutorial”> <ex:author>DongBum Kim</ex:author> <ex:title>RDF 개념 및 구문 소개</ex:title> </Description> </RDF> 2009 시맨틱 웹 튜토리얼: RDF 집중분석
URI : http://movie.naver.com/ Movie Database URI : http://movie.naver.com/ 2009 시맨틱 웹 튜토리얼: RDF 집중분석
title director country runtime genre reviewer 007 퀀텀 오브 솔러스 마크 포스터 미국 106분 액션 genie 아내가 결혼했다 정윤수 한국 119분 멜로 eastkim … <?xml version=“1.0”> <RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:movie=“http://movie.naver.com/”> <Description rdf:about=“http://movie.naver.com/007quantumofsolace”> <movie:title>007 퀀텀 오브 솔러스</movie:title> <movie:director>마크 포스터</movie:director> <movie:country>미국</movie:country> <movie:runtime>106분</movie:runtime> <movie:reviewer>genie</movie:reviewer> </Description> <Description rdf:about=“http://movie.naver.com/2husbands”> <movie:title>아내가 결혼했다</movie:title> … </RDF> 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Main Elements <rdf:RDF> Element RDF 문서의 root Element <rdf:Description> Element about 속성을 가진 resource를 식별(기술)하기 위해 사용 Resource를 기술하기 위한 여러 Element(title, director, etc)를 포함 <?xml version=“1.0”> <RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:movie=“http://movie.naver.com/”> . . Description goes here </RDF> <Description rdf:about=“http://movie.naver.com/007quantumofsolace”> <movie:title>007 퀀텀 오브 솔러스</movie:title> <movie:director>마크 포스터</movie:director> <movie:country>미국</movie:country> <movie:runtime>106분</movie:runtime> <movie:reviewer>genie</movie:reviewer> </Description> <Description rdf:about=“http://movie.naver.com/2husbands”> <movie:title>아내가 결혼했다</movie:title> … 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Main Elements Properties as Attributes Properties as Resources <Description rdf:about=“http://movie.naver.com/007quantumofsolace” movie:title=“007 퀀텀 오브 솔러스” movie:director=“마크 포스터” movie:country=“미국” movie:runtime=“106분” movie:reviewer=“genie” /> Properties as Resources <Description rdf:about=“http://movie.naver.com/007quantumofsolace”> <movie:title>007 퀀텀 오브 솔러스</movie:title> <movie:director>마크 포스터</movie:director> <movie:country>미국</movie:country> <movie:runtime>106분</movie:runtime> <movie:reviewer>genie</movie:reviewer> </Description> 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Main Elements rdf: rdfs: Alt, Bag, Description, ID, List, Property, Statement, Seq, XMLLiteral about, first, nodeID, object, parseType, predicate, resource, rest, subject, type, value, nil rdfs: Class, Container, ContainerMembershipProperty, Datatype, Literal, Resource comment, domain, isDefinedBy, label, member, range, sellAlso, subClassOf, subPropertyOf 2009 시맨틱 웹 튜토리얼: RDF 집중분석
XML과 무엇이 다른가? 2009 시맨틱 웹 튜토리얼: RDF 집중분석
다음 XML이 나타내고자 하는 것은? or may be or may be or may be <author> <uri>page</uri> <name>Ora</name> </author> <document> <details> <uri>href=“page”</uri> <author> <name>Ora</name> </author> </details> </document> or may be <document href=“page”> <author>Ora</author> </document> <document> <author> <uri>href=“page”</uri> <details> <name>Ora</name> </details> </author> </document> or may be <document href=“http://www.w3.org/test/page” author=“Ora” /> 2009 시맨틱 웹 튜토리얼: RDF 집중분석
What is the author of page? <v> <x> <y>a=“pppp”</y> <z> <w>qqqqq</w> </z> </x> </v> 위 구문에서 설명하고자 하는 것은 무엇인가? x z y 인가? 2009 시맨틱 웹 튜토리얼: RDF 집중분석
In RDF Graph <Description about="http://www.w3.org/test/page" Author ="Ora" /> <?xml version="1.0"?> <Description about="http://www.w3.org/test/page“> <s:Author ="http://www.w3.org/staff/Ora" /> </Description> page Ora has author 2009 시맨틱 웹 튜토리얼: RDF 집중분석
The RDF Graph displays the same thing <Description about=“x" y=“z” /> <?xml version="1.0"?> <Description about=“x“> <y =“z” /> </Description> x z y 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Ora는 ‘page’의 저자이고, 영화 ‘xxx’에 출연했다 분산된 데이터의 웹에서 Ora가 글을 작성했다 Ora가 영화 ‘xxx’에 출연했다 통합문서 Ora는 ‘page’의 저자이고, 영화 ‘xxx’에 출연했다 xxx page Ora has author plays in 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF 활용 (RDF Vocabularies) RSS 1.0 FOAF FRBR Creative Commons SKOS Geo 2009 시맨틱 웹 튜토리얼: RDF 집중분석
감사합니다. Question? 2009 시맨틱 웹 튜토리얼: RDF 집중분석