




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)科分類號: 520.6070 湖南人文科技學(xué)院湖南人文科技學(xué)院本科生畢業(yè)設(shè)計論文題目:基于本體和基于本體和 lucene 的網(wǎng)絡(luò)教的網(wǎng)絡(luò)教育資源檢索系統(tǒng)設(shè)計與實(shí)現(xiàn)育資源檢索系統(tǒng)設(shè)計與實(shí)現(xiàn)design and implementation of network education resources retrieval system based on ontology and lucene學(xué)生姓名:周顯光周顯光學(xué)號07408119系 部:計算機(jī)科學(xué)技術(shù)系計算機(jī)科學(xué)技術(shù)系專業(yè)年級:2007 級計算機(jī)科學(xué)與技術(shù)級計算機(jī)科學(xué)與技術(shù)指導(dǎo)教師:郭郭 廣廣 軍軍職 稱:教教 授授湖南人文科技學(xué)院教務(wù)處 2
2、009 年制湖南人文科技學(xué)院本科畢業(yè)設(shè)計誠信聲明本人鄭重聲明:所呈交的本科畢業(yè)設(shè)計,是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果,成果不存在知識產(chǎn)權(quán)爭議,除文中已經(jīng)注明引用的內(nèi)容外,本設(shè)計不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻(xiàn)的個人和集體均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律結(jié)果由本人承擔(dān)。 作者簽名: 2011年 月 日版權(quán)聲明版權(quán)所有 2010-2011 周顯光,保留所有權(quán)利。本文檔受著作權(quán)法和國際公約的保護(hù),未經(jīng)授權(quán)擅自復(fù)制或傳播本文檔的部分或全部,可能受到嚴(yán)厲的民事和刑事制裁,并在法律許可的范圍內(nèi)受到最大可能的起訴。湖南人文科
3、技學(xué)院畢業(yè)設(shè)計目 錄摘要 .iabstract.i第一章 緒 論.11.1 引言.11.2 研究背景.11.3 本文主要工作.21.4 本文的組織安排.2第二章 開發(fā)環(huán)境和開發(fā)技術(shù).42.1 系統(tǒng)介紹.42.2 系統(tǒng)開發(fā)環(huán)境.42.3 系統(tǒng)開發(fā)技術(shù).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 技術(shù)可行性.63.1.2 社會可行性.63.1.3 經(jīng)濟(jì)可行性.63.2 系統(tǒng)目標(biāo).63.3 功能需求.63.4 性能需求.7第四章
4、 系統(tǒng)概要設(shè)計.94.1 模塊設(shè)計.94.1.1 系統(tǒng)功能層次圖.94.1.2 系統(tǒng) uml 包圖.104.1.3 數(shù)據(jù)庫模塊.104.1.4 web 模塊.124.1.3 lucene 模塊.184.1.4 本體模塊.204.2 系統(tǒng)數(shù)據(jù)庫設(shè)計.214.2.1 eer 圖.214.2.2 數(shù)據(jù)表設(shè)計.214.2.3 創(chuàng)建數(shù)據(jù)表.23湖南人文科技學(xué)院畢業(yè)設(shè)計第五章 系統(tǒng)實(shí)現(xiàn).265.1 本體模塊.265.2 lucene模塊.315.2.1 索引更新模塊.325.2.2 索引搜索模塊.365.3 數(shù)據(jù)模塊.385.3.1 實(shí)體模塊.385.3.1 實(shí)體操作模塊.385.4 web模塊.385.
5、4.1 servlet 模塊 .385.4.2 managedbean 模塊.385.4.3 有關(guān)網(wǎng)頁的 facelets 實(shí)現(xiàn).41第六章 系統(tǒng)測試.436.1 系統(tǒng)搜索模塊的測試.436.2 資源模塊的測試.446.3 用戶模塊的測試.45結(jié)束語.47致 謝.48參考文獻(xiàn).48湖南人文科技學(xué)院畢業(yè)設(shè)計i基于本體和基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)設(shè)計與實(shí)現(xiàn)的網(wǎng)絡(luò)教育資源檢索系統(tǒng)設(shè)計與實(shí)現(xiàn)摘要摘要:隨著 internet/intranet 的迅速發(fā)展和廣泛普及,越來越多的 web2.0 網(wǎng)站的出現(xiàn),internet 上的信息量呈指數(shù)級增長,人們需要從浩如煙海的網(wǎng)絡(luò)中快速、準(zhǔn)確地
6、找到自己需要的信息,這是信息時代的必然要求,所以對網(wǎng)站內(nèi)容的索引和搜索將會變得越來越重要。本設(shè)計在對網(wǎng)絡(luò)教育資源檢索系統(tǒng)的需求分析的基礎(chǔ)上,以 eclipse 3.6 為集成開發(fā)環(huán)境,mysql 為后臺數(shù)據(jù)庫,使用 jsf、jpa 框架和 lucene、owl api 設(shè)計實(shí)現(xiàn)了基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)。該系統(tǒng)主要實(shí)現(xiàn)了用戶登錄與注冊、網(wǎng)絡(luò)教育資源的管理與搜索。系統(tǒng)測試表明,該系統(tǒng)運(yùn)行穩(wěn)定,可訪問性、可靠性很好,操作簡單方便。 關(guā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 湖南人文科技學(xué)院畢業(yè)設(shè)計1第一章第一章 緒緒 論論1.1 引言由于 internet 的迅猛發(fā)展,信息迅速膨脹,人們對信息查詢的準(zhǔn)確率的要求也越來越高,而全文檢索系統(tǒng)因?yàn)闄z索功能強(qiáng)大、效率高而越來越流行。lucene 是一個基于 java 的開放源代碼的全文檢索引擎工具包,能夠方便地嵌入到各種應(yīng)用
11、中實(shí)現(xiàn)索引和搜索功能。本系統(tǒng)用此技術(shù)來實(shí)現(xiàn)對網(wǎng)絡(luò)教育資源的全文檢索,通過對索引的查詢可以快速、可靠的得到相關(guān)信息,并在查詢過程中應(yīng)用中文分詞技術(shù),以使得查詢結(jié)果更加準(zhǔn)確和全面。 傳統(tǒng)的數(shù)據(jù)庫檢索方式大都采用傳統(tǒng)的關(guān)鍵詞匹配算法進(jìn)行查詢,并不能很準(zhǔn)確地返回相關(guān)信息,無法理解語義。而用來對特定領(lǐng)域的概念及術(shù)語給予明確的形式化描述的本體論不僅為規(guī)范化資源描述及用戶查詢提供了基礎(chǔ),也為更準(zhǔn)確地搜索信息提供了保證。本人在此項(xiàng)目中使用 protg 建立了知識本體,并使用 owl api 解析本體,實(shí)現(xiàn)了一個能使用本體中已有的概念進(jìn)行的單詞補(bǔ)全,并查找特定概念的子概念,實(shí)現(xiàn)了推理補(bǔ)全,這兩者組成了搜索框的自
12、動完成功能,能在用戶搜索時提供相關(guān)的關(guān)鍵字智能提示,還可以對搜索詞進(jìn)行語義擴(kuò)展后搜索。1.2 研究背景l(fā)ucene 是 apache 軟件基金會 jakarta 項(xiàng)目組的一個子項(xiàng)目,是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言) 。 lucene 的目的是為軟件開發(fā)人員提供一個簡單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。在計算機(jī)科學(xué)與信息科學(xué)領(lǐng)域,理論上,本體是指一種“形式化的,對于共享概念體系的明確而又詳細(xì)的說明
13、”。本體提供的是一種共享詞表,也就是特定領(lǐng)域之中那些存在著的對象類型或概念及其屬性和相互關(guān)系;或者說,本體就是一種特殊類型的術(shù)語集,具有結(jié)構(gòu)化的特點(diǎn),且更加適合于在計算機(jī)系統(tǒng)之中使用;或者說,本體實(shí)際上就是對特定領(lǐng)域之中某套概念及其相互之間關(guān)系的形式化表達(dá)(formal representation) 。本體是人們以自己興趣領(lǐng)域的知識為素材,運(yùn)用信息科學(xué)的本體論原理而編寫出來的作品(artifacts) 。本體一般可以用來針對該領(lǐng)域的屬性進(jìn)行推理,亦可用于定義該領(lǐng)域(也就是對該領(lǐng)域進(jìn)行建模) 。 湖南人文科技學(xué)院畢業(yè)設(shè)計21.3 本文主要工作本系統(tǒng)從建立之初就注重良好的設(shè)計、效率和可移植性,系
14、統(tǒng)先使用 mysql workbench 建立數(shù)據(jù)庫模型,然后將 eer 模型生成建表的 sql 腳本并放在 mysql中運(yùn)行,以此來創(chuàng)建數(shù)據(jù)表。本項(xiàng)目使用的集成開發(fā)環(huán)境是 eclipse 3.6,持久層使用jpa2.0(eclipselink 的實(shí)現(xiàn))框架完成對象-關(guān)系映射,web 層使用 jsf2.0(使用 sun 的實(shí)現(xiàn)和 primefaces 的擴(kuò)展)框架,web 和 servlet 容器是 apache tomcat 7.0。系統(tǒng)整體架構(gòu)為 b/s 模式,遵循 mvc 模式開發(fā),代碼符合 javaee 6 標(biāo)準(zhǔn),使用 jpa 完成orm 映射,使用 jsf 的 facelets 模板
15、技術(shù),將用戶界面設(shè)計與業(yè)務(wù)邏輯分離,利用pojo 做實(shí)現(xiàn),在 facelets 模板中使用 jsf 的標(biāo)準(zhǔn)標(biāo)簽、primefaces 擴(kuò)展標(biāo)簽、jstl標(biāo)簽和 el 表達(dá)式實(shí)現(xiàn)可維護(hù),可重用的視圖,具體實(shí)現(xiàn)操作利用 jsf 的managedbean 的方法作為 action 或 acitionlistener,在 faces-config.xml 中定義頁面導(dǎo)航規(guī)則作為控制器,通過對 jpa 實(shí)體類及其 facade 類的操作實(shí)現(xiàn)對數(shù)據(jù)庫的操作,使用實(shí)體類和 pojo 作為模型,使用 managedbean 和 pojo 實(shí)現(xiàn)業(yè)務(wù)邏輯。對基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)的功能進(jìn)
16、行分析,主要是分析對網(wǎng)絡(luò)教育資源的管理、索引和搜索,以及解析本體中的特定類的子類的功能實(shí)現(xiàn)。其次進(jìn)行概要設(shè)計,將系統(tǒng)分為 4 個模塊:數(shù)據(jù)庫模塊(實(shí)體模塊,facade 模塊) ,lucene 模塊(索引模塊,搜索模塊) ,本體模塊,web 模塊(模型模塊、servlet 模塊、managedbean 模塊) 。再次進(jìn)行數(shù)據(jù)庫設(shè)計,基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)擁有多個數(shù)據(jù)表,為了實(shí)現(xiàn)相應(yīng)的功能模塊,需要對數(shù)據(jù)庫進(jìn)行相應(yīng)的設(shè)計。然后進(jìn)行詳細(xì)設(shè)計,最后系統(tǒng)測試。開發(fā)一個基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)必須經(jīng)過以下階段:可行性研究階段需求分析階段總體設(shè)計階段詳細(xì)設(shè)
17、計階段系統(tǒng)實(shí)現(xiàn)階段測試階段1.4 本文的組織安排文章緒論部分對本系統(tǒng)的背景和現(xiàn)狀進(jìn)行了簡要的介紹,分析了本文的主要工作任務(wù);系統(tǒng)分析部分,包括開發(fā)環(huán)境和技術(shù)分析、可行性分析、需求分析、系統(tǒng)功能分析等,為設(shè)計和理解應(yīng)用程序做了很好的鋪墊;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計和數(shù)據(jù)庫設(shè)計,并根據(jù)系統(tǒng)要對功能進(jìn)行了劃分和細(xì)化;系統(tǒng)實(shí)現(xiàn)部分 湖南人文科技學(xué)院畢業(yè)設(shè)計3說明了幾個主要模塊的算法及代碼設(shè)計。圍繞基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)的項(xiàng)目實(shí)施,根據(jù)開發(fā)過程,重點(diǎn)闡述了軟件項(xiàng)目開發(fā)的流程,從業(yè)務(wù)流程、功能描述等方面對系統(tǒng)進(jìn)行了詳盡的分析,從數(shù)據(jù)庫邏輯模型、軟件結(jié)構(gòu)、模塊加工說明、界面
18、設(shè)計四方面對系統(tǒng)進(jìn)行了詳盡的設(shè)計。最后對論文進(jìn)行了總結(jié),并對指導(dǎo)者進(jìn)行致謝。 湖南人文科技學(xué)院畢業(yè)設(shè)計4第二章第二章 開發(fā)環(huán)境和開發(fā)技術(shù)開發(fā)環(huán)境和開發(fā)技術(shù)2.1 系統(tǒng)介紹本設(shè)計所實(shí)現(xiàn)的基于本體和 lucene 的網(wǎng)絡(luò)教育資源檢索系統(tǒng)主要用于研究在lucene 全文檢索系統(tǒng)中,如何利用本體中的概念和術(shù)語及其之間的關(guān)系進(jìn)行推理,提高搜索的質(zhì)量。本系統(tǒng)分為數(shù)據(jù)庫模塊(實(shí)體模塊,facade 模塊) ,lucene 模塊(索引模塊,搜索模塊) ,本體模塊,web 模塊(模型模塊、servlet 模塊、managedbean 模塊)四個模塊,實(shí)現(xiàn)用戶的登錄與注冊、文檔的管理和分類、文檔的搜索,文檔的索引
19、、搜索關(guān)鍵字的智能提示等功能。2.2 系統(tǒng)開發(fā)環(huán)境開發(fā)與運(yùn)行的環(huán)境的選擇會影響到數(shù)據(jù)庫設(shè)計,本系統(tǒng)開發(fā)與運(yùn)行環(huán)境如下:操作系統(tǒng):ubuntu linux 10.04開發(fā)工具:eclipse 3.6數(shù)據(jù)庫管理系統(tǒng):mysql 5.1服務(wù)器:apache tomcat 7.0用 mysql workbench 建立數(shù)據(jù)模型,然后用模型生成建表的 sql 代碼,運(yùn)行 sql 代碼創(chuàng)建數(shù)據(jù)庫模式和數(shù)據(jù)表2.3 系統(tǒng)開發(fā)技術(shù)本系統(tǒng)采用 eclipse 3.6 為開發(fā)工具,java 為編程語言,mysql 為數(shù)據(jù)庫后臺處理,使整個系統(tǒng)具有良好的可移植性,并且可以更換數(shù)據(jù)庫(支持所有主流的數(shù)據(jù)庫,如 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ā),但是目前亦有人通過插件使其作為其他計算機(jī)語言比如 c+和 python 的開發(fā)工具。eclipse 的本身只是一個框架平臺,但是眾多插件的支持使得 eclipse 擁有其他功能相對固定的 ide 軟件很難具有的靈活性。許多軟件開發(fā)
21、商以 eclipse 為框架開發(fā)自己的 ide。 湖南人文科技學(xué)院畢業(yè)設(shè)計52.3.2 java 簡介java,是由 sun microsystems 公司于 1995 年 5 月推出的 java 程序設(shè)計語言和java 平臺的總稱。java 平臺由 java 虛擬機(jī)(java virtual machine)和 java 應(yīng)用編程接口(application programming interface、簡稱 api)構(gòu)成。java 應(yīng)用編程接口為java 應(yīng)用提供了一個獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。2.3.3 jsf 簡介java server faces(jsf) 是
22、一種標(biāo)準(zhǔn)的 j2ee 表示層的技術(shù),其主旨是為了使 java 開發(fā)人員能夠快速的開發(fā)基于 java 的 web 應(yīng)用程序。它不同于其它 java 表示層技術(shù)的最大優(yōu)勢是其采用的組件模型,事件驅(qū)動,依賴注入。java server faces (jsf) 是一種用于構(gòu)建 web 應(yīng)用程序的新標(biāo)準(zhǔn) java 框架。它提供了一種以組件為中心來開發(fā) java web 用戶界面的方法,從而簡化了開發(fā)。java server faces 的 mvc 實(shí)現(xiàn) jsf 的主要優(yōu)勢之一就是它既是 java web 用戶界面標(biāo)準(zhǔn)又是嚴(yán)格遵循模型-視圖控制器 (mvc) 設(shè)計模式的框架。用戶界面代碼(視圖)與應(yīng)用程序
23、數(shù)據(jù)和邏輯(模型)的清晰分離使 jsf 應(yīng)用程序更易于管理。為了準(zhǔn)備提供頁面對應(yīng)用程序數(shù)據(jù)訪問的 jsf 上下文和防止對頁面未授權(quán)或不正確的訪問,所有與應(yīng)用程序的用戶交互均由一個前端“faces servlet”(控制器)來處理。2.3.4 jpa 簡介 jpa 全稱 java persistence api,jpa 通過注解或 xml 描述對象關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對象持久化到數(shù)據(jù)庫中。jpa 是 j2ee 中的持久化標(biāo)準(zhǔn)規(guī)范,有很多種實(shí)現(xiàn)(hibernate jpa、eclipselink 和 toplink 等) 。2.3.5 mysql 簡介mysql 是一個跨平臺的開源數(shù)
24、據(jù)庫。 “l(fā)amp”中的“m”指的就是 mysql,它以其簡單易用的特點(diǎn)廣泛被廣大用戶采用, mysql 是 c/s 架構(gòu)的服務(wù)器,服務(wù)器端是多線程的,支持不同的后端、多個不同的客戶程式和庫、管理工具和廣泛的應(yīng)用程式接口(apis),為客戶端提供了不同的程序接口和鏈接庫,如c、c+、java、perl、php、tcl 等,也提供了簡單的管理工具,如 mysqladmin 等。mysql 是個快速的、多線程、多用戶和健壯的 sql 數(shù)據(jù)庫服務(wù)器。mysql 服務(wù)器支持關(guān)鍵任務(wù)、重負(fù)載生產(chǎn)系統(tǒng)的使用,也能夠?qū)⑺度氲揭粋€大配置(mass-deployed)的軟件中去??梢允褂妹钚泄ぞ吖芾?mys
25、ql 數(shù)據(jù)庫,也可以從 mysql 的網(wǎng)站下載圖形管理工具 mysql administrator、mysql query browser 和 mysql workbench。 湖南人文科技學(xué)院畢業(yè)設(shè)計6第三章第三章 可行性與需求分析可行性與需求分析3.1 可行性分析3.1.1 技術(shù)可行性jsf 實(shí)現(xiàn)表現(xiàn)層,使用 managedbean 和其他 pojo 來處理業(yè)務(wù)邏輯,jpa 完成orm 映射,再結(jié)合 lucene 建立和搜索索引,使用 owl api 分析本體,獲得相關(guān)的概念或術(shù)語,提供搜索關(guān)鍵詞提示,并提供語義擴(kuò)展搜索,因此在技術(shù)上是可行的。3.1.2 社會可行性網(wǎng)絡(luò)教育資源的內(nèi)容一般很
26、豐富,難以準(zhǔn)確地檢索,傳統(tǒng)的檢索方式無法勝任,只有使用全文檢索引擎和本體,才能提供比較準(zhǔn)確的檢索結(jié)果,因此本系統(tǒng)在社會上是可行的。3.1.3 經(jīng)濟(jì)可行性該系統(tǒng)是個低成本的系統(tǒng),由一個人單獨(dú)開發(fā),不會花費(fèi)太多的人力和財力,一臺性能良好的計算機(jī)和一系列開源免費(fèi)的軟件就可以完成設(shè)計,在經(jīng)濟(jì)上是可行的。3.2 系統(tǒng)目標(biāo)許多含有大量內(nèi)容的網(wǎng)站都需要提供比較準(zhǔn)確的搜索功能方便用戶獲得自己想要的信息,網(wǎng)絡(luò)教育資源網(wǎng)站也不例外。這也是網(wǎng)絡(luò)教育資源應(yīng)用程序開發(fā)常用的功能模塊。學(xué)生作業(yè)管理系統(tǒng)是以 jsf、jpa 和 pojo 為實(shí)現(xiàn)基礎(chǔ),以檢索網(wǎng)絡(luò)教育資源為目的,給出了系統(tǒng)架構(gòu)為 b/s 結(jié)構(gòu)的網(wǎng)絡(luò)教育資源檢索
27、系統(tǒng),實(shí)現(xiàn)了一個全文檢索系統(tǒng)和針對領(lǐng)域本體的語義搜索。3.3 功能需求對于登錄用戶,可以創(chuàng)建教學(xué)文檔、刪除教學(xué)文檔、編輯教學(xué)文檔、查看教學(xué)文檔、搜索教學(xué)文檔、對教學(xué)文檔進(jìn)行分類、創(chuàng)建分類、重命名分類、移動分類、嵌套分類、刪除分類。對于沒有登錄的用戶,也可以搜索教學(xué)文檔、查看教學(xué)文檔。uml 用例圖如圖 3-1 所示。 湖南人文科技學(xué)院畢業(yè)設(shè)計7圖 3-1 系統(tǒng) uml 用例圖系統(tǒng)主要分為 3 個方面的功能:(1)用戶功能:包括 用戶注冊、登錄。(2)管理教學(xué)文檔:包括創(chuàng)建文檔、編輯文檔、刪除文檔、移動文檔到其他分類、創(chuàng)建分類、移動分類、刪除分類、重命名分類和分類嵌套等,供已登錄用戶訪問。(3)
28、檢索教學(xué)文檔:包括搜索關(guān)鍵字提示、搜索文檔、搜索詞的語義擴(kuò)展,供所有用戶訪問。3.4 性能需求系統(tǒng)具有良好的靈活性,可擴(kuò)展性和可移植性,系統(tǒng)采用瀏覽器/服務(wù)器模型。在數(shù)據(jù)庫方面,項(xiàng)目使用 jpa 完成 orm 映射,使用 jpql 和實(shí)體類操作數(shù)據(jù)庫,避免了對某一種數(shù)據(jù)庫的依賴,可以很方便的移植到其他的數(shù)據(jù)庫上去。在表現(xiàn)層,使用 jsf 的 facelets 模板技術(shù)用來創(chuàng)建可維護(hù),可重用的 web 頁。在業(yè)務(wù)層,使用managedbean 處理要顯示在頁面的數(shù)據(jù)和業(yè)務(wù)邏輯,還使用applicationcontextlistener 這個上下文監(jiān)聽器完成 web 應(yīng)用程序的初始化和關(guān)閉時的資源
29、清理工作。系統(tǒng)初始化時載入并解析本體數(shù)據(jù),提高了關(guān)鍵字提示的速度。系統(tǒng)把建立索引和刪除索引的工作交給線程池,在后臺完成,不影響用戶體驗(yàn)。系統(tǒng)的文檔管理使用了 ajax 技術(shù)根據(jù)用戶需要動態(tài)載入數(shù)據(jù)(分類的樹形結(jié)構(gòu)和文檔 湖南人文科技學(xué)院畢業(yè)設(shè)計8的分頁) ,減小了系統(tǒng)的開銷,提高了用戶體驗(yàn)。系統(tǒng)的升級只涉及到服務(wù)端,只要服務(wù)端做出相應(yīng)的修改升級,客戶端自然會實(shí)現(xiàn)新的系統(tǒng)更新。 湖南人文科技學(xué)院畢業(yè)設(shè)計9第四章第四章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計4.1 模塊設(shè)計4.1.1 系統(tǒng)功能層次圖該系統(tǒng)主要由以下功能模塊組成,如圖 4-1 所示:圖 4-1 系統(tǒng)功能層次圖 湖南人文科技學(xué)院畢業(yè)設(shè)計104.1.
30、2 系統(tǒng) uml 包圖圖 4-2 系統(tǒng) uml 包圖4.1.3 數(shù)據(jù)庫模塊數(shù)據(jù)庫模塊為 .data,包含兩個子模塊:實(shí)體模塊(.data.entity)和實(shí)體操作模塊(.data.facade)。 湖南人文科技學(xué)院畢業(yè)設(shè)計11圖 4-3 實(shí)體模塊 uml 類圖實(shí)體模塊負(fù)責(zé)完成對象-關(guān)系映射,實(shí)現(xiàn) java 對象到數(shù)據(jù)庫的持久化,user 類表示用戶,category 類表示分類,doc 類表示文檔。 湖南人文科技學(xué)院畢業(yè)設(shè)計12圖 4-4 實(shí)體操作模塊 uml 類圖實(shí)體操作模塊封裝了對實(shí)體的操作:插入、刪除、更新、查詢等,abstractfacade
31、封裝了操作實(shí)體的通用操作:find、edit、create、refresh、remove 和count,其他的 faade 類繼承 abstractfacade,增加了具體對于某一類實(shí)體的操作,docfacade 封裝了對 doc 實(shí)體的操作,userfacade 封裝了對 user 實(shí)體的操作,categoryfacade 封裝了對 category 實(shí)體的操作。4.1.4 web 模塊數(shù)據(jù)庫模塊所在的包為 .web,包括 servlet 模塊(.web.servlet),managedbean 模塊(.web.managedbean)和數(shù)據(jù)模型模塊
32、(.web.model)。 湖南人文科技學(xué)院畢業(yè)設(shè)計13圖 4-5 servlet 模塊 uml 類圖servlet 模塊包含一個通用的應(yīng)用程序上下文監(jiān)聽器,實(shí)現(xiàn)了使用 jpa 框架的web 應(yīng)用程序的初始化工作(創(chuàng)建實(shí)體管理器工廠等)和關(guān)閉工作(關(guān)閉實(shí)體管理器工廠和 unregister 數(shù)據(jù)庫驅(qū)動),提供了在系統(tǒng)初始化和關(guān)閉時插入代碼的的抽象方法,提供了對象映射、添加對象到對象映射和從對象映射中獲取對象的方法,還包含一個子類提供持久化單元的名稱,定制系統(tǒng)初始化和關(guān)閉時的工作。 湖南人文科技學(xué)院畢業(yè)設(shè)計14圖 4-6 數(shù)據(jù)模型模塊 uml 類圖數(shù)據(jù)模型模塊提供了托管 bean
33、需要使用的一些數(shù)據(jù)模型,用于表示分類樹和文檔表,categorytreenode 表示分類樹節(jié)點(diǎn),documenttable 提供 categorytreenode對 documentlazydatamodel 訪問,documentlazydatamodel 是一個用于 ajax 分頁表格的模型,能根據(jù)用戶請求動態(tài)載入數(shù)據(jù)。 湖南人文科技學(xué)院畢業(yè)設(shè)計15圖 4-7 managedbean 模塊 uml 類圖managedbean 模塊包含 jsf 頁面需要使用的托管 bean,通過配置 faces-config.xml 進(jìn)行依賴注入,managedbeanconstructorutil 也提
34、供一系列靜態(tài)方法獲得其他托管 bean(session bean 和 application bean)的引用和 request、session 和response 等,userbean 管理用戶登錄,提供 login、logout 和判斷登錄狀態(tài)的方法,categorytreebean 是分類樹的模型,為顯示分類樹提供數(shù)據(jù),并對樹節(jié)點(diǎn)的選擇和展開事件進(jìn)行響應(yīng),動態(tài)地改變樹的結(jié)構(gòu),分類路徑和文檔表的內(nèi)容。 湖南人文科技學(xué)院畢業(yè)設(shè)計16圖 4-8 用戶表單模塊 uml 類圖用戶表單模塊用來處理用戶的登錄和注冊的表單,loginform 處理用戶登錄的表單,registerform 處理用戶注冊的
35、表單。 湖南人文科技學(xué)院畢業(yè)設(shè)計17圖 4-9 文檔表單模塊 uml 類圖文檔表單模塊處理文檔的創(chuàng)建、編輯、刪除、搜索表單,實(shí)現(xiàn)文檔的查看功能,doceditform 處理文檔編輯表單,docdelform 處理文檔刪除表單,docviewform 用于從數(shù)據(jù)庫取出文檔用于顯示,docnewform 處理文檔創(chuàng)建表單,searchform 處理文檔搜索表單。 湖南人文科技學(xué)院畢業(yè)設(shè)計18圖 4-10 分類表單模塊 uml 類圖分類表單模塊處理分類的創(chuàng)建、刪除和編輯的表單,catnewform 處理分類創(chuàng)建表單,cateditform 處理分類編輯表單,catdelform 處理分類刪除表單。4
36、.1.3 lucene 模塊lucene 模塊為(.lucene),包含兩個子模塊:索引模塊(.lucene.index)和搜索模塊(.lucene.search)。 湖南人文科技學(xué)院畢業(yè)設(shè)計19圖 4-11 lucene 模塊 uml 類圖lucene 模塊完成 lucene 目錄和分析器的創(chuàng)建和關(guān)閉,實(shí)現(xiàn)對索引的創(chuàng)建、編輯、刪除和搜索,docsearcher 實(shí)現(xiàn)對索引的搜索,docindexer 實(shí)現(xiàn)對文檔的索引的操作, 湖南人文科技學(xué)院畢業(yè)設(shè)計20把操作放在線程池中執(zhí)行,writedocindextasks 實(shí)現(xiàn)了更新索引的任務(wù),deleted
37、ocindextask 實(shí)現(xiàn)了刪除索引的任務(wù)。4.1.4 本體模塊本體模塊位于 .ontology。圖 4-12 本體模塊 uml 類圖本體模塊實(shí)現(xiàn)了本體的載入和解析,對搜索語句中的詞匯進(jìn)行單詞補(bǔ)全和語義補(bǔ)全的功能,librarypath 表示本體文件的磁盤路徑,libraryfile 表示本體文件,educationontology 表示本體,getrelativewords 方法用于根據(jù)搜索語句從本體中獲得相關(guān)詞列表,包括單詞補(bǔ)全和語義補(bǔ)全。 湖南人文科技學(xué)院畢業(yè)設(shè)計214.2 系統(tǒng)數(shù)據(jù)庫設(shè)計4.2.1 eer 圖系統(tǒng) eer 圖如圖 4-5 所示:圖 4-5 系統(tǒng) eer
38、圖用戶表用來存儲用戶信息;一個用戶可以創(chuàng)建多個文檔和分類;一個分類可以包含多個分類和多個文檔。4.2.2 數(shù)據(jù)表設(shè)計系統(tǒng)主要數(shù)據(jù)庫表如下:表 4-1 用戶表(user)標(biāo)識數(shù)據(jù)類型數(shù)據(jù)范圍備注emailvarchar60用戶的唯一標(biāo)識,主鍵namevarchar30名字passwordvarchar20密碼表 4-2 分類表(category) 湖南人文科技學(xué)院畢業(yè)設(shè)計22標(biāo)識數(shù)據(jù)類型數(shù)據(jù)范圍備注category_idint分類的唯一標(biāo)識,主鍵namevarchar45分類名parent_category_idint父分類的 category_iduser_idvarchar60分類所屬用戶的
39、 email表 4-3 學(xué)生表(doc)標(biāo)識數(shù)據(jù)類型數(shù)據(jù)范圍備注doc_idint文檔的唯一標(biāo)識,主鍵titlevarchar60文檔的標(biāo)題contentlongtext少于 4294967296 個字節(jié)(2*32)文檔的內(nèi)容change_timedatetime修改時間click_numberint點(diǎn)擊次數(shù)user_idvarchar60所屬用戶的 emailcategory_idint所屬分類的 category_id表 4-4 索引文件表(index_file)標(biāo)識數(shù)據(jù)類型數(shù)據(jù)范圍備注file_namevarchar15文件名,主鍵doc_idint文檔的 doc_id,外鍵(doc)c
40、hange_timedatetime修改時間表 4-5 管理員表(admin)標(biāo)識數(shù)據(jù)類型數(shù)據(jù)范圍備注emailvarchar60管理員 email,主鍵namevarchar30名字passwordvarchar20密碼recent_login_datedate最近登錄日期4.2.3 創(chuàng)建數(shù)據(jù)表數(shù)據(jù)庫建立代碼(edusearch.sql)如下:set old_unique_checks=unique_checks, unique_checks=0;set old_foreign_key_checks=foreign_key_checks, foreign_key_checks=0; 湖南人文
41、科技學(xué)院畢業(yè)設(shè)計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 , 湖南人文科技學(xué)院畢業(yè)設(shè)計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 , 湖南人文科技學(xué)院畢業(yè)設(shè)
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;數(shù)據(jù)庫功能及約束:本系統(tǒng)全部實(shí)現(xiàn)登錄用戶對數(shù)據(jù)庫的操作,如添加,刪除,更新等操作,故為了保持?jǐn)?shù)據(jù)的一致性,本數(shù)據(jù)庫表設(shè)計的時候設(shè)計了主鍵約束和外鍵約束,在數(shù)據(jù)集中基本已經(jīng)說明包含哪些主鍵以及外鍵,本系統(tǒng)數(shù)據(jù)庫的外鍵約束主要是doc.user_id 引用 user.email、doc.category_
50、id 引用 category.category_id 和category.category_id 引用 category.parent_category_id。 湖南人文科技學(xué)院畢業(yè)設(shè)計26第五章第五章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)5.1 本體模塊系統(tǒng)在初始化時讀取并解析本體 xml 文檔,通過 owl api 獲取本體中所有的概念。本系統(tǒng)搜索框的自動完成的內(nèi)容通過搜索本體中已知的概念及其子概念來獲得,有兩種補(bǔ)全方式:單詞補(bǔ)全和語義補(bǔ)全(子類補(bǔ)全)。它的執(zhí)行結(jié)果如圖 5-1 所示。圖 5-1 搜索框自動完成界面自動完成搜索框的界面實(shí)現(xiàn)(/web-inf/share/searchform.xhtml): 自
51、動完成的 managedbean 實(shí)現(xiàn)(.web.managedbean.autocompletesearchkeywordbean.java):public class autocompletesearchkeywordbean public list complete(string query) return ontologyutil.getcurrentinstance().getrelativewords(query,10); 湖南人文科技學(xué)院畢業(yè)設(shè)計27載入并解析本體,獲得相關(guān)詞的本體工具的實(shí)現(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(); 湖南人文科技學(xué)院畢業(yè)設(shè)計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; 湖南人文科技學(xué)院畢業(yè)設(shè)計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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 場地擴(kuò)建打樁方案(3篇)
- DB23-T3028-2021-鮮食甜玉米機(jī)械化栽培技術(shù)規(guī)程-黑龍江省
- DB23-T2928-2021-基于水生態(tài)功能分區(qū)的流域水環(huán)境監(jiān)測方法指南-黑龍江省
- DB23-T2839-2021-政務(wù)信息資源目錄第1部分:編碼規(guī)則-黑龍江省
- 農(nóng)業(yè)基地現(xiàn)場管理制度
- 公司接待廚房管理制度
- 崗位定員設(shè)置管理制度
- 工程現(xiàn)場質(zhì)量管理制度
- 文明施工措施方案(3篇)
- 建筑圍擋招標(biāo)方案(3篇)
- 中考數(shù)學(xué)-規(guī)律探究型問題(2種命題預(yù)測+17種題型合集+專題訓(xùn)練)(含答案)
- 建筑與環(huán)境設(shè)計專題知到智慧樹章節(jié)測試課后答案2024年秋寧夏大學(xué)
- 2025年中國國際貨運(yùn)航空股份有限公司招聘筆試參考題庫含答案解析
- 2025年全球及中國電池包用防爆閥行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 遼寧省沈陽126中學(xué)2025屆中考生物考前最后一卷含解析
- 4S店燒烤活動方案
- 《大氣輻射學(xué)》課件
- 新課標(biāo)(水平三)體育與健康《籃球》大單元教學(xué)計劃及配套教案(18課時)
- 精神衛(wèi)生機(jī)構(gòu)污水處理方案
- 延長石油集團(tuán)招聘筆試
- 產(chǎn)品數(shù)字護(hù)照(DPP)技術(shù)發(fā)展報告(2023年)
評論
0/150
提交評論