8. Bố cục của luận văn
2.7.4. Tìm kiếm nâng cao
Tang ung dung
Nghiencuuvien Tang ung dung Tang Web Ngu nghia
1: Nhap tu khoa
Nghiencuuvien Tang web ngu nghia
2: Query SPARQL
4: Thong bao ket qua
3: Thong bao ket qua
Hình 2.17. Biểu đồ tuần tự tìm kiếm nâng cao
Chức năng tìm kiếm nâng cao này dành cho người dùng gồm: cán bộ quản lý, nghiên cứu viên, quản trị hệ thống và người dùng khách.
Người dùng truy cập vào hệ thống thông tin, sau đó đưa yêu cần tìm kiếm, hệ thống sẽ phân tích yêu cầu của người dùng. Hệ thống sẽ động gửi câu truy vấn SPARQL xuống tầng web ngữ nghĩa. Tầng web ngữ nghĩa sẽ dùng câu truy vấn này để tìm các kết quả tương ứng trong kho tài nguyên. Kết quả sẽ được trả về cho người dùng thông qua tầng ứng dụng.
2.8. KẾT LUẬN CHƯƠNG 2
Chương này tôi tìm hiểu thực trạng công tác nghiên cứu khoa học của Viện từ đó tiến hành phân tích và thiết kế hệ thống.
CHƯƠNG 3
XÂY DỰNG HỆ THỐNG VÀ THỬ NGHIỆM
Chương này tác giả tập trung vào việc thiết kế và xây dựng ontology cụ thể, xây dựng hệ thống hoàn chỉnh và đánh giá khả năng ứng dụng trong công tác quản lý khoa học tại Viện Nghiên cứu Phát triển Kinh tế - Xã hội Đà Nẵng.
3.1. ONTOLOGY ĐƯỢC XÂY DỰNG
3.1.1. Xây dựng các lớp (Class) và các lớp con (subClass)
a) Sơ đồ Class: Tổng quan
Bảng 3.1. Các lớp và phân cấp
Tên Class Nhãn/Lớp mô tả
Think Lớp gốc
LyLich Lý_Lịch
DeTaiKhoaHoc Đề_Tài_Khoa_Học
NguoiDung Người_Dùng
* Danh sách thuộc tính lớp Lý Lịch (Lớp cha: owl:Thing)
Tên Nhãn Doman Kiểu giá trị OWL type
hoten Họ_tên lylich xsd:string Object Property namsinh Năm_sinh lylich xsd:integer Object Property gioitinh Giới_tính lylich xsd:string Object Property diachi Địa_chỉ lylich xsd:string Object Property dienthoai Điện_thoại lylich xsd:string Object Property email Email lylich xsd:string Object Property thanhpho Thành_phố lylich xsd:string Object Property quoctich Quốc_tịch lylich xsd:string Object Property quocgia Quốc_gia lylich xsd:string Object Property anhdaidien Ảnh_đại_diện lylich xsd:string Object Property
* Danh sách thuộc tính lớp Lý Lịch Khoa Học (Lớp cha: Lý Lịch)
Tên Nhãn Doman Kiểu giá
trị
OWL type
linhvucnghiencuu Lĩnh_vực_nghiên_cứu lylich xsd:string Object Property congtrinhnghiencuu Công_trình_nghiên_cứu lylich xsd:integer Object
Property quatrinhcongtac Quá_trình_công_tác lylich xsd:string Object
Property
ngoaingu Ngoại_ngữ lylich xsd:string Object
Property
donvi Đơn_vị lylich xsd:string Object
Property
chucvu Chức_vụ lylich xsd:string Object
* Danh sách thuộc tính lớp Học Vấn (Lớp cha: Lý lịch khoa học)
Tên Nhãn Doman Kiểu giá trị OWL type
hocham Học_hàm lylich xsd:string Object
Property namphong Năm_phong lylich xsd:integer Object
Property
* Danh sách thuộc tính lớp Đề Tài Khoa Học (Lớp cha: owl:Thing)
Tên Nhãn Doman Kiểu giá trị OWL type
madetai Mã_đề_tài detai xsd:string Object Property tendetai Tên_đề_tài detai xsd:string Object Property linhvuc Lĩnh_vực detai xsd:string Object Property congtrinh Công_trình detai xsd:string Object Property donvithuchien Đơn_vị_thực_hiện detai xsd:string Object Property
loai Loại detai xsd:string Object Property
tacgia Tác_giả detai xsd:string Object Property thanhvien Thành_viên detai xsd:string Object Property ngaybatdau Ngày_bắt_đầu detai xsd:string Object Property ngayhoanthanh Ngày_ hoàn_thành detai xsd:string Object Property tailieuthamkhao Tài_liệu_tham_khảo detai xsd:string Object Property trangthai Trạng_thái detai xsd:string Object Property chatluong Chất_lượng detai xsd:string Object Property filenoidung File_nội_dung detai xsd:string Object Property
d) Class Người dùng
* Danh sách thuộc tính lớp Người dùng
Tên Nhãn Doman Kiểu giá
trị OWL type
hoten Học_hàm nguoidung xsd:string Object Property email Năm_phong nguoidung xsd:string Object Property username Username nguoidung xsd:string Object Property password Password nguoidung xsd:string Object Property quyentrycap Quyền_truy_cập nguoidung xsd:string Object Property
3.1.2. Định nghĩa các thuộc tính
a. Các thuộc tính đối tượng (Object Property) của ontology
Thuộc tính đối tượng liên kết hai thực thể với nhau, chúng có miền (domain) và dãy (range). Trong khuôn khổ luận văn này, ontology được xây dựng có các thuộc tính đối tượng sau.
Hình 3.2. Danh sách các thuộc tính đối tượng
b. Các thuộc tính kiểu dữ liệu (Data type Property) của ontology
Trong khi các thuộc tính đối tượng được dùng để thể hiện mối quan hệ giữa hai lớp, thì các thuộc tính kiểu dữ liệu được dùng để lưu giá trị dữ liệu. Sau đây là các thuộc tính kiểu dữ liệu được sử dụng trong luận văn:
c. Mối quan hệ giữa các lớp và các thuộc tính
Nguoi: mô tả các đối tượng là chủ thể của hành động. Lớp cha: owl:Thing
Bảng 3.2. Danh sách các thuộc tính của lớp nguoi
Tên Nhãn Domain Kiểu giá trị OWL
Type
linhvucnghiencuu Lĩnh_vực_nghiên_cứu nguoi xsd:string Object Property cobangcap Có_bằng _cấp nguoi xsd:string Object
Property donvicongtac Đơn_vị_công tác nguoi xsd:string Object
Property gioitinh Giới_tính nguoi xsd:string Datatype Property namhocham Năm_phong_học_hàm nguoi xsd:interger Datatype Property
hocham Học_hàm nguoi xsd:string Datatype
Property
ten Tên nguoi xsd:string Datatype
Property
ho Họ nguoi xsd:string Datatype
Property tendaydu Họ_tên_đầy_đủ nguoi xsd:string Datatype Property
chucvu Chức_vụ nguoi xsd:string Datatype
Property ngaysinh Ngày_sinh nguoi xsd:dateTime Datatype Property diachilienlac Địa_chỉ_liên_lạc nguoi xsd:string Datatype Property telephone Điện_thọai_liên_lạc nguoi xsd:string Datatype Property email Địa_chỉ_email nguoi xsd:string Datatype Property thanhpho Thành_phố nguoi xsd:string Datatype Property quoctich Quốc_tịch nguoi xsd:string Datatype Property quocgia Quốc_gia nguoi xsd:string Datatype Property
Congtrinh: Mô tả các công trình nghiên cứu khoa học của các nhà nghiên cứu (đề tài, dự án, đề án, báo cáo khoa học, bài báo khoa học). Lớp cha: owl:Thing
Bảng 3.3. Danh sách các thuộc tính của lớp congtrinh
Tên Nhãn Domain Kiểu giá
trị
OWL Type
linhvucnghiencuu Lĩnh_vực_nghiên_cứu congtrinh xsd:string Object Property dongtacgia Đồng_tác_giả congtrinh xsd:string Object
Property congtrinhlienquan Công_trình_liên
_quan
congtrinh xsd:string Object Property
tacgia Tác_giả
_chủ_nhiệm _đề_tài
congtrinh xsd:string Datatype Property
code Mã congtrinh xsd:string Datatype
Property
mota Mô_tả congtrinh xsd:string Datatype
Property tieudetapchi Tiêu_đề_tạp_chí congtrinh xsd:string Datatype Property
nam Năm congtrinh xsd:interger Datatype
Property
Baocao: Mô tả một báo cáo nghiên cứu, là lớp con của lớp congtrinh, ngoài các thuộc tính kế thừa từ lớp congtrinh, nó còn có những thuộc tính sau:
Bảng 3.4. Danh sách các thuộc tính của lớp baocao
Tên Nhãn Domain Kiểu giá trị OWL Type
tieude Tiêu_báo_cáo baocao xsd:string Datatype Property
so Số baocao xsd:string Datatype
Property
tap Tập baocao xsd:string Datatype
Baibao: Mô tả một bài báo khoa học, là lớp con của lớp congtrinh, ngoài các thuộc tính kế thừa từ lớp congtrinh, nó còn có những thuộc tính sau:
Bảng 3.5. Danh sách các thuộc tính của lớp baibao
Tên Nhãn Domain Kiểu giá trị OWL Type
issn Số ISSN baibao xsd:string Datatype
Property
isbn Số ISBN baibao xsd:string Datatype
Property tieude Tiêu_đề_bài_báo baibao xsd:string Datatype Property
so Số baibao xsd:string Datatype
Property
tap Tập baibao xsd:string Datatype
Property
Detai: Mô tả về đề tài hoặc dự án nghiên cứu, là lớp con của lớp congtrinh, ngoài các thuộc tính kế thừa từ lớp congtrinh, nó còn có những thuộc tính sau:
Bảng 3.6. Danh sách các thuộc tính của lớp detai
Tên Nhãn Domain Kiểu giá trị OWL Type
cappheduyet Cấp_phê_duyệt detai xds:string Datatype Property ngaybatdau Ngày_bắt_đầu detai xsd:dateTime Datatype Property ngayketthuc Ngày_kết_thúc detai xsd:dateTime Datatype Property nambatdau Năm_bắt_đầu detai xsd:interger Datatype Property chatluong Chất_lượng detai xsd:interger Datatype Property
Duan: Mô tả về đề tài hoặc dự án nghiên cứu, là lớp con của lớp congtrinh, ngoài các thuộc tính kế thừa từ lớp congtrinh, nó còn có những thuộc tính sau:
Tên Nhãn Domain Kiểu giá trị OWL Type cappheduyet Cấp_phê_duyệt duan xds:string Datatype
Property ngaybatdau Ngày_bắt_đầu duan xsd:dateTime Datatype Property ngayketthuc Ngày_kết_thúc duan xsd:dateTime Datatype Property nambatdau Năm_bắt_đầu duan xsd:interger Datatype Property chatluong Chất_lượng duan xsd:interger Datatype Property
Dean: Mô tả về đề án nghiên cứu, là lớp con của lớp congtrinh, ngoài các thuộc tính kế thừa từ lớp congtrinh, nó còn có những thuộc tính sau:
Bảng 3.8. Danh sách các thuộc tính của lớp dean
Tên Nhãn Domain Kiểu giá trị OWL Type
cappheduyet Cấp_phê_duyệt dean xds:string Datatype Property ngaybatdau Ngày_bắt_đầu dean xsd:dateTime Datatype Property ngayketthuc Ngày_kết_thúc detai xsd:dateTime Datatype Property nambatdau Năm_bắt_đầu detai xsd:interger Datatype Property
Tailieunghiencuu: Mô tả tài liệu nghiên cứu gồm sách nghiên cứu, tài liệu chuyên môn, số liệu nghiên cứu…là lớp con của lớp congtrinh, ngoài các thuộc tính kế thừa từ lớp congtrinh, nó còn có những thuộc tính sau:
Bảng 3.9. Danh sách các thuộc tính của lớp tailieunghiencuu
Tên Nhãn Domain Kiểu giá trị OWL
Type
isbn Số ISBN tailieunghiencuu xds:string Datatype Property nhaxuatban Nhà_xuất_bản tailieunghiencuu donvitochuc Object
Property
Linhvuc: Mô tả các lĩnh vực nghiên cứu. Lớp cha: owl:Thing
Bảng 3.10. Danh sách các thuộc tính của lớp linhvuc
Tên Nhãn Domain Kiểu giá
trị
OWL Type
ten Tên linhvuc xds:string Datatype
Property linhvuccon Lĩnh_vực_con linhvuc xsd:string Object
Property linhvuclienquan Lĩnh_vực_liên_quan linhvuc xsd:string Object
Property
code Mã linhvuc xsd:string Datatype
Property
Bangcap: mô tả đối tượng bằng cấp. Lớp cha: Owl:Thing
Bảng 3.11. Danh sách các thuộc tính của lớp bangcap
Tên Nhãn Domain Kiểu giá trị OWL
Type
linhvucnghiencuu Lĩnh_vực_ nghiên_cứu
bangcap xsd:string Object Property congtrinhlienquan Công_trình_liên
_quan
bangcap xsd:string Object Property capboi Cấp_bởi bangcap xsd:string Object
Property
ten Tên bangcap xsd:string Datatype
Property
nam Năm bangcap xsd:interger Datatype
3.1.3. Danh sách một số các thực thể (Individuals)
Trong phạm vi luận văn này, tác giả đã tạo một số thực thể đặc trưng của các lớp theo các bảng như sau:
Bảng 3.12. Thực thể: “Chatluong”, mô tả về chất lượng công trình nghiên cứu khoa học đạt kết quả
Tên Nhãn Domain Kiểu giá trị OWL Type
chatluong1 Đạt_loại_xuất_sắc chatluong xsd:string Individual chatluong2 Đạt_loại_tốt chatluong xsd:string Individual chatluong3 Đạt_loại_khá chatluong xsd:string Individual chatluong4 Đạt chatluong xsd:string Individual chatluong4 Không_đạt chatluong xsd:string Individual
Bảng 3.13. Thực thể: “Congtrinh”, mô tả tên một số công trình nghiên cứu khoa học đã được nghiệm thu và công bố của Viện
Tên Nhãn Domain Kiểu giá
trị
OWL Type
congtrinh1 Đề tài: Nghiên cứu luận cứ khoa học và kinh tế xã hội làm cơ sở xây dựng đề án phát triển triển đội ngũ trí thức thành phố Đà Nẵng giai đoạn 2011- 2020" congtrinh nghiencuu xsd:string Individual
congtrinh2 Đề tài: "Xây dựng chính sách nhà ở cho hộ thu nhập thấp trên địa bàn thành phố Đà Nẵng" congtrinh nghiencuu xsd:string Individual
congtrinh3 Đề án: Xây dựng bộ tiêu chí Thành phố đáng sống cho thành phố Đà Nẵng đến năm 2020 congtrinh nghiencuu xsd:string Individual
congtrinh4 Báo cáo: "Khảo sát mức độ hài lòng của các tổ chức, cá nhân đối với dịch vụ công trên địa bàn thành phố Đà Nẵng năm 2012"
congtrinh nghiencuu
xsd:string Individual
congtrinh5 Báo cáo "Xây dựng Đà Nẵng trở thành Thành phố đáng sống"
congtrinh nghiencuu
Hình 3.5. Hình minh họa một thực thể được nghiên cứu là về tiêu chí đáng sống tại thành phố Đà Nẵng
Bảng 3.14. Thực thể: “Bangcap”, mô tả về tên một số tính chất chuyên ngành nghề nghiệp theo bằng cấp tốt nghiệp Đại học
Tên Nhãn Domain Kiểu giá trị OWL Type
bangcap1 Kiến_trúc_sư bangcap xsd:string Individual bangcap2 Kỹ_sư bangcap xsd:string Individual
bangcap3 Bác_sỹ bangcap xsd:string Individual
bangcap4 Dược_sỹ bangcap xsd:string Individual bangcap5 Cử_nhân bangcap xsd:string Individual
Hình 3.6. Hình minh họa về một thực thể được quan tâm là đa phần nhân sự đang làm việc tại Viện có bằng đại học là cử nhân
3.1.4. Ontology tổng thể
Hình 3.7. Hình minh họa ontology tổng thể của hệ thống
3.2. LUẬT SUY DIỄN NGỮ NGHĨA
Các luật suy diễn thể hiện các tri thức mang tính phổ quát trên các khái niệm và các loại sự kiện khác nhau. Mỗi luật cho ta một quy tắc suy luận để đi đến một sự kiện mới từ những sự kiện nào đó.
- Suy diễn về loại của lớp (type)
IF (c2, subClassOf, c1) AND (x, type, c2) THEN (x, type, c1)
- Suy diễn về thuộc tính của lớp (Property)
IF (p2, subPropertyOf, p1) AND (x, p2, y)
THEN (x, p1, y)
- Suy diễn về lớp con của lớp (subclassOf)
IF (c2, subClassOf, c1) AND (c3, subClassOf, c2) THEN (c3, subClassOf, c1)
- Suy diễn về thuộc tính con của thuộc tính (subPropertyOf)
IF (p2, subPropertyOf, p1) AND (p3, subPropertyOf, p2) THEN (p3, subPropertyOf, p1) - Suy diễn trong miền (domain)
IF (p1, domain, c1) AND (x, p1, y) THEN (x, type, c1)
- Suy diễn trong dãy giới hạn (range)
IF (p1, range, c1) AND (x, p1, y) THEN (y, type, c1)
➢ Một số luật suy diễn trong chương trình:
- Nếu a là lĩnh vực con của b, b là lĩnh vực con của c thì a là lĩnh vực con của c: (a, linhvuccon, b), (b, linhvuccon, c) -> (a, linhvuccon, c)
- Nếu a là lĩnh vực tương đương với b, b là lĩnh vực tương đương với c, thì a là lĩnh vực tương đương với c:
(a, linhvuctuongduong, b), (b,linhvuctuongduong,c) -> (a, linhvuctuongduong, c) - Nếu a là lĩnh vực con của b thì b là lĩnh vực cha của a:
(a, linhvuccon, b) -> (b, linhvuccha, a). - Lĩnh vực liên quan:
Nếu lĩnh vực a liên quan với lĩnh vực b (a, linhvuclienquan, b) hoặc a là lĩnh vực con của b và không quá 3 cấp (a, linhvuclienquan{0,3}, b) thì lĩnh vực a liên quan đến lĩnh vực b (a, linhvuclienquan, b).
- Chuyên gia trong lĩnh vực:
Nhà khoa học a là chuyên gia trong lĩnh vực b (a, chuyengia, b) nếu a có công trình khoa học có lĩnh vực liên quan với b và a có bằng Thạc sỹ trong lĩnh vực cha của b. như vậy trong tùy điều kiện thực tế, có thay đổi số công trình hoặc yêu cầu bằng cấp thấp hoặc cao hơn.
- Tìm phản biện:
Nhà khoa học a có thể phản biện đề tài b (a, phanbiendetai, b) nếu a là chuyên gia trong lĩnh vực của đề tài b và a không tham gia hay hướng dẫn đề tài b.
3.3. MỘT SỐ CÂU TRUY VẤN SPARQL TRA CỨU THÔNG TIN
Sau đây là một số truy vấn SPARQL liên quan đến việc tra cứu, tìm kiếm thông tin - chức năng quan trọng của hệ thống.
Query 1 được dùng để tìm kiếm lĩnh vực nghiên cứu liên quan đến một lĩnh vực cho trước. Đầu vào là tên của lĩnh vực A. Đầu ra là các lĩnh vực liên quan đến A. Query 1 được dùng trong quá trình thực hiện việc tìm kiếm nhà khoa học hoặc các công trình nghiên cứu thuộc lĩnh vực A.
SELECT ?linhvuc WHERE
{ {
?linhvuc rdf:type ll:linhvuc ; ll: ten ?ten .
} UNION {
?linhvuc rdf:type ll:linhvuc ; ll: linhvuclienquan ?linhvuc. ?linhvuc ll:ten ?ten .
} UNION {
?linhvuc rdf:type ll:linhvuc ; ll:linhvuccon{0,3} ?linhvuc. ?linhvuc ll:ten ?ten;
FILTER(regex(?ten, "từ khóa", "i") }
GROUP BY ?linhvuc
Query 2 là truy vấn tìm kiếm cơ bản, được dùng để tìm kiếm nhà khoa học có tên giống từ khóa.
SELECT ?nguoi {
?class rdfs:subClassOf* ll:nguoi . ?object rdf:type ?class ;
ll:tendaydu ?tendaydu .
FILTER(regex(?tendaydu, "từ khóa", "i")) }
Query 3 là truy vấn tìm kiếm cơ bản, được dùng để tìm kiếm các công trình có tiêu đề, hoặc tên lĩnh vực, hoặc tên lĩnh vực liên quan, hoặc mô tả giống từ khóa.
SELECT * WHERE
{
?class rdfs:subClassOf* ll:congtrinh . ?congtrinh rdf:type ?class ;
ll:tieude ?tieude ; ll:tacgia ?tacgia .
OPTIONAL { ?congtrinh ll:mota ?mota . } {
FILTER (
regex(?tieude, "từ khóa", "i") || regex(?tacgia, "từ khóa", "i") || regex(?mota, "từ khóa", "i") }
} UNION {
?congtrinh ll:linhvucnghiencuu ?linhvuc .
{ /* câu lệnh tìm lĩnh vực nghiên cứu liên quan */ } }
}
Query 4 được dùng để tìm kiếm phản biện. Đầu vào là từ khoá lĩnh vực, tên chủ nhiệm đề tài. Đầu ra là tên và trọng số ưu tiên thể hiện số lượng công trình nghiên cứu liên quan đến lĩnh vực của những người có thể có thể tham gia phản biện đề tài.
SELECT ?nguoi ?ten (count(?congtrinh) as ?total) WHERE
{
?class rdfs:subClassOf* ll:congtrinh . ?congtrinh rdf:type ?class;
ll:linhvucnghiencuu ?linhvuc; ll:thanhvien ?tv.
?tv ll:nguoi ?ng .
?nguoi ll:tendaydu ?ten .
{ /* câu lệnh tìm lĩnh vực nghiên cứu liên quan */ }
FILTER(!regex(?ten, "tên đầy đủ của tác giả", "i")) }
GROUP BY ?nguoi ?ten
ORDER BY DESC(?total)
Ví dụ: Thực hiện việc tìm kiếm các công trình khoa học có tiêu đề liên quan đến "ontology" được lưu hành vào năm "2012".
Query 5
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix
ll:htttp://semanticweb.org/administrator/ontologies/2017/5/quanlykhoahoc#>
SELECT ?congtrinh ?tieude ?nam ?tacgia ?mota
WHERE {
?congtrinhClass rdfs:subClassOf* ll:congtrinh . ?congtrinh rdf:type ?congtrinhClass ; ll:tieude ?tieude ; ll:linhvucnghiencuu ?linhvuc ; ll:year ?year ; ll:tacgia ?tacgia .
OPTIONAL { ?congtrinh ll:mota ?mota . } ?nguoi rdf:type ?class .
?nguoi ll:tendaydu ?tendaydu . FILTER(?year = 2012)
FILTER(regex(?tieude, "ontology", "i")) }
GROUP BY ?congtrinh ?tieude ?year ?tacgia ?mota
3.4. THUẬT TOÁN TÌM KIẾM
3.4.1. Thuật toán tìm kiếm cơ bản
Bước 1: Xác định các miền kết quả tìm kiếm G. Bước 2: Với mỗi miền tìm kiếm.
- Xác định các thuộc tính O liên quan đến miền tìm kiếm. - Xét mỗi đối tượng Ii trong miền tìm kiếm.
+ Với mỗi thuộc tính Oj liên quan
Nếu từ khóa tìm kiếm phù hợp với giá trị của thuộc tính, thì Ii là một kết quả cần tìm kiếm.
Bước 3: Kết quả tìm kiểm là hợp của các kết quả tìm kiếm của các miền G.
3.4.2. Thuật toán tìm kiếm nâng cao
Bước 1: Xác định miền kết quả cần tìm kiếm G Bước 2: Xác định các thuộc tính O cần tìm kiếm Bước 3: Với mỗi thuộc đối tượng Ii trong G - Ứng với mỗi Oj
- Nếu từ khóa tìm kiếm của Oj không phù hợp với giá trị của Oj thì Ii không phải là kết quả tìm kiếm, xét đối tượng Ii+1 tiếp theo
- Mọi Oj đều thõa mãn, Ii là kết quả tìm kiếm Bước 4: Trả kết quả tìm kiếm
3.5. KẾT QUẢ CÀI ĐẶT VÀ THỬ NGHIỆM 3.5.1. Giao diện cài đặt Portal Plone.zope 4.3.1