nguon mo green stone va ung dung
TRANSCRIPT
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỄN THÀNH QUY – LÊ HOÀNG NGỌC QUỲNH
TÌM HIỂU NGUỒN MỞ GREENSTONE VÀ ỨNG DỤNG
KHOÁ LUẬN CỬ NHÂN TIN HỌC
TP. HCM, 2005
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM
SINH VIÊN THỰC HIỆN
NGUYỄN THÀNH QUY 0112195 LÊ HOÀNG NGỌC QUỲNH 0112471
TÌM HIỂU NGUỒN MỞ GREENSTONE VÀ ỨNG DỤNG
KHOÁ LUẬN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
ThS. NGUYỄN THỊ BÍCH
NIÊN KHOÁ 2001 – 2005
i
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
....................................................................................................................................... Thành phố Hồ Chí Minh, ngày tháng 07 năm 2005
Giáo viên hướng dẫn
ii
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
....................................................................................................................................... Thành phố Hồ Chí Minh, ngày tháng 07 năm 2005
Giáo viên phản biện
iii
LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Khoa Công nghệ Thông tin, Thư viện Cao
học Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh đã tạo điều kiện thuận lợi
cho chúng em hoàn thành đề tài Tốt nghiệp này.
Chúng em xin chân thành cảm ơn Th.S Nguyễn Thị Bích đã rất tận tình
hướng dẫn, chỉ bảo chúng em trong suốt thời gian thực hiện đề tài vừa qua.
Chúng em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Khoa
đã tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết, quý báu
trong những năm tháng học tập tại Trường. Xin cảm ơn Thầy Trần Minh Triết,
Thầy Nguyễn Đình Khương cũng như Thầy Cô và các anh chị trong Phòng SeLab
đã tạo điều kiện giúp đỡ chúng em thực hiện đề tài.
Qua đây, chúng tôi cũng muốn bày tỏ lòng biết ơn của mình đến các giáo sư
Đại học Waikato, New Zealand, đặc biệt là giáo sư I.H.Witten và giảng viên
Katherine Don. Xin cảm ơn sự giúp đỡ chân thành của bạn bè khắp thế giới.
Xin cảm ơn sự giúp đỡ của các bạn, những người luôn bên cạnh và giúp đỡ
chúng tôi.
Và cuối cùng, chúng con xin tỏ lòng biết ơn sâu sắc đến ông bà, bố mẹ, và cả
gia đình đã nuôi dưỡng, giáo dục và luôn động viên để chúng con có ngày hôm nay.
Mặc dù chúng em đã cố gắng hoàn thành Luận văn với tất cả sự nỗ lực của
bản thân, nhưng chắc chắn Luận văn vẫn không thể tránh khỏi những thiếu sót nhất
định, kính mong nhận được sự cảm thông và chỉ bảo tận tình của Quý Thầy Cô và
các bạn.
TP. HCM, tháng 7 năm 2005
Nhóm sinh viên thực hiện
Thành Quy & Ngọc Quỳnh
iv
MỞ ĐẦU
Sống trong kỷ nguyên của sự bùng nổ thông tin như hiện nay, một vấn đề
quan trọng đặt ra là làm sao quản lý thông tin hiệu quả, khoa học nhất, để có thể tìm
ra một vài thông tin hữu ích trong hàng ngàn, hàng triệu thông tin nhanh chóng,
chính xác.
Chúng ta đều biết, cách quản lý tài liệu truyền thống chủ yếu trên giấy có
những hạn chế nhất định, không chỉ tốn kém không gian lưu trữ, mà còn chiếm
nhiều thời gian khi muốn tìm kiếm thông tin. Ngoài ra còn khó bảo quản trong thời
gian lâu dài dưới những điều kiện xấu, dễ hư hỏng, mất mát. Chưa kể việc khai thác
sản xuất giấy làm ảnh hưởng tới môi trường sinh thái.
Máy tính ra đời, giúp giải quyết rất nhiều vấn đề liên quan đến việc quản lý
thông tin. Hình thức lưu trữ tài liệu dưới dạng điện tử ngày càng thông dụng hơn.
Thử làm một ví dụ nhỏ để so sánh giữa hình thức lưu trữ trên giấy với trên máy
tính, ở dạng điện tử. Mỗi hình thức lưu trữ có những ưu khuyết điểm riêng nhưng ở
đây chỉ so sánh về không gian lưu trữ, và thời gian tìm kiếm, truy xuất thông tin, mà
không tính đến những yếu tố khác. Đơn vị dung lượng lưu trữ phổ biến hiện nay là
Gigabyte. Một cuốn sách 200 trang lưu trên đĩa cần khoảng 1 megabyte. Như vậy
một gigabyte có thể lưu trữ khoảng một ngàn cuốn sách điện tử. Trong khi đó, để
lưu trữ một ngàn cuốn sách giấy truyền thống cần một kệ sách đầy từ sàn cho đến
trần nhà, chưa kể tiền mặt bằng, tiền in ấn, phát hành! Khi mà yêu cầu thông tin đòi
hỏi nhanh chóng, chính xác, tài liệu điện tử càng thể hiện những khả năng ưu việt
của mình. Cảm thấy rất tâm đắc với những hệ thống quản lý dữ liệu như vậy, chúng
em đã chọn đề tài “Tìm hiểu nguồn mở Greenstone và Ứng dụng” để làm đề tài Tốt
nghiệp, với mong muốn hiểu thêm về cách quản lý thông tin, từ đó mong muốn
đóng góp phần nào vào việc xây dựng thư viện điện tử cho Khoa Công nghệ Thông
tin, Trường Đại học Khoa học Tự nhiên, Thành phố Hồ Chí Minh.
v
NỘI DUNG
Nội dung Luận văn được tổ chức thành 9 chương:
Chương 1 – Tổng quan. Giới thiệu về thư viện điện tử và Greenstone.
Trong chương này sẽ trình bày lý do và các mục tiêu khi thực hiện đề tài.
Chương 2 – Các khái niệm cơ bản trong Greenstone. Mục đích của chương
này là giải thích, làm sáng rõ những khái niệm quan trọng trong Greenstone.
Chương 3 – Xây dựng bộ sưu tập. Tìm hiểu các quá trình thực thi của
Greenstone để tạo nên một bộ sưu tập hoàn chỉnh.
Chương 4 – Hiệu chỉnh giao diện của Greenstone. Khai thác khả năng tuỳ
biến cao của Greenstone để thay đổi giao diện cho phù hợp với yêu cầu thực tế.
Chương 5 – Hệ thống Web Greenstone. Đi sâu vào những khái niệm nâng
cao của hệ thống Greenstone, tập trung vào phần xử lý trên web của hệ thống.
Chương 6 – Xây dựng ứng dụng. Xây dựng thư viện số ITDL cho Khoa.
Trong chương này sẽ xác định yêu cầu thực tế, xác định hai mô-đun chính của hệ
thống: ITLib và ITLibWeb.
Chương 7 – ITLib – Mô-đun xử lý offline. Chương này phân tích thiết kế
hệ thống ITLib với chức năng chính là tạo các bộ sưu tập.
Chương 8 – ITLibWeb – Mô-đun xử lý online. Chương này sẽ phân tích,
thiết kế hệ thống ITLibWeb với giao diện web, tạo thư viện số, giúp người dùng sử
dụng các bộ sưu tập cũng như các chức năng, nghiệp vụ thư viện khác.
Chương 9 – Đánh giá và hướng phát triển. Chương cuối cùng của đề tài,
tổng hợp lại về Greenstone, đánh giá lại hệ thống thư viện điện tử ITDL và nêu
những hướng phát triển hệ thống trong tương lai.
Ngoài ra, các phần Phụ lục ở cuối Luận văn còn mở rộng các khía cạnh liên
quan đến thư viện số, các thành phần cấu thành nên Greenstone (MG, GDBM…) và
các mô-đun hỗ trợ Greenstone.
vi
MỤC LỤC
LỜI CẢM ƠN ........................................................................................................... iii MỞ ĐẦU................................................................................................................... iv MỤC LỤC................................................................................................................. vi DANH SÁCH HÌNH................................................................................................. xi DANH SÁCH BẢNG ............................................................................................. xiv PHẦN 1. TÌM HIỀU NGUỒN MỞ GREENSTONE.................................................1 CHƯƠNG 1. TỔNG QUAN ...................................................................................2
1.1. Thư viện và thư viện số ................................................................................3 1.1.1. Giới thiệu ..............................................................................................3 1.1.2. Thư viện số............................................................................................3
1.2. Thư viện số Greenstone................................................................................4 1.2.1. Giới thiệu ..............................................................................................4 1.2.2. Tính năng ..............................................................................................5
1.3. Mục đích của đề tài ......................................................................................6 CHƯƠNG 2. CÁC KHÁI NIỆM CƠ BẢN ............................................................7
2.1. Tài liệu..........................................................................................................8 2.2. Bộ sưu tập.....................................................................................................8 2.3. Tìm kiếm ......................................................................................................8 2.4. Duyệt tài liệu ................................................................................................8 2.5. Metadata .....................................................................................................10 2.6. Biên mục.....................................................................................................11 2.7. Plugin..........................................................................................................11
2.7.1. Giới thiệu ............................................................................................11 2.7.2. Danh sách các plugin ..........................................................................12 2.7.3. Các plugin xử lý tài liệu độc quyền ....................................................13 2.7.4. Gán thông tin metadata từ một tập tin mô tả ......................................14 2.7.5. Chia cấu trúc tài liệu nguồn ................................................................16
2.8. Classifier.....................................................................................................22 2.8.1. Giới thiệu ............................................................................................22 2.8.2. Phân loại..............................................................................................23
2.9. Định dạng cách hiển thị tài liệu..................................................................25 2.9.1. Giới thiệu ............................................................................................25 2.9.2. Định dạng danh sách tài liệu...............................................................25 2.9.3. Định dạng các thành phần của trang web hiển thị tài liệu ..................28
CHƯƠNG 3. XÂY DỰNG BỘ SƯU TẬP ...........................................................30 3.1. Giới thiệu....................................................................................................31 3.2. Chương trình mkcol.pl ...............................................................................33 3.3. Chương trình import.pl...............................................................................33 3.4. Chương trình buildcol.pl ............................................................................35 3.5. Cấu trúc thư mục của Greenstone ..............................................................37 3.6. Cấu trúc thư mục của một bộ sưu tập.........................................................38 3.7. Cấu trúc tài liệu theo định dạng XML........................................................39
vii
3.8. Tập tin cấu hình bộ sưu tập ........................................................................42 CHƯƠNG 4. HIỆU CHỈNH GIAO DIỆN GREENSTONE.................................45
4.1. Giới thiệu....................................................................................................46 4.2. Ảnh tiêu đề bộ sưu tập................................................................................48 4.3. Các nút duyệt trang.....................................................................................48
4.3.1. Cách hiển thị .......................................................................................48 4.3.2. Vị trí đặt các ảnh .................................................................................51
4.4. Ảnh tiêu đề trang ........................................................................................52 4.5. Các nút duyệt tài liệu..................................................................................53
4.5.1. Giới thiệu ............................................................................................53 4.5.2. Vị trí đặt các ảnh .................................................................................53 4.5.3. Thêm nút mới......................................................................................54
4.5.3.1. Tạo một nút mới dựa vào nút đã có.............................................55 4.5.3.2. Tạo macro mới cho một nút ........................................................55
4.5.4. Xóa nút duyệt tài liệu..........................................................................56 4.5.5. Thay đổi nút duyệt tài liệu ..................................................................56
4.6. Hiển thị văn bản .........................................................................................56 4.6.1. Hiển thị loại CL list.............................................................................56 4.6.2. Hiển thị nội dung ................................................................................57
4.7. Override các macro ....................................................................................58 4.8. Thêm một trang mới ...................................................................................60 4.9. Hiển thị các bộ sưu tập ...............................................................................61 4.10. Macro chuẩn ...........................................................................................62 4.11. Lưu ý.......................................................................................................63
CHƯƠNG 5. HỆ THỐNG WEB GREENSTONE ...............................................64 5.1. Giới thiệu....................................................................................................65 5.2. Tổng quan về cơ chế xử lý .........................................................................65 5.3. Chi tiết về cơ chế xử lý...............................................................................67 5.4. Mã nguồn....................................................................................................69
5.4.1. Các lớp và hàm cơ bản........................................................................70 5.4.2. Collection server .................................................................................70 5.4.3. Receptionist.........................................................................................72
PHẦN 2. XÂY DỰNG ỨNG DỤNG.......................................................................75 CHƯƠNG 6. XÂY DỰNG ỨNG DỤNG.............................................................76
6.1. Tổng quan...................................................................................................77 6.1.1. Phát biểu bài toán................................................................................77 6.1.2. Giới thiệu về ITDL (IT Digital Library).............................................77
6.2. Đối tượng sử dụng hệ thống.......................................................................78 6.3. Các chức năng chính ..................................................................................78
6.3.1. Cung cấp thông tin luận văn ...............................................................78 6.3.2. Chuẩn hoá tài liệu ...............................................................................78 6.3.3. Xây dựng bộ sưu tập ...........................................................................78
6.3.3.1. Xây dựng bộ sưu tập Luận văn....................................................79 6.3.3.2. Xây dựng bộ sưu tập Sách...........................................................79 6.3.3.3. Xây dựng bộ sưu tập Tổng quát ..................................................79
viii
6.3.4. Tra cứu tài liệu ....................................................................................79 CHƯƠNG 7. ITLIBWEB......................................................................................80
7.1. Xác định yêu cầu ........................................................................................81 7.1.1. Giới thiệu ............................................................................................81 7.1.2. Bảng chú giải ......................................................................................81
7.1.2.1. ITLib............................................................................................81 7.1.2.2. Greenstone ...................................................................................82 7.1.2.3. Thanh vien Khoa (Thành viên Khoa)..........................................82
7.1.3. Đặc tả bổ sung.....................................................................................82 7.1.3.1. Phạm vi ........................................................................................82 7.1.3.2. Tài liệu tham khảo .......................................................................82 7.1.3.3. Chức năng....................................................................................82 7.1.3.4. Tính khả dụng..............................................................................82 7.1.3.5. Tính ổn định.................................................................................83 7.1.3.6. Sự hỗ trợ ......................................................................................83 7.1.3.7. Tính bảo mật:...............................................................................83 7.1.3.8. Các ràng buộc thiết kế .................................................................83
7.1.4. Mô hình Use Case...............................................................................83 7.1.4.1. Mô hình........................................................................................83 7.1.4.2. Danh sách các Actor ....................................................................85 7.1.4.3. Danh sách các Use Case ..............................................................85 7.1.4.4. Đặc tả các Use case chính ...........................................................86
7.2. Phân tích các Use case chính......................................................................90 7.2.1. Use case “Dang nhap” (Đăng nhập) ...................................................90
7.2.1.1. Lược đồ tuần tự............................................................................90 7.2.1.2. Lược đồ cộng tác .........................................................................92 7.2.1.3. VOPC...........................................................................................93
7.2.2. Use case “Nhap luan van” (Nhập luận văn) .......................................94 7.2.2.1. Lược đồ tuần tự............................................................................94 7.2.2.2. Lược đồ cộng tác .........................................................................97 7.2.2.3. VOPC...........................................................................................99
7.2.3. Use case “Tra cuu” (Tra cứu) ...........................................................100 7.2.3.1. Lược đồ tuần tự..........................................................................100 7.2.3.2. Lược đồ cộng tác .......................................................................100 7.2.3.3. VOPC.........................................................................................102
7.2.4. Use case “Xem luan van” (Xem thông tin luận văn)........................102 7.2.4.1. Lược đồ tuần tự..........................................................................102 7.2.4.2. Lược đồ cộng tác .......................................................................103 7.2.4.3. VOPC.........................................................................................104
7.3. Thiết kế.....................................................................................................105 7.3.1. Lược đồ lớp tổng quát của hệ thống .................................................105 7.3.2. Chi tiết một số lớp chính...................................................................107
7.3.2.1. Lớp đối tượng dùng chung ........................................................107 7.3.2.2. Lớp boundary.............................................................................107 7.3.2.3. Lớp control ................................................................................108
ix
7.3.2.4. Lớp entity...................................................................................109 7.3.3. Thiết kế dữ liệu .................................................................................110
7.3.3.1. Mô hình dữ liệu .........................................................................110 7.3.3.2. Danh sách các bảng dữ liệu .......................................................110
7.3.4. Thiết kế giao diện một số trang web chính.......................................111 7.4. Cài đặt.......................................................................................................113
7.4.1. Công cụ và môi trường phát triển hệ thống ......................................113 7.4.2. Mô hình cài đặt .................................................................................114
7.4.2.1. Mô hình......................................................................................114 7.4.2.2. Diễn giải ....................................................................................114
CHƯƠNG 8. ITLib..............................................................................................115 8.1. Xác định yêu cầu ......................................................................................116
8.1.1. Giới thiệu ..........................................................................................116 8.1.2. Bảng chú giải ....................................................................................116
8.1.2.1. Bộ sưu tập..................................................................................116 8.1.2.2. Thủ thư ......................................................................................116 8.1.2.3. Quản trị hệ thống .......................................................................117 8.1.2.4. ITLibWeb ..................................................................................117
8.1.3. Đặc tả bổ sung...................................................................................117 8.1.3.1. Phạm vi ......................................................................................117 8.1.3.2. Tài liệu tham khảo .....................................................................117 8.1.3.3. Chức năng..................................................................................117 8.1.3.4. Tính khả dụng............................................................................117 8.1.3.5. Tính ổn định...............................................................................117 8.1.3.6. Hiệu suất ....................................................................................118 8.1.3.7. Sự hỗ trợ ....................................................................................118 8.1.3.8. Tính bảo mật ..............................................................................118 8.1.3.9. Các ràng buộc thiết kế ...............................................................118
8.1.4. Mô hình Use Case.............................................................................118 8.1.4.1. Lược đồ chính của mô hình Use case........................................118 8.1.4.2. Danh sách Actor ........................................................................119 8.1.4.3. Danh sách Use case ...................................................................119 8.1.4.4. Đặc tả các Use case chính .........................................................119
8.2. Phân tích các Use case chính....................................................................127 8.2.1. Use case “Chuan hoa Tai lieu” .........................................................127
8.2.1.1. Lược đồ tuần tự..........................................................................127 8.2.1.2. Lược đồ cộng tác .......................................................................127 8.2.1.3. VOPC.........................................................................................128
8.2.2. Use case “QL BST Luan van” ..........................................................129 8.2.2.1. Lược đồ tuần tự..........................................................................129 8.2.2.2. Lược đồ cộng tác .......................................................................131 8.2.2.3. VOPC.........................................................................................135
8.3. Thiết kế.....................................................................................................136 8.3.1. Sơ đồ lớp đối tượng của hệ thống .....................................................137 8.3.2. Chi tiết một số lớp đối tượng ............................................................138
x
8.3.2.1. Các lớp boundary.......................................................................138 8.3.2.2. Các lớp control ..........................................................................139 8.3.2.3. Các lớp entity.............................................................................140
8.3.3. Thiết kế dữ liệu .................................................................................140 8.3.3.1. Mô hình dữ liệu .........................................................................140 8.3.3.2. Danh sách các bảng dữ liệu .......................................................142
8.3.4. Thiết kế giao diện..............................................................................142 8.3.4.1. Màn hình Chuẩn hoá Tài liệu ....................................................143 8.3.4.2. Màn hình thu thập dữ liệu (cho tất cả các bộ sưu tập) ..............143 8.3.4.3. Màn hình quản lý thông tin bộ sưu tập (cho tất cả các bộ sưu tập) 144 8.3.4.4. Màn hình tiến hành xây dựng bộ sưu tập (cho tất cả các bộ sưu tập) 144 8.3.4.5. Màn hình quản lý thông tin Luận văn .......................................145 8.3.4.6. Màn hình quản lý thông tin Sách/Giáo trình .............................145 8.3.4.7. Màn hình quản lý thông tin một bộ sưu tập tổng quát ..............146
8.4. Cài đặt.......................................................................................................146 8.4.1. Công cụ và môi trường phát triển hệ thống ......................................146 8.4.2. Mô hình cài đặt .................................................................................147
8.4.2.1. Mô hình......................................................................................147 8.4.2.2. Diễn giải ....................................................................................147
PHẦN 3. TỔNG KẾT.............................................................................................149 CHƯƠNG 9. ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ....................................150
9.1. Đánh giá ...................................................................................................150 9.2. Hướng phát triển.......................................................................................150
PHỤ LỤC A. GIỚI THIỆU VỀ SEARCH ENGINE .............................................151 PHỤ LỤC B. CÁC THƯ VIỆN SỐ Ở VIỆT NAM ...............................................154 PHỤ LỤC C - CÁC THÀNH PHẦN HỖ TRỢ GREENSTONE ..........................156 TÀI LIỆU THAM KHẢO.......................................................................................167
xi
DANH SÁCH HÌNH
Hình 2.1 - Minh hoạ duyệt tài liệu ..............................................................................9 Hình 2.2 - Minh hoạ duyệt tài liệu được phân cấp....................................................10 Hình 2.3 - Cây kế thừa của các plugin xử lý tài liệu độc quyền ...............................14 Hình 2.4 - Định nghĩa kiểu tài liệu XML của tập tin metadata.xml .........................14 Hình 2.5 -Ví dụ một tập tin metadata.xml ................................................................15 Hình 2.6 - Minh họa cách chia section cho tài liệu...................................................16 Hình 2.7 - Hiển thị nội dung tài liệu trên trình duyệt web........................................21 Hình 2.8 - Hiển thị nội dung của một chương cụ thể................................................21 Hình 2.9 - Dùng AZList để liệt kê các tài liệu theo từng vùng alphabet ..................22 Hình 2.10 - Minh họa classifier AZList ....................................................................23 Hình 2.11 - Minh họa classifier List .........................................................................23 Hình 2.12 - Minh họa classifier DateList..................................................................24 Hình 2.13 - Minh họa classifier Hierarchy ...............................................................25 Hình 2.14 - Kết quả hiển thị tài liệu trên trình duyệt ................................................27 Hình 3.1 - Quá trình xây dựng bộ sưu tập.................................................................32 Hình 3.2 – Cấu trúc thư mục của Greenstone ...........................................................37 Hình 3.3 – Minh họa cấu trúc phân cấp của tài liệu..................................................41 Hình 3.4 - Tìm kiếm tài liệu theo chỉ mục document và section ..............................42 Hình 4.1 - Các phần trong giao diện web của Greenstone........................................48 Hình 4.2 – Các nút duyệt tài liệu...............................................................................49 Hình 4.3 – Hiển thị danh sách các tài liệu ................................................................57 Hình 4.4 – Hiển thị nội dung tài liệu.........................................................................58 Hình 4.5 - Hiệu chỉnh giao diện trang chủ ................................................................59 Hình 5.1 - Cơ chế xử lý.............................................................................................65 Hình 5.2 - Collection server và receptionist liên lạc qua nghi thức null protocol ....66 Hình 5.3 - Bộ sưu tập Project Gutenberg..................................................................67 Hình 5.4 - Cơ chế xử lý dùng null protocol ..............................................................68 Hình 5.5 - Cấu trúc thư mục chứa mã nguồn Greenstone.........................................69 Hình 5.6 - Các đối tượng Filter .................................................................................71 Hình 7.1 – Lược đồ Use case ....................................................................................84 Hình 7.2 – “Đăng nhập” : dòng sự kiện chính ..........................................................91 Hình 7.3 - “Đăng nhập” : dòng sự kiện khác ............................................................92 Hình 7.4 - “Đăng nhập” : dòng sự kiện chính...........................................................92 Hình 7.5 - “Đăng nhập” : dòng sự kiện khác ............................................................93 Hình 7.6 - “Đăng nhập” : VOPC...............................................................................93 Hình 7.7 – Thêm thông tin luận văn .........................................................................94 Hình 7.8 - Cập nhật thông tin luận văn .....................................................................95 Hình 7.9 - Thông tin nhập không hợp lệ ...................................................................96 Hình 7.10 - thông tin cập nhật không hợp lệ.............................................................97 Hình 7.11 - Thêm thông tin luận văn ........................................................................98 Hình 7.12 - Cập nhật thông tin luận văn ...................................................................98 Hình 7.13 - Thông tin nhập không hợp lệ .................................................................98 Hình 7.14 - Thông tin cập nhật không hợp lệ ...........................................................99
xii
Hình 7.15 - “Nhập luận văn” : VOPC.......................................................................99 Hình 7.16 - “Tra cứu” : dòng sự kiện chính............................................................100 Hình 7.17 - “Tra cứu” : dòng sự kiện khác .............................................................100 Hình 7.18 - “Tra cứu” : dòng sự kiện chính............................................................101 Hình 7.19 - “Tra cứu” : dòng sự kiện khác .............................................................101 Hình 7.20 - “Tra cuu” : VOPC................................................................................102 Hình 7.21 - “Xem luận văn” : dòng sự kiện chính..................................................102 Hình 7.22 - “Xem luận văn” : dòng sự kiện khác ...................................................103 Hình 7.23 - “Xem luận văn” : dòng sự kiện chính..................................................103 Hình 7.24 - “Xem luận văn” : dòng sự kiện khác ...................................................104 Hình 7.25 - “Xem luận văn” : VOPC......................................................................104 Hình 7.26 - Lược đồ lớp của hệ thống ....................................................................106 Hình 7.27 - Lớp ThesisInfo.....................................................................................107 Hình 7.28 - Lớp UserInfo........................................................................................107 Hình 7.29 - Lớp InputThesisInfo ............................................................................108 Hình 7.30 - Lớp Login ............................................................................................108 Hình 7.31 - Lớp ThesisController ...........................................................................108 Hình 7.32 - Lớp UserController..............................................................................109 Hình 7.33 - Lớp ThesisEntity..................................................................................109 Hình 7.34 - Lớp UserEntity.....................................................................................109 Hình 7.35 – Mô hình dữ liệu...................................................................................110 Hình 7.36 – Trang chủ ............................................................................................111 Hình 7.37 - Trang chức năng của thành viên ..........................................................111 Hình 7.38 - Trang nhập thông tin luận văn .............................................................112 Hình 7.39 - Trang xem thông tin luận văn..............................................................112 Hình 7.40 - Trang tra cứu tài liệu............................................................................113 Hình 7.1 - Mô hình cài đặt .....................................................................................114 Hình 8.1 - Lược đồ Use case..................................................................................118 Hình 8.2 - “Chuẩn hóa tài liệu” : dòng sự kiện chính............................................127 Hình 8.3 - “Chuẩn hóa Tài liệu” : dòng sự kiện chính...........................................128 Hình 8.4 - “Chuẩn hóa Tài liệu” : VOPC ..............................................................128 Hình 8.5 - Luồng phụ “Tạo mới bộ sưu tập” .........................................................129 Hình 8.6 - Luồng phụ “Mở bộ sưu tập” .................................................................130 Hình 8.7 - Luồng phụ “Xoá bộ sưu tập” ................................................................131 Hình 8.8 - Luồng phụ “Tạo mới bộ sưu tập” .........................................................132 Hình 8.9 - Luồng phụ “Mở bộ sưu tập” .................................................................133 Hình 8.10 - Luồng phụ “Xoá bộ sưu tập” ..............................................................134 Hình 8.11 - Sơ đồ lớp đối tượng của hệ thống.......................................................137 Hình 8.12 - Các lớp boundary................................................................................138 Hình 8.13 - Các lớp control....................................................................................139 Hình 8.14 - Các lớp entity......................................................................................140 Hình 8.15 - Mô hình dữ liệu...................................................................................141 Hình 8.16 - Màn hình chuẩn hoá tài liệu................................................................143 Hình 8.17 - Màn hình thu thập dữ liệu...................................................................143 Hình 8.18 - Màn hình quản lý thông tin BST ........................................................144
xiii
Hình 8.19 - Màn hình xây dựng bộ sưu tập ...........................................................144 Hình 8.20 - Màn hình quản lý thông tin Luận văn.................................................145 Hình 8.21 - Màn hình quản lý thông tin Sách/Giáo trình ......................................145 Hình 8.22 - Màn hình quản lý thông tin BST nói chung .......................................146 Hình 8.23 - Mô hình cài đặt ...................................................................................147
xiv
DANH SÁCH BẢNG
Bảng 2.1 – Danh sách các plugin ..............................................................................13 Bảng 2.2 - Các thành phần trên trang web................................................................28 Bảng 3.1 - Các thư mục của Greenstone...................................................................38 Bảng 3.2 - Các thư mục của một bộ sưu tập .............................................................38 Bảng 3.3 - Thông tin tập tin cấu hình .......................................................................43 Bảng 4.1 – Danh sách các package ...........................................................................47 Bảng 4.2 - Một số macro chuẩn ................................................................................63 Bảng 5.1- Danh sách các Action ...............................................................................73 Bảng 7.1 - Danh sách Actor ......................................................................................85 Bảng 7.2 - Danh sách các Use case...........................................................................85 Bảng 7.3 - Danh sách bảng dữ liệu .........................................................................110 Bảng 8.1 – Danh sách Actor ...................................................................................119 Bảng 8.2 - Danh sách Use case ...............................................................................119 Bảng 8.3 - Danh sách bảng dữ liệu .........................................................................142
Trang 1
PHẦN 1. TÌM HIỀU NGUỒN MỞ GREENSTONE
Trong phần này, chúng ta sẽ tìm hiểu thư viện số Greenstone, từ những khái
niệm cơ bản, đến cấu trúc và cơ chế xử lý của hệ thống. Phần này sẽ giải thích tại
sao Greenstone được rất nhiều thư viện trên thế giới lựa chọn như là một giải pháp
xây dựng thư viện số đơn giản, hiệu quả, kinh tế và nhất là khả năng tuỳ biến cao
nhưng vẫn đáp ứng được các tiêu chuẩn quốc tế về nghiệp vụ thư viện.
Tổ chức Phần 1 gồm 5 chương:
Chương 1 : Tổng quan
Chương 2 : Các khái niệm cơ bản
Chương 3 : Xây dựng bộ sưu tập
Chương 4 : Hiệu chỉnh giao diện của Greenstone
Chương 5 : Hệ thống web Greenstone
Chương 1 – Tổng quan
Trang 2
CHƯƠNG 1. TỔNG QUAN
Thư viện và thư viện số
Giới thiệu về Greenstone
Mục đích của đề tài
Chương 1 – Tổng quan
Trang 3
1.1. Thư viện và thư viện số 1.1.1. Giới thiệu
Thư viện là kho tàng tri thức đã có những đóng góp có ý nghĩa cho sự phát
triển của con người.
Tuy nhiên, khi lượng thông tin vận hành trong xã hội trở nên nhiều hơn, thư
viện truyền thống, với hình thức lưu trữ chủ yếu trên giấy, có còn giữ vị trí độc tôn,
và có còn thích hợp không? Thời đại của Internet, của mạng thông tin toàn cầu,
người ta cần tìm ra một cách quản lý thông tin sao cho hiệu quả. Điều này tập trung
vào hai khía cạnh chủ yếu. Thứ nhất, phải tiết kiệm không gian lưu trữ; thứ hai, tốc
độ truy tìm thông tin phải thật nhanh. Giờ đây, người ta trao đổi thông tin không chỉ
qua giấy tờ, mà còn thường xuyên sử dụng đến hình thức tài liệu điện tử: sách điện
tử, báo điện tử, email, phim ảnh, v.v… Hơn thế nữa, người ta muốn, dù ở bất cứ đâu
trên thế giới cũng có thể tìm và lấy được thông tin cần thiết. Tất cả những điều đó
đặt ra yêu cầu phải xây dựng một hệ thống có những chức năng của một thư viện
bình thường, nhưng chủ yếu quản lý tài liệu điện tử và có thể truy cập vào ở bất cứ
đâu. Và những cụm từ như “virtual library” (thư viện ảo), “electronic library" (thư
viện điện tử), “library without walls” (thư viện không có tường) và gần đây nhất, là
“digital library” (thư viện số) xuất hiện, để chỉ về loại hình thư viện còn tương đối
mới mẻ này.
1.1.2. Thư viện số
Vậy thư viện số là gì? Theo định nghĩa của Akscyn và Witten, (Trường Đại
học Waikato, New Zealand), thư viện số là tập hợp các bộ sưu tập số, của các đối
tượng kỹ thuật bao gồm văn bản, hình ảnh, video, âm thanh, cho phép:
- Truy cập, chọn lọc và hiển thị tài nguyên số (dành cho độc giả)
- Xây dựng, tổ chức và lưu hành (dành cho cán bộ thư viện)
Chương 1 – Tổng quan
Trang 4
Một câu hỏi thú vị là, World Wide Web có phải là một thư viện số hay
không? Nó cũng là một kho dữ liệu khổng lồ chuyên thu thập hàng ngàn, hàng triệu
trang tài liệu, cho phép người ta tìm kiếm thông tin trên đó. Tuy nhiên, theo Clifford
Lynch, một trong những nhà nghiên cứu hàng đầu trong lĩnh vực khoa học thư viện
nói chung và thư viện số nói riêng, câu trả lời là không. “Internet và những tài
nguyên đa phương tiện của nó, còn gọi là World Wide Web, không được thiết kế để
hỗ trợ xuất bản và thu nhận thông tin có tổ chức. Nó chỉ là một kho hỗn độn của
các thông tin vô tổ chức trên thế giới số… Internet không phải là một thư viện
số.”[23]
Thư viện số trước hết là một thư viện.Thêm vào đó nó có các đặc trưng riêng
của một hệ thống điện tử với những công nghệ, dịch vụ mới.
Hiện nay trên thế giới có rất nhiều hệ thống phần mềm thư viện số như
Project Gutenberg, Ibiblio và Internet Archieve. Tuy nhiên, chúng hầu hết là những
sản phẩm thương mại. Chỉ tính riêng ở Việt Nam đã có ít nhất ba nhà cung cấp hệ
thống phần mềm dạng này1. Đó là Công ty trách nhiệm hữu hạn CMC (CMC Co.,
Ltd) với hệ thống iLib; Công ty Tin học Lạc Việt (LAC VIET Computing Corp) với
phần mềm VeBrary; và phần mềm Libol của Công ty Tin học Tinh Vân (TINH
VAN Informatic Technology Co.). Theo các chuyên gia đánh giá, “Các phần mềm
hiện nay đang sử dụng tại các thư viện Việt Nam do các nhà sản xuất Việt Nam
cung cấp đang còn có một số hạn chế về độ tin cậy. Do thời gian dùng thử nghiệm
chưa nhiều, qui mô khai thác chưa lớn nên chưa thể có kết luận một cách rõ ràng
chất lượng của các sản phẩm này” [19]. Do đó, việc sử dụng một hệ thống thư viện
số thoả mãn những tiêu chuẩn quốc tế, tạo mặt bằng chung trong quá trình liên kết
hệ thống các thư viện hiện nay là rất cần thiết.
1.2. Thư viện số Greenstone 1.2.1. Giới thiệu
Các thư viện số làm thay đổi nhanh chóng cách thức thu thập và phổ biến
thông tin ở nhiều quốc gia, nhất là các quốc gia còn kém và đang phát triển. Đứng 1 Xin xem phần thăm dò các sản phẩm phần mềm thư viện ở Việt Nam trong phụ lục B
Chương 1 – Tổng quan
Trang 5
trước yêu cầu thực tế, năm 1995 một nhóm nhỏ các giảng viên và sinh viên Đại học
Waikato, New Zealand đã xây dựng phần mềm thư viện số Greenstone, giúp người
dùng dễ dàng xây dựng và phân phối các bộ sưu tập thư viện số. Phần mềm
Greenstone cung cấp một phương pháp mới để tổ chức và xuất bản thông tin trên
Internet và qua CD-ROM. Greenstone ban đầu là sản phẩm của dự án New Zealand
Digital Library của trường đại học Waikato. Sau đó, thấy được ý nghĩa và tác dụng
của phần mềm, từ tháng 8/2000, UNESCO2 và Human Info NGO3 đã tham gia
phát triển và hỗ trợ. Đây là phần mềm mã nguồn mở được cung cấp trên
http://www.greenstone.org theo thoả thuận đăng kí GNU General Public License.
Greenstone mang tính quốc tế. Hiện nay Greenstone đã được sử dụng ở rất
nhiều quốc gia, có giao diện và các bộ sưu tập với nhiều ngôn ngữ. Nhóm nghiên
cứu nghĩ rằng, việc mở rộng, hỗ trợ cho mọi sinh ngữ là điều có thể thực hiện được.
UNESCO đã và đang phát triển Greenstone như là một phần trong chương trình
“Thông tin cho tất cả - Information for All”. Greenstone cũng là phần mềm đa môi
trường : có thể chạy được trên hệ điều hành Windows, Unix, Macintosh OS/X.
Người dùng sử dụng các bộ sưu tập của Greenstone qua web, hoặc qua đĩa CD, mà
không có sự khác biệt gì nhiều.
Hệ thống Greenstone gồm hai phần : Phần xử lý offline, thực hiện việc tạo
dựng các bộ sưu tập, tạo các cấu trúc dữ liệu để tìm kiếm và trình duyệt; và phần xử
lý online, cho phép người dùng truy xuất, sử dụng các bộ sưu tập.
1.2.2. Tính năng
Sau đây là những điều tóm lược về những đặc trưng nổi bật, và cũng là ưu
thế của Greenstone.
- Truy cập qua trình duyệt web, cả ở chế độ cục bộ (local) và từ xa (remote).
- Chạy được trên nhiều hệ điều hành : Windows, Unix, Macintosh.
- Tìm kiếm toàn văn bản và tìm kiếm theo từng trường riêng biệt.
2 UNESCO (United Nations Educational, Scientific and Cultural Organization) – Tổ chức Giáo dục, Khoa học và Văn hoá của Liên Hợp Quốc. 3 Human Info NGO, viết tắt của Humanitarian Information for All - Non-Governmental Organization, một tổ chức phi chính phủ của Bỉ, hoạt động nhân đạo vì quyền tự do và phát triển của con người.
Chương 1 – Tổng quan
Trang 6
- Khả năng trình duyệt linh động, đa dạng
- Cấu trúc duyệt tài liệu được xây dựng hoàn toàn tự động.
- Tận dụng các metadata sẵn có trong tài liệu, giúp người tạo lập bộ sưu tập
không phải làm bằng tay.
- Khả năng linh động, dễ mở rộng hệ thống nhờ các thành phần như plugin,
classifier.
- Hỗ trợ xử lý tài liệu với nhiều loại ngôn ngữ.
- Cung cấp giao diện đa ngôn ngữ.
- Ngoài các bộ sưu tập văn bản, hình ảnh thông thường, Greenstone còn cho
phép tạo các bộ sưu tập hình ảnh, âm thanh đa phương tiện (multimedia)
- Khả năng lưu trữ rất lớn, tới hàng Gigabyte dữ liệu.
- Thêm mới bộ sưu tập đơn giản, có hiệu quả tức thì.
- Khả năng xuất bản các bộ sưu tập ra CD, với đầy đủ tính năng để có thể tự
cài đặt và chạy độc lập
- Các bộ sưu tập dễ dàng được mang chuyển, phân phối, chia sẻ.
- Theo phong cách WYSIWYG (What you see is what you get), dễ dùng,
thuận tiện.
1.3. Mục đích của đề tài Sau khi tìm hiểu về hệ thống những phần mềm thư viện số trong nước và
trên thế giới, Greenstone nổi bật lên với tính hiệu quả, dễ sử dụng, mã nguồn mở, dễ
tùy biến và mang tính chuẩn quốc tế. Rất tâm đắc với phương châm hoạt động của
Greenstone, chúng em đã chọn tìm hiểu về hệ thống phần mềm này làm đề tài Tốt
nghiệp của mình. Hiểu rõ về Greenstone và ứng dụng phần mềm này vào mục đích
xây dựng một thư viện số, trước hết là phục vụ nhu cầu học tập và giảng dạy trong
Khoa Công nghệ Thông tin, Đại học KHTN. Sau đó, nếu có thể, sẽ tham gia vào
việc số hoá hệ thống thư viện hiện có. Đây cũng là một yêu cầu cấp thiết, nhất là khi
Trường chúng ta làm chủ đầu tư dự án “Hệ thống thông tin – thư viện điện tử liên
kết các trường đại học” từ giữa năm 2004.
Chương 2 – Các khái niệm cơ bản
Trang 7
CHƯƠNG 2. CÁC KHÁI NIỆM CƠ BẢN
Tài liệu
Bộ sưu tập
Tìm kiếm
Duyệt tài liệu
Metadata
Biên mục
Plugin
Classifier
Định dạng cách hiển thị tài liệu
Chương 2 – Các khái niệm cơ bản
Trang 8
2.1. Tài liệu Greenstone hỗ trợ các loại tài liệu dạng HTML, XHTML và XML, TXT, các
dạng phức tạp như Word, RTF hoặc dạng được sử dụng phổ biến trên nhiều môi
trường như PDF, PostScript, dạng multi-media như âm thanh (ví dụ .mp3), hình
ảnh, phim…
2.2. Bộ sưu tập Một thư viện số do Greenstone tạo ra chứa được nhiều bộ sưu tập. Mỗi bộ
sưu tập tập trung vào một chủ đề nào đó. Ví dụ, bộ sưu tập Luận văn, bộ sưu tập
Sách… Các bộ sưu tập có thể được bổ sung cập nhật. Kích thước bộ sưu tập có thể
lên đến hàng gigabyte dữ liệu. Bộ sưu tập có thể xem là đơn vị của một thư viện số
Greenstone.
2.3. Tìm kiếm Mặc định, các bộ sưu tập cho phép tìm kiếm trên toàn bộ nội dung văn bản.
hoặc có thể tìm trên từng vùng (section) hay đoạn (paragraph). Cũng có thể tìm
kiếm theo các từ khoá, hay các cụm từ, và kết quả sẽ được sắp xếp thứ tự theo yêu
cầu của câu truy vấn.
2.4. Duyệt tài liệu Greenstone cho phép định nghĩa trước các cấu trúc để duyệt tài liệu trong
mỗi bộ sưu tập dựa trên những metadata tìm thấy trong bộ sưu tập đó.
Chương 2 – Các khái niệm cơ bản
Trang 9
Ví dụ, bộ sưu tập Greenstone Demo cho phép ta duyệt các tài liệu theo
metadata “đề mục”
Hình 2.1 - Minh hoạ duyệt tài liệu
Với những tài liệu phân cấp theo bảng mục lục, ta có thể duyệt theo chính
mục lục đó, rất tiện lợi, như hình dưới đây
Chương 2 – Các khái niệm cơ bản
Trang 10
Hình 2.2 - Minh hoạ duyệt tài liệu được phân cấp
2.5. Metadata Là thông tin mô tả cho một tài liệu trong bộ sưu tập, ví dụ tựa đề tài liệu, tên
tác giả, ngày xuất bản…
Greenstone dùng các thẻ XML để mô tả thông tin cho tài liệu, ví dụ:
<Metadata name =”Title”> Tìm hiểu nguồn mở Greenstone </Metadata>
<Metadata name =”Author”> Quy,Quỳnh </Metadata>
Các thẻ này có thể:
- Được nhúng trong tài liệu của bộ sưu tập, ví dụ các thẻ HTML trong tài liệu
HTML.
- Được lưu thành tập tin metadata kèm theo tài liệu.
- Được trích một cách tự động từ một tài liệu nào đó, ví dụ thông tin về tên,
kích thước, ngày tạo, ngày hiệu chỉnh … tập tin tài liệu.
Chương 2 – Các khái niệm cơ bản
Trang 11
2.6. Biên mục Biên mục là khái niệm của nghiệp vụ thư viện để chỉ hành động cung cấp
thông tin mô tả cho các tài liệu trong thư viện. Hiện nay người ta thường biên mục
tài liệu theo chuẩn quốc tế Dublin Core.
2.7. Plugin 2.7.1. Giới thiệu
Plugin là một chương trình con (script) được dùng trong quá trình xây dựng
bộ sưu tập.
Do nguồn vào có nhiều dạng tài liệu khác nhau (pdf, word, text…) nên cần
plugin chuyển chúng về một dạng thống nhất là XML của Greenstone và trích thông
tin từ những tài liệu nguồn đưa vào tập tin XML này. Ví dụ một plugin là
HTMLPlug chuyển những trang HTML nguồn sang định dạng XML của
Greenstone và trích thông tin metadata của tài liệu nguồn, ví dụ phần tiêu đề của
trang HTML được bao trong cặp tag <title></title> được trích ra và đưa vào tập tin
XML của Greenstone.
Mỗi bộ sưu tập có một tập tin cấu hình collect.cfg. Tập tin này liệt kê các
plugin được dùng trong quá trình xây dựng bộ sưu tập. Tùy theo tài liệu nguồn có
định dạng thế nào, ta sẽ chọn các plugin tương ứng. Ví dụ nếu tài liệu nguồn là tập
tin word thì ta dùng plugin WordPlug.
Các plugin được viết bằng ngôn ngữ lập trình Perl. Mọi plugin đều kế thừa từ
plugin cơ sở BasPlug. Plugin cơ sở BasPlug thực hiện những thao tác cơ bản như
tạo tài liệu mới XML theo định dạng của Greenstone, gán định danh cho tài liệu.
Các plugin được đặt trong thư mục “greenstone\perllib\plugins”.
Để tìm hiểu thông tin của một plugin, ta dùng lệnh sau ở chế độ command
prompt: pluginfo.pl plugin-name. Ta cũng có thể viết các plugin mới.
Chương 2 – Các khái niệm cơ bản
Trang 12
2.7.2. Danh sách các plugin
Tên plugin Công dụng Kiểu tập tin xử lý
Các tập tin không xử lý
BasPlug Là lớp cơ sở cho tất cả các plugin - - ConvertToPlug Gọi các chương trình bên ngoài để
chuyển các tài liệu độc quyền (word hay pdf) sang html hay plain text
- -
ArcPlug Xử lý những tập tin được chỉ ra trong tập tin archives.inf, tập tin archive.inf là cầu nối giữa tiến trình import và tiến trình build. Plugin này bắt buộc phải khai báo trong tập tin cấu hình
- -
RecPlug Duyệt qua thư mục để xử lý các tập tin mà plugin này tìm thấy
- -
GAPlug Xử lý những tập tin của Greenstone được phát sinh từ chương trình import.pl
.xml -
TEXTPlug Xử lý tập tin text thuần túy .txt, .text - HTMLPlug Xử lý tập tin HTML .htm, .html,
.cgi, .php,
.asp, .shm,
.shtml
.gif, .jpg,
.jpeg, .png,
.css, .rtf
WordPlug Xử lý tài liệu Word .doc .gif, .jpg, .jpeg, .png, .css, .rtf
PDFPlug Xử lý tập tin pdf .pdf .gif, .jpg, .jpeg, .png, .css, .rtf
PSPlug Xử lý tài liệu postscript, trích thông tin metadata ngày, tựa đề, số trang
.ps .eps
EMAILPlug Xử lý những thông điệp email, trích thông tin như tác giả, chủ đề, ngày…
Tên tập tin kết thúc bằng số, hoặc số theo sau là .Email
-
BibTexPlug Xử lý các tập tin bibliography theo chuẩn BibTex
.bib -
ReferPlug Xử lý các tập tin bibliography theo chuẩn Refer
.bib -
SRCPlug Xử lý các tập tin mã nguồn Makefile, Readme, .c, .cc, .cpp, .h, .hpp, pl,
.o, .obj, .a,
.so, .dll
Chương 2 – Các khái niệm cơ bản
Trang 13
.pm, .sh ImagePlug Xử lý các tập tin ảnh. Plugin này chỉ
dùng trên UNIX .gif, .jpg, .jpeg, .png, .bmp, .xbm, .tif, .tiff
-
SplitPlug Giống BasPlug và ConvertToPlug. Không dùng trực tiếp plugin này, plugin này phải được kế thừa lại để xử lý tài liệu
- -
FOXPlug Xử lý các tập tin FoxBase .dbt, .dbf - ZIPPlug Xử lý các tập tin nén .gzip, .bzip,
.zip, .tar,
.gz, .bz, .tgz,
.taz
-
Bảng 2.1 – Danh sách các plugin
2.7.3. Các plugin xử lý tài liệu độc quyền
Đối với tài liệu độc quyền như word, pdf, ta dùng các plugin tương ứng là
WordPlug và PDFPlug. Các plugin này thực hiện 2 thao tác:
1. Chuyển tài liệu nguồn sang dạng html hay plain text
2. Sử dụng plugin HTMLPlug hay TEXTPlug chuyển kết quả ở bước 1 sang
dạng XML của Greenstone.
Để chuyển tài liệu nguồn sang dạng html hay plain text, Greenstone dùng
những chương trình có sẵn như pdftohtml, wvware trong thư mục
“greenstone\bin\windows”.
Các plugin WordPlug và PDFPlug kế thừa từ plugin ConvertToPlug. Tùy
chọn convert_to của plugin ConvertToPlug cho biết chuyển sang dạng tài liệu nào.
Chương 2 – Các khái niệm cơ bản
Trang 14
Hình 2.3 - Cây kế thừa của các plugin xử lý tài liệu độc quyền
2.7.4. Gán thông tin metadata từ một tập tin mô tả
Các thông tin metadata cho một tài liệu có thể được đặc tả trong một tập tin
XML metadata.xml. Nếu tùy chọn use_metadata_files của plugin RecPlug được
chỉ ra, plugin này sẽ gán thông tin metadata có trong tập tin metadata.xml vào tập
tin XML chuyển đổi từ tài liệu nguồn.
<!DOCTYPE GreenstoneDirectoryMetadata [
<!ELEMENT DirectoryMetadata (FileSet*)>
<!ELEMENT FileSet (FileName+,Description)>
<!ELEMENT FileName (#PCDATA)>
<!ELEMENT Description (Metadata*)>
<!ELEMENT Metadata (#PCDATA)>
<ATTLIST Metadata name CDATA #REQUIRED>
<ATTLIST Metadata mode (accumulate|override) "override">
]>
Hình 2.4 - Định nghĩa kiểu tài liệu XML của tập tin metadata.xml
Chương 2 – Các khái niệm cơ bản
Trang 15
<?xml version="1.0" ?>
<!DOCTYPE GreenstoneDirectoryMetadata SYSTEM
"http://greenstone.org/dtd/GreenstoneDirectoryMetadata/1.0/GreenstoneDirecto
ryMetadata.dtd">
<DirectoryMetadata>
<FileSet>
<FileName>vidu.*</FileName>
<Description>
<Metadata name="Title">Đây là ví dụ</Metadata>
<Metadata name="Place" mode="accumulate">Sách giáo
khoa</Metadata>
</Description>
</FileSet>
<FileSet>
<FileName>vidu-1.jpg</FileName>
<Description>
<Metadata name="Title">Đây là ví dụ 1</Metadata>
<Metadata name="Subject">Thư viện số</Metadata>
</Description>
</FileSet>
</DirectoryMetadata>
Hình 2.5 -Ví dụ một tập tin metadata.xml
Ví dụ trên chứa 2 cấu trúc metadata. Ở mỗi cấu trúc, trường FileName đặc tả
tên các tập tin cần gán thông tin metadata. Ở cấu trúc thứ nhất, thông tin metadata
sẽ được gán cho các tập tin được bắt đầu với chữ “vidu”. Những thông tin metadata
Title và Place có giá trị tương ứng là “Đây là ví dụ”, “Sách giáo khoa”. Ở cấu trúc
thứ hai, metadata Title của tập tin vidu-1.jpg có giá trị “Đây là ví dụ 1” sẽ override
Chương 2 – Các khái niệm cơ bản
Trang 16
thông tin metadata Title đã được đặc tả ở cấu trúc metadata thứ nhất. Tập tin vidu-
1.jpg còn được cung cấp thêm metadata Subject với giá trị là “Thư viện số”.
Với một metadata có nhiều giá trị phải dùng thuộc tính mode =
“accumulate”, nếu không metadata đặc tả sau sẽ override metadata trước (giá trị
mặc định là mode = “override”)
Đối với plugin RecPlug, nếu tùy chọn use_metadata_files được chọn ,
RegPlug sẽ tìm trong thư mục tài liệu nguồn tập tin metadata.xml, sau đó gán thông
tin metadata trong tập tin metadata.xml này cho các tập tin và thư mục con trong
thư mục tài liệu nguồn.
2.7.5. Chia cấu trúc tài liệu nguồn
Có thể chia tài liệu nguồn có cấu trúc phân cấp thành nhiều vùng (section),
mỗi vùng được bao bằng cặp thẻ <Section> </Section>, các cặp thẻ
<Section></Section> có thể lồng nhau.
<!--
<Section>
<Description>
<Metadata name="Title">( Thông tin metadata mô tả thông tin của
Section)</Metadata>
</Description>
-->
(Phần nội dung của Section)
<!--
</Section>
-->
Hình 2.6 - Minh họa cách chia section cho tài liệu
Giữa cặp thẻ <Section> </Section> ta có thể thêm cặp thẻ <Description>
</Description> để mô tả thông tin cho section. Ví dụ trên mô tả thông tin metadata
Chương 2 – Các khái niệm cơ bản
Trang 17
Title cho section. Ta chỉ có thể thêm các thẻ section vào tài liệu nguồn dạng html,
word vì:
- Đối với tập tin html, các văn bản trong vùng <!-- --> được xem như dòng
ghi chú, do đó các thẻ <Section> trong tập tin html không ảnh hưởng đến nội dung
hiển thị của tập tin html này.
- Đối với tập tin word , việc chuyển sang XML của Greenstone phải qua
bước trung gian là chuyển sang tập tin html nên việc chèn các thẻ <Section> cũng
không ảnh hưởng đến nội dung hiển thị cuối cùng
Mục đích của việc thêm cặp thẻ <Section> </Section> vào tài liệu nguồn là
để sau khi xây dựng bộ sưu tập, khi hiển thị nội dung của tài liệu bằng trình duyệt
web, ta sẽ thấy cấu trúc phân cấp của tài liệu và có thể nhanh chóng xem nội dung
một đoạn nào đó trong tài liệu nhờ cấu trúc phân cấp này.
Để plugin HTMLPlug xử lý cặp thẻ <Section> </Section>, ta phải chọn tùy
chọn description_tags.
Chương 2 – Các khái niệm cơ bản
Trang 18
Ví dụ một tài liệu có cấu trúc phân cấp :
Tìm hiểu PP LT hướng khía cạnh Lời cảm ơn (Nội dung phần “Lời cảm ơn”) … Mục lục (Nội dung phần “Mục lục”) … Danh mục các ảnh-Sơ đồ (Nội dung phần “Danh mục các ảnh-Sơ đồ”) … Giới thiệu (Nội dung phần “Giới thiệu”) … Nội dung (Nội dung phần “Nội dung”) … Phần 1: Tìm hiểu phương pháp lập trình hướng khía cạnh Chương 1: Tổng quan về đề tài (Các nội dung trong chương 1) … Chương 2: Phương pháp lập trình hướng khía cạnh (AOP) (Các nội dung trong chương 2) … Chương 3: Ngôn ngữ lập trình AspectJ (Các nội dung trong chương 3) …
Sau khi chèn các cặp thẻ <Section> </Section> vào tài liệu nguồn, tài liệu
nguồn lúc này có nội dung như sau:
<!-- <Section> <Description> <Metadata name="Title">Tìm hiểu PP LT hướng khía cạnh</Metadata> </Description> --> Tìm hiểu PP LT hướng khía cạnh <!-- <Section> <Description> <Metadata name="Title">Lời cảm ơn</Metadata> </Description> -->
Chương 2 – Các khái niệm cơ bản
Trang 19
Lời cảm ơn (Nội dung phần “Lời cảm ơn”) … <!-- </Section> <Section> <Description> <Metadata name="Title">Mục lục</Metadata> </Description> --> Mục lục (Nội dung phần “Mục lục”) … <!-- </Section> <Section> <Description> <Metadata name="Title">Mục lục</Metadata> </Description> --> Danh mục các ảnh-Sơ đồ (Nội dung phần “Danh mục các ảnh-Sơ đồ”) … <!-- </Section> <Section> <Description> <Metadata name="Title">Giới thiệu</Metadata> </Description> --> Giới thiệu (Nội dung phần “Giới thiệu”) … <!-- </Section> <Section> <Description> <Metadata name="Title">Nội dung</Metadata> </Description> --> Nội dung (Nội dung phần “Nội dung”) … <!-- </Section>
Chương 2 – Các khái niệm cơ bản
Trang 20
<Section> <Description> <Metadata name="Title">Tìm hiểu phương pháp lập trình hướng khía cạnh </Metadata> </Description> --> Phần 1: Tìm hiểu phương pháp lập trình hướng khía cạnh <!-- <Section> <Description> <Metadata name="Title">Tổng quan về đề tài</Metadata> </Description> --> Chương 1: Tổng quan về đề tài (Các nội dung trong chương 1) … <!-- </Section> <Section> <Description> <Metadata name="Title">Chương 2: Phương pháp lập trình hướng khía cạnh (AOP)</Metadata> </Description> --> Chương 2: Phương pháp lập trình hướng khía cạnh (AOP) (Các nội dung trong chương 2) … <!-- </Section> <Section> <Description> <Metadata name="Title">Chương 3: Ngôn ngữ lập trình AspectJ</Metadata> </Description> --> Chương 3: Ngôn ngữ lập trình AspectJ (Các nội dung trong chương 3) … <!-- </Section> </Section> </Section> -->
Chương 2 – Các khái niệm cơ bản
Trang 21
Sau khi xây dựng bộ sưu tập từ tài liệu nguồn đã chèn các cặp thẻ <Section>
</Section>, trình duyệt web sẽ hiển thị nội dung tài liệu này như sau:
Hình 2.7 - Hiển thị nội dung tài liệu trên trình duyệt web
Giả sử ta muốn xem nội dung Chương 1, ta click vào link Chương 1: Tổng
quan về đề tài, nội dung hiển thị như sau:
Hình 2.8 - Hiển thị nội dung của một chương cụ thể
Chương 2 – Các khái niệm cơ bản
Trang 22
2.8. Classifier 2.8.1. Giới thiệu
Classifier dùng để xây dựng cấu trúc duyệt tài liệu trên web của một bộ sưu
tập. Tương tự các plugin, các classifier được đặc tả trong tập tin cấu hình collect.cfg
của mỗi bộ sưu tập.
Trong pha cuối cùng của quá trình xây dựng bộ sưu tập (nén và tạo chỉ mục
trên tài liệu), các classifier được script buildcol.pl gọi sẽ lưu cấu trúc duyệt tài liệu
vào cơ sở dữ liệu bộ sưu tập.
Cú pháp: classify <Tên classifier> <Các tham số>
Ví dụ: classify AZList -metadata Title -buttonname TitleA-Z
Trong dòng đặc tả có một tham số quan trọng là metadata xác định rằng các
tài liệu của bộ sưu tập sẽ được sắp xếp theo metadata đã được chỉ ra. Với ví dụ trên,
các tài liệu được sắp xếp theo tựa đề của tài liệu (Title)
Tham số buttonname xác định tên nút xuất hiện trên thanh duyệt. Với dòng
đặc tả trên, khi ta click vào nút TitleA-Z trên thanh duyệt, các tài liệu của bộ sưu tập
được liệt kê theo thứ tự từng vùng alphabet.
Hình 2.9 - Dùng AZList để liệt kê các tài liệu theo từng vùng alphabet
Các classifier được đặt trong thư mục greenstone\perllib\classify. Để biết
thông tin của classifier, dùng lệnh: classinfo.pl <Tên classifier>. Ta có thể viết các
classifier mới.
Chương 2 – Các khái niệm cơ bản
Trang 23
Những nút trên thanh duyệt, ngoại trừ nút Search, được quản lý bởi các
classifier. Khi định nghĩa một classifier trong tập tin collect.cfg, những nút liên
quan sẽ xuất hiện trên thanh duyệt.
2.8.2. Phân loại
Nhóm classifier liệt kê tài liệu dưới dạng danh sách (list)
Classifier AZList: liệt kê tài liệu theo từng vùng alphabet
Hình 2.10 - Minh họa classifier AZList
Classifier List: liệt kê tài liệu thành một danh sách sắp thứ tự alphabet
Hình 2.11 - Minh họa classifier List
Classifier DateList: liệt kê tài liệu theo từng vùng thời gian
Chương 2 – Các khái niệm cơ bản
Trang 24
Hình 2.12 - Minh họa classifier DateList
Chương 2 – Các khái niệm cơ bản
Trang 25
Nhóm classifier liệt kê tài liệu dưới dạng phân cấp (hierarchy)
Classifier Hierarchy: liệt kê các tài liệu dưới dạng phân cấp
Hình 2.13 - Minh họa classifier Hierarchy
2.9. Định dạng cách hiển thị tài liệu 2.9.1. Giới thiệu
Những trang web trong Greenstone không được thiết kế trước mà được phát
sinh và hiển thị ra web browser. Một phần giao diện của các trang web này được
quản lý bởi các chuỗi định dạng. Chuỗi định dạng được đặc tả trong tập tin cấu hình
của bộ sưu tập collect.cfg. Để đặc tả chuỗi định dạng ta dùng từ khóa format, theo
sau là tên của những thành phần mà chuỗi định dạng sẽ tác động.
Ta có thể định dạng 2 thành phần sau:
Danh sách tài liệu được phát sinh bởi classifier hoặc danh sách tài liệu nhận
được trong quá trình tìm kiếm
Những thành phần trên trang web hiển thị tài liệu hoặc hiển thị các đoạn của
một tài liệu
2.9.2. Định dạng danh sách tài liệu
Cú pháp: format <kiểu danh sách> <chuỗi html định dạng>
Từ khóa chỉ kiểu danh sách gồm 2 phần:
Chương 2 – Các khái niệm cơ bản
Trang 26
Phần thứ nhất gồm các loại: Search: danh sách kết quả tìm kiếm tài liệu
CLi: với i là số nguyên > 0
Đây là danh sách được phát sinh bởi các classifier. CL1, CL2, CL3… tương
ứng với classifier thứ nhất, thứ hai, thứ ba...được đặc tả trong tập tin cấu hình
collect.cfg
Phần thứ hai gồm các loại: VList: danh sách theo chiều dọc
HList: danh sách theo chiều ngang
DateList: danh sách phân loại theo thời gian
Ví dụ :
format SearchVList … : định dạng kết quả tìm kiếm tài liệu, áp dụng cho
các danh sách hiển thị theo chiều dọc.
format CL1HList… : định dạng danh sách tài liệu phát sinh từ classifier thứ
nhất, áp dụng cho các danh sách hiển thị theo chiều ngang
Ví dụ một đoạn trong tập tin cấu hình collect.cfg :
1
2
3
4
5
6
7
classify Hierarchy -metadata Subject -buttonname Subjects
classify AZList -metadata Title –buttonname Title
classify List -metadata Howto –buttonname HowTo
format CL3Vlist "<br>[link][Howto][/link]"
format DocumentImages true
format DocumentText "<h3>[Title]</h3>\\n\\n<p>[Text]"
format DocumentButtons "Expand Text|Expand contents|Detach|Highlight"
Chương 2 – Các khái niệm cơ bản
Trang 27
Kết quả hiển thị trên trình duyệt web :
Hình 2.14 - Kết quả hiển thị tài liệu trên trình duyệt
Ta thấy ở dòng 4 trong tập tin cấu hình có nội dung:
format CL3VList “<br>[link][Howto][/link]”
dùng để định dạng danh sách tài liệu được phát sinh từ classifier thứ ba trong
tập tin cấu hình (classifier List), áp dụng cho các danh sách được bố trí theo chiều
dọc. Chuỗi "<br>[link][Howto][/link]" là chuỗi html định dạng cách hiển thị của
danh sách. Với chuỗi định dạng này thì mỗi phần tử trong danh sách sẽ xuất hiện
trên một dòng (“<br>”), được đại diện bằng dòng chữ (giá trị của metadata Howto)
và liên kết đến tài liệu gốc (“[link] [/link]”). Trong chuỗi định dạng ta có thể sử
dụng các thẻ html và một số từ khóa khác mà Greenstone hỗ trợ, ví dụ [link] [/link]
đại diện cho 1 liên kết, [tên metadata] đại diện cho giá trị của metadata, [Text] đại
diện cho nội dung của văn bản…
Chương 2 – Các khái niệm cơ bản
Trang 28
2.9.3. Định dạng các thành phần của trang web hiển thị tài liệu
Cú pháp: format <tên thành phần> <giá trị>
Tên thành phần Giá trị Ý nghĩa DocumentImages true/false true: hiển thị ảnh ở phía trên
bên trái của trang tài liệu. false: không hiển thị. Giá trị mặc định: false
DocumentHeading Chuỗi định dạng Định dạng phần header của tài liệu trong trang tài liệu nếu DocumentImages có giá trị falseGiá trị mặc định: [Title]
DocumentContents true/false Hiển thị bảng nội dung nếu tài liệu được phân cấp hoặc các nút next/previous và đoạn chữ “page k of n” nếu tài liệu không phân cấp
DocumentButtons Chuỗi Quản lý các nút hiển thị trên trang tài liệu. Giá trị mặc định: Detach|Highlight
DocumentText Chuỗi định dạng Định dạng nội dung hiển thị trên trang tài liệu. Gíá trị mặc định: <center><table width=537> <tr><td>[Text]</td></tr> </table></center>
DocumentArrowsBottom true/false Hiển thị nút next/previous trên trang tài liệu. Giá trị mặc định: true
DocumentUseHTML true/false true: mỗi tài liệu được hiển thị trong một frame false: không hiển thị tài liệu dưới dạng frame
Bảng 2.2 - Các thành phần trên trang web
Chương 2 – Các khái niệm cơ bản
Trang 29
Ví dụ:
Dòng 6 trong tập tin cấu hình trên định dạng cách hiển thị nội dung tài liệu :
format DocumentText “<h3>[Title]</h3>\\n\\n<p>[Text]”
Dòng 7 ta xác định các nút dùng trong trang tài liệu:
format DocumentButtons "Expand Text|Expand
contents|Detach|Highlight"
Ta có thể xem hình 2.154 ở trên để thấy rõ hơn kết quả mà chuỗi định dạng
mang lại.
Chương 3 – Xây dựng bộ sưu tập
Trang 30
CHƯƠNG 3. XÂY DỰNG BỘ SƯU TẬP
Giới thiệu
Chương trình mkcol.pl
Chương trình import.pl
Chương trình buildcol.pl
Cấu trúc thư mục của Greenstone
Cấu trúc thư mục của một bộ sưu tập
Cấu trúc tài liệu theo định dạng XML
Tập tin cấu hình bộ sưu tập
Chương 3 – Xây dựng bộ sưu tập
Trang 31
3.1. Giới thiệu Quá trình xây dựng một bộ sưu tập trải qua 3 pha chính
Pha 1 : Tạo cấu trúc chung cho bộ sưu tập
Pha 2 : Chuyển định dạng tài liệu nguồn sang định dạng XML
Pha 3 : Nén và tạo chỉ mục trên các tài liệu của bộ sưu tập
Ở mỗi pha ta dùng chương trình do Greenstone hỗ trợ để xây dựng bộ sưu
tập
Pha 1 : dùng chương trình mkcol.pl
Pha 2 : dùng chương trình import.pl
Pha 3 : dùng chương trình buildcol.pl
Các chương trình trên được đặt trong thư mục “greenstone\bin\script”. Để
thực thi các chương trình này trong môi trường DOS, ta dùng cú pháp lệnh như sau:
perl –S <tên chương trình><các tham số>
Chương 3 – Xây dựng bộ sưu tập
Trang 32
Hình 3.1 - Quá trình xây dựng bộ sưu tập
Chương 3 – Xây dựng bộ sưu tập
Trang 33
3.2. Chương trình mkcol.pl Công dụng:
Chương trình mkcol.pl dùng để tạo cấu trúc chung cho một bộ sưu tập, tạo
tập tin cấu hình mặc định cho bộ sưu tập collect.cfg đặt trong thư mục con “etc” của
bộ sưu tập.
Cú pháp:
mkcol.pl [Các tùy chọn] <Tên bộ sưu tập>
Các tùy chọn:
-creator <string>: địa chỉ email của người tạo bộ sưu tập
-optionfile <string>: lấy những tùy chọn từ một tập tin nào đó.
-maintainer <string>: địa chỉ email của người quản lý bộ sưu tập.
-collectdir <string>: thư mục chứa bộ sưu tập. Giá trị mặc định là
“greenstone\collect”
-public <string>: cho phép bộ sưu tập được truy cập rộng rãi hay không. Giá
trị mặc định là “true”
-title <string>: tựa đề của bộ sưu tập
-about <string>: thông tin mô tả bộ sưu tập
-plugin <string>: tên plugin được dùng
-quiet : không hiển thị các thông báo của chương trình
-win31compat <string> : cho biết tên thư mục của bộ sưu tập có tuân theo
quy ước của Windows 3.1 hay không (tên thư mục có độ dài tối đa 8 kí tự). Giá trị
mặc định là “true”.
3.3. Chương trình import.pl Công dụng:
Chương 3 – Xây dựng bộ sưu tập
Trang 34
Chuyển định dạng tài liệu nguồn sang định dạng XML của Greenstone, tạo
tập tin tóm tắt thông tin archive.inf.
Cú pháp:
import.pl [Các tùy chọn] <Tên bộ sưu tập>
Các tùy chọn:
-archivedir <string>: đường dẫn đến các tập tin sau khi import, mặc định là
“greenstone\collect\<tên thư mục chứa bộ sưu tập>\archives”
-collectdir <string>: thư mục chứa các bộ sưu tập, mặc định là
“greenstone\collect”
-debug: chạy chương trình ở chế độ debug, chỉ xuất kết quả ra màn hình,
không tạo các tập tin kết quả sau khi import
-faillog <string>: đường dẫn đến tập tin log lưu tên của những tập tin không
import được. Mặc định là “greenstone\collect\<tên thư mục chứa bộ sưu
tập>\etc\fail.log”
-groupsize <int>: số tài liệu được nhóm thành một tập tin XML, mặc định là
1
-gzip: dùng gzip để nén những tài liệu XML kết quả. Chú ý phải thêm plugin
ZIPPlug vào danh sách các plugin trong tập tin cấu hình.
-importdir <string>: đường dẫn đến các tập tin ngưồn
-keepold : không xóa nội dung của thư mục archive (mặc định)
-maxdocs <int>: số tài liệu tối đa được import
-OIDtype <enum>: phương thức dùng để phát sinh ra ID duy nhất cho mỗi
tài liệu. Giá trị mặc định là hash.Các giá trị có thể là hash, incremental, assigned,
dirname.
-out <string>: tên tập tin hoặc handle để in ra các dòng thông báo. Giá trị
mặc định là STDERR
Chương 3 – Xây dựng bộ sưu tập
Trang 35
-removeold: xóa những nội dung cũ của thư mục archives
-saveas <enum> : định dạng của tập tin sau khi import . Mặc định là GA
GA: định dạng theo Greenstone
METS: định dạng theo METS
-sortmeta <metadatum>: sắp xếp những tài liệu theo thứ tự alphabet của
metadata. Tùy chọn này sẽ bị bỏ qua nếu groupsize >1
-statsfile <string>: tên tập tin hay handle để in ra các dòng thống kê của quá
trình import. Mặc định là STDERR
-verbosity <int>: quản lý mật độ xuất các thông báo ra màn hình.
Các giá trị :
0: không xuất
3: nhiều
Giá trị mặc định là 2
3.4. Chương trình buildcol.pl Công dụng
Nén văn bản, tạo chỉ mục trên tài liệu XML, lưu thông tin thể hiện bộ sưu tập
vào cơ sở dữ liệu (icon, tiêu đề, thông tin classifier tạo ra…)
Cú pháp
buildcol.pl [Các tùy chọn] <Tên bộ sưu tập>
Các tùy chọn
-remove_empty_classifications : giấu đi những classifier và những nút phân
cấp rỗng (chúng không chứa những tài liệu nào)
-archivedir <string>: đường dẫn đến thư mục archives
-builddir <string>: đường dẫn đến thư mục building chứa các chỉ mục đã
được tạo
Chương 3 – Xây dựng bộ sưu tập
Trang 36
-collectdir <string> : đường dẫn thư mục chứa các bộ sưu tập, mặc định là
“greenstone\collect”
-debug: chạy chương trình ở chế độ debug, chỉ xuất các kết quả ra màn hình,
không tạo ra các tập tin kết quả.
-faillog <string>: đường dẫn đến tập tin log, mặc định là
“greenstone\collect\<tên thư mục chứa bộ sưu tập>\etc\fail.log”
-index <string>: xác định loại chỉ mục sẽ được xử lý. Nếu tùy chọn này
không được chọn thì các chỉ mục trong tập tin cấu hình collect.cfg sẽ được xử lý.
-keepold: không xóa nội dung hiện tại ở thư mục building
-maxdocs <int>: số tài liệu tối đa được xử lý
-mode <enum>: chỉ ra các công việc được thực hiện trong quá trình building,
giá trị mặc định là all
Một số giá trị:
all: xử lý tất cả các công việc
compress_text: chỉ nén văn bản
build_index: chỉ tạo chỉ mục cho văn bản
infodb:chỉ xây dựng cơ sở dữ liệu metadata
-no_text: không lưu những văn bản được nén.
-out <string>: tên tập tin hoặc handle để xuất những thông báo tình trạng,
mặc định là STDERR
-verbosity <int> quản lý mật độ xuất những thông báo
Một số giá trị thường dùng:
0: không xuất thông báo
3: xuất đầy đủ các thông báo
Giá trị mặc định là 2
Chương 3 – Xây dựng bộ sưu tập
Trang 37
3.5. Cấu trúc thư mục của Greenstone Ta gọi thư mục cài đặt Greenstone là GSDLHOME. Cấu trúc thư mục của
Greenstone như sau:
Hình 3.2 – Cấu trúc thư mục của Greenstone
Tên thư mục Mục đích bin Chứa mã thực thi bin\script Chứa các script Perl để tạo bộ sưu tập perllib Chứa những module Perl hổ trợ cho quá
trình tạo bộ sưu tập perllib\plugins Chứa mã nguồn của các plugin hỗ trợ xử
lý tài liệu perllib\classify Chứa mã nguồn của các classify hỗ trợ
việc hiển thị kết quả tìm kiếm tài liệu cgi-bin Chứa các CGI script của Greenstone tmp Chứa các tập tin tạm của Greenstone etc Chứa các tập tin cấu hình, tập tin log, cơ
sở dữ liệu quản lý người dùng src Chứa mã nguồn C++ src/colservr Chứa mã nguồn C++ src/recpt Chứa mã nguồn C++ packages Chứa mã nguồn của những gói phần
mềm hỗ trợ cho Greenstone packages\mg Chứa mã nguồn của MG - phần mềm
dùng để nén và tạo chỉ mục trong Greenstone
mappings Chứa các bảng chuyển đổi chuẩn Unicode thành các chuẩn khác
macros Chứa các tập tin macro dùng cho giao
Chương 3 – Xây dựng bộ sưu tập
Trang 38
diện Greenstone collect Chứa các bộ sưu tập lib Chứa mã nguồn C++ dùng cho
collection server và receptionist images Chứa các tập tin ảnh dùng cho giao diện
của Greenstone docs Chứa các tài liệu về Greenstone
Bảng 3.1 - Các thư mục của Greenstone
3.6. Cấu trúc thư mục của một bộ sưu tập Trong pha 1 của quá trình xây dựng bộ sưu tập, sau khi thực thi chương trình
mkcol.pl, bộ sưu tập được tạo ra với cấu trúc các thư mục như sau:
Bảng 3.2 - Các thư mục của một bộ sưu tập
Tên thư mục Mục đích archives Chứa các tập tin sau khi import
building Chứa các tập tin trong quá trình nén, tạo chỉ mục, tạo cơ sở dữ liệu cho bộ sưu tập
etc Chứa tập tin cấu hình collect.cfg
images Chứa các ảnh dành riêng cho bộ sưu tập
import Chứa các tài liệu nguồn cần xây dựng bộ sưu tập
index Chứa các tập tin sau khi nén, tạo chỉ mục, cơ sở dữ liệu lấy từ thư mục building
perllib Chứa các thư viện perl hổ trợ cho bộ sưu tập. Người dùng có thể viết các thư viện perl hổ trợ thêm cho bộ sưu tập của mình và đặt trong thư mục này.
Chương 3 – Xây dựng bộ sưu tập
Trang 39
3.7. Cấu trúc tài liệu theo định dạng XML Trong pha import, Greenstone chuyển tài liệu nguồn sang tài liệu XML.
Dưới đây là phần định nghĩa kiểu tài liệu XML của Greenstone (DTD – Document
Type Definition )
<!DOCTYPE GreenstoneArchive [
<!ELEMENT Section (Description,Content,Section*)>
<!ELEMENT Description (Metadata*)>
<!ELEMENT Content (#PCDATA)>
<!ELEMENT Metadata (#PCDATA)>
<ATTLIST Metadata name CDATA #REQUIRED>
]>
Ví dụ một tài liệu của Greenstone sau khi import:
<?xml version="1.0" ?> <!DOCTYPE GreenstoneArchive SYSTEM "http://greenstone.org/dtd/GreenstoneArchive/1.0/GreenstoneArchive.dtd"> <Section> <Description> <Metadata name="gsdlsourcefilename">ec158e.txt</Metadata> <Metadata name="Title">Freshwater Resources in Arid Lands</Metadata> <Metadata name="Identifier">HASH0158f56086efffe592636058</Metadata> <Metadata name="gsdlassocfile">cover.jpg:image/jpeg:</Metadata> <Metadata name="gsdlassocfile">p07a.png:image/png:</Metadata> </Description> <Section> <Description> <Metadata name="Title">Preface</Metadata> </Description> <Content> This is the text of the preface </Content> </Section> <Section> <Description> <Metadata name="Title">First and only chapter</Metadata> </Description> <Section> <Description>
Chương 3 – Xây dựng bộ sưu tập
Trang 40
<Metadata name="Title">Part 1</Metadata> </Description> <Content> This is the first part of the first and only chapter </Content> </Section> <Section> <Description> <Metadata name="Title">Part 2</Metadata> </Description> <Content> This is the second part of the first and only chapter </Content> </Section> </Section> </Section>
Tài liệu XML của Greenstone có một thẻ gốc là <Section> </Section>. Tài
liệu được chia thành nhiều vùng (section) được bao bọc bởi cặp thẻ <Section>
</Section>, các cặp thẻ <Section> </Section> có thể lồng nhau . Mỗi Section có
một thẻ Description và một thẻ Content. Thẻ Decription có thể chứa một hay nhiều
thẻ Metadata. Các thẻ metadata có cấu trúc :
<Metadata name = “Tên metadata”>Giá trị của metadata</metadata>
Ta thường biên mục tài liệu theo chuẩn Dublin Core, ví dụ :
<Metadata name = “dc.Title”>Tìm hiểu nguồn mở Greenstone</Metadata>
dc là từ viết tắt của cụm từ Dublin Core
Greenstone thiết kế sẵn một số bộ thẻ để biên mục, với Dublin Core ta có bộ
thẻ dc. Nếu không có metadata nào trong các chuẩn của Greenstone thích hợp để
mô tả tài liệu, có thể dùng các bộ metadata do ta định nghĩa. Ví dụ có thể mô tả cho
phần tiêu đề của một cuốn sách như sau:
<Metadata name = “BookTitle”>Lập trình C++</Metadata>
Mỗi tài liệu trong Greenstone có một ID nhất định được hệ thống phát sinh
(OID – Object Identifier ) để xác định những section hay section con bằng cách
Chương 3 – Xây dựng bộ sưu tập
Trang 41
đánh số các section này. Ví dụ : section con thứ ba của section thứ hai của tài liệu
có OID = HASHa72X là HASHa72X.2.3
Hình 3.3 – Minh họa cấu trúc phân cấp của tài liệu
Cấu trúc phân cấp của tài liệu được dùng cho chỉ mục tìm kiếm tài liệu, có 3
mức chỉ mục: document, section, paragraph
Chỉ mục document : tìm kiếm một số từ trong tất cả các tài liệu
Chỉ mục section : tìm kiếm một số từ trong từng section
Chỉ mục paragraph xem mỗi đoạn văn như là một tài liệu riêng biệt, thích
hợp cho mục đích tìm kiếm tập trung
Hình sau minh họa cách tìm kiếm tài liệu theo chỉ mục document và section.
Chương 3 – Xây dựng bộ sưu tập
Trang 42
Hình 3.4 - Tìm kiếm tài liệu theo chỉ mục document và section
Trong hình trên, chapters và section titles xác định chỉ mục theo section,
còn entire documents xác định chỉ mục theo document.
3.8. Tập tin cấu hình bộ sưu tập Tập tin cấu hình của mỗi bộ sưu tập có tên collect.cfg được đặt trong thư
mục “greenstone\collect\<tên bộ sưu tập>\etc” dùng để quản lý giao diện, cách
thức xử lý tài liệu, cách hiển thị nội dung tài liệu…
Trong quá trình xây dựng bộ sưu tập, khi ta thực thi chương trình mkcol.pl,
một tập tin cấu hình đơn giản cho bộ sưu tập được tạo, chứa các giá trị mặc định
cho bộ sưu tập. Thông tin trong tập tin cấu hình bộ sưu tập bao gồm:
Tên Ý nghĩa creator Email người tạo bộ sưu tập maintainer Email người quản lý bộ sưu tập public Xác định bộ sưu tập có cho phép công khai
truy cập không beta Xác định bộ sưu tập có phải là phiên bản beta
hay không indexes
Danh sách các chỉ mục tìm kiếm
defaultindex Chỉ mục mặc định subcollection Định nghĩa một bộ sưu tập con dựa trên
Chương 3 – Xây dựng bộ sưu tập
Trang 43
thông tin metadata indexsubcollections Xác định những bộ sưu tập con sẽ chỉ mục defaultsubcollection Chỉ mục của bộ sưu tập con mặc định languages Danh sách các ngôn ngữ để xây dựng chỉ
mục defaultlanguage Xác định ngôn ngữ mặc định của bộ sưu tập collectionmeta Xác định metadata ở cấp bộ sưu tập plugin Xác định các plugin được dùng trong quá
trình xây dựng bộ sưu tập format Chuỗi định dạng giao diện web classify Xác định các classifier dùng trong quá trình
xây dựng bộ sưu tập
Bảng 3.3 - Thông tin tập tin cấu hình
Chương 3 – Xây dựng bộ sưu tập
Trang 44
Ví dụ nội dung một tập tin cấu hình :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
creator [email protected] maintainer [email protected] public True beta True indexes document:text defaultindex document:text plugin ZIPPlug plugin GAPlug plugin TextPlug plugin HTMLPlug plugin EMAILPlug plugin ArcPlug plugin RecPlug classify AZList metadata Title collectionmeta collectionname "Sample Collection" collectionmeta iconcollection "" collectionmeta collectionextra "Đây là phần mô tả của collection" collectionmeta .document:text "documents"
Dòng 1 và 2 xác định email người tạo và quản lý bộ sưu tập là
[email protected]. Dòng 3 xác định bộ sưu tập này được công khai sử dụng.
Dòng 4 xác định đây là bộ sưu tập phiên bản beta. Dòng 5 xác định chỉ mục tìm
kiếm tài liệu trong bộ sưu tập là document:text, tìm kiếm trên toàn văn bản của các
tài liệu. Dòng 6 xác định chỉ mục tìm kiếm tài liệu mặc định là document:text. Từ
dòng 7 đến dòng 13 xác định các plugin được dùng. Dòng 14 xác định classifier
được dùng . Từ dòng 15 đến dòng 18 xác định thông tin chung của bộ sưu tập bao
gồm : tên bộ sưu tập (collectionname), đường dẫn đến biểu tượng đại diện cho bộ
sưu tập (iconcollection), mô tả bộ sưu tập (collectionextra), tên đại diện cho chỉ mục
tìm kiếm tài liệu (tên này sẽ xuất hiện trong chức năng Search của Greenstone để
người dùng có thể chọn cách tìm kiếm tài liệu).
Greenstone còn hỗ trợ chức năng tìm kiếm tài liệu trên nhiều bộ sưu tập,
định nghĩa như sau:
supercollection <tên bộ sưu tập 1> <tên bộ sưu tập 2> …<bộ sưu tập n>
Khi này, trong quá trình tìm kiếm tài liệu, Greenstone sẽ tìm trong cả n +1 bộ
sưu tập: bộ sưu tập hiện tại, bộ sưu tập 1, bộ sưu tập 2,…,bộ sưu tập n
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 45
CHƯƠNG 4. HIỆU CHỈNH GIAO DIỆN
GREENSTONE
Giới thiệu
Ảnh tiêu đề
Các nút duyệt trên cùng
Ảnh header
Các nút trên thanh duyệt
Hiển thị văn bản
Override các macro
Thêm một trang mới
Hiển thị các bộ sưu tập
Macro chuẩn
Lưu ý
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 46
4.1. Giới thiệu Để chỉnh sửa giao diện ta thao tác trên các tập tin sau:
- Tập tin cấu hình của một bộ sưu tập collect.cfg
- Những tập tin macro :
Những tập tin macro có phần mở rộng là .dm, lưu trong thư mục
“greenstone\macros”. Macro là ngôn ngữ dành riêng cho Greenstone để xử lý giao
diện web. Một macro có định dạng sau: _tên macro_. Ví dụ : _imagecollect_ là một
macro.
Các trang web của Greenstone không được thiết kế sẵn, các trang này được
phát sinh từ các tập tin macro. Ví dụ tập tin home.dm sẽ phát sinh ra trang chủ của
Greenstone, tập tin help.dm sẽ phát sinh ra trang trợ giúp của Greenstone…
Mỗi tập tin macro chứa một hay nhiều package. Mỗi package chứa một loạt
các macro. Một macro có thể được viết cho một bộ sưu tập với từ khóa [c=tên bộ
sưu tập], nghĩa là ta sẽ override macro mặc định của Greenstone.
Cần tạo các macro trong package đúng. Ví dụ: muốn tạo macro
“imagecollect” cho bộ sưu tập “fenian” và muốn macro này làm việc cho tất cả màn
hình hiển thị, đặt macro này trong package Global :
package Global
_imagecollect_[c=fenian] {_gsimage_(_httppagecollect_,_httpiconccollectof_,
_httpiconccollecton_,collect,_textimagecollect_)}
Sau đây là danh sách các package có sẵn và vai trò của chúng (tên các
package có phân biệt chữ hoa, chữ thường)
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 47
Tên package Tên tập tin Vai trò package Global base.dm
english.dm Chứa những macro hoạt động trong tất cả màn hình
package Style style.dm Quản lý kiểu hiển thị cho tất cả các trang như màu sắc, phong chữ
package document english.dm document.dm
Chứa những macro hiển thị tài liệu
package query query.dm english.dm
Chứa những macro cho việc hiển thị trang Search
package preferences pref.dm english.dm
Chứa những macro cho việc hiển thị trang Preferences
package help help.dm english.dm
Chứa những macro cho việc hiển thị trang Help
package about about.dm english.dm
Chứa những macro cho việc hiển thị trang About
package browse browse.dm english.dm
Chứa những macro cho giao diện duyệt tài liệu
package home home.dm Chứa những macro cho giao diện của trang chủ
Bảng 4.1 – Danh sách các package
- Những tập tin ảnh :
Tất cả những tập tin ảnh được chứa trong thư mục “greenstone\images”
- Main.cfg :
Chứa các khai báo các tập tin macro được dùng trong Greenstone. Nếu tạo
tập tin macro mới, để tập tin macro này có hiệu lực, cần thêm tên tập tin macro đó
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 48
vào nội dung tập tin main.cfg. Tập tin main.cfg được lưu trong thư mục
“greenstone\etc”.
Giao diện Greenstone gồm 5 phần như hình vẽ bên dưới :
Hình 4.1 - Các phần trong giao diện web của Greenstone
Sau đây ta sẽ đi chi tiết từng phần của giao diện theo thứ tự hình trên
4.2. Ảnh tiêu đề bộ sưu tập Được chỉ ra trong tập tin cấu hình collect.cfg :
iconcollection "_httpprefix_/đường dẫn đến tập tin ảnh/tên tập tin ảnh"
Ý nghĩa:
- iconcollection: từ khóa để tạo ảnh cho bộ sưu tập - _httpprefix_: thư mục Greenstone
Ví dụ 1 đoạn trong tập tin collect.cfg :
collectionmeta iconcollection "_httpprefix_/collect/demo/images/en/demo.gif"
4.3. Các nút duyệt trang 4.3.1. Cách hiển thị
Sự trình bày của những nút duyệt trang được quản lý bởi macro _javalinks_
được định nghĩa trong package Global của tập tin base.dm như sau:
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 49
_javalinks_ {_imagehome__imagehelp__imagepref_}
Macro này hiển thị 3 nút HOME, HELP và PREFERENCE như ở hình 4.1.
Macro _imagehome_ quản lý nút HOME, _imagehelp_ quản lý nút HELP và
_imagepref_ quản lý nút PREFERENCE
Vị trí của những nút này được chỉ ra bởi macro trình bày trang
_pagebanner_ trong tập tin macro style.dm . Ví dụ sau hiển thị những nút duyệt
bên phải của phần header được minh họa trong hình 4.2
_pagebanner_ {<!-- page banner (\_style:pagebanner\_) --> <center> <table width=_pagewidth_ cellspacing=0 cellpadding=0 border=0> <tr> <td colspan=3 height=6> </td> </tr> <tr> <td width=373 valign=top height=106 align=right border=0>_imagecollection_</td> <td width=132 valign=top height=106 align=left border=0>_imagethispage_</td> <td width=90 valign=top height=106 align=right border=0>_javalinks_</td> </tr> <tr> <td colspan=3>_pagebannerextra_</td> </tr> </table> </center> <!-- end of page banner -->}
Hình 4.2 – Các nút duyệt tài liệu
Có thể thay đổi vị trí của những nút này, thêm mới hoặc xóa nút duyệt trang.
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 50
Thêm một nút mới
1. Tạo một macro ảnh mới trong package Global trong tập tin base.dm,
macro này phải cùng định dạng với những macro ảnh khác. Cú pháp định nghĩa một
macro ảnh như sau:
_<tên macro ảnh>_{_gsimage_(macro url, macro ảnh “of”, macro ảnh “on”,
chuỗi , macro chuỗi mô tả ảnh)}
Với _gsimage_ là một macro chuẩn của Greenstone. Các macro url, macro
ảnh “of”, macro ảnh “on”, chuỗi, macro chuỗi mô tả ảnh do người dùng định nghĩa
Ví dụ tạo một macro có tên là _imagecollect_ như sau:
_imagecollect_ {_gsimage_(_httppagecollect_,_httpiconccollectof_,
_httpiconccollecton_,collect,_textimagecollect_)}
2. Tạo một macro _httppage_ (marco url) trong package Global của tập tin
base.dm. Đây là URL để mở khi nút được nhấn. Ví dụ :
_httppagecollect_ {http://www.aladin.wrlc.org/dl/}
3. Tạo những macro _httpicon_ (định nghĩa các macro ảnh “of”, ảnh “on”) ,
những macro này chỉ ra vị trí của những ảnh, những macro này trong package
Global của tập tin english.dm.
4. Tạo những tập tin ảnh có tên được định nghĩa ở bước thứ 3, đặt những tập
tin ảnh này trong thư mục images của Greenstone
5. Tạo macro chuỗi mô tả ảnh (macro text) cho nút. Macro này đặt trong
package Global của tập tin english.dm. Đây là đoạn “alt” trong thẻ <img> của nút.
Ví dụ :
_textimagecollect_ {WRLC Special Collections}
6. Thêm macro ảnh này đến macro _javalinks_ trong package Global của tập
tin base.dm, ví dụ
_javalinks_ {_imagehelp_<br>_imagehome_<br>_imagecollect_}
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 51
Macro này hiển thị 3 nút theo chiều dọc như minh họa ở hình 4.2
Xóa nút duyệt trang
Giả sử ta cần xóa nút HOME, trong tập tin base.dm, ở package Global, ta
thay đổi macro _javalinks_ như sau:
_javalinks_ {_imagehelp_ _imagepref_}
_javalinks_ [v=1] {
_imagehelp_<br>
_imagepref_<br> }
Ở macro _javalinks_ trên , macro _imagehome_ đã được xóa.
Thay đổi nút duyệt trang
Có thể thay đổi nội dung trên nút duyệt trang bằng cách chỉnh sửa các ảnh
của nút, hoặc thay đổi liên kết của nút duyệt trang bằng cách chỉnh sửa macro
_httppageX_(ví dụ _httppagecollect_), thay đổi chuỗi mô tả ảnh bằng cách chỉnh
sửa macro _textimageX_ (ví dụ _textimagecollect_) hoặc thay đổi vị trí của nút này
so với nút khác bằng cách chỉnh sửa macro _javalinks_
4.3.2. Vị trí đặt các ảnh
Những macro xác định vị trí ảnh của những nút duyệt trang được chỉ ra trong
package Global trong tập tin english.dm. Theo quy ước các macro này bắt đầu với
_httpicon_, theo sau là kí tự “c” và tên nút. Mỗi nút được tạo bởi một cặp ảnh ”on”
và “off”. Để thay đổi những nút này, ta cần tạo 2 ảnh
## "HOME" ## top_nav_button ## chome ##
_httpiconchomeof_ {_httpimg_/chomeof.gif}
_httpiconchomeon_ {_httpimg_/chomeon.gif
##"HELP"##top_nav_button##chelp##
_httpiconchelpof_{_httpimg_/chelpof.gif}
_httpiconchelpon_ {_httpimg_/chelpon.gif}
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 52
Chú ý trong các tập tin macro, theo sau dấu “#” là dòng ghi chú. Macro
_httpimg_ là một macro chuẩn để chỉ thư mục ảnh của Greenstone(
greenstone\images)
Để đặt những hình ảnh nằm trong thư mục khác với thư mục mặc định
“greenstone\images”, ta có thể đặt đường dẫn như sau :
#Collections
_httpiconccollectof_{_httpprefix_/collect/auhist/images/ccollectof.gif}
_httpiconccollecton_ {_httpprefix_/collect/auhist/images/ccollecton.gif}
Khi này 2 ảnh ccollectof.gif và ccollecton.gif nằm trong thư mục images của
bộ sưu tập auhist. Macro _httpprefix_ là macro chuẩn chỉ thư mục Greenstone
4.4. Ảnh tiêu đề trang Ảnh tiêu đề trang được quản lý bởi macro _imagethispage_. Ta đặt macro
này trong package ta muốn hiển thị ảnh. Ví dụ, nếu ta muốn hiển thị một ảnh tiêu đề
cho trang Help :
package help
_imagethispage_ [c=auhist] {_iconthispage_}
_iconthispage_ [c=auhist] {<img src="_httpiconhhelp_" alt="_textHelp_"
width=_widthhhelp_ height=_heighthhelp_>}
Khi ta định nghĩa _imagethispage_, ta phải định nghĩa _iconthispage_.
Không có ảnh tiêu đề cho những trang hiển thị tài liệu.
Vị trí của những ảnh tiêu đề được định nghĩa trong package document của
tập tin english.dm. Tất cả macro này bắt đầu với _httpicon_, theo sau là “h” và tên
nút. Ta quy ước đặt tên cho các ảnh này là h_imagename. Ví dụ: h_title.gif,
h_subj.gif…
## "titles a-z" ## green_title ## h_title #
_httpiconhtitle_ {_httpimg_/h\_title.gif}
_widthhtitle_ {200}
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 53
_heighthtitle_ {57}
Độ rộng và chiều cao là số pixel. Ta có thể thay đổi chúng nếu cần thay đổi
độ rộng và chiều cao của ảnh
Để thay đổi vị trí lưu trữ ảnh, ta cần thay đối đường dẫn đến những tập tin
ảnh trong cặp ngoặc { }
#Title header
_httpiconhtitle_ {_httpprefix_/collect/auhist/images/h\_title.gif}
_widthhtitle_ {132}
_heighthtitle_ {106}
4.5. Các nút duyệt tài liệu 4.5.1. Giới thiệu
Các nút duyệt tài liệu, ngoại trừ nút Search, được quản lý bởi các classifier.
Khi định nghĩa một classifier trong tập tin collect.cfg của bộ sưu tập, những nút liên
quan sẽ xuất hiện trên thanh duyệt.
Những nút này được định nghĩa trong package Global, thường trong tập tin
base.dm. Ví dụ:
_imageTitle_
{_gsimage_(_httpbrowseTitle_,_httpiconttitlof_,_httpiconttitlon_,titles
,_textimageTitle_)}
_imageCreator_
{_gsimage_(_httpbrowseCreator_,_httpicontauthof_,_httpicontauthon_
,authors,_textimageCreator_)}
4.5.2. Vị trí đặt các ảnh
Vị trí của những tập tin ảnh được chỉ ra trong những macro của package
Global, thường trong tập tin english.dm. Tất cả những macro này bắt đầu với
_httpicon_ và theo sau là ký tự “t” và tên nút. Ta gọi nó là “T button”.
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 54
Một nút trên thanh duyệt được tạo bỏi 3 ảnh, ảnh “off”, ảnh “on”, và ảnh
“gr”. Nếu ta muốn thay đổi các hiển thị của những nút này, ta cần tạo ra 3 ảnh
## "titles AZ" ## nav_bar_button ## ttitl ##
_httpiconttitlgr_ {_httpimg_/ttitlgr.gif}
_httpiconttitlof_ {_httpimg_/ttitlof.gif}
_httpiconttitlon_ {_httpimg_/ttitlon.gif}
_widthttitlx_ {87}
## "authors AZ" ## nav_bar_button ## tauth ##
_httpicontauthgr_ {_httpimg_/tauthgr.gif}
_httpicontauthof_ {_httpimg_/tauthof.gif}
_httpicontauthon_ {_httpimg_/tauthon.gif}
_widthtauthx_ {110}
Ta cũng cần thay đổi cách hiển thị của những ảnh khoảng trống (space
image) đặt giữa những nút này. Tập tin ảnh khoảng trống này được đặt tên là
“tspace.gif” và nó được chỉ ra trong package Global trong tập tin base.dm
_httpicontspace_ {_httpimg_/tspace.gif}
_heighttspace_ {17}
Độ rộng của những ảnh này là số pixel. Nếu muốn có một dòng chữ dài, ví
dụ như “Place Names”, và nút này rộng hơn những nút khác, ta thiết đặt độ rộng
trong cặp ngoặc{}. Khi xây dựng bộ sưu tập, Greenstone sẽ tự động tính toán
khoảng trống giữa những nút và tập tin tspace.gif sẽ phủ toàn bộ khoảng trống này
4.5.3. Thêm nút mới
Có 2 cách để thêm một nút mới
- Dùng một nút đã có và thay đối đoạn chữ trên ảnh
- Tạo một macro mới cho nút mới và tạo những tập tin ảnh cho nút mới này
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 55
4.5.3.1. Tạo một nút mới dựa vào nút đã có
Ví dụ, ta cần một nút “Places” và dùng một nút đã có “From” để tạo nút mới
này. Cách làm như sau:
- Định nghĩa một classifier cho nút mới trong tập tin collect.cfg.
classify AZList -metadata dc.Title -buttonname From
- Trong một chương trình xử lý ảnh, thay đoạn text “From” thành “Places”
trên tất cả 3 ảnh, có thể thay đổi màu sắc, và đặt những ảnh này trong thư mục
images.
tfromgr.gif
tfromof.gif
tfromon.gif
4.5.3.2. Tạo macro mới cho một nút
Ví dụ muốn tạo một nút mới “Museums”. Cách làm như sau:
Tạo một classifier trong tập tin collect.cfg
classify AZList -metadata Museums -buttonname Museums
Tạo một macro ảnh trong package Global dùng cùng định dạng với những
macro ảnh khác
_imagemuseum_ {_gsimage_(_httpbrowseMuseum_,_httpicontMuseumof_,
_httpicontMuseumon_,Museums,_textimageMuseum_)}
Xác định vị trí của những ảnh và độ rộng của những ảnh này
#Museum
_httpicontmuseumgr_ {_httpprefix_/collect/auhist/images/tmuseumgr.gif}
_httpicontmuseumof_ {_httpprefix_/collect/auhist/images/tmuseumof.gif}
_httpicontmuseumon_ {_httpprefix_/collect/auhist/images/tmuseumon.gif}
_widthtmuseumsx_ {110}
Tạo 3 ảnh và lưu chúng trong thư mục images
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 56
4.5.4. Xóa nút duyệt tài liệu
Xóa nút duyệt tài liệu bằng cách xóa macro ảnh _imageX_ (ví dụ
_imagemuseum_) trong package Global
4.5.5. Thay đổi nút duyệt tài liệu
Thay đổi nút duyệt tài liệu bằng cách thay đổi macro _httpbrowseX_ (ví dụ
_httpbrowseMuseum_) hay _httpicontX_ (ví dụ _httpicontmuseumgr_) hay
_textimageX_ (ví dụ _textimageMuseum_)…
4.6. Hiển thị văn bản Có 2 cách hiển thị văn bản. Chúng được quản lý trong tập tin collect.cfg.
4.6.1. Hiển thị loại CL list
Hiển thị danh sách các tài liệu được được quản lý bởi những chuỗi format
trong tập tin collect.cfg. Ví dụ, chuỗi format sau sẽ hiển thị danh sách các tiêu đề
của tài liệu là classifier đầu tiên, với một thumbnail và phần mô tả chung, được
minh họa ở hình 4.3
format CL1VList ‘<td valign=top align=center width=150>[ImageHTML]</td> <td width=10> </td> <td align=left valign=top> <table border=0 width=435 cellpadding=2 cellspacing=0> <tr><td width=100 align=left valign=top><b>Title:</b></td> <td width=335 align=left valign=top>[link]<b>[Title]</b>[/link]</td></tr> <tr><td width=100 align=left valign=top><b>Date:</b></td> {If}{[DC.Date.text], <td width=335 align=left valign=top>[DC.Date.text]</td>,<td valigh=top>[DC.Date.created]</td>}</tr> </table> </td></tr> <tr><td colspan=3><hr align=center size=1 noshade></td></tr>’
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 57
Hình 4.3 – Hiển thị danh sách các tài liệu
4.6.2. Hiển thị nội dung
Khi ta click lên trên tiêu đề trong danh sách các tiêu đề, ta thấy hoặc là trang
nội dung hoặc là một record metadata mô tả đối tượng số hóa. Sự hiển thị trang này
được quản lý bởi Format DocumentHeading và Format DocumentText trong tập tin
collect.cfg
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 58
Hình 4.4 – Hiển thị nội dung tài liệu
4.7. Override các macro Thay vì sửa trực tiếp trong các tập tin macro mặc định của Greenstone, có
thể tạo một tập tin macro mới, sau đó override những macro muốn sửa đổi. Khi
override các macro, phải chỉ ra macro này nằm trong package nào. Ngoài override
các macro có sẵn trong Greenstone, có thể thêm các macro mới vào tập tin này.
Ví dụ cách override một macro: giả sử ta muốn thay đổi giao diện trang chủ
của Greenstone như hình vẽ dưới đây ta làm như sau :
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 59
Hình 4.5 - Hiệu chỉnh giao diện trang chủ
- Tạo một tập tin macro mới đặt tên là zitlibweb.dm. Tập tin lưu trong thư
mục macro của Greenstone
- Soạn thảo nội dung của tập tin macro này. Ta thay đổi những macro cần
thiết.
- Thêm vào nội dung tập tin main.cfg tên của tập tin macro vừa tạo
Lúc này giao diện trang chủ của Greenstone sẽ thay đổi lập tức như hình vẽ
trên
Chú ý:
- Nếu chỉ muốn áp dụng giao diện mới cho bộ sưu tập nào đó thôi thì ta
thêm dòng sau trước mỗi macro [c=tên bộ sưu tập]
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 60
- Cấu trúc của tập tin zitlibweb.dm như sau:
#Thay đổi hình nền
package Global
_httpiconchalk_ {_httpimg_/mainbackground.gif}
_widthchalk_ {2000}
_heightchalk_ {10}
#Thêm ảnh banner
package home
_imagecollection_ {<img src="_httpimg_/banner1.jpg">}
#Xóa 3 nút home, help, pref mặc định của Greenstone
_javalinks_ {}
_javalinks_ [v=1] {}
#Tên trang web
_pagetitle_ {Tra cứu}
#Nội dung trang web
_content_ {
#phần nội dung trang web
}
Giải thích cấu trúc tập tin zitlibweb.dm:
Tập tin macro home.dm phát sinh trang chủ của Greenstone. Trong trang
này, package home được định nghĩa. Để sửa đổi giao diện của trang chủ, phải định
nghĩa lại package home
Nội dung của trang chủ sẽ được chứa trong macro _content_ .Ta có thể dùng
một chương trình thiết kế website (Frontpage,Dreamweaver…) thiết kế giao diện
trang chủ, sau đó copy phần source code trong đoạn <body>..</body> vào macro
_content_ này
4.8. Thêm một trang mới Để tạo một trang mới ta cần tạo một tập tin macro mới. Ví dụ thêm một trang
web tên là mypage :
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 61
- Tạo tập tin macro mới tên mypage.dm trong thư mục “greenstone\macros”
- Để liên kết trang này với trang home, trong macro _content_ của tập tin
macro home.dm, ta thêm một link như sau: <a href="_httppagex_(mypage)">My
Page</a>
- Thêm tên tập tin macro mới này vào danh sách các macro trong tập tin
main.cfg
mypage.dm sẽ chứa nội dung của trang mới. Cấu trúc cơ bản của tập tin
macro này như sau :
package mypage
_pagetitle_ {My New Page}
_content_ {
# phần nội dung trang
}
4.9. Hiển thị các bộ sưu tập Giả sử với giao diện trang chủ ở hình 4.5, khi click vào hyperlink của bộ sưu
tập luận văn, sẽ đến trang zthesis. Trang zthesis hiển thị tất cả các bộ sưu tập luận
văn, mỗi bộ sưu bao gồm các luận văn của một khóa học nào đó, ví dụ bộ sưu tập
luận văn khóa 2001, bộ sưu tập luận văn khóa 2002….
Ta tạo trang web mới zthesis bằng cách tạo một tập tin macro zthesis.dm.
Nội dung tập tin zthesis.dm như sau:
package zthesis
#Tạo ảnh banner
_imagecollection_ {<img src="_httpimg_/banner1.jpg">}
#Tạo liên kết
_mycollectionurl_ {_gwcgi_?a=p&p=about&c=_1_}
_mycollectionlink_ {<a href="_mycollectionurl_(_1_)">_2_</a>}
_pagetitle_ {Bộ sưu tập luận văn}
#Xóa 3 nút home,help,pref
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 62
_javalinks_ {}
_javalinks_ [v=1] {}
#Phần nội dung
_content_ {
<center><H1><font color = blue>BỘ SƯU TẬP LUẬN
VĂN</font></H1></center>
<table align= center>
<tr>
<td><a href="http://localhost/itlibweb/index.aspx"><img
src="_httpimg_/logo_home.jpg" border="0"></a></td>
<td><a href="_httppagex_(home)"><img src="_httpimg_/logo_search.jpg"
border="0"></a></td>
</tr>
</table>
<table align ="center">
<tr>
<td width =100>_mycollectionlink_(LV01,Luận văn Khóa 2001)</td>
<td width =100>_mycollectionlink_(LV02,Luận văn Khóa 2002)</td>
</tr>
</table>
}
Ta định nghĩa 2 macro mới _mycollectionurl_, _mycollectionlink_ để tạo các
liên kết đến các bộ sưu tập. Sau đó trong _content_ ta tạo 2 liên kết đến 2 bộ sưu tập
luận văn khóa 2001, luận văn khóa 2002 bằng cách dùng macro _mycollectionlink_
4.10. Macro chuẩn Tên Ý nghĩa
_httpprefix_ Thư mục Greenstone
_httpimg_ Thư mục ảnh của Greenstone
_httppagex_ Định nghĩa một trang web nào đó của Greenstone
Chương 4 – Hiệu chỉnh giao diện của Greenstone
Trang 63
_httpiconchalk_ Định nghĩa ảnh nền cho Greenstone
_content_ Định nghĩa nội dung hiển thị một trang
_javalinks_ Trình bày nút duyệt trên cùng
_gsimage_ Định nghĩa các macro ảnh
_imagethispage Định nghĩa ảnh header
Bảng 4.2 - Một số macro chuẩn
4.11. Lưu ý Khi định nghĩa các tập tin macro trong tập tin main.cfg, thứ tự các tập tin
macro theo thứ tự alphabet. Ví dụ macro mặc định của greenstone để định nghĩa
trang chủ là home.dm. Nếu muốn override các package trong tập tin này, phải tạo
một tập tin macro mới có tên có thứ tự alphabet lớn hơn “home”, ví dụ
“myhome.dm” (“h”<”m”).
Khi tạo ra một trang mới bằng cách định nghĩa một tập tin macro mới, trong
nội dung tập tin này ta nên để một dòng trống trước khi định nghĩa package. Nếu
không làm vậy thì trong một số trường hợp, trang được phát sinh sẽ không đúng
Ví dụ nội dung tập tin zthesis.dm để định nghĩa trang chứa các bộ sưu tập
luận văn
package zthesis
_pagetitle_ {Bộ sưu tập luận văn}
_content_ {
<p><font size=18>Bộ sưu tập luận văn</font></p>
}
Để trống dòng đầu tiên
Chương 5 – Hệ thống Web Greenstone
Trang 64
CHƯƠNG 5. HỆ THỐNG WEB GREENSTONE
Giới thiệu
Tổng quan về cơ chế xử lý
Chi tiết về cơ chế xử lý
Mã nguồn
Chương 5 – Hệ thống Web Greenstone
Trang 65
5.1. Giới thiệu Hệ thống web của Greenstone được viết bằng ngôn ngữ C++ dùng cơ chế
CGI.
5.2. Tổng quan về cơ chế xử lý
Hình 5.1 - Cơ chế xử lý
Hình trên minh họa cách một số người dùng truy cập đến các bộ sưu tập của
thư viện số. Người dùng được đại diện bằng các máy tính. Sau khi các bộ sưu tập
được xây dựng, chúng được truy cập “online” từ phía người dùng. Để truy cập đến
các bộ sưu tập, người dùng phải đi qua 2 đơn thể trừu tượng, receptionist và
collection server. Receptionist có thể xem như phần giao diện để giao tiếp với các
thư viện số và người dùng. Chúng cho phép người dùng nhập thông tin sau đó phân
tích và gửi các yêu cầu này đến các collection server thích hợp. Collection server
nhận được yêu cầu, phân tích, lấy những thông tin được yêu cầu từ các bộ sưu tập
và phản hồi lại cho receptionist, sau đó receptionist hiển thị kết quả cho người dùng.
Chương 5 – Hệ thống Web Greenstone
Trang 66
Receptionist kết nối với Collection server thông qua một nghi thức giao tiếp.
Sự thực thi nghi thức này tùy thuộc vào cấu hình từng máy tính. Trong trường hợp
đơn giản nhất, chỉ có một receptionist và một collection server chạy trên cùng một
máy tính. Khi này receptionist và collection server hợp thành một thể thống nhất gọi
là library và giữa chúng dùng một nghi thức null protocol
Hình 5.2 - Collection server và receptionist liên lạc qua nghi thức null
protocol
Thông thường server phải chạy liên tục để phản hồi những yêu cầu từ phía
client. Đối với collection server dùng nghi thức null protocol thì khác. Chỉ khi nào
có một trang web của Greenstone được yêu cầu, chương trình library sẽ được khởi
động bởi cơ chế CGI, phản hồi những yêu cầu, sau đó kết thúc ngay. Điều này có
thể làm chậm tiến trình xử lý. Để khắc phục ta dùng cơ chế Fast-CGI, chương trình
Chương 5 – Hệ thống Web Greenstone
Trang 67
library sẽ được lưu lại trong bộ nhớ ở lần thực thi đầu tiên. Để dùng Fast-CGI ta
phải biên dịch lại Greenstone.
5.3. Chi tiết về cơ chế xử lý Hình dưới đây minh họa cho trang web “about this collection” của bộ sưu tập
Project Gutenberg. Trang web được phát sinh từ chương trình library
Hình 5.3 - Bộ sưu tập Project Gutenberg
Trên thanh địa chỉ lúc này có chuỗi như sau:
http://www.nzdl.org/cgi-bin/library?c=gberg&a=p&p=about
Chuỗi này có ý nghĩa: người dùng muốn truy cập đến collection
gberg(c=gberg), hành động(action) là muốn phát sinh ra một trang web (a = p) và
trang được phát sinh là trang about (p=about).
Chương 5 – Hệ thống Web Greenstone
Trang 68
Hình sau minh họa chi tiết hệ thống Greenstone dùng nghi thức null
protocol:
Hình 5.4 - Cơ chế xử lý dùng null protocol
Receptionist đầu tiên sẽ khởi tạo các thành tố của nó, sau đó phân tích các
tham số CGI để quyết định gọi các hành động nào. Khi một hành động được thực
hiện, receptionist thông qua nghi thức chung truy cập đến nội dung của bộ sưu tập.
Những phản hồi từ phía server được receptionist dùng các thành tố như chuỗi định
dạng (format), macro để phát sinh trang web kết quả hiển thị cho người dùng.
Collection server cũng trải qua quá trình khởi tạo các thành tố của nó, sau đó
dùng các thành tố như Filter, Source, Search để phản hồi những yêu cầu gửi đến.
Các thành tố như Filter, Source, Search truy cập đến hệ thống chỉ mục và cơ sở dữ
liệu quản lý thông tin bộ sưu tập để lấy kết quả phản hồi cho người dùng.
Chương 5 – Hệ thống Web Greenstone
Trang 69
Thống kê cho thấy receptionist dùng khoảng 15 000 dòng mã nguồn, còn
collection server chỉ dùng khoảng 5000 dòng mã nguồn. Nhưng mã nguồn của
collection server phức tạp hơn. Trong collection server có dùng 2 đơn thể bên
ngoài, đó là MG và GDMB. MG dùng để nén văn bản, tạo chỉ mục, truy vấn dữ liệu
phục vụ cho quá trình tìm kiếm tài liệu. GDBM là một hệ quản trị cơ sở dữ liệu
dùng để quản lý thông tin của bộ sưu tập. Đây là 2 đơn thể cốt lõi của collection
server.
5.4. Mã nguồn Mã nguồn của hệ thống web Greenstone được viết bằng thư viện STL
(Standard Template Library) của C++ và được đặt trong thư mục “greenstone\src”.
Hình 5.5 - Cấu trúc thư mục chứa mã nguồn Greenstone
Trong thư mục src có 2 thư mục con chính là: colservr chứa mã nguồn của
collection server và recpt chứa mã nguồn của receptionist.
Ngoài ra trong thư mục greenstone\lib còn chứa mã nguồn các lớp, các hàm
cơ bản dùng cho cả collection server và receptionist.
Chương 5 – Hệ thống Web Greenstone
Trang 70
5.4.1. Các lớp và hàm cơ bản
text_t.h : định nghĩa lớp đối tượng hỗ trợ Unicode cho Greenstone
cfgread.h : định nghĩa các hàm đọc và ghi tập tin cấu hình
display.h : định nghĩa các lớp đối tượng dùng cho receptionist trong việc cài
đặt, lưu trữ và mở rộng các macro
fileutil.h : định nghĩa các hàm thao tác với tập tin.
gsdlconf.h : định nghĩa các hàm mức hệ thống.
gsdltimes.h : định nghĩa các hàm thao tác trên kiểu dữ liệu thời gian.
gsdltools.h : định nghĩa các hàm hỗ trợ hệ thống Greenstone : kiểm tra trình
thực thi Perl có tồn tại không, thực thi một câu lệnh hệ thống, xác định tài
liệu định dạng theo little Endian hay big Endian…
gsdlunicode.h : định nghĩa các lớp đối tượng hỗ trợ xử lý chuỗi Unicode
text_t.
5.4.2. Collection server
Collection server gồm 3 lớp cơ sở: searchclass, sourceclass,filterclass.
Lớp đối tượng searchclass là lớp cơ sở, định nghĩa các phương thức ảo để
thực hiện các câu truy vấn tìm kiếm tài liệu. Greenstone dùng MG để tìm kiếm tài
liệu. Do đó có một lớp mgsearchclass kế thừa từ lớp searchclass. Lớp
mgsearchclass định nghĩa lại một số phương thức ảo của lớp searchclass, các
phương thức này gọi đến thư viện MG. Mã nguồn mở của MG có thể tìm trong thư
mục “greenstone\packages\mg”
Lớp đối tượng sourceclass có nhiệm vụ truy cập metadata và nội dung của
tài liệu. 2 hàm ảo get_metadata() và get_document() thực hiện nhiệm vụ trên.
Greenstone dùng 2 thư viện MG và GDBM để cài đặt cho lớp sourceclass thông qua
lớp mggdmbsourceclass.
Chương 5 – Hệ thống Web Greenstone
Trang 71
Lớp đối tượng filterclass là lớp cơ sở để lọc các tài liệu có được từ một câu
truy vấn hay từ hành động duyệt xem các tài liệu. Cây kế thừa của các đối tượng lọc
tài liệu như sau:
Hình 5.6 - Các đối tượng Filter
Định nghĩa lớp, hàm của collection server :
browsefilter.h : định nghĩa lớp browsefilterclass kế thừa từ filterclass, dùng
để truy cập đến thư viện GDBM.
collectserver.h : bao bọc các đối tượng Filter và Source
colservrconfig.h : cung cấp những hàm đọc file cấu hình etc\collect.cfg và
index\build.cfg
filter.h : định nghĩa lớp cơ sở filterclass
maptools.h : định nghĩa lớp tên là stringmap được dùng trong các lớp
mggdbmsourceclass và queryfilterclass.
mggdbmsource.h : định nghĩa lớp mggdbmsourceclass kế thừa từ lớp
sourceclass, truy cập đến MG và GDBM.
mgppqueryfilter.h : định nghĩa lớp mgppqueryfilterclass kế thừa từ lớp
queryfilterclass, lớp này cài đặt cho lớp queryfilterclass dùng MG++.
Chương 5 – Hệ thống Web Greenstone
Trang 72
mgppsearch.h : định nghĩa lớp mgppsearchclass kế thừa lớp searchclass, lớp
này cài đặt cho lớp searchclass dùng MG++
mgq.h : cung cấp các hàm giao tiếp với thư viện MG.
mgqueryfilter.h : định nghĩa lớp mgqueryfilterclass kế thừa từ lớp
queryfilterclass, dùng để cài đặt cho lớp queryfilterclass dùng MG
mgsearch.h : định nghĩa lớp mgsearchclass kế thừa từ lớp searchclass, cài đặt
cho lớp searchclass dùng MG.
querycache.h : định nghĩa lớp querycache, dùng cho lớp searchclass. Những
lớp kế thừa từ nó sẽ lưu tạm kết quả truy vấn để tối ưu việc truy vấn.
queryfilter.h : định nghĩa lớp queryfilterclass kế thừa từ lớp filterclass, đây là
lớp cơ sở cho các đối tượng lọc các câu truy vấn.
queryinfo.h : hỗ trợ việc tìm kiếm tài liệu, định nghĩa các cấu trúc dữ liệu
cho tham số các câu truy vấn, kết quả trả về..
search.h : định nghĩa lớp đối tượng cơ sở searchclass.
source.h : định nghĩa lớp đối tượng cơ sở sourceclass.
5.4.3. Receptionist
Greenstone định nghĩa một khái niệm trừu tượng đó là Action. Một Action là
một hành động của người dùng tương tác với hệ thống web Greenstone hay một
hành động của hệ thống Greenstone.
Chương 5 – Hệ thống Web Greenstone
Trang 73
Tên Action Ý nghĩa action Lớp cơ sở
authenaction Hỗ trợ chứng thực người dùng
collectoraction Phát sinh trang web cho Collector
documentaction Nhận kết quả tìm kiếm tài liệu hoặc định dạng thông tin tàil iệu
pageaction Phát sinh trang web dựa vào các macro
Pingaction Kiểm tra một bộ sưu tập có online hay không
queryaction Thực hiện việc tìm kiếm tài liệu
statusaction Phát sinh trang web của admin
Useraction Hỗ trợ quản lý người dùng
Bảng 5.1- Danh sách các Action
Định nghĩa lớp, hàm trong receptionist :
action.h : định nghĩa lớp cơ sở
authenaction.h : định nghĩa lớp authenaction kế thừa từ lớp action hỗ trợ
chứng thực người dùng.
browserclass.h : định nghĩa lớp cơ sở cho hành động duyệt tài liệu
browsetools.h : định nghĩa các hàm hỗ trợ cho lớp browserclass
cgiargs.h : định nghĩa cấu trúc dữ liệu cgiarginfo và những cấu trúc dữ liệu
khác hỗ trợ cho các tham số CGI
cgiutils.h : định nghĩa các hàm hỗ trợ cho các cấu trúc dữ liệu định nghĩa
trong cgiargs.h.
collectoraction.h : định nghĩa lớp kế thừa từ lớp action cho phép người dùng
xây dựng bộ sưu tập bằng Collector. Trang Collector được phát sinh từ
macro collect.dm.
datelistbrowserclass.h : định nghĩa lớp kế thừa từ browserclass, hỗ trợ
Chương 5 – Hệ thống Web Greenstone
Trang 74
các bộ sưu tập có tài liệu được duyệt theo ngày tháng.
documentaction.h : định nghĩa lớp kế thừa từ lớp action hỗ trợ lấy tài liệu từ
một câu truy vấn.
formattools.h : định nghĩa các hàm hỗ trợ cho chuỗi định dạng (format)
hlistbrowserclass.h : định nghĩa lớp kế thừa từ browserclass, hỗ trợ các bộ
sưu tập có tài liệu được sắp xếp theo danh sách ngang.
htmlbrowserclass.h : định nghĩa lớp kế thừa từ browserclass, hỗ trợ duyệt
các tài liệu html
htmlgen.h : định nghĩa các hàm hỗ trợ cho việc highlight các chuỗi liên quan
trong nội dung tài liệu tìm được. .
infodbclass.h : định nghĩa 2 lớp : gdbmclass và infodbclass, hỗ trợ truy cập
thư viện GDBM
pageaction.h : định nghĩa lớp kế thừa từ lớp action hỗ trợ phát sinh trang
web.
querytools.h : định nghĩa những hàm hỗ trợ truy vấn dữ liệu.
recptconfig.h : định nghĩa các hàm hỗ trợ đọc file cấu hình main.cfg và
gsdlsite.cfg .
statusaction.h : định nghĩa lớp kế thừa từ lớp action, hỗ trợ phát sinh trang
quản lý cho admin.
userdb.h : định nghĩa các cấu trúc dữ liệu và hàm quản lý cơ sở dữ liệu
người dùng .
usersaction.h : định nghĩa lớp kế thừa từ lớp action, hỗ trợ admin quản lý
người dùng.
vlistbrowserclass.h : định nghĩa lớp kế thừa từ lớp browserclass, hỗ trợ cho
các tài liệu được liệt kê theo danh sách chiều dọc
Trang 75
PHẦN 2. XÂY DỰNG ỨNG DỤNG
Sau khi đã hiểu được các khái niệm và cách thức hoạt động của Greenstone,
đây là lúc chúng ta ứng dụng những gì đã nghiên cứu được vào thực tế. Phần 2 này
sẽ trình bày ứng dụng thư viện số ITDL (IT Digital Library) cho Khoa Công nghệ
Thông tin, Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh. Phần này gồm có
3 chương:
Chương 6 : Xây dựng ứng dụng
Chương 7 : ITLibWeb
Chương 8 : ITLib
Chương 6 – Xây dựng ứng dụng
Trang 76
CHƯƠNG 6. XÂY DỰNG ỨNG DỤNG
Tổng quan
Đối tượng sử dụng
Chức năng chính
Chương 6 – Xây dựng ứng dụng
Trang 77
6.1. Tổng quan 6.1.1. Phát biểu bài toán
Trước nhu cầu tin học hoá hệ thống thư viện khoa CNTT – ĐH KHTN, ta
cần xây dựng hệ thống quản lý thư viện điện tử, dựa trên nền tảng của Greenstone.
Hệ thống cho phép người dùng xây dựng bộ sưu tập luận văn, sách, giáo
trình, các tài liệu khác, tìm kiếm thông tin tài liệu, tra cứu trên nội dung tài liệu,
quản lý thông tin tài liệu trong cơ sở dữ liệu, quản lý người dùng và một số chức
năng khác.
Quá trình thu thập luận văn để xây dựng bộ sưu tập Luận văn có sự tham gia
của các thành viên trong Khoa CNTT (gồm giáo viên, sinh viên). Thành viên trong
Khoa sẽ đăng nhập vào website thư viện điện tử của Khoa để nhập thông tin luận
văn, cũng như dùng chương trình để chuẩn hoá luận văn theo định chuẩn của hệ
thống.
6.1.2. Giới thiệu về ITDL (IT Digital Library)
ITDL là chương trình xây dựng thư viện điện tử, với 2 mô-đun chính
ITLibWeb và ITLib.
Mô-đun Web có tên ITLibWeb, chủ yếu cho thành viên trong Khoa nhập
thông tin luận văn và tra cứu tài liệu. Thông tin luận văn sau đó được chuyển cho
mô-đun ITLib dạng Windows Form để xử lý tiếp.
Mô-đun Windows Form có tên ITLib cho phép thủ thư biên mục các bộ sưu
tập, quản lý thông tin tài liệu. Thành viên trong Khoa dùng một mô-đun nhỏ của
ITLib, tên là TocManip để chuẩn hoá Luận văn theo chuẩn của chương trình ITLib.
Luận văn được chuẩn hoá được gửi về thư viện, cùng với thông tin luận văn nhập từ
web giúp thủ thư xây dựng các bộ sưu tập luận văn.
Chương 6 – Xây dựng ứng dụng
Trang 78
6.2. Đối tượng sử dụng hệ thống
Giáo viên, Thủ thư, Sinh viên của Khoa CNTT
6.3. Các chức năng chính
6.3.1. Cung cấp thông tin luận văn
Các thành viên trong Khoa bao gồm Sinh viên và Giáo viên có thể cung cấp
thông tin luận văn của mình thông qua website thư viện điện tử của Khoa.
6.3.2. Chuẩn hoá tài liệu
Để tài liệu trong các bộ sưu tập hiển thị theo cấu trúc phân cấp, giúp người
dùng nắm được cấu trúc tài liệu và truy xuất thông tin hiệu quả, tài liệu cần được xử
lý trước.
Như đã nói ở phần lý thuyết, để phân cấp tài liệu ta phải chèn các thẻ section
vào tài liệu nguồn. ITLib hỗ trợ chuẩn hoá tài liệu bán tự động. Người dùng cung
cấp cho chương trình tập tin nguồn (PDF, DOC, hay HTML). Chương trình tự động
chuyển sang định dạng HTML. Nếu tài liệu là tập tin PDF, nó phải cho phép truy
xuất, có nghĩa là tập tin không bị khoá bảo mật. Sau khi chuyển sang HTML, người
dùng chép phần mục lục vào cửa sổ phân tích và chương trình sẽ phân tích mục lục
đó để tìm cách chèn tốt nhất. Người dùng có thể kiểm soát quá trình phân tích mục
lục (hiệu chỉnh lại sao cho đúng) cũng như quá trình chèn thẻ. Trước khi lưu kết
quả, người dùng có thể kiểm tra lại quá trình chèn thẻ.
Chức năng này được dùng để chuẩn hóa các tài liệu luận văn.
6.3.3. Xây dựng bộ sưu tập
Thủ thư có quyền tạo các bộ sưu tập, quản lý và xuất bản bộ sưu tập lên thư
viện điện tử.
Chương 6 – Xây dựng ứng dụng
Trang 79
6.3.3.1. Xây dựng bộ sưu tập Luận văn
Thủ thư lấy thông tin luận văn của Thành viên trong Khoa cung cấp, hiệu
chỉnh lại nếu cần thiết, và dùng những tập tin luận văn đã chuẩn hoá để tạo bộ sưu
tập. Thông tin luận văn đồng thời cũng được cập nhật vào cơ sở dữ liệu cho mục
đích quản lý lâu dài.
6.3.3.2. Xây dựng bộ sưu tập Sách
Thông tin về Sách, Giáo trình từ cơ sở dữ liệu được xử lý để đưa vào bộ sưu
tập. Thủ thư tạo các bộ sưu tập từ những thông tin này. Ngoài ra thủ thư có thể biên
mục cho bộ sưu tập sách và cập nhật thông tin sách vào cơ sở dữ liệu.
6.3.3.3. Xây dựng bộ sưu tập Tổng quát
Nhằm đáp ứng tính mở rộng của thư viện, ITLib cho phép thủ thư tạo bộ sưu
tập tổng quát. Thủ thư biên mục tài liệu theo các chuẩn biên mục, phổ biến là chuẩn
Dublin Core, hoặc tự tạo ra các chuẩn riêng nhờ hiệu chỉnh các bộ metadata.Các tài
liệu bao gồm : các tài liệu văn phòng (Word, Power Point, Excel… ) , văn bản,
Acrobat Reader (PDF), HTML, XML, Email, tập tin nén (.Zip) … hoặc âm thanh
(mp3), hình ảnh, video…Sau khi biên mục, thủ thư có thể xây dựng bộ sưu tập.
6.3.4. Tra cứu tài liệu
Người dùng thông website thư viện điện tử ITLibWeb có thể tra cứu tài liệu
trong các bộ sưu tập
Chương 7 – ITLibWeb
Trang 80
CHƯƠNG 7. ITLIBWEB
Xác định yêu cầu
Phân tích các Use case chính
Thiết kế
Cài đặt
Chương 7 – ITLibWeb
Trang 81
7.1. Xác định yêu cầu 7.1.1. Giới thiệu
ITLibWeb là hệ thống thư viện điện tử của Khoa CNTT trường ĐH KHTN
được thiết kế trên môi trường web, có liên kết với hệ thống Greenstone. Hệ thống
cho phép :
- Nguời dùng (nói chung) :
Xem thông tin điều lệ của thư viện bao gồm : nội quy , nguyên tắc làm thẻ
đọc giả, các hình thức phạt
Tra cứu các bộ sưu tập tài liệu. Ở chức năng này hệ thống ITLibWeb sẽ kết
nối với hệ thống Greenstone để thực hiện các chức năng tra cứu, tìm kiếm tài liệu,
xem nội dung tài liệu…
Xem thông báo từ thư viên bao gồm : thông báo tài liệu mới, thông báo đọc
giả mượn quá hạn
Thực hiện các chức năng đăng nhập, đăng xuất, thay đổi mật khẩu.
Xem các website báo chí, âm nhạc, hội họa
Xem các website thư viện điện tử khác bao gồm thư viện điện tử của các
trường Đại học , thư viện điện tử của các tổ chức cơ quan trong và ngoài nước.
- Giáo viên & Sinh viên Khoa CNTT Trường ĐH KHTN nhập thông tin cho
luận văn, xem thông tin luận văn. Ngoài ra Giáo viên & Sinh viên có thể thực hiện
đầy đủ các chức năng của một người dùng (nói chung).
7.1.2. Bảng chú giải
7.1.2.1. ITLib
Hệ thống ITLib xây dựng bộ sưu tập cho thư viện Khoa CNTT – ĐH KHTN.
Chương 7 – ITLibWeb
Trang 82
7.1.2.2. Greenstone
Hệ thống web của Greenstone với chức năng tìm kiếm, xem nội dung tài
liệu.
7.1.2.3. Thanh vien Khoa (Thành viên Khoa)
Là những người hoạt động trong Khoa CNTT ĐH KHTN bao gồm giáo viên
và sinh viên.
7.1.3. Đặc tả bổ sung
7.1.3.1. Phạm vi
Đặc tả này vạch rõ các yêu cầu phi chức năng của hệ thống, như tính ổn
định, tính khả dụng, hiệu năng, và tính hỗ trợ cũng như các yêu cầu chức năng
chung cho một số Use case (Các yêu cầu chức năng được chỉ rõ trong phần Đặc tả
Use case).
7.1.3.2. Tài liệu tham khảo
Không có.
7.1.3.3. Chức năng
Hỗ trợ nhiều người dùng làm việc đồng thời.
Cho phép người dùng nói chung xem các thông tin về nôi quy, điều lệ làm
thẻ đọc giả, hình thức phạt, tra cứu tài liệu, xem thông báo các tài liệu mới, xem
danh sách các đọc giả mượn quá hạn, đăng nhập, đăng xuất, đổi mật khẩu, xem các
liên kết báo chí, hội họa, âm nhạc, xem các liên kết đến các thư viện điện tử khác.
7.1.3.4. Tính khả dụng
Giao diện người dùng tương thích Windows 98/2000/XP.
Chương 7 – ITLibWeb
Trang 83
7.1.3.5. Tính ổn định
Hệ thống phải hoạt động liên tục 24 giờ một ngày, 7 ngày mỗi tuần, với thời
gian ngưng hoạt động không quá 10%.
7.1.3.6. Sự hỗ trợ
Phải có sự hỗ trợ của hệ thống Greenstone trong việc tra cứu, xem nội dung
tài liệu.
7.1.3.7. Tính bảo mật:
Chỉ có giáo viên và sinh viên của Khoa mới có quyền nhập thông tin luận
văn, xem thông tin luận văn của mình.
Hệ thống phải ngăn chặn các người dùng không phải là giáo viên, sinh viên
của Khoa truy cập bất hợp pháp vào các trang nhập thông tin luận văn, xem thông
tin luận văn.
Hệ thống phải ngăn chặn các thành viên thay đổi thông tin cá nhân của các
thành viên khác.
7.1.3.8. Các ràng buộc thiết kế
Không có.
7.1.4. Mô hình Use Case
7.1.4.1. Mô hình
Chương 7 – ITLibWeb
Trang 84
Hình 7.1 – Lược đồ Use case
Chương 7 – ITLibWeb
Trang 85
7.1.4.2. Danh sách các Actor
STT Tên Actor Ý nghĩa 1 Nguoi dung Người dùng 2 Thanh vien Khoa Thành viên trong Khoa
CNTT gồm giáo viên và sinh viên
3 Greenstone Hệ thống web của Greenstone
4 ITLib Hệ thống ITLib
Bảng 7.1 - Danh sách Actor
7.1.4.3. Danh sách các Use Case
STT Tên Use Case Ý nghĩa 1 Xem noi quy Xem nội quy thư viện 2 Xem dieu le lam the Xem điều lệ làm thẻ đọc
giả 3 Xem hinh thuc phat Xem hình thức phạt 4 Tra cuu Tra cứu tài liệu 5 Xem tai lieu moi Xem thông báo tài liệu
mới 6 Xem doc gia muon qua
han Xem danh sách các đọc giả mượn sách quá hạn
7 Dang nhap Đăng nhập 8 Dang xuat Đăng xuất khỏi hệ thống 9 Doi mat khau Đổi mật khẩu thành viên 10 Doc bao Đọc báo 11 Xem tranh Xem tranh 12 Nghe nhac Nghe nhạc 13 Xem thu vien DH Xem các liên kết đến các
thư viện Đại học 14 Xem thu vien co quan Xem các liên kết đến các
thư viện của các cơ quan, tổ chức
15 Nhap luan van Nhập thông tin cho luận văn
16 Xem luan van Xem thông tin của luận văn
Bảng 7.2 - Danh sách các Use case
Chương 7 – ITLibWeb
Trang 86
7.1.4.4. Đặc tả các Use case chính
1. Use case “Tra cuu” (Tra cứu tài liệu)
a. Tóm tắt
Use case này cho phép người dùng tra cứu và xem nội dung các tài liệu trong
các bộ sưu tập.
b. Dòng sự kiện
i. Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn tra cứu tài liệu, xem nội dung tài
liệu của các bộ sưu tập
1. Hệ thống kết nối với hệ thống Greenstone, hiển thị trang chủ của
Greenstone
2. Người dùng thực hiện các chức năng tra cứu trên hệ thống Greenstone.
3. Use case kết thúc khi người dùng đóng trang web Greenstone lại hoặc
nhấn vào liên kết “Trang chủ” để trở về trang chủ của ITLibWeb.
ii. Các dòng sự kiện khác
1. Hệ thống Greenstone không hoạt động
Trong dòng sự kiện chính, nếu vì lý do nào đó (server quá tải, có lỗi ở các bộ
sưu tập tài liệu), hệ thống ITLibWeb không kết nối với hệ thống Greenstone
được, thì hệ thống Greenstone sẽ thông báo lỗi và Use case kết thúc.
c. Các yêu cầu đặc biệt
Không có
d. Điều kiện tiên quyết
Hệ thống Greenstone phải được cài và cấu hình sẵn trên server.
e. Post-Conditions
Trạng thái của hệ thống không thay đổi.
Chương 7 – ITLibWeb
Trang 87
f. Điểm mở rộng
Không có
2. Use case “Dang nhap” (Đăng nhập)
a. Tóm tắt
Use case này cho phép người dùng đăng nhập vào hệ thống ITLibWeb.
b. Dòng sự kiện
i. Dòng sự kiện chính
Use case này bắt đầu khi người dùng muốn đăng nhập vào hệ thống
ITLibWeb.
1. Hệ thống yêu cầu người dùng nhập vào tên thành viên và mật khẩu.
2. Người dùng nhập vào tên thành viên và mật khẩu.
3. Người dùng xác nhận đã nhập tên và mật khẩu
4. Hệ thống kiểm tra tên và mật khẩu của người dùng và cho phép người
dùng đăng nhập vào hệ thống. Use case kết thúc.
ii. Các dòng sự kiện khác
1. Tên / Mật khẩu sai
Trong dòng sự kiện chính, nếu người dùng nhập sai tên hay mật khẩu thì hệ
thống sẽ thông báo lỗi. Khi này người dùng có thể trở về đầu của dòng sự
kiện chính hoặc hủy bỏ việc đăng nhập, lúc này Use case kết thúc.
c. Các yêu cầu đặc biệt
Không có
d. Điều kiện tiên quyết
e. Post-Conditions
Nếu đăng nhập thành công, người dùng lúc này đã đăng nhập vào hệ thống.
Nếu không trạng thái hệ thống không thay đổi.
Chương 7 – ITLibWeb
Trang 88
f. Điểm mở rộng
Không có
3. Use case “Nhap luan van” (Nhập luận văn)
a. Tóm tắt
Use case này cho phép các thành viên của Khoa có thể nhập thông tin cho
luận văn của mình.
b. Dòng sự kiện
i. Dòng sự kiện chính
Use case này bắt đầu khi một thành viên của Khoa muốn nhập thông tin cho
luận văn của mình.
Nếu luận văn của thành viên Khoa này mới được nhập thông tin lần đầu tiên
thì luồng phụ “Thêm mới thông tin luận văn” sẽ được thực hiện.
Ngược lại luồng phụ “Cập nhật thông tin luận văn” sẽ được thực hiện.
Luồng sự kiện phụ “Thêm mới thông tin luận văn”
1. Hệ thống yêu cầu thành viên Khoa nhập các thông tin cho luận văn
2. Thành viên Khoa nhập thông tin cho luận văn.
3. Thành viên Khoa xác nhận đã nhập thông tin cho luận văn
4. Hệ thống cập nhật thông tin luận văn. Use case kết thúc.
Luồng sự kiện phụ “Cập nhật thông tin luận văn”
1. Hệ thống truy xuất và hiển thị thông tin luận văn
2. Thành viên Khoa cập nhật các thông tin cho luận văn.
3. Thành viên Khoa xác nhận đã cập nhật thông tin cho luận văn
4. Hệ thống cập nhật thông tin luận văn. Use case kết thúc.
ii. Các dòng sự kiện khác
1. Thành viên Khoa nhập thông tin luận văn không hợp lệ
Chương 7 – ITLibWeb
Trang 89
Trong dòng sự kiện chính, nếu thành viên Khoa nhập thông tin luận văn
không hợp lệ (nhập thiếu các trường bắt buộc, nhập sai định dạng…) thì hệ
thống sẽ hiển thị thông báo lỗi. Khi này thành viên Khoa có thể nhập lại hoặc
hủy thao tác nhập thông tin luận văn, Use case kết thúc.
c. Các yêu cầu đặc biệt
Không có
d. Điều kiện tiên quyết
Thành viên Khoa phải đăng nhập vào hệ thống
e. Post-Conditions
Khi thành viên Khoa cập nhật hay thêm mới thông tin luận văn thành công,
thông tin một luận văn sẽ được cập nhật vào hệ thống. Nếu không, trạng thái
hệ thống không thay đổi.
f. Điểm mở rộng
Không có
4. Use case “Xem luan van” (Xem thông tin luận văn)
a. Tóm tắt
Use case này cho phép thành viên Khoa xem thông tin luận văn của mình.
b. Dòng sự kiện
i. Dòng sự kiện chính
Use case này bắt đầu khi thành viên Khoa muốn xem thông tin luận văn của
mình
1. Hệ thống truy xuất và hiển thị thông tin luận văn của thành viên Khoa
này.
2. Use case kết thúc khi thành viên Khoa đóng trang web này lại hoặc
chuyển sang trang web khác.
ii. Các dòng sự kiện khác
Chương 7 – ITLibWeb
Trang 90
1. Thành viên Khoa chưa nhập thông tin cho luận văn
Nếu thành viên Khoa chưa nhập thông tin cho luận văn của mình, hệ thống sẽ
hiển thị một thông báo nhắc nhở. Use case kết thúc.
c. Các yêu cầu đặc biệt
Không có
d. Điều kiện tiên quyết
Thành viên Khoa phải đăng nhập vào hệ thống
e. Post-Conditions
Trạng thái của hệ thống không thay đổi.
f. Điểm mở rộng
Không có
7.2. Phân tích các Use case chính 7.2.1. Use case “Dang nhap” (Đăng nhập)
7.2.1.1. Lược đồ tuần tự
Dòng sự kiện chính
Chương 7 – ITLibWeb
Trang 91
Hình 7.2 – “Đăng nhập” : dòng sự kiện chính
Dòng sự kiện khác : tên thành viên hay mật khẩu không hợp lệ
Chương 7 – ITLibWeb
Trang 92
Hình 7.3 - “Đăng nhập” : dòng sự kiện khác
7.2.1.2. Lược đồ cộng tác
Dòng sự kiện chính
Hình 7.4 - “Đăng nhập” : dòng sự kiện chính
Dòng sự kiện khác : tên thành viên hay mật khẩu không hợp lệ
Chương 7 – ITLibWeb
Trang 93
Hình 7.5 - “Đăng nhập” : dòng sự kiện khác
7.2.1.3. VOPC
Hình 7.6 - “Đăng nhập” : VOPC
Chương 7 – ITLibWeb
Trang 94
7.2.2. Use case “Nhap luan van” (Nhập luận văn)
7.2.2.1. Lược đồ tuần tự
Luồng phụ “Thêm thông tin luận văn”
Hình 7.7 – Thêm thông tin luận văn
Luồng phụ “Cập nhật thông tin luận văn”
Chương 7 – ITLibWeb
Trang 95
Hình 7.8 - Cập nhật thông tin luận văn
Dòng sự kiện khác : thông tin nhập luận văn không hợp lệ
Chương 7 – ITLibWeb
Trang 96
Hình 7.9 - Thông tin nhập không hợp lệ
Dòng sự kiện khác : thông tin cập nhật luận văn không hợp lệ
Chương 7 – ITLibWeb
Trang 97
Hình 7.10 - thông tin cập nhật không hợp lệ
7.2.2.2. Lược đồ cộng tác
Luồng phụ “Thêm thông tin luận văn”
Chương 7 – ITLibWeb
Trang 98
Hình 7.11 - Thêm thông tin luận văn
Luồng phụ “Cập nhật thông tin luận văn”
Hình 7.12 - Cập nhật thông tin luận văn
Dòng sự kiện khác : thông tin luận văn nhập không hợp lệ
Hình 7.13 - Thông tin nhập không hợp lệ
Dòng sự kiện khác : thông tin luận văn cập nhật không hợp lệ
Chương 7 – ITLibWeb
Trang 99
Hình 7.14 - Thông tin cập nhật không hợp lệ
7.2.2.3. VOPC
Hình 7.15 - “Nhập luận văn” : VOPC
Chương 7 – ITLibWeb
Trang 100
7.2.3. Use case “Tra cuu” (Tra cứu)
7.2.3.1. Lược đồ tuần tự
Dòng sự kiện chính
Hình 7.16 - “Tra cứu” : dòng sự kiện chính
Dòng sự kiện khác : không kết nối với hệ thống Greenstone được
Hình 7.17 - “Tra cứu” : dòng sự kiện khác
7.2.3.2. Lược đồ cộng tác
Dòng sự kiện chính
Chương 7 – ITLibWeb
Trang 101
Hình 7.18 - “Tra cứu” : dòng sự kiện chính
Dòng sự kiện khác : không kết nối với hệ thống Greenstone được
Hình 7.19 - “Tra cứu” : dòng sự kiện khác
Chương 7 – ITLibWeb
Trang 102
7.2.3.3. VOPC
Hình 7.20 - “Tra cuu” : VOPC
7.2.4. Use case “Xem luan van” (Xem thông tin luận văn)
7.2.4.1. Lược đồ tuần tự
Dòng sự kiện chính
Hình 7.21 - “Xem luận văn” : dòng sự kiện chính
Dòng sự kiện khác : luận văn cần xem chưa nhập thông tin
Chương 7 – ITLibWeb
Trang 103
Hình 7.22 - “Xem luận văn” : dòng sự kiện khác
7.2.4.2. Lược đồ cộng tác
Dòng sự kiện chính
Hình 7.23 - “Xem luận văn” : dòng sự kiện chính
Dòng sự kiện khác : luận văn cần xem chưa nhập thông tin
Chương 7 – ITLibWeb
Trang 104
Hình 7.24 - “Xem luận văn” : dòng sự kiện khác
7.2.4.3. VOPC
Hình 7.25 - “Xem luận văn” : VOPC
Chương 7 – ITLibWeb
Trang 105
7.3. Thiết kế 7.3.1. Lược đồ lớp tổng quát của hệ thống
Chương 7 – ITLibWeb
Trang 106
Hình 7.26 - Lược đồ lớp của hệ thống
Chương 7 – ITLibWeb
Trang 107
7.3.2. Chi tiết một số lớp chính
7.3.2.1. Lớp đối tượng dùng chung
7.3.2.1.1. Lớp ThesisInfo
ThesisInfo
sThesisCode : StringsTitle_VI : StringsTitle_FL : StringsLang : StringnPage : IntegernCopy : IntegersAuthor1 : StringsAuthor2 : StringdtAccept : DatedtRegister : DatedtPresent : DatesDiploma : StringsHe : StringsSpeciality : StringsPlace : StringsField : StringsSummary : StringsAlgorithm : String
(f rom Class)
Hình 7.27 - Lớp ThesisInfo
7.3.2.1.2. Lớp UserInfo
UserInfo
sUserName : StringsPassword : StringsFullName : StringsEmail : StringnPower : Integer
(f rom Class)
Hình 7.28 - Lớp UserInfo
7.3.2.2. Lớp boundary
7.3.2.2.1. Lớp InputThesisInfo
Chương 7 – ITLibWeb
Trang 108
InputThesisInfo
theThesisController : ThesisController
//Display()//InputThesisInfo()//Update()//CheckInputInfo()//UpdateThesisInfo()//DisplayInfo()//DisplayError()
(f rom Class)
Hình 7.29 - Lớp InputThesisInfo
7.3.2.2.2. Lớp Login
Login
theUserController : UserController
//Display()//OK()//EnterUserName(UserName : String)//EnterPassword(Password : String)
(f rom Class)
Hình 7.30 - Lớp Login
7.3.2.3. Lớp control
7.3.2.3.1. Lớp ThesisController ThesisController
theThesisEntity : ThesisEnti ty
//AddNew(thesisInfo : ThesisInfo) : Boolean//GetThesisInfo(id : String) : ThesisInfo//UpdateThesisInfo(id : String, thesisInfo : ThesisInfo) : Boolean
(from Class)
Hình 7.31 - Lớp ThesisController
7.3.2.3.2. Lớp UserController
Chương 7 – ITLibWeb
Trang 109
UserController
userInfo : UserInfotheUserEntity : UserEntity
//CheckValidUser(sUserName : String, sPassword : String) : UserInfo//Compare(sUserName : String, sPassword : String)//Logout(sUserName : String)//GetUserInfo(sUserName : String) : UserInfo//ChangePassword(sPassword : String, sUserName : String) : Boolean
(f rom Class)
Hình 7.32 - Lớp UserController
7.3.2.4. Lớp entity
7.3.2.4.1. Lớp ThesisEntity ThesisEntity
//AddNew(thesisInfo : ThesisInfo) : Boolean//GetThesisInfo(id : String) : ThesisInfo//UpdateThesisInfo(id : String, thesisInfo : ThesisInfo) : Boolean
(f rom Class)
Hình 7.33 - Lớp ThesisEntity
7.3.2.4.2. Lớp UserEntity UserEntity
//GetUserInfo(sUserName : String, sPassword : String) : UserInfo//GetUserInfo(sUserName : String) : UserInfo//ChangePassword(sUserName : String, sPassword : String) : Boolean
(f rom Class)
Hình 7.34 - Lớp UserEntity
Chương 7 – ITLibWeb
Trang 110
7.3.3. Thiết kế dữ liệu
7.3.3.1. Mô hình dữ liệu
Hình 7.35 – Mô hình dữ liệu
7.3.3.2. Danh sách các bảng dữ liệu
STT Tên bảng Ý nghĩa 1 Luanvan Thông tin Luận văn 2 He Hệ đào tạo 3 HuongDan Quan hệ hướng dẫn 4 HocVi Học vị tốt nghiệp (Cử nhân, Thạc sỹ, Tiến sỹ) 5 NgonNgu Ngôn ngữ của tài liệu 6 NguoiDung Người dùng 7 GiaoVienHD Giáo viên hướng dẫn 8 ChuyenNganh Chuyên ngành
Bảng 7.3 - Danh sách bảng dữ liệu
Chương 7 – ITLibWeb
Trang 111
7.3.4. Thiết kế giao diện một số trang web chính
Trang chủ
Hình 7.36 – Trang chủ
Trang chức năng của thành viên
Hình 7.37 - Trang chức năng của thành viên
Trang nhập thông tin luận văn
Chương 7 – ITLibWeb
Trang 112
Hình 7.38 - Trang nhập thông tin luận văn
Trang xem thông tin luận văn
Hình 7.39 - Trang xem thông tin luận văn
Chương 7 – ITLibWeb
Trang 113
Trang tra cứu tài liệu
Hình 7.40 - Trang tra cứu tài liệu
7.4. Cài đặt 7.4.1. Công cụ và môi trường phát triển hệ thống
Hệ thống ITLib được xây dựng trên các công cụ và môi trường sau:
- Công cụ phân tích và thiết kế: Rational Rose 2001
- Môi trường cài đặt ứng dụng : Microsoft Windows XP Professional
- Môi trường lập trình: Microsoft Visual Studio .NET Enterprise Developer
Edition
- Hệ quản trị cơ sở dữ liệu: Access 2003
- Greenstone
Chương 7 – ITLibWeb
Trang 114
7.4.2. Mô hình cài đặt
7.4.2.1. Mô hình
Hình 7.1 - Mô hình cài đặt
7.4.2.2. Diễn giải
7.4.2.2.1. ITLibWeb Presentation Layer
Bao gồm các trang web
7.4.2.2.2. ITLibWeb Business Layer
Bao gồm các lớp đối tượng thực hiện các chức năng nghiệp vụ
7.4.2.2.3. ITLib Database Layer
Bao gồm các lớp chức năng giao tiếp với cơ sở dữ liệu Access
7.4.2.2.4. Greenstone
Bao gồm các trang web của Greenstone có giao diện được hiệu chỉnh
7.4.2.2.5. .NET Framework
Nền chạy ứng dụng.
7.4.2.2.6. Basic Date Picker
Thành tố hỗ trợ control DateTimePicker trên web
Chương 8 – ITLib
Trang 115
CHƯƠNG 8. ITLib
Xác định yêu cầu
Phân tích
Thiết kế
Cài đặt
Chương 8 – ITLib
Trang 116
8.1. Xác định yêu cầu 8.1.1. Giới thiệu
ITLib viết trên giao diện Windows Form dùng hệ quản trị cơ sở dữ liệu
Access và Sql Server. ITLib cho phép :
- Thủ thư :
Chuẩn hóa tài liệu
Xây dựng bộ sưu tập luận văn
Xây dựng bộ sưu tập sách
Xây dựng bộ sưu tập tổng quát
Đăng nhập
Đăng xuất
Thay đổi mật khẩu
Tạo các file macro hỗ trợ web
- Quản trị viên :
Quản lý tài khoản người dùng
Tùy biến cấu hình phần mềm
Dùng các chức năng của thủ thư
8.1.2. Bảng chú giải
8.1.2.1. Bộ sưu tập
Tập hợp các tài liệu
8.1.2.2. Thủ thư
Thủ thư có thể là cán bộ giảng dạy, công tác trong Khoa nhận nhiệm vụ quản
lý hệ thống thư viện điện tử.
Chương 8 – ITLib
Trang 117
8.1.2.3. Quản trị hệ thống
Người dùng có quyền hạn cao nhất trong hệ thống
8.1.2.4. ITLibWeb
Website thư viện điện tử của Khoa CNTT
8.1.3. Đặc tả bổ sung
8.1.3.1. Phạm vi
Đặc tả bổ sung định nghĩa các yêu cầu của Hệ thống ITLib, liệt kê các yêu
cầu chưa được thể hiện trong các Use case. Đặc tả bổ sung cùng các Use case trong
mô hình Use case thể hiện đầy đủ các yêu cầu của hệ thống.
Đặc tả này vạch rõ các yêu cầu phi chức năng của hệ thống, như là tính ổn
định, tính khả dụng, hiệu năng, và tính hỗ trợ cũng như các yêu cầu chức năng
chung cho một số Use case. (Các yêu cầu chức năng được chỉ rõ trong phần Đặc tả
Use case).
8.1.3.2. Tài liệu tham khảo
Không có.
8.1.3.3. Chức năng
Cho phép thủ thư làm việc nhiều phiên mà thông tin không bị mất (hay là
quá trình tạo bộ sưu tập được lưu tại những điểm cần thiết)
8.1.3.4. Tính khả dụng
Giao diện thân thiện, dễ sử dụng, trên hệ điều hành Windows XP, Windows
2000, 9x…
8.1.3.5. Tính ổn định
Hệ thống phải chạy ổn định, nhất là khi tạo bộ sưu tập có kích thước lớn
(hàng trăm MB dữ liệu).
Chương 8 – ITLib
Trang 118
8.1.3.6. Hiệu suất
Hệ thống phải cho phép truy xuất đến CSDL nhanh, dò tìm những chỗ bất
đồng nhất giữa bộ sưu tập và CSDL.
8.1.3.7. Sự hỗ trợ
Không có.
8.1.3.8. Tính bảo mật
Chỉ có thủ thư và quản trị hệ thống mới có quyền truy xuất, hiệu chỉnh các
bộ sưu tập.
8.1.3.9. Các ràng buộc thiết kế
Hệ thống phải tương thích với những hệ thống đã có về mặt CSDL.
Hệ thống phải cung cấp giao diện dựa trên Windows.
8.1.4. Mô hình Use Case
8.1.4.1. Lược đồ chính của mô hình Use case
Hình 8.1 - Lược đồ Use case
Chương 8 – ITLib
Trang 119
8.1.4.2. Danh sách Actor
STT Actor Ý nghĩa 1 Quan tri he thong Người quản trị hệ thống, toàn quyền sử dụng 2 Thu thu Thủ thư, đối tượng sử dụng chính của hệ thống 3 ITLibWeb Website thư viện điện tử Khoa
Bảng 8.1 – Danh sách Actor
8.1.4.3. Danh sách Use case
STT Use case Ý nghĩa 1 Chuan hoa tài liệu Chuẩn hoá tài liệu 2 Dang nhap Đăng nhập hệ thống 3 QL BST Sach Quản lý bộ sưu tập Sách 5 QL BST Luan van Quản lý bộ sưu tập Luận văn 6 QL BST Tong quat Quản lý bộ sưu tập Tổng quát, nói chung 7 Tuy bien Tuỳ biến hệ thống 8 Quan ly nguoi dung Quản lý thông tin người dùng trong hệ thống
Bảng 8.2 - Danh sách Use case
8.1.4.4. Đặc tả các Use case chính
1. Use case “Chuẩn hoá Tài liệu”
a. Tóm tắt
Use case này mô tả hành động chuẩn hoá tài liệu theo định dạng của hệ
thống.
b. Dòng sự kiện
i. Dòng sự kiện chính
Use case này bắt đầu khi một thủ thư chọn chức năng Chuẩn hoá Tài liệu.
1. Hệ thống yêu cầu thủ thư chọn tập tin (PDF, DOC, HTML).
2. Thủ thư cung cấp đường dẫn tới tập tin đó (browsing).
3. Hệ thống kiểm tra loại tập tin đó. Nếu tập tin có dạng:
- PDF: hệ thống gọi chương trình bên ngoài để chuyển tập tin nguồn
từ dạng PDF sang dạng HTML
Chương 8 – ITLib
Trang 120
- DOC: hệ thống gọi chương trình bên ngoài để chuyển tập tin nguồn
từ dạng DOC sang dạng HTML
- HTML: sao chép tập tin nguồn vào thư mục xử lý.
4. Hệ thống cho thủ thư chọn nơi lưu kết quả chuyển đổi
5. Hệ thống yêu cầu thủ thư cung cấp phần mục lục (chỉ cần copy và
paste vào cửa sổ cho phép)
6. Thủ thư yêu cầu phân tích mục lục.
7. Hệ thống kiểm tra mục lục hợp lệ và phân tích mục lục.
8. Thủ thư yêu cầu chèn thẻ section
9. Hệ thống yêu cầu xác nhận hành động chèn thẻ
10. Hệ thống chèn thẻ dưới sự kiểm soát của người dùng.
11. Hệ thống thông báo chèn thẻ xong
12. Hệ thống yêu cầu xác nhận lưu kết quả
ii. Các dòng sự kiện khác
1. Tập tin không đúng định dạng
Nếu trong Dòng sự kiện chính, thủ thư chọn dạng tập tin khác với
PDF, DOC hoặc HTML thì thông báo lỗi sai định dạng. Thủ thư phải
chọn lại tập tin khác hoặc kết thúc chương trình. Use case kết thúc
2. Không chuyển đổi được sang dạng HTML
Có thể là tập tin được chọn không đúng đắn hoặc không tìm thấy trình
chuyển đổi. Thủ thư phải chọn lại tập tin khác hoặc kết thúc chương
trình. Use case kết thúc.
3. Thủ thư không cung cấp mục lục đúng
Trường hợp này xảy ra khi thủ thư đưa vào mục lục sai quy cách, ví
dụ như không có dòng nào, hoặc dòng mục lục không có số trang,
Chương 8 – ITLib
Trang 121
không có dấu dẫn trang… Thủ thư phải thực hiện lại hoặc kết thúc
chương trình. Use case kết thúc.
4. Hành động chèn thẻ bị huỷ bỏ giữa chừng
Thủ thư huỷ bỏ hành động chèn thẻ. Use case kết thúc.
c. Yêu cầu đặc biệt
Không có. d. Điều kiện tiên quyết
Thủ thư phải đăng nhập vào hệ thống use case này mới được thực hiện
e. Post-Conditions
Nếu use case thành công, tập tin kết quả dạng file HTML đã được chèn thẻ
section. Nếu không, trạng thái hệ thống không đổi
f. Điểm mở rộng
Không có.
2. Use case “QL BST Luận văn”
a. Tóm tắt
Use case này cho phép thủ thư có thể quản lý bộ sưu tập Luận văn.
b. Dòng sự kiện
i. Dòng sự kiện chính
Use case này bắt đầu khi thủ thư chọn chức năng “Quản lý bộ sưu tập
luận văn”
1. Hệ thống yêu cầu thủ thư chọn một trong các chức năng sau: Tạo mới
bộ sưu tập, mở bộ sưu tập, xóa bộ sưu tập
2. Nếu thủ thư chọn:
Tạo mới một bộ sưu tập : luồng phụ “Tạo mới bộ sưu tập”
được thực hiện.
Chương 8 – ITLib
Trang 122
Mở bộ sưu tập : luồng phụ “Mở bộ sưu tập” được thực hiện.
Xoá bộ sưu tập: luồng phụ “Xóa bộ sưu tập” được thực hiện.
o Luồng phụ “Tạo mới bộ sưu tập”
1. Hệ thống yêu cầu thủ thư nhập tên, tiêu đề và mô tả ngắn gọn
về bộ sưu tập.
2. Thủ thư nhập tên, tiêu đề, mô tả cho bộ sưu tập
3. Hệ thống kiểm tra thông tin vừa nhập có hợp lệ không
4. Hệ thống tiến hành tạo mới bộ sưu tập, với những thông tin cơ
bản và cấu hình mặc định
5. Hệ thống yêu cầu thủ thư chọn các file luận văn đã chuẩn hóa
6. Thủ thư chọn các tập tin luận văn đã chuẩn hóa
7. Hệ thống kiểm tra cấu trúc hợp lệ của một luận văn. Cấu trúc
luận văn bao gồm: tập tin luận văn đã xử lý mục lục, tập tin
nguồn(doc hoặc pdf hoặc html). Hệ thống phân loại: tập tin luận
văn chuẩn hóa được đưa vào thư mục import\<mã luận văn>,
tập tin nguồn được đưa vào thư mục source\<mã luận văn>.
8. Hệ thống truy xuất và hiển thị danh sách các luận văn, với mỗi
luận văn hệ thống sẽ truy xuất thông tin luận văn từ bộ nhớ phụ
9. Thủ thư hiệu chỉnh thông tin các luận văn
10. Thủ thư cấu hình thông tin cho bộ sưu tập
11. Thủ thư xác nhận quá trình xây dựng bộ sưu tập .
12. Hệ thống xây dựng bộ sưu tập, cập nhật thông tin các luận văn
vào bộ nhớ phụ. Use case kết thúc.
o Luồng phụ “Mở bộ sưu tập”
1. Hệ thống truy xuất và hiển thị danh sách các bộ sưu tập đã xây
dựng
Chương 8 – ITLib
Trang 123
2. Thủ thư chọn bộ sưu tập cần mở .
3. Hệ thống truy xuất và hiển thị thông tin của bộ sưu tập.
4. Thủ thư hiệu chỉnh thông tin bộ sưu tập
5. Thủ thư xác nhận xây dựng lại bộ sưu tập
6. Hệ thống xây dựng bộ sưu tập, cập nhật thông tin các luận văn
vào bộ nhớ phụ. Use case kết thúc.
o Luồng phụ “Xóa bộ sưu tập”
1. Hệ thống truy xuất và hiển thị danh sách các bộ sưu tập cần xóa.
2. Thủ thư chọn bộ sưu tập cần xoá
3. Hệ thống cảnh báo việc xóa bộ sưu tập
4. Thủ thư chấp nhận xóa
5. Hệ thống xoá bộ sưu tập. Use case kết thúc.
ii. Các dòng sự kiện khác
1. Luận văn không có trong CSDL do ITLibWeb cung cấp
Trong luồng phụ “Tạo mới bộ sưu tập” , nếu một luận văn không có
trong CSDL do ITLibWeb cung cấp, thủ thư sẽ điền thông tin mới cho
luận văn và trở lại bước 10 của luồng phụ “Tạo mới bộ sưu tập”.
2. Thông tin tạo lập bộ sưu tập không hợp lệ (tên bộ sưu tập có dấu tiếng
Việt, hoặc không có thông tin mô tả bộ sưu tập, hoặc đã tồn tại bộ sưu
tập cùng tên…)
Trong luồng phụ “Tạo mới bộ sưu tập”, nếu thông tin tạo lập bộ sưu
tập không hợp lệ thì hệ thống sẽ hiển thị thông báo lỗi. Khi này Use
case kết thúc.
3. Không tìm thấy chương trình thực thi hành động tạo mới/xây dựng bộ
sưu tập.
Chương 8 – ITLib
Trang 124
Trong dòng sự kiện chính, nếu các chương trình hỗ trợ xây dựng bộ
sưu tập không hoạt động thì hệ thống sẽ hiển thị thông báo lỗi. Use
case kết thúc
c. Yêu cầu đặc biệt
Không có. d. Điều kiện tiên quyết
Thủ thư phải đăng nhập vào hệ thống để thực hiện chức năng này e. Post-Conditions
Bộ sưu tập luận văn được tạo nếu Use case thành công. Nếu không, trạng
thái hệ thống không thay đổi.
f. Điểm mở rộng
Không có
3. Use case “QL BST Tổng quát”
a. Tóm tắt
Use case này cho phép thủ thư quản lý bộ sưu tập tổng quát, nghĩa là quản
lý bộ sưu tập chứa bất cứ một dạng tài liệu nào.
b. Dòng sự kiện
i. Dòng sự kiện chính Use case này bắt đầu khi thủ thư chọn chức năng “Quản lý bộ sưu tập
tổng quát ”
1. Hệ thống yêu cầu thủ thư chọn một trong các chức năng sau: Tạo mới
bộ sưu tập, mở bộ sưu tập, xóa bộ sưu tập
2. Nếu thủ thư chọn:
Tạo mới một bộ sưu tập : luồng phụ “Tạo mới bộ sưu tập”
được thực hiện.
Mở bộ sưu tập : luồng phụ “Mở bộ sưu tập” được thực hiện.
Chương 8 – ITLib
Trang 125
Xoá bộ sưu tập: luồng phụ “Xóa bộ sưu tập” được thực hiện.
o Luồng phụ “Tạo mới bộ sưu tập”
1. Hệ thống yêu cầu thủ thư chọn các chuẩn để biên mục cho bộ
sưu tập.
2. Thủ thư chọn các chuẩn biên mục.
3. Hệ thống yêu cầu thủ thư nhập tên, tiêu đề và mô tả ngắn gọn
về bộ sưu tập.
4. Thủ thư nhập tên, tiêu đề, mô tả cho bộ sưu tập
5. Hệ thống kiểm tra thông tin vừa nhập có hợp lệ không
6. Hệ thống tiến hành tạo mới bộ sưu tập, với những thông tin cơ
bản và cấu hình mặc định
7. Hệ thống yêu cầu thủ thư chọn các các tài liệu cần đưa vào bộ
sưu tập
8. Thủ thư chọn các tài liệu .
9. Với mỗi tài liệu trong bộ sưu tập, thủ thư biên mục cho các tài
liệu trong bộ sưu tập này
10. Thủ thư cấu hình thông tin cho bộ sưu tập
11. Thủ thư xác nhận quá trình xây dựng bộ sưu tập .
12. Hệ thống xây dựng bộ sưu tập. Use case kết thúc.
o Luồng phụ “Mở bộ sưu tập”
1. Hệ thống truy xuất và hiển thị danh sách các bộ sưu tập đã xây
dựng
2. Thủ thư chọn bộ sưu tập cần mở .
3. Hệ thống truy xuất và hiển thị thông tin của bộ sưu tập.
4. Thủ thư hiệu chỉnh thông tin bộ sưu tập
Chương 8 – ITLib
Trang 126
5. Thủ thư xác nhận xây dựng lại bộ sưu tập
6. Hệ thống xây dựng bộ sưu tập. Use case kết thúc.
o Luồng phụ “Xóa bộ sưu tập”
1. Hệ thống truy xuất và hiển thị danh sách các bộ sưu tập cần xóa.
2. Thủ thư chọn bộ sưu tập cần xoá
3. Hệ thống cảnh báo việc xóa bộ sưu tập
4. Thủ thư chấp nhận xóa
5. Hệ thống xoá bộ sưu tập. Use case kết thúc.
ii. Các dòng sự kiện khác 1. Thông tin tạo lập bộ sưu tập không hợp lệ (tên bộ sưu tập có dấu tiếng
Việt, hoặc không có thông tin mô tả bộ sưu tập, hoặc đã tồn tại bộ sưu
tập cùng tên…)
Trong luồng phụ “Tạo mới bộ sưu tập”, nếu thông tin tạo lập bộ sưu
tập không hợp lệ thì hệ thống sẽ hiển thị thông báo lỗi. Khi này Use
case kết thúc.
2. Không tìm thấy chương trình thực thi hành động tạo mới/xây dựng bộ
sưu tập.
Trong dòng sự kiện chính, nếu các chương trình hỗ trợ xây dựng bộ
sưu tập không hoạt động thì hệ thống sẽ hiển thị thông báo lỗi. Use
case kết thúc
c. Yêu cầu đặc biệt
Không có. d. Điều kiện tiên quyết
Thủ thư phải đăng nhập vào hệ thống để thực hiện chức năng này e. Post-Conditions
Bộ sưu tập tổng quát được tạo nếu Use case thành công. Nếu không, trạng
thái hệ thống không thay đổi.
Chương 8 – ITLib
Trang 127
f. Điểm mở rộng
Không có
8.2. Phân tích các Use case chính 8.2.1. Use case “Chuan hoa Tai lieu”
8.2.1.1. Lược đồ tuần tự
Dòng sự kiện chính
Hình 8.2 - “Chuẩn hóa tài liệu” : dòng sự kiện chính
8.2.1.2. Lược đồ cộng tác
Chương 8 – ITLib
Trang 128
Dòng sự kiện chính
Hình 8.3 - “Chuẩn hóa Tài liệu” : dòng sự kiện chính
8.2.1.3. VOPC
Hình 8.4 - “Chuẩn hóa Tài liệu” : VOPC
Chương 8 – ITLib
Trang 129
8.2.2. Use case “QL BST Luan van”
8.2.2.1. Lược đồ tuần tự
Luồng phụ “Tạo mới bộ sưu tập”
Hình 8.5 - Luồng phụ “Tạo mới bộ sưu tập”
Chương 8 – ITLib
Trang 130
Luồng phụ “Mở bộ sưu tập”
Hình 8.6 - Luồng phụ “Mở bộ sưu tập”
Chương 8 – ITLib
Trang 131
Luồng phụ “Xoá bộ sưu tập”
Hình 8.7 - Luồng phụ “Xoá bộ sưu tập”
8.2.2.2. Lược đồ cộng tác
Chương 8 – ITLib
Trang 132
Luồng phụ “Tạo mới bộ sưu tập”
Hình 8.8 - Luồng phụ “Tạo mới bộ sưu tập”
Chương 8 – ITLib
Trang 133
Luồng phụ “Mở bộ sưu tập”
Hình 8.9 - Luồng phụ “Mở bộ sưu tập”
Chương 8 – ITLib
Trang 134
Luồng phụ “Xoá bộ sưu tập”
Hình 8.10 - Luồng phụ “Xoá bộ sưu tập”
Chương 8 – ITLib
Trang 135
8.2.2.3. VOPC
Chương 8 – ITLib
Trang 136
8.3. Thiết kế
Chương 8 – ITLib
Trang 137
8.3.1. Sơ đồ lớp đối tượng của hệ thống
Hình 8.11 - Sơ đồ lớp đối tượng của hệ thống
Chương 8 – ITLib
Trang 138
8.3.2. Chi tiết một số lớp đối tượng
8.3.2.1. Các lớp boundary
Hình 8.12 - Các lớp boundary
Chương 8 – ITLib
Trang 139
8.3.2.2. Các lớp control
Hình 8.13 - Các lớp control
Chương 8 – ITLib
Trang 140
8.3.2.3. Các lớp entity
ThesisEntity
//MakeNewCol()//Import()//BuildCol()//Save()//LoadListThesis()//LoadThesisInfo(ID : String) : DataSet//AddThesis(thesis : ThesisInfo) : Boolean//UpdateThesis(thesis : ThesisInfo) : Boolean
(from AClass)
<<entity>>
GeneralEntity
//GetFileSet(filename : String, compare : String) : String//LoadMetadata(path : String, compare : String) : PairCollection//SaveMetadata(filename : String, content : String) : Boolean
(from AClass)
<<entity>>
CollectionEntity
//GetMetadataset(filename : String) : PairCollection//GetTagControl(filename : String) : HashTable//ReadXMLContent(filename : String) : XMLDocument
(from AClass)
<<entity>>
Hình 8.14 - Các lớp entity
8.3.3. Thiết kế dữ liệu
8.3.3.1. Mô hình dữ liệu
Chương 8 – ITLib
Trang 141
Hình 8.15 - Mô hình dữ liệu
Chương 8 – ITLib
Trang 142
8.3.3.2. Danh sách các bảng dữ liệu
STT Tên bảng Ý nghĩa 1 Luanvan Thông tin Luận văn 2 ChuyenNganh Chuyên ngành 3 HuongDan Quan hệ hướng dẫn 4 HocVi Học vị tốt nghiệp (Cử nhân, Thạc sỹ, Tiến sỹ) 5 NgonNgu Ngôn ngữ của tài liệu 6 DeMuc Đề mục 7 GiaoVienHD Giáo viên hướng dẫn 8 CDLuanvan CD luận văn 9 Sach Sách 10 BoSach Bộ sách 11 Ban Bản sách 12 TacGia Tác giả 13 TG_S Quan hệ tác giả - sách 14 NhaXB Nhà xuất bản 15 DM_TL Danh mục – tài liệu 16 TapChi Tạp chí 17 TapChiKy Tạp chí kỳ 18 LoaiTG Loại Tác giả 19 BaiTapChi Bài tạp chí 20 MuonTra Mượn trả 21 DocGia Độc giả 22 NhomDG Nhóm độc giả 23 TaiLieu Tài liệu 24 NguoiDung Người dùng 25 NhomNguoiDung Nhóm người dùng 26 Quyen Quyền 27 TaiNguyen Tài nguyên 28 QuiDinh Qui định 29 ApDungQD Áp dụng qui định
Bảng 8.3 - Danh sách bảng dữ liệu
8.3.4. Thiết kế giao diện
Một số màn hình :
Chương 8 – ITLib
Trang 143
8.3.4.1. Màn hình Chuẩn hoá Tài liệu
Hình 8.16 - Màn hình chuẩn hoá tài liệu
8.3.4.2. Màn hình thu thập dữ liệu (cho tất cả các bộ sưu tập)
Hình 8.17 - Màn hình thu thập dữ liệu
Chương 8 – ITLib
Trang 144
8.3.4.3. Màn hình quản lý thông tin bộ sưu tập (cho tất cả các bộ sưu tập)
Hình 8.18 - Màn hình quản lý thông tin BST
8.3.4.4. Màn hình tiến hành xây dựng bộ sưu tập (cho tất cả các bộ sưu tập)
Hình 8.19 - Màn hình xây dựng bộ sưu tập
Chương 8 – ITLib
Trang 145
8.3.4.5. Màn hình quản lý thông tin Luận văn
Hình 8.20 - Màn hình quản lý thông tin Luận văn
8.3.4.6. Màn hình quản lý thông tin Sách/Giáo trình
Hình 8.21 - Màn hình quản lý thông tin Sách/Giáo trình
Chương 8 – ITLib
Trang 146
8.3.4.7. Màn hình quản lý thông tin một bộ sưu tập tổng quát
Hình 8.22 - Màn hình quản lý thông tin BST nói chung
8.4. Cài đặt 8.4.1. Công cụ và môi trường phát triển hệ thống
Hệ thống ITLib được xây dựng trên các công cụ và môi trường sau:
- Công cụ phân tích và thiết kế: Rational Rose 2001
- Môi trường cài đặt ứng dụng: Microsoft Windows XP Professional
- Môi trường lập trình: Microsoft Visual Studio .NET Enterprise Developer
Edition
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2000, Access 2003
- Greenstone
Chương 8 – ITLib
Trang 147
- Hệ thống còn được phát triển trên các công cụ hỗ trợ lập trình giao diện
như Janus Systems Controls Syncfusion
8.4.2. Mô hình cài đặt
8.4.2.1. Mô hình
ITLib Presentation Layer
ITLib Database Layer
ITLib Business Layer
.NET Framework
UI Library
Greenstone
Hình 8.23 - Mô hình cài đặt
8.4.2.2. Diễn giải
8.4.2.2.1. ITLib Presentation Layer
Bao gồm các màn hình Windows Form thực hiện chức năng trình bày
dữ liệu và tương tác với người dùng.
8.4.2.2.2. ITLib Business Layer
Bao gồm các lớp đối tượng thực hiện chức năng truy xuất, xử lý, đóng
vai trò giao tiếp giữa lớp Presentation và Database.
8.4.2.2.3. ITLib Database Layer
Các lớp chức năng giao tiếp với CSDL SQL Server, với hệ thống tập
tin của hệ thống.
Chương 8 – ITLib
Trang 148
8.4.2.2.4. Greenstone
Thành phần chủ chốt của hệ thống, thực hiện việc tạo, biên tập các bộ
sưu tập sau khi đã được các thành phần bên trên xử lý.
8.4.2.2.5. .NET Framework
Nền chạy ứng dụng.
8.4.2.2.6. UI Library
Bộ thư viện hỗ trợ lập trình giao diện, bao gồm hai thư viện chính là
Janus System Controls và Synfusion.
Trang 149
PHẦN 3. TỔNG KẾT
Phần cuối cùng của Luận văn này sẽ tổng kết những nghiên cứu về thư viện
số Greenstone và đánh giá về hệ thống phần mềm ứng dụng Greenstone – Thư viện
số Khoa CNTT ITDL. Trong phần này cũng xác định hướng mở rộng, phát triển
Greenstone và ITDL.
Chương 9 – Đánh giá và hướng phát triển
Chương 9 – Đánh giá và Hướng phát triển
Trang 150
CHƯƠNG 9. ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN
9.1. Đánh giá Greenstone là hệ thống thư viện số đơn giản, nhưng không kém phần hiệu
quả trong việc quản lý tài nguyên điện tử. Các thư viện số xây dựng bởi Greenstone
tuân thủ theo các tiêu chuẩn quốc tế chung, giúp cho tiến trình liên kết các thư viện,
vốn đang là xu hướng hiện nay, trở nên dễ dàng hơn. Mặt khác, khả năng tuỳ biến
linh hoạt của Greenstone cho phép mỗi thư viện tạo cho mình những đặc trưng
riêng. Greenstone đã dung hoà được cả hai mặt đối ngược nhau đó. Đặc biệt,
Greenstone hoàn toàn miễn phí và được người dùng trên toàn thế giới sử dụng và
đóng góp cho sự phát triển. Những yếu tố này rất có ý nghĩa với những thư viện hạn
chế về năng lực tài chính như ở Việt Nam. Phiên bản Greenstone 2.6 với mô-đun
kèm theo GLI 2.6 hiện nay còn một số hạn chế trong việc xây dựng bộ sưu tập
nhưng trong tương lai không xa, sẽ dần được khắc phục.
Nhóm nghiên cứu đã thực hiện được những mục tiêu đặt ra ban đầu: tìm hiểu
cấu trúc và cơ chế hoạt động của Greenstone, từ đó, xây dựng ứng dụng Thư viện số
ITDL cho Khoa. Hệ thống ITDL, ngoài việc thực hiện được các chức năng cơ bản
như Greenstone, còn bổ sung thêm các tính năng riêng, xây dựng các bộ sưu tập đặc
thù, giao diện đẹp, dễ sử dụng.
Tuy nhiên, hệ thống ITDL còn hạn chế trong việc chưa cung cấp đầy đủ các
chức năng quản lý thông tin trong cơ sở dữ liệu (nhập thông tin cho các bảng dữ
liệu), thể loại các bộ sưu tập còn ít.
9.2. Hướng phát triển Greenstone là phần mềm mã nguồn mở, khả năng phát triển trong tương lai
là rất lớn.
Trong hệ thống ITDL, mô-đun ITLibWeb cần bổ sung các chức năng khác :
các dịch vụ trực tuyến, diễn đàn, đăng ký thành viên... Mô-đun ITLib có thể mở
rộng xử lý các dạng tài liệu sử dụng trong Khoa như phần mềm, mã nguồn, hay tài
liệu âm thanh, hình ảnh, quản lý thông tin trong cơ sở dữ liệu.
Phụ lục A – Giới thiệu về Search Engine
Trang 151
PHỤ LỤC A. GIỚI THIỆU VỀ SEARCH ENGINE
Tổng quan về Search Engine (bộ máy tìm kiếm) Chúng ta thường nghe nói đến các trang web tìm kiếm như Google, Yahoo!,
MSN… và đồng nhất chúng cùng là những Search Engine (SE). Thực ra, có hai
dạng bộ máy tìm kiếm: Web
Directory và Search
Engine. Dạng thứ nhất,
Web Directory, tiêu biểu là
Yahoo! (www.yahoo.com)
sử dụng các trình soạn thảo
để xếp đặt các website vào
những mục (category) xác
định. Do vậy nó còn được
gọi là "human-based" search
engine. Dạng thứ hai,
Search Engine, sử dụng các phần mềm robot, gọi là “con bọ” (spider hoặc là
crawler) thu thập thông tin từ các trang web trên mạng. Dạng này còn gọi "spider-
based" hoặc "crawler-based" search engine.
Search Engine (SE):
Một SE có ba thành phần cơ bản:
o Các spider, dùng tìm kiếm thu nạp các trang web, sau đó xây dựng danh
sách các từ, ngữ tìm thấy trong các trang đó thành CSDL.
o Bộ phận tạo chỉ mục (index) cho CSDL trên những từ ngữ đó, gọi là các
indexer.
o Bộ phận cho phép người dùng cuối tìm kiếm bằng từ khoá (keyword)
trong CSDL. SE so khớp từ khoá người dùng cung cấp để tìm trang web thoả
mãn những thông tin người dùng yêu cầu. Bộ phận này gọi là query
processor (bộ xử lý truy vấn).
Hình 0.1 - Biểu tượng một số SE
Phụ lục A – Giới thiệu về Search Engine
Trang 152
Khi người dùng yêu cầu tìm kiếm, SE tìm từ khoá người dùng cung cấp theo
chỉ mục trong CSDL. Thường hệ thống chỉ mục này được cập nhật 4-6 tuần một
lần.
Để tìm ra những trang web gần đúng nhất với câu truy vấn, các SE cũng gắn
trọng số cho từng từ, ngữ trong trang web. Có nhiều cách để gán trọng số. Ví dụ
như từ đó càng xuất hiện nhiều lần trong trang web, trọng số của nó càng cao. Cũng
có thể gán trọng số lớn cho những từ xuất hiện ở đầu trang, hoặc xuất hiện ở những
vị trí đặc biệt như tiêu đề, trong phần thẻ meta 4,… Mỗi SE thường có một công
thức tính toán trọng số riêng. Những công thức sử dụng cho mỗi SE hầu như thay
đổi từng ngày để bảo đảm tính an toàn, bảo mật.
Web Directory
Khác với SE, Web Directory sử dụng các trình soạn thảo để tạo danh sách
kết quả tìm kiếm. Khi bạn muốn đưa trang web của mình vào một Directory (thư
mục), nhà quản lý Directory sẽ dùng các trình soạn thảo và xem xét để trang web
của bạn chỗ nào trong thư mục.
Mỗi trang web hiển thị trong một Directory theo nhiều cách, nhưng nói
chung vẫn là chia theo từng mục. Cách tổ chức ta thường thấy là theo dạng cây. Từ
đó, các công cụ tìm kiếm như Yahoo! sẽ tìm trong Directory những trang web liên
quan bằng cách duyệt cây hoặc tìm theo từ khoá.
Hầu hết Web Directory thường nhỏ, do vậy kết quả tìm kiếm thường được bổ
sung thêm bằng những kết quả tìm kiếm sử dụng SE. Khi không tìm thấy thông tin
mong muốn trong Directory, kết quả có thể được hiển thị nhờ sử dụng kết quả tìm
kiếm gần đúng của SE, và ghi trong phần tiêu đề trang kết quả là “Những trang web
tương tự” hoặc gần như vậy.
4 Trong HTML có khái niệm thẻ Meta, đánh dấu những từ, cụm từ có ý nghĩa quan trọng, là keyword khi tìm kiếm
Phụ lục A – Giới thiệu về Search Engine
Trang 153
Biết được cách thức hoạt động của SE, ta sẽ hiểu được cơ chế xử lý bên trong của
Greenstone, qua thành phần nòng cốt của nó – Managing Gigabyte (MG), sẽ được
giới thiệu chi tiết trong phần Phụ lục C.
Phụ lục B – Các thư viện số ở Việt Nam
Trang 154
PHỤ LỤC B. CÁC THƯ VIỆN SỐ Ở VIỆT NAM
Chỉ tính riêng ở Việt Nam năm 1995, cũng đã có hơn 20.000 thư viện các
loại, bao gồm thư viện địa phương (do chính quyền địa phương quản lý), thư viện
giáo dục (của các trường, trung tâm giáo dục), thư viện khoa học công nghệ (của
các trung tâm khoa học công nghệ) v.v…
Hiện nay trên thế giới nói chung và ở Việt Nam nói riêng, nhiều thư viện
điện tử đang được xây dựng và mở rộng. Tính đến thời điểm này, trên thị trường
trong nước có 3 nhà cung cấp các sản phẩm hệ thống thư viện chính: công ty CMC,
công ty Lạc Việt và công ty Tinh Vân.
Công ty trách nhiệm hữu hạn CMC (CMC Co., Ltd)
CMC là công ty chiếm lĩnh thị phần với hệ thống iLib. Thành lập năm 1995,
CMC phát triển phần mềm ở nhiều lĩnh vực khác nhau và phát triển hệ thống thư
viện từ năm 1998. Phiên bản release đầu tiên của iLib vào năm 1999 và hiện đang
được sử dụng trong Thư viện Quốc gia, Thư viện Đại học Bách Khoa Hà Nội, Đại
học Cần Thơ, Đại học Vinh và một số thư viện thuộc các tỉnh khác. Hệ thống iLib
tích họp tất cả các chuẩn mô-đun ILMS (catalogue, OPAC (Online Public Access
Catalog – tra cứu trực tuyến), circulation (lưu thông), acquisitions (thu thập) …).
Hiện nay CMC cũng đang phát triển mô-đun ILL. iLib tuân theo các chuẩn quốc tế
về thư viện như UNIMARC, MARC21, AACR2, ISBD, Z39.50 và ISO 10161. Tuy
nhiên CMC cũng chỉ phát triển trong việc quản lý thư viện truyền thống. Trước sự
phát triển mạnh mẽ của các loại tài nguyên điện tử, và thư viện điện tử, CMC đang
có những bước đi thăm dò vào lĩnh vực này với việc đưa vào hệ thống website đơn
giản, cung cấp dạng forum, tin tức và những liên kết đơn giản.
Công ty Tin học Lạc Việt (LAC VIET Computing Corp)
Lạc Việt là một công ty công ty phần mềm lớn. Năm 2000, Lạc Việt tham
gia vào dự án phát triển Trung tâm Tài nguyên Thông tin Đà Nẵng (Da Nang
Information Resource Centre) và xây dựng lại phần mềm thư viện VeBrary. Trước
đó, VeBrary chỉ là một phần mềm nhỏ, không mang tính chuyên nghiệp cao của
nghiệp vụ quản lý thư viện. Sau dự án này, VeBrary đã có những tính năng nổi bật,
Phụ lục B – Các thư viện số ở Việt Nam
Trang 155
có thể so sánh ngang tầm với sản phẩm iLib CMC, mặc dù đây không phải là sản
phẩm đặc trưng của Lạc Việt. VeBrary gồm những mô-đun như cataloguing, Web
OPAC, Circulation (bao gồm cả kiểm kê), Acquisitions, ILL, VeBook (hỗ trợ sách
điện tử) và Hệ thống Quản lý System Administration. Cũng như iLib, VeBrary hỗ
trợ tương thích Unicode và các chuẩn như UNIMARC, MARC 21, AACR2, ISBD,
Z39.50 và ISO 10161. Giao diện sử dụng bằng Tiếng Việt, Tiếng Anh và một số
ngôn ngữ nước ngoài khác.
Công ty Tin học Tinh Vân (TINH VAN Informatic Technology Co.)
Trong 3 công ty đề cập ở phần này, Tinh Vân là nhà cung cấp nhỏ nhất, và
chủ yếu tập trung vào sản phẩm thư viện duy nhất – Libol. Phần mềm này có nhiều
hạn chế hơn so với iLib của CMC và VeBrary của Lạc Việt. Hạn chế lớn nhất là
không hỗ trợ dịch vụ mạng / LAN. Tính đến thời điểm tìm hiểu, nó đã có trên 13
trang ở Việt Nam, bao gồm Đại học Quốc Gia Hà Nội, Đại học Luật Hà Nội, và Đại
học Kinh tế Quốc Dân Hà Nội. Phiên bản Release hiện tại là Libol 5.0, gồm những
mô-đun như Cataloguing, OPAC, Circulation, Reserve, ILL, Acquisitions,
Administration, và hỗ trợ một phần cho tài liệu điện tử. Cũng như hai sản phẩm kể
trên, Libol hỗ trợ Unicode, và các chuẩn thông thường như UNIMARC, MARC 21,
AACR2, ISBD, Z39.50 và ISO 10161.
Tóm lại, các sản phẩm iLib (CMC), VeBarary (Lạc Việt) và Libol (Tinh
Vân) có nhiều nét tương đồng. Riêng CMC và Lạc Việt, cung cấp hỗ trợ
network/Lan trọn gói.
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 156
PHỤ LỤC C - CÁC THÀNH PHẦN HỖ TRỢ GREENSTONE
1. Managing Gigabyte (MG) 9.2.1. Giới thiệu
Managing Gigabytes (MG) là hệ thống tổ chức dữ liệu dạng tập tin văn bản
(text), hình ảnh (image) và hình ảnh có nguồn gốc từ văn bản (textual image) thành
một cơ sở dữ liệu, cho phép tìm kiếm, truy vấn thông tin chi tiết đến từng từ một
bên trong các tập tin đó. Nó là thành phần cốt lõi, tham gia vào phần lớn các hoạt
động xử lý tài liệu của Greenstone.
MG là phần mềm mã nguồn mở bằng ngôn ngữ lập trình C++, thực thi độc
lập môi trường, chạy được trên nhiều hệ điều hành, (Windows, Unix, …). Ưu điểm
này giúp cho những phần mềm này dễ được áp dụng rộng rãi, phù hợp nhiều đối
tượng sử dụng và những nước nghèo, kém phát triển có thể tiếp cận, ứng dụng.
Phần mềm và tài liệu hướng dẫn sử dụng có sẵn ở trang chủ của Greenstone :
www.greenstone.org.
Sau đây, chúng ta sẽ tìm hiểu về cấu trúc và hoạt động của MG.
9.2.2. Cấu trúc
MG bao gồm nhiều tiến trình kết hợp lại với nhau. Có thể chia hệ thống MG
thành 2 phần:
• Phần xử lý hình ảnh: mgbilevel mgfelics mgtic mgticbuild mgticdump mgticprune mgticstat
• Phần xử lý văn bản a. Nén/giải nén
mg_passes -T1 mg_passes -T2
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 157
mg_compression_dict mg_fast_comp_dict
b. Tạo chỉ mục index mg_passes -N1 mg_passes -N2 mg_perf_hash_build mg_invf_dict mg_invf_rebuild
c. Tính trọng số mg_weights_build
d. Truy vấn mgquery
e. Công cụ hỗ trợ khác mg_invf_dump mg_text_estimate mgdictlist mgstat
9.2.3. Chức năng
Nén văn bản
MG sử dụng phương pháp nén tĩnh Huffman, giúp hệ thống có thể truy xuất
ngẫu nhiên đến các vị trí bất kỳ trong tập tin nén và tiến hành giải nén.
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 158
Sơ đồ hoạt động của tiến trình nén văn bản: Hình – Sơ đồ quá trình nén văn bản Ghi chú : (phần in nghiêng nếu bắt đầu với MG_ là các tiến trình xử lý, nếu có dấu chấm ngăn cách là những tập tin kết xuất)
Văn bản nguồn
Thống kê (mg passes –T1)
Tạo từ điển nén (mg compression dict)
Tập tin thống kê
Từ điển nén (.text.dict)
Kết hợp .text.dict và .text.dict.aux (mg_fast_comp_dict)
Nén văn bản (mg passes –T2)
Từ điển từ mới (.text.dict.aux)
Văn bản đã nén (.text)
Từ điển kết hợp(.text.dict.fast)
: các tiến trình xử lý
: kết quả xử lý hoặc đầu vào một xử lý
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 159
Văn bản nguồn trước tiên được thống kê số lượng xuất hiện của mỗi từ. Sau
đó, MG dùng thuật toán nén Huffman để nén những thông tin này, tạo nên các từ
điển nén, chuẩn bị cho quá trình nén văn bản. Trong quá trình này, từ điển phụ có
thể được tạo ra, chứa những từ mới, những từ có tần suất xuất hiện thấp. Dựa trên 2
từ điển này MG, tạo ra từ điển truy xuất nhanh. Các từ điển này được sử dụng để
phục vụ cho công việc tạo chỉ mục sau đây.
Chỉ mục
MG là một hệ thống tìm kiếm truy vấn toàn văn bản (full text), vị trí từng từ
trong văn bản gốc được ghi nhận. Khi có yêu cầu tìm một từ, MG sẽ liệt kê ra những
tài liệu có chứa từ đó và vị trí chính xác của nó.
Trong MG có khái niệm chỉ mục đảo, là từ điển từ vựng (lexicon dictionary),
liệt kê tất cả những từ khoá tìm kiếm. Từ khoá tìm kiếm là những từ, vốn lấy trong
tài liệu gốc đã được xử lý, thành dạng chữ thường và đưa về dạng từ gốc về mặt ngữ
pháp. Ví dụ các từ compute, computer, computing, computed đều được có dạng gốc
là compute. Mỗi từ trong tài liệu gốc được hiểu và ngầm thay bằng từ khoá tương
ứng. Khi liệt kê, vị trí các từ này (trong tài liệu nào, đoạn văn nào, hay câu nào) đều
được ghi nhận và dùng từ khoá làm đại diện cho tất cả. Việc này làm cho số lượng
từ phải lưu trữ giảm đi nhiều và khi truy vấn, kết quả tìm kiếm cũng được nâng lên,
khả năng đáp ứng được nhu cầu của người dùng cũng cao hơn. Để tiết kiệm, những
từ quá phổ biến và thường xuyên có mặt, gọi là stop-word (ví dụ từ the trong Tiếng
Anh), bị bỏ qua trong việc tạo chỉ mục. Khi tìm cũng không hiển thị những từ đó.
Khi truy vấn với một từ, nó sẽ được chuyển sang dạng từ gốc, chữ thường và
MG sẽ rà trong bảng chỉ mục đảo này để tìm xem có khớp không. Nếu khớp MG sẽ
trả về số thứ tự tài liệu chứa từ này. Khi kết hợp các từ lại để truy vấn với các từ
khoá AND, OR, và NOT, các phép logic cũng thực hiện trên bảng này.
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 160
Sơ đồ hoạt động của quá trình tạo chỉ mục đảo
Hình – Sơ đồ quá trình tạo chỉ mục văn bản Ghi chú :
Văn bản nguồn
Tạo từ điển đảo (mg passes –N1)
Tạo từ điển băm hoàn hảo (mg_compression_dict)
Từ điển mã hóa trước
Từ điển băm hoàn hảo
Tạo từ điển mã hóatrước theo khối (mg_invf_dict)
Tạo tập tin đảo (mg_passes –N2)
Từ đã có chỉ mục
Tập tin đảo (.invf)
Từ điển khối
: các tiến trình xử lý
: kết quả xử lý hoặc đầu vào một xử lý
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 161
(phần in nghiêng nếu bắt đầu với MG_ là các tiến trình xử lý, còn nếu có dấu chấm ngăn cách là những tập tin kết xuất) Truy vấn
Có hai dạng truy vấn chính: truy vấn luận lý (boolean query) và truy vấn
theo thứ hạng (ranked query)
• Truy vấn luận lý (boolean query):
Câu truy vấn gồm nhiều từ khoá sẽ tìm kiếm trong CSDL, kết hợp với nhau
bằng những toán tử luận lý như AND, OR, NOT. Truy vấn luận lý còn cho phép ta
dùng các dấu ngoặc đơn “(“, “)” để đặt thứ tự ưu tiên kết hợp.
Ví dụ, câu truy vấn là “(Thành AND phố AND Hồ AND Chí AND Minh)
OR (Sài AND Gòn)” sẽ tìm những văn bản có từ “Thành phố Hồ Chí Minh” hoặc
“Sài Gòn”
• Truy vấn theo thứ hạng (ranked query)
Truy vấn luận lý như trên là cách truy vấn đơn giản nhất. Tuy nhiên để sử
dụng được nó, người dùng phải biết rõ mình muốn tìm gì, từ khoá đưa vào phải
chính xác. Trong thực tế, không phải lúc nào cũng được như vậy, nên MG còn cho
phép truy vấn thông tin bằng cách đo độ tương đồng giữa văn bản với từ khoá cung
cấp. Một cách tính đơn giản là đếm số từ khoá xuất hiện trong văn bản làm căn cứ
xếp loại.
Ví dụ, cần tìm những văn bản chứa từ “thư viện”. Văn bản nào chứa nhiều
từ “thư viện” hơn sẽ được đưa lên đầu danh sách kết quả. Cách này giúp người dùng
mở rộng khả năng tìm kiếm, và dễ dàng tìm ra văn bản mong muốn. Tuy nhiên hạn
chế ở đây là nếu một văn bản dài thì khả năng chứa nhiều từ khoá sẽ cao hơn so với
một văn bản ngắn. Ngoài ra những từ quá phổ biến như từ “the” trong Tiếng Anh sẽ
ảnh hưởng đến kết quả phân loại nếu như một văn bản ta không mong muốn chứa
nhiều từ này. Bởi vậy cần loại bỏ ra những từ ít quan trọng hoặc quá phổ biến để kết
quả truy vấn chính xác hơn, hoặc là gán cho mỗi từ khoá một độ quan trọng khác
nhau. Trong khi tìm kiếm sẽ ưu tiên những từ khoá có độ quan trọng cao hơn.
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 162
9.2.4. Tóm tắt các quá trình thực hiện trong MG
Chương trình Mục đích Đầu vào (input) Đầu ra (output) mg_passes –T1 Tạo tập tin
thống kê cho việc nén văn bản
Văn bản từ mg_get text.stats
mg_compression_dict Tạo từ điển nén text.stats text.dict mg_passes –T2 Nén văn bản
nguồn Văn bản từ mg_get, text.dict
text.dict.aux, text, text.idx
mg_passes –N1 Tạo từ điển từ gốc cho quy trình đảo
Văn bản từ mg_get invf.dict, invf.chunk, invf.chunk.trans,
mg_perf_hash_build Tạo hàm băm hoàn hảo cho từ điển từ gốc
invf.dict invf.dict.hash
mg_passes –N2 Đảo văn bản nguồn
Văn bản từ mg_get, invf.dict, invf.chunk, invf.chunk.trans, invf.dict.hash
invf.paragraph, invf.idx, weight, invf
mg_fast_comp_dict Tạo một bản khác của từ điển nén, để đọc nhanh hơn
text.dict, text.dict.aux
text.dict.fast
mg_invf_dict Tạo một bản truy xuất đĩa nhanh dựa trên từ điển từ gốc
invf.dict, invf.idx invf.dict.blocked
mg_weights_build Xây dựng tập tin trọng số tài liệu
text.idx, invf.dict, invf.paragraph, invf.idx, invf.weight
text.idx.wgt, weight.approx, weight
mg_invf_rebuild Xây dựng lại tập tin đảo
invf.idx, invf, invf.dict, invf.ORG, invf.idx.ORG
invf.idx, invf, invf.ORG, invf.idx.ORG,
mgquery Truy vấn CSDL
.mgrc (chứa câu truy vấn), text.dict, text, invf.dict.blocked, text.idx.wgt, weight.approx, invf
Kết quả truy vấn
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 163
Quá trình hoạt động của MG từ khi đưa tài liệu nguồn vào đến khi tạo xong CSDL:
H 1 - Quá trình hoạt động của MG
9.2.5. Các loại tập tin kết xuất trong quá trình xử lý của MG
Phần mở rộng Loại tập tin Dạng ngắn Dạng đầy đủ
compression dictionary ".tsd" ".text.stats" compression dictionary ".td" ".text.dict" compression dictionary ".tdf" ".text.dict.fast" auxilary dictionary ".tda" ".text.dict.aux" compressed text ".t" ".text" combined compressed text index and document weight file
".tiw" “text.idx.wgt"
compressed text index file ".ti" ".text.idx" dictionary of stemmed words “.id” “.invf.dict”
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 164
dictionary of stemmed words ".idb" ".invf.dict.blocked" exact document weights file ".w" ".weight" approximate weights file ".wa" ".weight.approx" inverted file ".i" ".invf" inverted file index ".ii" ".invf.idx" inverted file chunk descriptor ".ic" “.invf.chunk" word index translation file ".ict" ".invf.chunk.trans" hashed stemmed dictionary ".idh" ".invf.dict.hash" paragraph descriptior file ".ip" ".invf.paragraph" trace file ".trc" ".trace" compression stats file ".cs" ".compression.stats" casefolded index into the stemmed dictionary
".ib1" ".invf.dict.blocked.1"
stemmed index into the stemmed dictionary
".ib2" ".invf.dict.blocked.2"
casefolded and stemmed index into the stemmed dictionary
“ib3" ".invf.dict.blocked.3"
Một số điểm lưu ý
MG không xây dựng một giao diện người dùng, bởi vậy ta phải thao tác trên
dòng lệnh (command line) để xử lý tài liệu khi làm việc với MG.
MG chỉ làm việc với tập tin thuần văn bản, các tập tin văn bản có mã
Unicode, các file Word, pdf, đều không sử dụng được. Greenstone mở rộng bằng
cách tạo lớp text_t hỗ trợ Unicode.
MG hỗ trợ 3 mức tìm (level): document, section, paragraph
MG nhìn bên ngoài còn rất đơn giản. Tuy nhiên, giá trị của MG không thể
hiện ở đó mà là ở nội dung bên trong – những thuật toán, cách thức mà nó xử lý tài
liệu. Hiệu quả rõ rệt của MG chỉ thể hiện khi được sử dụng trong các ứng dụng như
Greenstone. Và thực sự MG là trái tim của Greenstone.
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 165
2. GNU Database manager (GDBM) 9.2.6. Giới thiệu
GNU Database Manager (GDBM) là thư viện hàm quản lý cơ sở dữ liệu
dùng cho các lập trình viên, không dành cho những người dùng bình thường.
Thư viện hàm GDBM giống với thư viện hàm DBM trên các hệ thống UNIX
GDBM giúp tạo ra các record dưới dạng một cặp key/data , mỗi key là duy
nhất.Các cặp key/data (các record) được lưu trữ trong một file gọi là cơ sở dữ liệu
GDBM.
Đơn vị dữ liệu cơ bản của GDBM là một cấu trúc :
typedef struct { char *dptr; int dsize; } datum;
9.2.7. Danh sách các hàm
GDBM_FILE gdbm_open(name, block_size, flags, mode, fatal_func); Mở hoặc tạo mới cơ sở dữ liệu
void gdbm_close(dbf); Đóng cơ sở dữ liệu
int gdbm_store(dbf, key, content, flag); Thêm hay thay thế các record trong cơ sở dữ liệu
datum gdbm_fetch(dbf, key); Tìm kiếm với khóa được cho trước, trả về thông tin liên quan đến khóa đó
int gdbm_delete(dbf, key); Xóa một record
datum gdbm_firstkey(dbf); Trả về record đầu tiên
datum gdbm_nextkey(dbf, key); Trả về record kế tiếp của record có khóa là key
int gdbm_reorganize(dbf); Thu ngắn kích thước tập tin cơ sở dữ liệu
int gdbm_exists(dbf, key); Kiểm tra tồn tại record có khóa là key
char * gdbm_strerror(errno); Lấy thông tin lỗi từ mã lỗi errno
Phụ lục C – Các thành phần hỗ trợ Greenstone
Trang 166
3. Các mô-đun chuyển đổi định dạng tập tin 9.2.8. PDF sang HTML
Trong những phần mềm chuyển đổi từ dạng tập tin PDF sang HTML, đây là
sản phẩm tốt nhất mà chúng tôi được biết. Tất cả đã được đơn giản hoá, chỉ còn một
tập tin thực thi (pdftohtml.exe), sử dụng trên cơ chế dòng lệnh.
Cú pháp sử dụng như sau: (ver 0.7.1)
pdftohtml [<các tuỳ chọn>] <PDF-file> [<html-file> <xml-file>]
Các tuỳ chọn: -f <int> : trang đầu tiên của tập tin PDF sẽ chuyển đổi -l <int> : trang cuối của tập tin PDF sẽ chuyển đổi -q : không xuất ra các thông báo -h : giúp đỡ (xuất ra các hướng dẫn sử dụng) -help : giống -h -p : đổi liên kết trong file .pdf thành .html -c : tạo tài liệu phức hợp (chỉ có 1 file kết quả) -i : bỏ qua hình ảnh. -noframes : không tạo khung web -stdout : sử dụng trình xuất chuẩn (thường là màn hình) -zoom <fp> : độ phóng to của tài liệu (mặc định là 1.5) -xml : tạo kết xuất cho việc xử lý XML sau đó -hidden : kết xuất che dấu chữ -nomerge : không hợp nhất các đoạn -enc <string> : sử dụng phương pháp encoding văn bản. -v : in phần copyright và thông tin về version -opw <string> : mật khẩu của người sở hữu (để mã hoá file)
Tài liệu tham khảo
Trang 167
TÀI LIỆU THAM KHẢO
[1] David Bainbridge, Dana McKay and Ian H. Witten, Greenstone digital library Developer’s guide, New Zealand Digital Library Project, New Zealand. [2] David Bainbridge, Katherine J. Don, George R. Buchanan, Ian H. Witten Steve Jones, Matt Jones, and Malcolm I. Barr, Dynamic digital library construction and configuration [3] Ian H. Witten, Greenstone: A Comprehensive Open-SourceDigital Library Software System, 2000 [4] Ian H. Witten, David Bainbridge and Stefan J. Boddie, Greenstone: Open-Source Digital Library Software with End-User Collection Building, 2001 [5] Ian H. Witten, Michel Loots, Maria F. Trujillo, David Bainbridge1, The Promise of Digital Libraries in Developing Countries, 2001 [6] Ian H. Witten, Customizing digital library interfaces with Greenstone, 2003 [7] Ian H. Witten, The Greenstone digital library software, 2003 [8] Ian H. Witten, David Bainbridge, Gordon Paynter, Stefan Boddie, The Greenstone Plugin Architecture [9] Ian H. Witten, How to Build a Digital Library using Open-Source Software [10] Ian H. Witten, Power to the people: End-user building of digital library collections
[11] Ian H. Witten, Alistair Moffat, Timothy C.Bell, “Managing Gigabyte –
Compressing and Indexing Document and Images”, Van Nostrand Reinhold, New
York.
[12] Ian H. Witten, Creating and Customizing Digital Library Collections with the
Greenstone Librarian Interface
[13] Lagoze, C. and Payette, S. (2000) “Metadata: Principles, practices and
challenges.” In Moving theory into practice: digital imaging for libraries and
Tài liệu tham khảo
Trang 168
archives, edited by A.R. Kenney and O.Y. Rieger. Research Libraries Group,
Mountain View, CA.
[14] Witten, I.H., McNab, R.J., Boddie, S.J. and Bainbridge, D. (2001) Greenstone: User’s Guide. New Zealand Digital Library Project, New Zealand. [15] Đinh Xuân Phúc & Trần Thị Mộng Linh, Marc và XML, Bản tin liên hiệp thư viện, tháng 11/2002 [16] Đoàn Hồng Nghĩa, Phần mềm nguồn mở Hòn đá xanh và việc phát triển thư viện số, Bản tin Thư viện - Công nghệ Thông tin, 4/2004 [17] ThS. Nguyễn Minh Hiệp, Thế giới thư viện số, Bản tin Thư viện - Công nghệ Thông tin, 4/2004
[18] Nguyễn Phước Tất Đạt, Nguyễn Việt Thành, Luận văn Cử nhân Tin học, “Xây
dựng hệ thống phần mềm hỗ trợ việc đào tạo, huấn luyện từ xa qua mạng
Internet/Intranet”, 2002
[19] Hội thảo " Hệ thống Quản lý Thư viện và các Tiêu chuẩn", Bản Tin Điện Tử -
Câu Lạc Bộ Thư Viện 3/2001, www-lib.hcmuns.edu.vn/clb/bt2001/btdt3_2001.htm
[20] www.greenstone.org [21] www.lacviet.com.vn [22] www.nzdl.org [23] www.ifla.org