3.2.1. Yêu cầu của ứng dụng
Bài toán đặt ra phải xây dựng một trang web hỗ trợ cho ngƣời dùng với hai chức năng chủ yếu là xem và tra cứu thông tin về văn hóa Ẩm thực ở Hải Phòng.
- Hệ thống hỗ trợ cho ngƣời dùng có thể xem những tin tức mới nhất về ẩm thực ở Hải Phòng nhƣ các món ăn đặc trƣng, các món ăn mới, những địa điểm uy tín hay những thông tin liên quan khác.
- Trang tra cứu phải đáp ứng hai chức năng đó là tìm kiếm theo tên món ăn và tìm kiếm nâng cao:
+ Tìm kiếm theo tên món ăn phải đáp ứng đƣợc yêu cầu tìm dữ liệu theo nhƣ dữ liệu đƣợc nhập.
Ví dụ: Ngƣời dùng nhập tên một món ăn nào đó thì tất cả các món ăn liên quan đến tên đó sẽ đƣợc hiển thị lên. Ngƣời dùng nhập tên món Cua thì sẽ có các món nhƣ: Bánh đa cua, Cua rang muối, Cua rang me, Cua luộc, ....
+ Việc tìm kiếm phải đƣợc đảm bảo tính suy luận ngƣợc và suy luận ngang cấp của các đối tƣợng. Suy luận ngƣợc là cách suy luận dựa trên các thuộc tính khác nhau của hai đối tƣợng.
+ Tìm kiếm nâng cao phải đáp ứng đƣợc hai yêu cầu tìm kiếm theo dữ liệu quan hệ kiểu cha con và tìm kiếm dữ liệu liên quan. Tất cả dữ liệu tìm kiếm phải đƣợc kết hợp với nhau, liên kết với nhau để mở rộng khả năng tìm kiếm.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ: Tìm kiếm về Cua biển thì sẽ có các món Cua biển rang muối, .... và các thông tin liên quan đến dữ liệu tìm đƣợc nhƣ: cách chế biến, địa điểm có món Cua biển ngon, ...
Hệ thống cung cấp chức năng đối với người quản trị hệ thống.
- Ngƣời quản trị có quyền cập nhập thêm các món ăn, cập nhập các địa điểm ăn uống uy tín, cách chế biến hay những thông tin hữu ích khi thƣởng thức món ăn đó... đồng thời ngƣời quan trị hệ thống còn xử lý các góp ý của ngƣời xem.
- Quản trị các hình ảnh, tin tức, địa điểm các món ăn mới nhất đặc trƣng, liên quan.
3.2.2. Hƣớng tiếp cận và giải pháp
Mục đich chính của ứng dụng là nhúng ngữ nghĩa cho tài liệu lƣu trữ. Vì thế cần phải áp dụng một trong những kỹ thuật chính của Semantic Web đó chính là cách lƣu trữ thông tin với RDF
Giái pháp cho ứng dụng:
- Môi trƣờng thực hiện ứng dụng: ASP.NET, netFramework 4.0 - Ngôn ngữ đƣợc sử dụng để viết ứng dụng:
+ Ngôn ngữ web: C#
+ Thiết kế Ontology: Protégé
Thƣ viện dotNetRDF đƣợc sử dụng để tích hợp các công nghệ này
3.2.2.1. Các tác nhân và Use case
stt Tên tác nhân Ý nghĩa
1 Ngƣời dùng Khi truy cập vào hệ thống có thể trực tiếp xem tin tức, tra cứu thông tin hay đóng góp ý kiến về những món ăn và liên hệ với ngƣời quản trị. 2 Ngƣời quản trị (Admin) Cập nhập tin tức về ẩm thực, cập nhật thông tin về
các món ăn, xử lý các góp ý của ngƣời dùng Quản trị các hình ảnh, tin tức các món ăn
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
stt Tên tác nhân Ý nghĩa
1 Đăng nhập Đăng nhập vào hệ thống để sử dụng
2 Tra cứu Tìm các thông tin về các món ăn
3 Xem thông tin Hiển thị các thông tin về các món ăn
4 Cập nhật Ngƣời quản trị cập nhật các thông tin liên quan đến Ẩm thực Hải Phòng.
Bảng 3.2 – Các Use case trong hệ thống
Sơ đồ Use Case
Hình 3.9 – Sơ đồ Use case hệ thống
Đăng Nhập
Tìm Kiếm
Cập Nhập
Xem Thông Tin
Người Quản Trị Người Dùng
Xem tin tức Ẩm Thực
Xem các Quán Ăn Ngon
Xem các Món Ăn Ngon
Chia sẻ kinh nghiệm Xem Thông Tin
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.10 – Sơ đồ Use case xem thông tin
Hình 3.11 – Sơ đồ Use case tra cứu thông tin
Tìm kiếm món Ngon
Tìm kiếm Quán ăn ngon
Tìm kiếm các món Đặc trƣng Tìm kiếm mở rộng Tra cứu Ngƣời dùng, Admin Tin tức Ẩm thực Món Ăn Quán Ăn Món ăn đặc trƣng Cập Nhập Ngƣời dùng, Admin Dịch vụ
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.12 – Sơ đồ Use case cập nhập thông tin
3.2.2.2. Đặc tả Use case
* Use Case Đăng nhập
- Mô tả: Use case mô tả cách đăng nhập vào hệ thống tra cứu văn hóa Ẩm thực tại Hải Phòng.
- Dòng sự kiện:
+ Dòng sự kiện chính:
Use case này bắt đầu khi một actor muốn đăng nhập vào hệ thống. Hệ thống yêu cầu actor nhập tên và mật khẩu.
Actor nhập thông tin về ngƣời dùng (tên, mật khẩu).
Hệ thống kiểm tra tên ngƣời dùng và mật khẩu đã nhập và cho phép đăng nhập vào hệ thống.
+ Dòng sự kiện phụ:
Trong dòng sự kiện chính, nếu actor nhập sai thông tin ngƣời dùng thì hệ thống sẽ thông báo lỗi. Lúc này actor có thể quay về đầu dòng sự kiện hoặc hủy bỏ việc đăng nhập và lúc này use case sẽ kết thúc.
Yêu cầu đặc biệt: Để đảm bảo tính an toàn của hệ thống mỗi actor đƣợc
quyền nhập thông tin ngƣời dùng (nếu đăng nhập bị sai) tối đa 3 lần. Sau đó hệ thống sẽ tự động kết thúc use case này.
Hậu điều kiện: Nếu đăng nhập thành công thì ngƣời đăng nhập có quyền sử dụng hệ thống tƣơng ứng, ngƣợc lại trạng thái hệ thống không đổi.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.13– Sơ đồ hoạt động đăng nhập vào hệ thống
* Use Case Xem thông tin
- Mô tả: Use case này cho phép ngƣời dùng (user, admin) xem thông tin chi tiết của một tài nguyên trong hệ thống.
True
False
Đăng nhập vào hệ thống Nhập Use và Password
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Dòng sự kiện:
+ Dòng sự kiện chính:
Ngƣời dùng chọn tên tài nguyên cần xem thông tin chi tiết.
Hệ thống vào Ontology tìm URL cho tài nguyên cần tìm. Dựa vào URL đã tìm đƣợc, hệ thống sẽ theo địa chỉ này để tìm thông tin chi tiết về tài nguyên.
Trả về kết quả tìm đƣợc.
Hiển thị thông tin chi tiết về tài nguyên cho ngƣời dùng
Hình 3.14– Sơ đồ hoạt động chức năng xem thông tin
* Use Case Cập nhập thông tin
Có URL liên quan
Không có URL liên quan Kiểm tra các thực thể trong Ontology Hiển thị các thực thể liên quan Chọn mục thông tin cần xem
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Mô tả: Use case này cho phép ngƣời quản trị duy trì các thông tin về văn hóa Ẩm thực tại Hải Phòng trong hệ thống cơ sở dữ liệu. Bao gồm các thao tác: Thêm mới, hiệu chỉnh thông tin, xóa thông tin của các Món ăn ra khỏi hệ thống.
- Dòng sự kiện:
+ Dòng sự kiện chính:
Use case này bắt đầu khi ngƣời quản trị muốn thêm mới, hiệu chỉnh thông tin, xóa các thông tin liên quan đến văn hóa ẩm thực Hải Phòng ra khỏi hệ thống nhƣ: món ăn, quán ăn, địa điểm, thƣ viện ảnh
Sau khi ngƣời quản trị chọn chức năng, một trong các luồng phụ tƣơng ứng sau sẽ đƣợc thực hiện:
Thêm mới
- Hệ thống yêu cầu ngƣời quản trị nhập các thông tin về Món ăn
- Sau khi nhập đầy đủ các thông tin cần thiết, ngƣời quản trị chọn chức năng lƣu.
- Hệ thống kiểm tra tính hợp lệ và sự mâu thuẫn trong cơ sở dữ liệu của các thông tin.
- Thông tin hợp lệ thì sẽ đƣợc cập nhập vào kho cơ sở dữ liệu và danh sách các thông tin về Ẩm thực Hải Phòng sẽ đƣợc cập nhập lại và hiển thị ra màn hình.
Hiệu chỉnh thông tin
- Hệ thống truy xuất và hiển thị thông tin của các món ăn đƣợc ngƣời quản trị chọn.
- Ngƣời quản trị hiệu chỉnh một số thông tin cần thiết, bao gồm tất cả các thông tin đã đƣợc chỉ ra.
- Sau đó ngƣời quản trị chọn chức năng cập nhật. - Hệ thống kiểm tra tính hợp lệ của thông tin.
- Thông tin đƣợc cập nhật lại vào cơ sở dữ liệu và đƣợc hiển thị trở lại ra màn hình cho ngƣời sử dụng.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Ngƣời quản trị chọn các thành phần liên quan đến các món ăn - Chọn chức năng xóa.
- Hệ thống hỏi lại có muốn xóa không.
- Thông tin của các Món ăn đƣợc xóa ra khỏi kho dữ liệu.
+ Dòng sự kiện khác:
Nếu thông tin đƣợc ngƣời quản trị nhập vào trong luồn phụ thêm mới và hiệu chỉnh không đầy đủ thì hệ thống sẽ hiển thị thông báo lỗi: “Thiếu các thông tin cần thiết và bổ sung đầy đủ thông tin”. Ngƣời quản trị có thể bổ sung đầy đủ thông tin hoặc hủy bỏ thao tác đang thực hiện, lúc này use case kết thúc.
Tiền điều kiện: Ngƣời quàn trị phải đăng nhập vào hệ thống trƣớc khi use case này
có thể bắt đầu.
Hậu điều kiện: Nếu use case thành công thì thông tin về Ẩm thực Hải Phòng sẽ đƣợc bổ sung, hiệu chỉnh hoặc xóa khỏi hệ thống. Ngƣợc lại trạng thái của hệ thống không đổi.
Chỉnh sửa thông tin
Nhập thông tin
cần sửa
Thông tin sửa
Được cập nhập
F
T
Xóa thông tin
Chọn thông tin cần xóa Xóa thành công F T Nhập thông tin Nhập thông tin Mới
Thông tin mới
Được cập nhập
F
T
Lưu các thông tin
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
3.3. Xây dựng Ontology
Nhằm cụ thể hóa phân tích ở phần trên, phần này sẽ xây dựng ontology cho việc tra cứu thông tin văn hóa ẩm thực đồng thời mô tả hệ thống và các chức năng trợ giúp. Thiết kế Ontology với mục đích miêu tả lớp, thuộc tính cá thể và các mối quan hệ giữa chúng.
3.3.1. Miền và phạm vi của Ontology
Đầu tiên cần mô tả tại sao Ontology đƣợc phát triển nhƣ phạm vi sử dụng của nó. Để trả lời câu hỏi này cho phép nhìn nhận một cách nhanh chóng về lý do ontology đƣợc xây dựng và những thông tin nào chứa nó.
Ví dụ: khi thiết kế hệ thống để thực hiện truy vấn vào các món ăn phải định nghĩa các lớp đặc trƣng, thành phần dinh dƣỡng, công thức, …
Lĩnh vực cần xây dựng ontology ở đây là thông tin liên quan đến các món ăn. Miền mà ontology sẽ bao trùm là khái niệm và thông tin mô tả các đặc điểm món ăn, thành phần dinh dƣỡng, cách chế biến, nơi có các món ăn đặc trƣng để thực khách có thể tìm đến.
3.3.2. Các lớp trong Ontology
Việc phân tích các lớp là rất quan trọng thể hiện độ lớn của ứng dụng và sự bao quát của vấn đề. Trong phần này luận văn chỉ đƣa ra các lớp cơ bản của việc tra cứu ẩm thực tại Hải Phòng.
Các lớp đƣợc xây dựng:
- Lớp chính đƣợc mô tả đầu tiên bao gồm: Món ăn và chi tiết món ăn
- Chi tiết món ăn bao gồm các thông tin về món ăn sẽ bao gồm các lớp con nhƣ: tên gọi khác món ăn, lịch sử món ăn, cách chế biến, thành phần dinh dƣỡng, giá thành, các dịch vụ ăn uống.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
+ Lớp Tên gọi khác món ăn giới thiệu và mô tả tổng quát về món ăn để thực khách có thể biết đó là món ăn gì với các tên gọi khác nhau…
+ Lịch sử món ăn mô tả nguồn gốc ra đời món ăn. + Lớp cách chế biến mô tả lại cách chế biến món ăn.
+ Lớp thành phần dinh dƣỡng mô tả về thành phần dinh dƣỡng trong món ăn. + Lớp dịch vụ mô tả các dịch vụ đi kèm với món ăn nhƣ: ăn kèm, giá cả, giao hàng, …
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.16 – Minh họa các lớp của ontology bằng Protégé
3.3.3. Thuộc tính các lớp trong Ontology
Các thuộc tính thể hiện mối quan hệ giữa các đối tƣợng. Ngôn ngữ Ontology chia thuộc tiinsh làm hai loại khác nhau. Đó là thuộc tính dữ liệu và thuộc tính quan hệ.
3.3.3.1. Thuộc tính dữ liệu
- Lớp Món ăn thể hiện đƣợc đặc trƣng của món ăn đó để thực khách có thể chọn. Bao gồm các thuộc tính nhƣ: coTen, coTengoikhac, coMota, coVitri.
+ Thuộc tính coTen thể hiện tên của một món ăn. Thông tin về tên quy định kiểu dữ liệu là chuỗi.
+ Thuộc tính coTengoikhac thể hiện tên gọi khác của một món ăn
+ Thuộc tính coMota là mô tả các thông tin về món ăn hoặc các thành phần thuộc về món ăn đó.
+ Thuộc tính coVitri thể hiện địa điểm vị trí bán món ăn đó đặc trƣng.
- Lớp Chi tiết món ăn chƣa các thông tin đặc trƣng về món ăn. Lớp này bao gồm các thuộc tính nhƣ: coTen, coTengoikhac, coMota, coHinhanh.
- Lớp lịch sử món ăn chứa các thông tin về quá trình ra đời món ăn, nguồn gốc món ăn cũng nhƣ các lễ hội ẩm thực liên quan đến món ăn. Bao gồm các thuộc tính: coTen, coMota, coLehoi.
- Lớp Cách chế biến chứa thông tin về các nguyên liệu, thành phần dinh dƣỡng, và cách để làm lên món ăn. Lớp này kế thừa các thuộc tính từ lớp Chi tiết món ăn còn có thêm thuộc tính coChebien.
+ Thuộc tính coChebien thể hiện cách nấu món ăn.
- Lớp Thành phần dinh dƣỡng chứa các thông tin về dinh dƣỡng của món ăn cũng nhƣ dinh dƣỡng của các nguyên liệu cấu thành lên món ăn. Lớp này kế thừa thuộc tính của Chi tiết món ăn và thêm thuộc tính coDinhduong.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Lớp Giá thành chứa thông tin về giá các món ăn. Thuộc tính coGiathanh thể hiện giá thành của món ăn.
- Lớp Dịch vụ khác cung cấp thông tin về dịch vụ ăn uống. Lớp này kế thừa các thuộc tính của lớp Chi tiết món ăn và có thêm thuộc tính coDouong, coYeucau
+ Thuộc tính coDouong thể hiện các đồ uống đi kèm món ăn để món ăn ngon hơn, tốt cho sức khỏe hơn.
+ Thuộc tính coYeucau thể hiện các yêu cầu thêm của khách hàng nhƣ giao món ăn tại nhà, chi phí phát sinh.
Hình 3.17 – Thuộc tính dữ liệu của các lớp
3.3.3.2. Thuộc tính quan hệ
Ngoài các thuộc tính dữ liệu thì còn có các thuộc tính quan hệ. trong ứng dụng có các thuộc tính quan hệ sau:
- Thuộc tính co_Cach_che_bien - Thuộc tính co_Dich_vu_khac - Thuộc tính co_Ten_goi_khac
- Thuộc tính co_Thanh_phan_dinh_duong - Thuộc tính co_Lich_su
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Thuộc tính thuoc_Mon_an_cb - Thuộc tính thuoc_Mon_an_dv - Thuộc tính thuoc_Mon_an_gt Trong đó:
- Thuộc tính co_Cach_che_bien và thuộc tính thuoc_Mon_an_cb có mối quan hệ suy ngƣợc nhau. Nghĩa là nếu là tên món ăn nào thì có cách chế biến món ăn đó, ngƣợc lại có cách chế biến biết đƣợc tên món ăn.
- Thuộc tính co_Dich_vu_khac và thuoc_Mon_an_dv có mối quan hệ suy ngƣợc nhau. Nghĩa là món ăn thì sẽ có các dịch vụ đi kèm, ngƣợc lại dịch vụ sẽ phản ánh đc các món ăn.
- Thuộc tính co_Lich_su có mối quan hệ suy ngƣợc với thuoc_Mon_an_ls. Nghĩa là món ăn sẽ có hoàn cảnh lịch sử ra đời, ngƣợc lại với hoàn cảnh lịch sử ra đời sẽ suy ra đƣợc tên món ăn.
- Thuộc tính co_Thanh_phan_dinh_duong và thuoc_Mon_an_dd có quan hệ suy ngƣợc với nhau. Nghĩa là biết tên món ăn sẽ biết đcƣợc thành phần dinh dƣỡng có trong món ăn đó, ngƣợc lại khi có thành phần dinh dƣỡng sẽ biết đƣợc tên món ăn.