專利名稱::擴(kuò)展分類索引以及分類文檔的檢索的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及已應(yīng)用分類編碼和方案的文檔的索引和檢索,具體涉及專利文檔的索引和檢索。
背景技術(shù):
:知識產(chǎn)權(quán)機(jī)構(gòu)使用一個或多個分類和/或索引方案對申請和文檔進(jìn)行分類是標(biāo)準(zhǔn)做法。例如,美國專利商標(biāo)局(USPTO)對其專利申請使用美國專利分類(USPC)系統(tǒng)和國際專利分類(IPC)系統(tǒng)。類似的,歐洲專利局對其專利申請使用歐洲分類系統(tǒng)(ECLA)和IPC,日本專利局(JPO)對其專利申請使用文件索引系統(tǒng)(FI)和F-Terms系統(tǒng)。更寬泛的,信息和數(shù)據(jù)庫供應(yīng)者常常開發(fā)不同的編碼方案,在他們的服務(wù)中提供且建立索引的文檔中應(yīng)用這些方案。例如,由ReedElsevier制造的數(shù)據(jù)庫BIOBASE中使用了專有分類編碼系統(tǒng)ESBIOBASE[ONLINE]。[2004-03-17查詢獲得]。信息地址<http://www.cas.org/ONLINE/DBSS/esbiobasess.html>這些分類和索引系統(tǒng)對于快速檢索和處理信息是不可或缺的。它們是高效審查專利申請的必要工具。它們的應(yīng)用結(jié)合了高度的智能輸入。但不幸的是,多數(shù)分類和索引系統(tǒng)十分深奧復(fù)雜。有效的使用需要高級別的培訓(xùn)。例如,歐洲專利局審查員在允許在無指導(dǎo)情況下使用ECLA系統(tǒng)進(jìn)行在先技術(shù)檢索前要接受兩年的ECLA培訓(xùn)。美國專利分類和日本F-Term系統(tǒng)也有類似的復(fù)雜度。此外,即使在專利信息領(lǐng)域內(nèi),對三方專利局的熟練檢索需要檢索者對每個國家或地區(qū)分類系統(tǒng)的分別學(xué)習(xí)和檢索。換句話說,檢索者需要學(xué)習(xí)ECLA以檢索EPO文檔,學(xué)習(xí)美國分類以檢索美國專利文檔,學(xué)習(xí)FI和F-term系統(tǒng)以檢索JPO文檔。甚至這樣做所需的工具和資源也缺乏。例如,在JPOF-term系統(tǒng)中沒有英文索引。在最近的一次研討會中(FUJI,Yoshihiro的報(bào)告“ProvidingJapanesepatentinformationtonon-Japaneseusers”(“為非日本用戶提供日本專利信息”)FarEastMeetsWestinViennaEPIDOSUsers’MeetingonJapanesePatentInformation,2003-10-23,Vienna,Austria(Post-presentationdiscussion)),一位JPO專利審查員建議使用如下過程來為所檢索的特定概念確定合適的FI類首先,在EPO網(wǎng)站(http://v3.espacenet.com/eclasrch?CY=ep&LG=en)上確定合適的ECLA類。其次,假定ECLA和FI之間基本相同,然后在JPO網(wǎng)站(http://www4.ipdl.jpo.go.jp/Tokujitu/tjftermenb.ipdl)檢索相應(yīng)的FI類。這個過程很繁瑣且易出錯。結(jié)果是,分類和索引系統(tǒng)的優(yōu)勢無法為更廣大的用戶和信息專業(yè)人員掌握。另一方面,因特網(wǎng)上提供的基于全文的專利檢索服務(wù)飛速增長,使得外行和信息專業(yè)人員同樣逐漸依賴關(guān)鍵字進(jìn)行檢索。關(guān)鍵字檢索有它的優(yōu)勢,易于使用,但是術(shù)語的變化很容易導(dǎo)致漏掉文檔。此外,內(nèi)嵌在文檔分類上的知識產(chǎn)權(quán)產(chǎn)品完全丟失了。在相關(guān)領(lǐng)域,DIALOG上的D&BDuns市場標(biāo)識數(shù)據(jù)庫(http://library.dialog.com/bluesheets/html/bl0516.html)提供檢索SIC描述符作為一個檢索域。TRADEMARKSCAN提供檢索國際分類描述符作為一個檢索域(http://library.dialog.com/bluesheets/html/bl0669.html)。圖1文檔服務(wù)器-搜索引擎-客戶環(huán)境的概念描述圖2根據(jù)本發(fā)明的文檔服務(wù)器網(wǎng)站的典型硬件和軟件配置圖3英國的公共搜索引擎圖4傳統(tǒng)的分類文檔圖5根據(jù)本發(fā)明的分類文檔圖6根據(jù)本發(fā)明的插入第二種語言分類信息的分類文檔圖7根據(jù)本發(fā)明的分類信息表格圖8根據(jù)優(yōu)選實(shí)施例的分類信息表格圖9根據(jù)第4實(shí)施例的生成文檔存儲的過程圖10在文檔中插入分類信息的過程圖11根據(jù)第5實(shí)施例的生成文檔存儲的過程圖12根據(jù)優(yōu)選實(shí)施例的生成文檔存儲的過程要解決的問題本發(fā)明旨在使分類檢索為信息用戶所用,而無需強(qiáng)迫用戶學(xué)習(xí)細(xì)節(jié),具體而言,是不同分類系統(tǒng)的編碼方案和格式。
發(fā)明內(nèi)容本發(fā)明提供通過搜索引擎對分類文檔進(jìn)行檢索和索引,其中部分分類編碼用從分類系統(tǒng)的清單和定義中獲得的插入的術(shù)語、關(guān)鍵字、標(biāo)題或定義進(jìn)行了補(bǔ)充。本發(fā)明的一方面是用于分類文檔的索引和檢索的系統(tǒng),該系統(tǒng)包含至少一個連接至文檔存儲的服務(wù)器計(jì)算機(jī),所述文檔存儲包含至少一個從文檔匯總得到的靜態(tài)文檔,其中至少已經(jīng)應(yīng)用了一種分類系統(tǒng)編碼,所述文檔包含至少一個從所述編碼標(biāo)題或定義得到的關(guān)鍵字;以及服務(wù)器計(jì)算機(jī)與至少一個搜索引擎系統(tǒng)之間的連接。此外,靜態(tài)文檔可以是HTML或XML格式。此外,從該分類系統(tǒng)得到的術(shù)語可以使用與該文檔存儲中文檔不同的語言。此外,該文檔存儲中的文檔可以是專利文檔。此外,服務(wù)器計(jì)算機(jī)與客戶計(jì)算機(jī)之間可以相連。本發(fā)明的另一方面是用于分類文檔索引和檢索的系統(tǒng),該系統(tǒng)包含至少一個與文檔存儲相連的服務(wù)器計(jì)算機(jī),所述文檔存儲包含至少一個從文檔匯總得到的靜態(tài)文檔,其中至少已經(jīng)應(yīng)用了一種分類系統(tǒng)編碼,所述靜態(tài)文檔包含至少一個與所述編碼的標(biāo)題和/或定義對應(yīng)的檢索關(guān)鍵字;數(shù)據(jù)庫系統(tǒng),包含至少一個從所述分類系統(tǒng)編碼的標(biāo)題和/或定義得到的術(shù)語;服務(wù)器計(jì)算機(jī)與至少一個搜索引擎系統(tǒng)之間的連接;將所述術(shù)語動態(tài)插入該靜態(tài)文檔中以及響應(yīng)于該搜索引擎系統(tǒng)發(fā)出的請求,將結(jié)果文檔傳回該搜索引擎系統(tǒng)的裝置。此外,該靜態(tài)文檔可以使用HTML、XML、PDF或MSWord格式。此外,從該分類系統(tǒng)得到的術(shù)語可以使用與該文檔存儲中文檔不同的語言。此外,該文檔存儲中的文檔可以是專利文檔。此外,服務(wù)器計(jì)算機(jī)與客戶計(jì)算機(jī)之間可以相連。本發(fā)明的另一方面是用于分類文檔索引和檢索的計(jì)算機(jī)處理方法,其包含如下的方法步驟響應(yīng)搜索引擎系統(tǒng)的請求,從文檔存儲獲得文檔,所述文檔存儲包含至少一個從文檔匯總得到的靜態(tài)文檔,其中已經(jīng)應(yīng)用了至少一種分類系統(tǒng)編碼,所述文檔包含至少一個從所述編碼得到的標(biāo)題或定義的術(shù)語;將所述文檔傳送給該搜索引擎系統(tǒng)。此外,該靜態(tài)文檔可以是HTML、XML、PDF或MSWord格式。此外,從該分類系統(tǒng)得到的術(shù)語可以使用與該文檔存儲中文檔不同的語言。此外,該文檔存儲中的文檔可以是專利文檔。此外,服務(wù)器計(jì)算機(jī)與客戶計(jì)算機(jī)之間可以相連。本發(fā)明的另一方面是用于分類文檔索引和檢索的計(jì)算機(jī)處理方法,其包含如下方法步驟“響應(yīng)搜索引擎系統(tǒng)的請求從文檔存儲獲得文檔,所述文檔存儲包含至少一個從文檔匯編得到的靜態(tài)文檔,其中已經(jīng)應(yīng)用了至少一種分類系統(tǒng)編碼,所述文檔包含至少一個與所述編碼標(biāo)題和/或定義對應(yīng)的檢索碼;從數(shù)據(jù)庫檢索至少一個從所述分類系統(tǒng)編碼的標(biāo)題和/或定義得到的術(shù)語;將所述術(shù)語動態(tài)插入該靜態(tài)文檔;以及將該結(jié)果文檔傳送給該搜索引擎系統(tǒng)。此外,該靜態(tài)文檔可以是HTML或XML格式。此外,從該分類系統(tǒng)得到的術(shù)語可以使用與該文檔存儲中文檔不同的語言。此外,該文檔存儲中的文檔可以是專利文檔。此外,服務(wù)器計(jì)算機(jī)與客戶計(jì)算機(jī)之間可以相連。本發(fā)明的另一方面是用于分類文檔索引和檢索的計(jì)算機(jī)處理方法,包括如下方法步驟使客戶計(jì)算機(jī)中的客戶軟件應(yīng)用程序啟始至服務(wù)器計(jì)算機(jī)的連接;使客戶計(jì)算機(jī)中的該客戶軟件應(yīng)用程序發(fā)出至少一個請求至服務(wù)器計(jì)算機(jī),所述請求使服務(wù)器計(jì)算機(jī)執(zhí)行包含如下方法步驟的方法從文檔存儲檢索文檔,所述文檔存儲包含至少一個從文檔匯總得到的靜態(tài)文檔,其中已經(jīng)應(yīng)用至少一種分類系統(tǒng)編碼,所述文檔包含至少一個與所述編碼的標(biāo)題和/或定義對應(yīng)的檢索碼;從數(shù)據(jù)庫檢索至少一個從所述分類系統(tǒng)編碼的標(biāo)題和/或定義得到的術(shù)語;將所述術(shù)語動態(tài)插入該靜態(tài)文檔;將結(jié)果文檔傳輸至客戶計(jì)算機(jī)。此外,該靜態(tài)文檔可以是HTML、XML、PDF或MSWord格式。此外,從該分類系統(tǒng)得到的術(shù)語可以使用與該文檔存儲中文檔不同的語言。此外,該文檔存儲中的文檔可以是專利文檔。此外,該服務(wù)器計(jì)算機(jī)與客戶計(jì)算機(jī)之間可以相連。定義搜索引擎用來索引因特網(wǎng)網(wǎng)頁、存儲結(jié)果和返回與特定查詢匹配的頁面列表的專用服務(wù)器或它們的集合。該索引通常使用蜘蛛(spider)生成,但也可以基于由具有在該網(wǎng)站活躍地爬行的蜘蛛的搜索引擎提供的OEM內(nèi)容生成。一些主要的搜索引擎有AltaVista、Excite、Hotbot、Infoseek、Lycos、NorthernLight和Webcrawler。“網(wǎng)頁蜘蛛”或“網(wǎng)頁機(jī)器人”搜索萬維網(wǎng)以標(biāo)識新(或改變)的頁面的程序,目的是將這些頁面加入檢索服務(wù)的(“搜索引擎的”)數(shù)據(jù)庫。網(wǎng)頁抓取器(grabber)自動下載網(wǎng)站內(nèi)容以供隨后離線瀏覽或處理的程序。網(wǎng)站用戶可訪問的服務(wù)器站點(diǎn),它實(shí)現(xiàn)了超文本文檔的編碼和傳輸這些基本的萬維網(wǎng)標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)現(xiàn)在包括但不限于,HTML(超文本標(biāo)識語言)和HTTP(超文本傳輸協(xié)議)。此外還涉及Java腳本(也被稱為JavaScript),盡管也可以使用其它類型的腳本、編程語言和代碼。要理解術(shù)語“站點(diǎn)”不是指單個地理位置,作為網(wǎng)站或其它網(wǎng)絡(luò)站點(diǎn)可以,例如,包含多個地理上分散但互相適當(dāng)鏈接的計(jì)算機(jī)系統(tǒng)。另外,雖然下面的描述涉及使用因特網(wǎng)和相關(guān)協(xié)議的實(shí)施例,其它網(wǎng)絡(luò),比如網(wǎng)絡(luò)交互電視和其它協(xié)議也同樣適用。文檔服務(wù)器-搜索引擎-客戶環(huán)境圖1示出了本發(fā)明的普遍操作環(huán)境。該環(huán)境包含文檔服務(wù)器網(wǎng)站100,搜索引擎200和客戶端300。這些通過網(wǎng)絡(luò)連接401、402和403互相連接。該操作環(huán)境可以駐留在單個組織的內(nèi)網(wǎng)或擴(kuò)展跨越全球因特網(wǎng),網(wǎng)頁站點(diǎn)100、搜索引擎200和客戶端300物理上可以處于不同的大陸。文檔服務(wù)器網(wǎng)站圖2示出了根據(jù)本發(fā)明的文檔服務(wù)器網(wǎng)站100的典型硬件和軟件配置。網(wǎng)頁服務(wù)器110為網(wǎng)頁服務(wù)器應(yīng)用提供物理宿主。數(shù)據(jù)庫服務(wù)器120為包含分類系統(tǒng)數(shù)據(jù)的數(shù)據(jù)庫提供物理宿主。網(wǎng)絡(luò)存儲(NAS)服務(wù)器131、132和133為通過網(wǎng)頁服務(wù)器110提供通過網(wǎng)絡(luò)服務(wù)的文檔的數(shù)據(jù)存儲。路由器140提供與因特網(wǎng)的連接。本領(lǐng)域的技術(shù)人員可以看出該配置有很多不脫離本發(fā)明范圍的變化。例如,可以有多個網(wǎng)頁服務(wù)器110,以提供負(fù)載平衡或服務(wù)多個文檔匯總。同樣,可以有多個數(shù)據(jù)庫服務(wù)器120,以提供負(fù)載平衡、故障補(bǔ)救(failover)和多個分類系統(tǒng)。NAS服務(wù)器的數(shù)量可以有很大的不同以提供可擴(kuò)展的數(shù)據(jù)存儲。最后,圖2中描述的硬件提供的所有功能可以集成到單個服務(wù)器上。另一個極端例子是,文檔服務(wù)器網(wǎng)頁站點(diǎn)100可以是邏輯站點(diǎn),其物理組件遠(yuǎn)距離分散分布,通過因特網(wǎng)或其它通信網(wǎng)絡(luò)連接。根據(jù)本發(fā)明的文檔服務(wù)器網(wǎng)頁站點(diǎn)的內(nèi)容將在后面詳細(xì)描述。搜索引擎公共搜索引擎本發(fā)明可以使用的公共搜索引擎包括但不限于Google、Yahoo、AskJeeves、AllTheWeb.com、AOLSearch、HotBot、Teoma、AltaVista、Gigablast、LookSmart、Lycos、MSNSearch、Excite、Inktomi、WebWombat、WebCrawler、Overture和WiseNut。當(dāng)前英國內(nèi)的主要搜索引擎圖表和它們之間的關(guān)系示出于圖3(來自http://www.alphaquad.co.uk/internet_marketing_notes/uk-search_engine_relationships.jpg)。私有搜索引擎本發(fā)明可以用與文檔服務(wù)器關(guān)聯(lián)控制的私有搜索引擎實(shí)現(xiàn)。通常的實(shí)現(xiàn)是在服務(wù)器計(jì)算機(jī)中安裝搜索引擎軟件應(yīng)用程序??梢該?dān)當(dāng)該角色的服務(wù)器計(jì)算機(jī)例子包含但不限于安裝了Windows的下列計(jì)算機(jī),比如DellPowerEdge服務(wù)器、HPProliant服務(wù)器、SunFireV20z和IBMe325服務(wù)器;安裝了Linux的計(jì)算機(jī),比如DellPowerEdge服務(wù)器;安裝了MacOS的計(jì)算機(jī),比如AppleXserve;以及安裝了UNIX的服務(wù)器,比如SunNetra服務(wù)器。可以用作搜索引擎軟件應(yīng)用程序的例子包含但不限于Innerprise開發(fā)的ES.NET2004,它運(yùn)行在Windows2000/XP/2003服務(wù)器版上,是全文索引的網(wǎng)頁爬行器和搜索引擎。使用ES.NET,文檔從內(nèi)部網(wǎng)、網(wǎng)站或網(wǎng)頁上被抓取和索引。抓取和更新可以使用內(nèi)置的調(diào)度器自動執(zhí)行。ES.NET2004包含Windows服務(wù)(實(shí)際是蜘蛛)、網(wǎng)頁應(yīng)用程序(服務(wù)接口)和搜索應(yīng)用(與現(xiàn)有的網(wǎng)站集成)。ES.NET2004通過使用過濾器支持通用文件類型,包括但不限于HTML、XML、微軟Word(.DOC)、微軟Excel(.XLS)、AdobeAcrobat(.PDF)、MP3ID3vl&ID3v2(.MP3)和富文本格式(.RTF)。由Myrasoft開發(fā)的活動搜索引擎是允許開發(fā)者創(chuàng)建Yahoo風(fēng)格搜索引擎的服務(wù)器應(yīng)用程序。它的特性有交互式用戶接口和管理工具用來管理鏈接和授權(quán)、創(chuàng)建分類、基于關(guān)鍵字搜索、自動準(zhǔn)許新鏈接、用戶電子郵件列表管理,以及其它特性。由Xtreeme開發(fā)的SearchEngineStudio使用四種方法自動索引目標(biāo)網(wǎng)站,然后為該網(wǎng)站創(chuàng)建搜索引擎或以CD-ROM或DVD發(fā)行的方式創(chuàng)建離線搜索。其它站點(diǎn)搜索引擎軟件應(yīng)用程序包括但不限于,SJNamoInteractive,Inc.的NamoDeepSearch、AtriseSoftware的AtriseEveryfind、ActiveSearchSiteSearchSDK、Albert網(wǎng)頁、Alkaline(Vestris)、Amberfish、ARTSPDFSearch、ASPSeek、ASTAwareSearchKey、Atomica、AtomzSearch、AutonomySearchServer、Looksmart的BeSeen(也稱為whatUSeekintraSearch)、BooleanSearch、BBDBot、BRS/Search、CGISRCH、Compass(現(xiàn)在的iPlanetSearch)、ConveraRetrivalWare、Copernic、crawl-it、Cybotics、DarWinSet、Datagold、DataparkSearch、DeepSearch、DieselpointSearch、DioWeb、DMPScout、DocFather、DoclinxTeraXML、DolphinSearch、dtSearchWeb、EasyAsk、ebhath、EducesoftASPSearchEngine、80-20Discovery、EliseMatchingEngine、EndecaCommerce、Catalog和EnterpriseSearch、EngeniumSemetric、EnterpriseSearch(Innerprise)、Eureka、eVeImageSearch、Everyfind、ExcaliburRetrievalWare、Extense、ExtropiaSiteSearch、F3DSearch、FASTSearchServer、Findex(現(xiàn)在的Onix)、FluidDynamicsSearch、FreeFind、FulcrumSearchServer(現(xiàn)在的Hummingbird)、FusionBot、Glimpse、Harvest、HomepageSearchEngin、ht://Dig、HummingbirdSearchServer、i411FacetedMetadataSearch、IBMIntelligentMiherforText、ICE、ic-find、IDKSM、IMPDatabaseSearchEngine、IndexSearch(Xavatoria)、IndexServer(微軟)、IndexMySite、InktomiSearchSoftware、InMagic、InQuiraforSearch、IntelligentMinerforText、IntelliseekEnterpriseSearch、InteractiveToolsSearchEngine、interMedia、IntermediateSearch(FluidDynamics)、IntuiFind(Mercado)、InxightSmartDiscovery、i-phrase、iPlanetSearch(以前的NetscapeCompass)、I-Search、Isearch、lsysweb、IXEIdeareindeXingEngine、JObjectsQuestAgent、Juggernautsearch、JXTASearch、KSearch、K2(Verity)、LexiQuestLexiGuide、linkSearch、LotusExtendedSearch(Domino)、Lucene、LycosInSiteProService、Master.com(WebinatorRemote)、Matt′sSimpleSearch、MercadoIntuiFind、MetaStar、MicrosearchWebSearch、微軟IndexServer、微軟SharePoint、微軟SiteServer、MiniSearch、mnoGoSearch(以前的UdmSearch)、MondoSearch、MPSInformationServer、Muscat、Namazu、Nathra、Nav4、NetMindSearch-It、NetricsSearch(以前的Likelt)、NetscapeCompass(現(xiàn)在的iPlanetSearch)、Net.Sprint、NextPage(LivePublish)、NorthernLight(searchservice&EIP)、Noviforum(以前的Trident)、NQL、Nutch、Onix、OmSearch、OpenBridge(以前的ZNOW)、OpenFTS、OpenText-LiveLink、OracleText、UltraSearchandinterMedia、OrangevalleyIntranetSearchEngine、orenge(empolis、PanopticSearch、PDFWebSearch、PerlScripts、PerlfectSearch、Phantom、PicoSearch、PLWeb(PLS/AOL)、QuestAgent、QueryServerMetasearchEngine、RecommindMindServerIR、re.se@rchsuite、RetrievalWare、RiSearch、RuterSearch、SearchKeyPlus(ASTAWare)、SelenaSol′sKeywordSedarch(現(xiàn)在的Extropia)、SharePoint(微軟Tahoe)、SharewireSiteSearch、SideranSeamarkFacetedMetadataSearch(以前的bpAllenTeapot)、SimpleSearch、SiteFerretLiteandPro、siteLevel(以前的intraSearch)、SiteMiner、SiteSearch(現(xiàn)在的DocFather)、SiteSearchIndexerOavaScript)、SiteServer(微軟)、SiteSurfer、S.L.I.Search、SmartDiscovery(Inxight)、Spiderline、Spy-Server、SubjectSearchServer(SSServer)、SurfMapSearch、SWISH-E、SWISH++、Tahoe(微軟SharePoint)、TEC-IMS、tfind(Eidetica)、ThunderstoneWebinator、Trident(現(xiàn)在的Noviforum)、TYPENGON300Search、UdmSearch(現(xiàn)在的mnoGoSearch)、UltraSearch(Oracle)、Ultraseek(Verty,以前由Infoseek開發(fā),然后是Inktomi)、UniversalKnowledgeProcessor、Verity-Search97&K2、VirageAudio&VideoSearch、VisualNet、WAISandfreeWAIS、WebCat、WebGlimpse、Webinator(Thunderstone)、WebMerger、Webrom、WebSearchPerlScript、Webserver4D、WebSonar、WebSTARSearch(4D)、WideSource、WindexSearch、WizDoc、Xapian(以前的OpenMuscat,OmSearch)、XMLQueryEngine、YourAmigo、Zebra、NOW(現(xiàn)在的OpenBridge)以及Zoom.Google營銷GoogleSearchAppliance,它是獨(dú)立的搜索引擎。當(dāng)應(yīng)用到本發(fā)明時,該工具可以邏輯地放入與容納該文檔相同的域或組織中。或者,它可以放置在任何地點(diǎn),只要它可以通過網(wǎng)絡(luò)訪問所述文檔服務(wù)器以及客戶可以通過網(wǎng)絡(luò)訪問它??蛻舳司W(wǎng)頁瀏覽器客戶端本發(fā)明中可以使用的瀏覽器應(yīng)用程序包括但不限于BrowserOne(由DigitalInternet發(fā)布)、Opera(OperaSoftware)、UltraBrowser(UltraBrowser.com)、Xeonn-Turbo(Xeonn.net)、AvantBrowser(AndersonChe)、SmartBro(BassamJara)、NJStarAsianExplorer(NJStarSoftware)、GameNetBroswer(Smartalec)、Maxthon(MyIE2Team)、Omnibrowser(Omnibrowser.com)、Sitekiosk(PROVISIO)、WichioBrowser(Revopoint)、NetCaptor(Stilesoft)、MozillaFirefox(Mozilla)、DeepnetExplorer(DeepnetTechnologies)、Mozilla(Mozilla)、SlimBrowser(FlashPeak)、SmartFox(StartplaneCommunications)、SportsBrowser(4comtech)、KidSplorer(DevicodeTechnology)、OptimalDesktop(OptimalAccess)、AceExplorer(TronixSoftware)、ArlingtonKioskBrowser(ArlingtonTechnology)、AdvancedBrowser(TronixSoftware)、iRider(WymeaBay)、ImageBrowser(Image-browser.com)、WindowSurfer(WindowSurferSoftware)、550AccessBrowser(550Access)、FineBrowser(SoftInform)、KopassaBrowser(Kopassa)、4CVision(euris)、InternetExplorer(微軟)、ArlingtonCustomBrowser(ArlingtonTechnology)、NetViewer(AccessarySoftware)、PlaytheWeb(PhilippeVaugouin)、Wysigot(Wysigot)、ServiceHolder(LastReset)、CafeTimePro(ProtocallComputer)、FreewareBrowser(4comtech)、WebServicesAccelerator(VirtualCommunications)、Netadviser(SoftInform)、Netscape(NetscapeCommunications)、Surfnet(InfoTouchTechnologies)、EminemBrowser(InterscopeRecords)、PhaseOut(PhaseOutteam)、ProximalVoyager(InnovSoftConsulting)、WebView(ABCEnterpriseSystems)、InternetResearchSoftware(WebSoft)、Muse-Lite(MuseCommunications)、FastBrowser(FastBrowser)、ActivatorDesk(R.LeeHeath)、WebPadlock(LeithauserResearch)、LE-Multibrowser(LE-SoftwareSweden)、BrowseMan(SpecializedSearch)、InnerX(InnerX)、AggressiveInternetResearch(FrankHarrison)、CygsoftLDAPBrowser(Cygsoft)以及WebSpeedReader(PerMaximumSoftware)。網(wǎng)頁抓取客戶端也被稱作“離線瀏覽器”,本發(fā)明中可以使用的網(wǎng)頁抓取應(yīng)用程序包括但不限于Surfware的Aaron′sWebGrabber(http://www.surfwarelabs.com/Awebvacuumg.htm)、kabestinsoftware的WebGrabber(http://www.kabestin.com/webgrabber.html)、PicalLoader(http://www.vowsoft.com/)、HTTTrackWebsiteCopier(由HTTrack發(fā)布)、WebShutter(由MABSoftware發(fā)布)、OfflineExplorer(MetaProducts)、OfflineExplorerPro(MetaProducts)、OfflineExplorerEnterprise(MetaProducts)、PowerSiphon(AppliedKinematics)、Leech(Aeria)、WebZIP(Spidersoft)、WebDumper(Maxprog)、WebCopier(MaximumSoft)、MM3WebAssistant(MM3ToolsMuenzenberger)、GetBot(GetBot)、WebCloner(ProductsFoundry)、SurfOfflne(Bimesoft)、QuadSucker/Web(SBSoftware)、RafaBot(SpadixSoftware)、Grab-a-Site(BlueSquirrel)、OfflineCHM(Direct-Soft)、WebCatcher(Wizissoft)、ActiveSiteCompiler(INTOREL)、NetGrabber(FuzzSoft)、Net-Ripper(SoftByteLabs)、BlackWidow(SoftByteLabs)、WebsiteExtractor(InternetSoftCorporation)、SuperBot(EliteSys)、PageSucker(FredericVeynachterSoftware)、eNotebook(GoldKingko)、BaldgorillaGo-Getter(BaldgorillaSoftware)、BackstreetBrowser(SpadixSoftware)、OfflineNavigator(Asona)、WebWhacker(BlueSquirrel)、WebGainer(LuoSoftcom)、RipClip(KevlexTechnologies)、JOCWebSpider(JOCSoftware)、WebCapture(E-SOFTWARE)、WebSlinky(webslinky.com)、HTTPWeazel(ImateSoftware)、SBWccWebsiteCapture(SBSoftware)和TeleportPro(TennysonMaxwellInformationSystems)。網(wǎng)頁提取器客戶端網(wǎng)頁提取器是從網(wǎng)頁挖掘、提取數(shù)據(jù)的客戶應(yīng)用程序。本發(fā)明中可以使用的網(wǎng)頁提取器應(yīng)用包括但不限于Poorva,Inc.的AdvancedInformationExtractor(AIE)、iOpus的InternetMacros、FicstarSoftware的WebGrabber、Web-Site-Downloader、KnowleSys的WebExService、LencomSoftware的VisualWebTask、WebExtractorSystem的WebDataExtractor以及CrystalSoftware的TextPipe。網(wǎng)頁內(nèi)容打包器(repackager)網(wǎng)頁內(nèi)容打包器是中間應(yīng)用程序,它從下行客戶計(jì)算機(jī)接收請求,響應(yīng)于客戶計(jì)算機(jī)請求從服務(wù)器計(jì)算機(jī)提取網(wǎng)頁內(nèi)容,然后修改、轉(zhuǎn)換或翻譯提取的內(nèi)容;將內(nèi)容結(jié)果傳輸給客戶。網(wǎng)站打包器包括但不限于自動網(wǎng)頁翻譯器,比如GoogleTranslate和AltaVistaTranslate。文檔服務(wù)器網(wǎng)站的詳細(xì)描述文檔服務(wù)器網(wǎng)站100給搜索引擎200和客戶300提供分類文檔。根據(jù)本發(fā)明,服務(wù)提供的分類文檔包含增加或用標(biāo)題或定義編碼替換已有分類編碼的傳統(tǒng)分類文檔內(nèi)容。圖4展示了傳統(tǒng)做法中典型的分類文檔。該文檔是已分類的專利申請,且用代表其分類的編碼進(jìn)行了公布。圖5和圖6展示了根據(jù)本發(fā)明的兩份文檔。在圖5中,分類編碼的標(biāo)題被添加至該文檔中。在圖6中,分類編碼的標(biāo)題譯文被添加至該文檔中。當(dāng)該分類系統(tǒng)是層次型的分類系統(tǒng)時,優(yōu)選將標(biāo)題子類與其父類的標(biāo)題添加進(jìn)去,如圖5和圖6那樣。根據(jù)本發(fā)明,文檔服務(wù)器網(wǎng)站100可以存儲靜態(tài)分類文檔匯總110,其中已經(jīng)添加了編碼標(biāo)題或定義111。這些靜態(tài)文檔可以準(zhǔn)備和存儲成任意一種合適的文件格式,包括但不限于,HTML、XML、PDF和MSWord。這些文檔可以存儲在網(wǎng)頁服務(wù)器本身或分開的服務(wù)器或NAS設(shè)備的磁盤上。根據(jù)本發(fā)明,文檔服務(wù)器網(wǎng)站100優(yōu)選地響應(yīng)于搜索引擎蜘蛛或其它網(wǎng)頁客戶端請求動態(tài)的生成文檔110。分類文檔匯總本發(fā)明為搜索引擎的索引而處理分類起始文檔。優(yōu)選的,這些起始文檔是分類起始文檔匯總的一部分。本發(fā)明可以使用的起始文檔匯編的例子包括但不限于如下專利和商標(biāo)專利匯總由美國專利和商標(biāo)局提供的每周專利著錄項(xiàng)目原始數(shù)據(jù)(http://www.uspto.gov/web/menu/patdata.html),包括授權(quán)紅皮書(GrantRedBook)V2.5(xml)著錄項(xiàng)目數(shù)據(jù),申請紅皮書(ApplicationRedBook)V1.5(XML)著錄項(xiàng)目數(shù)據(jù),以及專利全文/APS(綠皮書)著錄項(xiàng)目數(shù)據(jù)。歐洲專利局提供的EPO著錄項(xiàng)目數(shù)據(jù)和摘要(http://ebd.epoline.org/ebd/),包括EBDST.32格式數(shù)據(jù)和ST.32格式摘要。日本專利局的公布,包括Kokai和注冊專利DVD和CD-ROM、專利和注冊工具模型DVD和CD-ROM、Kokai英文摘要CD-ROM、外觀設(shè)計(jì)專利CD-ROM、商標(biāo)CD-ROM和國際商標(biāo)CD-ROM。德國專利局的公布,包括Markenblatt(商標(biāo)期刊)和Patentblatt(專利公報(bào))。其它專利局的公布,包括但不限于,阿根廷專利局的BoletinesdePatentes和BoletinesdeMarcas;PDF格式的澳大利亞專利局期刊增刊、澳大利亞專利摘要、OPI專利說明書和由澳大利亞專利局發(fā)行的澳大利亞專利;由澳大利亞專利局發(fā)行的專利和工具模型公報(bào)ASCII數(shù)據(jù);由加拿大知識產(chǎn)權(quán)局發(fā)行的專利文檔CD-R;中國專利說明書CD-ROM、中國專利摘要CD-ROM、專利公報(bào)CD-ROM、外觀設(shè)計(jì)CD-ROM和由中華人民共和國國家知識產(chǎn)權(quán)局發(fā)行的中國專利數(shù)據(jù)庫、由印度專利促進(jìn)中心發(fā)行的Ekaswa-A和Ekaswa-BCD-ROM;俄羅斯專利摘要;由俄羅斯專利和商標(biāo)局發(fā)行的RUPAT和RUABEN;由INPI發(fā)行的BREFCD-ROM;和由世界工業(yè)產(chǎn)權(quán)局發(fā)行的PCT電子公報(bào)和PCT數(shù)據(jù)庫CD-ROM。分類系統(tǒng)本發(fā)明通過使已經(jīng)應(yīng)用于特定文檔的分類定義或清單以下列方式為全文搜索引擎可用來解決問題,對在該分類定義和/或標(biāo)題中出現(xiàn)的術(shù)語和短語進(jìn)行全文檢索時可以檢索該文檔。有很多分類系統(tǒng)和信息編碼系統(tǒng)適用本發(fā)明的實(shí)施例。下面列出一些,但本發(fā)明不限于下面的例子。美國專利分類系統(tǒng)(http://www.uspto.gov/go/classification/)被美國專利局用來分類專利申請、專利申請預(yù)授權(quán)和專利授權(quán)。每份文檔被賦與一個或多個分類且在公報(bào)中公布。世界知識產(chǎn)權(quán)組織(WIPO)使用四種分類系統(tǒng)(http://www.wipo.int/classifications/en/)國際專利分類(IPC)系統(tǒng)用于專利,商品和服務(wù)的尼斯分類用于商標(biāo)注冊,Locarno分類用于工業(yè)設(shè)計(jì),以及商標(biāo)裝飾的維也納分類。歐洲專利局使用歐洲專利分類(ECLA)系統(tǒng)管理歐洲專利申請和文檔。(可在http://12.espacenet.com/eclasrch上搜索到。)日本專利局(http://www.jpo.go.jp)使用文件索引(FI)分類系統(tǒng)(與ECLA類似)和File-FormingTerm(F-Term)搜索編碼系統(tǒng)以及IPC分類管理專利申請和專利授權(quán)。ThomsonDerwent使用德溫特分類、Chemia專利索引(CPI)手冊編碼、以及用于電氣和電子工程專利的電子專利索引手冊編碼(EPI手冊編碼)系統(tǒng)(http://thomsonderwent.com/support/dwpiref/reftools/classification)。北美工業(yè)分類系統(tǒng)(NAICS)由美國、加拿大和墨西哥聯(lián)合維護(hù)(http://www.census.gov/epcd/www/naics.html),作為北美產(chǎn)品分類系統(tǒng)(http://www.census.gov/eos/www/napcs/napcs.htm)。NAICS被開發(fā)出來用于替代美國標(biāo)準(zhǔn)分類系統(tǒng)(SIC),但該系統(tǒng)依然在使用且可以在本發(fā)明中使用。聯(lián)合國統(tǒng)計(jì)署(http://unstats.un.org/unsd/cr/registry/)維護(hù)的統(tǒng)計(jì)分類注冊也可以在本發(fā)明中使用。這些包括經(jīng)濟(jì)活動分類,比如所有經(jīng)濟(jì)活動的國際標(biāo)準(zhǔn)工業(yè)分類(ISIC)、中央產(chǎn)品分類(CPC)、標(biāo)準(zhǔn)國際貿(mào)易分類(SITC)、泛經(jīng)濟(jì)種類的分類(BEC)、政府職能分類(COFOG)、基于用途的個人消費(fèi)分類(COICOP)、非盈利機(jī)構(gòu)家政服務(wù)目的分類(COPNI)、基于用途的生產(chǎn)費(fèi)用分類(COPP)以及用時統(tǒng)計(jì)活動的試驗(yàn)性國際分類(ICATUS)。EUROSTAT是歐洲共同體經(jīng)濟(jì)活動統(tǒng)計(jì)分類(NACE)(http://europa.eu.int/comm/eurostat/ramon)、歐洲經(jīng)濟(jì)共同體活動產(chǎn)品的統(tǒng)計(jì)分類(CPA)以及環(huán)境保護(hù)活動與支出分類的管理者。AFRISTAT(http://www.afristat.org)是AFRISTAT成員國活動分類(NAEMA)、AFRISTAT成員國產(chǎn)品分類(NOPEMA)的管理者。澳大利亞統(tǒng)計(jì)署(http://www.abs.gov.au/AUSSTATS)是澳大利亞和新西蘭標(biāo)準(zhǔn)分類(ANZSIC)的管理者。世界海關(guān)組織(http://www.wcoomd.org/ie/index.html)是統(tǒng)一商品描述和編碼系統(tǒng)(HS)的管理者。國際勞動組織是國際職業(yè)標(biāo)準(zhǔn)分類(ISCO)、就業(yè)狀態(tài)國際分類(ICSE)、所有經(jīng)濟(jì)活動的國際標(biāo)準(zhǔn)工業(yè)分類(ISIC)、教育國際標(biāo)準(zhǔn)分類(是UNESCO分類)(ISCED)以及職業(yè)傷害分類的管理者。世界衛(wèi)生組織(www.who.int)是疾病與相關(guān)衛(wèi)生問題國際統(tǒng)計(jì)分類(ICD-10);損傷、殘疾和殘障國際分類(ICIDH);和功能、殘疾和衛(wèi)生國際分類(ICF)的管理者。國會圖書館維護(hù)國會圖書館分類(http://www.loc.gov/catdir/cpso/lcco/lcco.html)。DeweyDecimal分類(DDC)系統(tǒng)由OCLC擁有(http://www.oclc.org/dewey/about/)。數(shù)個技術(shù)聯(lián)盟和學(xué)術(shù)與技術(shù)期刊發(fā)行商維護(hù)能夠在本發(fā)明中使用的分類系統(tǒng)。美洲經(jīng)濟(jì)聯(lián)盟維護(hù)經(jīng)濟(jì)學(xué)術(shù)期刊分類系統(tǒng)。聲學(xué)協(xié)會維護(hù)BEPAC聲學(xué)圖書分類系統(tǒng)(http://www.ioa.org)。政府印刷局主管文檔分類系統(tǒng)(http://www.access.gpo.gov/su_docs/fdIp/pubs/classman/index)。由在線數(shù)據(jù)庫提供商維護(hù)的分類系統(tǒng)可以在本發(fā)明中使用。例子包括但不限于ABI/INFOM(http://support.dialog.com/searchaids/dialog/fl5_f635_ccodes.shtml)、預(yù)覽編碼和有機(jī)分類轉(zhuǎn)化(http://support.dialog.com/searchaids/dialog/f5_code)、CAP摘要的CABICODES(http://support.dialog.com/searchaids/dialog/f50_cabicodes_list.shtm1)、CAS注冊號、CAL分類編碼(http://support.dialog.com/searchaids/dialog/f8_ccodes.shtml)、Me!描述符和樹狀結(jié)構(gòu)(http://www.nlm.nih.gov/mesh/introduction2004.html)、ACM計(jì)算分類系統(tǒng)(http://www.acm.org/class/1998/)、分類系統(tǒng)(http://www.iee.0rg/publish/support/inspec/document/electronic.c)。分類系統(tǒng)數(shù)據(jù)庫為了自動生成靜態(tài)文檔匯編,或者動態(tài)生成合并的文檔作為文檔服務(wù)器網(wǎng)頁應(yīng)用的一部分,這些操作使用的分類信息被存儲在數(shù)據(jù)庫中??梢允褂玫亩鄠€商業(yè)軟件包包括但不限于WatcomSQL、Oracle、Sybase、Access、微軟SQLServer、IBM的DB2、AT&T的Daytona、NCR的TeraData和DataCache。該數(shù)據(jù)庫最簡單的形式可以包含兩列規(guī)范化編碼列和類標(biāo)題列。標(biāo)范化編碼列包含唯一編碼,它是用來定位圖7展示的類標(biāo)題的檢索關(guān)鍵字。優(yōu)選情況下,該表包括圖8a中tblUSPCSchedule展示的列,即,識別列‘classid’,級別列‘level’,其中包含類的層次或縮進(jìn)基本,以及CDISP列,其中包括通常在類的公共記錄中使用的字符串格式。(圖8a展示了美國專利分類系統(tǒng)清單表格的頭幾行。)表格可按classid列排序是很重要的,這樣可以至少重新生成美國專利分類清單中單個類下的子類。優(yōu)選的,該數(shù)據(jù)庫還包含頂部級別下每個類的直接層次子類的表格,如圖8b中的tblUSPCHierachy。在這個展現(xiàn)美國專利分類系統(tǒng)的簡化表格中,classid和ancestorid列對應(yīng)表格tblUSPCSchedule中的classid列。分類系統(tǒng)數(shù)據(jù)庫的準(zhǔn)備分類系統(tǒng)數(shù)據(jù)庫可以從分類系統(tǒng)的電子拷貝或者如果因特網(wǎng)上有的話通過因特網(wǎng)下載來準(zhǔn)備。對于本領(lǐng)域的技術(shù)人員來說有多種編程方法實(shí)現(xiàn),在下面的實(shí)施例中也包括了源代碼。文檔服務(wù)器文檔存儲文檔存儲保存提供給搜索引擎和網(wǎng)頁客戶的文檔。盡管該存儲可以在文件系統(tǒng)中包含靜態(tài)文檔,它優(yōu)選在文件系統(tǒng)或數(shù)據(jù)庫中包含文檔基礎(chǔ)匯總,或當(dāng)要傳送給搜索引擎和網(wǎng)頁客戶時與分類數(shù)據(jù)動態(tài)合并。根據(jù)本發(fā)明的靜態(tài)文檔匯編包含的文檔擁有從起始文檔匯編得到的內(nèi)容以及從分類系統(tǒng)清單和/或定義得到的分類信息。該靜態(tài)文檔優(yōu)選使用HTML格式,但也可以使用任何可以被搜索引擎處理的格式,比如pdf、hdml、xml、cfm、doc、xls、ppt、rtf、wks、lwp、wri或swf。從分類系統(tǒng)的清單和/或定義得到的信息可以是整類或子類標(biāo)題、整類或子類定義、或者兩者中的一部分,例如從標(biāo)題和/或定義提取的所選關(guān)鍵字。從分類系統(tǒng)的清單和/或定義得到的信息可以使用與所屬文檔一樣的語言。它也可以使用第二種語言。例如,從USPTO起始文檔匯編得到的一份英文專利記錄可以與其適用的類編碼標(biāo)題的日文譯文合并。這樣提供了使該文檔能夠以第二種語言檢索的機(jī)制。如果分類系統(tǒng)是層次型的,優(yōu)選將起始文檔分類的直接父類的標(biāo)題和/或定義插入其所屬文檔中。文檔服務(wù)器的文檔存儲準(zhǔn)備根據(jù)本發(fā)明的靜態(tài)文檔存儲盡管可以通過手工將分類標(biāo)題和/定義合并到分類文檔中,優(yōu)選自動化這一過程。手工準(zhǔn)備文檔的例子展示在圖5和圖6中。根據(jù)本發(fā)明的靜態(tài)文檔存儲的自動化準(zhǔn)備優(yōu)選作為根據(jù)本發(fā)明的動態(tài)文檔存儲準(zhǔn)備的擴(kuò)展,因此首先要描述動態(tài)文檔存儲的準(zhǔn)備。文檔服務(wù)器網(wǎng)頁應(yīng)用程序根據(jù)本發(fā)明,文檔存儲中的文檔通過服務(wù)器網(wǎng)頁應(yīng)用程序?yàn)樗阉饕婧途W(wǎng)頁客戶所用,服務(wù)器網(wǎng)頁應(yīng)用程序響應(yīng)于客戶端請求在文檔存儲和搜索引擎客戶端或網(wǎng)頁客戶端之間傳輸文檔。該傳輸優(yōu)選符合HTTP協(xié)議,但也可以根據(jù)其它協(xié)議,包括但不限于文件傳輸協(xié)議(FTP)、簡單郵件傳輸協(xié)議(SMTP)和網(wǎng)絡(luò)新聞傳輸協(xié)議(NNTP)。本發(fā)明可以使用的服務(wù)器網(wǎng)頁應(yīng)用包括但不限于,Apache專用服務(wù)器,比如AbaSioux、Apache、Apache-(PZ)-1.3.31、Apache-1.3.27、Apache-ADTI、Apache-AdvancedExtranetServer、Apache-Coyote、Apache-NeoNova、Apache-NeoWebScript、Apache-SSL、Apache-1.3.29、DataClub-Apache、FJapache、Gonzolix-Apache、HP-UX_Apache-based_Web_Server、Rapidsite、Red、ServerApache、Stronghold以及SudApache;MicrosoftNT專用服務(wù)器比如Commerce-Builder、Microsoft-IIS、Microsoft-Internet-Information-Server、Purveyor、WebSite以及WebSitePro;Roxen專用服務(wù)器,比如Roxen、RoxenChallenger、RoxenWebserver以及Spinner;Macintosh專用服務(wù)器,比如4D_WebSTAR_S、4D_WebStar_D、AppleLISA、AppleShareIP、AppleWSE、CL-HTTP、HomeDoor、Interaction、MACOS.PersonaLWebsharing、MacHTTP、NetPresenz、QuidProQuo、WebSTAR、WebSTAR4、WebStar、WebStarV以及Web_Server_4D。盡管本發(fā)明可以通過簡單的網(wǎng)頁應(yīng)用提供靜態(tài)HTML文檔服務(wù),但優(yōu)選通過能夠提供動態(tài)文檔的網(wǎng)頁應(yīng)用服務(wù)實(shí)現(xiàn)。動態(tài)文檔(或者稱作“服務(wù)器頁面”)包含動態(tài)內(nèi)容。以世界萬維網(wǎng)為例,動態(tài)內(nèi)容是如下的網(wǎng)頁內(nèi)容,它包括通常的靜態(tài)內(nèi)容比如顯示文本和標(biāo)識標(biāo)簽,另外還有可執(zhí)行程序內(nèi)容??蓤?zhí)行程序內(nèi)容包括,例如Java、VBScript、CGI網(wǎng)關(guān)腳本、PHP腳本以及Perl代碼。在任何特定動態(tài)服務(wù)器頁面中的這種可執(zhí)行程序內(nèi)容根據(jù)用于執(zhí)行該可執(zhí)行程序內(nèi)容的動態(tài)服務(wù)器頁面引擎類型的不同而不同。例如,Java通常用于Java服務(wù)器頁面(“JSP”)的Java服務(wù)器頁面引擎(在本文中有時被稱作“JSP引擎”);VBScript用于活動服務(wù)器頁面(“ASPs”)的微軟活動服務(wù)器頁面引擎(在本文中有時被稱作“ASP引擎”);VisualBasic和C#用于微軟ASP.NET服務(wù)器頁面應(yīng)用中;PHP腳本,一種基于C、C++、Perl和Java的語言,用于PHP頁面的PHP中的超文本處理器。服務(wù)器網(wǎng)頁應(yīng)用程序生成的文檔服務(wù)器網(wǎng)頁應(yīng)用程序生成的以及傳輸給搜索引擎和/或客戶端的文檔可以是任何一種可以通過網(wǎng)絡(luò)傳輸以及為搜索引擎和網(wǎng)頁客戶端讀取的文件格式。這些格式包括但不限于HTML、XML、MSWord、MSExcel、RTF和PDF。本領(lǐng)域的技術(shù)人員可以理解對上述系統(tǒng)和方法可以有多個修改而不脫離本發(fā)明的范圍。優(yōu)選實(shí)施例附錄1展示了存儲在CD-ROM上的源代碼和其它文檔,它們是在開發(fā)根據(jù)本發(fā)明的原型過程中編寫的。該實(shí)施例公布了將分類專利記錄和子類標(biāo)題合并到動態(tài)XML文檔中,該文檔被插入到網(wǎng)站中,使網(wǎng)頁蜘蛛或抓取器能夠訪問從而能夠被網(wǎng)頁搜索引擎建立索引。硬件環(huán)境是DellPowerEdge1650服務(wù)器,配備了兩個型號80530的Intel1.4Ghz處理器,1Gb物理內(nèi)存和136Gb配置成RAID10的硬盤。操作系統(tǒng)是微軟Windows2000服務(wù)器版,包含微軟InternetInformationServices(IIS)第5版。網(wǎng)站根據(jù)IIS文檔創(chuàng)建,配置使得允許匿名訪問。該服務(wù)器通過LAN網(wǎng)絡(luò)連接到CISCO2621XM路由器,該路由器與因特網(wǎng)連接。此外,該網(wǎng)站還安裝微軟SQLServer7.0版和微軟.NETFramework。分類數(shù)據(jù)的數(shù)據(jù)存儲。根據(jù)SQLServer7.0文檔創(chuàng)建數(shù)據(jù)庫。使用附錄文件USPCScheduleAndHierarchyTables.sql中公布的SQL腳本在該數(shù)據(jù)庫中創(chuàng)建兩個表格,USPCSchedule和USPCHierarchy。使用COM組件下載美國專利分類清單到兩個表格中,該COM組件由微軟Excel電子表格通過VisualBasic宏執(zhí)行。將清單數(shù)據(jù)插入到表格USPCSchedule的宏源代碼(VisualBasic代碼)、SQL存儲過程(Transact-SQL代碼),以及該COM組件(C++代碼)列在附錄的PCDownloadCode.txt文件中。文檔存儲是從每周專利著錄項(xiàng)目原始數(shù)據(jù)生成,該數(shù)據(jù)從美國專利和商標(biāo)局(http://www.uspto.gov/web/menu/patdata.html)下載,它是GrantRedBookV2.5(xml)格式。該過程在圖9中展示。除非下面特別說明,該應(yīng)用在微軟VisualStudio.NET2003下開發(fā)成ATL可執(zhí)行程序。從下載和解壓縮的原始數(shù)據(jù)文件打開一個流。從該流中讀取XML記錄(步驟P101)。該記錄使用XSL格式表進(jìn)行轉(zhuǎn)換(步驟P102)。在步驟P103中,列在該記錄中對應(yīng)美國分類編碼的分類標(biāo)題被插入至該記錄中。在步驟P104中,得到的記錄被保存至文檔存儲131。步驟101是必需的,因?yàn)樵撛紨?shù)據(jù)文件是XML記錄合并的流,但它本身不遵循XML格式。(沒有包括全部內(nèi)容的文檔元素。)通過字符串搜索(wcsstr)從開始XML記錄的部分尋找“<?xml”來逐個讀取XML記錄然后將找到的記錄拷貝到緩存中。在步驟102中,緩存中的記錄被加載至XMLDOM對象,然后使用列在附錄文件StepP102.txt中的計(jì)算機(jī)程序的XSL格式表進(jìn)行轉(zhuǎn)換。該轉(zhuǎn)換過程生成兩個元素′usco′和′uscx′,它們包含屬性′pccode′。該屬性值是搜索子類的檢索關(guān)鍵字,它擁有與上面創(chuàng)建的tblUSPCSchedule中對應(yīng)′pccode′的列相同的格式。得到的XML文檔使用DOM的如下C++代碼表示的保存方法被保存在NAS131中。hr=m_spDOM->save(_variant_t(path));上述代碼中的path使用如下代碼從文檔id數(shù)值計(jì)算得出CComBSTRbstrdocid;bstrdocid.Empty();hr=get_docid(Abstrdocid);wstringdocid((wchar_t*)bstrdocid);wchar_tpath[MAX_PATH];memset(path,′\0′,sizeof(path));wsprintf(path,L″%s\\%s\\%sOOOO\\%sOO\\%s.xml″,/*root*/websiteroot,docid.substr(0,4).c_str(),docid.substr(0,7).c_str(),docid.substr(0,9).c_str(),docid.c_str());其中′websiteroot′是文檔存儲的根目錄路徑,′get_docid′是讀取從步驟P102生成的XML文檔中的元素<pdoc/sdbi/iden/nmbr/>的方法。網(wǎng)站應(yīng)用程序和搜索引擎的索引。準(zhǔn)備七個文件放在根目錄下FolerBrowse.aspx,F(xiàn)olderBrowse.aspx.es,F(xiàn)olderBrowse.aspx.resx,ShowAbstract.aspx,ShowAbstract.aspx.es,ShowAbstract.aspx.resx以及Global.asax。FolderBrowse.aspx和FolderBrowse.aspx.cs以及FolderBrowse.aspx.resx(分別作為FolderBrowse.aspx.txt、FolderBrowse.aspx.cs.txt和FolderBrowse.aspx.resx.txt附帶)向客戶端和搜索引擎以可瀏覽結(jié)構(gòu)呈現(xiàn)文檔存儲內(nèi)容。ShowAbstract.aspx、ShowAbstract.aspx.cs和ShowAbstract.aspx.resx(分別作為ShowAbstract.aspx.txt、ShowAbstract.aspx.cs.txt和ShowAbstract.aspx.resx.txt附帶)從文檔存儲中檢索XML記錄,插入從數(shù)據(jù)庫中得到的分類標(biāo)題,將結(jié)果轉(zhuǎn)換成HTML格式,以及將得到的HTML返回給客戶端。對應(yīng)pccode屬性的子類標(biāo)題從數(shù)據(jù)庫中檢索,并使用它創(chuàng)建元素樹′usctree′,作為包含美國分類信息的元素uscs的子樹。該過程操作XML文檔m_spDOM。其源代碼在附錄的計(jì)算機(jī)程序列表StepP103.txt中列出。該步驟使用在附錄的計(jì)算機(jī)程序列表StepP103sql.txt中的SQL存儲過程spGetSubclassHierarchy訪問數(shù)據(jù)庫。每個分類都要執(zhí)行在圖10中展示的步驟。子類檢索關(guān)鍵字pccode從m_spDOM中檢索,usctree要附加的根元素在<uscs/>初始化(P103.1和P103.2)。對于從spGetSubclassHierarchy檢索的每行來說(P103.3),當(dāng)前的附加目標(biāo)檢查具有相同的classid屬性的usctree元素(P103.5)。如果該元素已經(jīng)被附加了,附加目標(biāo)被賦值成該元素(P103.8)然后處理下一行。如果該元素還沒有被加上去,創(chuàng)建新的usctree元素并附加使得在附加目標(biāo)上的classids順序保持(P103.6),然后將附加目標(biāo)賦值成該新元素(P103.7)。得到的XML文檔通過附錄的XML格式表cxptohtml.xsl.txt被轉(zhuǎn)換成HTML。Global.asax(附錄在Global.asax.txt中)包含過程將“搜索引擎友好的”鏈接,即不含有′?′字符的URL轉(zhuǎn)換成含有查詢字符串的、與FolderBrowse.aspx和ShowAbstract.aspx兼容的URL。這樣含有html擴(kuò)展的URL會生成對global.asax中函數(shù)Application_BeginRequest的調(diào)用,該網(wǎng)頁應(yīng)用被配置成將此URL映射至aspnet_isapi.dll。附錄的XML格式表cxptohtml.xsl.txt被放置(去掉txt擴(kuò)展名)在該網(wǎng)站的根目錄下,該網(wǎng)站的根目錄的URL被提交到Google搜索引擎(http://www.google.com/addurl.html)。由google搜索檢索。在該文檔被Google建立索引后,此過程可能要花上幾個星期,美國分類系統(tǒng)的術(shù)語被輸入至Google搜索表格www.google.com然后提交該搜索。實(shí)施例1本實(shí)施例公布了搜索引擎可索引的網(wǎng)站,它包含了含有分類美國專利記錄的靜態(tài)文檔,該文檔包含子類標(biāo)題。硬件環(huán)境是DellPowerEdge1650服務(wù)器,它配備兩個型號為80530Intel1.4Ghz處理器,1Gb物理內(nèi)存和配置成RAID10的136GB硬盤。操作系統(tǒng)是微軟Windows2000服務(wù)器版,它包含微軟InternetInformationServices(IIS)第5版。網(wǎng)站根據(jù)IIS文檔創(chuàng)建,且配置允許匿名訪問和瀏覽。該服務(wù)器通過LAN網(wǎng)絡(luò)連接CISCO2621XM路由器,該路由器與因特網(wǎng)相連。美國專利申請記錄可以從美國專利局網(wǎng)站上通過使用微軟InternetExplorer第6版訪問。該記錄源可以被查看,參考部分包括美國當(dāng)前分類域被拷貝至HTML文檔體,該HTML文檔使用微軟Notepad準(zhǔn)備。當(dāng)前分類域指定的子類標(biāo)題從USPTO的專利分類主頁(http://www.uspto.gov/go/classification)得到,它被拷貝至表格行中,該表格行在HTML文檔的當(dāng)前分類域下面。操作得到的文檔被包含在附錄的光盤中,文件名是20040177015.html.txt。該文檔被保存在網(wǎng)站的根目錄下。該網(wǎng)站根目錄的URL被提交至Google搜索引擎(http://www.google.com/addurl.html)。實(shí)施例2本實(shí)施例公布了搜索引擎可索引的網(wǎng)站,它包含了含有分類美國專利記錄的靜態(tài)文檔,該文檔包含子類標(biāo)題和其父輩子類的標(biāo)題。使用與實(shí)施例1一樣的硬件和軟件環(huán)境。美國專利申請可以從美國專利局網(wǎng)站通過使用微軟InternetExplorer第6版訪問。該記錄源可以被查看,參考部分包括美國當(dāng)前分類域被拷貝至HTML文檔體,該HTML文檔使用微軟Notepad準(zhǔn)備。當(dāng)前分類域指定的子類標(biāo)題從USPTO的專利分類主頁(http://www.uspto.gov/go/classification)得到,它與其父輩子類和類標(biāo)題一起被拷貝至表格行中,該表格行在HTML文檔的當(dāng)前分類域下面。操作得到的文檔被包含在附錄的光盤中,文件名是20040167928.html.txt。該文檔被保存在網(wǎng)站的根目錄下。該網(wǎng)站根目錄的URL被提交至Google搜索引擎(http://www.google.com/addurl.html)。實(shí)施例3本實(shí)施例公布了搜索引擎可索引的網(wǎng)站,它包含了含有分類美國專利記錄的靜態(tài)文檔,該文檔包含第二語言的子類標(biāo)題和其父輩子類標(biāo)題。使用與實(shí)施例1一樣的硬件和軟件環(huán)境。美國專利申請可以從美國專利局網(wǎng)站通過使用微軟InternetExplorer第6版訪問。該記錄源可以被查看,參考部分包括美國當(dāng)前分類域被拷貝至HTML文檔體,該HTML文檔使用微軟Wordpad(日文版)準(zhǔn)備。當(dāng)前分類域指定的子類標(biāo)題從USPTO的專利分類主頁(http://www.uspto.gov/go/classification)得到,被翻譯成日文,它與其父輩子類和類標(biāo)題一起被插入至表格行中,該表格行在HTML文檔的當(dāng)前分類域下面。該文檔被保存在網(wǎng)站的根目錄下。該網(wǎng)站根目錄的URL被提交至Google搜索引擎(http://www.google.corn/addurl.html)。實(shí)施例4本實(shí)施例公布分類專利記錄與子類標(biāo)題合并至靜態(tài)XML文檔,該文檔被插入至網(wǎng)站,可以被網(wǎng)頁蜘蛛或抓取器訪問從而能夠被網(wǎng)頁搜索引擎索引。使用與實(shí)施例1一樣的硬件和軟件環(huán)境。此外網(wǎng)站需要安裝微軟SQLServer第7版和微軟.NETFramework。分類數(shù)據(jù)的數(shù)據(jù)存儲。根據(jù)SQLServer7.0文檔建立數(shù)據(jù)庫。使用附錄文件USPCScheduleAndHierarchyTables.sql分布的SQL腳本,在該數(shù)據(jù)庫中創(chuàng)建兩個表,USPCSchedule和USPCHierarchy。通過使用微軟Excel電子表格的VisualBasic宏將美國專利分類清單下載至這兩個表格中。插入清單數(shù)據(jù)至USPCSchedule的宏的源代碼(VisualBasic語言)和SQL存儲過程(Transact-SQL語言),以及COM組件(C++語言)列在附錄的文件PCDownloadCode.txt中。文檔存儲是從美國專利和商標(biāo)局(http://www.uspto.gov/web/menu/patdata.html)下載的每周專利參考原始數(shù)據(jù)生成的,是GrantRedBookV2.5(xml)格式。該處理過程展示在圖9中。除非特別注明,該應(yīng)用使用微軟VisualStudio.NET2003開發(fā)成ATL可執(zhí)行體。從下載和解壓縮的原始數(shù)據(jù)文件打開一個流。從該流中讀取XML記錄(步驟P101)。該記錄使用XSL格式表進(jìn)行轉(zhuǎn)換(步驟P102)。在步驟P103中,列在該記錄中對應(yīng)美國分類編碼的分類標(biāo)題被插入至該記錄中。在步驟P104中,得到的記錄被保存至文檔存儲131。步驟101是必需的,因?yàn)樵撛紨?shù)據(jù)文件是XML記錄合并的流,但它本身不遵循XML格式。(整個內(nèi)容包含的不是文檔元素。)通過字符串搜索(wcsstr)從開始XML記錄的部分尋找“<?xml”來逐個讀取XML記錄然后將找到的記錄拷貝到緩存中。在步驟102中,緩存中的記錄被加載至XMLDOM對象,然后使用列在附錄文件StepP102.txt中的計(jì)算機(jī)程序的XSL格式表進(jìn)行轉(zhuǎn)換。該轉(zhuǎn)換過程生成兩個元素′usco′和′uscx′,它們包含屬性′pccode′。該屬性值是搜索子類的檢索鍵,它擁有與上面創(chuàng)建的tblUSPCSchedule中對應(yīng)′pccode′的列相同的格式。注意此格式表生成xml-格式表作為輸出。在步驟103中,對應(yīng)pccode屬性的子類標(biāo)題從數(shù)據(jù)庫中檢索,并使用它創(chuàng)建元素樹′usctree′,作為包含美國分類信息的元素的子樹。該步驟的源代碼在附錄的計(jì)算機(jī)程序列表StepP103.txt中列出。該過程操作在步驟102中準(zhǔn)備好的XMLDOM對象(m_spDOM)。該步驟使用在附錄的計(jì)算機(jī)程序列表StepP103sql.txt中的SQL存儲過程spGetSubclassHierarchy訪問數(shù)據(jù)庫。每個分類都要執(zhí)行在圖10中展示的步驟。子類檢索鍵pccode從m_spDOM中檢索,usctree要附加的根元素在<uscs/>初始化(P103.1和P103.2)。對于從spGetSubclassHierarchy檢索的每行來說(P103.3),當(dāng)前的附加目標(biāo)與usctree元素的classid屬性是否一致進(jìn)行檢查(P103.5)。如果該元素已經(jīng)被附加了,附加目標(biāo)被賦值成該元素(P103.8)然后處理下一行。如果該元素還沒有被加上去,創(chuàng)建新的usctree元素并附加使得在附加目標(biāo)上的classids順序保持(P103.6),然后將附加目標(biāo)賦值成該新元素(P103.7)。得到的XML文檔被保存在NAS131中(P104),使用DOM的如下C++代碼表示的保存方法。hr=m_spDOM->save(_variant_t(path));上述代碼中的path使用如下代碼從文檔id數(shù)值計(jì)算得出CComBSTRbstrdocid;bstrdocid.Empty();hr=get_docid(Abstrdocid);wstringdocid((wchar_t*)bstrdocid);wchar_tpath[MAX_PATH];memset(path,′\0′,sizeof(path));wsprintf(path,L″%s\\%s\\%sOOOO\\%sOO\\%s.xml″,/*root*/websiteroot,docid.substr(0,4).c_str(),docid.substr(0,7).c_str(),docid.substr(0,9).c_str(),docid.c_str());其中′websiteroot′是網(wǎng)站的根目錄路徑,′get_docid′是讀取從步驟P103生成的XML文檔中的元素<pdoc/sdbi/iden/nmbr/>的方法。網(wǎng)站應(yīng)用和搜索引擎建索引。附錄的XML格式表cxptohtml.xsl被放置在該網(wǎng)站的根目錄下,該網(wǎng)站根目錄的URL被提交到Google搜索引擎(http://www.google.com/addurl.html)。由google搜索檢索。在該文檔被Google建立索引后,此過程可能要花上幾個星期,美國分類系統(tǒng)的術(shù)語被輸入至Google搜索表格www.google.com然后提交該搜索。實(shí)施例5本實(shí)施例公布分類美國專利記錄與子類標(biāo)題合并至靜態(tài)XML文檔,該文檔包含內(nèi)嵌對象鏈接到分類定義,且被插入至已被索引的網(wǎng)站。接著與實(shí)施例4一樣,除了以下例外步驟P104被步驟P104html替換,如圖11所示。在步驟P104html中,使用XML格式表cxptohtml.xsl.txt(附錄)將步驟103生成的XML文檔轉(zhuǎn)換成HTML,然后保存到文檔存儲中。其源代碼片段(省略了出錯處理代碼)被附錄在文件Step104html.txt中。得到的HTML文檔被保存至NAS131。其path使用如下代碼從文檔id數(shù)值計(jì)算得出CComBSTRbstrdocid;bstrdocid.Empty();hr=getdocid(Abstrdocid);wstringdocid((wchar_t*)bstrdocid);wchar_tpath[MAX_PATH];memset(path,′\0′,sizeof(path));wsprintf(path,L″%s\\%s\\%sOOOO\\%sOO\\%s.htm″,/*root*/websiteroot,docid.substr(0,4).c_str(),docid.substr(0,7).c_str(),docid.substr(0,9).c_str(),docid.c_str());其中′websiteroot′是網(wǎng)站的根目錄路徑,′get_docid′是讀取從步驟P103生成的XML文檔中的元素<pdoc/sdbi/iden/nmbr/>的方法。XML格式表cxptohtml.xsl從該網(wǎng)站根目錄處省略。工業(yè)適用性本發(fā)明適用于通過網(wǎng)絡(luò)建立索引和檢索分類文檔。20040167928.htm.txt<html><head><title>UnitedStatesPatentApplication20040167928</title></head><body><TAABLEborder=0><TR><TDVALIGN=TOPALIGN=LEFTwidth=40> ;</TD><TDVALIGN=TOPALIGN=LEFTwidth=40> ;</TD><TDVALIGN=TOPALIGN=RIGHTWIDTH=50></TD><TDALIGN=RIGHTVALIGN=BOTTOMWIDTH=500><FONTSIZE=-1>(<STRONG>50</STRONG></FONT><FONTSIZE=-2>of</FONT><STRONG><FONTSIZE=-1>4195</STRONG>)</FONT></TD></TR></TABLE><HR><TABLEWIDTH=″100%″><TR><TDALIGN=″LEFT″WIDTH=″50%″><B>UnitedStatesPatentApplication</B></TD><TDALIGN=″RIGHT″WIDTH=″50%″><B>20040167928</B></TD></TR><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″50%″><B>KindCode</B></TD><TDALIGN=″RIGHT″WIDTH=″50%″><B>Al</B></TD></TR><TR><TDALIGN=″LEFT″WIDTH=″50%″><b>Anderson,Darrell; etal.</B></TD><TDALIGN=″RIGHT″WIDTH=″50%″><B>Auqust26,2004</B></TD></TR></TABLE><HR><fontsize=″+1″>Servingcontent-relevantadvertisementswithclient-sidedevicesupport</font><BR><BR><CENTER><B>Abstract</B></CENTER><P>Aclient-sideapplication(suchasabrowser,abrowserplug-in,abrowsertoolbarplug-in,etc.onanenduser'scomputer)isusedtosupporttheservingofcontent-relevantadstotheclientdevice.theclient-sideapplicationmayprovidesuchsupportbysendingdocumentinformation(suchasadocumentidentifier,documentcontent,contentrelevanceinformation,etc.)toacontentadserver.Theclient-sideapplicationmavalsobeusedtocombinecontentofthedocumentandthecontent-relevantads.Forexample,theclient-sideapplicationmaycombinecontentofthedocumentandtheadsinawindow(e.g.,inabrowserwindow),mayprovidetheadsinawindowabove,below,adjacenttoadocumentwindow,mayprovidetheadsin″chrome″ofthebrowser,etc.</P><HR><TABLEWIDTH=″100%″><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″>Inventors:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B>Anderson,Darrell</B>;<I>(MountainView,CA)</I><B>;Buchheit,Paul</B>;<I>(MountainView,CA)</I><B>;Dean,JeffreyA,</B>;<I>(MenloPark,CA)</I><B>;Harik,GeorgesR.</B>;<I>(MountainView,CA)</I><B>;Gonsaves,CarlLaurence</B>;<I>(MountainView,CA)</I><B>;Shazeer,Noam</B>;<I>(PaloAlto,CA)</I><B>;Shivakumar,Narayanan</B>;<I>(SanJose,CA)</I>20040177015.htm.txt<html><head><title>UnitedStatesPatentApplication20040177015</title></head><body><TABLEWIDTH=″100%″><TR><TDALIGN=″LEFT″WIDTH=″50%″><B>UnitedStatesPatentApplication</B></TD><TDALIGN=″RIGHT″WIDTH=″50%″><B>20040177015</B></TD></TR><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″50%″><B>KindCode</B></TD><TDALIGN=″RIGHT″WIDTH=″50%″><B>Al</B></TD></TR><TR><TDALIGN=″LEFT″WIDTH=″50%″><b>Galai,Yaron; etal.</B></TD><TDALIGN=″RIGHT″WIDTH=″50%″><B>September9,2004</B></TD></TR></TABLE><HR><fontsize=″+1″>Systemandmethodforextractingcontentforsubmissiontoa<B><I>searchengine</I></B></font><BR><BR><CENTER><B>Abstract</B></CENTER><P>AsystemandamethodforautomaticallysubmittingWebpagestoa<B><I>searchengine,</I></B>whichispreferablyusedforsubmittingdynamicWebpages,butmayoptionallybeusedforanytypeofWebpage.ThepresentinventionfeaturesagatewayserverforprovidingtheseWebpagestothe<B><I>searchengine,</I></B>eitherdirectlyoroptionallythroughanautonomoussoftwaresearchprogram.Optionallyandmorepreferably,thegatewayservermodifiestheWebpagebeforeservingittotheautonomoussoftwaresearchprogramand/or<B><I>searchengine</I></B>.</P><HR><TABLEWIDTH=″100%″><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″>Inventors:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B>Galai,Yaron</B>;<I>(RishonLeZion,IL)</I><B>;Itzhak,Oded</B>;<I>(Modi′in,IL)</I></TD></TR><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″>CorrespondenceNameandAddress:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B><PRE>AnthonyCastorinaGEEhrlichSuite2072001JerffersonDavisHighwayArlingtonVA22202US</PRE></B></TD></TR><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″NOWRAP>SerialNo.:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B>486196</B></TD></TR><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″>SeriesCode:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B>10</B></TD></TR>20040177015.htm.txt<TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″>Filed:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B>February13,2004</B></TD></TR><TR><TDVALIGN=″TOP″ALIGN=″LEFT″WIDTH=″10%″>PCTNO:</TD><TDALIGN=″LEFT″WIDTH=″90%″><B>PCT/IL02/00669</B></TD></TR></TABLE><p><TABLEWIDTH=″100%″><TR><TDVALIGN=TOPALIGN=″LEFT″WIDTH=″40%″><B>U.S.CurrentClass:</B></TD><TDVALIGN=TOPALIGN=″RIGHT″WIDTH=″60%″><B>705/35</B></TD></TR><tr><td>Finance(e.g.,banking,investmentorcredit)</td></tr><TR><TDVALIGN=TOPALIGN=″LEFT″WIDTH=″40%″><B>U.S.ClassatPublication:</B></TD><TDVALIGN=TOPALIGN=″RIGHT″WIDTH=″60%″><B>705/035</B></TD></TR><TR><TDVALIGN=TOPALIGN=″LEFT″WIDTH=″40%″><B>Intern′lClass:</B></TD><TDVALIGN=TOPALIGN=″RIGHT″WIDTH=″60%″>G06F017/60</TD></TR></TABLE></body></html>Contents.txt20040177015.htm.txt-HTMLfilepreparedaccordingtoEmbodiment120040167928.htm.txt-HTMLfilepreparedaccordingtoEmbodiment2cxptohtml.xsl.txt-XSLstylesheetaccordingtoPreferredEmbodimentFolderBrowse.aspx.cs.txt-C#fileforwebsiteapplicationaccordingtoPreferredEmbodimentFolderBrowse.aspx.resx.txt-ResourcefileforwebsiteapplicationaccordingtoPreferredEmbodimentFolderBrowse.aspx.txt-SourcefileforwebsiteapplicationaccordingtoPreferredEmbodimentGlobal.asax.txt-GlobalsourcefileforwebsiteapplicationaccordingtoPreferredEmbodimentPCDownloadCode.txt-ComputersourcecodefordownloadingUSPTOclassscheduleforEmbodiment4ShowAbstract.aspx.cs.txt-C#fileforwebsiteapplicationaccordingtoPreferredEmbodimentShowAbstract.aspx.resx.txt-ResourcefileforwebsiteapplicationaccordingtoPreferredEmbodimentShowAbstract.aspx.txt-SourcefileforwebsiteapplicationaccordingtoPreferredEmbodimentStepP102.txt-XMLstylesheetforStepP102accordingtoPreferredEmbodimentStepP103.txt-C++sourcecodeforStepP103accordingtoPreferredEmbodimentStepP103sql.txt-SQLsourcecodeforStepP103accordingtoPreferredEmbodimentStepP104html.txt-C++sourcecodeforStepP104accordingtoEmbodiment5USPCScheduleAndHierarchyTab1es.sql.txt-SQLscriptforcreatingtablesforEmbodiment4cxptohtml.xsl.txt<?xmlversion=″1.0″encoding=″UTF-8″standalone=″yes″?><xsl:stylesheetversion=″1.0″xmlns:xsl=″http://www.w3.org/1999/XSL/Transform″xmlns=″http://cxp.paterra.com″xmlns:cxp=″http://cxp.paterra.com″xmlns:pi=http://www.paterra.com/pi″xmlns:msxml=″urn:schemas-microsoft-com:xslt″><xsl:outputmethod=″html″encoding=″us-ascii″/><xsl:templatematch=″cxp:pdoc″><xsl:variablename=″kind″><xsl:value-ofselect=″cxp:sdbi/cxp:iden/cxp:kind″/></xsl:variable><html><head><title><xsl:choose><xsl:whentest=″$kind=′A1′″>U.S.PregrantAbstract<xsl:value-ofselect=″cxp:sdbi/cxp:iden/cxp:nmbr″/></xsl:when></xsl:choose></title></head><bodybgcolor=″cyan″><tablebgcolor=″beige″><tr><td><tablewidth=″100%″bgcolor=″bisque″><tr><th><xsl:choose><xsl:whentest=″$kind=′A1′″>U.S.PregrantAbstract<xsl:value-ofselect=″cxp:sdbi/cxp:iden/cxp:nmbr″/></xsl:when></xsl:choose>-<xsl:value-ofselect=″cxp:sdbi/cxp:tech/cxp:titl″/></th></tr><tr><td><tablewidth=″100%″bgcolor=″beige″><tr><td><xsl:choose><xsl:whentest=″$kind=′A1′″U.S.PatentApplication<xsl:value-ofselect=″cxp:sdbi/cxp:iden/cxp:nmbr″/></xsl:when></xsl:choose></td><td><xsl:value-ofselect=″cxp:sdbi/cxp:iden/cxp:date″/></td></tr><tr><td>SerialNo:</td><td><xsl:value-ofselect=″substring(cxp:sdbi/cxp:file/cxp:nmbr,3)″/></td></tr><tr><td>SeriesCode:</td><td><xsl:value-ofselect=″substring(cxp:sdbi/cxp:file/cxp:nmbr,1,2)″/></td>cxptohtml.xsl.txt</tr><tr><td>Filed:</td><td><xsl:value-ofselect=″cxp:sdbi/cxp:file/cxp:date″/></td></tr></table></td></tr></table></td></tr><tr><td><tablewidth=″100%″bgcolor=″bisque″><tr><td><xsl:apply-templatesselect=″cxp:sdab″/></td></tr></table></td></tr><tr><td><tablewidth=″100%″bgcolor=″bisque″><tr><td><xsl:apply-templatesselect=″cxp:sdbi/cxp:tech/cxp:uscs/cxp:usctree″/></td></tr></table></td></tr><tr><td><tablewidth=″100%″bgcolor=″bisque″><tr><tdvalign=″top″><table><tr><th>Assignee</th></tr><tr><td><xsl:value-ofselect=″cxp:sdbi/cxp:ptys/cxp:apps/cxp:appl″/></td></tr></table></td><tdvalign=″top″><table><tr><th>Inventors</th></tr><xsl:apply-templatesselect=″cxp:sdbi/cxp:ptys/cxp:invs/cxp:invr″/></table></td></tr></table></td></tr></table><xsl:apply-templates/></body></html></xsl:template><xsl:templatematch=″cxp:invr″><tr><td><xsl:apply-templatesselect=″cxp:name″/></td></tr><tr><td><xsl:apply-templatesselect=″cxp:addr″/></td></tr></xsl:template>cxptohtml.xsl.txt<xsl:templatematch=″cxp:name″><xsl:value-ofselect=″cxp:lnme″/>;<xsl:value-ofselect=″cxp:fnme″/><xsl:value-ofselect=″cxp:mnme″/></xsl:template><xsl:templatematch=″cxp:usctree″><table><tr><xsl:choose><xsl:whentest=″@type=′primary′″><td><b><xsl:value-ofselect=″@scode″/></b></td><td><b><xsl:value-ofselect=″@title″/></b></td></xsl:when><xsl:otherwise><td><xsl:value-ofselect=″@scode″/></td><td><xsl:value-ofselect=″@title″/></td></xsl:otherwise></xsl:choose></tr><tr><td></td><td><xsl:apply-templates/></td></tr></table></xsl:template></xsl:stylesheet>FolderBrowse.aspx.cs.txtusingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.IO;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;namespacecxp{///<summary>///FolderBrowse///</summary>publicclassFolderBrowse:System.Web.UI.Page{protectedLabellblText;privatevoidPage_Load(objectsender,System.EventArgse){if(Request.QueryString.GetValues(″year″)?。絥ull){stringstrStart=″DocStore/″+Request.QueryString.GetValues(year″);ShowFromYear(strStart);}elseif(Request.QueryString.GetValues(″myriad″)?。絥ull){stringstrMyriad=Request.QueryString.GetValues(″myriad″);stringstrYear=strMyriad.Substring(0,4);stringstrStart=″DocStore/″+strYear+″/″+strMyriad;ShowFromMyriad(strStart);}elseif(Request.QueryString.GetValues(″cent″)?。絥ull){stringstrCent=Request.QueryString.GetValues(cent″);stringstrYear=strCent.Substring(0,4);stringstrMyriad=strCent.Substring(0,7)+″0000″;stringstrStart=″DocStore/″+strYear+″/″+strMyriad+″/″+strCent;ShowFromCent(strStart);}else{ShowYears();}}privatevoidShowYears(){string[]strDS=System.IO.Directory.GetDirectories(MapPath(″DocStore/US_A″));foreach(stringstrDirinstrDS){stringstrYear=strDir.Substring(strDir.LastIndexOf(″\\″)+1);lblText.Text+=″<p><ahref=\″FolderBrowse.aspx?year=″+strYear+″\″>″+strYear+″</a></p>″;FolderBrowse.aspx.cs.txt}}privatevoidShowFromYear(stringstrYear){string[]strDS=System.IO.Directory.GetDirectories(MapPath(strYear));foreach(stringstrDirinstrDS){stringstrMyriad=strDir.Substring(strDir.LastIndexOf(″\\″)+1);lblText.Text+=″<p><ahref=\″FolderBrowse.aspx?myriad=″+strMyriad+″\″>″+strMyriad+″</a></p>″;}}privatevoidShowFromMyriad(stringstrMyriad){string[]strDS=System.IO.Directory.GetDirectories(MapPath(strMyriad));foreach(stringstrDirinstrDS){stringstrCent=strDir.Substring(strDir.LastIndexof(″\\″)+1);lblText.Text+=″<p><ahref=\″FolderBrowse.aspx?cent=″+strCent+″\″>″+strCent+″</a></p>″;}}privatevoidShowFromCent(stringstrCent){string[]strDS=System.IO.Directory.GetFiles(MapPath(strCent));foreach(stringstrDirinstrDS){stringstrDoc=strDir.Substring(strDir.LastIndexOf(″\\″)+1);strDoc=strDoc.Substring(0,strDoc.IndexOf(″.″));lblText.Text+=″<p><ahref=\″uspregrant″+strDoc+″.html\″>″+strDoc+″</a></p>″;}}#regionWeboverrideprotectedvoidOnInit(EventArgse){////CODEGEN://InitializeComponent();base.OnInit(e);}privatevoidInitializeComponent(){this.Load+=newSystem.EventHandler(this.Page_Load);}#endregion}}FolderBrowse.aspx.resx.txt<?xmlversion=″1.0″encoding=″utf-8″?><root><xsd:schemaid=″root″xmlns=″″xmlns:xsd=″http://www.w3.org/2001/XMLSchema″xmlns:msdata=″urn:schemas-microsoft-com:xml-msdata″><xsd:elementname=″root″msdata:IsDataSet=″true″><xsd:complexType><xsd:choicemaxOccurs=″unbounded″><xsd:elementname=″data″><xsd:complexType><xsd:sequence><xsd:elementname=″value″type=″xsd:string″minOccurs=″0″msdata:Ordinal=″1″/><xsd:elementname=″comment″type=″xsd:string″minOccurs=″0″msdata:Ordinal=″2″/></xsd:sequence><xsd:attributename=″name″type=″xsd:string″/><xsd:attributename=″type″type=″xsd:string″/><xsd:attributename=″mimetype″type=″xsd:string″/></xsd:complexType></xsd:element><xsd:elementname=″resheader″><xsd:complexType><xsd:sequence><xsd:elementname=″value″type=″xsd:string″minOccurs=″0″msdata:Ordinal=″1″/></xsd:sequence><xsd:attributename=″name″type=″xsd:string″use=″required″/></xsd:complexType></xsd:element></xsd:choice></xsd:complexType></xsd:element></xsd:schema><resheadername=″ResMimeType″><value>text/microsoft-resx</value></resheader><resheadername=″Version″><value>1.0.0.0</value></resheader><resheadername=″Reader″><value>System.Resources.ResXResourceReader,System.Windows.Forms,version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089</value></resheader><resheadername=″Writer″><value>System.Resources.ResXResourceWriter,System.Windows.Forms,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089</value></resheader></root>FolderBrowse.aspx.txt<%@Pagelanguage=″c#″Codebehind=″FolderBrowse.aspx.cs″AutoEventWireup=″false″Inherits=″cxp.FolderBrowse″%><!DOCTYPEHTMLPUBLIC″-//W3C//DTDHTML4.0Transitional//EN″><html><head><title>FolderBrowse</title><metaname=″GENERATOR″Content=″MicrosoftVisualStudio.NET7.1″><metaname=″CODE_LANGUAGE″Content=″C#″><metaname=vs_defaultClientScriptcontent=″JavaScript″><metaname=vs_targetSchemacontent=″http://schemas.microsoft.com/intellisense/ie5″></head><bodyMS_POSITIONING=″GridLayout″><formrunat=″server″><asp:LabelID=″lblText″Runat=server/></form></body></html>Global.asax.txt<%@Language=″C#″%><%@ImportNamespace=″System.IO″%><%@ImportNamespace=″System.Text.RegularExpressions″%><Scriptrunat=server>voidApplication_Start(objectsender,EventArgse){Context.Cache[″CXP_ConnectionString″]=″″;Context.Cache[″CXP_ConnectionTimeout″]=15;Context.Cache[″CXP_CommandTimeout″]=30;Context.Cache[″CXP_CursorLocation″]=3;Context.Cache[″CXP_RuntimeUserName″]=″″;Context.Cache[″CXP_RuntimePassword″]=″″;Context.Cache[″CXPACT_ConnectionString″]=″″;Context.Cache[″CXPACT_ConnectionTimeout″]=15;Context.Cache[″CXPACT_CommandTimeout″]=30;Context.Cache[″CXPACT_CursorLocation″]=3;Context.Cache[″CXPACT_RuntimeUserName]=″″;Context.Cache[″CXPACT_RuntimePassword″]=″″;}voidApplication_BeginRequest(Objectsender,EventArgse){HttpContextincoming=HttpContext.Current;stringoldpath=incoming.Request.Path.ToLower();stringstrClass;Regexregexpregrant=newRegex(@″uspregrant\d{11}.html″,RegexOptions.IgnoreCase|RegexOptions.IgnorePatternWhitespace);if(regexpregrant.IsMatch(oldpath)){//ExtractthepageidandsendittoProcess.aspxRegexregexClass=newRegex(@″\d{11}″,RegexOptions.IgnoreCase|RegexOptions.IgnorePatternWhitespace);MatchCollectionmatchesClass=regexClass.Matches(oldpath);strClass=string.Format(″{0}/ShowAbstract.aspx?doc={1}″,Request.ApplicationPath,matchesClass.ToString());incoming.RewritePath(strClass);}elseincoming.RewritePath(oldpath);}</Script>PCDownloadCode.txt/*CodeSection1.macroforMicrosoftExcelspreadsheet*/PublicSubDownloadUSPCsCOM()DimoUSPTOAsObjectDimoExcelAsObjectSetoExcel=ApplicationSetoUSPTO=CreateObject(″USPTO.PCDownload″)oUSPTO.DownloadClassSchedulesoExcel,″http://www.uspto.gov/web/patents/classification/selectbynum.htm″,server,databaseSetoUSPTO=NothingSetoExcel=NothingEndSub==================================================================================/*CodeSection2.storedprocedurespInsertUSClass*/alterprocedurespInsertUSClass@levelint,@codechar(12),@scodechar(18),@defnchar(250)asdeclare@thisidintinsertUSPCSchedule([level],pccode,scode,defn)values(cast(@levelastinyint),@code,@scode,@defn)set@thisid=@@identityreturn@thisid=============================================================================/*codeSection3a.C++headersection*///PCDownload.h:CPCDownload#ifndef___PCDOWNLOAD_H_#define___PCDOWNLOAD_H_#include″resource.h″#import″C:\WINNT\System32\shdocvw.dll″rename_namespace(″Browser″)no_auto_exclude\rename(″tagREADYSTATE″,″tagIEREADYSTATE″)#include<mshtml.h>///////////////////////////////////////////////////////////////////////////////CPCDownloadclassATL_NO_VTABLECPCDownload:publicCComObjectRootEx<CComSingleThreadModel>,publicCComCoClass<CPCDownload,&CLSID_PCDownload>,publicISupportErrorInfo,publicIDispatchImpl<IPCDownload,&IID_IPCDownload,&LIBID_USPTOLib>{public:CPCDownload(){}PCDownloadCode.txtDECLARE_REGISTRY_RESOURCEID(IDR_PCDOWNLOAD)DECLARE_PROTECT_FINAL_CONSTRUCT()BEGIN_COM_MAP(CPCDownload)COM_INTERFACE_ENTRY(IPCDownload)COM_INTERFACE_ENTRY(IDispatch)COM_INTERFACE_ENTRY(ISupportErrorInfo)END_COM_MAP()//ISupportsErrorInfoSTDMETHOD(InterfaceSupportsErrorInfo)(REFIIDriid);//IPCDownloadprotected:longm_nInsertRow;voidErrorReport(_com_error&e);voidErrorReport(HRESULThr);CComPtr<Browser::IWebBrowser2>m_pBrowser;public:STDMETHOD(DownloadClassSchedule)(/*[in]*/IDispatch*pExcel,/*[in]*/BSTRbstrClass,/*[in]*/BSTRurl,/*[in]*/BSTRserver,/*[in]*/BSTRdatabase);STDMETHOD(DownloadClassSchedules)(IDispatch*pExcel,BSTRstartingURL,/*[in]*/BSTRserver,/*[in]*/BSTRdatabase);};#endif//_PCDOWNLOAD_H_/*Code3b.C++sourcesection*///PCDownload.cpp:CPCDownload#include″stdafx.h″#include″USPTO.h″#include″PCDownload.h″#include″Rpcdce.h″#include<OleDbErr.h>#import″c:\ProgramFiles\Microsoftoffice\Office\mso9.dll″//raw_interfaces_only#import″c:\ProgramFiles\CommonFiles\MicrosoftShared\vba\vba6\vbe6ext.olb″#import″c:\ProgramFiles\Microsoftoffice\Office\excel9.olb″rename(″DialogBox″,″ExcelDialogBox″)rename(″RGB″,″ExcelRGB″)#pragmawarning(disable:4146)#undefEOF#import″C:\ProgramFiles\CommonFiles\System\ADO\msado15.dll″rename_namespace(″ado20″)#pragmawarning(default:4146)///////////////////////////////////////////////////////////////////////////////CPCDownloadSTDMETHODIMPCPCDownload::InterfaceSupportsErrorInfo(REFIIDriid){staticconstIID*arr[]={&IID_IPCDownload};for(inti=0;i<sizeof(arr)/sizeof(arr);i++){if(::ATL::InlineIsEqualGUID(*arr[i],riid))returnS_OK;PCDownloadCode.txt}returnS_FALSE;}STDMETHODIMPCPCDownload::DownloadClassSchedule(IDispatch*pExcel,BSTRbstrClass,BSTRurl,BSTRserver,BSTRdatabase){usingnamespaceExcel;usingnamespaceado20;CComBSTRbstrServer(server);CComBSTRbstrDatabase(database);HRESULThr=S_OK;longnDotLevel=0;wstringwsClassCode=wstring(L″C″);wsClassCode+=wstring((wchar_t*)bstrClass);wsClassCode+=wstring(L″S000000″);//replacestringcodeswitharrayforidentityintegersreturnedfromdatabaselongnCodeIdentity[10];//nowgetthebrowserif(m_pBrowser==NULL){try{hr=::CoCreateInstance(__uuidof(Browser::InternetExplorer),NULL,CLSCTX_ALL,___uuidof(Browser::IWebBrowser2),(void**)&m_pBrowser);}Catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){wstringwsError(L″Non-COMExceptioncreatingBrowser::InternetExplorer:″);Error(wsError.c_str());returnE_FAIL;}if(!SUCCEEDED(hr)){wstringwsError(L″FailedtocreateBrowser::InternetExplorer:″);Error(wsError.c_str());returnhr;}}hr=m_pBrowser->put_Visible(VARIANT_TRUE);_variant_tvarURL(url);hr=m_pBrowser->Navigate2(&varURL);longnTries=0;while(nTries<500&&m_pBrowser->ReadyState?。絉EADYSTATE_COMPLETE){::Sleep(500);nTries++;}PCDownloadCode.txtif(nTries==500){Error(″FailedtodownloadstartingURL″);returnE_FAIL;}//openthedatabase//useADO//createtheADOconnection_variant_tvtEmpty(DISP_E_PARAMNOTFOUND,VT_ERROR);_variant_tvtra(DISP_E_PARAMNOTFOUND,VT_ERROR);_ConnectionPtrpConnection=NULL;_ParameterPtrpLevelParam=NULL;_ParameterPtrpCodeParam=NULL;_ParameterPtrpSubclassParam=NULL;_ParameterPtrpDefnParam=NULL;_ParameterPtrpReturnParam=NULL;try{hr=pConnection.CreateInstance(___uuidof(Connection));pConnection->CurSorLocation=aduseClient;}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){returnE_FAIL;}if(!SUCCEEDED(hr)){ErrorReport(hr);returnhr;}try{CComBSTRbstrConnectionString;bstrConnectionString.Empty();bstrConnectionString.Append(L″provider=SQLOLEDB.1;dataprovider=SQLOLEDB;datasource=″);bstrConnectionString.AppendBSTR(bstrServer.m_str);bstrConnectionString.Append(L″;initialcatalog=″);bstrConnectionString.AppendBSTR(bstrDatabase.m_str);bstrConnectionString.Append(L″;″);hr=pConnection->Open(bstrConnectionString.m_str,_bstr_t(L″username″),_bstr_t(L″userpassword″),adConnectUnspecified);}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){returnE_FAIL;}if(!SUCCEEDED(hr)){ErrorReport(hr);returnhr;PCDownloadCode.txt//nowextractinfofrompageCComPtr<IDispatch>pDoCDisp;CComPtr<IHTMLDocument2>pDoc;hr=m_pBrowser->get_Document(&pDocDisp);hrpDocDisp->QueryInterface(___uuidof(IHTMLDoCument2),(void**)&pDoc);CComPtr<IHTMLElement>pBody;hr=pDoc->get_body(&pBody);CComPtr<IDispatch>pAllDisp;CComPtr<IHTMLElementCollection>pAll;if(pBody?。絅ULL){hr=pBody->get_all(&pAllDisp);hr=pAllDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pAll);CComPtr<IDispatch>pTableDisp;CComPtr<IHTMLElementCollection>pTableTags;hr=pAll->tags(_variant_t(L″table″),&pTableDisp);hr=pTableDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pTableTags);longnTableTags=0;hr=pTableTags->get_length(&nTableTags);boolbFoundClassTitle=false;for(longn=0;n<nTableTags;n++){CComPtr<IDispatch>pDispTable;CComPtr<IHTMLElement>pTable;hr=pTableTags->item(_variant_t(n),_variant_t(n),&pDispTable);hr=pDispTable->QueryInterface(___uuidof(IHTMLElement),(void**)&pTable);CComPtr<IDispatch>pTblAllDisp;CComPtr<IHTMLElementCollection>pTblAll;hr=pTable->get_all(&pTblAllDisp);hr=pTblAllDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pTblAll);CComPtr<IDispatch>pTRDisp;CComPtr<IHTMLElementCollection>pTRTags;r=pTblAll->tags(_variant_t(L″tr″),&pTRDisp);hr=pTRDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pTRTags);longnTRTags=0;hr=pTRTags->get_length(&nTRTags);if(nTRTags>0){CComPtr<IDispatch>pDispTR;CComPtr<IHTMLElement>pTR;hr=pTRTags->item(_variant_t((long)0),_variant_t((long)0),&pDispTR);hr=pDispTR->QueryInterface(___uuidof(IHTMLElement),(void**)&pTR);CComPtr<IDispatch>pTRAllDisp;CComPtr<IHTMLElementCollection>pTRAll;hr=pTR->get_all(&pTRAllDisp);hr=pTRAllDisp->QueryInterface(PCDownloadCode.txt___uuidof(IHTMLElementCollection),(void**)&pTRAll);CComPtr<IDispatch>pTDDisp;CComPtr<I1HTMLElementCollection>pTDTags;hr=pTRAll->tags(_variant_t(L″td″),&pTDDisp);hr=pTDDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pTDTags);longnTDTags=0;hr=pTDTags->get_length(&nTDTags);if(nTDTags>1){CComPtr<IDispatch>pDispTD;CComPtr<IHTMLElement>pTD;hr=pTDTags->item(_variant_t((long)1),_variant_t((long)1),&pDispTD);hr=pDispTD->QueryInterface(___uuidof(IHTMLElement),(void**)&pTD);CComBSTRbstrText;bstrText.Empty();hr=pTable->get_innerText(&bstrText);if(bFoundClassTitle==true){if(wcsstr((wchar_t*)bstrText.m_str,L″PRIVACY″)==NULL)//&&//wcsstr((wchar_t*)bstrText.m_str,L″FOREIGNART″)==NULL&&//wcsstr((wchar_t*)bstrText.m_str,L″DIGESTS″)==NULL)//atendofinterestingtables{CComVariantvarName;CComBSTRbstrSubclass;bstrSubclass.Empty();CComPtr<IDispatch>pTDAllDisp;CComPtr<IHTMLElementCollection>pTDAll;hr=pTD->get_all(&pTDAllDisp);hr=pTDAllDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pTDAll);CComPtr<IDispatch>pADisp;CComPtr<IHTMLElementCollection>pATags;hr=pTDAll->tags(_variant_t(L″a″),&pADisp);hr=pADisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pATags);longnATags=0;hr=pATags->get_length(&nATags);if(nATags>0){CComPtr<IDispatch>pDispA;CComPtr<IHTMLElement>pA;hr=pATags->item(_variant_t((long)0),_variant_t((long)0),&pDispA);hr=PCDownloadCode.txtpDispA->QueryInterface(___uuidof(IHTMLElement),(void**)&pA);//subclasscodehr=pA->getAttribute(_bstr_t(L″name″),0,&varName);hr=pA->get_innerText(&bstrSubclass);//pCells->PutItem(_variant_t((long)m_nInsertRow),_variant_t((long)1),varName);}CComPtr<IDispatch>pDispTD2;CComPtr<IHTMLElement>pTD2;hr=pTDTags->item(_variant_t((long)2),_variant_t((long)2),&pDispTD2);hr=pDispTD2->QueryInterface(___uuidof(IHTMLElement),(void**)&pTD2);CComPtr<IDispatch>pTD2AllDisp;CComPtr<IHTMLElementCollection>pTD2All;hr=pTD2->get_all(&pTD2AllDisp);hr=pTD2AllDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pTD2All);CComPtr<IDispatch>pIMGDisp;CComPtr<IHTMLElementCollection>pIMGTags;hr=pTD2All->tags(_variant_t(L″img″),&pIMGDisp);hr=pIMGDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pIMGTags);longnIMGTags=0;hr=pIMGTags->get_length(&nIMGTags);if(nIMGTags>0){CComPtr<IDispatch>pDispIMG;CComPtr<IHTMLElement>pIMG;hr=pIMGTags->item(_variant_t((long)0),_variant_t((long)0),&pDispIMG);hr=pDispIMG->QueryInterface(___uuidof(IHTMLElement),(void**)&pIMG);//dotlevelCComVariantvarAlt;hr=pIMG->getAttribute(_bstr_t(L″alt″),0,&varAlt);longnLen=::SysStringLen(varAlt.bstrVal);if(nLen>0){longnEnd=nLen-1;while(nEndPCDownloadCode.txt>0&&iswspace(varAlt.bstrVal[nEnd])){nEnd--;}nDotLevel=_wtol(&((wchar_t*)varAlt.bstrVal)[nEnd]);}else{nDotLevel=0;}}elsenDotLevel=0;CComBSTRbstrDef;bstrDef.Empty();hr=pTD2->get_innerText(&bstrDef);//insertclassintodatabasetry{_CommandPtrpCmd=NULL;hr=pCmd.CreateInstance(___uuidof(Command));hr=pCmd->put_CommandText(_bstr_t(L″spInsertUSClass″));hr=pCmd->put_CommandType(adCmdStoredProc);pReturnParam=pCmd->CreateParameter(_bstr_t(L″RETURN″),adInteger,adParamReturnValue,2,vtMissing);pLevelParam=pCmd->CreateParameter(_bstr_t(L″@level″),adInteger,adParamInput,2,_variant_t((long)(nDotLevel+1)));pCodeParam=pCmd->CreateParameter(_bstr_t(L″@code″),adBSTR,adParamInput,12,varName);pSubclassParam=Cmd->CreateParameter(_bstr_t(L″@subclass″),adBSTR,adParamInput,strsubclass.Length(),_variant_t(bstrSubclass.m_str));pDefnParam=pCmd->CreateParameter(_bstr_t(L″@defn″),adBSTR,adParamInput,bstrDef.Length(),_variant_t(bstrDef.m_str));hr=pCmd->Parameters->Append(pReturnParam);hr=pCmd->Parameters->Append(pLevelParam);hr=pCmd->Parameters->Append(pCodeParam);hr=pCmd->Parameters->Append(pSubclassParam);hr=pCmd->Parameters->Append(pDefnParam);IDispatch*pDispatch=NULL;hr=pConnection->QueryInterface(&pDispatch);hr=PCDownloadCode.txtpCmd->put_ActiveConnection(_variant_t(pDispatch));hr=pCmd->Execute(NULL,NULL,adCmdStoredProc);CComVariantvarReturn;hr=pReturnParam->get_Value(&varReturn);nCodeIdentity[nDotLevel+1]=varReturn.lVal;pDispatch->Release();}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){returnE_FAIL;}if(!SUCCEEDED(hr)){ErrorReport(hr);returnhr;}//theninsertsetintoUSPCHierarchyfor(longk=0;k<=nDotLevel;k++){try{wchar_twsBuffer[128];memset(wsBuffer,′\0′,sizeof(wsBuffer));wsprintf(wsBuffer,L″insertUSPCHierarchy(classid,ancestorid)values(%lu,%lu)″,nCodeIdentity[nDotLevel+1],nCodeIdentity[k]);_CommandPtrpCmd=NULL;hr=pCmd.CreateInstance(_uuidof(Command));hr=pCmd->put_CommandText(_bstr_t(wsBuffer));hr=pCmd->put_CommandType(adCmdText);IDispatch*pDispatch=NULL;hr=pConnection->QueryInterface(&pDispatch);hr=pCmd->put_ActiveConnection(_variant_t(pDispatch));hr=pCmd->Execute(NULL,NULL,adCmdText);pDispatch->Release();PCOownloadCode.txt}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){returnE_FAIL;}if(!SUCCEEDED(hr){)ErrorReport(hr);returnhr;}}}else{returnS_OK;//donewithpage}}elseif(wcsstr((wchar_t*)bstrText.m_str,L″Clickhereforaprintableversion″)?。絅ULL){CComBSTRbstrClassTitle;bstrClassTitle.Empty();hr=pTD->get_innerText(&bstrClassTitle);CComPtr<IDispatch>pDispTD0;CComPtr<IHTMLElement>pTD0;hr=pTDTags->item(_variant_t((long)0),_variant_t((long)0),&pDispTD0);hr=pDispTD0->QueryInterface(_uuidof(IHTMLElement),(void**)&pTD0);CComBSTRbstrClassNumber;bstrClassNumber.Empty();hr=pTD0->get_innerText(&bstrClassNumber);//insertclassintodatabasetry{_CommandPtrpCmd=NULL;hr=pCmd.CreateInstance(___uuidof(Command));hr=pCmd->put_CommandText(_bstr_t(L″spInsertUsClass″));hr=pCmd->put_CommandType(adCmdStoredProc);pReturnParam=pCmd->CreateParameter(_bstr_t(L″RETURN″),adInteger,adParamReturnValue,2,vtMissing);pLevelParam=pCmd->CreateParameter(_bst_t(L"@level"),adInteger,adparamInput,2,_variant_t(nDotLevel));PCDownloadCode.txtpCodeParam=pCmd->CreateParameter(_bstr_t(L″@code″),adBSTR,adParamInput,12,_variant_t(wsClassCode.c_str()));pSubclassParam=Cmd->CreateParameter(_bstr_t(L″@subclass″),adBSTR,adParamInput,strClassNumber.Length(),_variant_t(bstrClassNumber.m_str));pDefnParam=pCmd->CreateParameter(_bstr_t(L″@defn″),adBSTR,adParamInput,bstrClassTitle.Length(),_variant_t(bstrClassTitle.m_str));hr=pCmd->Parameters->Append(pReturnParam);hr=pCmd->Parameters->Append(pLevelParam);hr=pCmd->Parameters->Append(pCodeParam);hr=pCmd->Parameters->Append(pSubclassParam);hr=pCmd->Parameters->Append(pDefnParam);IDispatch*pDispatch=NULL;hr=pConnection->QueryInterface(&pDispatch);hr=pCmd->put_ActiveConnection(_variant_t(pDispatch));hr=pCmd->Execute(NULL,NULL,adCmdStoredProc);CComVariantvarReturn;hr=pReturnParam->get_Value(&varReturn);nCodeIdentity=varReturn.lVal;pDispatch->Release();}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){returnE_FAIL;}if(!SUCCEEDED(hr)){ErrorReport(hr);returnhr;}bFoundClassTitle=true;}}}else{returnS_OK;//donewithpaqe}}}tryPCDownloadCode.txt{hr=pConnection->Close();}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){returnE_FAIL;}if(!SUCCEEDED(hr)){ErrorReport(hr);returnhr;}returnS_OK;STDMETHODIMPCPCDownload::DownloadClassSchedules(IDispatch*pExcel,BSTRstartingURL,BSTRserver,BSTRdatabase){usingnamespaceExcel;CComBSTRbstrServer(server);CComBSTRbstrDatabase(database);//initializethespreadsheetlongnFoundLinks=0;CComPtr<_Application>pApp;HRESULThr=pExcel->QueryInterface(___uuidof(_Application),(void**)&pApp);CComPtr<_Workbook>pWorkbook=pApp->GetActiveWorkbook();CComPtr<Sheets>pSheets=pWorkbook->GetWorksheets();CComPtr<IDispatch>pDispWorksheet;CComPtr<_Worksheet>pWorksheet;hr=pSheets->get_Item(_variant_t((long)1),&pDispWorksheet);hr=pDispWorksheet->QueryInterface(___uuidof(_Worksheet),(void**)&pWorksheet);hr=pWorksheet->Activate();CComPtr<Range>pRange;hr=pWorksheet->get_UsedRange(0,&pRange);hr=pRange->Delete(_variant_t((long)xlShiftUp));CComPtr<Range>pCells;hr=pWorksheet->get_Cells(&pCells);pCells->PutItem(_variant_t((long)1),_variant_t((long)1),_variant_t(″Class″));pCells->PutItem(_variant_t((long)1),_variant_t((long)2),_variant_t(″Defs?″));pCells->PutItem(_variant_t((long)1),_variant_t((long)3),_variant_t(″URL″));RangePtrcolumns=pWorksheet->GetColumns();RangePtrcolumn=columns->GetEntireColumn();column->ColumnWidth=CComVariant((long)10);column=column->Next;column=column->GetEntireColumn();column->ColumnWidth=CComVariant((long)3);column=column->Next;column=column->GetEntireColumn();column->ColumnWidth=CComVariant((long)150);m_nInsertRow=2;PCDownloadCode.txt//nowgetthebrowserif(m_pBrowser==NULL){try{hr=::CoCreateInstance(___uuidof(Browser::InternetExplorer),NULL,CLSCTX_ALL,___uuidof(Browser::IWebBrowser2),(void**)&m_pBrowser);}catch(_com_error&e){ErrorReport(e);returnE_FAIL;}catch(...){wstringwsError(L″Non-COMExceptioncreatingBrowser::InternetExplorer:″);Error(wsError.c_str());returnE_FAIL;}if(!SUCCEEDED(hr)){wstringwsError(L″FailedtocreateBrowser::InternetExplorer:″);Error(wsError.c_str());returnhr;}}hr=m_pBrowser->put_Visible(VARIANT_TRUE);_variant_tvarURL(startingURL);hr=m_pBrowser->Navigate2(&varURL);longnTries=0;while(nTries<500&&m_pBrowser->ReadyState!=READYSTATE_COMPLETE){::Sleep(500);nTries++;}if(nTries==500){Error(″FailedtodownloadstartingURL″);returnE_FAIL;}CComPtr<IDispatch>pDocDisp;CComPtr<IHTMLDocument2>pDoc;hr=m_pBrowser->get_Document(&pDocDisp);hr=pDocDisp->QueryInterface(___uuidof(IHTMLDocument2),(void**)&pDoc);CComPtr<IHTMLElement>pBody;hr=pDoc->get_body(&pBody);CComPtr<IDispatch>pAllDisp;CComPtr<IHTMLElementCollection>pAll;hr=pBody->get_all(&pAllDisp);hrpAllDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pAll);CComPtr<IDispatch>pInputDisp;CComPtr<IHTMLElementCollection>pInputTags;hr=pAll->tags(_variant_t(L″INPUT″),&pInputDisp);PCDownloadCode.txthr=pInputDisp->QueryInterface(___uuidof(IHTMLElementCollection),(void**)&pInputTags);longnInputTags=0;hr=pInputTags->get_length(&nInputTags);for(longn=0;n<nInputTags;n++){CComPtr<IDispatch>pDispElem;CComPtr<IHTMLElement>pElem;hr=pInputTags->item(_variant_t(n),_variant_t(n),&pDispElem);hr=pDispElem->QueryInterface(___uuidof(IHTMLElement),(void**)&pElem);CComVariantvarType;hr=pElem->getAttribute(_bstr_t(L″type″),0,&varType);if(varType.vt==VT_BSTR&&wcscmp((wchar_t*)varType.bstrVal,L″button″)==0){CComVariantvarClass;hr=pElem->getAttribute(_bstr_t(L″value″),0,&varClass);CComBSTRbstrClass;bstrClass.Empty();bstrClass.Append(L″\′″);bstrClass.AppendBSTR(varClass.bstrVal);pCells->PutItem(_variant_t(m_nInsertRow),_variant_t((long)1),_variant_t(bstrClass.m_str));pCells->PutItem(_variant_t(m_nInsertRow),_variant_t((long)2),_variant_t((long)O));CComBSTRbstrLink;bstrLink.Empty();bstrLink.Append(L″http://www.uspto.gov/go/classification/uspc″);bstrLink.AppendBSTR(varClass.bstrVal);bstrLink.Append(L″/sched″);bstrLink.AppendBSTR(varClass.bstrVal);bstrLink.Append(L″.htm″);bstrLink.ToLower();pCells->PutItem(_variant_t(m_nInsertRow),_variant_t((long)3),_variant_t(bstrLink.m_str));m_nInsertRow++;nFoundLinks++;}}for(longm=0;m<nFoundLinks;m++){CComVariantvDispURL=pCells->GetItem(_variant_t((long)(m+2)),_variant_t((long)3));ComVariantvDispClass=pCells->GetItem(_variant_t((long)(m+2)),_variant_t((long)1));CComPtr<Range>pRngClass;hr=vDispClass.pdispVal->QueryInterface(___uuidof(Range),(void**)&pRngClass);CComBSTRbstrClass;bstrClass.Empty();_variant_tvarClass(pRngClass->GetText());CComPtr<Range>pRngURL;hr=vDispURL.pdispVal->QueryInterface(___uuidof(Range),(void**)&pRngURL);CComBSTRbstrURL;bstrURL.Empty();_variant_tvarURL(pRngURL->GetText());hr=DownloadClassSchedule(pExcel,varClass.bstrVal,varURL.bstrVal,bstrServer.m_str,bstrDatabase.m_str);hr=pWorksheet->Activate();PCDownloadCode.t×t}returnS_OK}voidCPCDownload::ErrorReport(_com_error&e){wchar_twsMessageBuffer[1024];memset(wsMessageBuffer,′\0′,1024*sizeof(wchar_t));wsprintf(wsMessageBuffer,L″Code=%081×\n\rMessage=%s\n\rSource=%s\n\rDescription=%s″,e.Error(),e.ErrorMessage(),(wchar_t*)e.Source(),(wchar_t*)e.Description())Error(wsMessageBuffer);voidCPCDownload::ErrorReport(HRESULThr){wchar_twsMessageBuffer[256]memset(wsMessageBuffer,′\0′,256*sizeof(wchar_t));wstringwsErrorMessage;switch(hr){CaseS_FALSEwsErrorMessage=wstring(L″<p>Failed.</p>″);break;caseREGDB_E_CLASSNOTREGwsErrorMessage=wstring(L″<p>Classnotregistered.</p>″);break;caseCLASS_E_NOAGGREGATIONwsErrorMessage=wstring(L″<p>classcannotbecreatedaspartofanaggregation.(/p>″);break;caseCO_E_CLASSSTRINGwsErrorMessage=wstring(L″<p>InValidclassstring</p>″);break;caseDISP_E_BADVARTYPEwsErrorMessage=wstring(L″<p>BadVarianttype.</p>″);break;caseE_FAILwsErrorMessage=wstring(L″Unspecifiederror″);break;caseE_ACCESSDENIEDwsErrorMessage=wstring(L″<p>Fileaccessdenied.</p>″);break;case0x80040E14LwsErrorMessage=wstring(L″<p>Errorsindatabasecommand.</p>″);break;defaultwsprintf(wsMessageBuffer,L″Unrecognizedresultcode.0x%lx″,hr);wsErrorMessage=wstring(wsMessageBuffer);break;}Error(wsErrorMessage.c_str());}ShowAbstract.aspx.cs.txtusingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.xml;namespacecxp{publicclassShowAbstract:system.Web.UI.Page{privatevoidPage_Load(objectsender,System.EventArgse){stringstrDoc=Request.QueryString.GetValues(″doc″);stringstrAbstractPath=MapPath(″DocStore/″+strDoc.Substring(0,4)″/″+strDoc.Substring(0,7)+″0000/″+strDoc.Substring(0,9)+″00/″+strDoc+″.xml);//loadtargetXMLfileSystem.Xml.XmlDocumentm_spDOM=newXmlDocument();m_spDOM.Load(strAbstractPath);//setthenamespacemanagerXmlNamespaceManagernsmanager=newXmlNamespaceManager(m_spDOM.NameTable);nsmanager.AddNamespace(″cxp″,″http://cxp.paterra.com″);//settherootelementXmlNoderoot=m_spDOM.DocumentElement;//initializedatabaseaccessSqlConnectionconPubs;conPubs=newSqlConnection(Context.Cache[″CXP_ConnectionString″].ToString());conPubs.Open();//getmainclassificationnodeXmlNodenodeClasses=root.SelectSingleNode(″/cxp:pdoc/cxp:sdbi/cxp:tech/cxp:uscs″,nsmanager);XmlNodenodeAppendTarget=nodeClasses;XmlNodenodeMainClass=nodeClasses.SelectSingleNode(″cxp:usco″,nsmanager);if(nodeMainClass?。絥ull){XmlAttributeCollectionattributes=nodeMainClass.Attributes;XmlNodenodePCCode=attributes.GetNamedItem(″pccode″);stringstrcode=nodePCCode.Value;//querydatabaseSqlCommandcmdSelect;SqlDataReaderdtrResults;stringstrSQL=″execspGetSubclassHierarchy@subclass=′″+strcode+″′″;cmdSelect=newSqlCommand(strSQL,conPubs);ShowAbstract.aspx.cs.txtdtrResults=cmdSelect.ExecuteReader();//adducstreetodocumentwhile(dtrResults.Read()){XmlElementelement=xmlAbstract.CreateElement(″″,″usctree″,″http://cxp.paterra.com″);element.SetAttribute(″classid″,″″,dtrResults[″classid″].ToString());element.SetAttribute(″type″,″″,″primary″);element.SetAttribute(″pccode″,″″,dtrResults[″pccode″].ToString());element.SetAttribute(″scode″,″″,dtrResults[″scode″].ToString());element.SetAttribute(″title″,″″,dtrResults[″defn″].ToString());XmlNodeappendedElement=nodeAppendTarget.Appendchild(element);nodeAppendTarget=appendedElement;}dtrResults.Close();}//getsecondaryclassesXmlNodeListnodeSecondaryClasses=nodeClasses.SelectNodes(″cxp:uscx″,nsmanager);foreach(XmlNodenodeClassinnodeSecondaryClasses){nodeAppendTarget=nodeClasses;XmlAttributeCollectionattributes=nodeClass.Attributes;XmlNodenodePCCode=attributes.GetNamedItem(″pccode″);stringstrcode=nodePCCode.Value;//querydatabaseSqlCommandcmdSelect;SqlDataReaderdtrResults;stringstrSQL=″execspGetSubclassHierarchy@subclass=′″+strcode+″″;cmdSelect=newSqlCommand(strSQL,conPubs);dtrResults=cmdSelect.ExecuteReader();//adducstreetodocumentwhile(dtrResults.Read()){//checkifnodeAppendTargetalreadycontainsusctreenodewithsameclassidstringstrClassid=dtrResults[″classid″].ToString();stringstrQuery=″cxp:usctree[number(@classid)=number(″+strClassid+″)]″;XmlNodenodeUCSTree=nodeAppendTarget.SelectSingleNode(strQuery,nsmanager);if(nodeUCSTree==null){XmlElementelement=xmlAbstract.CreateElement(″″,″usctree″,″http://cxp.paterra.com″);element.SetAttribute(″classid″,″″,dtrResults[″classid″].ToString());element.SetAttribute(″type″,″″,ShowAbstract.aspx.cs.txt″secondary″);element.SetAttribute(″pccode″,″″,dtrResults[″pccode″].ToString());element.SetAttribute(″scode″,″″,dtrResults[″scode″].ToString());element.SetAttribute(″title″,″″,dtrResults[″defn″].ToString());strQuery=″cxp:usctree[number(@classid)>number(″+strClassid+″)]″;XmlNodeListnodes=nodeAppendTarget.SelectNodes(strQuery,nsmanager);if(nodes==null){XmlNodeappendedElement=hodeAppendTarget.AppendChild(element);nodeAppendTarget=appendedElement;}else{XmlNodenode=nodes.Item(0);XmlNodeinsertedElement=nodeAppendTarget.InsertBefore(element,node);nodeAppendTarget=insertedElement;}}else{nodeAppendTarget=nodeUCSTree;}}dtrResults.Close();}conPubs.Close();m_spDOM.Save(Response.OutputStream);}#regionWeboverrideprotectedvoidOnInit(EventArgse){InitializeComponent();base.OnInit(e);}privatevoidInitializeComponent(){this.Load+=newSystem.EventHandler(this.Page_Load);}#endregion}}ShowAbstract.aspx.resx.txt<?xmlversion=″1.0″encoding=″utf-8″?><root><xsd:schemaid=″root″xmlns=″″xmlns:xsd=″http://www.w3.org/2001/XMLSchema″xmlns:msdata=″urn:schemas-microsoft-com:xml-msdata″><xsd:elementname=″root″msdata:IsDataSet=″true″><xsd:complexType><xsd:choicemaxOccurs=″unbounded″><xsd:elementname=″data″><xsd:complexType><xsd:sequence><xsd:elementname=″value″type=″xsd:string″minOccurs=″0″msdata:ordinal=″1″/><xsd:elementname=″comment″type=″xsd:string″minoccurs=″0″msdata:ordinal=″2″/></xsd;sequence><xsd:attributename=″name″type=″xsd:string″/><xsd:attributename=″type″type=″xsd:string″/><xsd:attributename=″mimetype″type=″xsd:string″/></xsd:complexType></xsd:element><xsd:elementname=″resheader″><xsd:complexType><xsd:sequence><xsd:elementname=″value″type=″xsd:string″minoccurs=″0″msdata;ordinal=″1″/></xsd:sequence><xsd:attributename=″name″type=″xsd:string″use=″required″/></xsd:complexType></xsd:element></xsd:choice></xsd:complexType></xsd:element></xsd:schema><resheadername=″ResMimeType″><value>text/microsoft-resx</value></resheader><resheadername=″Version″><value>1.0.0.0</value></resheader><resheadername=″Reader″><value>System.Resources.ResXResourceReader,System.Windows.Forms,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089</value></resheader><resheadername=″Writer″><value>System.Resources.ResXResourceWriter,System.Windows.Forms,Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089</value></resheader></root>ShowAbstract.aspx.txt<%@PageLanguage=″c#″Codebehind=″ShowAbstract..aspx.cs″AutoEventWireup=″false″Inherits=″cxp.ShowAbstract″%>ShowAbstract.aspx.txt<%@PageLanguage=″c#″Codebehind=″ShowAbstract.aspx.cs″AutoEventWireup=″false″Inherits=″cxp.ShowAbstract″%>StepP102.txt<?xmlversion=″1.0″encoding=″UTF-8″standalone=″yes″?><xsl:stylesheetversion=″1.0″xmlns:xsl=″http://www.w3.org/1999/XSL/Transform″xmlns=″http://cxp.paterra.com″xmlns:pi=″http://www.paterra.com/pi″xmlns:msxml=″urn:schemas-microsoft-com:xslt″><xsl:outputmethod=″xml″encoding=″UTF-8″/><xsl:templatematch=″/″><xsl:processing-instructionname=″xml-stylesheet″><xsl:text>type=″text/xsl″href=″/cxptohtml.xsl″</xsl:text></xsl:processing-instruction><xsl:apply-templates/></xsl:template><xsl:templatematch=″patent-application-publication″><pdocxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></pdoc></xsl:template><xsl:templatematch=″subdoc-bibliographic-information″><sdbixmlns=″http://cxp.paterra.com″><idenxmlns=http://cxp.paterra.com″><xsl:variablename=″pubdate><xsl:value-ofselect=″document-id/document-date″/></xsl:variable><authxmlns=″http://cxp.paterra.com″>US</auth><kindxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″document-id/kind-code″/></kind><nmbrxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″document-id/doc-number″/></nmbr><datexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″substring($pubdate,1,4)″/>-<xsl:value-ofselect=″substring($pubdate,5,2)″/>-<xsl:value-ofselect=″substring($pubdate,7,2)″/></date><pi:identityxmlns:pi=″http://www.paterra.com/pi″><xsl:attributename=″kind″><xsl:value-ofselect=″document-id/kind-code″/></xsl:attribute><xsl:attributename=″authority″>US</xsl:attribute><xsl:attributename=″pubdate″><xsl:value-ofselect=″substring($pubdate,1,4)″/>-<xsl:value-ofselect=″substring($pubdate,5,2)″/>-<xsl:value-ofselect=″substring($pubdate,7,2)″/></xsl:attribute><xsl:attributename=″number″><xsl:value-ofselect=″document-id/doc-number″/></xsl:attribute></pi:identity></iden><filexmlns=″http://cxp.paterra.com″><xsl:variablename=″appdate″><xsl:value-ofselect=″domestic-filing-data/filing-date″/></xsl:variable>″<authxmlns=″http://cxp.paterra.com″>US</auth><kindxmlns=″http://cxp.paterra.com″>A</kind>StepP102.txt<nmbrxmlns=″http://cxp.paterra.com″><xsl:attributename=″series″><xsl:value-ofselect=″domestic-filing-data/application-number-series-code″/></xsl:attribute><xsl:value-ofselect=″domestic-filing-data/application-number/doc-number″/></nmbr><datexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″substring($appdate,1,4)″/>-<xsl:value-ofselect=″substring($appdate,5,2)″/>-<xsl:value-ofselect=″substring($appdate,7,2)″/></date><xsl:iftest=″continuity-data″><contxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″continuity-data″/></cont></xsl:if><pi:filingxmlns:pi=″http://″www.paterra.com/pi″><xsl:attributename=″kind″>A</xsl:attribute><xsl:attributename=″authority″>US</xsl:attribute><xsl:attributename=″appdate″><xsl:value-ofselect=″substring($appdate,1,4)″/>-<xsl:value-ofselect=″substring($appdate,5,2)″/>-<xsl:value-ofselect=″substring($appdate,7,2)″/></xsl:attribute><xsl:attributename=″series″><xsl:value-ofselect=″domestic-filing-data/application-number-series-code″/></xsl:attribute><xsl:attributename=″number″><xsl:value-ofselect=″domestic-filing-data/application-number/doc-number″/></xsl:attribute></pi:filing></file><techxmlns=″http://cxp.paterra.com″><titlxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″technical-information/title-of-invention″/></titl><xsl:variablename=″edition″><xsl:value-ofselect=″technical-information/classification-ipc/classification-ipc-edition″/></xsl:variable><ipcsxmlns=″http://cxp.paterra.com″><xsl:attributename=″ed″><xsl:value-ofselect=″$edition″/></xsl:attribute><xsl:apply-templatesselect=″technical-information/classification-ipc″/></ipcs><uscsxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″technical-information/classification-us″/></uscs></tech><xsl:iftest=″priority-claims″><prysxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″priority-claims/priority-claim″/></prys></xsl:if><xsl:iftest=″foreign-priority-data″><prysxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″foreign-priority-data″/></prys>StepP102.txt</xsl:if><ptysxmlns=″http://cxp.paterra.com″><xsl:iftest=″assignee″><appsxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″assignee″/></apps></xsl:if><invsxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″inventors/first-named-inventor″/><xsl:apply-templatesselect=″inventors/inventor″/></invs><agnsxmlns=″http://cxp.paterra.com″><xsl:apply-templatesselect=″correspondence-address″/></agns></ptys></sdbi></xsl:template><xsl:templatematch=″subdoc-abstract″><sdabxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></sdab></xsl:template><xsl:templatematch=″classification-ipc″><xsl:paramname=″ipc-edition″select=″7″/><xsl:apply-templatesselect=″classification-ipc-primary″><xsl:with-paramname=″ipc-edition″select=″$ipc-edition″/></xsl:apply-templates><xsl:apply-templatesselect=″classification-ipc-secondary″><xsl:with-paramname=″ipc-edition″select=″$ipc-edition″/></xsl:apply-templates></xsl:template><xsl:templatematch=″classification-ipc-primary″><xsl:paramname=″ipc-edition″/><ipcdxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″ipc″/></ipcd></xsl:template><xsl:templatematch=″classification-ipc-secondary″><xsl:paramname=″ipc-edition″/><ipcdxmlns=″http://cxp.paterracom″><xsl:value-ofselect=″ipc″/></ipcd></xsl:template><xsl:templatematch=″classification-us-primary″><uscoxmlns=″http://cxp.paterra.com″><xsl:attributename=″pccode″>C<xsl:value-ofselect=″uspc/class″/>S<xsl:value-ofselect=″uspc/subclass″/></xsl:attribute></usco></xsl:template><xsl:templatematch=″classification-us-secondary″><uscxxmlns=″http://cxp.pat~rra.com″><xsl:attributename=″pccode>C<xsl:value-ofselect=″uspc/class″/>S<xsl:value-ofselect=″uspc/subclass″/></xsl:attribute></uscx></xsl:template>StepP102.txt<xsl:templatematch=″main-classification″><uscoxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″.″/></usco></xsl:template><xsl:templatematch=″further-classification″><uscxxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″.″/></uscx></xsl:template><xsl:templatematch=″us-cited-patents″><xsl:apply-templatesselect=″patcit″/></xsl:template><xsl:templatematch=″patcit″><pcitxmlns=″http://c″xp.paterra.com″><xsl:iftest=″following-sibl″ing::categ″ory[1]″><xsl:attribute″name=category″><xsl:value-ofselect=″following-sibling::category[1]″/></xsl:attribute></xsl:if><xsl:apply-templatesselect=″document-id″/><xsl:iftest=following-sibling::us-classification[1]″><uscoxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″following-sibling::us-classification[1]″/></usco></xsl:if></pcit></xsl:template><xsl:templatematch=″document-id″><xsl:iftest=″country″><authxmlns=″http://cxp.paterra.com″>″<xsl:value-ofselect=″country″/></auth></xsl:if><xsl:iftest=″country″-code″><authxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″country-code″/></auth></xsl:if><xsl:iftest=″kind″><kindxmlns=″http://cxp.pater″ra.com″><xsl:value-ofselect=″kind″/></kind></xsl:if><xsl:iftest=″kind-code″><kindxmlns=″http://cxp.pater″ra.com″><xsl:value-ofselect=″kind-code″/></kind></xsl:if><nmbrxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″doc-number″/></nmbr><xsl:iftest=″name″><namexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″name″/></name></xsl:if><xsl:iftest=″date″><xsl:variablename=″docdate″><xsl:value-ofselect=″date″/></xsl:variable><datexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″substring($docdate,1,4)″/>-<xsl:value-ofselect=″substring($docdate,5,2)″/>-<xsl:value-ofselect=″substring($docdate,7,2)″/>StepP102.txt</date></xsl:if><xsl:iftest=″document-date″><xsl:variablename=″docdate″><xsl:value-ofselect=″document-date″/></xsl:variable><datexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″substring($docdate,1,4)″/>-<xsl:value-ofselect=″substring($docdate,5,2)″/>-<xsl:value-ofselect=″substring($docdate,7,2)″/></date></xsl:if></xsl:template><xsl:templatematch=″priority-claim″><pryaxmlns=″http://cxp.paterra.com″><xsl:attributename=″SeqNo″><xsl:value-ofselect=″@sequence″/></xsl:attribute><xsl:attributename=″Kind″><xsl:value-ofselect=″@kind″/></xsl:attribute><prnmxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″doc-number″/></prnm><prdtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″date″/></prdt><prcoxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″country″/></prco></prya></xsl:template><xsl:templatematch=″foreign-priority-data″><pryaxmlns=″http://cxp.paterra.com″><prnmxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″priority-application-number/doc-number″/></prnm><prdtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″filing-date″/></prdt><prcoxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″country-code″/></prco></prya></xsl:template><xsl:templatematch=″parent-patent″><ppatxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></ppat></xsl:template><xsl:templatematch=″parent-status″><sttsxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></stts></xsl:template><xsl:templatematch=″parent″><prntxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></prnt></xsl:template>StepP102.txt<xsl:templatematch=″child″><chldxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></chld></xsl:template><xsl:templatematch=″parent-child″><pchdxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></pchd></xsl:template><xsl:templatematch=″continuation-of″><cntwxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></cntw></xsl:template><xsl:templatematch=″continuation-in-part-of″><cntpxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></cntp></xsl:template><xsl:templatematch=″continuations″><cntsxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></cnts></xsl:template><xsl:templatematch=″a-371-of-international″><a371xmlns=″http://cxp.paterra.com″><xsl:apply-templates/></a371></xsl:template><xsl:templatematch=″non-provisional-of-provisional″><provxmlns=″http://cxp.paterra.com″><authxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″document-id/country-code″/></auth><nmbrxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″document-id/doc-number″/></nmbr><datexmlns=″http://cxp.paterra.com″><xsl:variablename=″provdate″><xsl:value-ofselect=″document-id/document-date″/></xsl:variable><xsl:value-ofselect=″substring($provdate,1,4)″/>-<xsl:value-ofselect=″substring($provdate,5,2)″/>-<xsl:value-ofselect=″substring($provdate,7,2)″/></date></prov></xsl:template><xsl:templatematch=″applicant″><invrxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></invr></xsl:template><xsl:templatematch=″assignee″>StepP102.txt<applxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></appl></xsl:template><xsl:templatematch=″organization-name″><namexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></name></xsl:template><xsl:templatematch=″assignee-type″><typexmlns=http://cxp.paterra.com″><xsl:apply-templates/></type></xsl:template><xsl:templatematch=″agent″><agntxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></agnt></xsl:template><xsl:templatematch=″correspondence-address″><agntxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></agnt></xsl:template><xsl:templatematch=″last-name″><lnmexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></lnme></xsl:template><xsl:templatematch=″first-name″><fnmexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></fnme></xsl:template><xsl:templatematch=″given-name″><fnmexmlns=http://cxp.paterra.com″><xsl:apply-templates/></fnme></xsl:template><xsl:templatematch=″middle-name″><mnmexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></mnme></xsl:template><xsl:templatematch=″family-name″><lnmexmlns=″http://cxp.paterra.com″<xsl:apply-templates/></lnme></xsl:template><xsl:templatematch=″name″><namexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></name>StepP102.txt</xsl:template><xsl:templatematch=″first-named-inventor″><invrxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></invr></xsl:template><xsl:templatematch=″inventor″><invrxmlns=″http://cxp.paterra.com″><xsl:apply-templates/></invr></xsl:template><xsl:templatematch=″authority-applicant″/><xsl:templatematch=″addressbook″><namexmlns=″http://cxp.paterra.com″><xsl:iftest=″orgname″><xsl:value-ofselect=″orgname″/></xsl:if><xsl:iftest=″last-name″><lnmexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″last-name″/></lnme></xsl:if><xsl:iftest=″first-name″><fnmexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″first-name″/></fnme></xsl:if></name><xsl:iftest=″role″><rolexmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″role″/></role></xsl:if><addrxmlns=″http://cxp.paterra.com″><xsl:iftest=″address/street″><strtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″address/street″/></strt></xsl:if><xsl:iftest=″address/city″><cityxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″address/city″/></city></xsl:if><xsl:iftest=″address/state″><statxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″address/state″/></stat></xsl:if><xsl:iftest=″address/postalcode″><postxmlns=″http://cxp.pater~a.com″><xsl:value-ofselect=address/postalcode″/></post></xsl:if><xsl:iftest=″address/country″><natnxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″address/country″/></natn></xsl:if>StepP102.txt</addr><xsl:copy-ofselect=″.″/></xsl:template><xsl:templatematch=″nationality″/><xsl:templatematch=″residence″><xsl:apply-templates/></xsl:template><xsl:templatematch=″residence-non-us″><addrxmlns=″http://cxp.paterra.com″><xsl:iftest=″street″><strtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″street″/></strt></xsl:if><xsl:iftest=″city″><cityxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″city″/></city></xsl:if><xsl:iftest=″state″><statxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″state″/></stat></xsl:if><xsl:iftest=″postalcode″><postxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″postalcode″/></post></xsl:if><xsl:iftest=″country-code″><natnxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″country-code″/></natn></xsl:if></addr></xsl:template><xsl:templatematch=″name-1″><namexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></name></xsl:template><xsl:templatematch=″name-2″><namexmlns=″http://cxp.paterra.com″><xsl:apply-templates/></name></xsl:template><xsl:templatematch=″residence-us″><addrxmlns=″http://cxp.paterra.com″><xsl:iftest=″street″><strtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″street″/></strt></xsl:if><xsl:iftest=″city″><cityxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″city″/></city></xsl:if>StepP102.txt<xsl:iftest=″state″><statxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″state″/></stat></xsl:if><xsl:iftest=″postalcode″><postxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″postalcode″/></post></xsl:if><xsl:iftest=″country-code″><natnxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″country-code″/></natn></xsl:if></addr></xsl:template><xsl:templatematch=″address″><addrxmlns=″http://cxp.paterra.com″><xsl:iftest=″address-1″><strtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″address-1″/></strt></xsl:if><xsl:iftest=″address-2″><strtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″address-2″/></strt></xsl:if><xsl:iftest=″street″><strtxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″street″/></strt></xsl:if><xsl:iftest=″city″><cityxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″city″/></city></xsl:if><xsl:iftest=″state″><statxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″state″/></stat></xsl:if><xsl:iftest=″postalcode″><postxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″postalcode″/></post></xsl:if><xsl:iftest=″country/country-code″><natnxmlns=″http://cxp.paterra.com″><xsl:value-ofselect=″country/country-code″/></natn></xsl:if></addr></xsl:template><xsl:templatematch=″paragraph″><pnumxmlns=″http://cxp.paterra.com″><xsl:attributename=″id″><xsl:value-ofselect=″@id″/></xsl:attribute><xsl:attributename=″lvl″><xsl:value-ofselect=″@lvl″/></xsl:attribute><xsl:value-ofselect=″.″/>StepP102.txt</pnum></xsl:template></xsl:stylesheet>StepP103.txt#pragmawarning(disable:4146)#undefEOF#import″C:\ProgramFiles\CommonFiles\System\ADO\msado15.dll″rename_namespace(″ado20″)#pragmawarning(default:4146)HRESULTCUSPatDatXMLConverter::InsertClassHierarchy(){usingnamespaceado20;ATLTRACE2(atlTraceCOM,0,_T(″CUSPatDatXMLConverter::InsertclassHierarchy\n″));HRESULThr=S_OK;//openthedatabase//useADO//createtheADOconnection_variant_tvtEmpty(DISP_E_PARAMNOTFOUND,VT_ERROR);_variant_tvtra(DISP_E_PARAMNOTFOUND,VT_ERROR);_ConnectionPtrpConnection=NULL;_ParameterPtrpInputSubclass=NULL;_ParameterPtrpReturnParam=NULL;_RecordsetPtrpRst=NULL;hr=pConnection.CreateInstance(___uuidof(Connection));pConnection->CursorLocation=adUseClient;hr=pRst.CreateInstance(___uuidof(Recordset));CComBSTRbstrConnectionString;bstrConnectionString.Empty();bstrConnectionString.Append(L″provider=SQLOLEDB.1;dataprovider=SQLOLEDB;datasource=MUSASHI;initialcatalog=classplus;″);hr=pConnection->open(bstrConnectionString.m_str,_bstr_t(L″cxpuser″),_bstr_t(L″Bunrui″),adConnectUnspecified);//substituteclasstitlesintorecordhr=m_spDOM->setProperty(_bstr_t(L″SelectionLanguage″),_variant_t(L″XPath″));hr=m_spDOM->setProperty(_bstr_t(L″SelectionNamespaces″),_variant_t(L″xmlns:cxp=\′http://cxp.paterra.com\″));CComPtr<IXMLDOMNode>pclasses;hr=m_spDOM->selectSingleNode(_bstr_t(L″/cxp:pdoc/cxp:sdbi/cxp:tech/cxp:uscs″)&pclasses);CComPtr<IXMLDOMNode>pmainclass;hr=m_spDOM->selectSingleNode(_bstr_t(L″/cxp:pdoc/cxp:sdbi/cxp:tech/cxp:uscs/cxp:usco″)&pmainclass);if(pmainclass?。絅ULL){CComPtr<IXMLDOMNamedNodeMap>pAttributes;hr=pmainclass->get_attributes(&pAttributes);CComPtr<IXMLDOMNode>pnodePCode;if(pAttributes?。絅ULL)hr=pAttributes->getNamedItem(L″pccode″,&pnodePCode);CComVariantvarValue;if(pnodePCode?。絅ULL)hr=pnodePCode->get_nodevalue(&varValue);if(varValue.vt!=VT_EMPTY){_CommandPtrpCmd=NULL;hr=pCmd.CreateInstance(___uuidof(Command));hr=pCmd->put_CommandText(StepP103.txt_bstr_t(L″spGetSubclassHierarchy″));hr=pCmd->put_CommandType(adCmdStoredProc);pReturnParam=pCmd->CreateParameter(_bstr_t(L″RETURN″),adInteger,adParamReturnValue,2,vtMissing);pInputSubclass=pCmd->CreateParameter(_bstr_t(L″@subclass″),adBSTR,adParamInput,12,_variant_t(varValue.bstrVal));hr=pCmd->Parameters->Append(pReturnParam);hr=pCmd->Parameters->Append(pInputSubclass);IDispatch*pDispatch=NULL;hr=pConnection->QueryInterface(&pDispatch);hr=pCmd->put_ActiveConnection(_variant_t(pDispatch));pRst=pCmd->Execute(NULL,NULL,adCmdStorredProc);CComVariantvarReturn;hr=pReturnParam->get_Value(&varReturn);//inserthierarchytreeCComPtr<IXMLDOMNode>pClassAppendNode;hr=pclasses.CopyTo(&pClassAppendNode);while(SUCCEEDED(hr)&&!pRst->EOF){_bstr_tbstrpccode=pRst->Fields->Item[″pccode″]->Value;_bstr_tbstrscode=pRst->Fields->Item[″scode″]->Value;_bstr_tbstrdefn=pRst->Fields->Item[″defn″]->Value;_variant_tvIndex((short)0);FieldPtrpfld=pRst->Fields->GetItem(&vIndex);_variant_tvarFldval=pfld->GetValue();CComPtr<IXMLDOMNode>pClassNode;hr=m_spDOM->createNode(_variant_t((long)NODE_ELEMENT),_bstr_t(L″usctree″),_bstr_t(″http://cxp.paterra.com″),&pClassNode);CComPtr<IXMLDOMNamedNodeMap>pClassNodeAttributes;hr=pClassNode->get_attributes(&pClassNodeAttributes);CComPtr<IXMLDOMNode>pnodeClassID;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″classid″),_bstr_t(),&pnodeClassID);hr=pnodeClassID->put_nodeValue(varFldVal);CComPtr<IXMLDOMNode>pInsertedAttClassID;hr=pClassNodeAttributes->setNamedItem(pnodeClassID,&pInsertedAttClassID);CComPtr<IXMLDOMNode>pnodeType;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″type″),_bstr_t(),&pnodeType);hr=pnodeType->put_nodeValue(_variant_t(L″primary″));CComPtr<IXMLDOMNode>pInsertedAttType;hr=pClassNodeAttributes->setNamedItem(pnodeType,&pInsertedAttType);StepP103.txtCComPtr<IXMLDOMNode>pnodePCCode;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bst_t(L″pccode″),_bstr_t(″″),&pnodePCCode);hr=pnodePCCode->put_nodeValue(_variant_t(bstrpccode));CComPtr<IXMLDOMNode>pInsertedAttPCCode;hr=pClassNodeAttributes->setNamedItem(pnodePCCode,&pInsertedAttPCCode);CComPtr<IXMLDOMNode>pnodeSCode;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″scode″),_bstr_t(″″),&pnodeSCode);hr=pnodeSCode->put_nodeValue(_variant_t(bstrscode));CComPtr<IXMLDOMNode>pInsertedAttSCode;hr=pClassNodeAttributes->setNamedItem(pnodeSCode,&pInsertedAttSCode);CComPtr<IXMLDOMNode>pnodeTitle;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″title″),_bstr_t(″″),&pnodeTitle);hr=pnodeTitle->put_nodeValue(_variant_t(bstrdefn));CComPtr<IXMLDOMNode>pInsertedTitle;hr=pClassNodeAttributes->setNamedItem(pnodeTitle,&pInsertedTitle);CComPtr<IXMLDOMNode>pAppendedClassNode;hr=pClassAppendNode->appendChild(pClassNode,&pAppendedClassNode);//makenewnodetheappendtargetfornextinhierarchypclassAppendNode.Release();hr=pAppendedClassNode.CopyTo(&pClassAppendNode);hr=pRst->MoveNext();}pDispatch->Release();}}if(pRst)if(pRst->State==adStateopen)pRst->Close();//nowgothroughthesecondaryclassesCComPtr<IXMLDOMNodeList>psecondaryclasses;hr=m_spDOM->selectNodes(_bstr_t(L″/cxp:pdoc/cxp:sdbi/cxp:tech/cxp:uscs/cxp:uscx″),&psecondaryclasses);longnSClasses=0;hr=psecondaryclasses->get_length(&nSClasses);for(longn=0;n<nSClasses;n++){CComPtr<IXMLDOMNode>pclass;hr=psecondaryclasses->get_item(n,&pclass);if(pclass?。絅ULL)StepP103.txt{CComPtr<IXMLDOMNamedNodeMap>pAttributes;hr=pclass->get_attributes(&pAttributes);CComPtr<IXMLDOMNode>pnodePCode;if(pAttributes!=NULL)hr=pAttributes->getNamedItem(L″pccode″,&pnodePCode);CComVariantvarValue;if(pnodePCode?。絅ULL)hr=pnodePCode->get_nodeValue(&varValue);if(varValue.vt?。絍T_EMPTY){_CommandPtrpCmd=NULL;hr=pCmd.CreateInstance(___uuidof(Command));hr=pCmd->put_CommandText(_bstr_t(L″spGetSubclassHierarchy″));hr=pCmd->put_CommandType(adCmdStoredProc);pReturnParam=pCmd->CreateParameter(_bstr_t(L″RETURN″),adInteger,adParamReturnValue,2,vtMissing);pInputSubclass=pCmd->CreateParameter(_bstr_t(L″@subclass″),adBSTR,adParamInput,12,_variant_t(varValue.bstrVal));hr=pCmd->Parameters->Append(pReturnParam);hr=pCmd->Parameters->Append(pInputSubclass);IDispatch*pDispatch=NULL;hr=pConnection->QueryInterface(&pDispatch);hr=pCmd->put_ActiveConnection(_variant_t(pDispatch));pRst=pCmd->Execute(NULL,NULL,adCmdStoredProc);CComVariantvarReturn;hr=pReturnParam->get_Value(&varReturn);//inserthierarchytreeCComPtr<IXMLDOMNode>pClassAppendNode;hr=pclasses.CopyTo(&pClassAppendNode);while(SUCCEEDED(hr)&&!pRst->EOF){_bstr_tbstrpccode=pRst->Fields->Item[″pccode″]->Value;_bstr_tbstrscode=pRst->Fields->Item[″scode″]->Value;_bstr_tbstrdefn=pRst->Fields->Item[″defn″]->Value;_variant_tvIndex((short)0);FieldPtrpfld=pRst->Fields->GetItem(&vIndex);_variant_tvarFldVal=pfld->GetValue();//ifthisclassnodehasalreadybeenappended,don′tappendCComPtr<IXMLDOMNodeList>pCurrentNodes;_bstr_tStepP103.txtbstrSearchString(L″cxp:usctree″);hr=pClassAppendNode->selectNodes(bstrSearchString,&pCurrentNodes);longnCurrentNodes=0;hr=pCurrentNodes->get_length(&nCurrentNodes);if(nCurrentNodes==0){CComPtr<IXMLDOMNode>pClassNode;hr=m_spDOM->createNode(_variant_t((long)NODE_ELEMENT),_bstr_t(L″usctree″),_bstr_t(″http://cxp.paterra.com″),&pClassNode);CComPtr<IXMLDOMNamedNodeMap>pClassNodeAttributes;hr=pClassNode->get_attributes(&pClassNodeAttributes);CComPtr<IXMLDOMNode>pnodeClassID;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″classid″),_bstr_t(″″),&pnodeClassID);hr=pnodeClassID->put_nodeValue(varFldVal);CComPtr<IXMLDOMNode>pInsertedAttClassID;hr=pClassNodeAttributes->setNamedItem(pnodeClassID,&pInsertedAttClassID);CComPtr<IXMLDOMNode>pnodeType;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″type″),_bstr_t(″″),&pnodeType);hr=pnodeType->put_nodeValue(_variant_t(L″secondary″));CComPtr<IXMLDOMNode>pInsertedAttType;hr=pClassNodeAttributes->setNamedItem(pnodeType,&pInsertedAttType);CComPtr<IXMLDOMNode>pnodePCCode;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″pccode″),_bstr_t(″″),&pnodePCCode);hr=pnodePCCode->put_nodeValue(_variant_t(bstrpccode));CComPtr<IXMLDOMNode>pInsertedAttPCCode;hr=pClassNodeAttributes->setNamedItem(pnodePCCode,&pInsertedAttPCCode);CComPtr<IXMLDOMNode>pnodeSCode;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″scode″),_bstr_t(″″),&pnodeSCode);hr=pnodeSCode->put_nodeValue(_variant_t(bstrscode));CComPtr<IXMLDOMNode>pInsertedAttSCode;hr=pClassNodeAttributes->setNamedItem(pnodeSCode,&pInsertedAttSCode);StepP103.txtCComPtr<IXMLDOMNode>pnodeTitle;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE)_bstr_t(L″title″)_bstr_t(″″),&pnodeTitle)hr=pnodeTitle->put_nodeValue(_variant_t(bstrdefn));CComPtr<IXMLDOMNode>pInsertedTitle;hr=pClassNodeAttributes->setNamedItem(pnodeTitle,&pInsertedTitle);CComPtr<IXMLDOMNode>pAppendedClassNode;hr=bClassAppendNode->appendChild(pClaSsNode,&pAppendedClassNode);//makenewnodetheappendtargetfornextinhierarchypcassAppendNode.Release();hr=pAppendedClassNode.CopyTo(&pClassAppendNode);}else{//stepthroughthenodesandplacenodetobeinsertedintosequencelongnInsertBeforeNode=-1;for(longnNodeIndex=0;nNodeIndex<nCurrentNodes;nNodeIndex++){CComPtr<IXMLDOMNode>poldClassNode;hr=pCurrentNodes->get_item(nNodeIndex,&poldClassNode);CComPtr<IXMLDOMNamedNodeMap>pAttributes;hr=poldClassNode->get_attributes(&pAttributes);CComPtr<IXMLDOMNode>pnodeclassid;if(pAttributes?。絅ULL)hr=pAttributes->getNamedItem(L″classid″,&pnodeclassid);CComVariantvarclassid;if(pnodeclassid?。絅ULL){hr=pnodeclassid->get_nodeValue(&varclassid);longnRowClassID=varFldVal.lVal;longnNodeClassID=_wtol((wchar_t*)varclassid.bstrVal);if(nRowClassID==nNodeClassID){//don′tappend.JustsetthisasappendnodepClassAppendNode.Release();StepP103.txtpoldClassNode.CopyTo(&pClassAppendNode);nInsertBeforeNode=-2;break;}nRowClassID<nNodeClassID)elseif({nInsertBeforeNode=nNodeIndex;break;}}}if(nInsertBeforeNode>-2){CComPtr<IXMLDOMNode>pClassNode;hr=m_spDOM->createNode(_variant_t((long)NODE_ELEMENT),_bstr_t(L″usctree″),_bstr_t(″http://cxp.paterra.com″),&pClassNode);CComPtr<IXMLDOMNamedNodeMap>pClassNodeAttributes;hr=pClassNode->get_attributes(&pClassNodeAttributes);CComPtr<IXMLDOMNode>pnodeClassID;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″classid″),_bstr_t(″″),&pnodeClassID);hr=pnodeClassID->put_nodeValue(varFldVal);CComPtr<IXMLDOMNode>pInsertedAttClassID;hr=pClassNodeAttributes->setNamedItem(pnodeClassID,&pInsertedAttClassID);CComPtr<IXMLDOMNode>pnodeType;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″type″),_bstr_t(″″),&pnodeType);hr=pnodeType->put_nodeValue(_variant_t(L″secondary″));CComPtr<IXMLDOMNode>pInsertedAttType;hr=pClassNodeAttributes->setNamedItem(pnodeType,&pInsertedAttType);CComPtr<IXMLDOMNode>pnodePCCode;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″pccode″),_bstr_t(),&pnodePCCode);hr=pnodePCCode->put_nodeValue(_variant_t(bstrpccode));StepP103.txtCComPtr<IXNLDOMNode>pInsertedAttPCCode;hr=pClassNodeAttributes->setNamedItem(pnodePCCode,&pInsertedAttPCCode);CComPtr<IXMLDOMNode>pnodeSCode;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″scode″),_bstr_t(″″),&pnodeSCode);hr=pnodeSCode->put_nodeValue(_variant_t(bstrscode));pInsertedAttSCode;CComPtr<IXMLDOMNode>hr=pClassNodeAttributes->setNamedItem(pnodeSCode,&pInsertedAttSCode);CComPtr<IXMLDOMNode>pnodeTitle;hr=m_spDOM->createNode(_variant_t((long)NODE_ATTRIBUTE),_bstr_t(L″title″),_bstr_t(″″),&pnodeTitle);hr=pnodeTitle->put_nodeValue(_variant_t(bstrdefn));CComPtr<IXMLDOMNode>pInsertedTitle;hr=pClassNodeAttributes->setNamedItem(pnodeTitle,&pInsertedTitle);CComPtr<IXMLDOMNode>pAppendedClassNode;if({nInsertBeforeNode==-1)hr=pClassAppendNode->appendChild(pClassNode,&pAppendedClassNode);}else{CComPtr<IXMLDOMNode>poldClassNode;hr=pCurrentNodes->get_item(nInsertBeforeNode,&poldClassNode);CComVariantvaroldNode=poldClassNode;hr=pClassAppendNode->insertBefore(pClassNode,varoldNode,&pAppendedClassNode);}//makenewnodetheappendtargetfornextinhierarchypClassAppendNode.Release();hr=pAppendedClassNode.CopyTo(&pClassAppendNode);}}hr=pRst->MoveNext();}StepP103.txtpDispatch->Release();}}if(pRst)if(pRst->State==adStateOpen)pRst->Close();}hr=pConnection->Close();returnhr;}Stepp103sql.txtcreateprocedurespGetSubclassHierarchy@subclasschar(12)assetnocountoncreatetable#temp(classidint,[level]tinyint,pccodechar(12),scodechar(18),defnchar(250))insertinto#tempselectS.classid,S.[level],S.pccode,rtrim(ltrim(S.scode)),S.defnfromUSPCHierarchyasHjoinUSPCScheduleasSonS.classid=H.ancestoridwhereH.classidin(selectclassidfromUSPCSchedulewherepccode=@subclass)unionselect*fromUSPCSchedulewherepccode=@subclassselectclassid,,′pccode′=rtrim(pccode),′scode′=rtrim(ltrim(scode)),′defn′=rtrim(defn)from#temporderbyclassidreturnOStepP104html.txt//converttohtmlandsave//loadstylesheetCComPtr<IXMLDOMDocument2>spHtmlStyle;hr=m_spHtmlStyle.CoCreateInstance(L″Msxml2.FreeThreadedDOMDocument.4.0″);VARIANT_BOOLbSuccessful=VARIANT_FALSE;hr=m_spHtmlStyle->put_async(VARIANT_FALSE);hr=m_spHtmlStyle->load(_variant_t(/*pathofcxptohtml.xsl*/),&bSuccessful);//converttohtml//createtemplateCComPtr<IXSLTemplate>spTemplate;CComPtr<IXSLProcessor>spProcessor;hr=spTemplate.CoCreateInstance(L″Msxml2.XSLTemplate.4.0″);hr=spTemplate->putref_stylesheet(m_spHtmlStyle);hr=spTemplate->createProcessor(&spProcessor);VARIANT_BOOLvtTransformed=VARIANT_TRUE;hr=spProcessor->put_input(_variant_t(m_spDOM));hr=spProcessor->transform(&vtTransformed);//savehtmlfileCComVariantvtHtml;hr=spProcessor->get_output(&vtHtml);//saveCComBSTRbstrPath(filepath);wstringwsPath((wchar_t*)bstrPath.m_str);intnLastFolder=wsPath.rfind(L′\\′);//CreateDeepDirectoryisaroutinetocreatethedeeperdirectorystructureifnotalreadyexistingBOOLbCreated=CreateDeepDirectory(wsPath.substr(0,nLastFolder),NULL);CComBSTRbstrHtml;bstrHtml.Empty();bstrHtml.AppendBSTR(vtHtml.bstrVal);BYTE*psz=NULL;intnRequiredBytes=::wideCharToMultiByte(::GetACP(),0,(wchar_t*)bstrHtml.m_str,bstrHtml.Length(),(char*)psz,0,NULL,NULL);psz=(BYTE*)newBYTE[nRequiredBytes+1];memset(psz,′\0′,sizeof(psz));intnUsedBytes=::wideCharToMultiByte(::GetACP(),0,(wchar_t*)bstrHtml.m_str,bstrHtml.Length(),(char*)psz,nRequiredBytes+1,NULL,NULL);FILE*pFile=_wfopen((wchar_t*)bstrPath.m_str,L″w″);longnWritten=fwrite(psz,1,nUsedBytes,pFile);fflush(pFile);fclose(pFile);delete[]psz;USPCScheduleAndHierarchyTables.sql.txt/*Created2004-7-6*/useclassplusifexists(SELECT[name]FROMsysobjectsWHERE[name]=′USPCHierarchy′)DROPTABLEUSPCHierarchyifexists(SELECT[name]FROMsysobjectsWHERE[name]=′USPCSchedule′)DROPTABLEUSPCSchedulecreatetableUSPCSchedule(classidintidentity(1,1)notnullprimarykey,[level]tinyintnotnull,pccodechar(12)notnull,scodechar(18)notnull,defnchar(250)notnull)createindexidxcodeidonUSPCSchedule(pccode,classid)createindexidxiddefnonUSPCSchedule(classid,pccode,defn)createtableUSPCHierarchy(classidintnotnull,--referencesUSPCSchedule(classid),ancestoridintnotnull--referencesUSPCSchedule(classid))createindexidxclassancestoronUSPCHierarchy(classid,ancestorid)grantallonUSPCScheduletocpadmingrantallonUSPCHierarchytocpadmingrantexeconspGetSubclassHierarchytocpadmingrantselectonUSPCScheduletocxpusergrantselectonUSPCHierarchytocxpusergrantexeconspGetSubclassHierarchytocxpuser權(quán)利要求1.索引和檢索分類文檔的系統(tǒng),該系統(tǒng)包括,至少一臺服務(wù)器計(jì)算機(jī);至少一個文檔匯總,所述文檔匯總包含至少一個文檔,所述文檔根據(jù)預(yù)定義分類方案分類,所述預(yù)定義分類方案包含分類編碼,所述分類編碼包含標(biāo)題和定義;至少一個服務(wù)器網(wǎng)頁應(yīng)用程序;以及至少一個搜索引擎系統(tǒng);其中所述服務(wù)器計(jì)算機(jī)與所述搜索引擎相連,并且其中所述服務(wù)器網(wǎng)頁應(yīng)用程序從所述文檔匯總傳輸文檔至所述搜索引擎;其中所述文檔增加至少一個分類編碼標(biāo)題或分類編碼定義。2.根據(jù)權(quán)利要求1的索引和檢索分類文檔的系統(tǒng),其中所述文檔為一種格式,所述格式從包括下列格式的組中選取HTML、XML、PDF和MSWord。3.根據(jù)權(quán)利要求1的索引和檢索分類文檔的系統(tǒng),其中所述文檔使用第一語言,其中至少一個分類編碼標(biāo)題或分類編碼定義使用第二語言。4.根據(jù)權(quán)利要求1的索引和檢索分類文檔的系統(tǒng),其中該系統(tǒng)進(jìn)一步包括至少一臺客戶端計(jì)算機(jī),其中所述客戶端計(jì)算機(jī)與所述服務(wù)器計(jì)算機(jī)相連。5.索引和檢索分類文檔的系統(tǒng),該系統(tǒng)包括,至少一臺服務(wù)器計(jì)算機(jī),至少一個文檔匯總,所述文檔匯總包含至少一個文檔,所述文檔根據(jù)預(yù)定義分類方案分類,所述預(yù)定義分類方案包含分類編碼,所述分類編碼包含標(biāo)題和定義,所述文檔進(jìn)一步包含至少一個檢索關(guān)鍵字,其中所述檢索關(guān)鍵字對應(yīng)所述分類編碼標(biāo)題或分類編碼定義的至少一個,至少一個服務(wù)器網(wǎng)頁應(yīng)用程序,以及至少一個搜索引擎系統(tǒng),其中所述服務(wù)器計(jì)算機(jī)與所述搜索引擎相連,并且其中所述服務(wù)器網(wǎng)頁應(yīng)用程序從所述文檔匯總傳輸文檔至所述搜索引擎;以及裝置,用于將所述術(shù)語動態(tài)插入至所述文檔,以創(chuàng)建加上標(biāo)簽的文檔,其中所述插入操作是響應(yīng)于來自所述搜索引擎的請求,其中所述加上標(biāo)簽的文檔被傳輸至所述搜索引擎。6.根據(jù)權(quán)利要求5的索引和檢索分類文檔的系統(tǒng),其中所述文檔為一種格式,所述格式從包括下列格式的組中選取HTML、XML、PDF和MSWord。7.根據(jù)權(quán)利要求5的索引和檢索分類文檔的系統(tǒng),其中所述文檔使用第一語言,其中所述術(shù)語使用第二語言。8.根據(jù)權(quán)利要求5的索引和檢索分類文檔的系統(tǒng),其中該系統(tǒng)進(jìn)一步包含至少一臺客戶端計(jì)算機(jī),其中所述客戶端計(jì)算機(jī)與所述服務(wù)器計(jì)算機(jī)相連。9.根據(jù)權(quán)利要求1的索引和檢索分類文檔的系統(tǒng),其中該系統(tǒng)進(jìn)一步包含至少一臺客戶端計(jì)算機(jī),其中所述客戶端計(jì)算機(jī)與所述服務(wù)器計(jì)算機(jī)相連,其中所述加上標(biāo)簽的文檔被傳輸至所述客戶端計(jì)算機(jī)。10.索引和檢索分類文檔的計(jì)算機(jī)化方法,包含從文檔匯總中檢索文檔,所述文檔根據(jù)預(yù)定義的分類方案分類,所述預(yù)定義分類方案包含分類編碼,所述分類編碼包含標(biāo)題和定義,其中所述檢索操作響應(yīng)于來自搜索引擎的請求,并且其中所述文檔增加至少一個分類編碼標(biāo)題或分類編碼定義,以及將所述文檔傳輸至所述搜索引擎。11.根據(jù)權(quán)利要求10的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔為一種格式,所述格式從包括下列格式的組中選取HTML、XML、PDF和MSWord。12.根據(jù)權(quán)利要求10的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔使用第一語言,并且其中至少一個分類編碼標(biāo)題或分類編碼定義使用第二語言。13.根據(jù)權(quán)利要求10的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔匯總包含至少一個專利文檔。14.根據(jù)權(quán)利要求10的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中該系統(tǒng)進(jìn)一步包含至少一臺客戶端計(jì)算機(jī),其中所述客戶端計(jì)算機(jī)與所述服務(wù)器計(jì)算機(jī)相連。15.索引和檢索分類文檔的計(jì)算機(jī)化方法包含從文檔匯總中檢索文檔,所述文檔根據(jù)預(yù)定義的分類方案分類,所述預(yù)定義分類方案包含分類編碼,所述分類編碼包含標(biāo)題和定義,所述文檔進(jìn)一步包含至少一個檢索關(guān)鍵字,其中所述檢索關(guān)鍵字對應(yīng)所述分類編碼標(biāo)題或所述分類編碼定義中的至少一個,其中所述檢索操作響應(yīng)于來自搜索引擎的請求,從數(shù)據(jù)庫檢索至少一個關(guān)鍵字,該關(guān)鍵字從所述分類編碼標(biāo)題或分類編碼定義中的至少一個得到;將所述術(shù)語插入至所述文檔,以創(chuàng)建加上標(biāo)簽的文檔;以及將所述加上標(biāo)簽的文檔傳輸至所述搜索引擎。16.根據(jù)權(quán)利要求15的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔為一種格式,所述格式從包括下列格式的組中選取HTML、XML、PDF和MSWord。17.根據(jù)權(quán)利要求15的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔使用第一語言,其中所述術(shù)語使用第二語言。18.根據(jù)權(quán)利要求15的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔匯總包含至少一個專利文檔。19.根據(jù)權(quán)利要求15的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述系統(tǒng)進(jìn)一步包含至少一個客戶端計(jì)算機(jī),其中所述客戶端計(jì)算機(jī)與所述服務(wù)器計(jì)算機(jī)相連。20.檢索分類文檔的計(jì)算機(jī)化方法,包含啟動客戶端計(jì)算機(jī)內(nèi)的客戶軟件應(yīng)用程序與服務(wù)器計(jì)算機(jī)的連接;用所述客戶端計(jì)算機(jī)內(nèi)的所述客戶軟件應(yīng)用程序發(fā)出至少一個請求,其中所述請求啟動包含以下步驟的方法從文檔匯總檢索文檔,所述文檔匯總包含至少一個文檔,所述文檔根據(jù)預(yù)定義分類方案分類,所述預(yù)定義分類方案包含分類編碼,所述分類編碼包含標(biāo)題和定義,所述文檔進(jìn)一步包含至少一個檢索碼,其中所述檢索碼對應(yīng)所述分類編碼標(biāo)題或分類編碼定義中的至少一個;從數(shù)據(jù)庫檢索至少一個關(guān)鍵字,該關(guān)鍵字從所述分類編碼標(biāo)題或分類編碼定義中的至少一個得到;將所述關(guān)鍵字插入至所述文檔,以創(chuàng)建加上標(biāo)簽的文檔;以及將所述加上標(biāo)簽的文檔傳輸至所述搜索引擎。21.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔為一種格式,所述格式從包括下列格式的組中選取HTML、XML、PDF和MSWord。22.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔使用第一語言,其中所述關(guān)鍵字使用第二語言。23.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述文檔匯編包含至少一個專利文檔。24.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述系統(tǒng)進(jìn)一步包含至少一臺客戶端計(jì)算機(jī),其中所述客戶端計(jì)算機(jī)與所述服務(wù)器計(jì)算機(jī)相連。25.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述客戶軟件應(yīng)用程序是網(wǎng)頁瀏覽器。26.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述客戶軟件應(yīng)用程序是網(wǎng)頁抓取器。27.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述客戶軟件應(yīng)用程序是網(wǎng)頁提取器。28.根據(jù)權(quán)利要求20的索引和檢索分類文檔的計(jì)算機(jī)化方法,其中所述客戶軟件應(yīng)用程序是網(wǎng)頁內(nèi)容打包器。全文摘要索引和檢索分類文檔的系統(tǒng),其在文檔記錄中插入先前應(yīng)用的分類的關(guān)鍵字、標(biāo)題或定義,將得到的記錄提供給搜索引擎(200)。檢索者可以從分類系統(tǒng)中通過關(guān)鍵字檢索而無需檢索分類編碼。文檔編號G06F17/30GK101194255SQ200580042196公開日2008年6月4日申請日期2005年10月5日優(yōu)先權(quán)日2004年10月8日發(fā)明者A·恩格爾申請人:派特拉公司