基于本體和Lucene的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)_第1頁
基于本體和Lucene的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)_第2頁
基于本體和Lucene的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)_第3頁
基于本體和Lucene的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)_第4頁
基于本體和Lucene的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學科分類號: 520.6070 湖南人文科技學院湖南人文科技學院本科生畢業(yè)設計論文題目:基于本體和基于本體和 lucene 的網絡教的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)育資源檢索系統(tǒng)設計與實現(xiàn)design and implementation of network education resources retrieval system based on ontology and lucene學生姓名:周顯光周顯光學號07408119系 部:計算機科學技術系計算機科學技術系專業(yè)年級:2007 級計算機科學與技術級計算機科學與技術指導教師:郭郭 廣廣 軍軍職 稱:教教 授授湖南人文科技學院教務處 2

2、009 年制湖南人文科技學院本科畢業(yè)設計誠信聲明本人鄭重聲明:所呈交的本科畢業(yè)設計,是本人在指導老師的指導下,獨立進行研究工作所取得的成果,成果不存在知識產權爭議,除文中已經注明引用的內容外,本設計不含任何其他個人或集體已經發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻的個人和集體均已在文中以明確方式標明。本人完全意識到本聲明的法律結果由本人承擔。 作者簽名: 2011年 月 日版權聲明版權所有 2010-2011 周顯光,保留所有權利。本文檔受著作權法和國際公約的保護,未經授權擅自復制或傳播本文檔的部分或全部,可能受到嚴厲的民事和刑事制裁,并在法律許可的范圍內受到最大可能的起訴。湖南人文科

3、技學院畢業(yè)設計目 錄摘要 .iabstract.i第一章 緒 論.11.1 引言.11.2 研究背景.11.3 本文主要工作.21.4 本文的組織安排.2第二章 開發(fā)環(huán)境和開發(fā)技術.42.1 系統(tǒng)介紹.42.2 系統(tǒng)開發(fā)環(huán)境.42.3 系統(tǒng)開發(fā)技術.42.3.1 eclipse 簡介.42.3.2 java 簡介.52.3.3 jsf 簡介.52.3.4 jpa 簡介.52.3.5 mysql 簡介.5第三章 可行性與需求分析.63.1 可行性分析.63.1.1 技術可行性.63.1.2 社會可行性.63.1.3 經濟可行性.63.2 系統(tǒng)目標.63.3 功能需求.63.4 性能需求.7第四章

4、 系統(tǒng)概要設計.94.1 模塊設計.94.1.1 系統(tǒng)功能層次圖.94.1.2 系統(tǒng) uml 包圖.104.1.3 數據庫模塊.104.1.4 web 模塊.124.1.3 lucene 模塊.184.1.4 本體模塊.204.2 系統(tǒng)數據庫設計.214.2.1 eer 圖.214.2.2 數據表設計.214.2.3 創(chuàng)建數據表.23湖南人文科技學院畢業(yè)設計第五章 系統(tǒng)實現(xiàn).265.1 本體模塊.265.2 lucene模塊.315.2.1 索引更新模塊.325.2.2 索引搜索模塊.365.3 數據模塊.385.3.1 實體模塊.385.3.1 實體操作模塊.385.4 web模塊.385.

5、4.1 servlet 模塊 .385.4.2 managedbean 模塊.385.4.3 有關網頁的 facelets 實現(xiàn).41第六章 系統(tǒng)測試.436.1 系統(tǒng)搜索模塊的測試.436.2 資源模塊的測試.446.3 用戶模塊的測試.45結束語.47致 謝.48參考文獻.48湖南人文科技學院畢業(yè)設計i基于本體和基于本體和 lucene 的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)的網絡教育資源檢索系統(tǒng)設計與實現(xiàn)摘要摘要:隨著 internet/intranet 的迅速發(fā)展和廣泛普及,越來越多的 web2.0 網站的出現(xiàn),internet 上的信息量呈指數級增長,人們需要從浩如煙海的網絡中快速、準確地

6、找到自己需要的信息,這是信息時代的必然要求,所以對網站內容的索引和搜索將會變得越來越重要。本設計在對網絡教育資源檢索系統(tǒng)的需求分析的基礎上,以 eclipse 3.6 為集成開發(fā)環(huán)境,mysql 為后臺數據庫,使用 jsf、jpa 框架和 lucene、owl api 設計實現(xiàn)了基于本體和 lucene 的網絡教育資源檢索系統(tǒng)。該系統(tǒng)主要實現(xiàn)了用戶登錄與注冊、網絡教育資源的管理與搜索。系統(tǒng)測試表明,該系統(tǒng)運行穩(wěn)定,可訪問性、可靠性很好,操作簡單方便。 關鍵詞:教育資源檢索;本體;jsf;jpa;lucene;owldesign and implementation of network edu

