Jena Seminar

Preview:

Citation preview

H ng d n: ướ ẫ TS Hoàng H u H nhữ ạH c viên : ọ Nguy n M u Qu c Hoànễ ậ ố

Mai Văn M iườ

CONTENTS Gi i thi u Eclipse Java Editorớ ệ Ki n trúc Eclipseế Cài đ t Eclipseặ Vi t ch ng trình Java b ng Eclipseế ươ ằ Thêm các th vi n c a Jena vào Eclipseư ệ ủ T ng quan v Jenaổ ề C u trúc Jena 2 – Các l p chínhấ ớ T o m t RDF Graphạ ộ Read/Write RDF File

ECLIPSE? Eclipse là ph n m m mi n phí, đ c các nhà phát ầ ề ễ ượ

tri n s d ng đ xây d ng nh ng ng d ng J2EE.ể ử ụ ể ự ữ ứ ụ

Eclipse SDK bao g m 3 ph n chính: ồ ầPlatform, Java Development Toolkit (JDT),

Plug-in Development Environment (PDE)

V i JDT, Eclipse đ c xem nh là m t môi tr ng h ớ ượ ư ộ ườ ỗtr phát tri n Java m nh m .ợ ể ạ ẽ

PDE h tr vi c m r ng Eclipse, tích h p các Plug-in ỗ ợ ệ ở ộ ợvào Eclipse Platform

ECLIPSE? Eclipse Platform là n n t ng c a toàn b ph n m m ề ả ủ ộ ầ ề

Eclipse, m c đích c a nó là cung c p nh ng d ch v ụ ủ ấ ữ ị ục n thi t cho vi c tích h p nh ng b công c phát ầ ế ệ ợ ữ ộ ụtri n ph n m m khách d i d ng Plug-in .ể ầ ề ướ ạ

JDT cũng có th đ c coi nh là m t Plug-in làm cho ể ượ ư ộEclipse nh là m t Java IDE (Integrated Development ư ộEnviroment).

Ki N TRÚC ECLIPSEẾ

The Platform runtime

Công vi c chính c a Platform runtime là phát xem ệ ủlug-in nào đang có trong th m c plug-in c a ư ụ ủEclipse.

M i Plug-in đ u có 1 t p tin Manifest li t kê nh ng ỗ ề ậ ệ ữk t n i mà plug-in c n.ế ố ầ

Pug-in ch đ c t i vào Eclipse m i khi th c s c n ỉ ượ ả ỗ ự ự ầthi t đ gi m l ng tài nguyên yêu c u và th i gian ế ể ả ượ ầ ờkh i t o.ở ạ

The Workspace

Workspace ch u trách nhi m qu n lý tài nguyên ị ệ ảng i dùng đ c t ch c d i d ng Project. M i ườ ượ ồ ứ ướ ạ ỗProject là m t th m c con trong th m c ộ ư ụ ư ụWorkspace.

Workspace b o qu n c p th p l ch s nh ng s thay ả ả ấ ấ ị ử ữ ựđ i tài nguyên, tránh th t thoát tài nguyên ng i ổ ấ ườdùng.

Workspace đ ng th i ch u trách nhi m thông bào ồ ờ ị ệnh ng công c c n thi t cho vi c thay đ i tài nguyên. ữ ụ ấ ế ệ ổ

The Workbench

Workbench là giao di n đ h a ng i dùng c a ệ ồ ọ ườ ủEclipse, g m có Standard Widget Toolkit (SWT) và ồJFace.

Eclipse không hoàn toàn b t bu c ph i s d ng SWT ắ ộ ả ử ụhay Jface đ l p trình giao di n, có th s d ng AWT ể ậ ệ ể ử ụhay SWING c a Java thông qua vi c cài đ t các Plug-ủ ệ ặins

Team support Trang b h th ng qu n tr đ qu n lý d án c a ị ệ ố ả ị ể ả ự ủ

ng i dùng : Concurrent Versions System (CVS) ườ

Team support Cung c p h th ng tài li u m r ng, có th là đ nh ấ ệ ố ệ ở ộ ể ị

d ng HTML hay XMLạ

CÀI T ECLIPSEĐẶ Tr c h t b n t i Eclipse (Classic) v t đ a ch : ướ ế ạ ả ề ừ ị ỉ

http://www.eclipse.org/downloads/ Gi i nén t p tin Eclipse SDK vào th m c mà b n ả ậ ư ụ ạ

mu n cài đ t (Ví d : C:\Eclipse). ố ặ ụ

Chép th m c JRE c a JDK vào th m c con c a th ư ụ ủ ư ụ ủ ưm c Eclipse ụ

Sau đó, ch y t p tin eclipse.exe đ hoàn thành cài ạ ậ ểđ t ặ

T NG QUAN V JENAỔ Ề Là m t ộ Java framework cho vi c xây d ng các ng ệ ự ứ

d ng web ng nghĩaụ ữ Website: http://jena.sf.net Cung c p m t môi tr ng l p trình cho ấ ộ ườ ậ RDF, RDFS

and OWL, SPARQL Bao g m các công c suy di n t các lu t c s (rule-ồ ụ ễ ừ ậ ơ ở

based inference engine) Open source Phiên b n đ u tiên ra đ i 2000 do HP Lab xây d ngả ầ ờ ự Jena 2 ra đ i vào 2003 – phiên b n hi n t i là Jena ờ ả ệ ạ

