两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于將上下文信息嵌入在文檔中的方法和系統(tǒng)的制作方法

文檔序號(hào):6621684閱讀:181來源:國(guó)知局
專利名稱:用于將上下文信息嵌入在文檔中的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
以下所述的各種實(shí)施例通常涉及電子文檔的生成和處理,且更具體而非排他地涉及這類文檔中上下文信息的添加和處理。
背景技術(shù)
在許多真實(shí)場(chǎng)景中,用戶愿意方便地訪問出現(xiàn)在文檔(例如,文本文檔、電子數(shù)據(jù)表、電子郵件等)中的有關(guān)人、公司、地址等的附加信息。由華盛頓雷蒙德的微軟公司開發(fā)的智能標(biāo)簽技術(shù)提供了向文檔添加和訪問這種上下文信息的機(jī)制。圖1A到1C圖示了添加上下文信息到文本文檔一部分中的智能標(biāo)簽技術(shù)的一個(gè)示例。
圖1A示出出現(xiàn)在一文本文檔中的地址100“One Microsoft Way,Redmond,Washington 98052”。位于地址100下面的虛線102指出該文本文檔的這部分具有一智能標(biāo)簽(即,關(guān)聯(lián)于這部分文本的上下文信息)。智能標(biāo)簽技術(shù)包括一識(shí)別器,它在文檔中檢查預(yù)選串,對(duì)它而言可用多組關(guān)聯(lián)的上下文信息。上下文信息存儲(chǔ)在動(dòng)態(tài)鏈接庫(kù)(DLL)或其它數(shù)據(jù)存儲(chǔ)器中。然后識(shí)別器將這個(gè)上下文信息附屬于識(shí)別串。
圖1B示出“選項(xiàng)”按鈕110,當(dāng)用戶把光標(biāo)放在虛線102上時(shí)智能標(biāo)簽技術(shù)顯示出來。智能標(biāo)簽技術(shù)還顯示出指出選項(xiàng)按鈕110用于顯示智能標(biāo)簽動(dòng)作菜單的附加圖形112。智能標(biāo)簽技術(shù)包括一動(dòng)作處理器,它處理關(guān)聯(lián)于識(shí)別串的上下文信息來提供用戶可關(guān)于識(shí)別串所采取的動(dòng)作。
圖1C示出當(dāng)用戶激活選項(xiàng)按鈕110時(shí)所顯示的菜單120。菜單120示出用戶關(guān)于地址100可采取的各種動(dòng)作。動(dòng)作處理器當(dāng)由用戶選擇時(shí)顯示菜單120并執(zhí)行動(dòng)作。
盡管這個(gè)示例示出了基于文本文檔的識(shí)別串的智能標(biāo)簽,智能標(biāo)簽還可基于除文本串外的其它類型數(shù)據(jù)和/或在其它類型的文檔或文件中。其它智能標(biāo)簽可提供來識(shí)別其它類型的數(shù)據(jù)(例如,人名、公司、產(chǎn)品、日期、地點(diǎn)等),每個(gè)關(guān)聯(lián)于不同的上下文信息和可執(zhí)行的動(dòng)作(啟動(dòng)到這個(gè)人的電子郵件、察看這個(gè)人的日程表、顯示該公司的電話號(hào)碼、顯示發(fā)往該公司的發(fā)票、顯示對(duì)該產(chǎn)品的服務(wù)請(qǐng)求等)。這個(gè)簡(jiǎn)單的示例說明了對(duì)于用戶智能標(biāo)簽技術(shù)是多么強(qiáng)大和有用。
目前,智能標(biāo)簽可在應(yīng)用程序接應(yīng)用程序的原則上實(shí)現(xiàn)。即,用戶必須具有為每個(gè)有智能標(biāo)簽?zāi)芰Φ膽?yīng)用程序注冊(cè)的識(shí)別器和動(dòng)作處理器,以便當(dāng)應(yīng)用程序打開時(shí),識(shí)別器和動(dòng)作處理器將被例示。對(duì)于大型組織而言,部署識(shí)別器和動(dòng)作處理器并為每個(gè)應(yīng)用程序注冊(cè)它們可能是個(gè)重大任務(wù)。維護(hù)(例如,更新和刪除現(xiàn)有識(shí)別器和動(dòng)作處理器;添加新的識(shí)別器和動(dòng)作處理器)智能標(biāo)簽對(duì)大型組織而言也是艱難的任務(wù)。
此外,識(shí)別器將應(yīng)用于所有類型的用該應(yīng)用程序編寫的文檔,盡管識(shí)別器可識(shí)別出對(duì)某些類型的文檔沒有用的數(shù)據(jù)(例如,在給私人朋友信中識(shí)別出你客戶的產(chǎn)品名)。更進(jìn)一步,編寫智能標(biāo)簽的開發(fā)者必須實(shí)現(xiàn)識(shí)別器和動(dòng)作處理器的接口,這傾向于為開發(fā)者增加開銷和復(fù)雜度。