7、cation resources retrieval system based on ontology and luceneabstract: with the rapid development and wide spreading of internet/intranet, the appearance of more and more web2.0 web site, the exponentially increasing of the information amount in internet, people need to find the information they ne

8、ed, this is the inevitable request of information age, so the index and search of web site content will be more and more important.in the design based on the need analysis of the network education resources retrieval system based on ontology and lucene, using eclipse 3.6 as development environment,

9、mysql as background database, using jsf, jpa framework design and implement the network education resources retrieval system based on ontology and lucene. the system mainly implements the user login and register, the management and search of network education resources. system testing showed that th

10、e system run stability, has good accessibility and reliability, simple operation.key words: education resource search; ontology; jsf; jpa; lucene; owl 湖南人文科技學院畢業(yè)設計1第一章第一章 緒緒 論論1.1 引言由于 internet 的迅猛發(fā)展,信息迅速膨脹,人們對信息查詢的準確率的要求也越來越高,而全文檢索系統(tǒng)因為檢索功能強大、效率高而越來越流行。lucene 是一個基于 java 的開放源代碼的全文檢索引擎工具包,能夠方便地嵌入到各種應用

11、中實現(xiàn)索引和搜索功能。本系統(tǒng)用此技術來實現(xiàn)對網絡教育資源的全文檢索,通過對索引的查詢可以快速、可靠的得到相關信息,并在查詢過程中應用中文分詞技術,以使得查詢結果更加準確和全面。 傳統(tǒng)的數據庫檢索方式大都采用傳統(tǒng)的關鍵詞匹配算法進行查詢,并不能很準確地返回相關信息,無法理解語義。而用來對特定領域的概念及術語給予明確的形式化描述的本體論不僅為規(guī)范化資源描述及用戶查詢提供了基礎,也為更準確地搜索信息提供了保證。本人在此項目中使用 protg 建立了知識本體,并使用 owl api 解析本體,實現(xiàn)了一個能使用本體中已有的概念進行的單詞補全,并查找特定概念的子概念,實現(xiàn)了推理補全,這兩者組成了搜索框的自

12、動完成功能,能在用戶搜索時提供相關的關鍵字智能提示,還可以對搜索詞進行語義擴展后搜索。1.2 研究背景l(fā)ucene 是 apache 軟件基金會 jakarta 項目組的一個子項目,是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言) 。 lucene 的目的是為軟件開發(fā)人員提供一個簡單易用的工具包,以方便的在目標系統(tǒng)中實現(xiàn)全文檢索的功能,或者是以此為基礎建立起完整的全文檢索引擎。在計算機科學與信息科學領域,理論上,本體是指一種“形式化的,對于共享概念體系的明確而又詳細的說明

13、”。本體提供的是一種共享詞表,也就是特定領域之中那些存在著的對象類型或概念及其屬性和相互關系;或者說,本體就是一種特殊類型的術語集,具有結構化的特點,且更加適合于在計算機系統(tǒng)之中使用;或者說,本體實際上就是對特定領域之中某套概念及其相互之間關系的形式化表達(formal representation) 。本體是人們以自己興趣領域的知識為素材,運用信息科學的本體論原理而編寫出來的作品(artifacts) 。本體一般可以用來針對該領域的屬性進行推理,亦可用于定義該領域(也就是對該領域進行建模) 。 湖南人文科技學院畢業(yè)設計21.3 本文主要工作本系統(tǒng)從建立之初就注重良好的設計、效率和可移植性,系

14、統(tǒng)先使用 mysql workbench 建立數據庫模型,然后將 eer 模型生成建表的 sql 腳本并放在 mysql中運行,以此來創(chuàng)建數據表。本項目使用的集成開發(fā)環(huán)境是 eclipse 3.6,持久層使用jpa2.0(eclipselink 的實現(xiàn))框架完成對象-關系映射,web 層使用 jsf2.0(使用 sun 的實現(xiàn)和 primefaces 的擴展)框架,web 和 servlet 容器是 apache tomcat 7.0。系統(tǒng)整體架構為 b/s 模式,遵循 mvc 模式開發(fā),代碼符合 javaee 6 標準,使用 jpa 完成orm 映射,使用 jsf 的 facelets 模板

