專利名稱:自動文本生成的制作方法
背景技術(shù):
本發(fā)明涉及生成文本,尤其涉及指示用戶在用戶界面上的動作的文本的自動生成。
已經(jīng)進行了若干嘗試來實現(xiàn)與計算機的基于自然語言/語音的交互。這些嘗試的結(jié)果至今仍是受限的。這由技術(shù)的不完美、非入侵性話筒架構(gòu)的缺乏、高創(chuàng)作成本、不易改變的顧客行為、以及對許多任務提供高價值的GUI(圖形用戶界面)形式的競爭者的綜合而引起的。本發(fā)明集中于這些局限中的兩個,即與GUI的更緊密集成和降低的創(chuàng)作成本。
圖形用戶界面(GUI)是一種廣泛使用的界面機制。GUI對于定位任務(例如,重定矩形的尺寸)、視覺修飾任務(例如,使某樣事物成為模糊的藍色陰影)或選擇任務(例如,這是我希望旋轉(zhuǎn)的一百張圖片之一)是極好的。GUI對于對快速單步特征的迅速訪問也是好的。應用程序GUI是從功能角度(例如,被組織成菜單、工具欄等)而非面向任務的角度(例如,根據(jù)用戶希望完成的較高級任務,諸如“使我的計算機沒有黑客的危險”來組織)組織的有用的工具箱。
然而,GUI也給用戶造成了許多問題。使用工具箱類推,用戶難以找出箱中的工具或領(lǐng)會如何使用該工具來完成任務。由單個單詞描述的界面、微小按鈕以及被迫成為不透明層次的選項卡并不對人們考慮任務的方式起到任何幫助作用。GUI要求用戶分解任務以確定需要哪些元素來完成任務。這一要求導致復雜性。除復雜性之外,也需要花費時間來組裝GUI元素(即,菜單點擊、對話框點擊等)。這即使對于專家用戶也可能是效率低下且耗時的。
用于解決GUI問題的一種現(xiàn)有的機制是所編寫的幫助程序。幫助程序通常采用幫助(Help)文檔、PSS(產(chǎn)品支持服務)KB(知識庫)文章和新聞組公告的形式,這將填補顧客需求和GUI問題之間的差距。它們類似于隨工具箱一起提供的手冊,并且具有多種益處。作為示例,這些益處包括1)即使對于非技術(shù)作者,它們也相對易于創(chuàng)作;2)它們易于在服務器上更新,因此連接的用戶能夠容易地訪問新內(nèi)容;以及
3)它們教授GUI,由此使用戶能夠?qū)鉀Q問題進行控制。
然而,幫助文檔、PSS KB文章和新聞組具有其自己的一組問題。作為示例,這些問題包括1)復雜任務需要用戶方的大量處理。用戶需要完成從每一步中所說的內(nèi)容到GUI的映射。
2)故障診斷程序,甚至是程序幫助文檔通常包括在幫助主題內(nèi)形成復雜的分支的狀態(tài)信息,從而使主題冗長且對用戶而言難以閱讀和處理??赡苋鄙俟ぞ邫?,且可能需要在可采取下一步之前打開工具欄。故障診斷程序通常會詢問關(guān)于狀態(tài)的問題,這些問題最好也是令人沮喪的(因為故障診斷程序應當能夠自己找出答案),而最差則是非專家無法回答的。
3)存在上百萬的文檔,并且搜索回答涉及從何處開始搜索、以及然后如何從所返回的上千中回答中選取最佳搜索結(jié)果這兩個問題。
4)沒有共享的創(chuàng)作結(jié)構(gòu)。新聞組公告、KB文章、故障診斷程序和程序幫助文檔都有不同的結(jié)構(gòu)和創(chuàng)作策略,然而它們解決的仍然是類似的問題。
用于解決GUI問題的另一現(xiàn)有機制是向?qū)?。向?qū)П粍?chuàng)建來解決GUI以及編寫的幫助程序的弱點。現(xiàn)在有上千種向?qū)?,且這些向?qū)Э梢栽谒谱鞯膸缀趺恳卉浖a(chǎn)品中找到。這是由于向?qū)Ы鉀Q了當前現(xiàn)有的基于文本的幫助和協(xié)助尚未解決的實際需求。它們允許用戶以面向任務的方式訪問功能,并可自動組裝GUI或工具。向?qū)г试S程序管理員和開發(fā)者具有用于解決顧客任務的手段。它們類似于困境中的專家,引領(lǐng)用戶通過必需的步驟走向任務成功。某些向?qū)椭櫩驮O(shè)置系統(tǒng)(例如,設(shè)置向?qū)?,某些向?qū)Оň哂刑卣鞯膬?nèi)容并幫助顧客創(chuàng)建內(nèi)容(例如,通訊(Newsletter)向?qū)Щ騊owerPoint的自動內(nèi)容(AutoContent)向?qū)?,而某些向?qū)椭櫩驮\斷和解決問題(例如,故障診斷程序)。
向?qū)蛴脩籼峁┝嗽S多益處。向?qū)У哪承┮嫣幨?)向?qū)Э删唧w化“任務”的概念。用戶通常清楚向?qū)г趲椭麄兺瓿墒裁?。采用逐步的頁面,用戶能夠容易地做出選擇,且在良好設(shè)計的向?qū)У那闆r下,通常降低了用戶在視覺上被淹沒的發(fā)生率。
2)向?qū)Э勺詣咏M裝軟件的底層特征并與其交互,且包括顧客做出選擇所需的信息或?qū)I(yè)知識。這節(jié)省了用戶在執(zhí)行任務時的時間。
3)向?qū)Э勺詣由蓛?nèi)容,并可通過創(chuàng)建文本和規(guī)劃布局來節(jié)省用戶時間。
4)向?qū)б彩窃儐枂栴}、獲得響應和分支到最相關(guān)的下一問題或特征的良好手段。
然而,向?qū)б簿哂衅渥约旱囊唤M問題。這些問題中的某一些包括,人們試圖完成的任務要比用于完成這些任務的向?qū)Ф唷O驅(qū)Ш虸UI(引導式用戶界面)不教導用戶如何使用底層GUI,且通常在向?qū)瓿蓵r,用戶不確定下一步去往何處。創(chuàng)作向?qū)У某杀救允歉叩?,且要求具有技術(shù)專業(yè)知識的人(例如,軟件開發(fā)者)來創(chuàng)作向?qū)А?br>
發(fā)明概述本發(fā)明通過提供一種允許創(chuàng)作上千種任務(或向?qū)?的簡便方式,并且或者與GUI集成并教導用戶如何使用GUI來執(zhí)行任務,或者代表用戶來執(zhí)行任務的內(nèi)容向?qū)?,來解決向?qū)А椭?、知識庫文章和故障診斷程序的某些問題。具體而言,本發(fā)明涉及活動內(nèi)容向?qū)?ACW)腳本的創(chuàng)作,且尤其涉及創(chuàng)作作為ACW腳本的一部分的文本。
本發(fā)明針對一種用于基于作者在用戶界面上的動作來自動生成文本文檔的系統(tǒng)。為了生成文本文檔,作者激活記錄組件。記錄組件記錄作者在用戶界面上的動作。記錄組件將所記錄的動作傳遞到文本生成組件。基于所記錄的動作的屬性(包括用戶界面控件和作者動作),文本生成組件搜索文本數(shù)據(jù)庫,并標識匹配作者的所記錄的動作的條目。該文本生成器可基于一規(guī)則體系來生成該文本。該文本然后被組合以形成向用戶提供指令或其它信息的文本文檔。在生成文本文檔的過程期間或之后,可使用編輯器編輯文本來增強文檔的易理解性。
附圖簡述
圖1是其中可使用本發(fā)明的一個示例性實施例的框圖。
圖2是示出本發(fā)明的自動文本生成系統(tǒng)的組件的框圖。
圖3是示出其上可使用本發(fā)明的圖形用戶界面的示例的屏幕截圖。
圖4是示出根據(jù)本發(fā)明的一個實施例的在文本文檔的生成和編輯期間執(zhí)行的步驟的流程圖。
圖5是示出可用于記錄的示例性顯示的屏幕截圖。
圖6是示出用于控制本發(fā)明的記錄工具的用戶界面控制元素的一個實施例的屏幕截圖。
圖7是示出本發(fā)明的突出顯示特征的屏幕截圖。
圖8是示出向創(chuàng)作者呈現(xiàn)所生成的文本以供編輯的一種方式的屏幕截圖。
圖9是更詳細示出在對所接收的命令生成自動文本期間執(zhí)行的步驟的流程圖。
說明性實施例的詳細描述本發(fā)明涉及基于用戶在用戶界面上的動作來自動生成文本。在更詳細描述本發(fā)明之前,將討論其中可使用本發(fā)明的一個示例性環(huán)境。
圖1示出了其上可實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的一個示例。計算系統(tǒng)環(huán)境100僅為合適的計算環(huán)境的一個示例,并非對本發(fā)明的使用范圍或功能提出任何局限。也不應將計算環(huán)境100解釋為對示例性操作環(huán)境100中示出的任一組件或其組合具有任何依賴或需求。
本發(fā)明可以使用眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置來操作。適用于本發(fā)明的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于個人計算機、服務器計算機、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費者電子設(shè)備、網(wǎng)絡(luò)PC、小型機、大型機、包括任一上述系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
本發(fā)明可以在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計算環(huán)境中實踐,其中,任務由通過通信網(wǎng)絡(luò)連接的遠程處理設(shè)備來執(zhí)行。在分布式計算環(huán)境中,程序模塊可位于包括記憶存儲設(shè)備的本地和遠程計算機存儲介質(zhì)中。
參考圖1,用于實現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計算機110形式的通用計算設(shè)備。計算機110的組件可包括但不限于,處理單元12O、系統(tǒng)存儲器130以及將包括系統(tǒng)存儲器的各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例而非局限,這類體系結(jié)構(gòu)包括工業(yè)標準體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強ISA(EISA)總線、視頻電子技術(shù)標準協(xié)會(VESA)局域總線以及外圍部件互連(PCI)總線,也稱為Mezzanine總線。
計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計算機110訪問的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例而非局限,計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實現(xiàn)的易失性和非易失性,可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或可以用來儲存所期望的信息并可由計算機110訪問的任一其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機制的已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指以對信號中的信息進行編碼的方式設(shè)置或改變其一個或多個特征的信號。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學、RF、紅外和其它無線介質(zhì)。上述任一的組合也應當包括在計算機可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器130包括以易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)包括如在啟動時幫助在計算機110內(nèi)的元件之間傳輸信息的基本例程,通常儲存在ROM 131中。RAM 132通常包含處理單元120立即可訪問或者當前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖1示出了操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機110也可包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作示例,圖1示出了對不可移動、非易失性磁介質(zhì)進行讀寫的硬盤驅(qū)動器141、對可移動、非易失性磁盤152進行讀寫的磁盤驅(qū)動器151以及對可移動、非易失性光盤156,如CD ROM或其它光介質(zhì)進行讀寫的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器141通常通過不可移動存儲器接口,如接口140連接到系統(tǒng)總線121,并且磁盤驅(qū)動器151和光盤驅(qū)動器155通常通過可移動存儲器接口,如接口150連接到系統(tǒng)總線121。
上文討論并在圖1示出的驅(qū)動器及其關(guān)聯(lián)的計算機存儲介質(zhì)為計算機110提供了計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖1中,示出硬盤驅(qū)動器141儲存操作系統(tǒng)144、應用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對操作系統(tǒng)144、應用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標號來說明至少它們是不同的副本。
用戶可以通過輸入設(shè)備,如鍵盤162、話筒163和定位設(shè)備161(通常指鼠標、跟蹤球或觸摸板)向計算機110輸入命令和信息。其它輸入設(shè)備(未示出)可包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但是也可以通過其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也通過接口,如視頻接口190連接至系統(tǒng)總線121。除監(jiān)視器之外,計算機也可包括其它外圍輸出設(shè)備,如揚聲器197和打印機196,它們通過輸出外圍接口195連接。
計算機110可以使用與一個或多個遠程計算機,如遠程計算機180的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠程計算機180可以是個人計算機、手持式設(shè)備、服務器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,并通常包括許多或所有相對于計算機420所描述的元件。圖1描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機110通過網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機110通常包括調(diào)制解調(diào)器172或用于通過WAN 173,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,它通過用戶輸入接口160或其它適當?shù)臋C制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機110所描述的程序模塊或其部分可儲存在遠程記憶存儲設(shè)備中。作為示例而非局限,圖1示出遠程應用程序185駐留在遠程計算機180上??梢岳斫?,示出的網(wǎng)絡(luò)連接是示例性的,也可以使用在計算機之間建立通信鏈路的其它裝置。
圖2是示出根據(jù)本發(fā)明的一個實施例的自動文本生成系統(tǒng)200的組件的框圖。文本生成系統(tǒng)200具有記錄器207和文本生成器203。記錄器207包括記錄組件210、掛鉤組件212和用戶界面(UI)自動化組件214。還可任選地提供圖像捕捉組件。文本生成器203包括文本數(shù)據(jù)庫220以及文本生成組件230。文本生成系統(tǒng)200與用戶界面205交互。作者可將系統(tǒng)200的組件配置成自動記錄在用戶界面205控件上執(zhí)行的動作,并自動生成描述這些動作的文本235。作者201還可編輯自動生成的文本235以獲得描述任務(或UI控件動作)的最終文本245。現(xiàn)在將詳細描述圖2中的多個組件。
用戶界面205在一個實施例中是具有允許用戶采取動作來執(zhí)行任務的控件的圖形用戶界面。用戶界面205被顯示在圖1所示的顯示設(shè)備191上。圖形用戶界面(GUI)是一種廣泛使用的用戶界面機制。
圖3是使出可結(jié)合本發(fā)明使用的GUI的一個示例的屏幕截圖。在本示例中,該GUI被劃分成背景部分(未示出)和窗口部分300,并包括一系列控件310??丶?10可說明性地包括列表框、按鈕、選項卡、樹形控件和列表視圖項。然而,GUI內(nèi)可存在其它類型的控件,且所示和列出的這些僅是示例。窗口部分300進一步被劃分成工具欄部分320和應用程序部分325。工具欄部分320具有被排列在可由用戶在相關(guān)聯(lián)的應用程序的正常操作期間選擇的菜單322中的一系列任務。這些菜單項可進一步包括下拉菜單或選項,并且還可使另一窗口/GUI在屏幕上彈出。
記錄組件210在一個實施例中是允許作者201或另一用戶在用戶界面205上執(zhí)行任務并記錄該任務的應用程序。當作者201正在執(zhí)行與用戶界面205上的任務相關(guān)聯(lián)的步驟時,記錄組件210記錄關(guān)于作者在用戶界面205上與哪些控件和窗口交互的信息。該信息被提供給文本生成器230以生成諸如幫助文檔等文檔中的文本。
記錄組件210通過掛鉤212和用戶界面(UI)自動化組件214與用戶界面205交互。這些組件可以與記錄組件210分離,或者在某些實施例中,這些組件可以與記錄組件210集成。
掛鉤組件212在一個實施例中是計算機使用的操作系統(tǒng)內(nèi)的模塊或組件。當為鼠標點擊設(shè)置掛鉤時,例如將鼠標點擊轉(zhuǎn)發(fā)到消耗它的掛鉤組件212,并且在由記錄組件210記錄之后,為計算機中注冊來接收鼠標點擊的其它組件回放該鼠標點擊。因此,一般而言,掛鉤組件212擔當操作系統(tǒng)和目標應用程序之間的緩沖區(qū)。掛鉤組件212可被配置成查找基本上任何輸入動作,諸如所接收的信號的類型,例如單擊、雙擊、右鍵或左鍵點擊、鍵盤動作等等。一旦記錄組件210記錄了表示動作的信息,即由掛鉤組件212向應用程序回放表示該鼠標點擊(或所記錄的任何動作)的信息。其原因之一是用戶可能在記錄第一動作之前采取了第二動作。第二動作可能導致用戶界面的狀態(tài)改變,且因此導致對第一動作的不正確記錄。通過消耗第一動作并且一旦完成之后即回放它,確保了第一動作可被正確地記錄。
還應當注意,掛鉤組件212執(zhí)行的功能(即,監(jiān)聽鼠標點擊和回放它們)說明性地在單獨的線程上執(zhí)行。這確保所有用戶界面動作(例如,鼠標點擊、鍵盤動作等)將被正確地記錄和回放而不會遺漏任何動作。此外,掛鉤組件212的記錄和回放機制可覆蓋在操作系統(tǒng)內(nèi)隱含的任何超時特征。如果操作系統(tǒng)的超時周期太短以致于不允許對動作的正確記錄,則這是必需的。
用戶界面自動化組件214說明性地是被配置成解釋由作者或用戶通過用戶界面205執(zhí)行的任務的原子步驟的計算機程序。在一個實施例中,用戶界面自動化組件214是使用微軟公司的Microsoft User Interface Automation(微軟用戶界面自動化)實現(xiàn)的GUI自動化模塊。該模塊提供了訪問關(guān)于可視用戶界面的信息并可編程地與可視用戶界面交互的編程性方式。然而,取決于系統(tǒng)設(shè)置,用戶界面自動化組件214可使用能夠可編程地導航圖形用戶界面并實現(xiàn)、執(zhí)行和檢測用戶界面上的命令的任何應用程序。
用戶界面自動化組件214因此檢測與作者201(或另一用戶)以任務的順序在用戶界面205上執(zhí)行的期望任務相關(guān)聯(lián)的每一步驟。例如,當該任務要求用戶點擊GUI上的按鈕以顯示新菜單或窗口時,UI自動化組件214確定哪一控件位于鼠標在用戶界面205上的位置上。記錄組件210使用來自掛鉤組件212的信息(例如,點擊了哪一鼠標按鍵以及鼠標光標位于用戶界面上何處)以及來自UI自動化組件214的信息(例如,控件的類型、名稱和狀態(tài))來記錄作者用于執(zhí)行該步驟的控件的名稱和屬性。由用戶界面自動化組件214確定的該信息被提供給記錄組件210,以使記錄組件210能記錄由作者用于執(zhí)行該步驟的控件的名稱、狀態(tài)和類型。
文本生成組件230是被配置成生成描述在記錄過程期間執(zhí)行或?qū)崿F(xiàn)的動作的自然語言文本的程序或模塊。文本生成組件230使用由記錄組件210所記錄的信息來從文本數(shù)據(jù)庫220中選擇一正確的模板或條目。
文本數(shù)據(jù)庫220說明性地是可由文本生成器230搜索的數(shù)據(jù)庫或其它信息存儲系統(tǒng)。文本數(shù)據(jù)庫220包含與用戶界面205上可用的控件有關(guān)的信息。該信息可包括例如控件的名稱、控件的類型、在控件上執(zhí)行的動作以及作為自然語言語句的動作的文本描述。
在某些實施例中,條目的文本描述是以多種語言提供的。當以多種語言提供文本描述時,為每一條目提供一語言標識符以允許選擇正確的語言。
然而,取決于系統(tǒng)的需求,可在文本數(shù)據(jù)庫220中提供其它信息。在一個實施例中,文本數(shù)據(jù)庫220中的某些條目具有與按序執(zhí)行的多個控件為例的兩個或多個動作有關(guān)的信息。在多個控件上的多個動作以文本數(shù)據(jù)庫220中的單個條目表示的情況下,條目的文本包含作為單個語句的對在兩個控件上執(zhí)行的動作的自然語言描述。通過將兩個命令的描述組合成單個語句,改進了最終的文本文檔的可讀性。
在一個實施例中,文本數(shù)據(jù)庫220是以可擴展標記語言(XML)來編寫的。每一條目的數(shù)據(jù)可作為一系列子條目來儲存,其中該條目的每一子條目涉及標識任務所需的一條單獨的信息。然而,可以使用其它格式來儲存數(shù)據(jù)。
在一個實施例中,文本生成組件230在文本數(shù)據(jù)庫220中搜索條目時考慮兩個或多個所記錄的動作??梢赃@樣做以提供更流暢的文本文檔。例如,良好的程序文檔通常將一個以上步驟組合成單個語句作為對可讀性的增強。如果文本生成組件230標識了文本數(shù)據(jù)庫220中匹配所記錄的信息的兩個或多個條目,則文本生成組件230可使用任何已知的方法,諸如通過基于對每一條目的評分消除條目的歧義并選擇具有最高得分的條目,來確定要選擇數(shù)據(jù)庫中的哪一條目。
根據(jù)一個實施例,基于在用戶界面上激勵的控件的類型以及所執(zhí)行的動作,文本生成組件230在文本數(shù)據(jù)庫220中搜索匹配所執(zhí)行的控件類型和動作的條目。一旦在文本數(shù)據(jù)庫220中標識了匹配,則文本生成組件230從文本數(shù)據(jù)庫220中獲得該動作的相關(guān)聯(lián)的自然語言描述,并將其作為語句指令放置在所生成的文本文檔235中。在一個替換實施例中,文本生成組件220還可基于由UI自動化模塊214提供的信息來生成文本文檔的可執(zhí)行版本。
當從文本數(shù)據(jù)庫235中選擇文本描述時,文本生成組件也可考慮控件的狀態(tài)。這在控件為復選框或可擴展或可折疊樹時是重要的。在這一情況下,僅僅點擊框可能不是描述該動作的適當動作,因為無論所期望的結(jié)果是什么,控件上的動作都是相同的。因此,在這些情況下,控件的新狀態(tài)會影響所選擇的文本。例如,如果控件是復選框且將要被取消選擇,則所匹配的文本是基于該控件的新狀態(tài)加上控件名稱。
文本編輯器240是被配置成對自動生成的文本235糾正、改變或添加信息或文本的編輯器。取決于由文本生成器230生成的所得的文本以及作者執(zhí)行的動作,可能必須編輯該文本來進一步增強其可理解性。因此,文本編輯器240接收所生成的文本235,并允許作者201編輯所生成的文本。
文本編輯例如由于語法必要性或由于所記錄的步驟之一需要用戶動作而是必需的,并且系統(tǒng)并不在記錄用戶動作時請求該用戶動作的描述。在這一情況下(當需要用戶輸入時),在根據(jù)一個實施例執(zhí)行要記錄的任務時,文本生成器235僅在文本中提供一空間以供作者提供用戶應在該步完成什么的指令/描述。
例如,假定由用戶和記錄組件執(zhí)行的任務要改變計算機屏幕上的背景面板。這要求用戶為背景選擇一個圖案。因此,文本數(shù)據(jù)庫為所記錄的改變背景的用戶動作返回的文本可以是“Please select[insert description of action]”(請選擇[插入動作的描述]),其中作者必須編輯該文本以使其成為“Please select the desired backgroundfrom the list”(請從列表中選擇期望的背景)。同樣,在編輯階段期間,如果總體任務的描述并不是在記錄任務之前提供的,則作者201可以提供該描述。一旦編輯了文本,就從創(chuàng)作工具200輸出最終文本245,并且以允許用戶在期望時檢索該最終文本的適當存儲模式來儲存該文本。
圖4是示出根據(jù)本發(fā)明的一個實施例在創(chuàng)作文本文檔期間執(zhí)行的步驟的流程圖。為討論起見,假定所編寫的文檔是幫助文檔。幫助文檔對于應用程序的用戶而言是有用的,因為它們以向用戶解釋如何執(zhí)行期望任務的書寫格式提供了協(xié)助。同樣,在圖4的流程圖的討論期間,將參考各個示例性屏幕截圖。這些屏幕截圖在圖5到8中示出。
首先,幫助文檔的作者激活記錄組件。該記錄組件類似于圖2所示的記錄組件。作者通過首先打開類似于圖5所示的窗口來激活記錄組件。此時,作者可編輯由線510和520指示的屏幕部分,以包括諸如所創(chuàng)建的文檔的標題以及關(guān)于該任務的任何介紹性信息等信息。然而,如上所述,該信息可在稍后的編輯期間被添加到文本文檔中。記錄組件的激活由步驟410示出。在這一步驟期間,還向作者顯示記錄工具。
用顯示元素600來表示記錄工具的用戶界面的一個實施例在圖6中示出。這表示記錄工具具有記錄按鈕610、停止按鈕620、用戶動作按鈕630以及文本按鈕640。通過激活記錄按鈕610,記錄組件210記錄作者(或其它用戶)在用戶界面205上的動作。當作者選擇停止按鈕620時記錄停止。如果該動作需要用戶動作,則作者選擇動作按鈕630。如果作者期望在記錄過程期間編輯文檔的文本,則作者可選擇文本按鈕640。另外,在某些實施例中,可存在一附加按鈕。該附加按鈕允許用戶設(shè)置一值。這允許當在運行時用戶必須向編輯框鍵入文本時生成正確的文本。
在開始記錄動作之前,如有需要,作者打開要為其編寫文本文檔的應用程序。然而,如果該文本文檔被設(shè)計成在應用程序的框架之外運行,則在記錄用戶界面上的動作之前不打開任何窗口。
記錄進程在作者選擇記錄工具600上的記錄按鈕610時開始。此時,UI自動化組件214確定用戶界面205上的可用功能和組件。這在圖5的步驟420處示出。記錄組件210還在用戶界面上提供關(guān)于當前哪一命令或功能被標識為使用從UI自動化組件214提供的信息來訪問的指示。該命令的這一突出顯示由圖7的參考標號710示出。
接著,作者在屏幕上執(zhí)行期望的命令。這在圖4的步驟430處示出。然后,記錄組件210使用掛鉤組件212捕捉與該命令有關(guān)的信息。這在步驟440處示出。該命令由記錄組件在圖4的步驟450處記錄。在本發(fā)明的一個實施例中,在步驟450處記錄的信息包括命令的類型加上控件的狀態(tài),以及由作者提供的輸入的類型。如上所述,該信息是從UI自動化組件214接收的。然而,在記錄過程期間可由UI自動化組件214提供其它信息。一旦記錄組件記錄了命令,掛鉤組件212即向操作系統(tǒng)傳遞、重發(fā)或重放該命令,操作系統(tǒng)將該命令發(fā)送給應用程序以在應用程序上可編程地執(zhí)行該命令。掛鉤組件212保持該命令不被傳遞到應用程序,以確保UI自動化組件214有時間將所需的信息傳遞給記錄組件。
然后,記錄組件210將所記錄的信息傳遞到文本生成組件230,以生成作為所接收命令的合適描述的文本。這在圖4的步驟460處示出。用于獲得該文本的進程的一個示例參考下文詳細描述的圖9示出。
在步驟460處為所執(zhí)行的任務的特定步驟生成文本之后,記錄組件確定是否還有其它步驟要執(zhí)行。這在步驟470處示出。在本發(fā)明的一個實施例中,這一檢查是由記錄組件210自動執(zhí)行的。例如,如果所記錄的命令的結(jié)果導致另一窗口被打開或彈出,則系統(tǒng)假定有另一步驟要記錄。在另一實施例中,除非作者從圖6所示的記錄工具中選擇停止按鈕620,否則系統(tǒng)假定有另一步驟要記錄。如果有另一步驟要執(zhí)行,則系統(tǒng)在步驟475處前進到任務中的下一步驟,并重復步驟420到470。
所生成的文本的一個示例在圖8中由參考標號820-820示出。該文本向用戶提供了期望任務的逐步指令。該文本可如對文本數(shù)據(jù)庫220和文本生成組件230描述的那樣來生成,或者可根據(jù)允許從接收的輸入命令自動生成文本的任何方法來生成。
一旦完成了所有的步驟,系統(tǒng)就進入編輯文本模式。此時,向作者201呈現(xiàn)所記錄的所有步驟和由文本生成器組件230生成的相關(guān)聯(lián)文本。作者然后在步驟480處審閱這些文本,并對文本作出任何必要的糾正。這些糾正可包括改變所生成的文本的語法結(jié)構(gòu)、向所生成的文本添加信息以提高文本的可理解性、刪除不必要的步驟、或任何其它編輯。在編輯之前顯示的文本的一個示例在圖8中示出。在一個實施例中,文本可在創(chuàng)作工具中編輯。然而,在其它實施例中,文檔的文本可在諸如Microsoft Word或Notepad等文字處理程序或帶有編輯器的任何其它程序中編輯。在圖8中,作者可能期望添加描述線830處的動作的附加信息,或者在線818處的短語“description of choice”(選擇描述)處提供所請求的信息。
一旦編輯了文本文檔,在步驟490處保存文本文檔的最終版本。文檔以允許文檔在被請求時能被容易地檢索的任何方式來保存。在一個實施例中,文本文檔被保存為在線幫助程序的一部分。在創(chuàng)作文本文檔期間,還可生成對應于所記錄的步驟的可執(zhí)行文件。
根據(jù)美國第10/337,745號中描述的方法,在一個實施例中,創(chuàng)建文檔的可執(zhí)行版本。
圖9是更詳細示出根據(jù)本發(fā)明的一個實施例被執(zhí)行來為所接收的命令生成文本的步驟的流程圖。在步驟910處,在文本生成模塊230處從記錄組件210接收與所記錄的命令有關(guān)的信息。如上所述,該信息由UI自動化組件210提供。然而,也可使用其它設(shè)備或技術(shù)來獲得與用戶界面上所選的項有關(guān)的信息。
一旦文本生成器組件接收了與命令有關(guān)的信息,文本生成器組件230即開始在文本數(shù)據(jù)庫中搜索匹配所接收的命令的條目。在一個實施例中,文本數(shù)據(jù)庫220是含有包括控件或所交互的其它項的類型、動作類型、控件的新狀態(tài)(例如,被復選、取消復選、擴展、折疊等)以及動作的文本的多個條目的XML數(shù)據(jù)庫。然而,可使用其它數(shù)據(jù)存儲方法來保存文本。此外,可在文本數(shù)據(jù)庫220中保存其它信息。根據(jù)一個實施例的文本數(shù)據(jù)庫的一部分的一個示例在以下表1中提供。
表1<EnglishTemplate actionTypeID=″value″controlTypeID=″check box″ActionText=″Select″specialValueID=″checked″>
<Sentence>Select the<tag id=″1″X/tag>checkbox</Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″invoke″controlTypeID=″button″ActionText=″Click″>
<Sentence>Click<tag id=″1″X/tag></Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″invoke″controlTypeID=″list item″ActionText=″Double-click″>
<Sentence>In the <tag id=″2″X/tag> list,double-click<tagid=″1″></tag></SentenceX/EnglishTemplate>
<EnglishTemplate actionTypeID=″expand_collapse″controlTypeID=″tree item″ActionText=″Expand″specialValueID=″expanded″>
<Sentence>Click the minus sign next to<tag id=″1″X/tag>to collapseit</Sentence></EnglishTemplate>
例如,假定從記錄組件接收的關(guān)于命令的信息是動作類型=“invoke(調(diào)用)”,控件類型=“button(按鈕)”,控件名稱=“OK”“click(點擊)”,則文本生成組件230搜索文本數(shù)據(jù)庫220并找出匹配該信息的文本。對文本的這一獲取在步驟930處示出。
在記錄所述的步驟期間,如果作者通過選擇圖6所示的用戶界面600上的用戶動作按鈕630為步驟指定了用戶動作步驟,或者如果文本數(shù)據(jù)庫220中的條目指示該動作是用戶動作,則文本生成組件230在一個實施例中能夠提示作者向所獲得的文本添加對期望動作的描述。這在步驟940處示出。作者然后可在步驟950處提供文本。然而,作者可忽略該步驟,并稍后在編輯階段添加信息。任何所添加的文本在步驟960處被添加到文本235。
如果不需要用戶動作,或者如果作者已提供了必要的用戶動作信息,則文本生成器230將所獲得的文本提供給文本文檔。這在步驟970處示出。應當注意,圖9的步驟910-970對應于圖4中的步驟460。
盡管參考具體實施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員可以認識到,可以在不脫離本發(fā)明的精神和范圍的前提下在形式和細節(jié)上作出任何改變。
權(quán)利要求
1.一種被配置成響應于用戶界面上執(zhí)行的至少一個動作來生成文本的文本生成系統(tǒng),包括被配置成記錄對應于用戶界面上的所述至少一個動作的特征的記錄組件;以及被配置成從所述記錄組件接收所述特征并基于所述特征輸出所生成的文本的文本生成組件。
2.如權(quán)利要求1所述的文本生成系統(tǒng),其特征在于,所述記錄組件被配置成從用戶界面自動化組件接收特征,所述用戶界面自動化組件被配置成標識與所述用戶界面上的每一動作相關(guān)聯(lián)的多個特征。
3.如權(quán)利要求2所述的文本生成系統(tǒng),其特征在于,所述動作是通過激勵所述用戶界面上的控件來執(zhí)行的,且其中,所述多個特征還包括控件名稱;控件類型;以及在所述控件上執(zhí)行的動作的標識。
4.如權(quán)利要求3所述的文本生成系統(tǒng),其特征在于,還包括可由所述文本生成組件搜索的文本數(shù)據(jù)庫,所述文本數(shù)據(jù)庫含有多個條目,每一條目包括與至少一個動作相關(guān)聯(lián)的文本。
5.如權(quán)利要求4所述的文本生成系統(tǒng),其特征在于,所述文本數(shù)據(jù)庫中的每一條目包括多個子條目,所述子條目包括與所述多個特征相關(guān)聯(lián)的文本;以及所執(zhí)行的動作的文本描述。
6.如權(quán)利要求5所述的文本生成系統(tǒng),其特征在于,所述動作的文本描述包括多種語言的文本描述。
7.如權(quán)利要求5所述的文本生成系統(tǒng),其特征在于,所述動作的文本描述是所述動作的自然語言文本描述。
8.如權(quán)利要求5所述的文本生成系統(tǒng),其特征在于,所述文本生成組件被配置成通過將從所述記錄組件接收的所記錄的特征與所述文本數(shù)據(jù)庫中的條目或子條目進行匹配來標識所述文本數(shù)據(jù)庫中的條目。
9.如權(quán)利要求5所述的文本生成系統(tǒng),其特征在于,所述文本生成組件響應于所述匹配輸出所述條目的文本描述。
10.如權(quán)利要求8所述的文本生成系統(tǒng),其特征在于,所述文本生成組件被配置成搜索所述文本數(shù)據(jù)庫,以通過將為動作組合所記錄的特征與所述文本數(shù)據(jù)庫中的條目進行匹配來標識匹配條目。
11.如權(quán)利要求10所述的文本生成系統(tǒng),其特征在于,所述文本生成組件被配置成從所述匹配條目輸出所述動作組合的文本描述。
12.如權(quán)利要求2所述的文本生成系統(tǒng),其特征在于,所述用戶界面自動化組件還被配置成向所述記錄組件提供與所述用戶界面上的動作相關(guān)聯(lián)的多個可執(zhí)行命令,并且其中,所述文本生成組件還被配置成基于所述可執(zhí)行命令生成所生成的文本的可執(zhí)行版本。
13.如權(quán)利要求1所述的文本生成系統(tǒng),其特征在于,還包括被配置成允許編輯所生成的文本的文本編輯組件。
14.一種生成描述在用戶界面上執(zhí)行的任務的文本的方法,包括執(zhí)行與所述任務相關(guān)聯(lián)的一系列步驟;用記錄器組件記錄所述一系列步驟中的每一個;從文本存儲中獲得與所述一系列步驟中的每一個相關(guān)聯(lián)的文本;以及從所獲得的文本中生成所述文本。
15.如權(quán)利要求14所述的方法,其特征在于,記錄所述一系列步驟中的每一個還包括接收用戶界面上可用的元素的指示;接收所述用戶界面上正被操縱的控件的指示;以及記錄與所述用戶界面上正被操縱的控件相關(guān)聯(lián)的特征。
16.如權(quán)利要求15所述的方法,其特征在于,記錄特征還包括以給定狀態(tài)保持所述用戶界面直到記錄了所述特征;以及然后在所述用戶界面上執(zhí)行所述命令。
17.如權(quán)利要求15所述的方法,其特征在于,所述用戶界面上可用的元素的指示以及正被操縱的控件的指示是從用戶界面自動化組件接收的。
18.如權(quán)利要求17所述的方法,其特征在于,還包括生成所生成的文本的可執(zhí)行版本。
19.如權(quán)利要求16所述的方法,其特征在于,所述用戶界面自動化組件還向所述文本生成組件提供可執(zhí)行信息。
20.如權(quán)利要求14所述的方法,其特征在于,還包括編輯所生成的文本。
21.如權(quán)利要求14所述的方法,其特征在于,從所述文本存儲獲得文本包括從所述記錄組件接收與所述一系列步驟中的一個相關(guān)聯(lián)的所記錄的特征的指示;以及在所述文本存儲中搜索匹配所接收的特征的條目;以及從所述匹配條目中檢索文本描述。
22.如權(quán)利要求21所述的方法,其特征在于,從所述文本存儲獲得文本還包括從所述記錄組件接收與至少兩個步驟相關(guān)聯(lián)的所記錄的特征的標識;在所述文本存儲中搜索匹配所述至少兩個步驟的條目;以及為所述匹配條目提供文本輸出。
23.如權(quán)利要求21所述的方法,其特征在于,生成文本還包括確定所述步驟之一是否需要用戶輸入;以及如果是,則連同從所述文本存儲獲得的文本一起提供所述用戶輸入的描述。
24.一種包含計算機可執(zhí)行指令的計算機可讀介質(zhì),當所述指令被執(zhí)行時,使計算機執(zhí)行如權(quán)利要求14到23中任一項所述的方法。
全文摘要
文本生成器(200)基于作者(201)在用戶界面(205)上的動作自動生成文本文檔(235、245)。為生成文本文檔(235),作者(201)激活記錄組件(210)。記錄組件(210)記錄作者在用戶界面(205)上的動作?;谒涗浀膭幼?,文本生成組件(230)搜索文本數(shù)據(jù)庫(220),并標識匹配作者的所記錄的動作的條目。該文本然后被組合以形成向用戶提供指令或其它信息的文本文檔(235)。在生成文本文檔(235、245)的過程期間,在需要時可使用編輯器(240)來編輯文本,諸如用于增強文檔(235、245)的可理解性。
文檔編號G06F9/06GK1973256SQ200480043312
公開日2007年5月30日 申請日期2004年7月8日 優(yōu)先權(quán)日2004年7月8日
發(fā)明者A·芭拉, A·J·麥克格林奇, J·D·雅各布, H-W·弘, S·森 申請人:微軟公司