520 likes | 796 Views
2009 시맨틱 웹 튜토리얼 : RDF 집중분석. RDF 개념 및 구문 소개. 김동범 (eastkim@gmail.com, eastkim@twitter ) 시맨틱 웹 스터디 그룹 (http://groups.google.com/group/semanticwebstudy) 2009-10-31. What is RDF?. stands for. RDF. R esource D escription F ramework.
E N D
2009 시맨틱 웹 튜토리얼: RDF 집중분석 RDF 개념 및 구문 소개 김동범 (eastkim@gmail.com, eastkim@twitter)시맨틱 웹 스터디 그룹(http://groups.google.com/group/semanticwebstudy)2009-10-31
What is RDF? stands for RDF Resource Description Framework : URI를 갖는 모든 것 (웹 페이지, 이미지, 동영상등) : 자원(Resource)들의 속성, 특성, 관계 기술 : 위의 것들을 기술하기 위한 모델, 언어, 문법 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Where is RDF on the Semantic Web Layer Semantic 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년대 중반 • 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 집중분석
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 • RDF 를 빠르게 사용하기 위한 기본 지식 제공 • Concepts • 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을 갖고 있다. subject Object predicate 술어 (Property, Relation) 목적어 (Resource, Literal) 주어 (Resource) URI Blank Node URI Literal URI 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF is A Graph !! The formal semantics of RDF is described using graphs. Think in terms of graphs, not XMLor documents. By Ian Davis (ian.davis@talis.com) 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Graph Model 예제 • Subject : http://dbpedia.org/resource/Billie_Jean (URI) • Predicate: http://www.example.com/terms/singer (URI) • Object: Michael_Jackson(Literal) http://dbpedia.org/resource/Billie_Jean has a singer whose value is Michael Jackson 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 집중분석
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 집중분석
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 • 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:Thingex:relation “some text” . ex:Thing ex:relation2 “some text2” . 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Turtle – Basic Syntax • Blank Nodes @prefix ex: <http://example.com> . _:a ex:relation “some text” . • Literal with language @prefix ex: <http://example.com> . ex:thingex:relation “hello@en” . ex:thingex:relation “Bonjour@fr” . • Literals with datatype @prefix ex: <http://example.com> . ex:Thingex:relation “24”^^http://www.w3.org/2001/XMLScheme#integer . 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF/XML Syntax example title RDF 개념 및 구문 소개 http://www.dbdb.kr/rdf_tutorial author DongBumKim • <RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” • xmlns:ex=“http://www.dbdb.kr/”> <Descriptionabout=“http://www.dbdb.kr/rdf_tutorial”> <ex:author>DongBumKim</ex:author> <ex:title>RDF 개념 및 구문 소개</ex:title> </Description> </RDF> 2009 시맨틱 웹 튜토리얼: RDF 집중분석
Movie Database URI : http://movie.naver.com/ 2009 시맨틱 웹 튜토리얼: RDF 집중분석
<?xml version=“1.0”> <RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:movie=“http://movie.naver.com/”> <Descriptionrdf: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> <Descriptionrdf:about=“http://movie.naver.com/2husbands”> <movie:title>아내가 결혼했다</movie:title> … </Description> </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”> <RDFxmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:movie=“http://movie.naver.com/”> . . Description goes here . </RDF> <Descriptionrdf: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> <Descriptionrdf:about=“http://movie.naver.com/2husbands”> <movie:title>아내가 결혼했다</movie:title> … </Description> 2009 시맨틱 웹 튜토리얼: RDF 집중분석
RDF Main Elements • Properties as Attributes <Descriptionrdf:about=“http://movie.naver.com/007quantumofsolace” movie:title=“007 퀀텀오브솔러스” movie:director=“마크 포스터” movie:country=“미국” movie:runtime=“106분” movie:reviewer=“genie” /> • Properties as Resources <Descriptionrdf: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: 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 <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가 글을 작성했다 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 집중분석