15、技術,將用戶界面設計與業(yè)務邏輯分離,利用pojo 做實現(xiàn),在 facelets 模板中使用 jsf 的標準標簽、primefaces 擴展標簽、jstl標簽和 el 表達式實現(xiàn)可維護,可重用的視圖,具體實現(xiàn)操作利用 jsf 的managedbean 的方法作為 action 或 acitionlistener,在 faces-config.xml 中定義頁面導航規(guī)則作為控制器,通過對 jpa 實體類及其 facade 類的操作實現(xiàn)對數據庫的操作,使用實體類和 pojo 作為模型,使用 managedbean 和 pojo 實現(xiàn)業(yè)務邏輯。對基于本體和 lucene 的網絡教育資源檢索系統(tǒng)的功能進

16、行分析,主要是分析對網絡教育資源的管理、索引和搜索,以及解析本體中的特定類的子類的功能實現(xiàn)。其次進行概要設計,將系統(tǒng)分為 4 個模塊:數據庫模塊(實體模塊,facade 模塊) ,lucene 模塊(索引模塊,搜索模塊) ,本體模塊,web 模塊(模型模塊、servlet 模塊、managedbean 模塊) 。再次進行數據庫設計,基于本體和 lucene 的網絡教育資源檢索系統(tǒng)擁有多個數據表,為了實現(xiàn)相應的功能模塊,需要對數據庫進行相應的設計。然后進行詳細設計,最后系統(tǒng)測試。開發(fā)一個基于本體和 lucene 的網絡教育資源檢索系統(tǒng)必須經過以下階段:可行性研究階段需求分析階段總體設計階段詳細設

17、計階段系統(tǒng)實現(xiàn)階段測試階段1.4 本文的組織安排文章緒論部分對本系統(tǒng)的背景和現(xiàn)狀進行了簡要的介紹,分析了本文的主要工作任務;系統(tǒng)分析部分,包括開發(fā)環(huán)境和技術分析、可行性分析、需求分析、系統(tǒng)功能分析等,為設計和理解應用程序做了很好的鋪墊;系統(tǒng)設計部分主要介紹了系統(tǒng)功能設計和數據庫設計,并根據系統(tǒng)要對功能進行了劃分和細化;系統(tǒng)實現(xiàn)部分 湖南人文科技學院畢業(yè)設計3說明了幾個主要模塊的算法及代碼設計。圍繞基于本體和 lucene 的網絡教育資源檢索系統(tǒng)的項目實施,根據開發(fā)過程,重點闡述了軟件項目開發(fā)的流程,從業(yè)務流程、功能描述等方面對系統(tǒng)進行了詳盡的分析,從數據庫邏輯模型、軟件結構、模塊加工說明、界面

18、設計四方面對系統(tǒng)進行了詳盡的設計。最后對論文進行了總結,并對指導者進行致謝。 湖南人文科技學院畢業(yè)設計4第二章第二章 開發(fā)環(huán)境和開發(fā)技術開發(fā)環(huán)境和開發(fā)技術2.1 系統(tǒng)介紹本設計所實現(xiàn)的基于本體和 lucene 的網絡教育資源檢索系統(tǒng)主要用于研究在lucene 全文檢索系統(tǒng)中,如何利用本體中的概念和術語及其之間的關系進行推理,提高搜索的質量。本系統(tǒng)分為數據庫模塊(實體模塊,facade 模塊) ,lucene 模塊(索引模塊,搜索模塊) ,本體模塊,web 模塊(模型模塊、servlet 模塊、managedbean 模塊)四個模塊,實現(xiàn)用戶的登錄與注冊、文檔的管理和分類、文檔的搜索,文檔的索引