發(fā)明內(nèi)容
按照各個(gè)實(shí)施例的各方面,提供了通用智能標(biāo)簽系統(tǒng)。在一個(gè)方面,為計(jì)算平臺(tái)提供對(duì)包括智能標(biāo)簽配置信息的知識(shí)庫(kù)的訪問并為每個(gè)駐留在該平臺(tái)的有智能標(biāo)簽?zāi)芰Φ牡膽?yīng)用程序提供識(shí)別器和動(dòng)作處理器的通用智能標(biāo)簽?zāi)K(它包括通用識(shí)別器和通用動(dòng)作處理器)。知識(shí)庫(kù)可能是可用于許多計(jì)算平臺(tái)的共享數(shù)據(jù)存儲(chǔ)器。通用智能標(biāo)簽?zāi)K可在運(yùn)行時(shí)間動(dòng)態(tài)地從知識(shí)庫(kù)加載和卸載選定的識(shí)別器和動(dòng)作處理器。共享知識(shí)庫(kù)有利地簡(jiǎn)化了識(shí)別器和動(dòng)作處理器的維護(hù)。
在另一方面,通用智能標(biāo)簽?zāi)K與有智能標(biāo)簽?zāi)芰Φ膽?yīng)用程序一起處理所有注冊(cè)并實(shí)現(xiàn)智能標(biāo)簽運(yùn)行所需要的所有接口(例如,組件對(duì)象模型或COM接口)。此方面大大降低了開發(fā)者編寫智能標(biāo)簽的復(fù)雜度。
在還有另一方面中,通用智能標(biāo)簽?zāi)K確定文檔的上下文并根據(jù)所確定的上下文從知識(shí)庫(kù)加載識(shí)別器和動(dòng)作處理器。當(dāng)不能確定上下文時(shí),通用智能標(biāo)簽?zāi)K可加載缺省識(shí)別器和動(dòng)作處理器組。此方面允許計(jì)算平臺(tái)具有為文檔上下文定制的一組識(shí)別器和動(dòng)作處理器,以避免識(shí)別出文檔中不相關(guān)的數(shù)據(jù)段。
在還有另一方面中,通用智能標(biāo)簽?zāi)K本身可求出表達(dá)式的值。此方面降低了開發(fā)者的復(fù)雜度,因?yàn)殚_發(fā)者只需要指定知識(shí)庫(kù)中的表達(dá)式,而不用編寫求表達(dá)式值的代碼。在一相關(guān)方面中,通用智能標(biāo)簽?zāi)K本身可在文檔中執(zhí)行對(duì)存儲(chǔ)在數(shù)據(jù)源中的數(shù)據(jù)的查找。此相關(guān)方面降低了開發(fā)者的復(fù)雜度,因?yàn)殚_發(fā)者只需要指定數(shù)據(jù)源的位置,而不用編寫執(zhí)行查找的代碼。


