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 ườ
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