本公開總的涉及電子消息傳遞應用,更具體涉及提供任務輔助。
背景技術:
諸如電子郵件的電子消息傳遞應用,傳送各種類型的信息到用戶以及從用戶傳送各種類型的信息。一些消息包括用戶必須執行的任務。因此,許多消息傳遞應用不僅跟蹤由用戶接收或發送的消息,而且還跟蹤用戶要執行的任務。在消息傳遞應用內輸入任務的傳統方法(例如輸入提醒以執行任務)不能利用已經已知的關于用戶的信息,因此不提供便于任務輔助的最優用戶接口。
技術實現要素:
所公開的實施方式解決了上述缺陷和與任務輔助相關聯的其他問題。根據一些實施方式,一種任務輔助的方法在具有一個或多個處理器和存儲一個或多個程序的存儲器的計算設備上執行,所述一個或多個程序被配置為由所述一個或多個處理器執行。所述方法包括從用戶接收對應于電子消息的任務描述。所述方法進一步包括基于所述任務描述,從多個預先定義的任務模板中識別任務模板。所識別的任務模板包括一個或多個第一任務參數。所述方法進一步包括基于所述電子消息的內容確定所述一個或多個第一任務參數的值。所述方法進一步包括向用戶呈現用于完成與所接收到的任務描述相對應的任務的選項集合,以便用戶選擇。所述選項集合中的至少第一選項子集基于所述一個或多個第一任務參數。
在一些實施方式中,基于所述電子消息的內容確定所述一個或多個第一任務參數的值包括:使用所識別的任務模板以及所述一個或多個第一任務參數的值來構建查詢;以及使用所述查詢來檢索所述選項集合中的第一選項子集。在一些實施方式中,所述查詢是參數化的統一資源定位符(URL),且每個確定的值用作URL中的參數。
在一些實施方式中,基于所述任務描述識別任務模板包括確定所述任務模板匹配所述任務描述。在一些實施方式中,所述任務描述用于被指派給對應的電子消息的任務。
在一些實施方式中,所述電子消息和所述任務描述是在用戶正在編寫所述電子消息時從所述用戶接收的。可替選地,在一些實施方式中,所述用戶是所述電子消息的接收者且所述任務描述是響應于所述用戶接收到所述電子消息而由所述用戶輸入的。
在一些實施方式中,方法進一步包括:從所述選項集合接收第一選項的用戶選擇且根據所述第一選項完成所述任務。
在一些實施方式中,所述任務描述是字符串。
在一些實施方式中,所述選項集合中的至少第二選項子集基于所述任務描述而不是所述電子消息的內容。在一些實施方式中,所述選項集合以根據指派給所述選項集合中每個選項的權重而確定的次序來呈現。所述第一選項子集中的選項被加權,以便使得所述第一選項子集中的選項的位置比起所述第二選項子集中的選項更加顯著。
在一些實施方式中,所識別的任務模板包括一個或多個第二任務參數。所述方法進一步包括基于所存儲的個人信息確定所述一個或多個第二任務參數的值。在一些實施方式中,所存儲的個人信息包括用戶簡檔。在一些實施方式中,所存儲的個人信息包括家的位置。在一些實施方式中,所存儲的個人信息包括所述用戶的當前地理位置。在一些實施方式中,所存儲的個人信息包括用戶的先前任務輔助選擇的日志。
本公開的另一方面提供一種計算設備,包括一個或多個處理器、存儲器以及存儲在所述存儲器中的一個或多個程序。所述一個或多個程序被配置為由所述一個或多個處理器執行。所述一個或多個程序包括用于從用戶接收對應于電子消息的任務描述的指令。所述一個或多個程序進一步包括用于基于所述任務描述,從多個預先定義的任務模板中識別任務模板的指令。所識別的任務模板包括一個或多個第一任務參數。所述一個或多個程序進一步包括用于基于所述電子消息的內容確定所述一個或多個第一任務參數的值的指令。所述一個或多個程序進一步包括用于向用戶呈現用于完成與所接收到的任務描述相對應的任務的選項集合,以便用戶選擇的指令。所述選項集合中的至少第一選項子集基于所述一個或多個第一任務參數。
本公開的另一方面提供一種存儲一個或多個程序的非暫時性計算機可讀存儲介質,所述一個或多個程序被配置為由具有一個或多個處理器和存儲器的計算設備執行。所述一個或多個程序包括用于從用戶接收對應于電子消息的任務描述的指令。所述一個或多個程序進一步包括用于基于所述任務描述,從多個預先定義的任務模板中識別任務模板的指令。所識別的任務模板包括一個或多個第一任務參數。所述一個或多個程序進一步包括用于基于所述電子消息的內容確定所述一個或多個第一任務參數的值的指令。所述一個或多個程序進一步包括用于向用戶呈現用于完成與所接收到的任務描述相對應的任務的選項集合,以便用戶選擇的指令。所述選項集合中的至少第一選項子集基于所述一個或多個第一任務參數。
附圖說明
為了更好地理解本發明的上述實施方式及其附加的實施方式,應該對下面的具體實施方式進行參考,并結合下面的附圖,附圖中類似的附圖標記在各個附圖中指代相應的部分。
圖1圖示說明在其中操作一些實施方式的環境。
圖2是根據一些實施方式的客戶端計算設備的框圖。
圖3是根據一些實施方式的服務器的框圖。
圖4A-4F圖示根據一些實施方式的用于任務輔助的用戶接口的方面。
圖5A-5C提供根據一些實施方式的用于任務輔助的過程的流程圖。
現在將對實施方式進行詳細參考,這些實施方式的示例在附圖中被圖示說明。在下面的詳細描述中,闡述了許多具體細節以便提供對本發明的透徹理解。但是,本領域普通技術人員將清楚的是,本發明可以在沒有這些具體細節的情況下被實踐。
具體實施方式
根據這里公開的系統和方法,用戶具有向諸如電子郵件的電子消息中添加任務的能力,電子消息描述了用戶需要關于該電子郵件采取什么行動。當用戶鍵入任務的任務描述時,向用戶提供自動完成用戶接口。這里描述的該系統和方法進一步提供自動完成用戶接口,其使用偏置數據來基于從電子郵件提取的條目(例如,電子郵件線程上的聯系人,或者在電子郵件中提到的條目,諸如生意、航班、賬號、位置等等)而偏置自動完成建議。該偏置數據被用于增加包含在電子郵件中提到的條目的那些自動完成建議的權重(例如,相對于不包含在電子郵件中提到的條目的那些自動完成建議)。
圖1是圖示說明一些實施方式的主要組件的框圖。各種客戶端設備102(例如,客戶端設備102-a、102-b和102-c;這里也被識別為計算設備)和服務器系統110中的服務器300在一個或多個網絡108(諸如互聯網)上通信。客戶端設備102可以是智能電話、平板計算機、筆記本計算機、桌面計算機或者能夠接入通信網絡108并能夠運行消息傳遞應用106的其他計算設備。在一些實施方式中,消息傳遞應用在web瀏覽器104內運行。
在一些實施方式中,服務器系統110由單個服務器300構成。更一般地,服務器系統110包括多個服務器300。在一些實施方式中,服務器300由總線的內部通信網絡122連接。服務器系統110包括一個或多個web服務器112,其從用戶(例如從客戶端設備102)接收請求并且返回合適信息、資源、鏈接等等。在一些實施方式中,服務器系統110包括一個或多個應用服務器114,其提供各種應用,諸如消息傳遞應用106。服務器系統110典型包括一個或多個數據庫116,其存儲諸如網頁、用戶列表118和各種用戶信息120(例如用戶名和加密的密碼、用戶偏好等等)的信息。
圖2是圖示說明用戶用于訪問消息傳遞應用106的客戶端設備102的框圖。客戶端設備還被稱為計算設備,其可以是平板計算機、筆記本計算機、智能電話、桌面計算機、PDA或能夠運行消息傳遞應用106且能夠接入通信網絡108的其他計算設備。客戶端設備102典型包括一個或多個處理單元(CPU)202,用于執行模塊、程序、或存儲在存儲器214中的指令并由此完成處理操作;一個或多個網絡或其他通信接口204;存儲器214;以及一個或多個通信總線212,用于互連這些組件。通信總線212可以包括電路(有時稱為芯片組),其互連且控制系統組件之間的通信。客戶端設備102包括用戶接口206,其包括顯示設備208和一個或多個輸入設備或機構210。在一些實施方式中,輸入設備/機構包括鍵盤和鼠標;在一些實施方式中,輸入設備/機構包括“軟”鍵盤,其按需要顯示在顯示設備208上,使得用戶能夠“按壓”顯示在顯示器208上的“按鍵”。
在一些實施方式中,存儲器214包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM或其他隨機存取固態存儲器設備。在一些實施方式中,存儲器214包括非易失性存儲器,諸如一個或多個磁盤存儲設備、光盤存儲設備、閃存存儲器設備、或者其他非易失性固態存儲設備。在一些實施方式中,存儲器214包括遠離CPU 202定位的一個或多個存儲設備。存儲器214,或可替換地,存儲器214內的非易失性存儲器設備,包括非暫時性計算機可讀存儲介質。在一些實施方式中,存儲器214,或者存儲器214的計算機可讀存儲介質,存儲下面的程序、模塊和數據結構,或者其子集:
●操作系統216,其包括用于處置各種基本系統服務和用于執行硬件相關任務的流程;
●通信模塊218,其用于將客戶端設備102經由一個或多個通信網絡接口204(有線或無線)以及諸如互聯網、其他廣域網、局域網、城域網等等的一個或多個通信網絡112連接到其他計算機和設備;
●顯示模塊220,其從一個或多個輸入設備210接收輸入,且生成用戶接口元素以便在顯示設備208上顯示;
●web瀏覽器104,其使得用戶能夠在網絡108(諸如互聯網)上與遠程計算機或設備通信;
●消息傳遞應用106,其使得用戶能夠發送和接收電子消息。在一些實施方式中,消息傳遞應用是電子郵件應用。在一些實施方式中,消息傳遞應用是即時消息傳遞應用。在一些實施方式中,消息傳遞應用106在web瀏覽器104內運行,如圖1中所圖示。在一些實施方式中,消息傳遞應用106獨立于web瀏覽器104(例如桌面應用)而運行。示例消息傳遞應用如下在圖4A-4F中圖示;以及
●應用數據222,其由消息傳遞應用106使用。應用數據包括消息224(例如電子郵件消息或即時消息)和任務226,以及用于完成任務的信息228。在一些實施方式中,任務226與消息224相關聯。在一些實施方式中,任務226獨立于所有消息。應用數據222可以包括配置數據230,諸如用戶偏好、用戶歷史、有關用戶的地理信息、或者配置選項的狀態。
上面識別的可執行模塊、應用、或者流程的集合中的每個可以都存儲在一個或多個先前提到的存儲器設備中且對應于用于執行上述功能的指令集。上面識別的模塊或程序(即指令集)不需要被實施方式為分別的軟件程序、流程或模塊,因此這些模塊的各種子集可以被組合或者以各種實施方式重新安排。在一些實施方式中,存儲器214可以存儲上面識別的模塊和數據結構的子集。而且,存儲器214可以存儲上面沒有描述的額外模塊或數據結構。
盡管圖2示出客戶端設備102,圖2更旨在作為可以呈現的各種特征的功能描述而非作為這里所述實施方式的結構示意。實踐中,且如本領域普通技術人員所認識到的,單獨示出的項目可以被組合且一些項目可以被分開。
圖3是圖示說明可以用于服務器系統110中的服務器300的框圖。典型服務器系統包括許多單個服務器300,可以是幾百個或幾千個。服務器300典型包括一個或多個處理單元(CPU)302,用于執行模塊、程序、或存儲在存儲器314中的指令并由此執行處理操作;一個或多個網絡或其他通信接口304;存儲器314;以及一個或多個通信總線312,用于互連這些組件。通信總線312可以包括電路(有時稱為芯片組),其互連且控制系統組件之間的通信。在一些實施方式中,服務器300包括用戶接口306,其包括顯示設備308和一個或多個輸入設備310,諸如鍵盤和鼠標。
在一些實施方式中,存儲器314包括高速隨機存取存儲器,諸如DRAM、SRAM、DDR RAM或其他隨機存取固態存儲器設備。在一些實施方式中,存儲器314包括非易失性存儲器,諸如一個或多個磁盤存儲設備、光盤存儲設備、閃速存儲器設備、或者其他非易失性固態存儲設備。在一些實施方式中,存儲器314包括遠離CPU 302定位的一個或多個存儲設備。存儲器314,或可替選地,存儲器314內的非易失性存儲器設備,包括非暫時性計算機可讀存儲介質。在一些實施方式中,存儲器314,或者存儲器314的計算機可讀存儲介質,存儲下面的程序、模塊和數據結構,或者其子集:
●操作系統316,其包括用于處置各種基本系統服務和用于執行硬件相關任務的流程;
●通信模塊318,其用于將服務器300經由一個或多個通信網絡接口304(有線或無線)、內部網絡或總線122或諸如互聯網、其他廣域網、局域網、城域網等等的其他通信網絡108連接到其他計算機;
●可選顯示模塊320,其從一個或多個輸入設備310接收輸入,且生成用戶接口元素以便在顯示設備308上顯示;
●一個或多個web服務器112,其從客戶端設備102接收請求,并且返回響應網頁、資源或鏈接。在一些實施方式中,每個請求記錄在數據庫116;
●一個或多個應用服務器114,其提供各種應用(諸如電子郵件或其他消息傳遞應用)給客戶端設備102。在一些實例中,應用被提供作為網頁的集合,其被遞送給客戶端設備102并在網絡瀏覽器104中顯示。網頁按需要或請求而被遞送。在一些實例中,應用被遞送到客戶端設備102作為下載,其被從web瀏覽器104外的客戶端設備102安裝和運行;
●一個或多個數據庫116,其存儲以上識別模塊或程序所使用的各種數據。在一些實施方式中,數據庫116包括授權用戶的列表,其可以包括用戶名、加密的密碼、和有關每個用戶的其他相關信息。數據庫116還存儲特定于用戶的數據120,其由應用服務器所提供的一個或多個應用來使用。例如,一些實施方式為每個用戶存儲電子消息224。作為另一示例,一些實施方式存儲有關用戶的地理信息。
圖3中上面識別的元素的每個可以存儲在一個或多個先前提到的存儲器設備中。每個可執行程序、模塊、或流程對應于用于執行上述功能的指令集。上面識別的模塊或程序(即指令集)不需要被實現為分立的軟件程序、流程或模塊,且因此這些模塊的各個子集可以被組合或以各種實施方式被重新布置。在一些實施方式中,存儲器314可以存儲上面識別的模塊和數據結構的子集。而且,存儲器314可以存儲上面沒有描述的附加模塊或數據結構。
盡管圖3圖示說明服務器300,圖3更旨在作為可以以一個或多個服務器的集合而呈現的各種特征的功能圖示而非作為這里所述實施方式的結構示意。實踐中,且如本領域普通技術人員所認識到的,單獨示出的項目可以被組合且一些項目可以被分開。用于實現這些特征的服務器的實際數目,以及特征怎樣被分配在它們之中,將會每個實施方式都不同,且可以部分地取決于在峰值使用時段期間以及在平均使用時段期間系統必須處置的數據通信的量。
如圖2和3中所圖示,消息傳遞應用的功能可以在客戶端設備102和服務器系統110之間共享。在一些實施方式中,在消息傳遞應用安裝在客戶端設備102上之后,大多數后續處理在客戶端設備上發生。在其他實施方式中,大多數處理和數據存儲發生在服務器300上,且客戶端設備102使用web瀏覽器104來觀看數據和與數據交互(這樣的布置有時被稱為“web郵件”)。本領域技術人員認識到,客戶端設備102和服務器系統110之間的功能的各種分配是有可能的,且更多實施方式支持多個配置(例如,基于用戶選擇)。
圖4A-4F圖示了根據一些實施方式的用于任務輔助的用戶接口的方面。圖4A-4F中所示的用戶接口顯示在客戶端設備(例如客戶端設備102,圖1和2)上。
圖4A圖示說明用戶接口顯示在客戶端設備(例如計算設備)上的消息遞送應用400中。消息傳遞應用400中的用戶接口顯示電子消息402,其包括主題行(例如報頭的一部分)402-a和消息主體402-b。在這個示例中,電子消息402是電子郵件消息。但是,根據各種實施方式,這里所述的電子消息可以是即時消息、文本消息等等。如這個示例中所示,用戶是電子消息402的接收者。電子消息402包括內容,其至少包括消息主體402-b且可選地進一步包括主題行402-a、附件、和/或與電子消息402相關聯的其他元數據。此外,與電子消息402一起,消息傳遞應用400還顯示提示404(例如,用戶功能可見性,顯示為可點擊的下劃線的鏈接)以響應于接收到電子消息402而添加(例如輸入)任務。當用戶通過用戶動作406(例如對提示404的用戶點擊)選擇提示時,客戶端設備發起添加對應于電子消息402的任務的過程。
圖4B接著圖4A且類似于圖4A,但圖4B圖示說明用于添加與電子消息402相對應的任務的用戶接口窗口408。用戶至少通過輸入任務描述410來輸入任務,任務描述可以是通過自動完成建議412(例如自動完成建議412-a;412-b;和412-c)來完成的部分任務描述。自動完成建議412有時被稱為用于完成任務的選項集合。任務描述410中示出的字符“|”圖示說明光標位置且旨在示出用戶還沒完成輸入任務描述,因此任務描述是部分任務描述(例如,用戶還沒通過按壓回車按鍵而提交任務描述)。至少一個自動完成建議——即,自動完成建議412-a——至少部分地基于電子消息402的內容(例如,其中內容包括消息主體402-a中的單詞)。此外,自動完成建議412作為整體偏向于基于電子消息402的內容的那些自動完成建議。這是在圖4B中通過基于電子消息402的內容的自動完成建議412-a是在自動完成建議412的列表中的第一自動完成建議來證明的。
圖4C接著圖4B且類似于圖4B,但是圖4C圖示說明自動完成建議412-a的用戶選擇414,并因此圖示說明用戶已經選擇選項集合的用于完成任務的相應選項。如這里所使用的,術語“完成任務”用在“自動完成”的意義中。例如,該任務在任務描述根據自動完成建議而更新時被完成。在接著圖4C的圖4D中,任務已完成。此外,圖4C圖示說明,在一些實施方式中,一旦完成任務,用戶接口顯示用于執行該任務的用戶接口窗口418。例如,在一些實施方式中,用戶接口窗口418被配置為帶用戶到當用戶選擇功能可見性420(“Book Now!”)時用戶能夠對Osteria(餐館)進行預訂的網站。
圖4E-4F圖示根據一些實施方式的用于用戶任務輔助的用戶接口的另一示例。消息傳遞應用400中的用戶接口顯示包括主題行(例如頭部的一部分)422-a和消息主題422-b的電子消息422。在這個示例中,電子消息402是電子郵件消息。但是,根據各種實施方式,這里所述的電子消息可以是即時消息、文本消息等等。在這個示例中,用戶正在使用用戶接口來編寫電子消息422(例如,電子消息要被用戶發送,與用戶作為電子消息402的接收者的圖4A-4D相對照)。而且,用戶接口允許用戶輸入任務作為電子郵件的附件。為此,用戶接口包括用于添加任務作為對電子郵件的附件的功能可見性424。
當選擇功能可見性424時,用戶接口顯示用戶接口窗口428,在圖4F中顯示,用于輸入任務(例如通過輸入任務描述430)。進一步如圖4F中所示,任務描述430是部分任務描述,導致自動完成建議432(例如,自動完成建議432-a;432-b;和432-c)的顯示。這些自動完成建議可以被用于完成任務(例如由此更新任務描述和/或完成任務到消息傳遞應用中的輸入)。在一些實施例中,當任務完成時,任務的記錄被消息傳遞應用和/或指令消息傳遞應用的服務器系統存儲。方法500描述了怎樣確定和提供自動完成建議432的細節。但是,足以說明至少一個自動完成建議基于電子消息422的內容。特別是,因為電子消息422討論到舊金山的航班,電子消息422具有匹配航班任務模板和航班模板的參數的舊金山值的關鍵詞。任務模板和參數被用于產生自動完成建議432-a和432-b,其首先被列出(例如,最顯著)是因為自動完成建議偏向于基于電子消息422的內容的自動完成建議。此外,在一些實施方式中,有關用戶的個人信息被用于確定自動完成建議的其他參數。這樣的個人信息,在一些實施方式中,存儲在服務器系統上的用戶簡檔中。例如,如圖4F中所示,用戶簡檔可以指示用戶住在費城,導致自動建議432-a,其組合從電子消息422獲得的參數和從用戶簡檔獲得的參數。
圖5A-5C提供方法500的流程圖,由計算設備執行,用于提供任務管理。方法在具有一個或多個處理器和存儲器的計算設備102和/或110上執行。存儲器存儲一個或多個程序,被配置用于由一個或多個處理器執行。為了解釋簡便,方法500被描述為由服務器系統(例如服務器系統110,圖1)來執行。
服務器系統從用戶接收(502)對應于電子消息的任務描述。在一些實施方式中,任務描述是在用戶的客戶端設備上的消息傳遞應用中接收的(例如,消息傳遞應用可以是本地應用或者通過web瀏覽器運行的web應用)。在一些實施方式中,任務描述是部分任務描述,意味著用戶還沒有輸入(例如,提交)完全任務描述給消息傳遞應用和/或給服務器系統(例如用戶沒有完成鍵入任務描述)。為此,在一些實施方式中,以預先定義的同步間隔(例如,當用戶輸入任務描述時),諸如0.1秒,或者當任務描述無論何時改變時(例如,當用戶無論何時輸入任何字符,或者替選地,輸入諸如空格的特殊字符時),消息傳遞應用發送部分任務描述并且服務器系統接收部分任務描述。
在一些實施方式中,任務描述是用于任務的。這樣的任務有時被稱為提醒,因為消息傳遞應用將起到提醒用戶執行任務的功能。在一些實施方式中,任務描述是用于被(504)指派給對應電子消息的任務的。例如,在一些實施方式中,電子消息和任務描述是在用戶正在編寫電子消息時從用戶接收到的(506)。在一些實施方式中,任務代表元數據或電子消息的附件。換句話說,有關任務的信息(例如,什么、何時、任務怎樣等等)對應消息一起被存儲、檢索或發送作為元數據。例如,圖4E-4F圖示說明任務可以被添加為電子郵件的“附件”的場景。在一些實施方式在,當用戶接收具有向其指派(例如粘附)的任務的電子消息時,任務自動(例如不用用戶干預)添加到用戶的任務列表中。任務列表被提供在單獨窗口中或者消息傳遞應用的用戶接口的文件夾中。
替選地,在一些實施方式中,任務描述對應于電子消息,即使任務不是指派給電子消息的。例如,如圖4A-4D中所示,在一些實施方式中,用戶是(508)電子消息的接收者。任務描述由用戶響應于用戶接收到電子消息而輸入。在一些但非所有這樣的實施方式中,任務不是指派給電子消息的(如上所述)而是以至少兩種方式對應于電子消息。任務對應于電子消息的第一種方式是消息傳遞應用與電子消息同時顯示提示(例如,用戶功能可見性)以添加任務。因此,用戶(可以被電子消息提醒她需要做某事的人)被提供附加便利手段——添加與電子郵件相關的任務的能力觸手可及。任務描述對應于電子消息的第二種方式是電子消息的內容被用于提供對任務的自動完成建議,如方法500的剩余描述中所述。
因此,提供了當任務描述對應于電子消息時的至少三個示例:當服務器系統利用電子消息的內容來提供一個或多個自動完成建議時,當電子消息顯示為輸入任務描述的提示時,以及當任務描述是用于附于電子消息(如元數據)的任務時。
在一些實施方式中,任務描述是(510)字符串。圖4A-4F圖示說明了幾個示例,其中任務描述被用戶作為字符串輸入。
服務器系統基于任務描述從多個預先定義的任務模板中識別(512)任務模板。所識別的任務模板包括一個或多個第一任務參數。在一些實施方式中,基于任務描述識別任務模板包括確定(514)任務模板匹配任務描述。例如,任務描述中的特定術語,在一些實施方式中,是對任務模板的指示符。例如,如圖4B中所示,術語“晚餐”,在一些實施方式中,是對“晚餐計劃”的任務模板的指示符(例如,充分指示符)。晚餐計劃的任務模板包括可選的任務參數,諸如晚餐位置、晚餐時間、要上的菜、就餐者的總數等等。相應的任務模板的充分指示符意味著,這樣的指示符在任務描述中的出現足以識別相應的任務模板匹配任務描述。在一些環境中,服務器系統可以基于任務描述(例如,當任務描述包括多個任務模板的充分指示符時)識別若干任務模板。
在一些實施方式中,多個任務模板包括用于制定晚餐計劃、安排約會、安排會議、預定航班等等的任務模板。
在一些實施方式中,指示符可以被識別為對應于結構化數據,意味著服務器系統可以識別對應于該指示符的實體和/或對象。換句話說,在一些實施方式中,指示符是對應于結構化數據的關鍵詞。月份、城市名、日期和事件、相對日期(例如“明天”)是可以與很好定義的實體或對象相關的指示符的所有示例。例如,術語“明天”,當被發現在任務描述中時,可以與當前日期(例如存儲在服務器系統上)關聯起來用于確定晚餐任務模板的日期任務參數的值(參見操作516)。
在一些實施方式中,服務器系統基于電子消息的內容識別任務模板。例如,在一些實施方式中,甚至在接收到任務描述之前,服務器系統提供自動完成建議。作為替換,在一些實施方式中,自動完成建議(例如,開始于對任務模板的識別)僅僅基于電子消息的內容。在一些實施方式中,根據方法500,基于任務描述來對那些自動完成建議進行更新和/或替換。在一些實施方式中,基于任務描述和電子消息的內容的組合來識別任務模板。
服務器系統基于電子消息的內容來確定(516)一個或多個第一任務參數的值。在一些實施方式中,電子消息的內容包括電子消息的主體(例如,電子郵件主體)。在一些實施方式中,電子消息的內容包括電子消息的附件、電子消息的頭部、和/或與電子消息相關聯的元數據。在一些實施方式中,值是被很好定義的可識別的對象和/或實體(例如,值是從結構化數據獲得的)。作為示例,考慮包括位置任務參數的晚餐計劃的任務模板。晚餐計劃的位置任務參數的值可以是某人的家(例如“我家”)、餐館、公園等等。在一些實施方式中,服務器系統存儲餐館的列表,可選地,還存儲有關這些餐館的信息(例如,運營時間、食物種類、和/或價格范圍)。作為圖4B中所示的示例,采用包括至少三個餐館Osteria、Barbuzzo和Amada的餐館的列表。在這個示例中,服務器系統分析了電子消息的內容并且確定Osteria對應于結構化數據;即,其對應于餐館列表中的餐館Osteria的對象。因此,服務器確定晚餐計劃的位置任務參數的值是餐館對象Osteria。在一些環境中,可能存在多個名叫“Osteria”的餐館且服務器系統使用存儲的個人信息,如下所述,來對于Osteria可能的意思消除歧義。
在一些實施方式中,所識別的任務模板(518)包括一個或多個第二任務參數。在這樣的實施方式中,服務器系統基于存儲的個人信息來確定(520)一個或多個第二任務參數的值。在一些實施方式中,存儲的個人信息包括(522)用戶簡檔。在一些實施方式中,存儲的個人信息包括(524)家的位置。在一些實施方式中,存儲的個人信息包括(526)用戶的當前地理位置。考慮開始于字符串“Book flight(預定航班)”的任務描述的示例。這樣的任務描述可以足以識別航班預定任務模板,其包括諸如“出發機場”(例如,相應的第二任務參數)和“目的地機場”(例如,相應的第一任務參數)等的任務參數。當消息主體的內容包括單詞“to Atlanta(至亞特蘭大)”時,在一些實施方式中,對于相應的第一任務參數,服務器系統確定ATL(即,哈茨菲爾德-杰克遜亞特蘭大國際機場的聯邦航空管理局(FAA)機場代碼)的值,且使用存儲在用戶簡檔中的家的位置來確定用戶最接近PHL(即,費城國際機場的聯邦航空管理局(FAA)機場代碼),而且,確定PHL的值適合于相應的第二任務參數。
在一些實施方式中,存儲的個人信息包括(528)用戶的先前任務輔助選擇的記錄。例如,在一些實施方式中,服務器系統使用用戶預定的先前航班的記錄來確定PHL是用戶最常出發的機場,且由此使用PHL作為相應的第二任務參數的值。
服務器系統向用戶呈現(530)用于完成對應于接收到的任務描述的任務的選項集合以便進行用戶選擇。換句話說,系統向用戶呈現自動完成建議,以便完成任務。選項集合中的至少第一選項子集基于一個或多個第一任務參數。在一些實施方式中,第一選項子集包括至少一個第一任務參數。在一些實施方式中,選項集合包括多個選項(例如,兩個或更多,三個或更多,等等)。在一些實施方式中,第一選項子集包括對應于第一任務參數的信息。換句話說,至少一些自動完成建議基于電子消息的內容,其用于確定如上所述的一個或多個第一任務參數的值。如這里所使用的,“完成”任務用于“自動完成”的意思。例如,在一些實施方式中,完成任務意味著在消息傳遞應用內完成記錄(例如,完全記錄)任務的過程,例如,使得消息傳遞應用可以提供提醒。在一些實施方式中,完成任務包括在存儲器中用關于任務的信息來存儲唯一記錄。在一些實施方式中,完成任務意味著根據選項集合之一來更新任務描述。與之對照,執行任務意味著任務所需要的實際動作(例如,預定航班的動作是任務的執行)。
在一些實施方式中,基于電子消息的內容確定一個或多個第一任務參數的值包括(532):使用所識別的任務模板和一個或多個第一任務參數的值來構建(534)查詢以及使用(536)該查詢來檢索選項集合中的第一選項子集。在一些實施方式中,查詢是(538)參數化的統一資源定位符(URL)且每個確定的值被用作URL中的參數。
在一些實施方式中,選項集合中的至少第二選項子集(540)基于任務描述而不是電子消息的內容。在一些實施方式中,選項集合以根據指派給選項集合中的每個選項的權重而確定的次序來呈現(542)。第一選項子集中的選項被加權,以便使得第一選項子集中的選項比起第二選項子集中的選項位于更顯著的位置(例如,次序上更高)。換句話說,服務器系統對要顯示的自動完成建議的選擇基于與每個潛在自動完成建議相關聯的權重(例如,服務器系統選擇三個最高權重的自動完成建議來顯示)。進一步,基于電子消息的內容的自動完成建議被提升權重,使得自動完成建議的集合偏向于基于電子消息的內容的那些自動完成建議。更簡單地表達:自動完成建議的呈現偏向于基于電子消息的內容的自動完成建議。在一些實施方式中,自動完成建議根據各種因素來加權,并且基于電子消息內容的自動完成建議被給定預先確定的偏置(例如,向它們相應權重的固定偏移)。影響自動完成建議的權重的其他因素可以包括用戶與自動完成建議內的實體的接近度和/或基于其他存儲的個人信息的因素,如上所述。例如,當顯示用于機場的自動完成建議時,在一些實施方式中,自動完成建議是基于接近用戶的“出發機場”來加權的。
在一些實施方式中,服務器系統從選項集合接收(544)第一選項的用戶選擇并且根據第一選項完成(546)任務。在一些實施方式中,服務器系統發送指令到消息傳遞應用提示用戶輸入有關任務的進一步細節。
這里在發明的描述中使用的術語的目的僅僅是描述特定實施方式且不想限制發明。如發明的描述和所附權利要求書中所使用的,單數形式“一”和“該”旨在還包括復數形式,除非上下文明確相反指示。還將理解,這里所使用的術語“和/或”指的是且包括一個或多個相關聯所列項目的任何和所有可能組合。將進一步理解,術語“包括”和/或“包含”,當在本說明書中使用時,指定陳述的特征、步驟、操作、元素、和/或組件的存在,但不排除一個或多個其他特征、步驟、操作、元素、組件、和/或其群組的存在或添加。
前面的描述,為了解釋的目的,已經結合特定實施方式進行了描述。但是,以上說明的討論不旨在窮盡的或者限制發明為所公開的精確形式。根據上述教導,許多修改和變化是有可能的。選擇和描述這里所述的實施方式以便最好地解釋發明的原理及其實踐應用,由此使得其他本領域技術人員最好地利用本發明和具有適合于所考慮的特定使用的各種修改的各種實施方式。