參考以下附圖描述了非有限和非窮盡的實(shí)施例,其中除非特別指明所有各視圖中相同的參考數(shù)字代表相同的部分。
圖1A-1C是示出智能標(biāo)簽如何對(duì)于文檔中選定的數(shù)據(jù)段呈現(xiàn)上下文信息的圖。
圖2是一功能方框圖,示出依照一個(gè)實(shí)施例的系統(tǒng),用于從知識(shí)庫(kù)將識(shí)別器和動(dòng)作處理器加載進(jìn)本地機(jī)器。
圖3是一流程圖,依照一個(gè)實(shí)施例,概要示出動(dòng)態(tài)加載和調(diào)用識(shí)別器和動(dòng)作處理器中通用智能標(biāo)簽?zāi)K的操作流程。
圖4是一流程圖,依照一個(gè)實(shí)施例,概要示出用于部署部分通用智能標(biāo)簽?zāi)K系統(tǒng)的過程。
圖5是一功能方框圖,概要示出一示例性計(jì)算環(huán)境,其中這里所述的技術(shù)和機(jī)制的各實(shí)施例都可以實(shí)現(xiàn)。
詳細(xì)說明以下技術(shù)和機(jī)制針對(duì)實(shí)現(xiàn)一種將上下文信息嵌入文檔中的方法和系統(tǒng)。一般而言,為一或多臺(tái)本地機(jī)器提供通用模塊。每個(gè)通用模塊可訪問包含可在文檔打開時(shí)由本地機(jī)器動(dòng)態(tài)加載的識(shí)別器和動(dòng)作處理器的知識(shí)庫(kù)。知識(shí)庫(kù)可駐留在遠(yuǎn)程機(jī)器(或跨多臺(tái)遠(yuǎn)程機(jī)器分布)并由本地機(jī)器共享。在一個(gè)實(shí)施例中,系統(tǒng)基于來自微軟公司可用的智能標(biāo)簽技術(shù)。下面描述這個(gè)一般概念的特定實(shí)現(xiàn)。
圖2是一功能方框圖,示出依照一個(gè)實(shí)施例的系統(tǒng)200,用于前述的從知識(shí)庫(kù)204將識(shí)別器和動(dòng)作處理器加載進(jìn)本地機(jī)器202。該實(shí)施例基于智能標(biāo)簽技術(shù),盡管其它的實(shí)施例可能使用其它技術(shù)將上下文信息嵌入到文檔中。在這個(gè)實(shí)施例中,本地機(jī)器202包括通用智能標(biāo)簽?zāi)K210和一或多個(gè)有智能標(biāo)簽?zāi)芰Φ膽?yīng)用程序212。有智能標(biāo)簽?zāi)芰Φ膽?yīng)用程序在這里也可稱為主機(jī)應(yīng)用程序。通用智能標(biāo)簽?zāi)K210在這個(gè)實(shí)施例中是個(gè)軟件組件,在實(shí)現(xiàn)于本地機(jī)器202上的計(jì)算環(huán)境(未示出)中執(zhí)行。示例計(jì)算環(huán)境在下面結(jié)合圖5描述。在系統(tǒng)200中,通用智能標(biāo)簽?zāi)K210和知識(shí)庫(kù)204可交換信息,如箭頭216所示。
而且,在這個(gè)實(shí)施例中,通用智能標(biāo)簽?zāi)K210包括從知識(shí)庫(kù)204加載配置信息的配置加載器224、執(zhí)行對(duì)從知識(shí)庫(kù)204加載的識(shí)別器的調(diào)用的通用識(shí)別器226和執(zhí)行對(duì)從知識(shí)庫(kù)204加載的動(dòng)作處理器的調(diào)用的通用動(dòng)作處理器228。在一些實(shí)施例中,通用動(dòng)作處理器228還執(zhí)行表達(dá)式求值(例如,按照由微軟開發(fā)的.NET框架的表達(dá)式)。盡管這個(gè)示例描述通用智能標(biāo)簽?zāi)K210為具有幾個(gè)“子模塊”,在其它實(shí)施例中,這些子模塊的功能可能分布于更少(或更多)的子模塊中并以不同的組合方式。
在這個(gè)實(shí)施例中,知識(shí)庫(kù)204包括智能標(biāo)簽配置信息230、以及識(shí)別器和動(dòng)作處理器232。智能標(biāo)簽配置信息230包含相關(guān)于識(shí)別器和動(dòng)作處理器232的每個(gè)識(shí)別器和動(dòng)作處理器的位置的信息。例如,配置信息可包括一組指針,一個(gè)指針指向識(shí)別器和動(dòng)作處理器的每一個(gè)。在一個(gè)實(shí)施例中,智能標(biāo)簽配置信息230是以元數(shù)據(jù)形式,但在其它實(shí)施例中,配置信息可包含在文件、文檔或其它合適的形式中。盡管圖2所述為單一設(shè)備,知識(shí)庫(kù)204可分布于可由本地機(jī)器202訪問的幾臺(tái)設(shè)備上。例如,智能標(biāo)簽配置信息230可以存儲(chǔ)在一臺(tái)設(shè)備中,同時(shí)識(shí)別器和動(dòng)作處理器232存儲(chǔ)在另一設(shè)備中,而仍由單一邏輯位置表示。由于識(shí)別器和動(dòng)作處理器存儲(chǔ)在單一邏輯位置,識(shí)別器和動(dòng)作處理器的部署和維護(hù)可能顯著地是較少的復(fù)雜度和較少的時(shí)間開銷。
在一些實(shí)施例中,識(shí)別器和動(dòng)作處理器232包括指定上下文的識(shí)別器和動(dòng)作處理器。識(shí)別器和動(dòng)作處理器232還可包括用于每個(gè)主機(jī)應(yīng)用程序的識(shí)別器和動(dòng)作處理器的標(biāo)準(zhǔn)組,且因此不必需關(guān)聯(lián)于特定上下文。
在一些實(shí)施例中,文檔的“上下文”稱為文檔的目的和用途。文檔的上下文的示例可包括用于創(chuàng)建文檔的主機(jī)應(yīng)用程序、用于創(chuàng)建文檔的樣式表、文檔的屬性等等。例如,法律文檔(例如,合同)可具有大大不同于科學(xué)文檔的上下文。用于具有“法律”上下文的文檔的識(shí)別器可適應(yīng)于識(shí)別法律術(shù)語(yǔ)而忽略科學(xué)術(shù)語(yǔ);用于科學(xué)文檔的識(shí)別器可適應(yīng)于識(shí)別科學(xué)術(shù)語(yǔ)而忽略法律術(shù)語(yǔ)。然后開發(fā)者可對(duì)文檔的每個(gè)上下文創(chuàng)建識(shí)別器和/或動(dòng)作處理器,存儲(chǔ)在知識(shí)庫(kù)204中。盡管以上實(shí)施例使用了智能標(biāo)簽技術(shù),其它實(shí)施例可使用其它技術(shù)將上下文信息嵌入到文檔中。
圖3依照一個(gè)實(shí)施例,概要示出動(dòng)態(tài)加載和調(diào)用識(shí)別器和動(dòng)作處理器中通用智能標(biāo)簽?zāi)K210(圖2)的操作流程。參考圖2和3,通用智能標(biāo)簽?zāi)K210操作流程的這個(gè)示例當(dāng)本地機(jī)器202的用戶用主機(jī)應(yīng)用程序打開或創(chuàng)建文檔時(shí)開始。
在方框302,通用智能標(biāo)簽?zāi)K210被例示。在這個(gè)實(shí)施例中,響應(yīng)打開文檔,本地機(jī)器202打開主機(jī)應(yīng)用程序,它依次將通用智能標(biāo)簽?zāi)K210加載入存儲(chǔ)器,因?yàn)橥ㄓ弥悄軜?biāo)簽?zāi)K210是向主機(jī)應(yīng)用程序注冊(cè)的(例如,當(dāng)通用智能標(biāo)簽?zāi)K210在本地機(jī)器202中安裝時(shí))。
在方框304,為文檔確定出一或多個(gè)上下文。在這個(gè)實(shí)施例中,配置通用智能標(biāo)簽?zāi)K210的配置加載器224以確定文檔的上下文,例如,通過檢查以下內(nèi)容的一或多個(gè)文檔的屬性;文檔的樣式表;用于創(chuàng)建文檔的主機(jī)應(yīng)用程序;附屬于文檔的大綱;或任意包含在文檔中的其它相關(guān)信息。上下文和確定它們的機(jī)制一般由主機(jī)應(yīng)用程序的開發(fā)者創(chuàng)建,盡管在一些情況下,第三方開發(fā)者可擴(kuò)展上下文。開發(fā)者還可創(chuàng)建存儲(chǔ)于知識(shí)庫(kù)204的相應(yīng)的指定上下文識(shí)別器和動(dòng)作處理器。一些文檔可能沒有任何確定的上下文。
在方框306,智能標(biāo)簽配置信息230從知識(shí)庫(kù)204獲取并加載進(jìn)本地機(jī)器202。在這個(gè)實(shí)施例中,配置加載器224發(fā)送對(duì)智能標(biāo)簽配置信息230的請(qǐng)求到知識(shí)庫(kù)204,并作為響應(yīng),接收來自知識(shí)庫(kù)204的智能標(biāo)簽配置信息230。
在方框308,一或多個(gè)識(shí)別器和一或多個(gè)動(dòng)作處理器從知識(shí)庫(kù)204獲取并加載進(jìn)本地機(jī)器202。在這個(gè)實(shí)施例中,配置加載器224根據(jù)如方框304中確定的文檔上下文選擇包含在智能標(biāo)簽配置信息230中的一或多個(gè)識(shí)別器和動(dòng)作處理器。當(dāng)在方框304沒有確定上下文時(shí),配置加載器224則可選擇一缺省組的識(shí)別器和動(dòng)作處理器。配置員和/或管理員可定義和修改這個(gè)缺省組。
在方框310,在方框308選定的識(shí)別器和動(dòng)作處理器隨后從知識(shí)庫(kù)204獲取并加載進(jìn)本地機(jī)器202。在這個(gè)實(shí)施例中,配置加載器224發(fā)送對(duì)選定的智能標(biāo)簽處理模塊(例如,識(shí)別器和動(dòng)作處理器)的請(qǐng)求(包括從智能標(biāo)簽配置信息230獲取的選定的識(shí)別器和動(dòng)作處理器的位置信息)到知識(shí)庫(kù)204。響應(yīng)這些請(qǐng)求,配置加載器224將從知識(shí)庫(kù)204接收選定的處理模塊。以這種方式,指定上下文的識(shí)別器和動(dòng)作處理器可在運(yùn)行時(shí)間動(dòng)態(tài)地加載(并當(dāng)不再需要時(shí)卸載),由此通過提供相關(guān)的智能標(biāo)簽和減少不相關(guān)智能標(biāo)簽的數(shù)量來改善用戶的體驗(yàn)。
選定處理模塊的一或多個(gè)可以是由開發(fā)者編寫的DLL形式,配置員和/或管理員將之存儲(chǔ)于知識(shí)庫(kù)204。在一些實(shí)施例中,處理模塊還可以是表示規(guī)則表達(dá)式(例如,按照前述的.NET框架的表達(dá)式)的形式。在其它實(shí)施例中,可使用或創(chuàng)建來自不同框架或語(yǔ)言的表達(dá)式。當(dāng)求值時(shí),該表達(dá)式確定文本段中的模式或串。智能標(biāo)簽用由選定的文本上的配置所提供的定義創(chuàng)建。在一些其它實(shí)施例中,處理模塊還可以是表示數(shù)據(jù)源或數(shù)據(jù)源的位置的形式。數(shù)據(jù)源可包含串或數(shù)據(jù)段的列表,開發(fā)者為之創(chuàng)建智能標(biāo)簽。數(shù)據(jù)源可以是,例如,數(shù)據(jù)庫(kù)、電子表格、列表文件、XML文檔等形式。
在方框312,使用在方框310加載的識(shí)別器在文檔上執(zhí)行識(shí)別操作。在這個(gè)實(shí)施例中,通用識(shí)別器226從文檔中選擇數(shù)據(jù)段,對(duì)每個(gè)數(shù)據(jù)段,進(jìn)行對(duì)所加載識(shí)別器的調(diào)用,以確定是否有關(guān)聯(lián)于這個(gè)數(shù)據(jù)段的智能標(biāo)簽。這個(gè)實(shí)施例允許開發(fā)者簡(jiǎn)化加載識(shí)別器的實(shí)現(xiàn),因?yàn)槊總€(gè)識(shí)別器只需要實(shí)現(xiàn)一個(gè)方法調(diào)用(例如,ISmartTagRecognizer2接口的.Recognize2(...)方法調(diào)用)。通用識(shí)別器226然后處理所有其它需要支持智能標(biāo)簽實(shí)現(xiàn)的接口。這個(gè)特征的示例在下面結(jié)合圖4對(duì)表達(dá)式識(shí)別器描述。
在方框314,使用在方框310加載的動(dòng)作處理器在文檔上執(zhí)行動(dòng)作處理操作。在這個(gè)實(shí)施例中,識(shí)別器識(shí)別文本并插入智能標(biāo)簽。當(dāng)用戶使用智能標(biāo)簽時(shí),通用動(dòng)作處理器228得到激活,且通用智能標(biāo)簽?zāi)K210傳遞執(zhí)行至在方框310動(dòng)態(tài)加載的正確的動(dòng)作處理器。方框312和314然后可對(duì)來自文檔其它部分的數(shù)據(jù)段重復(fù)執(zhí)行,直至處理完整個(gè)文檔。
在一可供選擇的實(shí)施例中,通用智能標(biāo)簽?zāi)K210(圖2)不需要在執(zhí)行方框310時(shí)加載數(shù)據(jù)源內(nèi)容。當(dāng)然,通用識(shí)別器226(圖2)可在執(zhí)行方框312時(shí)加載數(shù)據(jù)源內(nèi)容。
盡管以上過程是順序示出和描述的,在其它實(shí)施例中,方框中所述的操作可以不同順序、多次和/或并行執(zhí)行。此外,盡管以上實(shí)施例使用了智能標(biāo)簽技術(shù),其它實(shí)施例可使用其它技術(shù)將上下文信息嵌入進(jìn)文檔。
圖4依照一個(gè)實(shí)施例示出了部署部分通用智能標(biāo)簽?zāi)K200(圖2)的過程。這個(gè)示例針對(duì)為注冊(cè)的主機(jī)應(yīng)用程序部署新識(shí)別器402的管理員或配置員。對(duì)于新應(yīng)用程序,配置員或管理員將需要為這些注冊(cè)創(chuàng)建必需的注冊(cè)項(xiàng)。例如這可在用戶登錄時(shí)通過腳本執(zhí)行。
新識(shí)別器402可由主機(jī)應(yīng)用程序的開發(fā)者創(chuàng)建。如果例如,開發(fā)者創(chuàng)建了新識(shí)別器,在一個(gè)實(shí)施例中適應(yīng)于SmartTag interface2版本(例如,參見微軟可用的智能標(biāo)簽軟件開發(fā)者工具(SDK)),識(shí)別器只需要提供.Recognize2(...)方法調(diào)用的實(shí)現(xiàn)。下面提供規(guī)則.NET表達(dá)式的樣本實(shí)現(xiàn),以識(shí)別已知軟件故障(bug)的標(biāo)識(shí)符(即故障號(hào))。相應(yīng)于識(shí)別器的動(dòng)作處理器隨后將獲得包含特定于所識(shí)別故障號(hào)的信息的智能標(biāo)簽。
namespace MyNamespace{///<小結(jié)>
///智能標(biāo)簽類///</小結(jié)>
public class MyRecognizerClassISmartTagRecognizer2{private static Regex RegularExpresssion=new Regex(@″(^|\W)( <BugNumber>\d{4,5})($|\W)″,RegexOptions.Compiled|RegexOptions.Multiline|RegexOptions.ExplicitCapture);public SmartTagRecognizer(){}public void Recognize2(string Text,IF_TYPE DataType,int LocaleID,ISmartTagRecognizerSite2 RecognizerSite,stringApplicationName,ISmartTagTokenList TokenList){Match match=RegularExpresssion.Match(Text);while(match.Success){Group matchGroup=match.Groups[″BugNumber″];const string formatString=″<?xml version=\″1.0\″?>″+″<BugReference id=′{0}′/>″;string context=string.Format(formatString,matchGroup.Value);ISmartTagProperties propBag=RecognizerSite.GetNewPropertyBag();propBag.Write(″data″,context);RecognizerSite.CommitSmartTag(″http//UniqueSmartTagName″,matchGroup.Index+1,matchGroup.Length,propBag);match=RegularExpresssion.Match(Text,matchGroup.Index+matchGroup.Length);}}
}}在方框404,確定識(shí)別器的類型。在這個(gè)實(shí)施例中,有三種類型的識(shí)別器(也就是DLL、規(guī)則表達(dá)式和數(shù)據(jù)源),盡管在其它實(shí)施例中可有大量不同類型。在這個(gè)實(shí)施例中,動(dòng)作處理器是DLL。
在判定框406,判定識(shí)別器402是否是數(shù)據(jù)源類型。在這個(gè)實(shí)施例中,配置員或管理員作出這個(gè)判定。如果識(shí)別器402是數(shù)據(jù)源類型,則操作流程前進(jìn)到方框408。
在方框408,配置員或管理員只需要在知識(shí)庫(kù)204(圖2)中存儲(chǔ)識(shí)別器402的數(shù)據(jù)源的副本并輸入指向智能標(biāo)簽配置信息230(圖2)中所存儲(chǔ)的數(shù)據(jù)源的位置的指針(或用于確定所存儲(chǔ)的數(shù)據(jù)源的位置的其它機(jī)制)。如果在方框406判定識(shí)別器不是數(shù)據(jù)源,操作流程前進(jìn)至方框410。
在判定框410,判定識(shí)別器402是否是規(guī)則表達(dá)式。在這個(gè)實(shí)施例中,配置員或管理員作出這個(gè)判定。如果識(shí)別器402是規(guī)則表達(dá)式類型,操作流程則前進(jìn)至方框412。
在方框412,配置員或管理員只需要在智能標(biāo)簽配置信息230(圖2)中存儲(chǔ)表示規(guī)則表達(dá)式的數(shù)據(jù)。前述故障號(hào)表達(dá)式的示例提供如下<SmartTagRecognizerExpressionToDetect=″(^|\W)(?<BugNumber>\d{4,5})($|\W)″ExpressionToGenerate=″<?xml version=\″1.0\″?><BugReference id=′{0}′/>″/>
在這個(gè)實(shí)施例中,通用智能標(biāo)簽?zāi)K210(圖2)具有所有該識(shí)別器所需的信息,直接來自智能標(biāo)簽配置信息230而不是必須用單獨(dú)的操作從知識(shí)庫(kù)204得到表達(dá)式。在這個(gè)實(shí)施例中,如果在方框410判定識(shí)別器402不是規(guī)則表達(dá)式,則識(shí)別器402是DLL類型,且操作流程前進(jìn)到方框414。
在方框414,配置員或管理員需要在知識(shí)庫(kù)204(圖2)中存儲(chǔ)識(shí)別器402的DLL的副本并將指向DLL所存儲(chǔ)位置的指針(或其它確定DLL位置的機(jī)制)添加到智能標(biāo)簽配置信息230(圖2)中。將位置信息添加進(jìn)智能標(biāo)簽配置信息230的示例提供如下
<SmartTagRecognizer Location=″\\some_share\MyRecognizer.dll″ClassName=″MyNamespace.MyRecognizerClass″/>
對(duì)于部署動(dòng)作處理器,配置員或管理員實(shí)際上將執(zhí)行類似于方框414的操作,來存儲(chǔ)動(dòng)作處理器DLL于知識(shí)庫(kù)204并將指向DLL的指針添加進(jìn)智能標(biāo)簽配置信息230(圖2)。
盡管以上過程是順序示出并描述的,但在其它實(shí)施例中,方框中所述操作可以不同順序、多次和/或并行地執(zhí)行。此外,盡管以上實(shí)施例使用了智能標(biāo)簽技術(shù),其它實(shí)施例可使用其它技術(shù)將上下文信息嵌入到文檔中。
示例操作環(huán)境以上所述的各種實(shí)施例可在服務(wù)器和客戶機(jī)的計(jì)算機(jī)環(huán)境中實(shí)現(xiàn)。適合用于服務(wù)器和客戶機(jī)的示例計(jì)算機(jī)環(huán)境結(jié)合圖5在下面描述。
參考圖5,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算設(shè)備,諸如計(jì)算設(shè)備500。在其最基本配置中,計(jì)算設(shè)備500一般包括至少一個(gè)處理單元502和存儲(chǔ)器504。根據(jù)計(jì)算設(shè)備的準(zhǔn)確配置和類型,存儲(chǔ)器504可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或兩者的某些結(jié)合。這個(gè)最基本配置由虛線506在圖5中說明。另外,設(shè)備500還可具有附加的部件/功能。例如,設(shè)備500還可包括附加存儲(chǔ)器(可移動(dòng)的和/或不可移動(dòng)的),包括但不限于,磁或光盤或磁帶。這樣的附加存儲(chǔ)器在圖5中由可移動(dòng)存儲(chǔ)器508和不可移動(dòng)存儲(chǔ)器510說明。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的存儲(chǔ)的任意方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性的、可移動(dòng)和不可移動(dòng)的介質(zhì)。存儲(chǔ)器504、可移動(dòng)存儲(chǔ)器508和不可移動(dòng)存儲(chǔ)器510都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光存儲(chǔ)器、磁盒、磁帶、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備或任意其它可用來存儲(chǔ)所需信息并可被設(shè)備500訪問的介質(zhì)。任意這種計(jì)算機(jī)存儲(chǔ)介質(zhì)都可以是設(shè)備500的一部分。
設(shè)備500還可包含允許設(shè)備與其它設(shè)備通信的通信連接512。通信連接512是通信介質(zhì)的示例。通信介質(zhì)一般包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在諸如載波或其它傳輸機(jī)制的調(diào)制數(shù)據(jù)信號(hào)中的其它數(shù)據(jù)并包括任意信息傳輸介質(zhì)。術(shù)語(yǔ)“調(diào)制數(shù)據(jù)信號(hào)”指具有以在信號(hào)中編碼信息這種方式設(shè)置或改變的其特征的一或多個(gè)的信號(hào)。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線纜連接的有線介質(zhì)和諸如聲波、RF、紅外和其它無線介質(zhì)的無線介質(zhì)。這里所用的術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)介質(zhì)和通信介質(zhì)兩種。
設(shè)備500還可具有諸如鍵盤、鼠標(biāo)、筆、聲音輸入設(shè)備、觸摸輸入設(shè)備等的輸入設(shè)備514。諸如顯示器、揚(yáng)聲器、打印機(jī)等的輸出設(shè)備516也可包括在內(nèi)。所有這些設(shè)備都是本領(lǐng)域眾所周知的,且不需要在這里長(zhǎng)篇討論。
設(shè)備500可包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可是是任何由設(shè)備500訪問的可用介質(zhì),并包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的存儲(chǔ)的任意方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性的、可移動(dòng)和不可移動(dòng)的介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光盤存儲(chǔ)器、磁盒、磁帶、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備或任意其它可用來存儲(chǔ)所需信息并可被設(shè)備500訪問的介質(zhì)。通信介質(zhì)一般包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在諸如載波或其它傳輸機(jī)制的調(diào)制數(shù)據(jù)信號(hào)中的其它數(shù)據(jù)并包括任意信息傳輸介質(zhì)。術(shù)語(yǔ)“調(diào)制數(shù)據(jù)信號(hào)”指具有以在信號(hào)中編碼信息這種方式設(shè)置或改變的其特征的一或多個(gè)的信號(hào)。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線纜連接的有線介質(zhì)和諸如聲波、RF、紅外和其它無線介質(zhì)的無線介質(zhì)。以上任意的結(jié)合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
這里各種模塊和技術(shù)在計(jì)算機(jī)可執(zhí)行指令的通用上下文中描述,諸如程序模塊,由一或多臺(tái)計(jì)算機(jī)或其它設(shè)備執(zhí)行。通常,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等,用于執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。這些程序模塊等可作為原代碼執(zhí)行或可下載并執(zhí)行,諸如在虛擬機(jī)或其它即時(shí)(just-in-time)編譯執(zhí)行環(huán)境中。一般地,程序模塊的功能可如在各種實(shí)施例中所希望的結(jié)合或分布。
這些模塊和技術(shù)的實(shí)現(xiàn)可存儲(chǔ)在或傳輸在某些形式的計(jì)算機(jī)可讀介質(zhì)上。計(jì)算機(jī)可讀介質(zhì)可以是任意可由計(jì)算機(jī)訪問的可用介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括“計(jì)算機(jī)存儲(chǔ)介質(zhì)”和“通信介質(zhì)”。
“計(jì)算機(jī)存儲(chǔ)介質(zhì)”包括以用于諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的存儲(chǔ)的任意方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性的、可移動(dòng)和不可移動(dòng)的介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光存儲(chǔ)器、磁盒、磁帶、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備或任意其它可用來存儲(chǔ)所需信息并可被計(jì)算機(jī)訪問的介質(zhì)。
“通信介質(zhì)”一般包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在諸如載波或其它傳輸機(jī)制的調(diào)制數(shù)據(jù)信號(hào)中的其它數(shù)據(jù)。通信介質(zhì)也包括任意信息傳輸介質(zhì)。術(shù)語(yǔ)“調(diào)制數(shù)據(jù)信號(hào)”指具有以在信號(hào)中編碼信息這種方式設(shè)置或改變的其特征的一或多個(gè)的信號(hào)。僅作為非限制示例,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線纜連接的有線介質(zhì)和諸如聲波、RF、紅外和其它無線介質(zhì)的無線介質(zhì)。以上任意的結(jié)合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
這個(gè)說明書通篇進(jìn)行了對(duì)“一個(gè)實(shí)施例”、“實(shí)施例”或“示例實(shí)施例”的引用,它們是指特定描述的部件、結(jié)構(gòu)或特征至少包括在本發(fā)明的一個(gè)實(shí)施例中。因而,這種短語(yǔ)的使用可稱為多于一個(gè)實(shí)施例。而且,所述部件、結(jié)構(gòu)或特征可在一或多個(gè)實(shí)施例中用任意適合的方式組合。
但是,相關(guān)領(lǐng)域中的熟練技術(shù)人員可認(rèn)識(shí)到,本發(fā)明可沒有一或多個(gè)特定細(xì)節(jié)或者用其它方法、資源、材料等而實(shí)施。在其它情況中,眾所周知的結(jié)構(gòu)、資源或操作未示出或詳細(xì)描述,只是為了避免遮蔽本發(fā)明的各方面。
盡管示出和描述了示例實(shí)施例和應(yīng)用程序,要理解本發(fā)明不限于以上描述的精確配置和資源??稍谶@里所公開的本發(fā)明的方法和系統(tǒng)的排列、操作和細(xì)節(jié)上進(jìn)行各種對(duì)那些本領(lǐng)域熟練技術(shù)人員顯而易見的修改、變化和變體,而不脫離權(quán)利要求的發(fā)明的范圍。
權(quán)利要求
1.一種向文檔添加上下文信息的方法,其特征在于,包括確定一文檔的上下文;從一知識(shí)庫(kù)加載關(guān)聯(lián)于所述上下文信息的配置信息;以及響應(yīng)于所述上下文和配置信息,從所述知識(shí)庫(kù)加載處理模塊,其中,所述處理模塊將在被激活時(shí)向所述文檔添加上下文信息。
2.如權(quán)利要求1所述的方法,其特征在于,從一知識(shí)庫(kù)加載配置信息包括從遠(yuǎn)離于向其加載所述配置信息要加載的位置的一知識(shí)庫(kù)加載配置信息。
3.如權(quán)利要求1所述的方法,其特征在于,從一知識(shí)庫(kù)加載配置信息包括加載指向一動(dòng)態(tài)鏈接庫(kù)(DLL)的指針。
4.如權(quán)利要求1所述的方法,其特征在于,從一知識(shí)庫(kù)加載配置信息包括加載一包括所述配置信息的數(shù)據(jù)源。
5.如權(quán)利要求1所述的方法,其特征在于,從一知識(shí)庫(kù)加載配置信息包括加載一包括所述配置信息的表達(dá)式。
6.如權(quán)利要求1所述的方法,其特征在于,從一知識(shí)庫(kù)加載配置信息包括如果不能確定上下文則加載缺省配置信息。
7.如權(quán)利要求1所述的方法,其特征在于,所述配置信息包括應(yīng)用于多個(gè)上下文的信息。
8.如權(quán)利要求1所述的方法,其特征在于,所述知識(shí)庫(kù)可由多個(gè)實(shí)體訪問。
9.如權(quán)利要求1所述的方法,其特征在于,還包括卸載所述加載的配置信息。
10.如權(quán)利要求1所述的方法,其特征在于,還包括卸載所述加載的處理模塊。
11.如權(quán)利要求1所述的方法,其特征在于,還包括對(duì)一處理模塊進(jìn)行一次調(diào)用,以識(shí)別出文檔中選定的數(shù)據(jù)段。
12.如權(quán)利要求11所述的方法,其特征在于,還包括響應(yīng)于一識(shí)別出的數(shù)據(jù)段,對(duì)另一處理模塊進(jìn)行一次調(diào)用。
13.如權(quán)利要求1所述的方法,其特征在于,所述文檔的上下文包括所述文檔的屬性。
14.如權(quán)利要求1所述的方法,其特征在于,所述文檔的上下文包括一關(guān)聯(lián)于所述文檔的樣式表。
15.如權(quán)利要求1所述的方法,其特征在于,所述文檔的上下文包括一附屬于所述文檔的大綱。
16.如權(quán)利要求1所述的方法,其特征在于,所述文檔的上下文包括一用于創(chuàng)建所述文檔的主機(jī)應(yīng)用程序。
17.一種具有執(zhí)行如權(quán)利要求1所述的方法的機(jī)器可讀介質(zhì)。
18.一種向文檔添加上下文信息的裝置,其特征在于,所述裝置包括用于確定所述文檔的上下文的裝置;用于從一知識(shí)庫(kù)加載關(guān)聯(lián)于所述上下文信息的配置信息的裝置;以及用于響應(yīng)于所述上下文和所述配置信息從所述知識(shí)庫(kù)加載處理模塊的裝置,其中,所述處理模塊將在被激活時(shí)向所述文檔添加上下文信息。
19.如權(quán)利要求18所述的裝置,其特征在于,所述知識(shí)庫(kù)遠(yuǎn)離于所述裝置定位。
20.如權(quán)利要求18所述的裝置,其特征在于,所述配置信息包括指向動(dòng)態(tài)鏈接庫(kù)(DLL)的指針、數(shù)據(jù)源以及表達(dá)式中的一個(gè)或多個(gè)。
21.如權(quán)利要求18所述的裝置,其特征在于,所述用于加載配置信息的工具響應(yīng)用于所述確定裝置不能確定所述文檔的上下文而加載缺省配置信息。
22.如權(quán)利要求18所述的裝置,其特征在于,還包括用于卸載所加載的配置信息的工具以及用于卸載所加載的處理模塊的裝置。
23.如權(quán)利要求18所述的裝置,其特征在于,還包括用于對(duì)一處理模塊進(jìn)行一次調(diào)用以識(shí)別出所述文檔中選定的數(shù)據(jù)段的裝置。
24.如權(quán)利要求23所述的裝置,其特征在于,還包括用于響應(yīng)于一所識(shí)別出的數(shù)據(jù)段對(duì)另一處理模塊進(jìn)行一次調(diào)用的裝置。
25.一種向文檔添加上下文信息的系統(tǒng),其特征在于,所述系統(tǒng)包括第一識(shí)別器,它對(duì)加載的第二識(shí)別器進(jìn)行一次調(diào)用以識(shí)別出所述文檔中一選定的數(shù)據(jù)段;第一動(dòng)作處理器,它響應(yīng)由所述第一識(shí)別器識(shí)別出的一數(shù)據(jù)段對(duì)加載的第二動(dòng)作處理器進(jìn)行調(diào)用;以及一配置加載器,它確定所述文檔的一上下文,并作為響應(yīng),從一知識(shí)庫(kù)加載關(guān)聯(lián)于所述上下文信息的配置信息。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述配置加載器將響應(yīng)于所述加載的配置信息加載所述第二識(shí)別器和動(dòng)作處理器。
27.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述配置加載器還將響應(yīng)于所述加載的配置信息加載多個(gè)識(shí)別器和多個(gè)動(dòng)作處理器。
28.如權(quán)利要求25所述的系統(tǒng),其特征在于,當(dāng)所述系統(tǒng)被安裝在一機(jī)器中時(shí),將向用于創(chuàng)建所述文檔的主機(jī)應(yīng)用程序注冊(cè)。
29.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述第二識(shí)別器不需要向用于創(chuàng)建所述文檔的主機(jī)應(yīng)用程序注冊(cè)。
30.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述配置信息包括指向動(dòng)態(tài)鏈接庫(kù)的指針、數(shù)據(jù)源和表達(dá)式中的一或多個(gè)。
31.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述知識(shí)庫(kù)駐留在一個(gè)不是所述系統(tǒng)所駐留在的機(jī)器的機(jī)器上。
32.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述知識(shí)庫(kù)可被不是駐留在所述系統(tǒng)所駐留在的機(jī)器上的機(jī)器上的其它系統(tǒng)訪問。
33.一種具有實(shí)現(xiàn)如權(quán)利要求25所述的系統(tǒng)的組件的機(jī)器可讀介質(zhì)。
全文摘要
通用智能標(biāo)簽?zāi)K具有通用識(shí)別器和通用動(dòng)作處理器。通用模塊為平臺(tái)提供對(duì)具有智能標(biāo)簽配置信息的知識(shí)庫(kù)的訪問并為每個(gè)駐留在平臺(tái)上的主機(jī)應(yīng)用程序提供識(shí)別器和動(dòng)作處理器。知識(shí)庫(kù)可以是可用于許多平臺(tái)的共享數(shù)據(jù)存儲(chǔ)器。通用模塊可在運(yùn)行時(shí)間從知識(shí)庫(kù)動(dòng)態(tài)加載或卸載選定的識(shí)別器和動(dòng)作處理器。通用模塊可向主機(jī)應(yīng)用程序注冊(cè),并實(shí)現(xiàn)智能標(biāo)簽接口。通用模塊可確定文檔上下文并根據(jù)所確定的上下文從知識(shí)庫(kù)加載識(shí)別器和動(dòng)作處理器。通用模塊可求出表達(dá)式(例如,規(guī)則.NET表達(dá)式)的值,并在文檔中對(duì)存儲(chǔ)在數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行查找。
文檔編號(hào)G06F17/30GK1722132SQ20051007583
公開日2006年1月18日 申請(qǐng)日期2005年5月27日 優(yōu)先權(quán)日2004年7月14日
發(fā)明者R·R·達(dá)爾弗 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
广昌县| 安宁市| 二连浩特市| 白沙| 昭平县| 来凤县| 威海市| 江孜县| 黎平县| 扶沟县| 西乌| 鹤峰县| 莒南县| 湖北省| 福建省| 辽阳市| 孝义市| 乌恰县| 崇左市| 潞城市| 阿坝县| 石狮市| 瑞金市| 清流县| 始兴县| 宁陵县| 嫩江县| 牙克石市| 丹阳市| 长丰县| 盐边县| 若羌县| 大方县| 宁城县| 休宁县| 吴川市| 南丹县| 株洲市| 广东省| 阜康市| 阳朔县|