19、、搜索關鍵字的智能提示等功能。2.2 系統(tǒng)開發(fā)環(huán)境開發(fā)與運行的環(huán)境的選擇會影響到數據庫設計,本系統(tǒng)開發(fā)與運行環(huán)境如下:操作系統(tǒng):ubuntu linux 10.04開發(fā)工具:eclipse 3.6數據庫管理系統(tǒng):mysql 5.1服務器:apache tomcat 7.0用 mysql workbench 建立數據模型,然后用模型生成建表的 sql 代碼,運行 sql 代碼創(chuàng)建數據庫模式和數據表2.3 系統(tǒng)開發(fā)技術本系統(tǒng)采用 eclipse 3.6 為開發(fā)工具,java 為編程語言,mysql 為數據庫后臺處理,使整個系統(tǒng)具有良好的可移植性,并且可以更換數據庫(支持所有主流的數據庫,如 mys

20、ql、postgresql、oracle、db2、sybase、microsoft sql server 等)和 servlet容器(apache tomcat、glassfish、jboss、weblogic、websphere 等)。2.3.1 eclipse 簡介eclipse 是一個著名的跨平臺的自由集成開發(fā)環(huán)境(ide) 。最初主要用來 java 語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比如 c+和 python 的開發(fā)工具。eclipse 的本身只是一個框架平臺,但是眾多插件的支持使得 eclipse 擁有其他功能相對固定的 ide 軟件很難具有的靈活性。許多軟件開發(fā)

21、商以 eclipse 為框架開發(fā)自己的 ide。 湖南人文科技學院畢業(yè)設計52.3.2 java 簡介java,是由 sun microsystems 公司于 1995 年 5 月推出的 java 程序設計語言和java 平臺的總稱。java 平臺由 java 虛擬機(java virtual machine)和 java 應用編程接口(application programming interface、簡稱 api)構成。java 應用編程接口為java 應用提供了一個獨立于操作系統(tǒng)的標準接口,可分為基本部分和擴展部分。2.3.3 jsf 簡介java server faces(jsf) 是

22、一種標準的 j2ee 表示層的技術,其主旨是為了使 java 開發(fā)人員能夠快速的開發(fā)基于 java 的 web 應用程序。它不同于其它 java 表示層技術的最大優(yōu)勢是其采用的組件模型,事件驅動,依賴注入。java server faces (jsf) 是一種用于構建 web 應用程序的新標準 java 框架。它提供了一種以組件為中心來開發(fā) java web 用戶界面的方法,從而簡化了開發(fā)。java server faces 的 mvc 實現(xiàn) jsf 的主要優(yōu)勢之一就是它既是 java web 用戶界面標準又是嚴格遵循模型-視圖控制器 (mvc) 設計模式的框架。用戶界面代碼(視圖)與應用程序

23、數據和邏輯(模型)的清晰分離使 jsf 應用程序更易于管理。為了準備提供頁面對應用程序數據訪問的 jsf 上下文和防止對頁面未授權或不正確的訪問,所有與應用程序的用戶交互均由一個前端“faces servlet”(控制器)來處理。2.3.4 jpa 簡介 jpa 全稱 java persistence api,jpa 通過注解或 xml 描述對象關系表的映射關系,并將運行期的實體對象持久化到數據庫中。jpa 是 j2ee 中的持久化標準規(guī)范,有很多種實現(xiàn)(hibernate jpa、eclipselink 和 toplink 等) 。2.3.5 mysql 簡介mysql 是一個跨平臺的開源數

24、據庫。 “l(fā)amp”中的“m”指的就是 mysql,它以其簡單易用的特點廣泛被廣大用戶采用, mysql 是 c/s 架構的服務器,服務器端是多線程的,支持不同的后端、多個不同的客戶程式和庫、管理工具和廣泛的應用程式接口(apis),為客戶端提供了不同的程序接口和鏈接庫,如c、c+、java、perl、php、tcl 等,也提供了簡單的管理工具,如 mysqladmin 等。mysql 是個快速的、多線程、多用戶和健壯的 sql 數據庫服務器。mysql 服務器支持關鍵任務、重負載生產系統(tǒng)的使用,也能夠將他嵌入到一個大配置(mass-deployed)的軟件中去。可以使用命令行工具管理 mys

25、ql 數據庫,也可以從 mysql 的網站下載圖形管理工具 mysql administrator、mysql query browser 和 mysql workbench。 湖南人文科技學院畢業(yè)設計6第三章第三章 可行性與需求分析可行性與需求分析3.1 可行性分析3.1.1 技術可行性jsf 實現(xiàn)表現(xiàn)層,使用 managedbean 和其他 pojo 來處理業(yè)務邏輯,jpa 完成orm 映射,再結合 lucene 建立和搜索索引,使用 owl api 分析本體,獲得相關的概念或術語,提供搜索關鍵詞提示,并提供語義擴展搜索,因此在技術上是可行的。3.1.2 社會可行性網絡教育資源的內容一般很

