Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 80 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
80
Dung lượng
1,59 MB
Nội dung
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Lý Hưng Thịnh Tìmhiểu RDF-Database, đồthịýniệmViếtứngdụngminhhọachophépngườidùngsửdụngđồthịýniệmtruyvấn,tìmkiếmliệuRDFtrựctuyến Chuyên ngành : Công nghệ thông tin Mã số : 01.01.11 Luận văn tốt nghiệp cử nhân khoa học máy tính Giáo viên hướng dẫn khoa học : THS VÕ HOÀNG HẢI THÀNH PHỐ HỒ CHÍ MINH 2008 TỔNG LIÊN ĐỒN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG Lý Hưng Thịnh Tìmhiểu RDF-Database, đồthịýniệmViếtứngdụngminhhọachophépngườidùngsửdụngđồthịýniệmtruyvấn,tìmkiếmliệuRDFtrựctuyến Chuyên ngành : Công nghệ thông tin Mã số : 01.01.11 Luận văn tốt nghiệp cử nhân khoa học máy tính Giáo viên hướng dẫn khoa học : THS VÕ HỒNG HẢI THÀNH PHỐ HỒ CHÍ MINH 2008 Lời cảm ơn Xin chân thành cảm ơn khoa Công nghệ thơng tin, Tốn ứngdụng Đại học Tơn Đức Thắng hỗ trợ, tạo điều kiện thuận lợi cho tơi q trình học tập khoảng thời gian thực đề tài tốt nghiệp Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy Võ Hồng Hải - người thầy hướng dẫn trực tiếp q trình nghiên cứu hồn thành luận văn này, thầy tận tình hướng dẫn, truyền đạt nhiều kiến thức bổ ích thú vị Tơi gửi lời cảm ơn tới anh nhóm Java cơng ty ASAO Entertainment cho tơi nhiều góp ý đắn Gia đình bạn bè nhân tố tinh thần to lớn giúp tơi vượt qua nhiều khó khăn Tôi muốn gửi lời cảm ơn tới đàn anh trước để lại nhiều tài liệu hay nhà khoa học toàn giới phát minh hệ web Cảm ơn Google, cơng cụ tìmkiếm giúp tơi tìm hầu hết tài liệu cần Cuối cùng, xin cảm ơn tất người, cảm ơn đời cho tơi ngày hơm Tóm lược Mục đích: Tìmhiểu vài cơng nghệ tảng Semantic Web như: RDF/RDF Schema, ngôn ngữ truy vấn liệuRDF – SPARQL, đồthịý niệm, ontology Từ xây dựngứngdụng web minh họa, chophépngườidùngtruyvấn,tìmkiếmliệuđồthịýniệm Nội dung: Gồm hai phần: sở lý thuyết ứngdụngminhhọa a) Lý thuyết: ■ Giới thiệu web ngữ nghĩa ■ RDF/ RDF Schema – thành phần tảng web ngữ nghĩa ■ Ngôn ngữ truy vấn RDF ■ Ontology ■ Đồthịýniệm b) Xây dựngứng dụng: ■ Mô tả ứngdụng ■ Phân tích ứngdụng ■ Thiết kế, cài đặt ■ Hạn chế, hướng phát triển Công cụ: Các ngôn ngữ sử dụng: XML, RDF, RDF Schema, Ontology Ứngdụng cài đặt ngơn ngứ lập trình: Java, JavaScript Sửdụng công cụ hỗ trợ: protege Kết quả: viết báo cáo luận văn nội dung kể Chương trình ứngdụngminh hoạ: CGQueryTourist Mục lục Chương 1: Giới thiệu đề tài - 1.1 Bối cảnh 1.2 Mục tiêu phạm vi Chương 2: Web ngữ nghĩa 10 2.1 Web ngữ nghĩa gì? 10 2.2 Cấu trúc Semantic Web 12 Chương 3: RDF - Nền tảng Semantic Web 14 3.1 Giới thiệu: 14 3.2 Các khái niệm bản: 14 3.2.1 Namespace: 14 3.2.2 Qualified name(QName) cách sửdụng 14 3.2.3 Mơ hình RDF ( RDF Model) 15 3.3 Cấu trúc RDF/XML 20 3.3.1 Cú pháp RDF/XML 20 3.3.2 RDF Container 20 3.3.3 RDF Collection 21 3.4 RDF Schema 21 3.5 Kết luận: 22 Chương 4: Truy vấn liệuRDF 23 4.1 Giới thiệu 23 4.2 Tạo câu truy vấn đơn giản 23 4.3 Cú pháp câu truy vấn 24 4.4 Blank node 25 4.5 Những dạng cú pháp khác 26 4.6 RDF Collections 27 4.7 RDF Literal 27 4.8 Ràng buộc liệu 28 4.8.1 Thêm vào kiểu Optional 29 4.8.2 Ràng buộc khối Optional 30 4.8.3 Nhiều khối Optional 31 4.8.4 Khối Optional lồng 31 4.9 Các phép toán điều kiện câu truy vấn 32 4.9.1 Phép hội 32 4.9.2 Phép chiếu 33 4.9.3 Distinct 33 4.9.4 ORDER BY 34 -1- 4.9.5 LIMIT 34 4.9.6 Lựa chọn biến trả 35 4.10 Kết luận: 35 Chương 5: Ontology 36 5.1 Khái niệm 36 5.2 OWL (Ontology Web Language) 38 5.3 Ngôn ngữ của OWL 39 5.3.1 OWL Full: 39 5.3.2 OWL DL: 39 5.3.3 OWL Lite: 40 5.4 Các thành phần Class: 41 5.5 Các thành phần Properties 41 5.6 Tổng kết 42 Chương 6: Đồthị ngữ nghĩa 43 6.1 Khái niệm: 43 6.2 Mô tả câu truy vấn đồthịý niệm: 44 6.3 Phân loại cách thức biểu diễn CG: 45 6.4 Mở rộng thuộc tính: 46 6.5 Kết luận: 47 Chương 7: Xây dựngứngdụng 48 Chức ứng dụng: 48 Cách thức hoạt động: 48 Các yêu cầu ứng dụng: 48 Yêu cầu lưu trữ: 48 Yêu cầu giao diện: 48 Yêu cầu chức năng: 48 Yêu cầu phi chức năng: 49 Mơ hình ứng dụng: 50 Kiến trúc phía Client: 51 Kiến trúc phía Server: 52 Các loại thông điệp truyền nhận client – server 56 Danh sách Object: 56 Danh sách thuộc tính Object: 57 Danh sách Relation: 57 Mơ hình u cầu truy vấn: 57 Kết tìm kiếm: 58 Các bố sung client, Openjacob: 59 Vẽ đối tượng: 59 -2- Tạo/xóa/sửa thuộc tính: 59 Vẽ quan hệ: 59 Thời điểm tạo quan hệ: 60 Thanh công cụ: 61 Dịch đồthịýniệm XML: 61 Phân tích kết trả Server: 62 Các thuật toán chi tiết: 62 Tìm thuộc tính kiểu đối tượng: 62 Tìm kiểu liệu thuộc tính: 63 Tìm quan hệ hai kiểu đối tượng: 63 Chuyển đồthịýniệm dạng XML: 64 Chuyển liệu XML Đối tượng: 65 Tạo câu truy vấn từ đối tượng: 65 Giao diện ứng dụng: 66 Trang chủ: 66 Trang hiển thị kết quả: 69 Trang hiển thị mã XML: 69 Ví dụ: 69 Chương 8: Tổng kết 73 Tài liệu tham khảo 74 Phụ lục 75 -3- Chương 1: Giới thiệu đề tài Chúng ta chìm ngập thơng tin lại khát khao tri thức (John Naisbitt) 1.1 Bối cảnh Web chuyển vào thời kỳ tinh tế Chúng ta tốn thời gian cho việc ngao du Internet, đọc tải thứ tìm thấy Giờ có hội để thể tơi qua việc chia sẻ quan điểm, hình ảnh; trao đổi với người khác văn bản, tiếng nói video hay bổ sung liệu vào đồ giới Các ứngdụng chạy trình duyệt làm việc nhanh không ứngdụng cài đặt PC, nhờ kỹ thuật lập trình Ajax (Asynchronous JavaScript and XML) Ruby on Rails Các công nghệ chophép thực nhiều tác vụ PC người dung, điều có nghĩa phải trao đổi qua lại với máy chủ Các chương trình chạy trình duyệt tương tác với website tốt hơn, dễ dàng Ví dụ Google, Amazon site lớn khác chophépngười tạo ứngdụng móc nối tới liệu thong qua thư viện lập trình API Việc chuyển từ hưởng thụ sang tham gia thay đổi then chốt cách mạng Web 2.0 Một số người khác gọi “Open API” (thư viện mở) ám việc chia sẻ thư viện hàm API Có thể nói năm 2006 năm bùng nổ trang Web 2.0: Các mạng xã hội trực tuyến: MySpace, FaceBook, Yahoo 360, Opera Community Website chophép làm việc: JotSpot: thành viên xa làm việc trang; ThinkFree: làm gần đủ thứ với ứngdụng Office (Word, Excel Powerpoint) Microsoft; Writeboard: chia sẻ ý tưởng trựctuyến (writeboard.com); Basecamp: quản lý dự án (www.basecamphq.com); HipCal: lên lịch làm việc trựctuyến (hipcal.com); Digg: săn lùng tin tức công nghệ (www.digg.com) -4- Chia sẻ hình ảnh, video: Flickr: flickr.com, Picaboo: picaboo.com, YouTube: www.youtube.com, Google video: video.google.com Bản đồtrực tuyến: Google Earth: earth.google.com, Yahoo Maps: maps.yahoo.com, GeoBloggers: thông tin địa lý (geobloggers.com), MapLandia: đem giới đến PC (maplandia.com), Trulia: tìm nhà trựctuyến (www.trulia.com) Thật sự, Web 2.0 khơng phải hồn tồn mà phát triển từ Web Nó Web dùng lâu nay, có điều làm việc với Web theo cách khác Các website khơng “ốc đảo” mà trở thành nguồn thông tin chức năng, hình thành nên mơi trường điện tốn phục vụ ứngdụng web ngườidùng Xu hướng chuyển đổi sang Web 2.0 diễn mạnh mẽ xu tất yếu Thế nhưng, điều đồng nghĩa với việc gia tăng cách chóng mặt trang web, số lượng thơng tin mà cung cấp Tuy nhiên, lượng thơng tin khổng lồ tạo khó khăn lớn việc tìmkiếm chia sẻ thông tin WWW Sự phát triển nhanh chóng thúc đẩy đời hệ web mới, web ngữ nghĩa (Semantic Web) Một cơng nghệ chophép máy tính “hiểu” thơng tin liệu biểu diễn dạng thích hợp với người Theo định nghĩa Tim Berners Lee, giám đốc tổ chức World Wide Web Consortium (http://www.w3c.org), đồng thời cha đẻ WWW, Web ngữ nghĩa mở rộng WWW cách thêm vào mô tả ý nghĩa (hay ngữ nghĩa) thơng tin mà máy tính “hiểu” chophépsử lý thông tin hiệu Như Web có ngữ nghĩa bao gồm thông tin biểu diễn theo cách truyền thống với ngữ nghĩa thông tin biểu diễn tuờng minh Việc thêm phần ngữ nghĩa cung cấp thêm tri thức cho chương trình (agent), giúp nâng cao chất lượng phân loại, tìm kiếm, trao đổi thông tin Sự phát triển mạnh mẽ cơng cụ tìmkiếm (search engine metasearch engine) minh chứng cho điều Các công cụ sửdụng nhiều phải kể đến Google, Yahoo, MSN, Ask, … Hình cho thấy thị phần cơng cụ tìmkiếm tháng năm 2006 Hình 1.1: Thị phần cơng cụ tìmkiếm tháng 7-2006 Với loạt cơng cụ tìmkiếm vậy, thực tế ngườisửdụng chưa thể truy cập thơng tin cách nhanh chóng hiệu Phần lớn công cụ kể chophépngườidùngtìmkiếm từ khóa mà việc tìmkiếm đơi chưa đủ Lấy ví dụ, người muốn tìmkiếm tài liệu liên quan đến danh tướng Trần Hưng Đạo chẳng hạn Người phải nhập vào cơng cụ tìmkiếm từ khóa “Trần Hưng Đạo” Hình 1-2 cho thấy kết trả từ Google Hình 1.2: Kết tìmkiếm trả từ Google Phân tích kết trả Server: Chức sửdụng nhiều nơi nhiều lần ứngdụng Mục đích chức nhận liệu trả dạng XML, phân tích chuỗi XML này, trình bày hiển thịchongườidùng Chức sửdụng kỹ thuật DOM chủ yếu Chức thực lớp sau: MyAjax, MyDOM, MyThickBox Các thuật tốn chi tiết: Tìm thuộc tính kiểu đối tượng: Như trình bày trên, kiểu đối tượng khơng có có nhiều thuộc tính Các thuộc tính theo chế quản lý RDF khoảng (range) kiểu đối tượng, hay nói cách khác ta tìm tất thuộc tính có miền (domain) kiểu đối tượng cần tìm Ta có hai trường hợp: o Thuộc tính có miền chứa kiểu đối tượng o Thuộc tính có miền blank node chứa nhiều kiểu đối tượng khác Như vậy, danh sách thuộc tính hợp hai trường hợp Thuật toán cần liệu đầu vào kiểu đối tượng, kết trả danh sách thuộc tính Trường hợp 1: lấy danh sách thuộc tính đơn miền(x){ kết nối máy chủ liệu; thực câu truy vấn: lấy tất thuộc tính có miền x; với thuộc tính đơn miền{ lấy thuộc tính thuộc tính này; thêm thuộc tính vào danh sách; } } Trường hợp 2: lấy danh sách thuộc tính đa miền(x){ lấy danh sách thuộc tính đa miền; if(x thuộc kiểu đối tượng danh sách thuộc tính đa miền) 62 thêm thuộc tính vào danh sách; } Khi lấy danh sách thuộc tính đa miền, liệu lưu lại cho lần sửdụng sau dạng XML sau: [object_type] ……… ………… Kết quả: hợp danh sách trường hợp Chi tiết thuật giải “lấy danh sách thuộc tính đa miền” lấy danh sách thuộc tính đa miền(){ while(con bên trái vị trí trỏ chưa null){ thêm bên phải vào danh sách; chuyển trỏ tới bên trái; } } Tìm kiểu liệu thuộc tính: Kiểu liệu thuộc tính quy định bên ontology Mục đích việc tìm kiểu liệu để tạo điều kiện FILTER phù hợp với kiểu liệu Thuật giải cần đầu vào kiểu thuộc tính kết trả kiểu liệu bản: int, float, string, date, boolean… lấy kiểu liệu(x){ kết nối máy chủ liệu; thực câu truy vấn: lấy khoảng thuộc tính; } Tìm quan hệ hai kiểu đối tượng: Mục đích việc nhằm giới hạn lựa chọn quan hệ hai kiểu đối tượng bất kì, tăng tính dễ sửdụngchoứngdụng Thuật giải 63 cần đầu vào kiểu hai đối tượng cần tạo quan hệ kết trả danh sách quan hệ Có hai trường hợp để tìm quan hệ trên: o Quan hệ kiểu đối tượng o Quan hệ nhiều kiểu đối tượng Trường hợp 1: danh sách quan hệ nhất(x, y){ kết nối máy chủ liệu; thực câu truy vấn: lấy quan hệ có khoảng y miền x; } Trường hợp 2: danh sách quan hệ phức tạp(x, y){ liệt kê danh sách quan hệ có miền chứa x; liệt kê danh sách quan hệ có khoảng chứa y; giao hai danh sách trên; } Kết quả: hợp trường hợp Chuyển đồthịýniệm dạng XML: XMLSerialize(){ danh sách hình(); với hình thuộc danh sách{ while(hình thuộc tính) kết += tên thuộc tính + giá trị thuộc tính; } danh sách quan hệ(); với quan hệ thuộc danh sách{ kết += tên quan hệ; với hình thuộc danh sách hình{ if(id hình == id hình nguồn quan hệ) kết += id hình nguồn; if(id hình == id hình đích quan hệ) kết += id hình đích; 64 } }} Chuyển liệu XML Đối tượng: danh sách đối tượng(){ đọc tất thẻ XML có tên thẻ “MySubject”; với thẻ thuộc danh sách thẻ “MySubject”{ tạo đối tượng Leaf; gán giá trị cho đối tượng; thêm đối tượng vào danh sách đối tượng; } } danh sách quan hệ(){ đọc tất thẻ XML có tên thẻ “MyRelation”; với thẻ thuộc danh sách thẻ “MyRelation”{ tạo đối tượng Composite; gán giá trị cho đối tượng; với id danh sách id nguồn Composite{ tìm đối tượng Leaf có id với id trên; thêm Leaf vào danh sách đối tượng nguồn; } với id danh sách id đích Composite{ tìm đối tượng Leaf có id với id trên; đối tượng NewComposite có id với id trên; thêm Leaf NewComposite vào danh sách đích; } thêm đối tượng vào danh sách đối tượng; } } Tạo câu truy vấn từ đối tượng: tạo sinh câu truy vấn(){ 65 danh sách Composite(); với phần tử danh sách{ lấy nút bên trái(); với thuộc tính nút trên{ if(giá trị thuộc tính != ?){ thêm tên thuộc tính ?x vào SELECT; thêm mệnh đề có dạng ?a prefix:abc ?x vào WHERE; }else{ tạo điều kiện truy vấn dựa vào kiểu thuộc tính; thêm mệnh đề có dạng ?a prefix:abc ?x + điều kiên truy vấn vào WHERE; } } Thêm mệnh đề ?a prefix:tên quan hệ ?b vào WHERE; lấy nút bên phải(); với thuộc tính nút trên{ if(giá trị thuộc tính != ?){ thêm tên thuộc tính ?x vào SELECT; thêm mệnh đề có dạng ?a prefix:abc ?x vào WHERE; }else{ tạo điều kiện truy vấn dựa vào kiểu thuộc tính; thêm mệnh đề có dạng ?a prefix:abc ?x + điều kiên truy vấn vào WHERE; } } } } Giao diện ứng dụng: Trang chủ: Khi ứngdụng mở, giao diện sau: 66 Hình 7.4: Trang chủ ứngdụng Cột bên trái danh mục kiểu đối tượng quan hệ Gồm tab sau: Chúng ta đóng/mở bảng danh mục Nếu đóng giao diện sau: 67 Với thẻ để chuyển từ trang vẽ đồthị sang hiển thịliệu hiển thị mã XML: Thanh công cụ gồm chức sau: Object: vẽ đối tượng XML: phân tích nội dungđồthịýniệm dạng XML Query: thực truy vấn liệuRDF từ đồthịýniệm Author: trang thông tin tác giả Khi vẽ kiểu đối tượng, ta thêm thuộc tính vào, cách nhấp đúp vào đối tượng Ví dụ: ta vẽ đối tượng có tên ConferenceRoom Nhấp đúp vào đối tượng có kiểu ConferenceRoom, ta có bảng thơng tin chi tiết, ta hồn tồn thêm, xóa, thay đổi thuộc tính Các dấu ? đại diện cho thuộc tính cần truy vấn Giá trị thuộc tính kiểu luận lý, kiểu chuỗi, kiểu số Giá trị chuyển kiểu phía server để truy vấn xác 68 Trang hiển thị kết quả: Trang hiển thị kết gồm có hai phần: câu truy vấn tạo từ đồthị bảng kết truy vấn Trong phần hiển thị câu truyvấn, ta viết lại câu truy vấn khác nhấn nút Query để truy vấn câu truy vấn thep ngôn ngữ SPARQL Trang hiển thị mã XML: Ví dụ: Câu truy vấn: Tìm tên khách sạn đánh giá sao; khách sạn sửdụng ngơn ngữ gì; có kinh độ, vĩ độĐồ thị: 69 Accomodation: khách sạn, tên, “3 sao” thuộc tính khách sạn Language: ngơn ngữ GPSCoordinates: tọa độ 70 Kết quả: Câu truy vấn PREFIX PREFIX PREFIX PREFIX rdf: rdfs: owl: base: SELECT ?AccomodationhasName ?Language ?GPSCoordinateshasLongitude ?GPSCoordinateshasLatitude WHERE { ?Accomodation rdf:type base:Accomodation ?Accomodation base:hasName ?AccomodationhasName ?Accomodation base:hasStarRating ?AccomodationhasStarRating FILTER ( ?AccomodationhasStarRating