RDF 개념 및 구문 소개

12,293 views

Published on

2009년 10월 31일. 시맨틱웹 스터디 모임과 웹 사이언스 그룹에서 개최한 '시맨틱 웹 튜토리얼' 발표자료

Published in: Technology
2 Comments
19 Likes
Statistics
Notes
No Downloads
Views
Total views
12,293
On SlideShare
0
From Embeds
0
Number of Embeds
142
Actions
Shares
0
Downloads
438
Comments
2
Likes
19
Embeds 0
No embeds

No notes for slide

RDF 개념 및 구문 소개

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

×