26、豐富,難以準確地檢索,傳統(tǒng)的檢索方式無法勝任,只有使用全文檢索引擎和本體,才能提供比較準確的檢索結果,因此本系統(tǒng)在社會上是可行的。3.1.3 經濟可行性該系統(tǒng)是個低成本的系統(tǒng),由一個人單獨開發(fā),不會花費太多的人力和財力,一臺性能良好的計算機和一系列開源免費的軟件就可以完成設計,在經濟上是可行的。3.2 系統(tǒng)目標許多含有大量內容的網站都需要提供比較準確的搜索功能方便用戶獲得自己想要的信息,網絡教育資源網站也不例外。這也是網絡教育資源應用程序開發(fā)常用的功能模塊。學生作業(yè)管理系統(tǒng)是以 jsf、jpa 和 pojo 為實現(xiàn)基礎,以檢索網絡教育資源為目的,給出了系統(tǒng)架構為 b/s 結構的網絡教育資源檢索

27、系統(tǒng),實現(xiàn)了一個全文檢索系統(tǒng)和針對領域本體的語義搜索。3.3 功能需求對于登錄用戶,可以創(chuàng)建教學文檔、刪除教學文檔、編輯教學文檔、查看教學文檔、搜索教學文檔、對教學文檔進行分類、創(chuàng)建分類、重命名分類、移動分類、嵌套分類、刪除分類。對于沒有登錄的用戶,也可以搜索教學文檔、查看教學文檔。uml 用例圖如圖 3-1 所示。 湖南人文科技學院畢業(yè)設計7圖 3-1 系統(tǒng) uml 用例圖系統(tǒng)主要分為 3 個方面的功能:(1)用戶功能:包括 用戶注冊、登錄。(2)管理教學文檔:包括創(chuàng)建文檔、編輯文檔、刪除文檔、移動文檔到其他分類、創(chuàng)建分類、移動分類、刪除分類、重命名分類和分類嵌套等,供已登錄用戶訪問。(3)

28、檢索教學文檔:包括搜索關鍵字提示、搜索文檔、搜索詞的語義擴展,供所有用戶訪問。3.4 性能需求系統(tǒng)具有良好的靈活性,可擴展性和可移植性,系統(tǒng)采用瀏覽器/服務器模型。在數據庫方面,項目使用 jpa 完成 orm 映射,使用 jpql 和實體類操作數據庫,避免了對某一種數據庫的依賴,可以很方便的移植到其他的數據庫上去。在表現(xiàn)層,使用 jsf 的 facelets 模板技術用來創(chuàng)建可維護,可重用的 web 頁。在業(yè)務層,使用managedbean 處理要顯示在頁面的數據和業(yè)務邏輯,還使用applicationcontextlistener 這個上下文監(jiān)聽器完成 web 應用程序的初始化和關閉時的資源

29、清理工作。系統(tǒng)初始化時載入并解析本體數據,提高了關鍵字提示的速度。系統(tǒng)把建立索引和刪除索引的工作交給線程池,在后臺完成,不影響用戶體驗。系統(tǒng)的文檔管理使用了 ajax 技術根據用戶需要動態(tài)載入數據(分類的樹形結構和文檔 湖南人文科技學院畢業(yè)設計8的分頁) ,減小了系統(tǒng)的開銷,提高了用戶體驗。系統(tǒng)的升級只涉及到服務端,只要服務端做出相應的修改升級,客戶端自然會實現(xiàn)新的系統(tǒng)更新。 湖南人文科技學院畢業(yè)設計9第四章第四章 系統(tǒng)概要設計系統(tǒng)概要設計4.1 模塊設計4.1.1 系統(tǒng)功能層次圖該系統(tǒng)主要由以下功能模塊組成,如圖 4-1 所示:圖 4-1 系統(tǒng)功能層次圖 湖南人文科技學院畢業(yè)設計104.1.

30、2 系統(tǒng) uml 包圖圖 4-2 系統(tǒng) uml 包圖4.1.3 數據庫模塊數據庫模塊為 .data,包含兩個子模塊:實體模塊(.data.entity)和實體操作模塊(.data.facade)。 湖南人文科技學院畢業(yè)設計11圖 4-3 實體模塊 uml 類圖實體模塊負責完成對象-關系映射,實現(xiàn) java 對象到數據庫的持久化,user 類表示用戶,category 類表示分類,doc 類表示文檔。 湖南人文科技學院畢業(yè)設計12圖 4-4 實體操作模塊 uml 類圖實體操作模塊封裝了對實體的操作:插入、刪除、更新、查詢等,abstractfacade

