8. Bố cục của luận văn
1.5. XUẤT CÔNG CỤ PHẦN MỀM XÂY DỰNG HỆ THỐNG
1.5.1. Django-RDF.library
- Django-RDF.library là một framework vớ i bộ phân tích cú pháp viết bằng ngôn ngữ Python theo dựa trên phân tích cú pháp RDF và truy vấn các mô hình hiện
tại bằng các lớp và thuộc tính RDFS hoặc OWL bằng cách sử dụng một phiên bản ngôn ngữ truy vấn đến SPARQL. Mục tiêu của Django-RDF.Library đọc/ghi dữ liệu của XML dựa trên đồ thị với các cạnh tương ứng với thuộc tính liên kết và các đỉnh tương ứng với các nút hay còn gọi là các lớp và Django-RDF cũng thực hiện lưu trữ RDF bằng cách sử dụng các mô hình kết nối nội bộ Literal, Ontology, Namespace với truy vấn SPARQL trả về các bộ truy vấn có thể tự do kết hợp dữ liệu trong kho lưu trữ RDF với dữ liệu từ mô hình Django.
1.5.2. Ngôn ngữ Python với framework: Django.templates
- Python là ngôn ngữ lập trình hướng đối tượng, bậc cao, mạnh mẽ và có cộng đồng người sử dụng rất lớn trên mạng Internet, Python cũng là một ngôn ngữ thông dịch, tức là ngôn ngữ không cần phải biên dịch ra file chạy mà đọc code đến đâu thì chạy đến đó, khi chạy lệnh Python ta sẽ có một giao diện dòng lệnh giống của Unix, có thể chạy từng dòng code ngay trực tiếp, Python chạy trên nền tảng nhiều hệ điều hành thông dụng như Windows, Linux và Unix.
Django.templates là một web framework được viết hoàn toàn bằng ngôn ngữ Python, Django có sẵn chức năng tạo sẵn một template có cấu trúc hoàn chỉnh và mẫu mực để thuận tiện thực hiện một Project một cách nhanh chóng và có thể tích hợp một cách dễ dàng vào hệ thống Portal Plone.zope [13], [20].
1.5.3. Hệ thống cổng thông tin điện tử Portal Plone.zope Enterprise CMS tích hợp sẵn hệ quản trị cơ sở dữ liệu Object Database (ZODB) tích hợp sẵn hệ quản trị cơ sở dữ liệu Object Database (ZODB)
- Portal Plone.zope Enterprise CMS (Plone): Plone là một hệ quản trị nội dung (CMS) nguồn mở, miễn phí được phát triển trên ngôn ngữ Python. Plone cung cấp cho người dùng tất cả các hỗ trợ quản lý rất mạnh để có thể quản lý tổ chức của bạn ở mọi cấp. Plone có một “workflow engine”, có một cơ chế phân quyền Security và Roles được cấu hình sẵn theo chuẩn Python, có một tập hợp các kiểu nội dung (content) rất mạnh (theo kiểu đối tượng) và đặc biệt Plone còn hỗ trợ đa ngữ. Vì là nguồn mở, miễn phí nên Plone rất được hưởng ứng và được nhiều người trên thế giới rất ủng hộ và đóng góp cho Plone rất nhiều. Plone là một CMS phát triển dựa trên Content Management Framework (CMF).
- ZODB hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với cơ sở dữ liệu quan hệ, có sẵn hỗ trợ ngôn ngữ truy vấn SPARQL.
- Trong ứng dụng này, tác giả sử dụng ZODB để lưu trữ dữ liệu cũng như các thành phần tạo nên hệ thống. Dữ liệu được nhập trực tiếp vào CSDL của hệ thống Plone.zope CMS sau đó bằng các thuật toán cụ thể tác giả xuất sang dữ liệu ontology dùng để tìm kiếm dữ liệu [19].
Hình1.6. Kiến trúc tổng quan của hệ thống Portal Plone.zope CMS
1.6. THIẾT KẾ ONTOLOGY
Ngày nay việc nghiên cứu quá trình thiết kế và xây dựng ontology ngày càng được quan tâm nhiều hơn, sau quá trình nghiên cứu có rất nhiều dự án đã đưa ra các phương pháp khác nhau nhằm xây dựng ontology, nhưng nhìn chung các phương pháp đều thực hiện hai bước cơ bản là xây dựng cấu trúc phân cấp và định nghĩa các thuộc tính cho lớp. Trong thực tế, việc phát triển một ontology để mô tả miền cần
quan tâm là một việc không đơn giản, phụ thuộc rất nhiều vào công cụ sử dụng, tính chất, quy mô, sự thường xuyên biến đổi của miền cũng như các quan hệ phức tạp trong đó. Những khó khăn này đòi hỏi công việc xây dựng ontology phải là một quá trình lặp đi lặp lại, mỗi lần lặp cải thiện dần chứ không phải là một quy trình khung với các công đoạn tách rời nhau.
Trong những năm gần đây, một loạt các phương pháp luận khác nhau được thiết kế để trợ giúp cho việc tiến hành phát triển các nhiệm vụ được báo cáo trong tài liệu trí tuệ nhân tạo. Các phương pháp truyền thống gồm Cyc, Uschold và King, Gruninger, Kactus và MethOntology. Theo như đánh giá phương pháp luận “MethOntology” là phương pháp luận thiết kế ontology phổ biến nhất. Quy trình phát triển ontology là một quy trình gồm nhiều bước. Trong luận văn này giới thiệu quy trình phát triển gồm 7 bước do Stanford Center for Biomedical Informatics Research đưa ra được đa số các nghiên cứu trước đây chọn và tuân theo (đây là nhóm đã phát triển phần mềm Protégé để trình diễn và soạn thảo ontology).
Bước 1: Xác định lĩnh vực và phạm vi của ontology
Tương tự như các công đoạn đặc tả khác, đặc tả ontology cũng bắt đầu bằng việc trả lời các câu hỏi mang tính phân tích để xác định chính xác các yêu cầu. Những câu hỏi thường dùng là:
- Ontology cần mô tả miền nào?
- Ontology phục vụ cho mục đích chuyên biệt gì?
- Cơ sở tri thức trong ontology sẽ trả lời những câu hỏi gì?
- Ontology nhằm phục vụ đối tượng nào?
- Ai là người sẽ xây dựng, quản trị ontology?
Các câu trả lời cho những câu hỏi trên có thể sẽ thay đổi trong quá trình lặp khi xây dựng một ontology. Tuy nhiên việc trả lời chính xác trong mỗi bước lặp sẽ giới hạn được phạm vi cụ thể của mô hình cần mô tả và dự kiến các kỹ thuật sẽ sử dụng trong quá trình phát triển. Trong giai đoạn này ta cần xác định mục đích của việc xây dựng ontology, đối tượng phục vụ, đặc điểm, lĩnh vực và phạm vi của ontology.
Bước 2: Xem xét việc sử dụng lại các ontology có sẵn
Đây là công đoạn thường hay sử dụng để giảm thiểu công sức xây dựng một ontology. Bằng cách kế thừa các ontology tương tự có sẵn, người xây dựng có thể thêm hoặc bớt các lớp, quan hệ giữa các lớp, thực thể… để tinh chỉnh tùy theo yêu cầu bài toán của mình. Ngoài ra, việc sử dụng lại các ontology có sẵn cũng rất quan trọng khi cần sự tương tác giữa các ứng dụng khác nhau. Do các ứng dụng cần phải hiểu các lớp, thực thể, quan hệ… của nhau để thuận tiện trong việc trao đổi hoặc thống nhất thông tin.
Cấu trúc của một ontology bao gồm ba tầng: tầng trừu tượng (Abstract), tầng miền xác định (Domain) và tầng mở rộng (Extension). Trong đó tầng trừu tượng có tính tái sử dụng rất cao, tầng miền xác định có thể tái sử dụng trong một lĩnh vực nhất định. Cộng đồng ontology cũng đang lớn mạnh và có rất nhiều ontology đã được tạo ra, với tâm huyết của nhiều chuyên gia. Do đó trước khi bắt đầu xây dựng ontology, cần xét đến khả năng sử dụng lại các ontology đã có. Tuy nhiên, vấn đề xây dựng một ontology mới bằng cách kế thừa các hệ thống có sẵn liên quan đến một bài toán rất phức tạp là trộn (merging) các ontology. Tên các khái niệm được định nghĩa trong các ontology này có thể giống nhau trong khi chúng được dùng để mô tả các sự vật khác nhau. Hoặc ngược lại, khi tên các khái niệm khác nhau cùng mô tả một sự vật.
Hiện có rất nhiều ontology được chia sẻ trên Web. Ví dụ như thư viện Ontolingua ontology hoặc thư viện DAML ontology cung cấp các thuật ngữ của nhiều lĩnh vực, SNOMEDCT trong lĩnh vực y khoa, Geographic Information Metadata - ISO 19115, trong lĩnh vực siêu dữ liệu thông tin địa lý, UMLS trong lĩnh vực mạng ngữ nghĩa.
Bước 3: Liệt kê các thuật ngữ quan trọng
Đây là bước rất hữu ích, làm tiền đề cho hai bước tiếp theo là xây dựng cấu trúc lớp phân cấp và định nghĩa các thuộc tính cho lớp. Ontology được xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụ thể, vì vậy khi xây dựng ontology cần bắt đầu từ các thuật ngữ chuyên ngành để xây dựng thành các lớp trong
ontology tương ứng. Tất nhiên không phải thuật ngữ nào cũng đưa vào ontology, vì chưa chắc đã định vị được cho thuật ngữ đó. Do đó cần phải liệt kê các thuật ngữ, để xác định ngữ nghĩa cho các thuật ngữ đó, cũng như cân nhắc về phạm vi của ontology. Việc liệt kê các thuật ngữ còn cho thấy được phần nào tổng quan về các khái niệm trong lĩnh vực đó, giúp cho các bước tiếp theo được thuận lợi.
Bước 3 và 4 liên kết chặt chẽ với nhau. Thông thường chúng ta tạo ra một vài định nghĩa các khái niệm trong hệ thống phân cấp và sau đó tiếp tục bằng việc mô tả tính chất của các khái niệm này…Đây cũng là hai bước quan trọng nhất trong quá trình thiết kế ontology.
Bước 4: Xác định các lớp và phân cấp của các lớp
Bước này định nghĩa các lớp từ một số thuật ngữ đã liệt kê trong bước 3, sau đó định vị cho các lớp mới theo cấu trúc phân cấp lớp cha – lớp con. Lớp ở vị trí càng cao trong cấu trúc này sẽ có mức độ tổng quát càng cao. Vị trí đầu tiên là lớp gốc, tiếp theo là các lớp trung gian, và cuối cùng là lớp lá.
Sau đây là một số phương pháp tiếp cận trong việc xác định phân cấp của các lớp:
- Phương pháp từ trên xuống (top-down): bắt đầu với định nghĩa của các lớp
tổng quát nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó. Ví dụ: Trong ontology về quản lý công trình khoa học, ta bắt đầu với lớp công trình nghiên cứu, sau đó chuyên biệt hóa lớp đó bằng cách tạo ra các lớp con của lớp công trình nghiên cứu như: Đề tài, dự án, đề án, báo cáo nghiên cứu, bài báo khoa học.
- Phương pháp từ dưới lên (bottom-up): bắt đầu với định nghĩa của các lớp cụ
thể nhất, như các lá trong cây phân cấp. Sau đó gộp các lớp đó lại thành các khái niệm tổng quát hơn. Ví dụ: ta bắt đầu với việc định nghĩa các lớp như: Sở Khoa học & công nghê, Viện Nghiên cứu Kinh tế - Xã hội Đà Nẵng, Ban quản lý khu công nghệ cao. Sau đó tạo ra một lớp chung hơn cho các lớp đó là lớp Sở, ban, ngành.
- Phương pháp kết hợp: kết hợp giữa phương pháp từ trên xuống và từ dưới lên:
bắt đầu từ định nghĩa các lớp dễ thấy trước và sau đó tổng quát hóa và chuyên biệt hóa các lớp đó một cách thích hợp. Ví dụ ta bắt đầu với lớp công trình nghiên cứu trước, là thuật ngữ hay gặp trong quản lý đề tài. Sau đó chúng ta có thể chuyên biệt
hóa thành các lớp con: Đề tài, dự án, đề án, báo cáo nghiên cứu, bài báo khoa học. Trong ba phương pháp này không có phương pháp nào là tốt hơn hẳn. Cách tiếp cận và sử dụng phụ thuộc vào quan điểm cá nhân về từng lĩnh vực. Nếu người thiết kế ontology có tầm nhìn hệ thống từ tổng quát đến chi tiết của một lĩnh vực, thì phương pháp từ trên xuống sẽ thích hợp hơn. Tuy nhiên, cách dễ nhất là kết hợp các phương pháp trên cho việc xây dựng ontology.
Bước 5: Xác định các thuộc tính
Bản thân các lớp ở bước 4 chỉ mới là những thuật ngữ phân biệt với nhau bằng tên gọi. Chúng chưa đủ để phục vụ cho việc biểu diễn tri thức. Để xác định thuộc tính cho các lớp, ta quay trở lại danh sách các thuật ngữ đã liệt kê được ở các bước trên. Hầu hết các thuật ngữ còn lại (sau khi đã xác định lớp) là thuộc tính của các lớp đó. Với mỗi thuộc tính tìm được, ta phải xác định xem nó mô tả cho lớp nào. Các thuộc tính đó sẽ trở thành thuộc tính của các lớp xác định. Ví dụ lớp: “Nguoi” có các thuộc tính sau: Họ, tên, năm sinh, giới tính, địa chỉ, học vị, chức vụ…
Ngoài ra, một lớp con sẽ kế thừa toàn bộ các thuộc tính của lớp cha. Vì vậy, cần phải xem xét thuộc tính đã được định nghĩa ở các lớp thuộc mức cao hơn hay chưa.
Bước 6: Xác định ràng buộc của các thuộc tính
Các ràng buộc giới hạn giá trị mà một thuộc tính có thể nhận được, như kiểu giá trị, các giá trị cho phép, lượng số (cardinality)…
Kiểu giá trị của thuộc tính có thể là String – kiểu chuỗi, Number – kiểu số (Float hoặc Interger), Boolean – kiểu logic, Enumerated – kiểu liệt kê, Instance – kiểu thực thể - định nghĩa mối quan hệ giữa các cá thể. Riêng kiểu thực thể có Domain (miền) và Range (khoảng). Khái niệm miền được dùng để chỉ lớp hay các lớp mà một thuộc tính thuộc về. Khoảng chính là lớp hay các lớp làm kiểu cho giá trị thuộc tính kiểu thực thể.
Ràng buộc lượng số quy định số giá trị mà một thuộc tính có thể nhận. Hai giá trị thường thấy của ràng buộc này là đơn trị (single) và đa trị (multiple).
Bước 7: Tạo các thể hiện / thực thể (individuals)
thực thể cho một lớp là quá trình gán các giá trị vào các thuộc tính của lớp đó. Các thực thể sẽ tạo nên nội dung của một cơ sở tri thức.
1.7. KẾT LUẬN CHƯƠNG 1
Trong chương này, tôi trình bày cơ sở lý thuyết về web ngữ nghĩa, ngôn ngữ RDF, ontology- ngôn ngữ OWL, hệ truy vấn SPARQL, đồng thời giới thiệu các công cụ biên tập ontology và đề xuất công cụ phần mềm xây dựng hệ thống thông tin quản lý công tác nghiên cứu khoa học của Viện Nghiên cứu Phát triển Kinh tế - Xã hội Đà Nẵng. Từ những nghiên cứu này, tôi có thêm những kiến thức cơ bản về lý thuyết thông tin của các nghiên cứu đã thực hiện để tiến hành thu thập dữ liệu chi tiết, phục vụ cho việc kế thừa, áp dụng thực hiện các chương tiếp theo của luận văn.
CHƯƠNG 2
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. THỰC TRẠNG CÔNG TÁC QUẢN LÝ NGHIÊN CỨU KHOA HỌC CỦA VIỆN NGHIÊN CỨU PHÁT TRIỂN KINH TẾ - XÃ HỘI ĐÀ NẴNG CỦA VIỆN NGHIÊN CỨU PHÁT TRIỂN KINH TẾ - XÃ HỘI ĐÀ NẴNG
Nghiên cứu khoa học đóng vai trò quan trọng trong sự tiến hóa của đời sống con người, nhằm cho ra đời những sản phẩm có giá trị ứng dụng vào cuộc sống, dựa trên các bằng chứng xác thực và thỏa đáng, chính vì vậy công tác nghiên cứu khoa học là một trong 3 nhiệm vụ trọng tâm mà Viện Nghiên cứu Phát triển Kinh tế - Xã hội Đà Nẵng đã đăng ký hằng năm với UBND thành phố. Và để ngày một nâng cao hơn nữa chất lượng chuyên môn trong lĩnh vực nghiên cứu khoa học, từ đó có cơ sở hoàn thành tốt nhiệm vụ trọng tâm của UBND thành phố Đà Nẵng giao, việc quản lý và điều hành hiệu quả công tác nghiên cứu khoa học tại Viện Nghiên cứu Phát triển Kinh tế - Xã hội Đà Nẵng là một công việc thật sự cấp thiết đối lãnh đạo cơ quan.
Qua 9 năm hoạt động trong công tác nghiên cứu khoa học, Viện đã tổ chức nghiên cứu và được nghiệm thu 26 đề tài khoa học cấp tỉnh, thành phố; hoàn thành 19 đề án, 9 báo cáo chuyên đề nghiên cứu khoa học của thành phố Đà Nẵng và các tỉnh khu vực miền Trung và Tây Nguyên. Các công trình nghiên cứu đều hoàn thành đúng tiến độ và chất lượng, được cơ quan quản lý đánh giá cao.
Tuy nhiên công tác quản lý nghiên cứu khoa học của Viện hiện tại vẫn chưa phù hợp, chưa được quản lý một cách chặt chẽ, cách quản lý hiện chỉ làm bằng tay một cách thụ động, không theo dõi và kiểm soát được hơn nữa các công trình nghiên cứu sau có thể có sự trùng lặp với các công trình nghiên cứu trước đó từ đó ảnh hưởng không nhỏ đến chất lượng của công trình nghiên cứu.
Bước 1: Hàng năm Viện lập kế họach và đăng ký danh sách đề cương công trình nghiên cứu khoa học của năm (đề tài, dự án, đề án) gửi sở, ban, ngành chuyên môn của thành phố tổng hợp trình UBND thành phố Đà Nẵng phê duyệt.