Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
355,41 KB
Nội dung
Header Page of 126 -1- BỘ DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG PHAN THỊ LỆ THUYỀN NGHIÊN CỨU ỨNG DỤNG MATHML ĐỂ QUẢN LÝ CÁC CÔNG THỨC TOÁN HỌC TRÊN VĂN BẢN Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số : 60.48.01 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng - Năm 2011 Footer Page of 126 Header Page of 126 -2- MỞ ĐẦU Lý chọn ñề tài Hiện nay, có nhiều công cụ cho phép soạn thảo công thức toán học văn Winword, OpenOffice.org Writer, Acrobat, WebEditor,… Mỗi phần mềm soạn thảo văn có chuẩn lưu trữ ñược quản lý khác Điều làm cho người sử dụng gặp nhiều khó khăn chép nội dung công thức toán học ứng dụng thực yêu cầu tìm kiếm công thức toán học ứng dụng soạn thảo Xuất phát từ nhu cầu thực tế ñó, việc nghiên cứu cách thức lưu trữ, soạn thảo, tìm kiếm công thức toán học ñặc biệt nghiên cứu tiêu chuẩn MathML việc quản lý công thức toán học văn có ý nghĩa khoa học thực tiễn cao Để có ñiều kiện nghiên cứu sâu MathML ứng dụng, ñã chọn ñề tài tốt nghiệp “Nghiên cứu ứng dụng MathML ñể quản lý công thức toán học văn bản” Mục tiêu ñề tài Mục tiêu mà ñề tài hướng ñến ứng dụng ngôn ngữ ñánh dấu MathML phần mềm mã nguồn mở ñể soạn thảo, quản lý, tìm kiếm công thức toán học văn chép công thức toán học từ hai phần mềm soạn thảo với hai ngôn ngữ ñánh dấu khác Để ñáp ứng mục tiêu ñã nêu, ñề tài cần giải vấn ñề sau: Nghiên cứu tổng quan tiêu chuẩn lưu trữ, soạn thảo hiển thị công thức toán học văn bản; Nghiên cứu số công cụ hỗ trợ soạn thảo công thức toán học thực trạng tìm kiếm công thức toán học nay; Nghiên cứu phần mềm mã nguồn mở ñể mô ứng dụng soạn Footer Page of 126 Header Page of 126 -3- thảo công thức, lưu trữ hỗ trợ tìm kiếm văn bản; Xây dựng phần mềm thực chức chép công thức toán học từ hai trình soạn thảo Đối tượng nghiên cứu Đối tượng nghiên cứu thực ñề tài công cụ hỗ trợ soạn thảo, tiêu chuẩn lưu trữ, phương pháp hiển thị tìm kiếm công thức toán học Trong ñề tài này, chọn mã nguồn mở Amaya ñể triển khai ứng dụng Phương pháp nghiên cứu Tìm hiểu lý thuyết soạn thảo, lưu trữ tìm kiếm công thức toán học văn Tìm hiểu chuẩn MathML ñể ñặc tả công thức toán học Nghiên cứu số công cụ hỗ trợ soạn thảo công thức toán học Dựa lý thuyết ñã nghiên cứu, tiến hành xây dựng ứng dụng soạn thảo công thức, lưu trữ , hổ trợ tìm kiếm văn chép công thức toán học từ ñịnh dạng khác Ý nghĩa khoa học thực tiễn ñề tài Dựa sở lý thuyết ñã nghiên cứu tiến hành xây dựng môi trường soạn thảo, tìm kiếm chép công thức toán học chuẩn MathML môi trường Web Điều có ý nghĩa thiết thực ñối với việc trao ñổi tài liệu khoa học thời ñại công nghệ thông tin Kết ñề tài góp phần quan trọng việc xử lý công thức toán học hệ thống hỗ trợ dạy học qua mạng Internet, diễn ñàn khoa học,… Footer Page of 126 Header Page of 126 -4- Bố cục luận văn Báo cáo luận văn ñược tổ chức thành chương Trong chương 1, trình bày kết nghiên cứu ứng dụng soạn thảo văn bản, công cụ hỗ trợ soạn thảo công thức toán học ngôn ngữ ñánh dấu MathML Chương ñược dành ñể mô tả ứng dụng, xây dựng mô hình tổng quát, ñề xuất giải pháp xây dựng môi trường soạn thảo công thức, tiêu chuẩn lưu trữ tìm kiếm công thức toán học, giải pháp chép công thức từ OpenOffice.Org Writer sang WebBrowser Amaya Nội dung chương trình bày môi trường triển khai ứng dụng, môi trường soạn thảo, tìm kiếm công thức toán học chép công thức hai trình soạn thảo Footer Page of 126 -5- Header Page of 126 CHƯƠNG NGHIÊN CỨU TỔNG QUAN Trong thời ñại ngày nay, máy tính ñã trở thành công cụ thiếu ñể phục vụ công tác soạn thảo văn Hiện phần mềm hỗ trợ việc soạn thảo văn khoa học ña dạng, nhiên phần mềm không ñồng chuẩn soạn thảo công thức toán học Vì vậy, việc chuyển ñổi tài liệu qua lại phần mềm khó khăn ñó cần phải có chuẩn thống ñể lưu trữ quản lý Trong chương này, trình bày ngôn ngữ ñánh dấu ñể ñặc tả công thức toán học phần mềm soạn thảo văn thực trạng tìm kiếm công thức toán học tài liệu 1.1 SOẠN THẢO, LƯU TRỮ VÀ TÌM KIẾM CÁC CÔNG THỨC TOÁN HỌC TRÊN VĂN BẢN 1.1.1 Khái niệm văn 1.1.2 Hệ soạn thảo văn 1.1.3 Quá trình nhập công thức 1.1.3.1 Sử dụng bảng lựa chọn Đơn giản, trực quan dễ sử dụng 1.1.3.2 Sử dụng ngôn ngữ ñánh dấu Viết cú pháp lệnh, ñòi hỏi người sử dụng phải nhớ soạn thảo 1.1.4 Tình trạng sử dụng phần mềm gõ công thức toán học Hiện nay, giới có nhiều phần mềm hỗ trợ trình gõ công thức toán học văn Ngoài phần mềm thương mại Footer Page of 126 -6- Header Page of 126 như: Mathtype, Microsoft Equation Microsoft Office,… phần mềm mã nguồn mở như: MathCast, Math OpenOffice.Org, phần mềm phi thương mại Việt Nam MyeqText,…Nhưng công cụ hỗ trợ phù hợp cho phần mềm soạn thảo cụ thể Mặc khác, với trình soạn thảo văn có chuẩn lưu trữ khác gặp nhiều khó khăn việc hợp văn ñược tạo từ nhiều ứng dụng khác 1.1.5 Biểu diễn công thức toán học máy tính 1.1.5.1 Biểu diễn công thức toán học Microsoft Word Ví dụ Microsoft word 2003, ñể hiển thị công thức x , soạn thảo phương trình Editor phải sử dụng ñoạn mã sau: { EQ \r(3,x) } 1.1.5.2 Biểu diễn công thức toán học WebSite Ví dụ ñoạn mã lệnh ñược soạn thảo trực tiếp vào cửa sổ soạn thảo trang web ñịa http://www.codecogs.com/latex/eqneditor.php Để hiển thị hình ảnh x phải nhập ñoạn mã sau: \sqrt[3]{2} 1.1.5.3 Biểu diễn công thức toán học OpenOffice.Org Để hiển thị x có ñoạn mã tương ứng sau: nroot{3}{x} 1.1.6 Thực trạng tìm kiếm công thức toán học Công thức ñược ñịnh dạng tập tin hình ảnh Vì lý ñó, thực trình tìm kiếm tìm kiếm chuỗi thông thường văn thường sử dụng Các trình ứng dụng soạn thảo văn thông dụng chưa có công cụ trợ giúp cho việc tìm Footer Page of 126 Header Page of 126 -7- kiếm công thức toán học Trên Internet, Website LatexSearch có hỗ trợ tìm kiếm công thức toán học ñược soạn thảo ngôn ngữ ñánh dấu Latex Đây quyền MPS Technologies (Mathematical Programming System) Nhưng kết tìm thấy giới hạn tài liệu ñiện tử máy chủ SpringerLink 1.1.7 Các phần mềm hỗ trợ soạn thảo công thức toán học 1.1.7.1 Ứng dụng Microsoft Equation 3.0 Office Microsoft Equation ứng dụng Office hãng Microsoft bán kèm 1.1.7.2 Phần mềm MathType Mathtype phần mềm thương mại Design Science tạo ký hiệu toán học Microsoft Word, OpenOffice.Org, E-Learning, … 1.1.7.3 Phần mềm MyEqText MyEqText tích hợp vào Microsoft Word công cụ 1.2 GIỚI THIỆU MỘT SỐ NGÔN NGỮ ĐÁNH DẤU TOÁN HỌC 1.2.1 Ngôn ngữ ñánh dấu LaTex Tex hệ thống chữ ñược viết Donald E.Knuth Đại học Stanford vào năm 1977 Nó phổ biến môi trường hàn lâm, ñặc biệt cộng ñồng toán học, vật lí khoa học máy tính Bắt ñầu từ năm 1980, Leslie Lamport bắt ñầu tạo hệ thống soạn thảo văn ngày gọi LaTex dựa ñịnh dạng Tex Hệ thống LaTex thêm vào lệnh tổng quát cho Tex hướng người dùng vào cấu trúc văn ñịnh dạng chi tiết Một số lệnh bậc cao cho phép người dùng dễ dàng soạn hầu hết loại tài liệu Chất Footer Page of 126 Header Page of 126 -8- lượng in LaTex cao Nhưng người soạn thảo không hình dung hình dáng tài liệu trước biên dịch Biểu diễn toán học văn Phần nội dung toán học ñoạn văn ñược soạn thảo dấu \(và \) hay $ $ hay \begin{math} \end{math} Ví dụ nội dung soạn thảo hiển thị Latex: Cộng $a$ bình phương với $b$ bình phương ñược $c$ bình phương Ta viết dạng công thức là: $c^{2} = a^{2}+b^{2}$ Cộng a bình phương với b bình phương ñược c bình phương Ta 2 viết dạng công thức là: c = a + b 1.2.2 Ngôn ngữ ñánh dấu AMS-Latex AMS-LaTeX (American Mathematical Society–LaTex) ñược phát triển Hội Toán học Mỹ Tên gọi AMS-LaTex có nghĩa sử dụng LaTex với phần mở rộng AMS AMS-LaTex ban ñầu ñược viết Michael Spivak gần phổ biến Mỹ ASM-LaTex phần mềm biên dịch tập tin pdf giống LaTex Trong ASM-LaTex có gói là: Amsmath – gói mở rộng cho Latex tạo thuận lợi cho trình tạo công thức, nâng cao chất lượng in ấn Amscls bao gồm lớp tài liệu thuật toán hỗ trợ trình soạn thảo Biểu diễn toán học văn Ví dụ nội dung soạn thảo hiển thị AMS-LaTex: \begin{align} y &= (x+1)^2 \\ &= x^2+2x+1 \end{align} Footer Page of 126 -9- Header Page of 126 1.2.3 Ngôn ngữ ñánh dấu HTML HTML (HyperText Markup Language - Ngôn ngữ ñánh dấu siêu văn bản) ngôn ngữ ñánh dấu ñược thiết kế ñể tạo nên trang web Việc ñưa công thức toán học vào tài liệu HTML ñã có chuẩn ñể thực ñiều hầu hết trình duyệt chưa hỗ trợ hay thiếu phông chữ cần thiết Do ñó, nhìn thấy công thức biểu diễn không rõ ràng, khó khăn việc thể ý nghĩa toán học Ví dụ soạn thảo hiển thị − e2 Microsoft Office FrontPage 2003: √ 1- e2 √ 1- e2 1.3 NGÔN NGỮ ĐÁNH DẤU MATHML 1.3.1 Lịch sử MathML 1.3.2 Tính MathML MathML ñược hỗ trợ phần mềm văn phòng Microsoft Word, OpenOffice.org với phần mềm tính toán kỹ thuật Maple, Mathematica, MathCad nhiều hệ ñiều hành khác Linux, Windows,… 1.3.3 Cách thức hiển thị MathML Ưu ñiểm - Không hiển thị tốt mà chứa ý nghĩa nội dung công thức toán học - Dễ dàng sử dụng trình duyệt - Cho phép hiển thị công thức cách ñẹp mắt Footer Page of 126 Header Page 10 of 126 - 10 - - Truyền tải ý nghĩa toán học cho phần mềm tính toán Nhược ñiểm - Cấu trúc không ngắn gọn Tex - Cần có công cụ soạn thảo thân thiện với người dùng Hiển thị browser - Trong số trình duyệt thân thiện Mozilla Firefox, Amaya hiển thị trực tiếp MathML - Các trình duyệt khác cần phần mềm hỗ trợ như: phiên trước Internet Explore cài thêm MathPlayer, từ Internet Explore cài JavaScript MathJax 1.3.4 Cấu trúc MathML Tất ký hiệu toán ñược ñặt cặp thẻ sau: ???? Các thẻ ký hiệu toán học ???? 1.3.5 Tạo công thức toán học Tiểu kết chương Chương ñã trình bày nghiên cứu tổng quan biểu diễn công thức toán học máy tính ba trình ứng dụng cụ thể Thông qua ví dụ, thấy phần mềm soạn thảo công thức ñược ñặc tả ngôn ngữ ñánh dấu khác Vì vậy, việc chuyển ñổi tài liệu khoa học ứng dụng khó khăn Footer Page 10 of 126 Header Page 13 of 126 - 13 - - (1) Người dùng nhập liệu từ bàn phím tạo công thức toán học văn dạng chuẩn MathML chép công thức toán học từ tài liệu ñược tạo phần mềm soạn thảo khác Để làm ñược ñiều này, nhờ vào công cụ trung gian chuyển ngôn ngữ ñánh dấu ñặc tả sang ngôn ngữ ñánh dấu MathML theo cấu trúc môi trường soạn thảo - (2) Lưu trữ quản lý công thức toán học dạng chuẩn MathML văn - (3) Cung cấp công cụ hỗ trợ cho trình tìm kiếm công thức toán học văn - (4) Chức tìm kiếm công thức toán học phục vụ theo yêu cầu tìm kiếm người dùng 2.3 ĐỀ XUẤT GIẢI PHÁP Ngày nay, Internet môi trường trao ñổi thông tin phổ biến Các phương pháp dựa hình ảnh ñang chiếm ưu làm phương tiện truyền ký hiệu khoa học trang web Tuy nhiên, ý tưởng sử dụng hình ảnh ñể hiển thị công thức toán học có số nhược ñiểm sau: - Hình ảnh không rõ nét việc in ấn - Người sử dụng sửa ñổi phông chữ công thức nên khó kế thừa việc sử dụng ứng dụng khác - Tải trang chứa công thức toán học tương ñối chậm - Không thể thực tìm kiếm công thức hình ảnh ñược Từ thực trạng trên, xin ñề xuất giải pháp sử dụng chuẩn ñể lưu trữ nội dung, tạo môi trường soạn thảo Web Brower cách quản lý, tìm kiếm công thức toán học môi trường 2.3.1 Tiêu chuẩn lưu trữ nội dung Footer Page 13 of 126 - 14 - Header Page 14 of 126 MathML tiêu chuẩn mở rộng XML ñể biểu diễn ký hiệu công thức toán học, ñó ñược nhúng bên XML Để mô tả trình lưu trữ nội dung ñến hiển thị công thức toán học xin ñưa mô hình thực sau: - Cơ sở liệu XHTML MathML ñược tạo lưu trữ hệ thống máy chủ ñó - Bộ công cụ ký hiệu toán học ñược tạo kết hợp cấu trúc HTML ngôn ngữ ñánh dấu toán học MathML - Trên trình duyệt WebBrowser, người sử dụng thực thao tác tạo, chỉnh sửa hiển thị nội dung từ hệ thống máy chủ XHTML + MathML database Retured MathML code Mathematic Tool create/edit display Web Browser interface Hình 2 Hệ thống lưu trữ nội dung 2.3.2 Hệ thống soạn thảo 2.3.3 Giải pháp quản lý, tìm kiếm công thức toán học 2.3.3.1 Giải pháp quản lý công thức toán học Phần mềm Amaya quản lý nội dung dạng hình rõ ràng, cấu trúc lồng vào Amaya quản lý thẻ XHTML MathML cách có cấu trúc Ví dụ công thức toán học x = − b ± b − 4ac 2a môi trường Amaya ñược ñịnh nghĩa tab sau: x = Footer Page 14 of 126 Header Page 15 of 126 - 15 - − b ± b 2 − 4 ac 2 a 2.3.3.2 Giải pháp tìm kiếm công thức toán học - Bài toán giải pháp tìm kiếm Bài toán so mẫu xác: với việc so mẫu xác ta ñặt yêu cầu toán sau: Cho xâu mẫu P ñộ dài m (P = P1P2 Pm – Pi ký tự) văn T ñộ dài n (T = T1T2 Tn – Ti ký tự) Tìm tất vị trí xuất mẫu P xâu T Bài toán so mẫu xấp xỉ Tìm kiếm xấp xỉ toán tìm xuất mẫu văn bản, ñó “khớp” mẫu xuất chấp nhận Footer Page 15 of 126 Header Page 16 of 126 - 16 - “k lỗi” (k giới hạn cho trước) Có thể kể vài kiểu “lỗi”, lỗi ñánh máy hay lỗi tả hệ thống trích rút thông tin,… Vì hệ thống tin học khó tránh ñược “lỗi” nên vấn ñề tìm kiếm xấp xỉ trở nên quan trọng Bài toán ñược phát biểu: Cho xâu mẫu P ñộ dài m văn T ñộ dài n Xác ñịnh ñộ tương tự hai xâu P T Bài toán ñưa tìm xâu chung dài (hay khúc chung dài nhất): Một xâu w xâu hay khúc (substring or factor) xâu T T = uwv (xâu u, v rỗng) Xâu w khúc chung hai xâu P, T w ñồng thời khúc P T Khúc chung dài hai xâu P T Input: Mẫu P ñộ dài m; văn T ñộ dài n Output: - Khúc chung dài P T - Vị trí chuỗi mẫu Substr T - Chức tìm kiếm Amaya Chức tìm kiếm chuỗi Amaya Amaya tìm kiếm ký hiệu ñặc biệt dấu căn, tích phân, số,… tìm trực tiếp cửa sổ hiển thị ứng dụng Amaya mà tìm qua mã nguồnXHTML Và tìm thấy, nội dung cửa sổ hiển thị không ñược ñổi màu giống tìm kiếm thông thường mà ñịnh vị trỏ ñầu dòng nội dung tìm thấy Ví dụ minh họa: Hình Tìm kiếm ký tự a tìm kiếm ký hiệu bậc hai Footer Page 16 of 126 Header Page 17 of 126 - 17 - Đề xuất hướng tìm kiếm ký hiệu toán học Amaya Theo hình 2.5, ta thấy trình duyệt Amaya có ñồng mã nguồn nội dung hiển thị Điều có nghĩa làm việc mã nguồn vị trí cửa sổ hiển thị ñược thực thi vị trí ñó, ngược lại Từ phân tích trên, chứng minh chức tìm kiếm chuỗi Amaya ñược hỗ trợ lệnh thay ñổi màu chuỗi ñược tìm thấy Tôi xin ñề xuất bổ sung thêm chức chuyển ñổi màu hình hiển thị tìm kiếm ký hiệu toán học ñặc biệt mã nguồn Mã nguồn mở Amaya sau biên dịch có ñến 11.474 tập tin, ñó tập tin “HTMLactions.c” quản lý tương quan nội dung hiển thị mã nguồn Trong tập tin chứa hàm “void SynchronizeSourceView (NotifyElement *event)” giúp thực việc chuyển ñổi màu ñối với ký hiệu ñặc biệt Sau ñây ñoạn mã hàm void SynchronizeSourceView (NotifyElement *event)” chứa nội dung bổ sung /* record the highlighted element */ HighlightDocument = otherDoc; HighlightElement = otherEl; HighLightAttribute = attr; /* element text select element ñó – Chức dùng ñổi màu ký hiệu toán học loại trừ thẻ Text*/ if (TtaGetTextLength(otherEl)