JENA * JAVA FRAMEWORK FOR BUILDING SEMANTIC WEB APP

Report
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 Plugins
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ở (rulebased 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à NTriples
 Cho 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 Model
Model 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-syntaxns#"
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>
TẠO RDF GRAPH
 Statements
 Mộ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:-8000
http://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
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

similar documents