專利名稱:語(yǔ)義畫布的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自然語(yǔ)言處理,尤其涉及圖形用戶界面中的自然語(yǔ)言輸入和圖形用戶輸入的同步。
背景技術(shù):
圖形用戶界面(GUI)應(yīng)用程序在大多數(shù)任務(wù)中表現(xiàn)良好,這部分是因?yàn)镚UI提供直接與應(yīng)用程序中可用的功能相關(guān)的選項(xiàng),且用戶從中可以選擇他/她想要做的事。然而,GUI應(yīng)用程序有時(shí)是難以使用的。例如,在某些實(shí)例中,功能要求打開(kāi)眾多子對(duì)話框,這對(duì)用戶可能不是直觀的。另外,需要多個(gè)步驟來(lái)使用合適的信息填寫GUI元素。GUI元素可以包括下拉式或者彈出式菜單、復(fù)選框、單選按鈕、文本或其它類型的數(shù)據(jù)輸入字段等。而且,用戶可能不知道在GUI內(nèi)的何處可找到可用的選項(xiàng)。使用小型設(shè)備(諸如,手持式設(shè)備、個(gè)人數(shù)字助理、具有連網(wǎng)功能的無(wú)線電話等)向GUI輸入信息可能是困難的。最后,殘疾人難以例如導(dǎo)航并完成GUI表單。
為了克服與GUI相關(guān)聯(lián)的某些限制,開(kāi)發(fā)了自然語(yǔ)言應(yīng)用程序,它能夠允許用戶容易地表達(dá)在GUI中可能相當(dāng)復(fù)雜的概念。例如,在自然語(yǔ)言中,用戶可以請(qǐng)求“找到我上周發(fā)給Bill的所有電子郵件”、“將屏幕分辨率改為1280×1024”、“哪里有關(guān)于微軟公司的網(wǎng)頁(yè)”、“請(qǐng)刪除所有未讀電子郵件”等。每一這樣的話語(yǔ)是可容易理解的,但是在完成GUI表單時(shí)增加了復(fù)雜性的多個(gè)層次。
然而,存在關(guān)于NL應(yīng)用程序的某些問(wèn)題,諸如可發(fā)現(xiàn)性、混淆、僵局以及訓(xùn)練問(wèn)題??砂l(fā)現(xiàn)性指的是其中用戶不知道他/她在程序中能夠做的事的情形?;煜傅氖钱?dāng)用戶不明白應(yīng)用程序如何解釋特定的文本輸入時(shí)產(chǎn)生的問(wèn)題。僵局指的是軟件程序不向用戶提供選項(xiàng)或機(jī)制以改變他/她想要的東西。最后,不存在訓(xùn)練用戶如何利用NL輸入的機(jī)制。
對(duì)改進(jìn)的用戶-程序交互的直觀的用戶界面存在迫切的需求。本發(fā)明的實(shí)施例提供了對(duì)這些或其它問(wèn)題的解決方案,并提供了超過(guò)現(xiàn)有語(yǔ)義創(chuàng)作工具的優(yōu)點(diǎn)。
發(fā)明內(nèi)容
一種用于同步自然語(yǔ)言輸入元素和圖形用戶界面的系統(tǒng)含有同步引擎。該同步引擎適用于監(jiān)視用戶與自然語(yǔ)言輸入和圖形用戶界面的交互,并響應(yīng)于用戶交互來(lái)同步自然語(yǔ)言輸入元素和圖形用戶界面。
圖1是可在其中實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算系統(tǒng)環(huán)境的圖示。
圖2是根據(jù)本發(fā)明的實(shí)施例用于同步自然語(yǔ)言和GUI輸入的系統(tǒng)的簡(jiǎn)化框圖。
圖3是根據(jù)本發(fā)明的實(shí)施例用于同步自然語(yǔ)言和GUI輸入的系統(tǒng)的一部分的展開(kāi)的簡(jiǎn)化框圖。
圖4是示出根據(jù)本發(fā)明的實(shí)施例用于同步GUI和自然語(yǔ)言輸入的方法的簡(jiǎn)化流程圖。
圖5是根據(jù)本發(fā)明的實(shí)施例使用自然語(yǔ)言輸入和GUI輸入元素的Find應(yīng)用程序的屏幕截圖,其中某些GUI元素是從自然語(yǔ)言輸入中自動(dòng)構(gòu)造的。
圖6是根據(jù)本發(fā)明的實(shí)施例使用自然語(yǔ)言輸入和GUI輸入元素的Find應(yīng)用程序的屏幕截圖,其中輸入行是基于所選擇的GUI元素更新的。
圖7是根據(jù)本發(fā)明的實(shí)施例在通過(guò)所選擇的GUI元素添加了“From(來(lái)自)”條件后的圖6的Find應(yīng)用程序的屏幕截圖。
圖8是根據(jù)本發(fā)明的實(shí)施例在通過(guò)所選擇的GUI元素添加了日期條件后的圖7的Find應(yīng)用程序的屏幕截圖。
圖9是根據(jù)本發(fā)明的實(shí)施例在通過(guò)所選擇的GUI元素添加了“carbon copy(抄送)”條件后,并在執(zhí)行查詢后的圖7的Find應(yīng)用程序的屏幕截圖。
具體實(shí)施例方式
根據(jù)本發(fā)明的實(shí)施例,一種同步引擎將用戶界面的GUI元素(諸如復(fù)選框、下拉式菜單、單選按鈕、文本字段等)與用戶界面的自然語(yǔ)言文本輸入同步。具體地,該同步引擎監(jiān)視用戶與自然語(yǔ)言文本輸入字段的交互,并且如果檢測(cè)到用戶界面的改變,作為響應(yīng)使用對(duì)應(yīng)的GUI元素來(lái)更新用戶界面。類似地,如果檢測(cè)到對(duì)GUI元素的改變,該同步更新自然語(yǔ)言文本。
通過(guò)將GUI元素與自然語(yǔ)言文本輸入同步,或者反之,用戶接收到關(guān)于所選擇的輸入的即時(shí)反饋。GUI元素和自然語(yǔ)言輸入之間的關(guān)系提供了一種直觀的訓(xùn)練機(jī)制,借此用戶通過(guò)視覺(jué)反饋能夠知道應(yīng)用程序如何操作。
圖1示出了可在其上實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境100只是合適的計(jì)算環(huán)境的一個(gè)示例,并不旨在對(duì)本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該把計(jì)算環(huán)境100解釋為對(duì)示例性操作環(huán)境100中示出的任一組件或其組合有任何依賴性或要求。
本發(fā)明可用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來(lái)操作。適合在本發(fā)明中使用的公知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、電話系統(tǒng)、包含上述系統(tǒng)或設(shè)備中的任一個(gè)的分布式計(jì)算機(jī)環(huán)境等。
本發(fā)明可在諸如由計(jì)算機(jī)執(zhí)行的程序模塊等的計(jì)算機(jī)可執(zhí)行指令的通用語(yǔ)境下描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、擴(kuò)展的ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能夠被計(jì)算機(jī)110訪問(wèn)的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例,而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動(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ī)110訪問(wèn)的任何其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”指的是這樣一種信號(hào),其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無(wú)線介質(zhì),諸如聲學(xué)、RF、紅外線和其它無(wú)線介質(zhì)。上述中任一個(gè)的組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括易失性或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),諸如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132。基本輸入/輸出系統(tǒng)133(BIOS)包含有助于諸如啟動(dòng)時(shí)在計(jì)算機(jī)110中元件之間傳遞信息的基本例程,它通常存儲(chǔ)在ROM131中。RAM132通常包含處理單元120可以立即訪問(wèn)和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可以包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作為示例,圖1示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動(dòng)器141,從可移動(dòng)、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動(dòng)器151,以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤156中讀取或向其寫入的光盤驅(qū)動(dòng)器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動(dòng)器141通常由不可移動(dòng)存儲(chǔ)器接口,諸如接口140連接至系統(tǒng)總線121,磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常由可移動(dòng)存儲(chǔ)器接口,諸如接口150連接至系統(tǒng)總線121。
以上描述和在圖1中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤驅(qū)動(dòng)器141被示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標(biāo)注了不同的標(biāo)號(hào)是為了說(shuō)明至少它們是不同的副本。
用戶可以通過(guò)輸入設(shè)備,諸如鍵盤162、麥克風(fēng)163和定點(diǎn)設(shè)備161(諸如鼠標(biāo)、跟蹤球或觸摸墊)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可以包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻接口190連接至系統(tǒng)總線121。除監(jiān)視器以外,計(jì)算機(jī)也可以包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器197和打印機(jī)196,它們可以通過(guò)輸出外圍接口195連接。
計(jì)算機(jī)110可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接在網(wǎng)絡(luò)化環(huán)境下操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、手持式設(shè)備、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對(duì)于計(jì)算機(jī)110描述的許多或所有元件,盡管在圖1中只示出存儲(chǔ)器存儲(chǔ)設(shè)備181。圖1中所示邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見(jiàn)的。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連接至局域網(wǎng)171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或用于通過(guò)諸如因特網(wǎng)等WAN173建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,它可以通過(guò)用戶輸入接口160或其它合適的機(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)110所描述的程序模塊或其部分可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例,而非限制,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181上。可以理解,所示的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的同步(語(yǔ)義畫布(semantic canvas))系統(tǒng)200的簡(jiǎn)化框圖。同步系統(tǒng)200含有在自然語(yǔ)言(NL)輸入元素204和圖形用戶界面(GUI)206之間通信地耦合的同步引擎202。一般而言,NL輸入元素204是適用于接收文本串或語(yǔ)音輸入的元素。NL輸入元素204允許用戶鍵入或輸入(諸如通過(guò)說(shuō)話)完整或部分句子或意圖中的數(shù)據(jù),諸如“找出我上周發(fā)給Joe的所有電子郵件(find all emails that I sent to Joe last week)”。NL輸入元素204可以是用于接受這樣的用戶輸入的任何機(jī)制。NL輸入元素204可以包括語(yǔ)音-文本功能(未示出),且可以適用于接收語(yǔ)音輸入并將這樣的輸入數(shù)字化為文本。GUI206包括一個(gè)或多個(gè)功能性元素(諸如下拉式菜單、文本字段、復(fù)選框、應(yīng)用程序域內(nèi)的字段等)。GUI206允許用戶從GUI內(nèi)部的對(duì)象來(lái)明確地建立他或她的意圖。例如,對(duì)于找出上周Bill發(fā)給Joe的所有電子郵件的意圖,用戶可以利用GUI206在尋找的項(xiàng)下面選擇“電子郵件(email)”。用戶然后可以使用GUI206來(lái)添加一個(gè)條件,諸如“發(fā)給(sent to)”,并添加“Joe”作為該條件值。最后,用戶可以添加另一個(gè)條件,諸如“發(fā)送日期(date sent)”等。一般而言,GUI206和NL輸入元素204適用于執(zhí)行相同的功能,諸如尋找功能。用戶可以通過(guò)選擇GUI206的一個(gè)或多個(gè)功能性元素并輸入適當(dāng)?shù)臈l件信息,或者通過(guò)向NL輸入元素204輸入查詢來(lái)找出例如位于計(jì)算機(jī)硬盤上的對(duì)象或?qū)嶓w。
同步引擎202是適用于響應(yīng)NL輸入行204中的變化并相應(yīng)地更新GUI206的模塊。同步引擎202也適用于響應(yīng)GUI中的變化并更新NL輸入行以反映用戶鍵入的內(nèi)容。同步引擎202利用NL重述引擎208將所選擇的GUI206的功能性元素轉(zhuǎn)換成NL輸入元素204中的自然語(yǔ)言文本輸入。同步元素202利用語(yǔ)義引擎210將來(lái)自NL輸入元素204的自然語(yǔ)言輸入轉(zhuǎn)化為GUI206中的功能性元素。同步引擎202適用于監(jiān)視NL輸入元素204中的數(shù)據(jù)的變化或者GUI206的所選功能性元素的變化,并且使用適當(dāng)?shù)淖兓铝硪粋€(gè)元素,使得NL輸入元素204和GUI206被同步。
語(yǔ)義畫布系統(tǒng)200的功能性元素可以在單個(gè)應(yīng)用程序內(nèi)實(shí)現(xiàn)(如由虛線212所指示)?;蛘?,語(yǔ)義畫布系統(tǒng)200的功能性元素可以在一個(gè)以上應(yīng)用程序中實(shí)現(xiàn)并適用于通信以提供同步。
一般而言,對(duì)NL輸入元素204的NL輸入可以是任何可辨識(shí)的形式。在一實(shí)施例中,NL輸入元素204適用于接收文本或語(yǔ)音輸入。如此處所使用的,術(shù)語(yǔ)“NL輸入”指的是自然語(yǔ)言格式的任何數(shù)據(jù)輸入。如此處所使用的,術(shù)語(yǔ)“自然語(yǔ)言”指的是與人正常說(shuō)話的方式并行的輸入,這與計(jì)算機(jī)語(yǔ)言、人工語(yǔ)言或者受約束或受控詞匯相反。如此處所使用的,術(shù)語(yǔ)“文本輸入”、“NL輸入”和“語(yǔ)音輸入”可以被理解為關(guān)于對(duì)NL輸入元素204的輸入是可互換的。
圖3是根據(jù)本發(fā)明的實(shí)施例的同步系統(tǒng)300的一部分的展開(kāi)的框圖。在該實(shí)現(xiàn)中,同步引擎的基礎(chǔ)語(yǔ)義被轉(zhuǎn)化為查詢句法,諸如SQL,命中數(shù)據(jù)庫(kù)并返回結(jié)果。然而,應(yīng)用程序可能以任何數(shù)量的方式,或者直接從GUI,直接從NL輸入,或者從某些中間表示來(lái)執(zhí)行任務(wù)或搜索。
同步系統(tǒng)300含有在NL輸入304和GUI306之間通信地耦合的同步引擎302。另外,同步引擎302被通信地耦合至執(zhí)行引擎308和數(shù)據(jù)存儲(chǔ)310。執(zhí)行引擎308基于NL輸入304的文本輸入或者GUI306的功能性元素選擇對(duì)數(shù)據(jù)存儲(chǔ)310中的數(shù)據(jù)執(zhí)行操作,并將結(jié)果返回至用戶界面的結(jié)果區(qū)域312。
NL輸入304允許用戶鍵入他/她的意圖(諸如“找出來(lái)自Bob的所有電子郵件(Find all email from Bob)”)。NL輸入304在發(fā)生變化時(shí)通知同步引擎302。GUI306允許用戶通過(guò)諸如下拉式菜單等功能性元素手動(dòng)地建立或改變他/她的意圖。GUI306在發(fā)生變化時(shí)通知同步引擎。同步引擎302適用于當(dāng)用戶在NL輸入304中輸入文本時(shí)自動(dòng)建立GUI306中的功能性元素。同步引擎302也適用于響應(yīng)于GUI306中的變化自動(dòng)更新NL輸入304中的文本。在任一情況下,同步引擎302向相應(yīng)的元素(NL輸入304或GUI306)通知變化。
這樣,同步引擎302充分利用GUI306和NL輸入304的力量,同時(shí)克服了兩者的限制。在NL輸入304和GUI306之間,在用戶界面中實(shí)現(xiàn)的同步系統(tǒng)300提供了機(jī)制以容易地允許用戶表達(dá)他或她想要做的內(nèi)容、顯示他/她已經(jīng)在GUI306或NL輸入304中完成的內(nèi)容、以及改變兩者中的任一位置的表達(dá)。系統(tǒng)300提供了用于內(nèi)建訓(xùn)練和可發(fā)現(xiàn)性的裝置。
在一實(shí)施例中,執(zhí)行引擎308由同步引擎302通知變化。執(zhí)行引擎308構(gòu)造例如類似于SQL的查詢,并從存儲(chǔ)310中取回結(jié)果。執(zhí)行引擎308然后將結(jié)果傳送給結(jié)果區(qū)域312(或者應(yīng)用程序)用于顯示。
該方法的一種實(shí)現(xiàn)將同步引擎302中的基礎(chǔ)語(yǔ)義轉(zhuǎn)化為諸如SQL等查詢句法、命中數(shù)據(jù)庫(kù)310、并將結(jié)果返回至顯示區(qū)域312。
可以使用語(yǔ)義引擎以及創(chuàng)作的方案和注解集來(lái)有效地實(shí)現(xiàn)同步引擎?;蛘?,應(yīng)用程序可以實(shí)現(xiàn)用于在NL和GUI以及反向之間轉(zhuǎn)換的所有邏輯。
圖4是根據(jù)本發(fā)明的實(shí)施例同步GUI和用戶界面的自然語(yǔ)言文本輸入的方法的簡(jiǎn)化框圖。同步引擎監(jiān)視GUI和自然語(yǔ)言文本輸入的變化(框400)。如果不存在變化(框402),那么同步引擎繼續(xù)監(jiān)視GUI和自然語(yǔ)言文本輸入,直到檢測(cè)到變化。如果檢測(cè)到的變化不是對(duì)于NL輸入的(框404),那么同步引擎將變化從GUI傳送給重述引擎(框406)。重述引擎公式化NL輸入短語(yǔ)(框408)。同步引擎然后使用公式化的NL輸入短語(yǔ)更新自然語(yǔ)言輸入(框410)。同步引擎然后繼續(xù)監(jiān)視NL輸入和GUI的變化(框400)。
如果檢測(cè)到的變化是針對(duì)NL輸入的(框404),那么同步引擎將變化從NL輸入傳送給語(yǔ)義引擎(框412)。語(yǔ)義引擎將語(yǔ)義解答轉(zhuǎn)化為GUI的對(duì)象(框414)。同步引擎使用轉(zhuǎn)化的NL輸入短語(yǔ)更新GUI(框416)。同步引擎然后繼續(xù)監(jiān)視NL輸入和GUI的變化(框400)。
圖5是使用自然語(yǔ)言輸入元素502和含有諸如下拉式菜單506、文本字段508、復(fù)選框510以及按鍵512等輸入元素或GUI對(duì)象的GUI 504的Find應(yīng)用程序500的屏幕截圖。根據(jù)本發(fā)明的實(shí)施例,某些GUI對(duì)象(506-512)是根據(jù)對(duì)于自然語(yǔ)言輸入元素502的自然語(yǔ)言輸入來(lái)自動(dòng)構(gòu)造的。在該實(shí)例中,用戶已經(jīng)在NL輸入502鍵入“find all emails from Joe sent last week(找出上周由Joe發(fā)送的所有電子郵件)”,且同步引擎使用反映用戶鍵入內(nèi)容的多個(gè)GUI對(duì)象506-512來(lái)更新GUI。同步引擎(結(jié)合語(yǔ)義引擎)將對(duì)象的類型(type of object)設(shè)為“email(電子郵件)”。另外,同步引擎建立了兩個(gè)條件“from(來(lái)自)”被設(shè)為“Joe”,以及“receiveddate(接收日期)”被設(shè)為與正確的日期范圍相等。這樣,同步引擎允許用戶精確地看到NL輸入是如何被處理的,以及應(yīng)用程序是如何解釋輸入的。
圖6-8描繪了一種替換方法,其中僅使用GUI建立用戶的意圖,且同步系統(tǒng)包括對(duì)應(yīng)于GUI的NL輸入。圖6中,F(xiàn)ind應(yīng)用程序600包括NL輸入字段602和GUI604。用戶從下拉式列表606中選擇“email(電子郵件)”。在選擇“email”之后,同步引擎自動(dòng)使用詞“email”更新NL輸入字段602,因?yàn)橛脩粢呀?jīng)鍵入“email”來(lái)創(chuàng)建相同的意圖?;蛘?,在選擇“email”之后,用戶可以點(diǎn)擊按鍵612,從而使同步引擎更新NL輸入字段602。一旦用戶作出了選擇,應(yīng)用程序600添加附加的GUI對(duì)象610(在此實(shí)例中,為下拉式菜單)以供用戶另外選擇。
圖7是圖6的Find應(yīng)用程序添加了第一條件之后的屏幕截圖。應(yīng)用程序700包括NL輸入字段702和GUI704。用戶從對(duì)象類型(type of object)下拉式列表706中選擇“email”?;谠撨x擇,GUI704可以顯示一個(gè)或多個(gè)條件選項(xiàng),諸如“To(到)”、“from(來(lái)自)”“Received Date(接收日期)”等。或者,用戶可以使用下拉式菜單712來(lái)選擇條件選項(xiàng)或其它輸入元素。在此實(shí)例中,用戶使用下拉式菜單712選擇“from”,且應(yīng)用程序700自動(dòng)地或者基于用戶與按鍵714的交互向GUI704添加復(fù)選框708和相關(guān)聯(lián)的文本字段710。用戶在文本字段710中輸入詞“Joe”。從而,同步引擎使用所選擇的GUI對(duì)象的NL表示更新NL輸入字段702,得到GUI704的NL解釋為“email from Joe(來(lái)自Joe的電子郵件)”。
圖8是圖7的Find應(yīng)用程序添加了日期條件之后的屏幕截圖。應(yīng)用程序800包括NL輸入字段802和GUI804。用戶從對(duì)象類型(type of object)下拉式列表806中選擇“email”?;谠撨x擇,GUI804顯示一個(gè)或多個(gè)條件選項(xiàng),諸如“To”、“from”“Received Date”等,或者用戶從下拉式菜單812中選擇條件選項(xiàng)。應(yīng)用程序800或者是自動(dòng)的,或者基于用戶與按鍵814的交互。應(yīng)用程序向GUI804添加復(fù)選框808和相關(guān)聯(lián)的輸入字段810。在該實(shí)例中,用戶使用下拉式菜單812選擇了第二個(gè)條件選項(xiàng),得到日期復(fù)選框816和相關(guān)聯(lián)的數(shù)據(jù)字段818。用戶選擇一個(gè)或多個(gè)選項(xiàng),并填寫相關(guān)聯(lián)的字段。在替換實(shí)施例中,相關(guān)聯(lián)字段818可以是具有諸如“yesterday(昨天)”、“l(fā)ast week(上周)”、“l(fā)ast month(上個(gè)月)”等的各種數(shù)據(jù)選項(xiàng)的下拉式菜單。同步引擎使用GUI804的所選元素806和808的自然語(yǔ)言解釋來(lái)更新NL輸入字段802,得到“email from Joe received in the lastweek(上周從Joe接收的電子郵件)”。
重要的是注意,存在使用自然語(yǔ)言表示相同的概念的眾多方式。在任何自然語(yǔ)言輸入中存在固有的二義性,這必須由語(yǔ)義引擎(在此實(shí)例中,為同步引擎)用合理的確定性來(lái)解決。
圖9是示出通過(guò)GUI元素添加了“carbon copy(抄送)”條件之后使用Find應(yīng)用程序900的不同的搜索的屏幕截圖。應(yīng)用程序900包括NL輸入902和GUI904。用戶從GUI對(duì)象下拉式列表906中選擇“email”。用戶然后可以使用下拉式菜單916選擇一個(gè)或多個(gè)條件選項(xiàng),下拉式菜單916基于上下文提供選擇選項(xiàng)。例如,因?yàn)橛脩暨x擇了“email”,因此條件選項(xiàng)包括與電子郵件相關(guān)聯(lián)的應(yīng)用程序元素,諸如“To”、“from”“Received Date”等。用戶選擇選項(xiàng)中的一個(gè)或多個(gè)(在此實(shí)例中,使用下拉式菜單916選擇“from”和“CC(抄送)”),使應(yīng)用程序分別添加所選擇的GUI908和912及其相關(guān)聯(lián)的輸入字段910和914。用戶填寫相關(guān)聯(lián)的字段910和914。同步引擎使用所選GUI元素908和912及其相關(guān)聯(lián)的輸入字段910和914的自然語(yǔ)言解釋來(lái)更新NL輸入字段902。在此實(shí)例中,應(yīng)用程序900可以例如與執(zhí)行引擎(諸如圖3的執(zhí)行引擎308)交互,執(zhí)行引擎基于用戶的輸入執(zhí)行搜索。執(zhí)行引擎搜索數(shù)據(jù)庫(kù)并返回一結(jié)果列表,用于在應(yīng)用程序900的顯示區(qū)域920中顯示。顯示區(qū)域920可以使用一找到的項(xiàng)的列表922來(lái)填充。在“找出由Jonas抄送給Tom的所有電子郵件(find all emails from Jonas CC Tom)”的情況下,應(yīng)用程序應(yīng)該顯示Jonas發(fā)送的Tom通過(guò)“抄送(cc)”復(fù)制的所有電子郵件。在該實(shí)例中,僅存在符合這些標(biāo)準(zhǔn)的三封電子郵件。
盡管上述討論主要集中在獨(dú)立類型的應(yīng)用程序,但應(yīng)該理解,可以在更大的應(yīng)用程序中結(jié)合該同步特征。GUI對(duì)象與自然語(yǔ)言輸入的同步向用戶提供了對(duì)應(yīng)用程序如何解釋自然語(yǔ)言的理解。另外,同步特征用作用于訓(xùn)練用戶關(guān)于應(yīng)用程序內(nèi)的可用選項(xiàng)的裝置。最后,同步用作檢錯(cuò)特征,以允許用戶糾正查詢中的差錯(cuò),這些差錯(cuò)由應(yīng)用程序?qū)τ脩暨x擇的解釋而變得顯而易見(jiàn)。該即時(shí)反饋不僅向用戶更直觀地呈現(xiàn)了應(yīng)用程序,而且通過(guò)糾正用戶可能否則沒(méi)有意識(shí)到的錯(cuò)誤解釋來(lái)允許用戶變得更有效率。
盡管本發(fā)明是相對(duì)于特定實(shí)施例來(lái)描述的,但是本領(lǐng)域的技術(shù)人員應(yīng)該認(rèn)識(shí)到,可以在形式和細(xì)節(jié)上進(jìn)行修改而不背離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于同步自然語(yǔ)言輸入元素和圖形用戶界面的系統(tǒng),包括同步引擎,適用于監(jiān)視用戶與自然語(yǔ)言輸入元素和圖形用戶界面的交互,并響應(yīng)于所述用戶交互同步所述自然語(yǔ)言輸入元素和所述圖形用戶界面。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括語(yǔ)義引擎,適用于將所述自然語(yǔ)言輸入映射至所述圖形用戶界面,其中,所述同步引擎響應(yīng)于所述自然語(yǔ)言輸入元素中的變化使用所映射的對(duì)象更新圖形用戶界面。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括重述引擎,適用于組成表示所述圖形用戶界面的變化對(duì)象的自然語(yǔ)言輸入,其中,所述同步引擎響應(yīng)于每一變化,使用所組成的自然語(yǔ)言輸入更新所述自然語(yǔ)言輸入元素。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括執(zhí)行引擎,適用于基于對(duì)索書號(hào)自然語(yǔ)言輸入元素或?qū)λ鰣D形用戶界面中的所選對(duì)象的變化,在數(shù)據(jù)存儲(chǔ)上執(zhí)行操作。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述操作包括查詢,且其中,所述執(zhí)行引擎適用于基于所述用戶交互檢索存儲(chǔ)的數(shù)據(jù),以及根據(jù)檢索到的數(shù)據(jù)在所述系統(tǒng)的顯示區(qū)域中顯示結(jié)果列表。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述同步引擎適用于根據(jù)所述用戶交互,基本上同時(shí)地同步所述自然語(yǔ)言輸入元素和所述圖形用戶界面內(nèi)的對(duì)應(yīng)對(duì)象。
7.一種用于同步自然語(yǔ)言輸入和圖形用戶界面內(nèi)的GUI對(duì)象的方法,所述方法包括監(jiān)視輸入元素和所述圖形用戶界面的用戶交互;以及自動(dòng)同步所述輸入元素和所述圖形用戶界面,使得所述輸入元素的自然語(yǔ)言輸入和所述圖形用戶界面的GUI對(duì)象對(duì)應(yīng)。
8.如權(quán)利要求7所述的方法,其特征在于,所述GUI對(duì)象包括與系統(tǒng)特征相關(guān)聯(lián)的圖形元素。
9.如權(quán)利要求7所述的方法,其特征在于,所述監(jiān)視步驟包括檢測(cè)用戶與所述圖形用戶界面或所述輸入元素的交互。
10.如權(quán)利要求9所述的方法,其特征在于,所述同步步驟包括響應(yīng)于檢測(cè)到的用戶交互,編程地修改所述圖形用戶界面或所述輸入元素。
11.如權(quán)利要求7所述的方法,其特征在于,如果用戶與所述輸入元素交互,那么所述同步步驟包括將所述輸入元素的自然語(yǔ)言輸入映射至一個(gè)或多個(gè)GUI對(duì)象;以及修改所述圖形用戶界面以包括被映射至所述自然語(yǔ)言輸入的所述一個(gè)或多個(gè)GUI元素。
12.如權(quán)利要求7所述的方法,其特征在于,如果用戶與所述圖形用戶界面交互,那么所述同步步驟包括向自然語(yǔ)言文本重述所述圖形用戶界面的GUI對(duì)象;以及修改所述輸入元素的自然語(yǔ)言輸入以反映重述的自然語(yǔ)言文本。
13.如權(quán)利要求7所述的方法,其特征在于,還包括基于所述自然語(yǔ)言輸入或者所述圖形用戶界面的GUI對(duì)象,在數(shù)據(jù)上執(zhí)行操作;以及將一個(gè)或多個(gè)結(jié)果返回給系統(tǒng)用于向用戶顯示。
14.如權(quán)利要求7所述的方法,其特征在于,所述系統(tǒng)包括用于在計(jì)算系統(tǒng)上執(zhí)行的計(jì)算機(jī)可讀指令。
15.如權(quán)利要求7所述的方法,其特征在于,所述同步步驟包括如果所述自然語(yǔ)言輸入根據(jù)所述用戶交互變化,那么將所述自然語(yǔ)言輸入映射至與系統(tǒng)相關(guān)聯(lián)的GUI對(duì)象;以及更改所述圖形用戶界面以包括所映射的GUI對(duì)象。
16.如權(quán)利要求7所述的方法,其特征在于,所述同步步驟包括如果所述GUI對(duì)象基于所述用戶交互變化,那么組成基于GUI對(duì)象的自然語(yǔ)言輸入;以及更改所述自然語(yǔ)言輸入以包括所組成的自然語(yǔ)言輸入。
17.一種用戶界面,包括自然語(yǔ)言輸入元素,適用于接收自然語(yǔ)言輸入;圖形用戶界面,具有適用于對(duì)應(yīng)用程序域建模并響應(yīng)用戶交互的一個(gè)或多個(gè)對(duì)象;以及同步引擎,適用于同步所述自然語(yǔ)言輸入元素的自然語(yǔ)言輸入和所述圖形用戶界面的一個(gè)或多個(gè)對(duì)象。
18.如權(quán)利要求17所述的用戶界面,其特征在于,所述同步引擎包括語(yǔ)義引擎,適用于將來(lái)自所述自然語(yǔ)言輸入元素的自然語(yǔ)言輸入映射至所述圖形用戶界面的一個(gè)或多個(gè)對(duì)象,其中,所述同步引擎適用于使用一個(gè)或多個(gè)映射的對(duì)象來(lái)更新所述圖形用戶界面。
19.如權(quán)利要求17所述的用戶界面,其特征在于,所述同步引擎包括重述引擎,適用于組成表示所述GUI的一個(gè)或多個(gè)對(duì)象的自然語(yǔ)言輸入,其中,所述同步引擎適用于使用所組成的自然語(yǔ)言輸入來(lái)更新所述NL輸入。
20.如權(quán)利要求17所述的用戶界面,其特征在于,所述自然語(yǔ)言輸入包含語(yǔ)音輸入。
21.如權(quán)利要求17所述的用戶界面,其特征在于,還包括執(zhí)行引擎,它耦合至所述自然語(yǔ)言輸入元素和所述圖形用戶界面,并適用于響應(yīng)于用戶交互與一個(gè)或多個(gè)文件交互。
22.如權(quán)利要求17所述的用戶界面,其特征在于,所述同步引擎適用于監(jiān)視所述自然語(yǔ)言輸入元素和所述圖形用戶界面的用戶交互。
全文摘要
一種用于同步自然語(yǔ)言輸入元素和圖形用戶界面的系統(tǒng)含有同步引擎。該同步引擎適用于監(jiān)視用戶與自然語(yǔ)言輸入和圖形用戶界面的交互,并響應(yīng)于用戶交互來(lái)同步自然語(yǔ)言輸入元素和圖形用戶界面。
文檔編號(hào)G06F3/038GK1790326SQ20051012503
公開(kāi)日2006年6月21日 申請(qǐng)日期2005年11月15日 優(yōu)先權(quán)日2004年12月14日
發(fā)明者C·C·麥克康奈爾, D·當(dāng)森, J·巴克魯?shù)? S·W·艾科曼, T·M·萊瑞德-麥克康奈爾, W·D·拉姆瑟 申請(qǐng)人:微軟公司