16
02-06-09 인인인인인 인인인 Java 인 인인인 RDF Process 인인인인인 012ITI01 인인인

Java 를 이용한 RDF Process 인터넷기술 012ITI01 강혜원

Embed Size (px)

DESCRIPTION

Java 를 이용한 RDF Process 인터넷기술 012ITI01 강혜원. Index. RDF 란 Jena API Vcard 의 RDF 표현 Creating(Writing) RDF vCard database Reading RDF Querying a model – vcard database 에 질의 Jena 를 이용한 검색엔진 process. RDF 란. Resource Description Framework- 리소스를 묘사하기 위해 W3C 에서 제안한 표준 - PowerPoint PPT Presentation

Citation preview

02-06-09 인터넷기술 강혜원

Java 를 이용한 RDF Process

인터넷기술 012ITI01강혜원

02-06-09 인터넷기술 강혜원

Index

RDF 란 Jena API Vcard 의 RDF 표현 Creating(Writing) RDF vCard database Reading RDF Querying a model – vcard database 에 질의 Jena 를 이용한 검색엔진 process

02-06-09 인터넷기술 강혜원

RDF 란

Resource Description Framework- 리소스를 묘사하기 위해 W3C 에서 제안한 표준

프로그램이 의도된 의미를 이해할 수 있게 하기 위해서 XML Syntax 로 정보를 나타냄

하나의 statement - a triple of the form {predicate, subject, object}

<subject> has a property <predicate> whose value is <object>

{numberOfHits, http://www.foo.com/index.html, 3000}

{title, http://bookstore.com/book12, "The Connoisseur's Guide to the Mind"}

02-06-09 인터넷기술 강혜원

RDF 란

{dc:Publisher, http://www.w3.org, "World Wide Web Consortium"}

{dc:Title, http://www.w3.org, "W3C Home Page"}

02-06-09 인터넷기술 강혜원

Jena API

RDF 를 Processing 하기 위한 library RDF 를 parse, create 하거나 search

하기위한 interface 제공

02-06-09 인터넷기술 강혜원

vCard 의 RDF 표현

vCard - profile defined by RFC 2426

02-06-09 인터넷기술 강혜원

Creating(Writing) RDF

성 : “ 강” 이름 : “ 혜원” Email :[email protected]

02-06-09 인터넷기술 강혜원

Creating RDF code

String personURI = "http://somewhere/ 강혜원 ";

String givenName = " 혜원 ";

String familyName = " 강 ";

String fullName = givenName + " " + familyName;

……………

Model model = new ModelMem();

Resource johnSmith

= model.createResource(personURI)

.addProperty(VCARD.FN, fullName)

.addProperty(VCARD.N,

model.createResource()

.addProperty(VCARD.Given, givenName)

.addProperty(VCARD.Family,familyName))

02-06-09 인터넷기술 강혜원

vCard database<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:vCard='http://www.w3.org/2001/vcard-rdf/3.0#' >

<rdf:Description rdf:about="http://somewhere/kang/"> <vCard:FN> 강혜원 </vCard:FN> <vCard:N rdf:parseType="Resource">

<vCard:Family> 강 </vCard:Family><vCard:Given> 혜원 </vCard:Given>

</vCard:N> </rdf:Description>

중간생략 <rdf:Description rdf:about="http://somewhere/kwon/"> <vCard:FN> 권오연 </vCard:FN> <vCard:N rdf:parseType="Resource">

<vCard:Family> 권 </vCard:Family><vCard:Given> 오연 </vCard:Given>

</vCard:N> </rdf:Description> </rdf:RDF>

02-06-09 인터넷기술 강혜원

Reading RDF

02-06-09 인터넷기술 강혜원

Reading RDF code

static final String inputFileName

= "com/hp/hpl/mesa/rdf/jena/tutorial/vc-db1.rdf";

…………………

Model model = new ModelMem();

InputStream in = Tutorial05.class

.getClassLoader()

.getResourceAsStream(inputFileName);

…………………..

model.read(new InputStreamReader(in), "");

02-06-09 인터넷기술 강혜원

Querying a model – vcard database에 질의

“ 강혜원” 의 nickname 검색

Database 에 있는 모든 사람의 이름 검색

이름이 “혜원” 으로 끝나는 사람의 이름 검색

02-06-09 인터넷기술 강혜원

Querying code

StmtIterator iter = model.listStatements(

new

SelectorImpl(null, VCARD.FN, (RDFNode) null) {

public boolean selects(Statement s) {

try {

return s.getString()

.endsWith(" 혜원 ");

}

02-06-09 인터넷기술 강혜원

Jena 를 이용한 검색엔진 process

A.html

B.html

C.html

D.html

<HEAD> 사이에 RDF 가 있는 파일만 가져옴

RDF-aware search engine crawler

<HTML>

<HEAD>

<rdf:RDF…

…….

</rdf:RDF>

</HEAD>

…….

A.html

parsing

{title, http://bookstore.com/book12, "The Connoisseur's Guide to the Mind"}

Triple model 생성

query

02-06-09 인터넷기술 강혜원

결론

효율적인 RDF interpretation 을 위한 tool 및 Library 필요

Jena API 는 자바의 객체지향적 성격과 RDF 의 결합을 통해 효율적 Processing 제공

향후 멀티미디어 데이터의 RDF 에 대한 효율적 interface 제공 필요

02-06-09 인터넷기술 강혜원

참고 Paper&Site

Jena: Implementing the RDF Model and Syntax Specification (Brian McBride,Hewlett Packard Laboratories Bristol, UK)

http://www.w3.org/TR/vcard-rdf ftp://ftp.isi.edu/in-notes/rfc2426.txt http://www.w3.org/TR/REC-rdf-syntax/ Jena-1.4.0\doc\tutorial\index.html