31、封裝了操作實體的通用操作:find、edit、create、refresh、remove 和count,其他的 faade 類繼承 abstractfacade,增加了具體對于某一類實體的操作,docfacade 封裝了對 doc 實體的操作,userfacade 封裝了對 user 實體的操作,categoryfacade 封裝了對 category 實體的操作。4.1.4 web 模塊數據庫模塊所在的包為 .web,包括 servlet 模塊(.web.servlet),managedbean 模塊(.web.managedbean)和數據模型模塊

32、(.web.model)。 湖南人文科技學院畢業(yè)設計13圖 4-5 servlet 模塊 uml 類圖servlet 模塊包含一個通用的應用程序上下文監(jiān)聽器,實現(xiàn)了使用 jpa 框架的web 應用程序的初始化工作(創(chuàng)建實體管理器工廠等)和關閉工作(關閉實體管理器工廠和 unregister 數據庫驅動),提供了在系統(tǒng)初始化和關閉時插入代碼的的抽象方法,提供了對象映射、添加對象到對象映射和從對象映射中獲取對象的方法,還包含一個子類提供持久化單元的名稱,定制系統(tǒng)初始化和關閉時的工作。 湖南人文科技學院畢業(yè)設計14圖 4-6 數據模型模塊 uml 類圖數據模型模塊提供了托管 bean

33、需要使用的一些數據模型,用于表示分類樹和文檔表,categorytreenode 表示分類樹節(jié)點,documenttable 提供 categorytreenode對 documentlazydatamodel 訪問,documentlazydatamodel 是一個用于 ajax 分頁表格的模型,能根據用戶請求動態(tài)載入數據。 湖南人文科技學院畢業(yè)設計15圖 4-7 managedbean 模塊 uml 類圖managedbean 模塊包含 jsf 頁面需要使用的托管 bean,通過配置 faces-config.xml 進行依賴注入,managedbeanconstructorutil 也提

34、供一系列靜態(tài)方法獲得其他托管 bean(session bean 和 application bean)的引用和 request、session 和response 等,userbean 管理用戶登錄,提供 login、logout 和判斷登錄狀態(tài)的方法,categorytreebean 是分類樹的模型,為顯示分類樹提供數據,并對樹節(jié)點的選擇和展開事件進行響應,動態(tài)地改變樹的結構,分類路徑和文檔表的內容。 湖南人文科技學院畢業(yè)設計16圖 4-8 用戶表單模塊 uml 類圖用戶表單模塊用來處理用戶的登錄和注冊的表單,loginform 處理用戶登錄的表單,registerform 處理用戶注冊的

35、表單。 湖南人文科技學院畢業(yè)設計17圖 4-9 文檔表單模塊 uml 類圖文檔表單模塊處理文檔的創(chuàng)建、編輯、刪除、搜索表單,實現(xiàn)文檔的查看功能,doceditform 處理文檔編輯表單,docdelform 處理文檔刪除表單,docviewform 用于從數據庫取出文檔用于顯示,docnewform 處理文檔創(chuàng)建表單,searchform 處理文檔搜索表單。 湖南人文科技學院畢業(yè)設計18圖 4-10 分類表單模塊 uml 類圖分類表單模塊處理分類的創(chuàng)建、刪除和編輯的表單,catnewform 處理分類創(chuàng)建表單,cateditform 處理分類編輯表單,catdelform 處理分類刪除表單。4

36、.1.3 lucene 模塊lucene 模塊為(.lucene),包含兩個子模塊:索引模塊(.lucene.index)和搜索模塊(.lucene.search)。 湖南人文科技學院畢業(yè)設計19圖 4-11 lucene 模塊 uml 類圖lucene 模塊完成 lucene 目錄和分析器的創(chuàng)建和關閉,實現(xiàn)對索引的創(chuàng)建、編輯、刪除和搜索,docsearcher 實現(xiàn)對索引的搜索,docindexer 實現(xiàn)對文檔的索引的操作, 湖南人文科技學院畢業(yè)設計20把操作放在線程池中執(zhí)行,writedocindextasks 實現(xiàn)了更新索引的任務,deleted

37、ocindextask 實現(xiàn)了刪除索引的任務。4.1.4 本體模塊本體模塊位于 .ontology。圖 4-12 本體模塊 uml 類圖本體模塊實現(xiàn)了本體的載入和解析,對搜索語句中的詞匯進行單詞補全和語義補全的功能,librarypath 表示本體文件的磁盤路徑,libraryfile 表示本體文件,educationontology 表示本體,getrelativewords 方法用于根據搜索語句從本體中獲得相關詞列表,包括單詞補全和語義補全。 湖南人文科技學院畢業(yè)設計214.2 系統(tǒng)數據庫設計4.2.1 eer 圖系統(tǒng) eer 圖如圖 4-5 所示:圖 4-5 系統(tǒng) eer

