CHƯƠNG 1: KIẾN THỨC CƠ SỞ Nội dung chương này sẽ bao gồm giới thiệu chung về công nghệ Web ngữ nghĩa, những khó khăn và ý nghĩa của công nghệ này. Chương này cũng trình bày về các nghiên cứu liên quan như khái niệm, ý nghĩa của Ontology và ngôn ngữ truy vấn. Từ những cơ sở nghiên cứu này ta sẽ có thể xác định rõ hướng nghiên cứu của luận văn.1 Web ngữ nghĩa 1.1 Khái niệm về Web ngữ nghĩa Web ngữ nghĩa không là một phiên bản Web riêng biệt mà là một sự mở rộng của Web hiện tại, theo cách mà các thông tin được xác định ý nghĩa tốt hơn, cho phép máy tính và người cộng tác với nhau một cách tốt hơn. Web ngữ nghĩa được hình thành từ ý tưởng của Tim Berners-Lee, người phát minh ra WWW (World Wide Web), URI (Uniform Resource Identification), HTTP, và HTML.
Web ngữ nghĩa là mạng lưới các nguồn thông tin được liên kết sao cho chúng có thể được xử lý và tím kiếm dễ dàng bởi các máy tính ở phạm vi toàn cầu. Web ngữ nghĩa được xem như là một cách mô tả thông tin rất hiệu quả trên World Wide Web, và cũng được xem là một cơ sở dữ liệu có khả năng liên kết với mạng lưới toàn cầu. Web ngữ nghĩa là phương pháp cho phép người dùng định nghĩa và liên kết dữ liệu một cách có ngữ nghĩa hơn nhằm phục vụ cho máy tính có thể “hiểu” và tìm kiếm được.Ngoài ra Web ngữ nghĩa còn cung cấp môi trường được chia sẻ và xử lý dữ liệu tự động. Ví dụ: Ta cần phải so sánh giá cả để mua một bộ máy vi tính hoặc ta cần tra cứu mẫu của các hãng chế tạo xe máy khác nhau để tìm ra thiết bị có thể thay thế cho các bộ phận bị hư hỏng.
Các thông tin mà ta thu thập được trực tiếp trên các Web có thể trả lời các câu hỏi này nhưng cần con người có sự phân tích ý nghĩa của dữ liệu từ chúng và sự liên quan với yêu cầu đề ra và không thể xử lý tự động được bằng máy tính. Với Web ngữ nghĩa ta có thể giải quyết vấn đề này bằng 2 cách: 4 Thứ nhất: Web ngữ nghĩa sẽ mô tả chi tiết những dữ liệu theo cách riêng. Vì vậy ta không cần quan tâm đến các định dạng (format) hay hình ảnh, quảng cáo trên trang Web để tìm ra sự liên quan của các thông tin. Thứ hai: Web ngữ nghĩa cho phép chúng ta tạo ra một tệp mô tả các mối liên hệ giữa những tập dữ liệu khác nhau.
Ví dụ: chúng ta có thể tạo ra một liên kết có ngữ nghĩa giữa cột mã số quốc gia (zip code) trong cơ sở dữ liệu chung với trường “zip” ở trên giao diện nhập liệu nếu chúng có chung ý nghĩa. Điều này cho phép máy tính có thể theo các đường liên kết và có thể tích hợp dữ liệu từ nhiều nơi khác nhau. Sự liên kết các nguồn khác nhau (khái niệm, hình ảnh, video, tài liệu,…) với tập các mối quan hệ mới giữa các nguồn dữ liệu, cho phép có thể mở rộng Web thành một môi trường mới, tạo ra các mối liên hệ ngữ cảnh, điều mà các Web hiện tại không có.2 Kiến trúc Web ngữ nghĩa Web ngữ nghĩa là tập hợp của các ngôn ngữ. Các lớp Web ngữ nghĩa sử dụng để có thể đảm bảo độ an toàn và các giá trị của thông được trở nên tốt nhất.
Kiến trúc Web ngữ nghĩa 5 - Lớp Unicode & URI: Bảo đảm việc sử dụng các tập kí tự quốc tế và cung cấp các phương tiện nhằm định danh đối tượng trong Web ngữ nghĩa. URI đơn giản chỉ là một định danh Web giống như các chuỗi bắt đầu bằng “http” hay “ftp” mà bạn thường xuyên thấy trên mạng (ví dụ: http://www. Bất kỳ ai cũng có thể tạo một URI, và có quyền sở hữu chúng. Vì vậy đã hình thành nên nền tảng để xây dựng một hệ thống mạng toàn cầu thông qua chúng.
- Lớp XML cùng với những định nghĩa về không gian tên (namespace) và lược đồ (schema) để bảo đảm rằng chúng ta có thể tích hợp các định nghĩa về Web ngữ nghĩa với các chuẩn XML khác. - Lớp RDF và RDFS: có thể tạo các phát biểu (statement) với những bộ từ vựng và định nghĩa của URI để có thể mô tả các đối tượng. Đây là lớp lớp quan trọng nhất trong kiến trúc của hệ thống Web ngữ nghĩa, từ đó chúng ta có thể gán các kiểu cho các tài nguyên và liên kết. - Lớp Ontology: thực hiện định nghĩa mối liên hệ giữa các khái niệm với nhau, hỗ trợ các bộ từ vựng.
Bản thể luận trong logic (Ontology) định nghĩa bộ từ vựng mang tính thông thường và phổ biến, cho phép các nhà nghiên cứu chia sẻ thông tin của một hay nhiều lĩnh vực. - Lớp Digital Signature: dùng để xác định một chủ thể nhất định của tài liệu (ví dụ như tác giả hay nhan đề của một cuốn sách). - Các lớp Logic, Proof, Trust: lớp logic cho phép quy định các luật (rule) thi hành các luật và cùng với lớp thử nghiệm (proof) và lớp chứng nhận (trust) đánh giá nhằm quyết định nên hay không chấp nhận những vấn đề đã được thử nghiệm.1 Giới thiệu RDF RDF (Resource Description Framework) hay khung mô tả tài nguyên, là nền tảng cho việc biểu diễn các dữ liệu trong lĩnh vực Web có ngữ nghĩa. RDF là một tập hợp nhiều nguyên tắc dành cho ngôn ngữ đánh dấu, cung cấp mô hình dữ liệu và các 26 <rdf:Description rdf:about="http://family/Nam"> <j.0:anhemcua rdf:resource="http://family/Tung"/> <j.0:concua> <rdf:Description rdf:about="http://family/hoa"> <j.0:chamecua rdf:resource="http://family/Tung"/> <j.0:chamecua rdf:resource="http://family/Nam"/> <j.0:vochongcua rdf:resource="http://family/hai"/> </rdf:Description> </j.0:concua rdf:resource="http://family/hai"/> </rdf:Description> </j.0:concua rdf:resource="http://family/hoa"/> <j.0:concua rdf:resource="http://family/hai"/> </rdf:Description> </j.0:chamecua rdf:resource="http://family/Nam"/> <j.0:vochongcua rdf:resource="http://family/hoa"/> <j.0:anhemcua rdf:resource="http://family/mai"/> </rdf:Description> </j.0:anhemcua> </rdf:Description> </rdf:RDF> 2.3 Đọc mô hình RDF Phần này tôi sử dụng truy vấn SPARQL để xuất ra ?s ?p ?o của tất cả các tài nguyên trong tập tin family.
public class truyvan{ public truyvan (){ } public static void main(String[] args) { //duong dan den tap tin RDF final String inputFileName = "C:\\family.rdf"; Model model = ModelFactory.createDefaultModel(); 27 InputStream in = FileManager.read( in, ""); //chuoi truy van String queryString = "PREFIX quanhe:<http://purl.org/vocab/quanhe/>"+ "SELECT * " + " {" + " ?s ?p ?o. }"; Query query = QueryFactory.create(queryString); QueryExecution qe = QueryExecutionFactory.create(query, model); ResultSet results = qe.execSelect(); // ResultSetFormatter ResultSetFormatter.out, results, query); qe.close(); } } Kết quả xuất ra dưới định dạng Turtle: Hình 2. Dữ liệu xuất dưới dạng Turtle 28 2.3 Chuyển đổi dữ liệu Web ngữ nghĩa Trong phần này tôi sử dụng thư viện jxl.jar để thao tác với tập tin Excel. Sau đó sử dụng Jena để tạo mô hình dữ liệu RDF.
Thêm các tài nguyên và thuộc tính với dữ liệu đọc từ file Excel. Cuối cùng xuất dữ liệu ra tập tin RDF với định dạng XML. Đoạn code sau mô tả quá trình trên: import jxl.Sheet; import jxl.Workbook; …… //Tạo mô hình RDF mới model = ModelFactory.createDefaultModel(); //File Excel chứa dữ liệu bệnh nhân File file = new File("C:\\Data_BenhNhan.xls"); Workbook wb = Workbook.getWorkbook(file2); Sheet sheet = wb.getSheet(0); int rows = sheet.getRows(); int cols = sheet.createResource(benhNhanUri +sheet.getContents()); } //Khởi tạo một đối tượng Bệnh nhân mới BENHNHAN_RDF benhnhan = new BENHNHAN_RDF(); File file2=new File("C:\\BENHNHAN.rdf"); FileOutputStream f2=new FileOutputStream(file2); //Dùng đối tượng RDFWiter của Jena để ghi dữ liệu dưới dạng XML RDFWriter d2 = benhnhan.4 Framework Spring MVC 2.1 Giới thiệu về Framework Spring MVC Spring là một trong những framework để phát triển các ứng dụng Java được sử dụng bởi hàng triệu lập trình viên trên thế giới. Spring giúp tạo ra các ứng dụng có hiệu năng cao, dễ dàng kiểm thử, sử dụng lại code một cách hợp lý.
Spring gọn nhẹ và trong suốt (nhẹ: với kích thước nhỏ, version cơ bản chỉ khoảng 2 megabytes; trong suốt: hoạt động một cách trong suốt với đối lập trình viên), Spring là một mã 29 nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất lớn trên tehes giới. Spring Framework xây dựng dựa trên 2 nguyên tắc thiết kế chính là: Dependencies Injection và Aspect Orient Programming. Những tính năng cốt lõi của Spring có thể được sử dụng để phát triển phần mềm máy tính ,các ứng dụng di động hay các Website bằng Java. Mục tiêu chính của Spring là giúp phát triển các ứng dụng Java dễ dàng hơn.
Các thành phần chính trong Spring 2.2 Ví dụ trang web Spring MVC cơ bản package com.servingwebcontent; import org.Controller; import org.Model; import org.GetMapping; import org.RequestParam; @Controller public class HelloController { @GetMapping("/hello") public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) { model.addAttribute("name", “World”); return "greeting"; } 30 } <!DOCTYPE HTML> <html xmlns:th="http://www.org"> <head> <title>Getting Started: Serving Web Content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p th:text="'Hello, ' + ${name} + '!'" /> </body> </html> Kết quả sẽ hiển thị dòng chữ "Hello World!" trên trình duyệt.5 Tiểu kết chương 2 Chương 2 mô tả các các thành phần, công cụ để tạo nên ứng dụng Web ngữ nghĩa. Đầu tiên kiến trúc và cách cài đặt môi trường lập trình Java Intellij. Tiếp theo là Jena API – một thư viện Java dùng để chuyển đổi, lưu trữ dữ liệu Web ngữ nghĩa. Cách chuyển đổi dữ liệu từ tập tin Excel sang dữ liệu RDF.
Chương này cũng trình bày về Spring MVC để lập trình Web ngữ nghĩa, tạo các giao diện hiển thị kết quả các truy vấn SPARQL trên tập tin RDF. 31 CHƯƠNG 3: ỨNG DỤNG TÌM KIẾM THÔNG TIN BỆNH NHÂN COVID-19 TẠI VIỆT NAM Trong chương này sẽ trình bày các vấn đề: thu thập dữ liệu bệnh nhân COVID- 19 tại Việt Nam. Phân tích vấn đề và lập trình dựa trên dữ liệu từ Internet, thực hiện truy vấn để tìm kiếm các thông tin cần thiết.1 Giới thiệu bài toán tìm kiếm thông tin bệnh nhân COVID-19 Từ dữ liệu hồ sơ bệnh án (trích xuất biểu đồ) có thể cho chúng ta có thể biết thêm về bệnh nhân COVID-19 và quá trình bệnh của họ. Những dữ liệu này có thể bao gồm thông tin về nhân khẩu học (tuổi, chủng tộc/dân tộc, giới tính), cũng như các triệu chứng, phương pháp điều trị và kết quả.
Các nhà khoa học có thể sử dụng trích xuất biểu đồ để tìm hiểu những người có khả năng mắc bệnh nặng hơn, những dịch vụ chăm sóc y tế bệnh nhân đã nhận được và bệnh nhân đã hồi phục chưa. Với những nội dung đã tìm hiểu ở các phần trên trên, luận văn sẽ sử dụng công nghệ Web ngữ nghĩa để xây dựng một ứng dụng minh họa nhằm phục vụ cho việc lưu trữ, truy vấn, tìm kiếm các thông tin bệnh nhân COVID-19 tại Việt Nam.1 Kiến trúc hệ thống Ứng dụng hỗ trợ thông tin khách hàng gồm ba phần: phần thứ nhất là module chuyển đổi dữ liệu người bệnh hiện có sang định dạng bộ ba RDF sử dụng khung ứng dụng Jena. Phần thứ hai là lưu trữ dữ liệu và truy vấn dữ liệu theo định dạng bộ ba RDF.