[發明專利]開源軟件獲取與搜索系統的實現方法有效
| 申請號: | 201210097169.4 | 申請日: | 2012-04-05 |
| 公開(公告)號: | CN102760151A | 公開(公告)日: | 2012-10-31 |
| 發明(設計)人: | 王懷民;李翔;尹剛;朱沿旭;史殿習;王濤;袁霖;滕猛;劉惠;余躍 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京安博達知識產權代理有限公司 11271 | 代理人: | 徐國文 |
| 地址: | 410073 湖南*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 軟件 獲取 搜索 系統 實現 方法 | ||
技術領域
本發明涉及一種開源軟件獲取與搜索系統的實現方法,特別是在跨多個開源社區的環境下,一種基于定向網絡爬蟲、信息抽取的開源軟件搜索系統的構造方法。
背景技術
近年來,國內外開源軟件運動取得了蓬勃發展,已經形成眾多擁有大量開發人員、開源項目和開源社區的軟件開發和應用的開源軟件生態系統。目前開源軟件業界有如下發展趨勢:
1.開源項目和開發人員數量龐大并逐年穩定增長;
2.少數優秀的開源項目發展迅速并且得到廣泛應用;
3.多數開源項目處于較低的發展水平且處于緩慢發展狀態;
這些特征使得從海量開源軟件項目中發現和選擇高質量且滿足特定需求的開源軟件成為急需解決問題。傳統搜索引擎由于其缺乏針對性,搜索結果中有效信息含量不高,因此難以應對這樣的需求。開源軟件社區作為開源軟件的托管平臺,其頁面有著豐富的開源項目描述信息,對于開源軟件的共享、評價和選擇具有重要價值。開源社區大多集成了針對社區內開源軟件的搜索引擎和條件選擇服務,然而要在全球范圍內選擇和查找開源軟件,綜合跨社區的軟件信息,構建跨社區的開源軟件搜索引擎勢在必行。
近年來,國內外針對跨社區的開源軟件頁面數據收集開展了大量的研究和實踐。美國Syracuse大學的FLOSSmole項目在該領域做出了突出成績。通過使用275個網絡爬蟲,該項目從20多個社區中爬取了近500,000個開源項目的頁面數據。但由于該工作只進行了數據的搜集,對外僅提供sq1查詢接口和sq1數據包的下載,而并沒有提供數據的綜合、展現、搜索等功能,因此并不能幫助人們搜索與獲取軟件。
國內面向開源軟件的搜索引擎研究還處于起步階段,其中比較有影響力的包括開源中國社區、CSDN開源社區、中國Linux社區等。開源中國社區中的開源軟件信息主要來自用戶人工編輯,數目和質量上都有明顯的局限性;CSDN社區中的開源資源主要是用戶自行共享上傳的工具包或代碼庫;來源混雜,格式不統一,描述不完備;而Linux社區的開源軟件主要局限在Linux系統相關的包和工具。總的來說,當前這些社區缺乏一個涵蓋面廣,數據全面,格式統一的開源軟件信息庫,以及基于該信息庫的一種為用戶查詢和選擇開源軟件提供推薦和幫助的搜索引擎技術。
發明內容
本發明要解決的問題是:針對現有技術在跨社區信息獲取和信息綜合展現方面的不足,提出一種開源軟件搜索系統的實現方法,使得能夠廣泛搜集多個社區的開源軟件信息,為預期用戶提供軟件查找和推薦服務。本發明的技術方案包括以下步驟:
步驟1、搭建數據服務。在企業級服務器上配置關系數據庫管理軟件,搭建關系與對象映射框架,使得上層應用程序對關系數據庫進行調用時能使業務層代碼能夠以對象的方式訪問和更新數據庫里的信息。
步驟2、網頁獲取。接收用戶的輸入定義,確定一定數目的已知URL地址的開源社區集合,通過爬蟲抓取開源社區中的開源軟件主頁,將開源項目的爬取分為開源項目列表頁爬取和開源項目主頁爬取兩個階段。
步驟3、開源屬性抽取。從爬取到的頁面中抽取開源軟件領域的信息即開源屬性,如項目編程語言、證書、運行環境、開發狀態、注冊時間、最新發布時間、下載次數、主頁鏈接等。
步驟4、對跨社區項目信息進行整合,當來自不同社區的項目具有不同的屬性時,取屬性并集;同時保存不同項目之間的依賴關系;
步驟5、對獲取的開源屬性建立倒排索引,其中的每一項都包括一個屬性值和具有該屬性值的各記錄的地址,由屬性值來確定記錄的位置,而非由記錄來確定屬性值。
步驟6、響應于用戶搜索輸入或預定義的排名機制,對需要展現的開源項目進行排序并顯示。
進一步地,步驟2可以下列方式實現:
步驟21、根據社區的項目主頁URL模板進行匹配,抽取出項目主頁URL存放到數據庫,對不斷變化的社區開源項目主頁構成情況進行快照。
步驟22、是爬取開源項目主頁。網頁爬蟲不斷從數據庫中取出項目主頁URL進行定向爬取,將爬取到的完整HTML頁面文本保存到數據庫。
更為具體地,步驟3通過下列步驟進行。
步驟31、模板探測。發現每個開源社區用于顯示開源屬性的網頁模板,可以是HTML樹中的標簽路徑,也可以是HTML文本中的正則表達式,作為抽取開源屬性的規則。具體來說有兩種獲取方式。
步驟311、基于人工觀察的方法。通過觀察來自開源社區的少量網頁樣本,發現各個開源屬性所在的頁面位置或其出現的正則表達式模式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210097169.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:接收機、無線通信系統及接收方法
- 下一篇:電源板自動測試系統