38、圖用戶表用來存儲用戶信息;一個用戶可以創(chuàng)建多個文檔和分類;一個分類可以包含多個分類和多個文檔。4.2.2 數據表設計系統(tǒng)主要數據庫表如下:表 4-1 用戶表(user)標識數據類型數據范圍備注emailvarchar60用戶的唯一標識,主鍵namevarchar30名字passwordvarchar20密碼表 4-2 分類表(category) 湖南人文科技學院畢業(yè)設計22標識數據類型數據范圍備注category_idint分類的唯一標識,主鍵namevarchar45分類名parent_category_idint父分類的 category_iduser_idvarchar60分類所屬用戶的

39、 email表 4-3 學生表(doc)標識數據類型數據范圍備注doc_idint文檔的唯一標識,主鍵titlevarchar60文檔的標題contentlongtext少于 4294967296 個字節(jié)(2*32)文檔的內容change_timedatetime修改時間click_numberint點擊次數user_idvarchar60所屬用戶的 emailcategory_idint所屬分類的 category_id表 4-4 索引文件表(index_file)標識數據類型數據范圍備注file_namevarchar15文件名,主鍵doc_idint文檔的 doc_id,外鍵(doc)c

40、hange_timedatetime修改時間表 4-5 管理員表(admin)標識數據類型數據范圍備注emailvarchar60管理員 email,主鍵namevarchar30名字passwordvarchar20密碼recent_login_datedate最近登錄日期4.2.3 創(chuàng)建數據表數據庫建立代碼(edusearch.sql)如下:set old_unique_checks=unique_checks, unique_checks=0;set old_foreign_key_checks=foreign_key_checks, foreign_key_checks=0; 湖南人文

41、科技學院畢業(yè)設計23set old_sql_mode=sql_mode, sql_mode=traditional;drop schema if exists edu_search ;create schema if not exists edu_search default character set utf8 ;- - table edu_search.user 用戶表- -drop table if exists edu_search.user ;create table if not exists edu_search.user ( email varchar(60) not null

42、 , name varchar(30) null , password varchar(20) not null , recent_login_date date not null , primary key (email) )engine = innodb;- - table edu_search.category 分類表- -drop table if exists edu_search.category ;create table if not exists edu_search.category ( category_id int not null auto_increment , n

43、ame varchar(45) null , prarent_category_id int null , user_id varchar(60) null , primary key (category_id) , index fk_category_1 (prarent_category_id asc) , index fk_category_2 (user_id asc) , constraint fk_category_1 foreign key (prarent_category_id ) references edu_search.category (category_id ) o

44、n delete cascade on update cascade, constraint fk_category_2 foreign key (user_id ) references edu_search.user (email ) on delete cascade on update cascade)engine = innodb;- - table edu_search.doc 文檔表- -drop table if exists edu_search.doc ;create table if not exists edu_search.doc ( doc_id int not n

45、ull auto_increment , title varchar(60) null , 湖南人文科技學院畢業(yè)設計24 content longtext null , change_time datetime null , click_number int null , user_id varchar(60) null , category_id int null , primary key (doc_id) , index fk_doc_1 (user_id asc) , index fk_doc_2 (category_id asc) , constraint fk_doc_1 fore

46、ign key (user_id ) references edu_search.user (email ) on delete cascade on update cascade, constraint fk_doc_2 foreign key (category_id ) references edu_search.category (category_id ) on delete cascade on update cascade)engine = innodb;- - table edu_search.index_file 索引文件表- -drop table if exists ed

