Tìm hiểu RDF database, đồ thị ý niệm viết ứng dụng minh họa cho phép người dùng sử dụng đồ thị ý niệm truy vấn, tìm kiếm dữ liệu RDF trực tuyến

80 432 0
Tìm hiểu RDF database, đồ thị ý niệm  viết ứng dụng minh họa cho phép người dùng sử dụng đồ thị ý niệm truy vấn, tìm kiếm dữ liệu RDF trực tuyến

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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ìm hiểu RDF-Database, đồ thị ý niệm Viết ứng dụng minh họa cho phép người dùng sử dụng đồ thị ý niệm truy vấn, tìm kiếm liệu RDF trực tuyế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ìm hiểu RDF-Database, đồ thị ý niệm Viết ứng dụng minh họa cho phép người dùng sử dụng đồ thị ý niệm truy vấn, tìm kiếm liệu RDF trực tuyế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 ứng dụ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ìm kiế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ìm hiểu vài cơng nghệ tảng Semantic Web như: RDF/RDF Schema, ngôn ngữ truy vấn liệu RDF – SPARQL, đồ thị ý niệm, ontology Từ xây dựng ứng dụng web minh họa, cho phép người dùng truy vấn, tìm kiếm liệu đồ thị ý niệm Nội dung: Gồm hai phần: sở lý thuyết ứng dụng minh họ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ả ứng dụng ■ Phân tích ứng dụ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 Ứng dụ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 ứng dụng minh 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ệu RDF 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 ứng dụ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 ứng dụng chạy trình duyệt làm việc nhanh không ứng dụ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ệ cho phé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 cho phép người tạo ứng dụ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 cho phép làm việc: JotSpot: thành viên xa làm việc trang; ThinkFree: làm gần đủ thứ với ứng dụng Office (Word, Excel Powerpoint) Microsoft; Writeboard: chia sẻ ý tưởng trực tuyến (writeboard.com); Basecamp: quản lý dự án (www.basecamphq.com); HipCal: lên lịch làm việc trực tuyế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ực tuyế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ụ ứng dụng web người dù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ìm kiế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ệ cho phé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” cho phép sử 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ìm kiế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ìm kiếm tháng năm 2006 Hình 1.1: Thị phần cơng cụ tìm kiếm tháng 7-2006 Với loạt cơng cụ tìm kiếm vậy, thực tế người sử 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ể cho phép người dùng tìm kiếm từ khóa mà việc tìm kiếm đơi chưa đủ Lấy ví dụ, người muốn tìm kiế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ìm kiế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ìm kiế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 ứng dụ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ị cho người dù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ụng cho ứng dụ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 ứng dụng mở, giao diện sau: 66 Hình 7.4: Trang chủ ứng dụ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ệu RDF 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 truy vấ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

Ngày đăng: 21/05/2018, 15:12

Mục lục

  • 1.2 Mục tiêu và phạm vi

  • Chương 2: Web ngữ nghĩa

    • 2.1 Web ngữ nghĩa là gì?

    • 2.2 Cấu trúc của một Semantic Web

    • 3.2 Các khái niệm cơ bản:

    • 3.3 Cấu trúc RDF/XML

    • 4.2. Tạo một câu truy vấn đơn giản

    • 4.3. Cú pháp của câu truy vấn

    • 4.5. Những dạng cú pháp khác

    • 4.8. Ràng buộc dữ liệu

    • 4.9. Các phép toán và điều kiện trên câu truy vấn

    • 5.2. OWL (Ontology Web Language)

    • 5.3. Ngôn ngữ con của của OWL

    • 5.4. Các thành phần Class:

    • 5.5. Các thành phần Properties

    • 6.2. Mô tả câu truy vấn bằng đồ thị ý niệm:

    • 6.3. Phân loại cách thức biểu diễn của CG:

    • 6.4. Mở rộng thuộc tính:

    • Chương 7: Xây dựng ứng dụng

      • 7.1. Chức năng ứng dụng:

      • 7.2. Cách thức hoạt động:

      • 7.3. Các yêu cầu của ứng dụng:

Tài liệu cùng người dùng

Tài liệu liên quan