




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