JENA JAVA FRAMEWORK FOR BUILDING SEMANTIC WEB APPLICATIONS
JENA – JAVA FRAMEWORK FOR BUILDING SEMANTIC WEB APPLICATIONS 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 J 2 EE. 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 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 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 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, N 3 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 (My. SQL, HSQLDB, Postgre. SQL, Oracle, Microsoft SQL Server) Ø Hệ truy vấn SPARQL
KiẾN TRÚC JENA 2 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 JENA 2 Các interfaces của Jena 2
KiẾN TRÚC JENA 2 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,
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. Factory cung cấp các method để tạo một dạng Model chuẩn Ví dụ:
TẠO RDF GRAPH Sử dụng create. Default. Model() để tạo một RDF Model model = Model. Factory. create. Default. Model(); Để tạo một Resource: Resource john. Smith = model. create. Resource(person. URI); 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 add. Property: john. Smith. add. Property(VCARD. FN, full. Name); Xuất Model được tạo nhờ lớp Printer. Writer của Jena: model. write(new Print. Writer(System. out)); (xuất ra console)
TẠO RDF GRAPH Kết quả xuất ra console: <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: vcard="http: //www. w 3. org/2001/vcard-rdf/3. 0#" > <rdf: Description rdf: about="http: //somewhere/John. Smith"> <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. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: vcard="http: //www. w 3. org/2001/vcard-rdf/3. 0#" > <rdf: Description rdf: about="http: //somewhree/John. Smith"> <vcard: N rdf: node. ID="A 0"/> <vcard: FN>John. Smith</vcard: FN> </rdf: Description> <rdf: Description rdf: node. ID="A 0"> <vcard: Given>John</vcard: Given> <vcard: Family>Smith</vcard: Family> </rdf: Description> </rdf: RDF>
TẠO RDF GRAPH Statements v 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 list. Statement() với giá trị trả về là Stm. Iterator ( một danh sách các statement trong model )
TẠO RDF GRAPH Ví dụ 3 Kết quả : http: //somewhree/John. Smith http: //www. w 3. org/2001/vcard-rdf/3. 0#N 207 df 7 e 5: 11 d 4 b 6 fc 7 da: -8000 http: //somewhree/John. Smith http: //www. w 3. org/2001/vcard-rdf/3. 0#FN John. Smith -207 df 7 e 5: 11 d 4 b 6 fc 7 da: -8000 http: //www. w 3. org/2001/vcard-rdf/3. 0#Given John -207 df 7 e 5: 11 d 4 b 6 fc 7 da: -8000 http: //www. w 3. org/2001/vcard-rdf/3. 0#Family Smith
READ/WRITE RDF FILE Writing RDF model. write(System. out); Reading RDF String input. File. Name = "input. rdf"; Input. Stream in = File. Manager. get(). open(input. File. Name); model. read(in, "");
Thanks for your attention
- Slides: 24