Quá trình xây dựng một bộ sưu tập trải qua 3 pha chính tương ứng với 3 chương trình da Greenstone hỗ trợ để xây dựng:
Pha 1: Tạo cấu trúc chung cho bộ sưu tập (tươngứng chương trình mkcol.pl); Pha 2: Chuyển định dạng tài liệu nguồn sang định dạng XML (tương ứng chương trình import.pl);
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 (tương ứng chương trình buildcol.pl).
Các chương trình trên được đặt trong thư mục “Greenstone\bin\script”. Các quá trình xây dựng bộ sưu tập sẽ được cụ thể hóa trong chương 3.
Chƣơng 3. ỨNG DỤNG THỬ NGHIỆM 3.1. Bài toán ứng dụng
3.1.1. Yêu cầu thực tế
Để thực hiện chủ trương ứng dụng công nghệ thông tin trong các cơ quan nhà nước đặc biệt là trong việc xử lý công văn giấy tờ thì nhu cầu tạo lập nội dung số từ các văn bản tài liệu giấy (hay còn gọi là số hóa văn bản) là rất cấp thiết. Đã có nhiều đề tài nghiên cứu việc tạo lập nội dung số, nhưng đều chưa thực sự thành công do gặp phải những vấn đề về công nghệ, bản quyền và các yếu tố khách quan khác.
Hiện nay, có rất nhiều hình thức trong việc tạo lập nội dung số từ các văn bản tài liệu giấy như nhập liệu bằng phương pháp đánh máy, quét tài liệu giấy...
Đặc thù các công văn, giấy tờ trong các cơ quan nhà nước thường có con dấu và bút tích phê của lãnh đạo. Vì vậy, để đảm bảo tính toàn vẹn của văn bản, giấy tờ cũng như tính pháp lý, việc số hóa văn bản bằng công nghệ quét ảnh là lựa chọn tối ưu.
Vấn đề lưu trữ và tìm kiếm cũng là một thách thức lớn đối với các cơ quan, tổ chức nhà nước, cần giảm tối thiểu kho lưu trữ văn bản phát sinh hằng ngày trong nghiệp vụ hành chính, tăng phạm vi sử dụng. Để thực hiện vấn đề đó cần không gian lưu trữ trong bộ nhớ thay vì lưu trữ trong kho và phương pháp tìm kiếm và sử dụng lại văn bản một cách nhanh, chính xác nhất.
Từ yêu cầu thực tế đó đề tài lựa chọn công nghệ quét ảnh để thực hiện việc số hóa các văn bản giấy một các tự động và nhanh chóng. Hơn nữa, đề tài được nghiên cứu dựa trên công nghệ nguồn mở, vì vậy sẽ giải quyết được vấn đề làm chủ công nghệ và vấn đề bản quyền. Đồng thời, đề tài cũng nghiên cứu các cách thức tự động sinh ra các metadata cơ bản để lưu trữ cùng với ảnh quét của văn bản và thực hiện tìm kiếm một cách có hiệu quả.
3.1.2. Bài toán ứng dụng
Trong phạm vi luận văn tôi sử dụng thư viện Dynamic .Net TWAIN thực hiện quét văn bản: thư viện DynamicDotNetTwain.dll được tích hợp trong Visual Studio, sử dụng như một thành phần để lập trình, các tùy chọn về chế độ quét, độ sâu bit, độ phân giải được thiết lập trong quá trình thực hiện quét văn bản.
Sử dụng phần mềm mã nguồn mở GreenStone để xây dựng hệ thống lưu trữ và quản lý văn bản trường Đại học Hải Dương theo chuẩn Dublin Core. Hệ thống này được cấu hình và định dạng để thuận tiện cho việc lưu trữ, tra cứu văn bản một cách thuận tiện nhất. Giao diện web được hiệu chỉnh phù hợp để sử dụng tại trường Đại học Hải Dương.
Để giải bài toán này, tôi sẽ tiến hành các bước sau:
Bước 1: Xây dựng ứng dụng scan văn bản với các thiết lập tùy chọn về độ phân giải, chế độ màu scan, độ sâu bít khi scan.
Bước 2: Lưu văn bản đã scan bằng các định dạng khác nhau do người dùng tùy chọn: BMP, JPG, TIFF, PDF.
Bước 3: Tạo lập chỉ mục cho các văn bản đã scan theo chuẩn Dublin Core bằng công cụ GreenStone.
Bước 4: Tạo các tiêu chí hiển thị văn bản đã được lưu trữ phục vụ việc tìm kiếm văn bản một cách nhanh và chính xác nhất.
3.2. Ứng dụng thử nghiệm
3.2.1. Ứng dụng scan văn bản
Ứng dụng được xây dựng trên nền .NET, sử dụng thư viện Dynamic .Net TWAIN. Các phương thức, thuộc tính sử dụng trong chương trình được mô tả trong phần 1.2.1.2, chương 1.
Các xử lý trong chương trình scan văn bản được nêu trong phụ lục.
Hình 3.1: Chế độ quét 1-bit BW
Hình 3.3: Chế độ quét 24-bit RGB
Scan:
Select: Cho phép người dùng chọn máy scan.
PixelType & Bit Depth: Thiết lập PixelType (BW, Gray, RGB), Bit Depth (1 bit, 8 bit, 24 bit) cho ảnh quét.
Resolution: Thiết lập độ phân giải cho ảnh quét.
Error:
Hiển thị các thông báo lỗi xảy ra trong quá trình quét tài liệu.
Save:
Các định dạng lưu ảnh quét ( BMP, JPEG, PNG, TIFF, PDF).
Riêng định dạng TIFF, PDF có thêm lựa chọn Multi-Page TIFF, Multi-Page PDF tương ứng.
Create Index:
Tạo chỉ mục cho các ảnh quét để phục vụ công tác lưu trữ, tìm kiếm.
Chọn chức năng này sẽ chạy ứng dụng Librarian Interface (GLI) để lưu trữ, tìm kiếm tài liệu đã quét, ứng dụng này được nêu trong phần 3.3.2.
3.2.2. Tạo bộ văn bản lưu trữ với GLI (sau đây gọi chung là bộ sưu tập)
Interface) để tạo bộ sưu tập lưu trữ văn bản.
GLI cung cấp giao diện thực hiện các bước tạo bộ sưu tập. Quá trình thực hiện được mô tả qua các bước sau:
Bước 1: Tạo mới một bộ sưu tập (cụ thể là một thư mục để lưu trữ tất cả các xử lý về bộ sưu tập)
Gõ tên, và mô tả tóm tắt cho bộ sưu tập:
Hình 3.4: Tạo mới bộ sưu tập
Bước 2: Chọn tài liệu cần tạo bộ sưu tập
Chọn tập tin tài liệu ở “Vùng làm việc” kéo thả vào cửa sổ “Sưu tập”:
Bước 3: Biên mục cho từng tài liệu đưa vào theo chuẩn Dublin Core. Chọn flie tương ứng và biên mục theo 15 trường của Dublin Core:
Hình 3.6: Biên mục tài liệu theo chuẩn Dublin Core
Bước 4: Lựa chọn các Plugin
Mỗi định dạng file ta có Plugin tương ứng, ta có thể bổ xung hoặc xóa bớt các plugin nếu cần:
Hình 3.7: Lựa chọn Plugin cho tài liệu
Hình 3.8: Chỉ mục tìm kiếm
Để thêm tiêu chí tìm kiếm chuyển sang bước 6, nếu không chuyển sang bước 7.
Bước 6: Chọn bổ xung tìm kiếm chỉ mục mới
Hình 3.9: Thêm chỉ mục tìm kiếm mới
Bước 7: Bộ phân lớp duyệt xem
Hình 3.10: Tạo nút tìm kiếm mới
Bước 8: Xây dựng bộ sưu tập
Hình 3.11: Xây dựng bộ sưu tập
Bước 9: Một số định dạng
Hình 3.12: Định dạng Email, ảnh hiển thị.
Kết quả của việc tạo bộ sưu tập bao gồm tập hợp các thư mục, mỗi thư mục chứa một file tài liệu, một file XML đặc tả cho file tài liệu đó.
Hình 3.13: Các thư mục chứa file tài liệu và file đặc tả tương ứng (XML) 3.3.3. Một số giao diện trang lưu trữ và tìm kiếm văn bản
Hình 3.15: Tìm kiếm theo các tùy chọn
Hình 3.16: Tìm kiếm theo tên tệp tin
Hình 3.18: Tìm kiếm theo thời gian
3.3. Đánh giá
Sau khi sử dụng công cụ thực nghiệm tôi có một số nhận xét sau:
Với bài toán đặt ra là làm thế nào quản lý được tất cả các loại văn bản phát sinh trong nghiệp vụ hành chính trường Đại học Hải Dương mà vẫn đảm bảo được tính pháp lý và phục vụ tìm kiếm trao đổi thông tin. Phương pháp số hóa văn bản và tạo lập chỉ mục là một giải pháp khá tốt;
Ứng dụng bước đầu cung cấp được các yếu tố giúp nhà quản lý văn bản quét, lưu trữ, tìm kiếm theo một số yếu tố đặc trưng. Tuy nhiên các chức năng còn đơn giản cần hoàn thiện hơn nữa;
Ứng dụng với giao diện Tiếng Việt rất dễ sử dụng;
Với công cụ mã nguồn mở khả năng phát triển ứng dụng cao, người sử dụng dễ dàng nâng cao ứng dụng thông qua các định dạng đặc tả được phát sinh trong quá trình thực hiện;
Ngoài hệ thống văn thư lưu trữ, công cụ GreenStone còn được sử dụng trong các lĩnh vực khác như: thông tin thư viện, quản lý đề tài, đồ án, luận văn,…vv.
Bài toán quản lý văn thư lưu trữ trường Đại học Hải Dương giải quyết được thực trạng đang tồn tại của Nhà trường, giải quyết được vấn đề lưu trữ mà hằng ngày người quản lý phải lưu lại với những cặp giấy tờ, giải quyết được vấn đề mở rộng phạm vi sử dụng văn bản khi văn bản được số hóa và khả năng trao đổi và tìm kiếm rất dễ dàng, đặc biệt vẫn đảm bảo được tính pháp lý của văn bản ban hành.
Bài toán mang ý nghĩa thực tế rất cao, đáp ứng được nhu cầu của người sử dụng, giúp công việc của những người làm việc hành chính được nhanh chóng và gọn nhẹ hơn so với việc xử lý kho dữ liệu khổng lồ ngày một tăng lên rất nhiều.
KẾT LUẬN
Ngày nay với sự phát triển mạnh mẽ của internet mọi lĩnh vực trong cuộc sống được tin học hóa. Việc ứng dụng công nghệ thông tin vào các hoạt động sản xuất, kinh doanh, giải trí mang lại lợi ích đáng kể. Ngành giáo dục đã có sự phát triển vượt bậc, trong đó không thể phủ nhận sự đóng góp không nhỏ của việc nhanh chóng áp dụng công nghệ thông tin để đổi mới phương pháp giáo dục và quản lý.
Trong phạm vi nghiên cứu của luận văn tốt nghiệp này, tôi đã tìm hiểu về ngôn ngữ số hóa văn bản, cách thức tạo lập chỉ mục để lưu trữ, tìm kiếm đảm bảo được tính pháp lý, tính đúng đắn của văn bản được ban hành theo quy định văn bản hành chính nhà nước và ứng dụng của nó. Cụ thể là ứng dụng thực hiện quét, quản lý, tìm kiếm văn bản trường Đại học Hải Dương.
Sau thời gian nghiên cứu và xây dựng đề tài tốt nghiệp, các yêu cầu cơ bản được giải quyết, tuy nhiên cũng không tránh khỏi nhứng hạn chế nhất định. Dưới đây là những kết quả đã đạt được và hướng phát triển của đề tài:
Kết quả đạt được:
Tìm hiểu được về quá trình số hóa dữ liệu: khái niệm số hóa dữ liệu, đưa ra lý do tại sao cần số hóa dữ liệu và quá trình số hóa dữ liệu thể hiện trong nghiệp vụ hành chính của các cơ quan, tổ chức;
Tìm hiểu được về công nghệ số hóa tài liệu TWAIN, SANE: các thuộc tính, phương thức thông dụng, các hàm ngôn ngữ SANE, khung chương trình để áp dụng vào việc xây dựng một ứng dụng quét văn bản;
Tìm hiểu được về thư viện DynamicDotNetTwain: các phương thức, thuộc tính của thư viện và đặc biệt là sự tích hợp được thư viện DynamicDotNetTwain.dll vào Visual Studio để xây dựng mã nguồn cho ứng dụng quét văn bản;
Tìm hiểu được công cụ hữu ích GreenStone liên quan tới việc tạo lập chỉ số theo chuẩn Dublin Core để lưu trữ và tím kiếm văn bản;
Xây dựng ứng dụng nhỏ để scan, tạo lập, lưu trữ và tìm kiếm văn bản áp dụng trong công tác văn thư lưu trữ trường Đại học Hải Dương bằng công cụ GreenStone.
Hướng phát triển của đề tài:
Mở rộng ứng dụng scan văn bản với các thuật toán xử lý ảnh quét như: làm trắng nền, nâng cao độ tương phản giữa chữ và nền, tự động xoay ảnh, tự động cắt bỏ đường viền;
Nhận dạng chữ viết, thực hiện tìm kiếm trong nội dung văn bản để có kết quả tìm kiếm tối ưu nhất;
Nghiên cứu hơn nữa về công cụ GreenStone để xây dựng ứng dụng văn thư lưu trữ hoàn thiện hơn, nhiều tính năng hơn và đưa vào sử dụng tại trường Đại học Hải Dương.
TÀI LIỆU THAM KHẢO Tiếng Việt
1. Bộ Thông tin và Truyền thông (2011), Thông tư Quy định về việc tạo lập, sử dụng và lưu trữ dữ liệu đặc tả trên trang thông tin điện tử hoặc cổng thông tin điện tử của cơ quan nhà nước, Hà Nội.
2. Lã Thị Duyên, Vai trò của công tác lưu trữ trong nền hành chính nhà nước, Cục Văn thư – Lưu trữ Nhà nước, tr.1-4.
3. Chính Phủ (2007), Nghị định 79 về cấp bản sao từ sổ gốc, chứng thực bản sao từ bản chính, chứng thực chữ ký, Hà Nội, tr.4-7.
4. Phạm Minh Quân (2003), Hiểu và sử dụng Dublin Core, Bản tin, Phòng tài nguyên thông tin, Thư viện ĐH Khoa học Tự nhiên, ĐHQG TPHCM, tr.28-30, 32-36.
5. Viện Công nghiệp Phần mềm và Nội dung số Việt Nam – Bộ Thông tin và Truyền thông (2012), Phần mềm và nội dung số, Tạp chí số 3, Hà Nội, tr.32-44. 6. Vũ Thị Thu Trang (2009), Tìm hiểu về phần mềm mã nguồn mở GreenStone,
Đồ án tốt nghiệp, ĐH Dân lập Hải Phòng, tr.22-47.
Tiếng Anh
7. TWAIN Working Group on July 8 (2009), TWAIN Specification Version 2.1.
Website 8. http://www.dynamsoft.com/help/TWAIN/.Net-TWAIN-Scanner/index.htm 9. http://www.greenstone.org 10. http://tailieutonghop.com/free/cac-phuong-phap-lap-chi-muc-tai-lieu-trong-he- tim-kiem-thong-tin_f240-28255.html 11. http://vanthuluutru.dongnai.gov.vn/View.aspx?Id=37 12. http://www.twain.org/ 13. http://www.sane-project.org
PHỤ LỤC: Các xử lý trong chương trình Scan văn bản 1. Mở Data Source Manager
dynamicDotNetTwain.OpenSourceManager();
2. Lấy tất cả các thiết bị máy quét kết nối với máy tính
int lngNum;
dynamicDotNetTwain.OpenSourceManager();
for (lngNum = 0; lngNum <
dynamicDotNetTwain.SourceCount; lngNum++) {
cmbSource.Items.Add(dynamicDotNetTwain.SourceNameItems(Convert.ToInt
16(lngNum))); }
if (lngNum > 0)
cmbSource.SelectedIndex = 0;
3. Lựa chọn máy scan và thực hiện scan với các tùy chọn quét
private void AcquireImage()
{
dynamicDotNetTwain.SelectSourceByIndex(Convert.ToInt16(cm
bSource.SelectedIndex)); dynamicDotNetTwain.OpenSource(); dynamicDotNetTwain.IfDisableSourceAfterAcquire = true; if (optBW.Checked == true) { dynamicDotNetTwain.PixelType = Dynamsoft.DotNet.TWAIN.Enums.TWICapPixelType.TWPT_BW; dynamicDotNetTwain.BitDepth = 1; }
else if (optGray.Checked == true)
{
dynamicDotNetTwain.PixelType =
Dynamsoft.DotNet.TWAIN.Enums.TWICapPixelType.TWPT_GRAY;
dynamicDotNetTwain.BitDepth = 8; }
else { dynamicDotNetTwain.PixelType = Dynamsoft.DotNet.TWAIN.Enums.TWICapPixelType.TWPT_RGB; dynamicDotNetTwain.BitDepth = 24; } if (cmbResolution.SelectedIndex == 0) { dynamicDotNetTwain.Resolution = 100; } else if (cmbResolution.SelectedIndex == 1) { dynamicDotNetTwain.Resolution = 150; } else if (cmbResolution.SelectedIndex == 2) { dynamicDotNetTwain.Resolution = 200; } else { dynamicDotNetTwain.Resolution = 300; } if (dynamicDotNetTwain.Resolution != int.Parse(cmbResolution.Text)) {
string errorstr = "Loi thiet lap do phan giai.";
errorstr += "\r\n";
errorstr += "Do phan giai ban thiet lap nguon khong
cung cap."; errorstr += "\r\n"; txtErrorString.Text = txtErrorString.Text + errorstr; } dynamicDotNetTwain.AcquireImage(); }
4. Lưu các hình ảnh đã quét
private void cmdSave_Click(object sender, EventArgs e)
{ string strFile; if (BMPradio.Checked == true) { dlgFileSave.Filter = "BMP File (*.bmp)|*.bmp"; }
else if (JPEGradio.Checked == true)
{
dlgFileSave.Filter = "JPEG File (*.jpg)|*.jpg";
}
else if (PNGradio.Checked == true)
{
dlgFileSave.Filter = "PNG File (*.png)|*.png";
}
else if (TIFFradio.Checked == true)
{
dlgFileSave.Filter = "TIFF File (*.tif)|*.tif";
}
else if (PDFradio.Checked == true)
{
dlgFileSave.Filter = "PDF File (*.pdf)|*.pdf";
}
dlgFileSave.InitialDirectory =
System.IO.Directory.GetCurrentDirectory();
dlgFileSave.ShowDialog(); strFile = dlgFileSave.FileName; if (BMPradio.Checked == true) { dynamicDotNetTwain.SaveAsBMP(strFile, dynamicDotNetTwain.CurrentImageIndexInBuffer); }
else if (JPEGradio.Checked == true)
dynamicDotNetTwain.SaveAsJPEG(strFile, dynamicDotNetTwain.CurrentImageIndexInBuffer);
}
else if (PNGradio.Checked == true)
{
dynamicDotNetTwain.SaveAsPNG(strFile, dynamicDotNetTwain.CurrentImageIndexInBuffer);
}
else if (TIFFradio.Checked == true)
{ if (MultiTIFF.Checked == true) { dynamicDotNetTwain.SaveAllAsMultiPageTIFF(strFile); } else { dynamicDotNetTwain.SaveAsTIFF(strFile, dynamicDotNetTwain.CurrentImageIndexInBuffer); } }
else if (PDFradio.Checked == true)
{ if (MultiPDF.Checked == true) { dynamicDotNetTwain.SaveAllAsPDF(strFile); } else { dynamicDotNetTwain.SaveAsPDF(strFile, dynamicDotNetTwain.CurrentImageIndexInBuffer); } } }