Tuy nhiên, hiện nay chưa có một hệ thống nhằm cung cấp thông tin và đưa ra các tư vấn cần thiết cho việc xây dựng một ngôi nhà theo nhu cầu riêng mỗi người.. Nhằm mục đích nghiên cứu về
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRẦN THỊ HỒNG NHUNG
XÂY DỰNG HỆ THỐNG HỖ TRỢ TƯ VẤN THIẾT KẾ NHÀ DÂN DỤNG DỰA TRÊN
Trang 2Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: PGS.TS VÕ TRUNG HÙNG
Phản biện 1: TS HUỲNH HỮU HƯNG
Phản biện 2: TS NGUYỄN THÁI SƠN
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ kỹ thuật chuyên ngành Khoa học máy tính họp tại
Trường Đại học Trà Vinh vào ngày 16 tháng 09 năm 2017
Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học Bách
khoa
- Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa –
Đại học Đà Nẵng
Trang 3MỞ ĐẦU
1 Lý do chọn đề tài
Cùng với sự phát triển kinh tế - xã hội, nhu cầu về xây dựng các ngôi nhà phù hợp với mỗi gia đình đang đặt ra trong thực tế Tuy nhiên, hiện nay chưa có một hệ thống nhằm cung cấp thông tin và đưa ra các tư vấn cần thiết cho việc xây dựng một ngôi nhà theo nhu cầu riêng mỗi người Nhằm mục đích nghiên cứu về Web ngữ nghĩa
và ứng dụng xây dựng một hệ thống cung cấp thông tin và tư vấn cho người dùng để chọn lựa, thiết kế ngôi nhà phù hợp nhất, tác giả đăng
ký thực hiện đề tài “Xây dựng hệ thống hỗ trợ tư vấn thiết kế nhà dân dụng dựa trên Semantic Web”
2 Mục tiêu và nhiệm vụ
Xây dựng được kho dữ liệu về thông tin tham khảo khi thiết kế nhà dân dụng, xây dựng thành công ứng dụng Semantic Web để cung cấp thông tin về thiết kế nhà dân dụng cho người dân có nhu cầu Nghiên cứu tổng quan về Semantic Web bao gồm các khái niệm liên quan, các công cụ, cách thức xây dựng một Semantic Web và các ứng dụng của Semantic Web Phân tích thiết kế và xây dựng hệ thống tra cứu thông tin về thiết kế nhà dân dụng dựa trên Semantic Web
3 Đối tượng và phạm vi nghiên cứu
Cơ sở ý thuyết và nền tảng để xây dựng một ứng dụng về
Sematic Web, thông tin thiết kế nhà dân dụng, phương pháp xây dựng và lưu trữ dữ liệu trong Semantic Web và các công cụ dùng để xây dựng Semantic Web Xây dựng kho dữ liệu trong lĩnh vực thiết
kế nhà dân dụng, khảo sát ý kiến, thu thập dữ liệu và xây dựng ứng dụng cung cấp thông tin thiết kế nhà dân dụng khu vực đồng bằng sông Cửu Long
Trang 44 Giả thiết nghiên cứu
Hệ thống cung cấp thông tin tham khảo về thiết kế nhà dân dụng ra đời sẽ phục vụ tốt hơn cho việc cung cấp thông tin nhà dân dụng, tìm hiểu và nghiên cứu về nhà ở khu vực đồng bằng sông Cửu Long
5 Phương pháp nghiên cứu
Nghiên cứu tài liệu, công cụ và công nghệ liên quan đến
Semantic Web Tiêu chuẩn thiết kế nhà ở, nguyên lý thiết kế nhà ở Tổng hợp các tài liệu liên quan đến nhà ở khu vực đồng bằng sông Cửu Long để thiết kế kho dữ liệu tham khảo về nhà dân dụng Phân tích hệ thống, xây dựng Ontology cho hệ thống, xây dựng ứng dụng thực tế, thực nghiệm trên các công cụ hỗ trợ phát triển Semantic Web, kiểm tra, kiểm thử và đánh giá kết quả
6 Ý nghĩa khoa học và thực tiễn của đề tài
Đề tài nghiên cứu tiếp cận công nghệ mới về xử lý thông tin
của Web ngữ nghĩa Nghiên cứu phát triển một ứng dụng đảm bảo tính chính xác thông tin Ứng dụng Semantic Web về mặt tìm kiếm Xây dựng hệ thống cung cấp thông tin về thiết kế kế nhà dân dụng cho phép người dùng tìm kiếm thông tin về nhà dân dụng của khu vực đồng bằng sông Cửu Long, xây dựng Ontology cho hệ thống Cung cấp cho người dùng một số thông tin thiết kế khi thiết kế nhà dân dụng, tiết kiệm chi phí tư vấn thiết kế nhà ở dân dụng
Trang 5TỔNG QUAN VỀ SEMANTIC WEB CHƯƠNG 1.
1.1 Tổng quan Web ngữ nghĩa
1.1.1 Sự ra đời của Semantic Web
World Wide Web (WWW) chứa một lượng thông tin khổng
lồ, máy tính chỉ có nhiệm vụ gửi nhận dữ liệu và thể hiện thông tin dưới dạng mà chỉ có con người mới đọc hiểu được Người sử dụng phải làm nhiệm vụ tìm kiếm, suy luận, tổng hợp và trích rút thông tin mình cần Điều đó đã đặt ra thách thức là làm sao để khai thác thông tin trên Web hiệu quả hay nói cách khác là làm thế nào để máy tính
có thể xử lý tự động được chúng Từ đó Web 3.0 - Semantic Web ra đời nhằm đáp ứng những yêu cầu về xử lý và tìm kiếm thông tin, cho phép chúng ta xây dựng những CSDL phục vụ tìm kiếm chính xác
1.1.2 Khái niệm
Semantic Web là một cách nhìn về cách tổ chức dữ liệu: đó
là ý tưởng về việc dữ liệu trên Web được định nghĩa là liên kết theo một cách mà nó có thể được sử dụng bởi máy tính với mục đích không chỉ cho việc hiển thị mà còn tự động hóa, tích hợp và sử dụng lại dữ liệu qua các ứng dụng khác nhau
1.2 Kiến trúc của Semantic Web
1.2.1 Giới thiệu
Semantic Web được xây dựng trên nền hệ thống Web hiện tại Semantic Web được coi là sự mở rộng của Web hiện tại có bổ sung thêm ngữ nghĩa vào dữ liệu trên Web Hình 1.2 chỉ ra sơ đồ kiến trúc của Semantic Web theo đề xuất của Tim Berners Lee
Trang 6Hình 1.1 Kiến trúc Web ngữ nghĩa
1.2.2 Vai trò của các tầng
1.2.2.1 Tầng Unicode và URI
Unicode: Là một bảng mã chuẩn chung có đủ các ký tự để thống nhất sự giao tiếp trên tất cả các quốc gia, đáp ứng tính nhất quán toàn cầu của Web
URI (Uniform Resource Identifier): Là kí hiệu nhận dạng Web đơn giản giống như các chuỗi bắt đầu bằng “http” hay “ftp” mà chúng ta thường xuyên thấy trên mạng Hệ thống World Wide Web được xây dựng trên chúng và bất kỳ cái gì mà có một URI thì được coi là “trên Web”
1.2.2.2 Tầng XML
XML (eXtensible Markup Language) là ngôn ngữ đánh dấu
mở rộng, cho phép người dùng có thể tùy ý thêm vào những thẻ theo yêu cầu của mình dựa theo chuẩn SGML (Standard Generalized Markup Language): Siêu ngôn ngữ có khả năng sinh ngôn ngữ khác) SGML được phát triển cho việc định cấu trúc và nội dung tài liệu điện tử do tổ chức ISO (International Organization for Standards) chuẩn hoá năm 1986
Trang 71.2.2.3 Tầng RDF và RDFS (RDF schema)
RDF (Resource Description Framework): Khung mô tả tài nguyên được W3C giới thiệu để cung cấp một cú pháp chuẩn để tạo, thay đổi và sử dụng các chú thích trong Semantic Web Một mệnh đề RDF là một bộ ba có dạng [chủ đề, thuộc tính, đối tượng] Trong đó, chủ đề là tài nguyên mà được mô tả bằng thuộc tính và đối tượng Thuộc tính thể hiện mối quan hệ giữa chủ đề và đối tượng Còn đối tượng ở đây có thể là một tài nguyên hoặc một giá trị Ba thành phần trong RDF đề là các URI
RDFS (RDF schema): Là một ngôn ngữ ontology đơn giản của Semantic Web, được coi là ngôn ngữ cơ sở của Semantic Web RDFS là ngôn ngữ mô tả bộ từ vựng trên các bộ ba RDF
1.2.2.5 Tầng Logic
Việc biểu diễn các tài nguyên dưới dạng các bộ từ vựng Ontology có mục đích là để máy có thể lập luận được Mà cơ sở lập luận chủ yếu dựa vào logic Chính vì vậy mà các Ontology được ánh
xạ sang logic, cụ thể là logic mô tả để có thể hỗ trợ lập luận Vì logic
mô tả có biểu diễn ngữ nghĩa hình thức (đặc trưng của lý thuyết mô hình), và cung cấp dịch vụ lập luận, là cơ sở để hỗ trợ máy có thể lập luận và hiểu tài nguyên
Trang 81.2.2.6 Tầng Proof
Tầng này đưa ra các luật để suy luận Cụ thể từ các thông tin
đã có ta có thể suy ra các thông tin mới Ví dụ: A là cha của B, A là
em trai C thì khí đó ta có thông tin mới là C là bác của B Để có được các suy luận này thì cơ sở là FOL (First-Order-Logic) Và tầng này hiện nay các nhà nghiên cứu đang xây dựng các ngôn ngữ luật cho
nó như: SWRL, RuleML
1.2.2.7 Tầng trust
Đảm bảo tính tin cậy của các ứng dụng trên Semantic Web
Để có được sự chứng minh về độ tin cậy thì các lập luận được áp dụng là không đơn điệu và có các cơ chế kiểm tra chứng minh kết hợp với công nghệ chữ ký điện tử để xác nhận độ tin cậy Các ngôn ngữ chứng minh là ngôn ngữ cho ta chứng minh một mệnh đề là đúng hay sai
1.2.3 Ontology
1.2.3.1 Khái niệm
Ontology là một thuật ngữ mượn từ triết học [4] nhằm mô tả các thực thể trong thế giới thực và cách chúng liên kết với nhau Trong khoa học máy tính một cách khái quát, Ontology là “một biểu diễn của sự khái niệm hóa chung được chia sẻ” của một miền nhất định Chúng giúp con người và máy có thể hợp tác, cùng nhau làm việc, giúp máy có thể “hiểu” và có khả năng xử lý thông tin hiệu quả Các Ontology được phát triển trong lĩnh vực trí tuệ nhân tạo để sử dụng lại và chia sẻ tri thức được thuận tiện hơn
1.2.3.2 Yêu cầu khi sử dụng Ontology
Cấu trúc rõ ràng: Đây là điều kiện cần để cho máy có thể xử
lý thông tin
Tính nhất quán: Giả sử chúng ta khai báo x là thể hiện của lớp A và A là lớp con của B∩C, A là lớp con của lớp D, Lớp B và lớp D không có quan hệ với nhau (disjoint) Thì chúng ta không nhất
Trang 9quán bởi vì A nên là rỗng nhưng lại có thể hiện là x Đây là một dấu hiệu của một lỗi trong Ontology
1.2.3.3 Vai trò của Ontology
Chia sẻ sự hiểu biết chung giữa các ứng dụng và con người
Cho phép sử dụng lại tri thức
Đưa ra các giả thiết rõ ràng về miền
Phân tách tri thức lĩnh vực với tri thức thao tác
Phân tích tri thức lĩnh vực Phân tích hình thức của các khái niệm, cần thiết cho việc tái sử dụng và mở rộng Ontology
1.2.4 Quy trình xây dựng Semantic Web
Quy trình phát triển Ontology là một quy trình gồm nhiều bước, tuy nhiên vẫn chưa có một phương pháp chuẩn hóa nào để phát triển các Ontology Quy trình phát triển gồm 7 bước do Stanford Center for Biomedical Informatics Research đưa ra - Đây là nhóm phát triển phần mềm Protégé để trình diễn và soạn thảo Ontology
Bước 1: Xác định lĩnh vực và phạm vi của Ontology
Bước 2: Xem xét việc sử dụng lại các Ontology có sẵn
Trang 10Bước 3: Liệt kê các thuật ngữ quan trọng
Bước 4: Xác định các lớp và phân cấp của các lớp
Bước 5: Xác định các thuộc tính
Bước 6: Xác định ràng buộc của các thuộc tính
Bước 7: Tạo các thực thể
1.2.5 Công cụ phát triển Semantic Web
1.2.5.1 Công cụ phát triển Ontology
Một số công cụ phát triển và hiệu chỉnh có giá trị trong việc làm giảm độ phức tạp và thời gian dùng cho nhiệm vụ xây dựng Ontology Các công cụ như Kaon, OileEd và Protégé cung cấp các giao diện nhằm giúp đỡ người sử dụng thực hiện các hoạt động chính yếu trong quá trình phát triển một Ontology
Trong số các công cụ đó, Protégé là công cụ được sử dụng rộng rãi và hiệu quả nhất hiện nay Nó cho phép người sử dụng định nghĩa và chỉnh sửa các lớp Ontology, các thuộc tính và quan hệ và các thể hiện sử dụng cấu trúc cây
Đặc điểm của Protégé
Đây là phần mềm miễn phí dùng để tạo ra các mô hình và các ứng dụng bằng cách sử dụng các Ontology Protégé được phát triển bởi trường Đại học Stanford và Mark Musen Chức năng nổi bật nhất của phần mềm này là cho phép người dùng sử dụng tạo ra các Ontology để phát triển Web Semantic theo đúng chuẩn của ngôn ngữ W3C OWL
Các đối tượng xây dựng chính của Protégé là:
Classes – Tổ chức các quan hệ tham chiếu và các kiểu thực thi Axioms – Mô hình câu lệnh đúng
Instances – Các thể hiện, các thành phần của đối tượng Domain – Giới hạn của Ontology
Vocabulary – Các lớp và khai báo
Protégé sử dụng giao diện đồ hoạ
Protégé phát triển để tích hợp các công cụ
Trang 11Mục đích của Protégé là hỗ trợ người phát triển tạo ra được các Ontology một cách dễ dàng nhất Ban đầu đó là vấn đề giao diện
đồ hoạ, tiếp nữa đó là những công cụ thêm vào để tạo ra các chức năng đặc biệt khác
1.2.5.2 Công cụ kết nối và thao tác với Ontology
a SemWeb
SemWeb lần đầu tiên được phát hành vào tháng sáu năm
2005 và đã được thử nghiệm gần đây hơn với những bộ lưu trữ hơn một tỉ bộ ba Các tính năng cốt lõi như đọc/ghi dữ liệu XML với bộ
ba RDF, liên tục lưu trữ dữ liệu với nền tảng SQL và các truy vấn SPARQL cơ bản đã được kiểm nghiệm nhiều lần Các chức năng bên ngoài như hoạt động RDFS hoặc hoạt động của Backware - Chaining
đã làm việc nhưng ít được thử nghiệm và không hoàn chỉnh Thư viện không có công cụ đặc biệt đối với OWL Schema và nó hoạt động ở mức bộ ba của RDF
b OwlDotNetApi
OwlDotNetApi là một OWL API với bộ phân tích cú pháp viết bằng C# theo công nghệ NET dựa trên phân tích cú pháp RDF Drive, hoàn toàn phù hợp với đặc điểm kĩ thuật của W3C
c Jena
Jena là một thư viện được viết trên ngôn ngữ Java để xây dựng các ứng dụng Semantic Web Nó cung cấp một môi trường cho việc thao tác với tập tin định dạng RDF, RDFS và OWL Là một phần mềm nguồn mở và miễn phí, được phát triển từ chương trình Semantic Web của viện nghiên cứu HP
1.2.5.3 Công cụ tách từ
a Công cụ tách từ tiếng Việt JVnTextPro
JVnTextPro là một phần mềm nguồn mở được phát triển trên ngôn ngữ Java Được phát triển bởi nhóm nghiên cứu Nguyễn Cẩm
Tú, Phan Xuân Hiếu, Nguyễn Thu Trang JVnTextPro dựa trên lý thuyết về Các Trường Ngẫu Nhiên (CRFs) và Entropy Cực đại
Trang 12(Maxent) để xử lý ngôn ngữ tự nhiên trong tiếng Việt Công cụ này
bao gồm một số bước tiền xử lý tiếng Việt và tiến trình xử lý được
thiết kế theo kiểu đường ống trong đó đầu ra của bước này sẽ được
sử dụng như đầu vào cho các bước tiếp theo
Hình 1.2 Mô hình xử lý tiếng Việt của JvnTextPro
b Công cụ tách từ tiếng Việt VnTokenizer
Công cụ VnTokenizer được phát triển trong đề tài VLSP của
nhóm tác giả Lê Hồng Phương, Nguyễn Thị Minh Huyền và Vũ
Lương Xuân Công cụ này được phát triển dựa trên phương pháp so
khớp tối đa (Maximum matching) với tập dữ liệu sử dụng là bảng âm
tiết tiếng Việt và từ điển từ vựng tiếng Việt
Công cụ được xây dựng trên ngôn ngữ Java, mã nguồn mở
Có thể dễ dàng tích hợp vào các hệ thống phân tích tiếng Việt khác
Công cụ này tách từ cho độ chính xác là 96% - 98%
Quy trình thực hiện tách từ theo phương pháp so khớp tối đa:
Hình 1.3 Tách từ theo phương pháp so khớp tối đa
Trang 13PHÂN TÍCH THIẾT KẾ HỆ THỐNG CHƯƠNG 2.
2.1.2 Đặc điểm thiết kế kiến trúc nhà dân dụng
Phù hợp với đặc thù riêng của từng đối tượng ở (nghề nghiệp, giới tính, độ tuổi)
Tạo điều kiện phát triển nếp sống văn hóa xã hội mới văn minh, tiến bộ
Tôn trọng cơ sở quy hoạch chung
Xây dựng mới phải kết hợp được với hệ thống các không gian mở công cộng
Đẩy mạnh việc công nghiệp hóa
2.1.3 Giải pháp tổ chức liên hệ giao thông trong nhà
Tạo nên các phòng biệt lập bằng liên hệ thông qua tiền phòng và hành lang
Dùng phòng sinh hoạt chung, phòng khách để tập hợp quanh nó các phòng khác
Không gian lưu thông liên hoàn
Trang 14Nhà siêu cao tầng, chọc trời (lớn hơn 30 tầng)
2.1.4.3 Phân loại dựa theo đối tượng phục vụ và ý nghĩa xã hội
Nhà ở kiểu sang trọng tiêu chuẩn cao (dành cho quý tộc, nhà lãnh đạo, quan chức cao cấp, nhà tư bản lớn)
Nhà ở cho người có thu nhập cao (dành cho các dạng ông chủ doanh nghiệp, quan chức hay các trí thức cao cấp) Nhà ở cho người thu nhập khá, trung bình
Nhà ở cho người thu nhập thấp, nghèo khổ
Trang 152.2 Phân tích hệ thống tra cứu thông tin thiết kế nhà dân dụng
2.2.1 Giới thiệu
Từ những quan điểm và kiến thức tìm hiểu được trong phần
lý thuyết về Semantic Web, tác giả đi đến việc sử dụng Semantic Web làm công cụ để xây dựng ứng dụng hỗ trợ thiết kế nhà dân dụng trong khuôn khổ luận văn này Ứng dụng được xây dựng nhằm phục
vụ cho việc tìm kiếm thông tin cho các cá nhân, tổ chức có nhu cầu
Cụ thể hơn là hệ thống có thể hỗ trợ người dùng tìm kiếm thông tin
về các kiểu nhà, một số mẫu nhà theo yêu cầu người dùng
2.2.2 Mô tả ứng dụng
Người dân có nhu cầu xây nhà cần biết một số thông tin về thiết kế nhà dân dụng và cần một số mẫu nhà tham khảo có thể truy cập vào hệ thống nhập thông tin cần tìm về kiểu nhà ở, hay là các bộ phận, khu vực trong nhà như phòng ngủ, phòng khách… kết quả trả
về là thông tin liên quan đến kiểu nhà này, các hình ảnh, mẫu thiết kế gợi ý cho kiểu nhà tương ứng nếu có tồn tại trong hệ thống Hệ thống
có hỗ trợ tìm kiếm có dấu và không dấu tiếng Việt, sau đó người dùng có thể chọn chức năng hiển thị thông tin chi tiết để xem chi tiết
Mô hình tổng thể của ứng dụng được mô tả như trong hình 2.1
Hình 2.1 Mô hình hệ thống