2.5.6

T NG QUAN V JENAỔ Ề Jena Framework bao g m:ồ

RDF API: Giao di n l p trình cho RDFệ ậOWL API: Giao di n l p trình cho OWLệ ậXuất và đọc các file RDF theo dạng RDF/XML, N3 và N-

TriplesCho phép lưu trữ trong bộ nhớ, lưu trữ cố định trong các tập

tin đơn hay trong các hệ quản trị cơ sở dữ liệu (MySQL, HSQLDB, PostgreSQL, Oracle, Microsoft SQL Server)

H truy v n SPARQLệ ấ

Ki N TRÚC JENA2Ế RDF Graph đ c xem là trái tim c a ki n trúc Jena 2 – t p các b ượ ủ ế ậ ộ

ba các node

Kiến trúc của Jena đã được thiết kế để cho phép tích hợp một cách dễ dàng các thành phần xử lý có thể thay thế như bộ phân tích dữ liệu (parser), xuất bản (writer), lưu trữ và truy vấn

Jena API bao gồm một tập các giao diện Java mô tả các nguồn tài nguyên (resources), các thuộc tính (properties), các phát biểu (statements) và các mô hình (model) dưới dạng khung mô tả tài nguyên RDF (Resource Description Framework)

Ki N TRÚC JENA2Ế

Các interfaces c a Jena2ủ

Ki N TRÚC JENA2Ế RDFNode interface: Cung c p các thành ph n c a ấ ầ ủ

các b ba RDF {predicate, subject, object}ộ Literal interface : Dùng để mô tả các chuỗi và chuyển

đổi một số kiểu của Java như String, Int, và Double Các đối tượng hiện thực giao diện Property có thể là một

predicate trong bộ ba {predicate, subject, object} Statement interface: mô tả bộ ba {predicate, subject,

object}. Đồng thời nó cũng có thể được dùng như một đối tượng

Các đối tượng hiện thực các giao diện Container, Alt, Bag, hoặc Seq có thể là đối tượng

T O RDF GRAPHẠ Ki n trúc Jena t p trung vào mô hình RDF (RDF ế ậ

model). Trong Jena m t l c đ RDF đ c g i là m t ộ ượ ồ ượ ọ ộModel và đ c mô t b i giao di n Modelượ ả ở ệ .

ModelFactory cung c p các method đ t o m t d ng ấ ể ạ ộ ạModel chu n ẩ

Ví d : ụ

T O RDF GRAPHẠ S d ng ử ụ createDefaultModel() đ t o m t ể ạ ộ RDF

ModelModel model = ModelFactory.createDefaultModel();

Đ t o m t Resource: ể ạ ộResource johnSmith = model.createResource(personURI);

M t RDF Model đ c xem nh là m t t p các ộ ượ ư ộ ậphát bi u (statement)ể . M i phát bi u này đ c ỗ ể ượthêm vào RDF Model b ng ph ng th c ằ ươ ứaddProperty:

johnSmith.addProperty(VCARD.FN, fullName);

Xu t Model đ c t o nh l p PrinterWriter ấ ượ ạ ờ ớc a Jenaủ :

model.write(new PrintWriter(System.out)); (xu t ra console)ấ

T O RDF GRAPHẠ K t qu xu t ra console:ế ả ấ

<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/JohnSmith"> <vcard:FN>John Smith</vcard:FN> </rdf:Description></rdf:RDF>

T O RDF GRAPHẠ Ví d 2: ụ Blank

node

T O RDF GRAPHẠ Kêt qu xu t ra d ng RDF/XML:ả ấ ạ

<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://somewhree/JohnSmith"> <vcard:N rdf:nodeID="A0"/> <vcard:FN>JohnSmith</vcard:FN> </rdf:Description> <rdf:Description rdf:nodeID="A0"> <vcard:Given>John</vcard:Given> <vcard:Family>Smith</vcard:Family> </rdf:Description></rdf:RDF>

StatementsM t statement g m 3 ph nộ ồ ầ

Subject: resource Predicate: property Objects: resource hay literal

Thông th ng m t statement đ c g i là triple (b ườ ộ ượ ọ ộba)

M t model là m t t p các statementộ ộ ậ Jena model cung c p ph ng th c listStatement() v i ấ ươ ứ ớ

giá tr tr v là StmIterator ( m t danh sách các ị ả ề ộstatement trong model )

T O RDF GRAPHẠ

Ví d 3ụ K t qu :ế ảhttp://somewhree/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#N -207df7e5:11d4b6fc7da:-

8000http://somewhree/JohnSmith http://www.w3.org/2001/vcard-rdf/3.0#FN JohnSmith-207df7e5:11d4b6fc7da:-8000 http://www.w3.org/2001/vcard-rdf/3.0#Given John-207df7e5:11d4b6fc7da:-8000 http://www.w3.org/2001/vcard-rdf/3.0#Family Smith

T O RDF GRAPHẠ

READ/WRITE RDF FILE Writing RDF

model.write(System.out); Reading RDF

String inputFileName = "input.rdf";InputStream in = FileManager.get().open(inputFileName);model.read(in,"");

Thanks for your attention