Tải bản đầy đủ (.pdf) (26 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (665.23 KB, 26 trang )

ĐẠ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
SEMANTIC WEB

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT

Đà Nẵng - Năm 2017


Cô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


1
MỞ ĐẦ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.


2
4. 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.



3
CHƯƠNG 1. TỔNG QUAN VỀ SEMANTIC WEB
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.


4


Hì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.


5
1.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.4 Tầng Ontology vocabulary
Bộ từ vựng Ontology được xây dựng trên cơ sở tầng RDF và
RDFS, cung cấp biểu diễn ngữ nghĩa mềm dẻo cho tài nguyên Web
và có khả năng hỗ trợ lập luận. Để xây dựng được các bộ từ vựng
này, người ta đã sử dụng các ngôn ngữ Ontology để biểu diễn chúng
như: RDFS, OIL, DAML, DAML+OIL, OWL,... Các ngôn ngữ này
cung cấp khả năng biểu diễn và hỗ trợ lập luận khác nhau và chúng
dựa trên nền tảng là các ngôn ngữ lô-gíc mô tả tương ứng khác nhau
[10].
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.


6
1.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


7
quá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.3.4 Các thành phần của Ontology
Ontology được sử dụng như là một biểu mẫu trình bày tri
thức về thế giới hay một phần của nó. Ontology thường miêu tả: Các
cá thể (Individuals), các lớp (Classes), các thuộc tính (Properties) và
các mối quan hệ (Relation).
1.2.3.5 Ngôn ngữ OWL
OWL (The Web Ontology Language) là một ngôn ngữ gần
như XML dùng để mô tả các hệ cơ sở tri thức. OWL là một ngôn
ngữ đánh dấu dùng để xuất bản và chia sẻ dữ liệu trên Internet thông
qua những mô hình dữ liệu gọi là “Ontology”. Ontology mô tả lĩnh
vực (domain) và diễn tả những đối tượng trong lĩnh vực đó cùng
những mối quan hệ giữa các đối tượng này.
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



8
Bướ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ụ


9
Mụ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


10
(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



11
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Tổng quan về nhà ở
2.1.1 Khái niệm
Nhà ở thuộc loại hình kiến trúc xuất hiện sớm nhất. Đó là
những không gian kiến trúc phục vụ cho đời sống sinh hoạt gia đình
và con người. Ban đầu nhà ở chỉ đơn thuần là một nơi trú thân đơn
giản nhằm giúp con người chống lại những bất lợi của điều kiện
thiên nhiên như: nắng, mưa, gió, bão, tuyết, thú rừng…
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.
2.1.4 Phân loại nhà ở
2.1.4.1 Phân loại dựa vào hình thức tổ chức đáp ứng công năng
Nhà ở nông thôn
Nhà biệt thự thành phố
Các nhà kiểu liên kế
Chung cư



12
Nhà kiểu khách sạn
Nhà ở kí túc xá
2.1.4.2 Phân loại dựa theo độ cao
Nhà thấp tầng (1-2 tầng).
Nhà ở nhiều tầng (3-6 tầng).
Nhà ở cao tầng trung bình (8-16) tầng.
Nhà cao tầng (24-30 tầng).
Nhà 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ổ.
Nhà ở tạm thời.
2.1.4.4 Các bộ phận cần có trong căn hộ
a. Các phòng chính
Phòng tiếp khách
Phòng ăn
Phòng sum họp gia đình
Phòng ngủ
Phòng làm việc
b. Các phòng phụ
Bếp
Khối vệ sinh
Kho và tủ tường

Tiền phòng
Ban công, lô gia


13
2.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


14

2.2.3 Phân tích hệ thống
2.2.3.1 Các yêu cầu lưu trữ
Với mục đích mang tính ngữ nghĩa vào trong dữ liệu, toàn
bộ dữ liệu của hệ thống được lưu trữ dưới dạng RDF. Hệ thống cũng
định nghĩa một ontology riêng nhằm mô tả thông tin và mối quan hệ
giữa các kiểu nhà ở, các bộ phận, khu vực trong nhà.
2.2.3.2 Các yêu cầu về giao diện
Giao diện đồ họa đơn giản, thân thiện, dễ sử dụng, đáp ứng
được nhu cầu tìm kiếm và hiển thị kết quả một cách trực quan sinh
động, thể hiện được hết tất cả các thông tin liên quan đến tiêu chí tìm
kiếm của người sử dụng.
2.2.3.3 Các yêu cầu về chức năng
a. Chức năng tìm kiếm
Cho phép người dùng tìm kiếm theo các tiêu chí là tìm chính
xác và tìm gần đúng, tìm chính xác thì người dùng phải nhập từ khóa
chính xác như tên hay các thuộc tính của các tài nguyên có trong hệ
thống.
b. Chức năng xem chi tiết
Cho phép người dùng xem thông tin chi tiết (toàn bộ nội dung
của một tài nguyên) của một thể loại nhà, một bộ phận, một khu vực
trong nhà.
2.2.3.4 Các yêu cầu phi chức năng
Ràng buộc thiết kế, tính hiệu quả, tính tiện dụng, tính dễ bảo
trì, tính dễ mở rộng, sự hỗ trợ.
2.2.4 Thiết kế hệ thống
2.2.4.1 Mô hình đề xuất
Trong phần này, tác giả đề xuất mô hình hoạt động của hệ
thống như hình 2.2



15

Hình 2.2. Mô hình hoạt động của hệ thống đề xuất
2.2.4.2 Mô hình use-case cho đối tượng là người sử dụng hệ thống
Dựa trên đặc tả các chức năng của ứng dụng đã được mô tả,
ứng dụng được chia làm hai phân hệ:
Phân hệ thứ nhất dành cho người sử dụng (user): Mô hình
use-case xây dựng cho phân hệ này được thể hiện như hình 2.3 sau:

Xem chi tiết

Tìm kiếm thông tin nhà

Hình 2.3. Mô hình use-case đặc tả chức năng người dùng hệ thống


16
Phân hệ thứ hai là phân hệ dành cho người quản trị (admin):
Mô hình use-case xây dựng cho phân hệ này được thể hiện như hình
2.4 sau:

Hình 2.4. Mô hình use-case đặc tả chức năng người quản trị hệ thống
2.2.4.3 Đặc tả use-case phân hệ người sử dụng
Chức năng tìm kiếm thông tin:

Hình 2.5. Đặc tả chức năng tìm kiếm thông tin
Chức năng xem chi tiết


17

Chức năng này cho phép xem thông tin chi tiết về thể loại nhà
đã được chức năng tìm kiếm thông tin trả về trước đó.

Hình 2.6. Đặc tả chức năng xem thông tin chi tiết
2.2.4.4 Đặc tả use-case phân hệ người quản trị hệ thống
Với phân hệ này thì người quản trị có khả năng thêm, xóa và
cập nhật tài nguyên về thông tin thiết kế nhà dân dụng cho hệ thống.
Chức năng Thêm tài nguyên
Chức năng Thêm tài nguyên vào hệ thống được mô tả như
hình 2.7 sau:

Hình 2.7. Chức năng Thêm tài nguyên
Chức năng Xóa tài nguyên


18
Chức năng Xóa tài nguyên có trong hệ thống được mô tả như
hình 2.8 sau:

Hình 2.8. Chức năng Xóa tài nguyên
Chức năng Cập nhật tài nguyên
Chức năng Cập nhật thông tin tài nguyên có trong hệ thống
được mô tả như hình 2.9 sau:

Hình 2.9. Chức năng Cập nhật tài nguyên


19
CHƯƠNG 3. PHÁT TRIỂN ỨNG DỤNG
3.1 Tổng quan hệ thống

Hệ thống được phát triển trên nền ngôn ngữ Java kết hợp với
cơ sở dữ liệu dựa trên Ontology để xây dựng các thành phần trong
đó. Khi người dùng muốn được tư vấn hay muốn tìm kiếm thông tin
về thiết kế nhà dân dụng sẽ truy cập website hệ thống để đặt câu hỏi
hay nhập từ khóa tìm kiếm và thực hiện việc tìm kiếm. Mô hình tổng
thể của hệ thống được minh họa như trong hình 3.1 sau.

Hình 3.1. Kiến trúc tổng thể của hệ thống


20
3.2 Phát triển ứng dụng
Việc phát triển một ứng dụng Semantic Web gồm 2 phần
chính đó là xây dựng Ontology để lưu trữ dữ liệu hệ thống và xây
dựng trang Web tìm kiếm để nhận dữ liệu đầu vào, kết nối tới
Ontology, xử lý và hiển thị kết quả trả về.
3.2.1 Xây dựng Ontology
Các bước xây dựng Ontology cho hệ thống.
Bước 1: Xác định lĩnh vực và phạm vi của Ontology
Lĩnh vực cần xây dựng Ontology ở đây là thông tin liên quan
đến các loại nhà ở dân dụng trong khu vực đồng bằng sông Cửu
Long, mà cụ thể là xem xét các thông tin chi tiết về hình dáng, chiều
cao, công năng, ý nghĩa của từng loại nhà. Bên cạnh đó là những
thông tin về các bộ phận trong một căn nhà, các khu vực sinh hoạt và
các mẫu thiết kế gợi ý.
Bước 2: Xem xét việc kế thừa các Ontology có sẵn
Qua tìm hiểu, việc xây dựng Ontology cho thiết kế nhà dân
dụng hầu như là chưa có kể cả trong nước và nước ngoài, vì vậy
không có Ontology có sẵn để thừa kế, yêu cầu phải nghiên cứu xây
dựng từ đầu. Đây là vấn đề trở ngại nhất đối với vấn đề nghiên cứu

trong luận văn này.
Bước 3: Liệt kê các thuật ngữ quan trọng
Bảng 3.1. Một số thuật ngữ quan trọng về thiết kế nhà dân dụng
Nhà trệt
Phòng ngủ
Ban công
Nhà phố
Phòng khách
Tủ âm tường
Nhà ở nông thôn
Khu vệ sinh
Nhà cao tầng
Chung cư
Lô gia

Bước 4: Xác định các lớp và phân lớp của các lớp
Trong hệ thống này, dựa vào thông tin tổng quan về nhà ở là
mô tả từ tổng quát đến chi tiết các thành phần, do vậy việc xây dựng
các lớp được thực hiện theo phương pháp từ trên xuống. Cụ thể trong
nội dung tổng quan về nhà ở, nhà ở được chia thành nhiều phân lớp


21
nhỏ hơn chẳng hạn như phân loại nhà dựa vào công năng, dựa vào độ
cao, dựa vào ý nghĩa xã hội… Trong mỗi phân lớp này lại được chia
thành nhiều phân lớp nhỏ hơn khác, do đó từ những phân lớp này ta
có thể xây dựng các lớp và phân lớp trong hệ thống. Trong một căn
nhà thì có nhiều bộ phận, nhiều khu vực khác nhau, cho nên mỗi
phòng, mỗi khu vực chính là những phân lớp của lớp nhà.
Bước 5: Xác định các thuộc tính

Trong ứng dụng này ta xác định thuộc tính cho các lớp như
sau: Thuộc, Có, Giải_pháp_tổ_chức, Khái_niệm, Mẫu_thiết_kế, Tên,
Từ_khóa, Đặc_điểm_thiết_kế, Ảnh_minh_họa,…
Bước 6: Xác định các ràng buộc của các thuộc tính
Từ các thuộc tính đã xác định ở trên, ta xác định kiểu ràng
buộc cho thuộc tính là giá trị, max, min, chuỗi, … cụ thể là với thuộc
tính Khái_niệm là kiểu chuỗi, thuộc tính Hình_ảnh là kiểu đường
dẫn liên kết, thuộc tính Tên cũng là kiểu chuỗi…
Bước 7: Tạo các thực thể
Những cá thể trong Ontology được thiết lập và mô tả với
mục đích là để lưu trữ nội dung thông tin của các đối tượng trong bài
toán ứng dụng. Mỗi một ứng dụng về Semantic Web đều chứa rất
nhiều cá thể.
Sau khi tạo các thực thể của hệ thống, sử dụng công cụ
Protégé để nhập dữ liệu cho hệ thống.
3.2.2 Xây dựng Website tìm kiếm
3.2.2.1 Xây dựng giao diện ứng dụng
Hệ thống tư vấn thiết kế nhà ở dân dụng chọn Java (Jsp &
Servlet) làm ngôn ngữ để phát triển chính, vì nó có thể chạy trên
nhiều môi trường, nhiều hệ điều hành khác nhau.
Giao diện Web trong ứng dụng khá đơn giản, chỉ bao gồm
một hộp văn bản để người dùng nhập yêu cầu tìm kiếm và một nút
Tìm để thực hiện việc tìm kiếm


22
3.2.2.2 Xây dựng bộ máy tìm kiếm
Bộ máy tìm kiếm là chức năng chính của chương trình, thực
hiện truy vấn yêu cầu của người dùng trên Ontology và trả về kết quả
cho người dùng thông qua Web Browser. Trong ứng dụng này hệ

thống sử dụng công cụ Jena thực hiện kết nối với Ontology và trả kết
quả theo yêu cầu thông qua giao diện Web.
Các công cụ, thư viện, phần mềm sử dụng trong phát triển ứng
dụng.
- Phần mềm Eclipse Juno.
- Ngôn ngữ lập trình Java, JSP, Servlet.
- Ngôn ngữ truy vấn dữ liệu RDF: SPARQL.
- Thư viện mã nguồn mở Jena.
- Thư viện nguồn mở VnTokenizer.
- Trình duyệt IE, Google Chrome, Firefox,…
3.3 Đánh giá kết quả của hệ thống
Trong khuôn khổ luận văn, tác giả cũng đã thu thập được 50
tài liệu về thiết kế nhà, 100 mẫu thiết kế nhà, 100 bản vẽ chi tiết, 50
mô hình nhà làm dữ liệu thử nghiệm. Để hệ thống đa dạng hơn nữa
thì khi đưa hệ thống vào thực tế, dữ liệu vẫn sẽ thường xuyên được
cập nhật để có thể hỗ trợ tốt hơn cho người có nhu cầu.


23
KẾT LUẬN
1. Kết luận
Semantic Web thật sự mạng lại nhiều thuận lợi nhưng để thật
sự hiểu rõ và nắm vững Semantic Web là điều không dễ dàng. Trong
quá trình thực hiện luận văn tôi đã tham khảo thông tin trên các bài
báo, sách, tạp chí và những nguồn khác trên Internet, cùng với sự
hướng dẫn tận tình của Thầy Võ Trung Hùng và đã cơ bản hoàn
thành những yêu cầu đặt ra. Trong luận văn này tôi cũng đã tập trung
nghiên cứu và xây dựng thành công Ontology về lĩnh vực thiết kế
nhà dân dụng trên phần mềm protégé 4.1, đã ứng dụng công nghệ
Semantic Web xây dựng hệ thống tư vấn thiết kế nhà dân dụng đạt

được những kết quả ban đầu.
1.1 Về lý thuyết
Trong luận văn này đã nêu ra được những nét đặc trưng về
cơ sở lý thuyết của Semantic Web, nghiên cứu RDF, cách thức xây
dựng Ontology và ngôn ngữ OWL đó là những thành phần quan
trọng nhất của Semantic Web, đã cho thấy được khả năng và hiệu
quả sử dụng cao của thế hệ Web này.
Luận văn còn đưa ra được những công cụ cần thiết để phát
triển một ứng dụng Semantic Web hiệu quả nhất. Song song với nó
là việc giải quyết vấn đề giao tiếp giữa người và máy, là sự đa dạng
về thông tin và nhu cầu cần thiết sử dụng thông tin hiệu quả, nhanh
chóng của các tổ chức và cá nhân.
1.2 Về ứng dụng
Về kết quả thực nghiệm ứng dụng phát triển hệ thống hỗ trợ
tư vấn thiết kế nhà dân dụng đã chứng minh được nền tảng lý thuyết
nghiên cứu kết hợp giữa mô hình phát triển và những công cụ hỗ trợ
phát triển với công nghệ Java, hoàn toàn có thể xây dựng thành công
một ứng dụng Web 3.0. Ứng dụng này còn chứng minh tính vượt trội
của công nghệ Web 3.0 với những công nghệ Web đã xây dựng


×