47、u_search.index_file ;create table if not exists edu_search.index_file ( file_name varchar(15) not null , doc_id int null , change_time datetime null , primary key (file_name) , index fk_index_file_1 (doc_id asc) , constraint fk_index_file_1 foreign key (doc_id ) references edu_search.doc (doc_id ) o

48、n delete cascade on update cascade)engine = innodb;- - table edu_search.admin 管理員表- -drop table if exists edu_search.admin ;create table if not exists edu_search.admin ( email varchar(60) not null , name varchar(30) null , password varchar(20) not null , recent_login_date date not null , 湖南人文科技學院畢業(yè)設

49、計25 primary key (email) )engine = innodb;set sql_mode=old_sql_mode;set foreign_key_checks=old_foreign_key_checks;set unique_checks=old_unique_checks;數據庫功能及約束:本系統(tǒng)全部實現(xiàn)登錄用戶對數據庫的操作,如添加,刪除,更新等操作,故為了保持數據的一致性,本數據庫表設計的時候設計了主鍵約束和外鍵約束,在數據集中基本已經說明包含哪些主鍵以及外鍵,本系統(tǒng)數據庫的外鍵約束主要是doc.user_id 引用 user.email、doc.category_

50、id 引用 category.category_id 和category.category_id 引用 category.parent_category_id。 湖南人文科技學院畢業(yè)設計26第五章第五章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn)5.1 本體模塊系統(tǒng)在初始化時讀取并解析本體 xml 文檔,通過 owl api 獲取本體中所有的概念。本系統(tǒng)搜索框的自動完成的內容通過搜索本體中已知的概念及其子概念來獲得,有兩種補全方式:單詞補全和語義補全(子類補全)。它的執(zhí)行結果如圖 5-1 所示。圖 5-1 搜索框自動完成界面自動完成搜索框的界面實現(xiàn)(/web-inf/share/searchform.xhtml): 自

51、動完成的 managedbean 實現(xiàn)(.web.managedbean.autocompletesearchkeywordbean.java):public class autocompletesearchkeywordbean public list complete(string query) return ontologyutil.getcurrentinstance().getrelativewords(query,10); 湖南人文科技學院畢業(yè)設計27載入并解析本體,獲得相關詞的本體工具的實現(xiàn)(.ontology.ontologyutil.java):p

52、ublic class ontologyutil private string librarypath;private file libraryfile;private owlontologymanager manager;private owlontology educationontology;private iri educationiri;private set owlclasses;private map owlclassmap;public ontologyutil() this.librarypath = applicationcontextlistener.getcontext

53、parameter(.ontology.librarypath);if (this.librarypath != null) this.libraryfile = new file(this.librarypath);if (libraryfile.isfile() this.manager = owlmanager.createowlontologymanager();cationiri = iri.create(libraryfile);try cationontology = manager.loadontologyfromontologyd

54、ocument(cationiri);this.owlclasses = educationontology.getclassesinsignature();this.owlclassmap = new hashmap();for (owlclass owlclass : this.owlclasses) this.owlclassmap.put(owlclass.getiri().getfragment().tolowercase(locale.simplified_chinese),owlclass); catch (owlontologycreationexception

55、 e) e.printstacktrace(); 湖南人文科技學院畢業(yè)設計28public list getrelativewords(string word) return this.getrelativewords(word, 10);public list getrelativewords(string word, int maxamount) list relativewords = new arraylist(maxamount);if (cationontology != null & word != null & word.length() 0)

56、/ split to words by spacestring splitwords = word.split( );list referencewords = new linkedlist();for (int i = splitwords.length - 1; i = 0; i-) string splitword = splitwordsi;if (splitword != null & splitword.length() != 0& !referencewords.contains(splitword) referencewords.add(splitword);/

57、 word completeif (!word.endswith( ) string lastword = referencewords.get(0).tolowercase(locale.simplified_chinese);int lastwordlength = lastword.length();for (map.entry entry : this.owlclassmap.entryset() string entrykey = entry.getkey();if (entrykey.startswith(lastword)& entrykey.length() != la

58、stwordlength) string owlclassname = entry.getvalue().getiri().getfragment();relativewords.add(word+ owlclassname.substring(lastwordlength);if (relativewords.size() = maxamount) break; 湖南人文科技學院畢業(yè)設計29/ subclass completeif (relativewords.size() maxamount) list subclasses = new linkedlist();set classexp

59、ressionset = new hashset();setmap.entry entryset = this.owlclassmap.entryset();addsubclass: for (string referenceword : referencewords) for (map.entry entry : entryset) if (relativewords.size() = maxamount) break addsubclass;if (entry.getkey().equals(referenceword.tolowercase(locale.simplified_chine

60、se) owlclass owlclass = entry.getvalue();subclasses.clear();subclasses.add(owlclass);do classexpressionset.clear();for (owlclass subclass : subclasses) classexpressionset.addall(subclass.getsubclasses(educationontology);subclasses.clear();for (owlclassexpression classexpression : classexpressionset) if (relativewords.siz

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論