JENA * JAVA FRAMEWORK FOR BUILDING SEMANTIC WEB APP
Download
Report
Transcript JENA * JAVA FRAMEWORK FOR BUILDING SEMANTIC WEB APP
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