160 likes | 328 Views
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 에서 제안한 표준
E N D
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 에서 제안한 표준 • 프로그램이 의도된 의미를 이해할 수 있게 하기 위해서 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"} 인터넷기술 강혜원
RDF 란 {dc:Publisher, http://www.w3.org, "World Wide Web Consortium"} {dc:Title, http://www.w3.org, "W3C Home Page"} 인터넷기술 강혜원
Jena API • RDF 를 Processing 하기 위한 library • RDF 를 parse, create 하거나 search 하기위한 interface 제공 인터넷기술 강혜원
vCard 의 RDF 표현 vCard - profile defined by RFC 2426 인터넷기술 강혜원
Creating(Writing) RDF 성 : “강” 이름 : “혜원”Email :pipi76@hanmail.net 인터넷기술 강혜원
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)) 인터넷기술 강혜원
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> 인터넷기술 강혜원
Reading RDF 인터넷기술 강혜원
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), ""); 인터넷기술 강혜원
Querying a model – vcard database에 질의 • “강혜원” 의 nickname 검색 • Database 에 있는 모든 사람의 이름 검색 • 이름이 “혜원” 으로 끝나는 사람의 이름 검색 인터넷기술 강혜원
Querying code StmtIterator iter = model.listStatements( new SelectorImpl(null, VCARD.FN, (RDFNode) null) { public boolean selects(Statement s) { try { return s.getString() .endsWith("혜원"); } 인터넷기술 강혜원
Jena를 이용한 검색엔진 process <HTML> <HEAD> <rdf:RDF… ……. </rdf:RDF> </HEAD> ……. A.html <HEAD> 사이에 RDF 가 있는 파일만 가져옴 parsing B.html A.html Triple model 생성 C.html RDF-aware search engine crawler {title, http://bookstore.com/book12, "The Connoisseur's Guide to the Mind"} D.html query 인터넷기술 강혜원
결론 • 효율적인 RDF interpretation 을 위한 tool 및 Library 필요 • Jena API 는 자바의 객체지향적 성격과 RDF의 결합을 통해 효율적 Processing 제공 • 향후 멀티미디어 데이터의 RDF에 대한 효율적 interface 제공 필요 인터넷기술 강혜원
참고 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 인터넷기술 강혜원