TWI388995B - 用於喜好應用程式安裝及執行的系統與方法及記錄相關指令的電腦可讀取媒體 - Google Patents
用於喜好應用程式安裝及執行的系統與方法及記錄相關指令的電腦可讀取媒體 Download PDFInfo
- Publication number
- TWI388995B TWI388995B TW093122611A TW93122611A TWI388995B TW I388995 B TWI388995 B TW I388995B TW 093122611 A TW093122611 A TW 093122611A TW 93122611 A TW93122611 A TW 93122611A TW I388995 B TWI388995 B TW I388995B
- Authority
- TW
- Taiwan
- Prior art keywords
- user
- preferences
- information
- application
- event
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本發明係有關於一種電腦系統,尤指一種個人化電腦系統之系統與方法。
電腦與計算相關技術之使用者一般分成兩個不同的類別,稱為高度技術與有知識個人及其他人。有技術與有知識個人知道如何以多種方法使用電腦,且將其根據他們所想要的改變以將程式塑型,並促進多種及有價值的行為。當世界上剩下的電腦使用者無法容易或低成本地存取知識、資訊、或使電腦提供其需求之能力時,他們只有仰賴該等有技術與有知識的個人。
計算中主要突破性進展發生於當技術打破某些取得的藩籬。在主機的世界中,電腦對除了該最大型企業來說之外的所有人來說太貴,而無法負擔。迷你電腦及接著個人電腦(PC)的來到打破了成本藩籬,並使小型企業與個人可取得電腦。在1980年代,程式設計人員掙扎著建立圖形使用者介面(GUI)應用程式。缺乏充足及一致性之GUI,程式設計人員無法為PC使用者建立有價值的應用程式。Visual Basic解決方法以及控制與事件型GUI建構之使用讓應用程式研發人員很容易的建立多種的應用程式。因此,建立一有效力的遞迴,其中許多使用者端可開發這些應用程式。在1990年代中,使用者端掙扎著克服存取資訊的不足。網際網路的成長轉換了此空間,使幾乎所有有價值的
資訊可讓具有一瀏覽器的任何人加以存取。然而,仍有許多藩籬是必須克服的。
傳統的計算並非個人的。有極少關於一所謂個人電腦真正是「個人的」。儲存於一區域磁碟上之資料是個人的倒是真的。然而,該機器之行為,稱為代表該使用者執行之動作,對幾百萬的使用者來說幾乎相同。儘管擁有一神奇強大一般目的電腦,該平均使用者將其視為一靜態工具,作為一通訊端點係有用的,作為一搜尋輸入點係有用的,執行某些罐裝大量市場應用程式是有用的,但在文字解釋中無法為任何「個人計算」。於目前應用程式中有效的個人化功能僅刮過可能且想要的表面。
此外,傳統計算並非自動化而係手動,需要使用者做決策,並在一適當時間運作。考量大部分典型電腦使用者端之日常工作。其中,使用者端收集資訊、反應通訊、開始或回應通訊、及組織資訊。電腦已改良人與人之間之通訊,且已改良對資訊之存取。然而,電腦極少作出緩和使用者端做決策與於緊湊時間動作之責任。
還有,傳統計算並沒有前後關係。電腦軟體一般提供選項設定,其為靜態且對該使用者之實際架構(context)並不相關。
所需要的是一真正個人化電腦系統-其知道使用者端之需求與喜好,且以那些需求以及使用者架構所引導之一方法動作之一系統。此外,電腦系統與軟體應提供每個使用者端一個個人助理,用以收集與過濾對一或多個使用者
端之興趣之資訊,且自動以由一使用者指定之一方法反應該資訊。
下列呈現本發明之一簡要介紹,以提供本發明某些態樣之一基本了解。此摘要並非本發明之一完整簡介。其用於辨識發明之關鍵/重要元件,或勾勒本發明之領域。其主要目的係以一簡化形式呈現本發明之某些概念,作為稍後呈現之更詳細說明之一序曲。
在此揭示一資訊代理者系統、應用程式、及方法論。一資訊代理者系統提供用以執行資訊代理者應用程式(有時候在此稱為IA應用程式)之平台,IA應用程式接著可由使用者端程式化,並採用為使用者端執行助理或代理者。代理者接著可用以大大增強使用者端個人生產力,整合桌上型應用程式與所有個人通訊媒體(如行動電話、呼叫器、PDA…)。
在該資訊應用程式系統中心係資料之綱目化。綱目化係為已知與良好定義樣式之資料結構,其允許多個應用程式互相認知與互動。資訊屬性、資訊事件、及決策邏輯皆可綱目化。綱目化資訊屬性稱為使用者端應用程式基礎之資料(如電子郵件、人、群組、位置…)。資訊屬性可綱目化以允許許多不同應用程式之資料之一致轉譯。資訊事件提供銜接至附加程式邏輯。這些事件係一高階且綁至資訊流,以促進無經驗使用者端之理解。事件亦可被綱目化。此外,決策邏輯可被綱目化。由於使用者端並非有訓練的
研發人員,預期以一傳統程式設計語言寫入之一程式係不合理的。而是,綱目化邏輯建立區塊(如IF-THEN命題)可提供至使用者端,使其可藉由以簡單且不複雜的組合將其聯結在一起加以程式設計。資料之綱目化、資訊銜接(事件)及使用者端程式設計功能允許使用者端經由使用者端邏輯耦合與合作一大值與應用程式之一豐富生態系統,其接著允許初學者使用者端變成系統整合者。
此外,根據本發明之一態樣,該資訊應用程式系統包含一有彈性執行引擎,可編譯與執行重量級與輕量級資訊應用程式。其中重量級應用程式包含常常執行於高層次伺服器上,並要求高通量與可伸縮性。輕量級應用程式為常常執行於如個人電腦之小型系統上者,且要求低等待時間、一小型資料庫佔用空間(database footprint)、及小型工作組。在較小型應用程式中,等待時間與通量間之交換,與較大型伺服器應用程式相比係呈相反。因此,由於本發明之執行引擎藉由做交換以強調特定系統需求(如低等待時間、小型資料庫佔用空間…),其可於複數個不同應用程式平台上編譯與執行應用程式,故其具有彈性。
根據本發明之另一態樣,使用者端喜好或角色以一一次一個的方式研發,但以整組的方式執行。一一次一個程式設計模組係對研發人員來說最自然之一模組,允許研發人員針對一喜好指定一事件。然而,根據本發明之一態樣,該系統取出一次一個程式宣告,並做出以一組導向方式執行之條件類別查詢,藉此開發如索引與減少複製之技術。
這對喜好以一非常有效方式評估是很有利的,而研發人員與使用者端保留概念化,且以一次一個的方式寫入程式。
根據本發明之另一態樣,提供一新應用程式安裝系統與方法。在傳統系統中,應用程式安裝包含資料庫物件、表、及儲存程序之一繁殖。在某些情況中,應用程式建立全新的資料庫。本發明藉由提供一組基本表簡化與促進應用程式安裝。為了安裝一應用程式,該系統僅更新該基本表。此可藉由儲存程式動作、條件、事件、及程序作為資料加以完成。舉例來說,關於程序,其可建立為一卷文字,儲存於一資料儲存中。為了執行此程序,該程式文字可僅拉出資料儲存並加以執行。
根據本發明之又一態樣,一系統可支援存取器常數,以允許條件/動作跨不同資訊網域或資訊關聯於資訊。存取器常數促進跨不同網域之資訊交換或資料共享。舉例來說,可定義一存取器常數MyFamily,使得一存取器功能可藉由查詢由一電子郵件應用程式或行事曆應用程式所儲存之資料,決定MyFamily之成員。綱目化邏輯與存取器之組合是很有利的,至少由於其允許非程式設計人員寫入有效跨網域查詢。此外,一相對小量條件類別結合一相對小量存取器限制允許採用大量有趣的條件,其可能不由一應用程式研發人員所提供。
根據本發明之又一態樣,可擴充使用者定義之喜好,以啟動應用程式間的關係。就許多方面而言,一IA應用程式之測量係由呈現給使用者之功能加以決定。因此,一
IA應用程式可擴充之程度可由讓使用者定義一既有應用程式架構中之新喜好之新條件與新動作之範圍加以決定。應用程式可擴充性係主要針對允許於一應用程式安裝後加入新條件與動作至該應用程式,而沒有該原始應用程式之作者之另外介入。因此,沒有研發人員輸入,使用者端可建立使用由不同應用程式提供之條件與動作之喜好,且藉此啟動應用程式間之多種關係。
再者,本發明之系統支援資訊代理者應用程式。根據本發明之一態樣,此一應用程式可關聯於個人化資料夾、資料容器、或由一資料儲存與相關檔案系統提供之其他資料組織系統(如階層系統、透過任意或顯見關係之相關檔案)。個人化資料夾由使用者端指定邏輯或喜好加以定義與控制。因此,使用者端可定義於一事件發生後控制資料夾內容之條件與動作。在本發明之一態樣中,事件對應至資料夾資料之變更(如新增、刪除、或修改的文件)。為了此發明內容的目的,喜好(如條件、動作)可濃縮為三個類別,於一使用者行為上採取動作之喜好(如將關於支出報告之電子郵件移至一類似名稱之一資料夾)、控制資料夾內容之喜好(如將最近兩週聆聽之Jazz歌曲儲存至一目前Jazz資料夾中),及該前兩者之一組合(如將小於一特定錢數之所有支出報告儲存於一已許可資料夾中,並傳送一電子郵件至一使用者端,以通知他此動作)。
根據本發明之又一態樣,可利用作用資料夾採用類工作流程(workflow-like)的動作。在此,利用喜好之一使用
者端可指定經由資料夾中項目所呈現之一多步驟工作或工作片段。可接著於該資料夾項目上採取動作,以完成該工作或工作片段。
根據本發明之一態樣,亦可利用記錄資料夾。記錄呈現與一使用者或一系統之使用者相關之歷史與架構資訊。根據本發明之一態樣,記錄可儲存於一資料儲存中,並可讓使用者端自由存取。因此,一使用者端可透過歷史資料維護控制,並根據其寫入喜好。例如,一使用者可允許其工作群組中之每個人看看關於一特定股票價格之歷史資訊,但可希望限制架構資訊,例如是否其於其桌前或於一會議中才能看到。
為了完成前述與相關部分,在此描述之本發明之特定舉例說明態樣結合下列說明與附圖。這些態樣指出本發明可實施之各種方法,其皆由本發明所涵蓋。本發明之其他優點與新穎特性可於本發明之下列詳細說明與附圖結合時顯見獲得。
現在參照附圖說明本發明,其中類似號碼皆參照類似元件。然而,應了解該圖式與其詳細說明並非用於限制本發明於所揭示之特殊形式。而是,本發明涵蓋落於本發明之精神與領域中之所有修改、對等、及變化。
當用於此應用程式中,「組件」與「系統」該詞用於稱為一電腦有關之實體,為硬體、硬體與軟體之一組合、軟體、或執行中軟體。舉例來說,一組件可為但不限於執行
於一處理器上之程序、一處理器、一物件、一可執行、一執行緒、一程式、及/或一電腦。藉由舉例說明,執行於一伺服器上之一應用程式及一伺服器皆可為一組件。一或多個組件可為於一程序及/或執行緒中,且一組件可放置於一電腦上及/或於二或多台電腦間散佈。
如在此所使用者,「推論」該詞一般稱為找出關於該系統10、環境、及/或經由事件及/或資料抓取來自一組觀察之使用者之原因或推論其狀態之程序。舉例來說,可採用推論以辨識一特定架構或動作,或可產生狀態間散佈之一可能性。該推論可為隨機的-也就是說,根據資料與事件之一考量興趣狀態間散佈之一可能性之計算。推論亦可稱為採用用以編寫來自一組事件及/或資料之高階事件之技術。此推論導致來自一組已觀察事件及/或已儲存事件資料之新事件或動作之建構,無論是否該事件相關於靠近暫時近接性,及是否事件與資料來自一或數個事件與資料來源。
資訊代理者平台
首先回到第1圖,舉例說明根據本發明一態樣之一資訊代理者系統(information agent system)100。資訊代理者系統100包含應用程式程式設計介面(API)110、編譯器120、事件組件130、架構分析器140、綱目化資料儲存150、喜好執行引擎160、動作組件170與通知組件180。系統100提供一平台,以促進各種資訊代理者應用程式(information agent applications)之執行。系統100可為一自主系統或一大型系統之一組件部份。根據本發明之一態
樣,系統100可實施與一電腦一電腦作業系統連接,其中該作業系統可實施於許多不同計算裝置上,包含但不限於個人電腦與行動裝置,例如電話及個人數位助理(PDA)。系統100亦可實施於伺服器(如SQLServer、WinFS伺服器)上,且與訂閱服務結合。因此,系統100可利用以提供各種產品與服務間之共同合作,提供客戶端、伺服器、及客戶端伺服器雲服務(如Outlook、Exchange、及Hotmail)中之資訊代理功能。
API 110包含於系統110中,以促進與系統100之互動。API 110可由一研發人員利用,以設定資訊代理者系統110中之各種組件。此外,API 110可用於建構來自一或多個事件來源及/或該目前使用者架構之複數個事件,可用於執行於該系統100上之資訊代理者應用程式。再者,一API 110可用於反應於資料儲存150中儲存之一邏輯綱目上,並寫入喜好至該資料儲存150中。應了解落入本發明領域中之API 110之許多其他使用者對熟知該項技術人士來說於閱讀此說明書之後將顯見獲得。
資料儲存150係為綱目化資料之一多種結構化儲存。資料之綱目化,將資料結構化至已知且已定義之型態中,當其允許多重應用程式互動時,對本發明特別重要。如將在下方另外詳述者,資料儲存150可由資訊代理者應用程式用以儲存關於該應用程式之資料,例如事件與喜好之表。此外,雖然該資料儲存150舉例說明為包含於資訊代理者系統100中,應了解資料儲存150可與來自該系統外
之組件互動。
編譯器120亦包含於系統100中。編譯器120作為編譯資訊代理者應用程式。尤其是,編譯器120編譯研發人員綱目與使用者端喜好。根據本發明之一態樣,促進翻譯綱目與使用者端喜好儲存於表中之資料,舉例來說,於資料儲存150中。
系統100亦包含一事件組件130。觸發啟動並提供資訊至喜好評估之事件。事件源自事件來源,其可為各應用程式或資料之內部狀態變更及/或世界上之外部變更。事件組件130可抓取來自應用程式經由一API傳送之事件,並著手喜好評估。舉例來說,事件可由一簡單郵件傳輸通訊協定(SMTP)提供者產生,其接收一新SMTP訊息、資料儲存150中之變更、作業系統動作、顯見使用者動作、及/或其他喜好之動作。事件組件130亦可自第三提供者及自複數個不同類型來源收集事件或接收事件,包含但不限於通訊,例如網際網路與網路型通訊、及電話通訊、以及軟體服務、XML檔、應用程式、及資料庫。此外,該事件組件130可透過各種方法監控與收集資料。收集資料之範例方法包含但不限於為檔案新增監控目錄、為特定類型項目檢查系統與應用程式登錄檔、設陷來自應用程式之警告、監控網頁、追蹤資料庫表中之變更、及檢閱由一網路服務提供之資料。
有各種不同模型可由該事件組件130實施以收集資料。這些模型可影響該事件組件130多常且在何種情況下
會自各種事件來源收集事件。
事件組件130可以兩種方法至少其中之一通知或提供資料。該事件組件130可等待資訊被「推」或傳送至此,或其可藉由輪詢該來源與收集任何新或已更新資料,「」來自一來源之資訊。舉例來說,若每次當一喜愛新聞頁上之一頭條故事變更時,一使用者想要被通知,例如,可實施該事件組件130以便監控頁及搜尋變更至頭條文字。當文字變更時,該事件組件130可取出該新頭條資料,並將其提供至系統100,例如藉由將其儲存於資料儲存150中之一事件表中。在上述範例中,該事件組件負責收集所需之資料,由於該資料並非自該事件來源提供至該事件組件130,如同實施一推方法論之情況。
此外,事件組件130可根據一排程或符合預定規則之一事件之發生,為該系統100獲得事件資料。一已排程事件組件130可根據由一應用程式研發人員所實施之設定定期執行。該已排程事件組件130可開始執行、取出與傳送新事件資料、並接著冬眠,直到一下一已排程觸發時間為止。一事件驅動事件組件130亦可藉由繼續執行,監控一事件來源。因此,當為集合符合一特定規則之資料時,該事件組件可集合或指示一事件之發生。或者,一事件驅動事件組件130僅可執行以響應一往回呼叫函數或某些其他外部刺激。此外部函數可接著決定是否有一有效事件資料要集合,且使用該事件組件130作為收集此資料之構件。一旦該事件組件130收集來自一外部事件來源之資料,其
可將該資料寫入一事件表,且儲存該事件表於該資料庫150中。
無論何方法或系統用於收集與/或集合事件,應了解為了有效率的目的,該事件可整批寫入與處理。一批,如一般在此定義者,可為一組資料(如事件、喜好…)處理為一群組。舉例來說,該群組或批之大小可由一研發人員於系統設定期間決定與指定及/或由一使用者經由一控制板加以決定或表明。
根據本發明之一態樣,由該架構分析器140集合之資訊包含由該分析器決定之前後文資訊。該前後文資訊係由分析器140決定,藉由根據一或多個前後文資訊來源(未顯示)辨別該使用者之位置與注意狀態,如在該說明稍後部分中將詳加描述者。舉例來說,該架構分析器3122可以精確度經由一使用者之車或行動電話之一部分之一全球定位系統(GPS)決定該使用者之實際位置。該分析器亦可實施一統計模型,以決定該使用者於一給定注意狀態之可能性,藉由考量背景評估及/或透過考量此資訊為該日期類型、該日時間、該使用者之行事曆中之資料所收集之觀察,及關於該使用者活動之觀察。該給定注意狀態接著可為一使用者定義喜好實施為一事件或一條件。
喜好執行引擎160亦可包含動作處理。雖然喜好邏輯真正指產生一組結果,在此或稱為動作,由於其為此結果之一常見效果。實施喜好執行引擎160以執行動作只是動作可執行的一種方法。動作亦可由僅自該系統100取出喜
好結果且根據其運作之應用程式加以執行。藉由該執行引擎作為系統100一部分之動作之執行具有一主動代理者之更多風味,然而由應用程式之動作執行具有被動決策邏輯之更多風味。因此,系統100可為應用程式動作處置器提供一託管服務(hosting service),其可以類似於該系統100為關於事件組件130之事件取出與處理提供一託管服務類似之方式取出及執行動作。此外,應了解根據本發明之一態樣,接近資料之動作(如移動一電子郵件至一特殊資料夾)可由執行引擎160執行於系統100中,與喜好評估以及相同交易之一部分同步。
系統100之喜好執行引擎160於其中處理或評估喜好。喜好為使用者端定義的規則,由事件的發生加以觸發。有兩個啟動模型可由系統100支援,同步與非同步。在同步啟動模型中,事件傳送與喜好評估間有一不重要延遲。也就是說,喜好評估可完成於對一事件傳送之回應傳回之前。相反的,在非同步啟動模型中,事件傳送之完成與喜好評估之完成間有一重要延遲。舉例來說,根據實施非同步啟動之一方法,佇列已傳送事件,直到其可作用為止。系統100可支援一或兩種模型啟動。此外,根據本發明之一態樣,同步與非同步行為可於批次傳送期間動態選擇,根據許多考量,包含但不限於批次大小與可用以處理之時間。喜好處理之另一態樣包含隔離與交易邊界。例如,處理關於單一事件批次之喜好可交易。或者,許多事件批次可一起處理為一交易單元。系統100可支援一或兩種上述
模型情況。或者,喜好執行引擎160處理事件傳送與喜好處理之交易領域。系統100可支援下列二模型其中之一或兩者皆可。首先,事件傳送與喜好處理可共享相同交易,並藉此一起執行。否則,事件傳送與喜好處理可發生於不同交易中。
根據本發明之一態樣,執行引擎160與系統100可支援輕量級與/或重量級資訊代理者或喜好應用程式。輕量級應用程式為要求低等待時間、一小型資料庫佔用空間、及小型工作組者。高通量與可伸縮性對輕量級應用程式來說並非第一順序要求。重量級應用程式為要求高通量、可伸縮性、高可信度、嚴格正確保證、可預期故障修復、極容易管理性。低等待時間與資源消耗對重量級應用程式來說並非頂級優先權。高效能伺服器一般執行重量級應用程式,而輕量級應用程式通常實施於低效能系統上,包含但不限於個人電腦與行動裝置。因此,該執行引擎160必須可區分輕量級應用程式與重量級應用程式,且做變更,以最負責一特殊應用程式類型之方式執行(如高通量對上低等待時間)。一般來說,該執行引擎最關心資料庫佔用空間、組件啟動中之等待時間、處理、記憶體佔用空間及永久處理。一重量級應用程式可要求(1)一大型資料庫佔用空間之分配,以支援其中之多個資料庫、表、檢視、已儲存程序、及使用者定義功能;(2)事件集合、通知產生、及通知散佈之小型輪詢區間;及(3)資訊之批次處理。輕量級應用程式之執行不同於其可(1)實施於一最小記憶體與資料
庫佔用空間;(2)為事件集合、通知產生、其通知散佈(若有的話)利用大型輪詢區間;及(3)以小型批次或個別處理資訊,例如事件。此外,根據本發明之一態樣,當要求繼續執行干擾系統回應時間之處理時,託管事件提供者與特定通知散佈可能不支援於輕量級應用程式中。然而,應了解執行引擎160彈性於可根據有效資源與技術狀態支援應用程式「輕度」的遞增變化。
應注意系統100亦包含一動作組件170。在成功評估喜好後,喜好執行引擎160可呼叫動作組件170根據一或多個有效喜好執行某些動作。動作可影響該資料儲存150(如插入、刪除或修改資料)及/或系統100內或外之其他組件與系統。一特定類型之動作係使用者通知。因此,動作組件舉例說明有通知組件180。
請參照第2圖,進一步詳加舉例說明通知組件180。通知組件180包含格式器272與傳遞通訊協定274。該通知組件180接收原始通知資料,做為最終會到達一使用者裝置(如電腦、PDA、行動電話…)之輸入與輸出格式化通知。在原始通知資料由該通知組件180接收之後,通知會轉換至為該目的裝置且可為一使用者較偏愛的語言格式化之一可讀取通知,且接著經由該傳遞通訊協定274傳送至該裝置。內容格式化係由一或多個內容格式器組件272處理之一工作。內容格式器272採取通知資料、封包至一陣列中、作為輸出。對於標準傳遞來說,應僅有一元件於該陣列中,其為單一通知記錄包含該資訊。對摘要傳遞來說,
尋找多個通知以傳送至單一訊息中之一訂閱者處,可有多個元件於該陣列中,各包含來自一通知之資料。該內容格式器272接著為顯示格式化該資料,利用包含於該通知資料中之接收資訊,舉例來說,以決定該適當格式化。此外,若實施摘要傳遞,該內容格式器272亦負責適當集合通知資訊。在內部,該內容格式器272可使用任何適當綱目以格式化該通知。舉例來說,此綱目可如實施基本字串操控般簡單,或其可能更複雜,例如使用可擴充樣式表語言(XSL)轉換或ASP.NET執行。當該內容格式器完成其工作時,其輸出包含該格式化資料之一字串。該字串與可產生之某些通知標頭資訊傳送至一傳遞通訊協定組件274。
通知傳遞經由該傳遞通訊協定274完成。當一批次通知變得有效時,該通知組件180會讀取通知中之訂閱資料,以決定適當格式化。該通知組件180可藉由一傳遞通訊協定274之方式接著傳送通知至一傳遞服務,例如一.NET警告或SMTP伺服器。尤其是,當該應用程式執行時,該通知組件172可讀取各通知,以獲得該訂閱器傳遞服務與現場。該散佈器接著將裝置與現場之組合符合至一特定格式器物件,以產生該最後通知。該通知本身可包含該原始通知資料之一組合,計算於格式化時之資料以及由該內容格式器272指定之文字。這些選項允許專業與親切使用者通知文字,且包含網路連結與烙印資訊。
雖然該系統100可處理內部通知(如彈出通知),該系統100不需要處理至外部第三者裝置之最後通知之傳遞。
而是,該系統可使用傳遞通道(未顯示),其可視為至傳遞服務之導管,例如電子郵件通訊閘道或.NET警告伺服器。尤其,一傳遞通道可由一通訊協定與一端點位址組成。該系統100可規劃一傳遞通訊協定274,以自該通知組件180提供一管線至傳輸該通知至該接收者之一外部傳遞系統。該通知組件接著可利用傳遞通訊組件274將通知封裝至一通訊協定封包中,並傳送該通知至一或多個傳遞通道。該傳遞通道接著將該封包呈現至一外部傳遞服務,其可最終傳送該通知至該想要的接收者。
資訊代理者應用程式
請參閱第3圖,根據本發明之一態樣描述一資訊代理者應用程式300。應用程式300係系統100上配置之單元,且包含一邏輯綱目310、使用者介面320、決策邏輯組件330、事件程式設計組件340、及工作排程組件350。邏輯綱目310定義可由一使用者端放在一起之綱目化邏輯建立區塊或範本。一綱目研發人員負責建構邏輯綱目310,以及預設行為,及當例外應發生時之行為。事實上,該邏輯綱目310限制使用者端邏輯之實際表達能力,藉此使其對未訓練之使用者端為實際且可行的,以實際「程式設計」一應用程式。該邏輯建立區塊可包含一喜好類別、一組條件類別定義、及一組潛在結果或動作。條件與動作可關聯於相關應用程式300及/或使用者架構之功能。此外,應了解根據本發明之一態樣,該邏輯綱目310可利用XML(可擴充標記語言)加以定義。
根據本發明之一態樣,有兩類綱目邏輯310可定義之建立區塊:定義一範本布林函數之一條件類別及定義一範本程序之一動作類別。一喜好類別係資訊代理綱目研發之一單元。一喜好包含一組已許可條件類別(如IsFrom(X)、IsTo(Y))與動作類別(如MoveToFolder(Z)、Delete( ))。此外,每個喜好關聯於一特定事件類別,或觸發以初始化一動作(如EmailEvent)。在指定一綱目邏輯310後,該綱目邏輯310可由編譯器120編譯,並堅持於資料儲存150中正常化系統條列表中。此外,已儲存程序可於可評估喜好之編譯期間加以建立。該綱目邏輯310與該程序可儲存於綱目化資料儲存150中,以供稍後存取與執行。因此,當一使用者尋找指定一喜好時,可與該邏輯綱目122做比較,以驗證其正式承諾,且接著儲存於資料儲存150中,舉例來說,於喜好之一或多個表中。當一適當事件發生時,該系統100可接著確保該適當喜好已藉由執行於編譯時建立之已儲存程序加以評估。根據本發明之一態樣,該已儲存程序可以一組導向方式有效一起評估複數個喜好,開發如同索引與減少複製(在下說明)之技術。
使用者介面320呈現一喜好授權與程式設計介面至使用者端。使用者端為未受訓練的研發人員,因此標準程序程式設計或程式碼對使用者來說並非一能指定邏輯之可實行選項。因此,例如該邏輯可以一按下且拖曳或複製且貼上之方式經由使用者介面320視覺代表與呈現給使用者端。應注意一使用者介面320可為一應用程式300中之一
工具列或一整個獨立的圖形使用者介面(GUI)。此外,應了解雖然應用程式300舉例說明為包含一使用者介面320,應用程式300不需要具有其本身用以定義喜好之使用者介面。應用程式可設計為了邏輯建立之目的,利用一作業系統或一應用程式特定使用者介面。
應用程式300亦包含可由使用者端實施以產生不同功能的喜好或程式之三個組件-決策邏輯組件330、事件程式設計組件340、及工作排程組件430。決策邏輯組件330讓使用者端定義決策邏輯(亦稱為使用者端邏輯)。一應用程式可接著允許欲由該已定義使用者端邏輯控制之各種決策。舉例來說,使用者端可指定警報是否、何時、及如何彈出於一螢幕上,且中斷該使用者。一應用程式亦可暴露使用者端可附上決策邏輯之事件。例如,一電子郵件應用程式可產生一事件,不論一新電子郵件何時到達一資料夾中。事件程式設計組件340允許使用者端附上喜好或規則,舉例來說,其指定可根據該訊息之內容與一使用者之架構發生之行為。該規則中之條件可存取來自其他應用程式的資料(如一主動目錄檢查是否該傳送者係來自該相同之工作群組),且該動作可根據本發明之一態樣影響其他應用程式450或產生另一事件。工作排程組件430讓使用者端將無線網路點對點傳輸模式或預定工作伴隨一事件發生。舉例來說,當一新顧客投訴產生時,該使用者端可選擇著手一預定工作流程,以處理該投訴。
決策邏輯組件330允許使用者端藉由結合一研發人員
提供之條件與結論範本寫入決策邏輯或使用者端邏輯程式。決策邏輯可利用「IF(條件)THEN(結果)」喜好或規則加以指定。此類型之邏輯對使用者端規格來說尤其適當,由於甚至絕對完全沒有程式設計經驗的使用者端可容易了解與建立此規則。舉例來說,考量下列:IF(TheDogBarks)OR(TheBeegStings)THEN(IFeelSad)。此規則有點像一非研發人員,且一孩童可了解且鏈接給予該正確的使用者介面。此類型IF-THEN邏輯程式設計對使用者端規格是適當的,至少由於其符合人類理由的概念與口頭通訊。單一規則的語義係可宣告且很好了解的,也就是如果且僅如果該條件為真,則結果為真。此外,對使用者來說,應用喜好邏輯於該主動架構中是很直覺的。該結果變成要採取的動作,而非僅老生常談的陳述式。舉例來說,IF(TheDogBarks OR TheBeeStings)THEN(ThinkAboutRaindropsOnRoses)。即使在單一IF-THEN規則中,允許可有不同程度的豐富度於該表達能力中。該前一範例大略對應至命題邏輯。命題邏輯係基於僅真/假命題可結合以製作邏輯陳述式之概念。然而,可能對平均使用者來說太複雜,以指定包含但不限於預測邏輯、限制邏輯、及迴圈,之較豐富之邏輯形式亦可結合本發明加以實施。
喜好可透過一使用者介面(如控制板、工具列)加以指定。一綱目研發人員可提供一組基本術語,作為條件邏輯之建立區塊。使用者端可接著挑出適當條件、指派適當之參數值、並將其與布林運算子(如AND、OR、NOT)結合。
同樣的,該使用者端可挑出適當結果並指派適當之參數值。使用者端指定程式之豐富度來自由一研發人員所提供之綱目化邏輯。這些條件與結果範本可豐富於其內部邏輯中,存取各種資訊,包含使用者端應用程式之結構化資料。每個條件或結果範本可具有描述一參數清單之一綱目。一使用者端可藉由僅提供適當參數值利用這些建立區塊。
目前所描述者係資訊代理者系統100之一被動利用,下方將描述一較主動之樣式。根據該系統100之一被動使用,一應用程式負責於該適當階段呼叫該決策邏輯,且提供該必要參數。該應用程式亦可負責呼叫另一應用程式,以作用於該結果上。此外,應注意該程式基礎建設、系統100亦可能需要一轉譯器(未顯示),以評估喜好、處理多個喜好間之衝突、及決定結果之正確組。
事件程式設計組件340為一資訊代理者應用程式300提供至少三個功能。首先,事件程式設計組件420可為使用者端程式提供作為銜接之一組綱目化資訊事件(如由綱目研發人員所定義)。各事件可攜帶結構化資料。有許多機制用於事件範例抓取(如事件傳送之API)。亦有一些資訊事件之子類別。事件之一子類別對應至變更於該綱目化資料儲存150中之資料。因此,事件程式設計組件340可提供機制,以存取變更於該儲存420中之資料,並使其可用為綱目化變更事件。事件之另一子類別可對應至遞迴計時器事件,其對已排程喜好活動來說可能很重要。事件程式設計組件340亦可提供關聯使用者端「處置器」邏輯至特
定事件發生之能力。此外,該事件程式設計組件340可提供服務以抓取事件、應用該適當決策邏輯、並呼叫動作處理器,以執行該決策結果。
該事件程式設計組件340可與決策邏輯組件330互動,以提供增加之功能。例如,一使用者端可利用決策邏輯組件330設定標準決策邏輯,其重複應用為新事件到達。因此,該系統與/或執行於其上之應用程式可啟動於每個觸發事件導致該適當決策邏輯之評估時。尤其是,觸發事件可形成至決策邏輯之輸入,且喜好邏輯評估之結果可形成該事件程式設計組件340可代表該使用者端執行之動作。此外,動作可產生新的事件,接著導致另外的邏輯由該程式設計組件340執行。因此,有一無線網路點對點傳輸模式鏈接事件程式設計之概念。
工作排程組件350管理使用者端工作排程或工作流程。在此所實施之一排程戲劇有特定順序或階段於其間之工作之一管絃樂曲組。於其整體中執行工作之目的一般係為了完成某些真實世界的目的,舉例來說,安排與四個人之一會議。在該會議範例中,該排程中之工作其中可包含傳出該初始會議要求,並處理正面與負面回應。工作流程於該商業處理自動化中很常見,如針對本發明所述之工作排程或工作流程關聯於使用者端活動(如安排會議、檢閱文件、委派要求…)。這些工作流程許多為簡單處理,其可自訂且對一使用者端係透明的。
工作排程組件350可與由該決策邏輯組件330與該事
件程式設計組件340所提供之功能互動並影響該事件程式設計組件340所提供之功能。該事件程式設計組件340提供一理想銜接以呼叫一工作排程。舉例來說,包含一工作要求之一新電子郵件之到達可能開始一工作排程。某些工作排程以清楚的處理流僵化。許多其他工作排程為有彈性的,允許一使用者端選擇不同路徑之間。舉例來說,若一會議要求被二或更多被邀請者拒絕,該會議可能重新排程或該會議可處理。此對利用使用者端喜好與決策邏輯組件330來說係一很好的領域。此外,應注意根據本發明另一態樣,由於排程包含對變更的反應與呼叫適當的動作,該工作排程組件350可併入該事件程式設計組件340中。總而言之,當工作排程之某些部分可能被研發人員寫死時,藉由做出該流動態加入一重要值,由顯見使用者決策加以配置,其有時候經由使用者端程式設計自動化。
在此描述有至少二中央元件於該資訊代理者概念。首先,使用者端提供控制應用程式行為之決策邏輯之能力是很重要的。此僅為使用者端的應用程式程式設計能力,且不包含代表該使用者端運作之代理者。此在此稱為使用者端邏輯之被動調用。第二,該資訊代理者概念中之一重要元件係使用者端提供主動之決策邏輯之能力。當適當資訊事件發生時,主動之決策邏輯可重複應用,藉此作為代表一使用者端之一軟體代理者。在這兩種情況中,該決策邏輯一般於該使用者之架構與該應用程式之狀態上係前後相依的。在這兩個架構類別中各種種類的情況將在後方加以
描述。此外,亦會加以描述一資訊代理者可採取之不同「個人」之形式中之端對端情況。
使用者端邏輯之一被動調用之一範例係利用一資訊代理者控制一使用者之中斷之一作業系統。無論何時,某些應用程式想要產生一彈出視窗於一螢幕上,具有該作業系統可利用一API呼叫該資訊代理者決策邏輯組件之一聲音,以決定應發生什麼事。有幾個可能的結論可由該決策邏輯組件揭示,包含顯示、延遲、刪除、及傳送。一旦該決策邏輯組件330告訴它做些什麼時,該作業系統接著可實施該實際決策。
該決策邏輯組件330應可實施以自訂傳統程式之選項。例如,傳統電子郵件程式提供用以讀取收據、應用簽名、及為郵件優先權之選項。當每次讀取收據時,常常有一核取方塊指示是否讀取收據應被啟動與否。該決策邏輯組件330應自訂此選項,僅為重要訊息或傳送至其管理之訊息允許收據讀取。此外,一使用者一般可應用一簽名至外送訊息,然而,應用該決策邏輯組件330可藉由根據該想要的收據附加一簽名至訊息讓該操作更有價值且個人化。最後,電子郵件優先權程度一般由該傳送者決定且設定。藉由利用該決策邏輯組件330,舉例來說,郵件優先權亦可由該接收者根據該接收者目前架構架構加以決定。此外,應注意使用者端邏輯不只可利用以決定如上述之情況中做些什麼(如附上簽名),亦可決定該動作之內容應該是什麼(如應實際附上什麼簽名)。
經由決策邏輯組件330之使用者端邏輯之主動調用可用於複數個情況中。舉例來說,主動邏輯可實施於已組織資料,例如當自一攝影機下載時分類圖片,或當根據組織規則接收時發電子郵件。主動邏輯亦可用於對變更加以反應,例如當一新電子郵件到達,且該接收者不不在其桌前時,將其傳送至其手機。主動邏輯亦可用於增強通訊,舉例來說,藉由當其沒空時回答一使用者之電話,並回答下一次該使用者將有空接收一來電時。此外,主動邏輯可用於訂閱已公佈資訊,例如,使得當預期旅遊目的地有壞天氣時可通知一使用者。又主動邏輯可實施以維護架構。舉例來說,當一使用者進入與離開不同位置之會議室時,可適當地更新架構(如遠端或區域、忙碌或有空、…)。
資訊代理者可扮演各種角色,正如同實際人類代理者為一使用者所做的。因此,資訊代理者可具有不同人格,包含但不限於增強通訊之一秘書、組織資訊之一圖書館員、確保一負責人/使用者意識到機會之一服務代理者、確保該負責人/使用者沒有麻煩之一伴護、及使一負責人/使用者看起來且感覺起來很好之一侍僕。作為一秘書,一資訊代理者可執行各種功能,例如當該負責人/使用者沒空時回答來電、將一來電轉至一沒空的使用者語音信箱、並立即傳送訊息給該使用者,指出漏接一來電。作為一圖書館員,一資訊代理者可組織數位照片與電子郵件。作為一服務代理者,舉例來說,一資訊代理者可保持一負責人被通知買一待售股票或不動產之機會。一資訊代理者作為一伴
護,可通知該負責人其銀行帳戶平衡何時低於一最小平衡,通知該負責人何時接近其信用卡限制,提供通知以確保帳單準時付款,及/或警告一負責人其電腦上一電池或磁碟已滿。作為一侍僕,一資訊代理者可拉出關於來自一重要顧客之一來電之所有文件及電子郵件,及/或確保難為情的通知不會彈出於一簡報中央。
邏輯框架
回到第4圖,根據本發明描述一範例邏輯綱目400。邏輯綱目400包含條件類別410、動作類別415、事件類別420、喜好類別425、結合430、記錄435、衝突解決方法445、顯見執行順序450、所需條件與動作455、範本460、及已排程與遞迴喜好465。範例邏輯綱目400與該前述框架組件係為了簡化說明的目的加以提供。因此,應了解一邏輯綱目400可包含所有前述組件、其中之一子組、及/或在此未描述之額外綱目組件。如之前所討論的,一綱目研發人員定義可由一使用者端放在一起的綱目化邏輯建立區塊。建立區塊之兩種類一條件類別410與一動作類別415。該條件類別410可定義範本化布林函數,而該動作類別415可定義範本化程序。一喜好類別425係資訊代理者綱目研發之一單元。一喜好類別425其中可包含一組已允許條件類別與動作類別、結合430、衝突解決方法445、及所需條件455。此外,每個喜好類別425可與一特定事件類別420相關,其定義喜好之觸發事件。下列係為一資訊代理者電子郵件應用程式之一喜好類別之一範例:
InboxPreferenceClass
‧ ConditionClasses
。 IsFrom(X)
。 IsTo(Y)
‧ ActionClasses
。 MoveToFolder(Z)
。 Delete( )
‧ TriggeringEventClass
。 EmailEventCiass
‧ Source of triggering event
。 Changes to an inbox folder
。 ApplyNow( )
。 ScheduledEvent( )
喜好係使用者端邏輯之一單元。喜好可為「ON(事件)IF(條件)THEN(動作組)」形式之邏輯陳述式。因此,每個喜好應該但不必要具有下列屬性。首先,該喜好應屬於一喜好類別。第二,該喜好應由某些使用者或負責人所擁有。第三,該條件應為一宣告式布林運算式,結合一或多個條件類別範例,其中每個條件範例為一條件類別定義該參數值。最後,該動作組應為一組動作類別。每個動作範例為一動作類別定義參數值。舉例來說:
UserPreference:
‧ InBoxPreferenceClass之範例
‧ IF (IsFrom(John) OR IsTo('bookclub”) THEN
MovetoFolder('Book Club')
使用者端接著可藉由定義事件處置器加以「程式設計」。各事件處置器由相同喜好類別之一組喜好加以定義,且因此由該相同事件加以觸發。舉例來說,
‧ IF (IsFrom(John) OR IsTo('bookclub") THEN MovetoFolder('Book Club')
‧ IF (IsTo('SillyStuffD L') THEN Delete( )
因此,當一特定事件發生(如一電子郵件到達)超過一次時,喜好會具有一有效條件,導致執行多個動作之可能性。各種衝突解決方法機制接著可應用為如下所述。
此外,應了解每個條件僅為一布林函數及其調用參數。根據本發明之一態樣,要求綱目邏輯以生成應用程式邊界。因此,條件必須可檢閱由許多不同應用程式所建立之資料。舉例來說:
‧ 呈現資料:IF (IsFrom('John') AND SenderlsOnline( )) THEN...
‧ 位置資料:IF (IAmFarMeetingLocation( )) THEN ReminderMinutesWindow(30)
‧ 組織規劃階層:IF (lsFromMyManagement( )) THEN MarkAsHighPriority( )
上述所有範例係處理使用者架構。使用者架構可由架構分析器140(第1圖)加以決定,並儲存於資料儲存150(第1圖)中,以供資訊代理者應用程式加以使用。因此,如同「Bool IsOnline(X)」之一函數可根據傳入之個人X之身分
傳回真或假,且其呈現架構由該架構分析器加以決定。
繼續上述範例,一喜好類別,例如InBoxPreferenceClass,之一綱目研發人員必須提供一條件類別410,以供一使用者端加以使用。此可以幾個方法加以完成。舉例來說,一條件類別可為IsOnline( )。在此情況中,一使用者端可以「IF(IsOnline(Email.Sender))THEN....」之形式定義一喜好。或者,該條件類別可為SenderIsOnline( ),且在其宣告中,該綱目研發人員可將其結合至IsOnline(X),且將X結合至Email.Sender。因此,一使用者端可定義一喜好或規則為:「IF(SenderIsOnline( ))THEN....」。雖然,本發明支援許多指定條件類別410之形式,應注意有一重大差異於該上述形式中。該第一形式係一傳統判斷演算規則形式,其中該人類授權該規則(即該使用者端)關於綱目與變數結合之理由。該第二形式係較沒有彈性,但絕對對一使用者端實施上較為簡單。因此,類別條件410係綱目研發人員可限制使用者端邏輯表達能力之一區域,且藉此讓其對天真的使用者端更實際且更可行以「程式設計」資訊代理者應用程式。
簡言之,當一綱目研發人員著作一喜好類別425時,做出一組條件類別宣告410。各條件類別宣告識別一實施函數及由研發人員定義運算式所結合之函數之某些參數。當設定喜好時,該剩餘參數為該使用者端為每個條件範例所提供之常數。動作為動作類別415之範例。每個動作類別415係具有參數之一程序。正如同具有條件,該參數可
由該研發人員加以結合,或可由該使用者端指派為常數。此外,事件類別420提供事件之定義。一事件類別定義一事件之資訊內容,如由一研發人員所指定或由一使用者端所指派者,其觸發喜好評估。
如透過此說明書所注意且根據本發明之一態樣者,使用者端並非預期為有經驗的程式設計人員。因此,喜好係根據具有直覺名稱(如EmailIsFrom( ))之條件加以建立,且該條件參數可為簡單的使用者定義常數(如Mary)。此讓一使用者端寫入由EmailIsFrom(Mary)所觸發之一喜好。然而,具有僅根據使用者提供之字串常數之參數太受限制了。因此,結合430可指定於邏輯綱目400中,做為該喜好類別425之一部分,使程式設計對使用者端更簡單,且擴充資訊可自其取出之網域。至少有三類型的參數結合可指定於綱目400中。首先,可指定預定一常數之常數結合。指定一常數結合是很有利的,至少由於其自必須選擇或指定一常數釋放一使用者端。事件結合運算式亦可結合至當作參數提供至條件與動作之值。尤其是,可定義一運算式使用事件欄位與常數以計算一值。舉例來說:
‧ 條件類別:SenderIsOnline( )
‧ 定義函數:IsOnline(X)
‧ 結合:X → Email.Sender
最後,可定義常數存取器。常數存取器命名為物件群組,其提供參數至條件與動作,以取代一使用者必須手動指定各物件。
常數存取器是非常強大的常數,允許寫入可瀏覽與取出來自各種網域之資訊之喜好與條件。這些常數為簡單名稱裝飾的函數,操作以尋找與實現正確的資訊,也就是與該常數名稱相關之群組成員。暫時回到第5圖,根據本發明之一態樣舉例說明用以取出常數值之一系統500。系統500包含一存取器輸入組件510、一連結組件520、及複數個網域530、540、及550(DOMAIN1至DOMAINN,其中N係大於1)。存取器輸入組件610接收做為輸入一常數,例如MyFamily、MyCoworkers、或MyFriends,並提供該常數至存取器組件520。存取器組件520可用以搜尋整個可存取網域520、530、及540,以嘗試與解決或連結至與由該輸入常數指定之群組成員相關的值。根據本發明之一態樣,網域530、540、及550可為儲存於一綱目資料儲存中之應用程式。例如,網域520可為一電子郵件應用程式、網域530可為一行事曆應用程式、而網域540可為一顧客帳戶應用程式。因此,存取器組件520應存取一電子郵件應用程式或將區域化資料登錄於一嘗試中,以決定一常數(如MyFamily)之值。若組件520無法解決該網域或一區域化資料登錄中之值,可持續檢查額外可存取網域,直到決定常數值,或已檢查所有有效網域為止。在一範例中,存取器組件可尋找該電子郵件應用程式中之資料,例如:
應注意關於該常數MyFamily之群組之成員之XML呈現方式僅用於舉例說明。一群組之群體可以許多方式由本發明定義及/或實現。因此,存取器組件520可根據自該電子郵件應用程式取出之資料解決或連結MyFamily至Bob Jones、Barb Jones、Michael Jones、及Jason Jones。然而,存取器組件540可繼續檢查其他網域,以確保資料完整性與精確性。舉例來說,可找到<MySister>Jennifer Jones</MySister>於一行事曆應用程式中,並將此值加入關於該常數MyFamily之值之字串中。
當關於一給定使用者加以定義時,目前所討論之常數(如MyFamily、MyCoworkers、MyFriends、MyFavorite、Musicians)已知為第一順序常數。一存取器組件510或存取器接著可離鍵一使用者身份或其他起始點,亦應注意該第N順序常數亦可由一使用者藉由利用喜好加以組成與儲存,以結合之前定義之群組(如由常數命名)。藉由舉例說明,考量提供類似於前置詞彙語義之功能之常數命名群組之組合。例如,一使用者可組成與儲存代表如FriendsOfMyFamily或EmailsFromPreferredCustomersInAppointmentsToday之群
組之常數。從另一觀點,該常數擴充類似於項目欄位上之條件,其亦可代表為常數存取器且與其他常數結合。
因此,常數存取器提供跨不同網域之資料瀏覽。具有瀏覽存取器之綱目化邏輯之組合讓非程式設計人員寫入跨網域喜好。此外,一相對小量條件類別結合一相對小量存取器限制促進大量興趣與強大條件之指定,或必須由一應用程式研發人員加以參與。
除此之外,應注意亦可指定喜好群組。由使用者端定義之決策邏輯由一或多個喜好組加以代表。因此,喜好群組可定義為相關喜好之群組之一容器。一喜好群組中之喜好可接著(1)屬於相同喜好類別,(2)一起評估,該結果關於衝突解決方法。此外,喜好群組中之喜好可集合啟動與取消。集合啟動與取消喜好可能在無述情況中很有用。舉例來說,一使用者端可於工作時具有一組喜好,且於在家時具有另一組喜好。因此,喜好群組可根據使用者架構加以啟動或取消。
邏輯綱目400亦可包含記錄435。許多資訊代理者應用程式必須維護狀態,以做出切合實際的決策。以下提供一簡單範例,考量一新聞公佈資訊代理者應用程式。使用者端訂閱有興趣的新閱文章。事件餽送帶有新聞文章之一穩定流。一問題係相同文章可能以稍微修改的內容到達很多次,但有相同的標題。在此架構中,一切合實際的條件為:IsNewArticle( )。此條件可檢查該標題以前未曾見過。另一範例為檢查是否更新之一穩定流使一文章成為之中斷
之故事。為了啟動此類型的功能,當事件被處理時,必須維護一狀態。此狀態在此稱為一記錄,由於其係應用程式歷史之一呈現方式。
一資訊代理者綱目研發人員可定義記錄(如作為一相關資料庫中之表中、或由一作業系統所管理之資料夾中)。更重要的是,一綱目研發人員可定義可執行於事件處理之關鍵階段之邏輯,以更新一應用程式狀態。舉例來說,計算是否一事件對應至一中斷故事之一適當時間會在事件被處理之前。此外,記錄一新聞文章被處理之事實使得後續具有相同標題顯示為副本之事件之適當時間會在事件被處理之後。此外,應注意亦可實施記錄以記錄動作歷史以及事件歷史。
研發人員可於一衝突解決方法組件545中指定衝突解決方法程序或邏輯,作為邏輯綱目400中之喜好類別425之一部分。當一事件發生時,若多個喜好符合該事件,可能產生多個動作。因此,需要用以決定執行與/或採取該最後動作之順序之一系統與方法。至少有三種方法處理多個動作之觸發。首先,綱目500可讓使用者端定義動作或喜好優先權。舉例來說,使用者端可指派優先權給每個喜好。此外,使用者端可指派一停止處理指示器(如旗標)至特定喜好。因此,當一事件觸發多個動作時,動作可以優先權之順序執行。此外,或者,若多個喜好符合於一喜好群組中,可執行該最高優先權喜好,而其他則被捨棄。此外,一綱目400可讓使用者端指定衝突解決方法程序,例如允
許其附加一停止處理指示器至特定喜好,以處理包含該指示器之一喜好與其他喜好同時被觸發之一情況。衝突可被解決之另一方式係藉由定義該綱目400中之動作類別優先權。因此,一綱目研發人員可指定動作類別優先權。例如,該MoveToFolder動作類別可被指派比該Delete動作類別較高之優先權。當相同動作類別之多個動作同時觸發時,可能產生其他衝突情況。綱目研發人員可定義複數個衝突解決方法邏輯,以處理此類型之情況。舉例來說,假設有一動作類別設定想要彈出視窗的量(如SetVolume( ))。另外假設一事件觸發二動作,SetVolume(50)與SetVolume(70)。在此情況中,定義於衝突解決方法組件545中之衝突邏輯可被定義,使得採取之動作對應至最小值、最大值、或兩程度之平均值。
喜好執行順序亦可經由顯見執行組件450指定於綱目400中。在某些情況中,喜好的顯見順序是必要的,由於一喜好之動作可影響另一喜好之條件。舉例來說,藉由電子郵件喜好,一喜好可用於決定輸入訊息之優先權,而另一喜好可寫入以反應至該訊息之優先權,並決定如何運作。使用者端喜好寫入者一般是沒有經驗的程式設計人員。根據本發明之一態樣,使用者端不要求寫入具有邊際效應之喜好或規則,且因此排序需求。對綱目研發人員來說,最好對該使用者端隱藏該順序依賴性。此可以複數個不同方式加以完成,包含但不限於喜好類別排序、顯見鏈與喜好群組順序。藉由喜好群組順序,一綱目研發人員可
排序一喜好類別,以在另一喜好類別前加以執行。在前述範例中,用以建立訊息屬性(如優先權)之喜好類別應在反應至該訊息之喜好類別之前。根據本發明之一態樣,呈現給一使用者端之使用者介面可切割窗格,使得各喜好類別具有其自己的窗格。對每個顯見鏈,一綱目研發人員可指定產生新事件之動作與其順序。因此,喜好類別可以動作事件鏈而非喜好類別順序加以實施。再者,一綱目研發人員可利用喜好群組指定執行順序。利用喜好群組順序提供與喜好類別順序相同的功能,但為更有彈性之形式。例如,每個喜好群組可具有剛好一個喜好於其中,導致喜好之總排序清單之對等者。
「所需」條件與動作亦可指定於一綱目400中,作為利用所需條件與動作組件455之喜好類別425之一部分。每個喜好類別可包含所需條件與動作。可實施所需條件與動作以加強所有喜好上之特定共用樣式。舉例來說,在應用於一伺服器上之熟悉電子郵件處理範例中,收件匣喜好上之一所需條件可為喜好之擁有者亦為該電子郵件之接收者。
範本460亦可定義於邏輯綱目400中。為了促進邏輯之無經驗使用者端著作權,範本可為使用者端由研發人員或第三者提供以調適與利用。因此,若範本可用於使用者端,該系統100應支援一喜好範本之摘要。此可僅對應至具有某些未指定參數之一堅持完整喜好(選擇條件運算式與動作)。
亦可定義綱目400,以經由已排程與遞迴喜好組件465處理已排程與遞迴喜好。許多資訊代理者應用程式可能想要利用於一遞迴排程上評估之喜好。許多範例其中之一包含於每個工作天5點傳送摘要狀態之一喜好。根據本發明之一態樣,已排程與遞迴功能可利用摘要實施於一綱目400中。首先,可實施一系統定義事件類別(如TimerEvent)以為已排程活動提供一事件銜接。此事件類別可配置至各種規則顆粒度。此外,與該事件相關之資料可包含目前時間與之前啟動時間。第二,每個已排程喜好可包含一條件,例如:RecurrenceInWindow (RecurrenceSchedule, StartTime, EndTime),其中‧ RecurrenceSchedule係代表該想要遞迴樣式之一常數,當自一使用者端規格抓取時;‧ StartTime由一研發人員結合至該計時器事件之前一時間;及‧ EndTime由一研發人員結合至該計時器事件之目前啟動時間。
總而言之,一邏輯綱目400可包含許多不同組件或區段,以為使用者端喜好提供邏輯建立區塊。該綱目可採取任何形式,舉例來說,一XML檔。一旦該綱目完成,可編譯至一資料庫呈現方式,且舉例來說儲存於資料儲存150(第1圖)中。應了解可利用一應用程式直接授權或建構該綱目檔案,例如Visual Studio。因此,該系統編譯器應
可支援利用許多綱目編輯器應用程式所產生之綱目檔案。
應用程式執行
資訊代理者應用程式之執行可細分成三個不同類別:事件處理、喜好處理、及動作處理。事件處理處理事件如何被抓取及其如何啟動喜好邏輯。喜好處理可完成於複數個不同方法中,根據不同喜好處理模式上之部分而定。最後,應用程式執行包含決定如何處理動作。
事件可由顯見利用系統API 110(第1圖)傳送事件之某些應用程式抓取。事件可個別或一起作為一批次加以傳送。有無數個情況為事件抓取包含但不限於:
●作為規則應用程式邏輯之部分,舉例來說,一交換SMTP提供者可接收新SMTP訊息,且顯見產生資訊代理者事件。
●來自資料變更,例如,當資料變更於資料儲存150中時為IA邏輯觸發事件。
●來自一作業系統,舉例來說,一應用程式可聆聽一作業系統及/或其相關執行時間,並於一特定動作之偵測後產生事件。
●來自資訊代理者喜好,一喜好之動作可產生另一事件,導致跨喜好評估加以鏈接。
●一使用者可顯見指定產生之事件。舉例來說,一使用者可指定一事件係根據一資料夾中各檔案加以產生。
此外,應注意系統100可為事件抓取邏輯提供一託管
服務,其不要求一大型應用程式主動執行。舉例來說,一資訊代理者應用程式可能想要特定作業系統事件觸發應用程式活動。因此,可能託管一服務中之此事件提供者,而非要求一個別應用程式僅為此功能加以執行。
喜好可由事件之發生加以啟動。其處理可為同步、非同步、或兩者之一組合。藉由同步處理,事件傳送與喜好評估間有一不重大的小量延遲。另一態樣,非同步處理具有事件傳送與事件處理間之一重大延遲。本發明之系統支援處理之兩種模型,且可根據事件批次傳送及時於該模型間做選擇。
此外,根據本發明之一態樣,喜好處理利用資料庫查詢之能力,以有效評估喜好。暴露至一研發人員且最終至一使用者端者係一宣告式程式設計模型,允許根據一一次一個模型指定之條件功能。一一次一個程式設計模型係最自然使用,且讓研發人員與使用者對一喜好指定一事件之一模型。然而,根據本發明之一態樣,該系統100做出以一組導向方式執行之條件類別查詢,發展如同索引與減少複製之技術。此於一有效方式中評估之喜好是很有利的,而研發人員與使用者端剩下概念化與以一次一個方式寫入程式,雖然容易了解且以一無效率方法寫入以執行許多喜好。此外,當多個喜好可批次處理時,應注意在一事件發生後,可個別評估喜好。
回到第6圖,根據本發明之一態樣為喜好評估舉例說明一系統600。系統600包含一資料儲存150、許多表610、
一喜好執行引擎160及一結果表630。資料儲存150含有許多表610,其自一研發人員綱目以及使用者端喜好由系統100加以產生。一事件發生之結果,喜好執行引擎接收或取出喜好,舉例來說,自儲存於資料儲存150中之一表。執行引擎160接著利用該喜好以及某些已儲存程序(其亦儲存為資料),以查詢表610與產生一結果表630。結果表630可儲存其條件已滿足之喜好,使得指定的動作可於其上著手。
表610之數量與複雜度可能相異,根據一研發人員寫入以支援使用者端喜好之綱目之複雜度而定。於後方呈現一範例,以澄清系統600如何利用資料庫表與查詢處理喜好。在此範例中,有兩個人Jack與Jill尋找利用不同喜好群組。如已討論者,於Jack與Jill可指定使用者端喜好前,必須已產生一綱目。一綱目如上述般具有幾個部分,然而,為了容易了解的目的,在此將描述一非常簡單的綱目。一綱目之基本部分其中之一係事件類別之定義。在此範例中,考慮兩個事件類別,EmailEvents與Stockevents。回到在此附上之附錄,顯示虛擬碼,舉例說明二事件類別以及三喜好類別之一綱目定義。該二喜好類別係基於EmailEvents,而該第三類別係基於StockEvents。該資訊系統100接著可利用此綱目以產生一喜好類別表與一條件類別,其可儲存於一資料儲存150中。舉例來說:
Jack與Jill接著可定義其喜好。為了此範例之目的,假設Jack定義三個喜好群組PG(Jack,1)、PG(Jack,2)、及PG(Jack,3)。此外,Jack定義了於該群組中散佈之五個喜好,如下所示:
PG(Jack,1)
P1:On EmailEvents if MaillsFrom (Mary) AND MailContains ("California")
then PopAToast
P2:On EmailEvents if MaillsFrom (Bob) OR MailContains ("InfoAgent")
then PopAToast
P3:On EmailEvents if MaillsFrom (Home) OR MaillsFrom (MyWife) OR MaillsFrom (MySon)
then PopAToast
PG(Jack,2)
P3:On EmailEvenls if MailIsFrom (Home) OR MaillsFrom (MyWifc) OR MaillsFrom (MySon)
then PopAToast
PG(Jack,3)
P4:On EmailEvents if MaiilsFrom (Home) AND MailPriority (10)
then MoveToFolder ("URGENT")
P5 :On EmailEvents if MailPriority (15)
then MoveToFolder ("VERY URGENT")
假設為了此範例之目的,Jill定義兩個喜好群組(Jill,1)與(Jill,2)。此外,假設Jill指定五個喜好散佈於該群組中,如下所示:
PG(Jill, 1)
P6: On EmailEvents if MaillsFrom (Home) OR MailContains ("Vacation")
then PopAToast
P7:On EmailEvents if MaillsFrom (Bob)AND !MailContains ("Work")
then PopAToast
P8: On EmailEvents ifMailContains ("Bonus")
then PopAToast
PG(Jill,2)
P9: On StockEvents if StockSymbol = ('EBAY') AND TargetPrice > 120
then SendCellPhoneMessage ('Me')
P 10: On StockEvents if StockSymbol = ('AMZN') AND TargetPrice > 50
then SendCellPhoneMessage ('Me')
資訊代理者系統100接著可利用這些喜好以產生額外相關資料庫表,描述與其相關之喜好與條件。一次一個考量下列範例表,且其如何實施以評估喜好。
下方顯示之喜好群組表包含五列,各為各個Jack與Jill的已定義喜好群組。另注意指定一行以指示是否啟動一喜好群組。如上所述,這是很有用的,例如,若一使用者想要指定當他們在家時啟動之一喜好群組且當他們在工作時啟動之另一喜好群組。在此,所有喜好群組皆顯示為已啟動。
亦可定義一PreferenceGroupMemberShip表,以歸納何喜好為何喜好群組之成員。此表於下方舉例說明包含十一列,各為各個喜好。
下方的喜好表可儲存於資料儲存150中,以歸納關於由該使用者定義之喜好之資料。此表將包含對應至十個喜好各個之十列。請注意此表已著重於僅顯示重要列與名稱。
亦應注意總計有14個AND群組於上述喜好表中。此
外,上述總計有19個條件。關於這些AND群組與條件之資訊可於額外表中抓取,如下所示:
AND群組id為來自前一表之有順序之數字。ConditionCount記錄由一AND連接之條件數。上表中唯一令人驚訝的一列項目為如下所示者。
7 11 1 -From(Bob)AND!Contains(Work)
注意該ConditionCount係1而非如預期般的2。為了計算查詢評估中存在之NOT,該條件計數定為為僅一AND
群組中那些條件之總合,且不具有一Not(!)於其前方。具有一NOT於其前方之條件可被歸納於如下所示之一個別表中。
ANDGroups可另定義於稱為ANDGroupMembership之一表中,作為下列著重的表,舉例說明:
如上所注意到的,具有NOT的條件可被視為一特殊情況,且歸納於其自己的表中,如下所示:
亦可建立一條件值表,以儲存於喜好中指定之條件值。應注意此表僅允許與各條件相關之二參數值。為了此
範例之目的,部分已經足夠,由於所有條件僅具有一參數值,然而,若允許條件包含與其相關之超過二個值,則可擴充該表,或者可例示另一表以顯示該額外條件值。
亦可提供一ConditionsResults表。一ConditionsResults可利用為該最後結果表730之一前身。ConditionsResults表集結於當執行條件查詢時。當條件查詢還沒有執行時,該表中還沒有列。用以評估條件與集結該表之範例程序皆示於下。
如之前所提及者,本發明之其中一態樣係呈現一宣告
式程式設計系統,允許揭露一次一個模組給條件函數之研發人員,但其最終會做出條件類別查詢,以一組導向方式執行,以利用資料庫查詢效率。因此,一對一條件類別宣告可轉換至查詢中。例如,在EmailEvents中,一使用者端喜好可根據一電子郵件之傳送者做出一動作(如Jack的P1)。因此,一使用者端經由一用者介面可寫入MaillsFrom(Mary)。然而,當執行喜好時,系統700會執行一使用者條件陳述式之資料庫查詢呈現方式。舉例來說,該系統可執行下列SQL查詢陳述式以代替該使用者宣告,其中CV.ParamValue1='Mary':SELECT 1 FROM EmailEvents E, ConditionValues CV WHERE E.Sender = CV.ParamValue 1;因此,一研發人員可為各條件定義查詢碼,並將其儲存於一表中。雖然可能,不需要為此表示的目的建立一新表。之前定義之ConditionClasses表可僅修改以包含於下方所顯示之虛擬程式碼中之查詢文字。
一旦已定義該表710之全部,可針對此資料評估喜好,以集結一結果表730,且之後執行與其相關之動作。喜好可藉由評估查詢加以執行。查詢可藉由實施一或多個程序加以評估與處理,其可儲存為資料儲存150中之資料,並在有需要時根據本發明之一態樣加以建構。幾個程序可專用於評估條件與喜好,且接著集結該結果表,例如此喜好與標記,指示是否該喜好評估為真,使得可著手相關動作之執行。舉例來說,下列程序可實施以評估或查詢一ConditionResults表中之條件與儲存結果,其接著可被評估以集結結果表730。
create proc NSStoreResultslntoResultsTable @conditionClassld int AS declare @query varchar (255) -- this number could be much larger select @query=Query_Text from ConditionClasses where conditionClassld = @conditionClassld
insert ConditionResults exec (@query) return (0)
此外,應了解上述程序可以一迴圈加以實施,使得執行所有條件查詢。然而,最好可為各條件呼叫上述程序一次,以允許遞增條件評估。一旦評估所有條件,另一程序可利用以評估喜好,其通常為具有布林值運算子於其間之條件。
藉由在此說明之所有程序,程序可依據許多不同方法加以寫入,其中有程式設計樣式、效率、及已建構表之本性。為了了解的目的,提供下列程序作為一查詢之一範例,可根據本發明之一實施例評估喜好。應注意可使用一更有效查詢程序,其遞增評估一喜好之不同ANDGroups,而非於單一執行中。
select distinct (eventId, prefId) from ConditionResults C, AndGroupMemberShip A where C.condId =A.condId group by C.eventId, C.prefId, A.AndGroupId having sum (C.Bool) = (select ConditionCount from AndGroups A2 where C.Prefid = A2.PrefId and A.AndGroupld -- A2.AndGroupId)
為了澄清上述程序如何運作以為該最後結果表730產生列,下列提供幾個範例:
假設該ConditionResults表具有下列兩列於其中。
有一AND於喜好1中這兩個條件之間。因此,僅若該上述兩個條件為真,此喜好才會評估為真。這兩個條件屬於其條件計數為2之第1 ANDGroup。因此,當上述表結合該AndGroupMembership表時,會有下列表結果:
在該群組執行後,我們獲得下列行
現在(Pref.Id,ANDGroupld)為該ANDGroups表形成一金鑰。
該查看提供一條件計數2,其等於sum(Bool)。因此,該喜好為真,且其可加入該結果表730。
假設該ConditionResults表具有下列兩行:
有一OR介於喜好2這兩個條件之間。因此,僅在該兩個條件任一為真時,此喜好會評估為真。這些條件分別屬於該第2與第3 ANDGroups,且其條件計數皆為1。因此,當上表與該AndGroupMembership表結合時,有下表的結果:
上面兩列會滿足包含條件,且因此在個別應用之後,我們發現該喜好(Pref.Id=2,Event Id=101)會複製至結果表703中。
為了此最後範例,假設該ConditionResults表具有下列兩列:
回想喜好7上之條件真正為
From (Bob) and !Contains (Work)。
在NOT的存在中,根據本發明之一態樣,上述第二列
中的1變更為-1。下列係提供此功能之一範例查詢:update ConditionResults set Bool = -1 where cond. Id IN (select cond Id from Not)
此外,應注意若應用一聰明查詢最佳化器,且通知該NOT表為Null,該查詢應瞬間傳回。因此,上表變成:
這兩個條件屬於該第11個ANDGroup。從該ANDGroup表,可決定此喜好之條件計數(preference,ANDGroup)為1。由於0?1,沒有列會導自該喜好評估查詢。然而,注意若該第二列並非於該條件結果表中,我們會具有一總合為1(=1),且喜好7會被評估為真。
在集結該結果表730之後,可執行喜好動作。動作可由該資訊代理者系統100或由一資訊代理者應用程式藉由自系統100取出該喜好結果且於其後動作加以執行。若動作由應用程式但非該資訊代理者系統100執行,可利用一事件傳送應用程式或某些其他應用程式自系統100取出動作。為每系統100,一託管服務可為可取出與執行動作之應用程式動作處置器由該系統100提供。
優先權動作與架構分析
下列討論關於啟動與已產生動作相關之複數個資訊之一系統與方法論,例如通知或訊息,舉例來說,欲由一優先權系統傳輸至一使用者或系統自動優先權化。此外,此討論為了著重於通知與架構分析之優先權之簡化之目的,應了解任何動作可以一類似方式利用優先權與架構分析。該優先權系統可利用分類器,可顯見與/或隱藏加以訓練,以根據對該使用者之一已學習重要性優先權化一或多個已接收訊息。作為一範例,經由一訓練範例組或具有類似重要性程度的通知類型,通知可被分類為高、中、低、或其他程度的重要性。可提供一背景螢幕以監控關於訊息處理之一使用者的活動,以根據該使用者關於訊息重要性之個人決策進一步微調或調整該分類器。其他優先權分類可包含為該訊息之延遲檢視或處理關於一時間且關於一損失之決定。
在自動優先權化訊息或其他通知之後,使用者可檢閱更多重要訊息,而不需要排序複數個較不重要及/或不相關的訊息。訊息可根據重要性進一步集合至一或多個資料夾中,其中使用者可於一想要時間檢閱類似類別重要性之訊息。其他系統,例如一資訊代理者系統100(如經由通知組件180),可根據該已決定優先權將該訊息導向一或多個通知接收器(sink)(如行動電話、手持式電腦)。舉例來說,若一電子郵件訊息決定為高重要性,該資訊代理者系統100可決定是否該使用者目前位於其桌前以接收該訊息。若否,該通知平台可將該訊息重新導向目前於該使用者處置
一最有可能性的通訊裝置,例如一行動電話或家用膝上型電腦,其中該使用者可被通知重要或緊急訊息。
請參照第7圖,根據本發明之一態樣,一系統舉例說明一優先權系統712與通知動作架構。該優先權系統712接收一或多個訊息或通知714,為該相關訊息產生一優先權或重要性測量(如訊息為一高或低重要性之可能值),且於一輸出716以一相關優先權值提供該一或多個訊息。如下方將會詳加描述者,可建構與訓練分類器以自動指派優先權測量至該訊息714。舉例來說,可格式化該輸出716,使得訊息被指派一可能性,該訊息屬於高、中、低或其他重要性程度種類之一種類。舉例來說,根據該已決定的重要性種類,該訊息可自動儲存於一電子郵件程式(未顯示)之一收件匣中。該排序亦可包含將檔案導向已定義重要性標籤之系統資料夾。此可包含讓資料夾以重要性程度標示,例如低、中與高,其中排序一特殊重要性決定之訊息至該相關資料夾。同樣的,可調適一或多個聲音或視覺顯示(如圖示、符號)以警告該使用者已接收具有一想要優先權之一訊息(如三聲嗶聲代表高優先權訊息、二聲嗶聲代表中、一聲嗶聲代表低、紅色或閃爍警告符號代表高優先權訊息、綠色與非閃爍警告符號指示已接收媒體優先權訊息)。
根據本發明之另一態樣,一資訊代理者系統717(第1圖之100)可實施與該優先權系統712結合,以將已優先權化訊息導向可由使用者存取之一或多個通知接收器。如下
方將更更詳細說明者,舉例來說,該IA系統717可調適以接收該已優先權化訊息716,並做出關於何時、何地、且如何通知該使用者之決策。作為一範例,該IA系統717可決定一通訊形式(如該使用者之目前通知接收器718,例如一行動電話、或個人數位助理(PDA))及可能的位置與/或該使用者可能的注意焦點。舉例來說,若接收一高重要性電子郵件,該IA系統717可決定該使用者位置/焦點,並導向/重新格式化該訊息至與該使用者相關之通知接收器718。舉例來說,若接收一較低優先權訊息716,該IA系統717可被配置以保留該電子郵件於該使用者的收件匣中,以供稍後想要時檢閱。如下方將更詳細說明者,可利用其他路由與/或警告系統719,以將已優先權化訊息716導向使用者與/或其他系統。
在該說明之下一節中,經由一自動分類系統與處理說明為如一電子郵件之文字檔案產生一優先權。所述之為文字產生優先權可接著實施於其他系統中,例如下方將更詳細描述之一通知平台。本節之說明與第8圖與第9圖結合,前者為舉例說明顯見與隱藏訓練一文字分類器之一示意圖,而後者為描述如何由輸入至該文字分類器為一文字產生一優先權之一示意圖。該說明亦提供與第10圖與第11圖結合,其為根據一文字可被分類之何優先權之不同綱目之示意圖,且與第8與第11圖結合,其為舉例說明可根據文字類型應用之成本函數之圖表。
現在參照至第8圖,可顯見訓練一文字/資料分類器
820,如由箭頭822所呈現,且如由該箭頭824所呈現,隱藏根據優先權執行分類。由該箭頭822呈現之顯見訓練一般作用於建構該分類器820之初始階段,而由該箭頭824呈現之隱藏訓練一般作用於該分類器820已建構之後-以好好調整該分類器820,舉例來說,經由一背景螢幕834。為了舉例說明一分類訓練與實施方式方法之目的,在此參照一SVM分類器做出特殊說明。其他文字分類方法包含貝斯網路(Bayesian networks)、決策樹、及可能分類模型,提供可實施之獨立不同樣式。在此使用之文字分類亦包含統計迴歸,用於研發優先權模型。
根據本發明之一態樣,已熟知之支援向量機器(SVM)實施為該分類器820。應了解亦可利用其他分類器模型,例如Naive Bayes、Bayes Net、決策樹與其他學習模型。SVM經由一分類器建構器與特性選擇模組826中之一學習或訓練階段加以配置。一分類器係將一輸入屬性向量x=(x1,x2,x3,x4,.xn)對映至屬於一類別之輸入之一可信度之一函數,也就是f(x)=confidence(class)。在文字分類之情況中,屬性為文字或片語或自該文字取出之其他網域特定屬性(如演說之部分、關鍵詞之呈現),且該類別為有興趣之種類或區域(如優先權之程度)。
SVM與其他感應學習方法之一態樣係實施一已標示範例之訓練組,以自動學習一分類函數。該訓練組描述於與該分類器建構器826相關之一資料儲存830中。如圖所示,該訓練組可包含一群組之子組G1至GN,指示與一特
殊種類相關之潛在與/或實際元件或元件組合(如文字或片語)。該資料儲存830亦包含複數個種類1至M,其中該群組可關於一或多個種類。於學習其間,學習映射輸入特性至一類別可信度之一函數。因此,在學習一模型之後,種類代表為輸入特性之一加權向量。
為了種類分類,常常實施二進位特性值(如一文字發生或不發生於一種類中)或真實值特性(如一文字發生具有一重要性加權r)。由於種類集合可包含一大量唯一詞,當應用機器學習技術以種類化時,一般實施一特性選擇。為了減少該特性數量,可根據全面頻率計數移除特性,且接著根據一較小量的特性根據符合該種類加以選擇。該符合該種類可經由共同資訊、資訊增益、卡方及/或實質任何其他統計選擇技術加以決定。這些較小的說明接著作為一輸入至該SVM。應注意線性SVM提供適用一般化精確度,且適當提供快速學習。非線性SVM之其他類別包含多項式分類器與徑向型函數,且亦可根據本發明加以利用。
該分類器建構器826實施一學習模型832,以分析該資料儲存830中之群組與相關種類,以「學習」映射輸入向量至類別可信度之一函數。為了許多學習模型,包含該SVM,該模型為該種類可代表為特性加權之一向量w,其中為各種類可有加權之一已學習向量。當學習該加權w時,藉由計算x與w之點積分類新文字,其中w係已學習加權之向量,而x係代表一新文字之向量。亦可提供一S形函數以轉換該SVM之輸出至可能性P。可能性提供跨可
決定優先權之種類或類別之可比較分數。
該SVM係一參數化函數,其功能形式定義於訓練之前。訓練一SVM一般要求一已標示訓練組,由於該SVM會符合來自一範例組之函數。該訓練組可由一N範例組組成。各範例由一輸入向量xi及一種類標籤vj所組成,其描述是否該輸入向量係於一種類中。對各種類來說,可有N個自由參數於以N個範例訓練之一SVM中。為了尋找這些參數,解決一二次程式設計(quadratic programming,QP)問題係為已知。有複數個已知技術用以解決該QP問題。這些技術可包含一連續最小最佳化技術以及其他技術。如第9圖中所述,已轉換至一輸入向量x中之一文字輸入936為各種類應用至該分類器920。該分類器920利用由分類器建構器926決定之已學習加權向量w(如為各種類有一加權向量),並形成一點積以提供一優先權輸出938,其中可能性P可指派至該輸入文字936,指示一或多個相關優先權(如高、中、低)。
請參照回第8圖,由該箭頭822代表之文字分類器820之訓練包含建構化該分類器於826中,包含利用特性選擇。舉例來說,在該顯見訓練階段中,該分類器820可呈現有時間關鍵與非時間關鍵文字,使得該分類器可區別該兩者之間。此訓練組可由該使用者提供,或可利用一標準或預設訓練組。給定一訓練語言資料庫,該分類器820首先應用嘗試尋找最有辨識力特性之特性選擇程序。此處理實施一共同資訊分析。特性選擇可操作於一或多個文字
上,或高階區分變得有效,例如以自然語言處理標示之片語與演說部分。也就是說,該文字分類器820可帶有特殊標示文字,以區分視為重要之一文字之特性。
文字分類之特性選擇一般對單字執行一搜尋。在單字之依賴之外,網域特定片語與高階樣式特性亦為有效。特殊符記亦可增強分類。舉例來說,電子郵件危機程度之已學習分類器之品質可藉由輸入該特性選擇程序手工特性加以增強,其識別為對區分不同時間危機程度之電子郵件之間是很有用的。因此,於特性選擇期間,考慮於區分不同時間危機程度之訊息間有用之一或多個文字以及片語與符號。
下列範例舉例說明識別訊息危機程度中值之符記與/或樣式包含此區別,且包含下列之布林值組合:範例之一訊息標頭中之資訊:至:欄位(接收者資訊)只放入使用者之位址,放入包含使用者之幾個人之位址,放入具有一小量人之一別名之位址,放入具有一小量人之數個別名之位址,副本:至使用者,密件副本:至使用者。
來自:欄位(傳送者資訊)
預定重要人物清單上之名字,潛在分成各種個人類別(如家庭成員、朋友)、識別為使用者公司/組織內部之傳送者、關於組織關係之結構之資訊,關於該使用者繪自一線上組織圖,例如:使用者報告至之管理者,使用者之管理者之管理者,報告至該使用者之人,外部企業人員。
過去時態資訊這些包含關於已發生之事件之說明,例如:我們遇見,會議至,發生,一起,照顧,昨天的會議。
未來時態資訊明天,本週,您將要,我們何時可以,期待,
此將,將會。
會議與協調資訊一起,您可以碰到,將在一起,協調,必須在一起,再見,安排一會議,想要邀請,在附近。
已解決日期未來對上過去日期與時間顯見指示來自文字樣式至狀態日期與時間,或一般為縮寫,例如:於5/2,於12:00。
問題靠近問號(?)的文字、片語
個人要求之指示:
您可以,您是,您將,請您,您可以做,請問一下,來自您。
需要指示:我需要,他需要,她需要,我想要,可能很好,我想,他想,她想,照顧。
時間危機程度很快發生,馬上,期限將是,期限是,
盡快,儘早需要此,早點完成,馬上完成,此儘早[日期]前,[時間]前。
重要性重要,關鍵,文字、片語+!,顯見優先權旗標狀態(低、無、高)。
訊息長度新訊息之組件中位元組數。
廣告與成人內容垃圾電子郵件之象徵免費!!,文字+!!!,18歲以下,僅成人,大寫字的百分比,非字母數字字元的百分比。
應注意上述之文字或片語群組舉例說明可能自其利用以做出分類器訓練之範例文字、群組、或片語。應了解可類似實施其他類似文字、群組、或片語,且因此本發明並不限於該例示範例。
此外,仍參照第8圖,舉例來說,如該箭頭824所代表之分類器820之隱藏訓練可藉由經由位於該使用者桌上型或行動電腦上之背景螢幕834監控該使用者工作或使用樣式完成。舉例來說,當使用者工作且檢閱郵件清單時,可假設先閱讀時間關鍵訊息,且稍後檢閱較低優先權訊息,及/或刪除。也就是說,當呈現一新電子郵件時,監控該使用者決定是否他或她立即開啟該電子郵件,且以何順序開啟,沒有開啟就刪除該電子郵件,及/或在相對一小段時間回覆至該電子郵件。因此,調適該分類器820,使得當運作或操作一系統時監控一使用者,該分類器定期藉由訓練於該背景中加以微調,並更新以增強及時做出決策。用以建立分類器之背景技術可自以新訓練訊息更新該分類器820加以擴充。
或者,可收集大量訊息,其中新過濾器建立於一批次處理中,每一日常行程或每新訊息數量承認該訓練組及/或組合。舉例來說,對於輸入該分類器之各訊息來說,可為該分類器建立一新情況。舉例來說,該情況儲存為高或低優先權之文字之負面與正面範例。作為一範例,可辨認一或多個低、中、及高緊急類別,使得各類別中之成員之可能性用於建立一預期危機程度。較大量危機程度類別可
用於尋找更高解決方法。舉例來說,如第9圖中舉例說明者,一訊息訓練組940(如非常高、高、中、普通、低、非常低等等)可開始實施以訓練一分類器942,使得達成及時分類,如於944所指示者,其中新訊息根據由該訓練組940所解決之範例數加以分類。在第9圖中,三個此種類為了範例的目的舉例說明,然而,應了解可根據想要重要性的不同程度訓練複數個此種類。如圖所示,該新訊息944可被標示、貼標籤及/或排序至一或多個資料夾946中,舉例來說,根據由該分類器942所指派之優先權。如將在下方更詳細說明者,該已指派優先權可進一步由後續系統加以利用,以為該使用者做出訊息格式、傳遞與形式決定。
根據本發明之另一態樣,可達成一數目或值之一估計,舉例來說,藉由監控與電子郵件之一互動,而非將該情況或訊息標示為一組資料夾其中之一。因此,一分類器可繼續待更新,但具有一移動視窗,其中考慮比某年紀更新的訊息或文件的情況,如該使用者所指定者。
舉例來說,關於訊息之延遲檢閱之損失之一經常率稱為該訊息之預期危機程度(EC),其中,
其中C係一成本函數,d係一延遲,E係一事件,H係該電子郵件之危機程度類別,而EC係表示為為該潛在類別由該成本函數C描述之損失率加權之類別之可能性之總合。
作為一範例,仍參照第9圖,該文字,例如一電子郵
件訊息,936輸入該分類器920中,根據其為該文字936產生該優先權938。也就是說,該分類器920產生該優先權938,舉例來說,測量為從0至100%之一百分比。此百分比可為該文字936為高或某些其他優先權之可能性之一測量,根據該分類器920之前之訓練而定。
應注意如上方以描述知本發明,該分類器920與該優先權938可根據一綱目而定,其中舉例來說,該訓練階段中之電子郵件建構為高優先權或低優先權。此綱目參照第10圖舉例說明,其中該文字分類器1020由預定為高優先權之一文字群組1047與預定為低優先權之一文字群組1048加以訓練。欲分析之文字輸入該分類器820中,其輸出一純量數字1049,舉例來說,測量該文字分析為高或低優先權之可能性。
舉例來說,請參照第10與第11圖,該示意圖舉例說明一綱目,其中文字1036、1136種類化為低、中、及高優先權。如上所述,可實施複數個其他訓練組以提供更好或更高的優先權解析度區別。該文字分類器1020、1120由高優先權之一文字群組1047、1147及低優先權之一文字群組1048、1148、及由中優先權之一文字群組1150加以訓練。因此,欲分析之文字1036、1136輸入該分類器1020、1120中,其輸出一純量數字1049、1149,舉例來說,可測量該文字被分析為高優先權或中優先權或低優先權之可能性。該分類器1020、1120亦可輸出一類別1152,其指示該文字1136最可能落入之低、中、或高優先權類別。此外,若
想要,亦可加入其他類別。
本發明不限於優先權之定義,此詞由該分類器1020、1120實施以指派此優先權至一文字,例如一電子郵件訊息。舉例來說,優先權可根據一損失函數加以定義。尤其是,優先權可根據於接收後每次檢閱該文字中延遲之損失機會中預期之成本加以定義。也就是說,該預期損失或成本導自文字之延遲處理。該損失函數可根據接收文字之類型進一步互異。
舉例來說,一通用情況舉例說明於第12圖中,其為根據一文字優先權之線性成本函數之一圖表1254。在該圖表1254中,當時間增加時,亦增加不檢閱一文字之成本。然而,相較於一中優先權訊息,如由該線1258所示,或一低優先權訊息,如由該線1260所示,該成本為一高優先權訊息增加更多,如由該線1256所示。舉例來說,該高優先權線1256可具有一斜率100,該中優先權線1258可具有一斜率10,該低優先權線1260可具有一之一斜率。這些斜率值接著可由該分類器1020、1120利用,指定一優先權至一給定文字,舉例來說,藉由迴歸分析。
然而,某些訊息不具有由一線性成本函數之使用估計之優先權。舉例來說,關於一會議之一訊息會具有其成本函數,當該會議接近時增加,且之後,該成本函數會快速減少。也就是說,在錯失該會議之後,一般一使用者不太能對其做些什麼。此情況由一非線性成本函數估計較佳,如第13圖中所述。在一圖表1362中,一成本函數1364
快速增加,直到其到達該線1366所標定的會議時間為止,在之後其快速減少。根據一訊息之類型,該成本函數可由許多不同代表成本函數其中之一加以估計,可為線性或非線性。
因此,如上所述,一文字之優先權根據一分類器之輸出,可正是複數個優先權其中之一之可能性,或亦根據該分類器之輸出,可為該文字應用之最可能優先權類別。或者,可決定該文字之一預期時間危機程度,例如一電子郵件訊息。此可寫為:
其中EL係該預期損失、p(criticali
)係一文字具有該危機程度i之可能性、C(criticali
)係文字具有該危機程度i之成本函數、而n係危機程度類別總數減一。該成本函數可為線性或非線性,如上所述。在該函數為線性之情況中,該成本函數定義因時間損失之一經常率。為非線性函數來說,具有延遲檢閱或文字處理之損失變更率可能根據延遲量增加或減少。
在n=1的情況中,指定僅有兩個優先權類別低與高,該預期損失可重新公式化為:EC = p(criticalhigh
) C (criticalhigh
) + [1 - p(criticallow
)] C (criticallow
)
其中EC係一文字之預期危機程度。此外,若低危機程度訊息之成本函數設定為零,此變成:
EC = p(criticalhigh
) C (criticalhigh
)
直到一文字檢閱時間之總損失可表示為該表示危機程度之整合,或,
其中t係檢閱該文件前之時間。
給予依重要性用以評分文件之一值度量之其他測量,例如電子郵件訊息。上述之討論著重於時間危機程度之優先權,亦可訓練其他「重要性」概念。舉例來說,此可藉由標示一組訓練資料夾加以完成:「高重要性」一路往下直到「低重要性」,其中可決定「預期重要性」之一測量。另一度量可根據一語義標籤而定,「我希望聽到旅行前一天的訊息」,且決定用以優先權化訊息之一測量,用以傳送至一旅行使用者。此外,已利用度量係緊急或時間關鍵,其具有清楚的語義用以做決策、排序、及路由。在此情況中,該類別根據不同緊急程度標示,並為各訊息計算為一預期緊急,其來自推論該訊息於各類別中之可能性。
如前一節中所述,根據本發明亦可提供擴充至危機程度分類。例如,分類可為特性類別中或之間之高報酬特性之組合包含一自動搜尋。作為一範例,特殊區別、結構等等之組合具有已找到為特殊使用者之特殊使用之文字,可搜尋與利用於該分類處理中。二特性之一組合推論為一雙重,然而三特性之一組合稱為一三重,以下類推。特性之組合可啟動已改良分類。
分類亦可以增加索引之使用加以改良,其實施一移動
視窗於該分類器中。此讓該分類器更新路由,當舊資料時間到時,帶入新資料。
分類亦可根據指定於一訊息中之一事件之日期與時間之決定而定。此決定可指派特性至可由該分類器利用之訊息。舉例來說,該特性指派可包含:今天中的四小時、今天中的八小時、明天、本週、本月、及下個月等等。此讓該分類器具有關於分類之訊息之已改良精確度。一般來說,分類可根據該參照事件之時間而定,考量是否該事件係於未來或過去。關於未來事件,分類因此考量該傳送者參照至當該事件發生之未來一時間。
其他新特性亦可整合至該分類處理中。舉例來說,可利用一組織圖藉由該傳送者於該圖表中之位置以決定一訊息有多重要。語言特性可整合至該分類器中。為了適應不同語言,可根據該傳送者之來源及/或寫入該訊息之語言修改該特性。分類可根據訊息儲存之不同資料夾以及其他調整與控制規則互異。除了電子郵件與其他來源之外,分類可執行於立即訊息及其他資訊來源上,例如股票行情指示器等等。
一般來說,一傳送者接收者結構關係可視為於該分類處理中,若該使用者實質係一訊息之唯一接收者,舉例來說,則此訊息可視為比傳送至一小量人之一訊息更為重要。接著,傳送至一小量人之一訊息可能比該使用者係密件副本(bcc)或副本(cc)之一訊息更為重要。關於該傳送者,危機程度可根據是否可辨識該傳送者的名稱加以指
派。危機程度亦可根據是否該傳送者係該使用者相關之組織之內部或外部加以指派。
亦可考量其他區別於分類中包含該訊息之長度、是否已偵測問題、及是否該使用者之名稱於該訊息中。與時間危機程度相關之語言可增加該訊息之重要性。舉例來說,例如「很快發生」、「馬上」、「盡快」、「ASAP…」及「期限是」之片語可執行更關鍵的訊息。可考慮過去時態比較未來時態的使用,以及由片語所指定之協調工作,例如「一起」、「我們可以碰面嗎」等等。垃圾郵件的證據可能降低訊息之優先權。例如來自一傳送者接近該組織圖中該使用者之一簡短問題,斷定代表組合亦可考慮於該分類處理中。
在說明之下一節,描述提供何時警告一高優先權文字之使用者之一決定之處理,舉例來說,具有比大於一使用者設定臨界值高之優先權或大於由決策理論理由決定之一臨界值之一可能性之一文字。也就是說,在了解時間關鍵訊息之外,舉例來說,若該使用者不直接檢閱輸入電子郵件,決定何時警告一使用者時間關鍵訊息也很重要。一般來說,決定自該目前工作分析該使用者以學習關於該時間關鍵訊息之一成本。
或者,可實施用以警告與通知之各種策略。舉例來說,這些策略可實施於一通知平台架構中,其將在下方詳加描述。這些策略之部分包含:設定一使用者指定上限於該總損失上。此策略會指定當該總損失關於一訊息之延遲檢閱超過某預定「可忍受」
損失「x」時,一系統應產生一警告。
另一策略可為一成本利益分析,根據更完整策略理論分析而定,例如NEVA=EVTA-ECA-TC,其中NEVA係警告之網路預期值,EVTA係警告之預期值,ECA係警告之預期成本,而TC係關於通訊一訊息之傳輸成本。
一般來說,當一成本利益分析建議該使用者帶來於時間t檢閱該訊息會遭受之預期損失大於警告該使用者之預期損失時,應警告一使用者。也就是說,警告應建構為是否:EL - EC > 0
其中EL係於一目前時間t不檢閱文字之預期損失,而EC係於該目前時間t警告該使用者該文字之預期損失。該預期損失描述於說明之前一節中。
然而,上述公式可能不是最精確的,由於該使用者常常會在未來自己檢閱該訊息。因此,實際上,當警告之預期值(稱為EVTA)為正值時,一般應警告該使用者。因此該警告之預期值應視為現在警告該使用者該文字之值,相對的,若無警告,該使用者自己在稍後檢閱該訊息之值會減少警告成本。此可陳述為:EVA = ELalert - ELno-alert - EC
其中ELalert係於警告後,若該使用者現在檢閱該訊息,其檢閱該訊息之預期損失,相對於ELno-alert,其係沒有警告,該使用者於某時自己檢閱該訊息之預期損失,減去EC,根據分散之一考量及傳輸該資訊之直接成本之警
告之預期損失。
此外,來自數個訊息之資訊可群聚在一起至單一合成警告中。檢閱關於一警告中多個訊息之資訊可能比轉達關於單一訊息之資訊之一警告的成本更高。此增加分析可藉由使一警告之成本為其資訊複雜度之一功能加以表示。可假設一電子郵件訊息之EVA獨立於其他電子郵件訊息之EVA。舉例來說,EVA(Mi,t)稱為於時間t警告一使用者關於單一訊息Mi之值,而ECA(n)稱為轉達n個訊息之內容之預期成本。因此,多個訊息可被視為將該轉達關於一組n個訊息之資訊之預期值總合在一起,其中:
亦注意為了決定警告之預期成本,推論或直接存取關於該使用者存在或不存在之資訊是很有用的。可實施感應器,指示何時一使用者於該辦公室中,例如紅外線感應器與壓力感應器。然而,若無法取得此裝置,一使用者於該辦公室之一可能性可被指派為該電腦上使用者活動之一函數,舉例來說,例如自最後已觀察滑鼠或鍵盤動作之時間。此外,亦可實施可用於一行事曆中之排程資訊,以參照關於一使用者之距離與性格,且考慮以不同處理傳送訊息至該使用者之成本。
了解該使用者於做出關於以具有高時間危機程度之訊息資訊中斷該使用者之決策中有多忙亦很重要。可能為關於是否一使用者於一電腦上工作之比例,或是否該使用者
於該電話上,與某人談話,或於另一位置之一會議中之理由(如推論做決策)。可實施幾個類型之證據,以評估一使用者之活動或其注意焦點,如第14圖中所示。一貝斯網路接著可利用以執行關於一使用者活動之一推論。此一網路之一範例描述於第15圖中。
一般來說,應做出一決策何時且如何警告使用者訊息,並根據預期危機程度與使用者動作之推論提供服務。決策可藉由利用決策模型加以執行,舉例來說,第16-18圖為影響示意圖,舉例說明此決策模型可如何利用以做出警告決策模型。第16圖為關於中斷一使用者之決策顯示一決策,考量目前動作、訊息之預期時間危機程度、及根據該通訊形式警告之成本。第17圖亦包含代表其他訊息技術之動作與成本上變數之目前位置與影響之變數。此外,第18圖擴充以考量當具有重要圖表內容之一訊息傳送至一使用者,而不存在該圖表內容時,與損失精確度相關之成本。
或者,何時與如何警告使用者之決策可由實施一組使用者指定定義警告策略之臨界值與參數做出。舉例來說,可根據滑鼠或鍵盤活動推論使用者喜好。因此,舉例來說,一使用者可允許為活動與非活動之推論狀態輸入臨界值於警告上。使用者可輸入閒置活動接著活動的量,其中警告會發生在較低的危機程度。若根據實質沒有偵測到電腦活動時的時間決定該使用者沒空,則可儲存訊息,且當該使用者回來與該電腦互動時,依危機程度之順序報告至該使
用者。此外,使用者可指定路由與編頁選項作為數量之一函數,包含預期危機程度、最大預期損失、及警告該使用者之值。
一通知及/或警告系統亦可估計預期該使用者何時回來,使其於該使用者預期回來之前傳輸預期重要之優先權。此可藉由學習不同時間使用者存在與使用者離開樣式加以達成。該使用者接著可根據他或她預期回來至該系統以檢閱該優先權而不需加以警告加以設定適用策略。舉例來說,由該系統決定之預期回來時間可自動傳送至高緊急訊息之傳送者。如此一來,當該使用者預期回來時,訊息傳送者接收回授,使得他或她可回覆該訊息。亦可通知該傳送者他或她的訊息已傳送至該使用者的行動裝置等等。
第19圖根據本發明舉例說明用以產生優先權與根據優先權執行警告決策之一方法論。為了簡化說明之目的,該方法論以一連串動作顯示與說明,應了解本發明並不限制動作之順序,根據本發明,自在此顯示與描述者,某些動作可以不同順序及/或與其他動作同時發生。舉例來說,熟知該項技術人士應了解一方法論或者可一方法或者可代表為一連串互相相關之狀態或事件,例如於一狀態示意圖中。此外,並非皆需要所有例示動作以實施根據本發明之一方法論。
請參照第19圖,一流程圖1974舉例說明一方法論,其中根據本發明產生與利用優先權。於1980,接收一資料,例如具有一接收優先權指派於其中之文字。該資料可
為一電子郵件訊息,或實質為任何其他類型之資料或文字。於1982,如上所述,根據一分類器產生該資料之一優先權。此外,1982可包含如上所述之分類器之初始及後續訓練。
該資料之優先權接著於1984輸出。如第29圖中所指示者,此可包含於1986、1988、1990、1992、及1994之處理。於1986,決定於一目前時間t之資料之未檢閱預期損失。此決定根據該使用者會自己檢閱該文字之一假設,而不需要被警告,考量於一未來時間該文字之未檢閱預期損失,亦如上所示。於1988,決定及描述一警告之預期成本。於1990,若該損失大於該成本,則不會有警告於該時間t做成1992,且該處理於一新目前時間t會進行回1986。進行回1986可能由於時間進行時加以執行,該預期損失可能於此時比該警告成本還重要,使得該演算可於1990變更。在該預期損失比該警告成本還重要之後,則至該使用者或其他系統之一警告執行於1994。
現在描述至一使用者或其他系統之警告之輸出。可根據警告規則於一電子裝置上警告一使用者,其指示該使用者應何時被警告一優先權化文字。警告該使用者之電子裝置可為一呼叫器、蜂巢式/數位行動電話、或其他通訊形式,如下方將詳加說明者。至一電子裝置上之一使用者之警告,例如一呼叫器或一行動電話,可根據警告規則而定,舉例來說,其調適感應關於該位置、推論工作、及/或該使用者注意焦點之資訊。此資訊可於為特定下推論,或可自
線上資訊來源加以存取。來自一線上行事曆之資訊,舉例來說,可被調適以控制實施以做出關於轉達資訊至一裝置之決策之規則,例如將在下方詳細說明之一通知接收器。
警告可根據路由規則藉由路由該優先權化文字或其他資料加以執行。在該文字為電子郵件之情況中文字路由可包含傳送該文字及/或回應至該文字之傳送者。舉例來說,可播放一聲音以警告該使用者一已優先權化之文件。或者,可開啟一代理者或自動助理(如互動式顯示精靈)。也就是說,該代理者可出現於一顯示螢幕上,已通知該使用者該優先權化文件。此外,可開啟該優先權化文件,例如顯示於該螢幕上。該文件可接收焦點。此亦可包含根據其優先權調整該文件之大小,使得該文件之優先權愈高,其顯示之視窗愈大,及/或根據其優先權將該文件放置於中央。
現在請參照第20圖,根據本發明之一態樣之一文字產生與優先權系統2000之一示意圖。該系統2000包含一程式2002與一分類器2004。應注意該程式2000與該分類器2002可包含一電腦程式,由一電腦之一處理器自其中之電腦可讀取媒體加以執行。
該程式2002為輸入至該分類器2004產生一文字。該程式包含接收電子郵件之一電子郵件程式,其接著做為該文字。該分類器2004產生為該相關訊息產生一優先權。如上所述,該分類器2004可為一貝斯分類器、一支援向量機器分類器、或其他類型之分類器。由該分類器2004輸出之
文字之優先權接著者結合一成本效益分析加以利用,如上所述,以執行其他輸出及/或根據其上之警告。
現在回到第21圖,一系統2100舉例說明根據本發明之一態樣實施例該喜好執行引擎與架構分析器函數如何在一起。該系統3100包含一架構分析器3122、一喜好執行引擎2124、一或多個事件或通知來源1至N 2126、2127、2128、可作為一通知來源之一優先權系統2130、及一或多個動作或通知接收器1至M 2136、2137、2138,其中N與M分別為整數。根據本發明之一態樣,該來源亦可稱為事件公佈器,而該接收器亦可稱為事件訂閱器。可有任何數量的接收器與來源。一般來說,該執行引擎2124傳送通知,其亦稱為事件或警告,來自該來源2126-2128至該接收器2136-2138,部分根據儲存於該架構分析器2122中及/或由該架構分析器2122存取之參數資訊。
該架構分析器2122儲存/分析關於一使用者之變數與參數之資訊,其影響做出通知決策。舉例來說,該參數可包含前後文資訊,例如該使用者的一般位置與注意焦點,或每天各時間與某週各天的活動,及根據此參數條件化之額外參數,例如使用者想要存取於不同位置之裝置。此參數亦可為經由一或多個感應器自律做成之觀察函數。舉例來說,可根據可由一全球定位系統(GPS)子系統提供之一使用者位置之資訊或關於使用中及/或該裝置使用樣式之裝置類型之資訊,及該使用者存取一特殊類型裝置最後時間,選擇或修改一或多個設定檔(未顯示)。此外,如下方
將更詳細說明者,亦可實施自動推論,以動態推論參數或狀態,例如位置與注意力。該設定檔參數可儲存為可由該使用者編輯之一使用者設定檔。在依賴預定設定檔或動態推論組之外,該通知綱目可讓使用者及時指定於其狀態中,例如該使用者沒空,舉例來說,除非下幾「x」小時之重要性通知,或直到一給定時間為止。
該參數亦可包含預設通知喜好參數,關於一使用者喜好,干擾於不同設定中不同類型之通知,其可用作為由該執行引擎2124做出通知決策之基礎,且在一使用者可初使化變更之後。該參數可包含預設參數,做為該使用者如何希望於不同情況中被通知(如藉由行動電話、藉由呼叫器)。該參數可包含此評估,作為關於不同設定中不同模式通知之干擾成本。此可包含前後文參數,指示該使用者於不同位置中之可能性、不同裝置有效之可能性、及於一給定時間其注意狀態之可能性,以及通知參數,指示該使用者如何想要於一給定時間被通知。
根據本發明之一態樣,由該架構分析器2122儲存之資訊包含由該分析器決定之前後文資訊。該前後文資訊由該分析器2122根據一或多個前後文資訊來源(未顯示)藉由辨別該使用者位置與注意狀態加以決定,如該說明之稍後一節中更詳細說明者。舉例來說,該架構分析器2122可以精確度經由為一使用者車或行動電話之一部分之一全球定位系統(GPS)決定該使用者之實際位置。該分析器亦可實施一統計模型,藉由考量已透過以日期類型、日期時間、使
用者行事曆中之資料,以及關於該使用者活動之觀察考量此資訊加以收集之背景評估及/或觀察,以決定該使用者於一給定注意狀態中之可能性。該給定注意狀態可包含是否該使用者開啟接收通知、忙碌但並未開啟接收通知,及可包含其他考量,例如上班日、週末、假日、及/或場合/期間。
該來源2126-2128、2130為該使用者與/或其他實體產生通知。舉例來說,該來源2126-2128可包含通訊,例如網際網路與網路型通訊、及電話通訊、以及軟體服務。通知來源在此一般定義為產生事件、亦可稱為通知與警告者,用於對一使用者或為該使用者之一代理主機就資訊、服務、及/或一系統或世界事件產生警告。一通知來源亦可稱為一事件來源。
舉例來說,可由該優先權系統2130產生電子郵件為通知,使其優先權化,其中產生該通知之一應用程式或系統以對應至傳送至該使用者之電子郵件之可能重要性或緊急程度之一相對優先權指派該電子郵件。亦可傳送該電子郵件,而不需考慮該使用者之相對重要性。網際網路相關服務可包含通知,包含該使用者訂閱之資訊,例如經常之目前新聞頭條、及股市行情。
通知或事件來源2126-2128本身可為推類型或拉類型來源。推類型來源為自動產生且傳送資訊,而不需要一對應要求者,例如自動於訂閱後傳送資訊之頭條新聞或其他網際網路相關服務。拉類型來源為傳送資訊以響應一要求
者,例如在輪詢一郵件伺服器後接收之電子郵件。又其他通知來源包含下列各者:●電子郵件桌面應用程式,例如行事曆系統;●電腦系統(如可以訊息警告該使用者,該訊息為關於警告關於系統活動或問題之資訊);●網際網路相關服務、預約資訊、排程查詢;●文件或一或多個共享資料夾中許多特定種類文件中之變更;●新文件之有效性,以響應資訊之常駐或持續查詢;及/或,●關於人與其存在、其位置變更、其近接性(如當我旅行時讓我了解是否另一工作夥伴或朋友於我的10哩內)、或其有效性(讓我知道Steve何時對一會談有空,且接近可支援完整視訊會議之一高速連結)之資訊之資訊來源。
該通知動作接收器2136-2138亦提供通知至該使用者。舉例來說,此通知動作接收器2136-2138可包含電腦,例如桌上型及/或膝上型第腦、手持式電腦、行動電話、陸線電話、呼叫器、汽車型電腦、以及可了解之其他系統/應用程式。應注意某些接收器2136-2138可傳輸比其他接收器更多種的通知。舉例來說,一桌上型電腦一般具有喇叭與耦合與此之一相對大型彩色顯示器,以及具有一較寬頻寬,用以當耦合至一區域網路或網際網路時接收資訊。因此,通知可以一相對多樣的方式由該桌上型電腦傳送至
該使用者。相反的,舉例來說,許多行動電話具有可為黑白之一較小型顯示器,且以一相對較低頻寬接收資訊。因此,舉例來說,與由行動電話傳送之通知相關之資訊一般可較短,且轉向該電話之介面功能。因此,一通知之內容可根據是否傳送至一行動電話或一桌上型電腦而相異。根據本發明之一態樣,舉例來說,一通知接收器可經由一事件訂閱服務推論何訂閱至事件或通知。
該執行引擎2124存取由該架構分析器儲存及/或決定之資訊,且決定何通知自該來源2126-2128接收以傳送至何接收器2136-2138。此外,該引擎2124可決定如何傳送該通知,根據已選擇何接收器2136-2138以傳送該資訊而定。舉例來說,可決定於提供至一已選擇接收器2136-2138之前,應歸納通知。
本發明並不限於該引擎2124如何做其決定,何通知傳送至何通知接收器,及該通知以何方式傳送。根據一態樣,可利用一決策理論分析。舉例來說,可調適該執行引擎2124以推論關於變數之重要不確定性,包含一使用者位置、注意力、裝置有效性、及時間量,直到若沒有警告,該使用者存取該資訊為止。該通知引擎2124接著做通知決策,關於是否警告一使用者一通知,且若是,該歸納與適用裝置或裝置實施用以轉達該通知。一般來說,該執行引擎2124決定一通知之網路預期值。這麼做,可考量下列各項:●各有效通知接收器之精確度與傳輸可靠度;
●干擾該使用者之注意成本;●對該使用者之資訊新穎性;●直到該使用者會自己檢閱該資訊之時間;●該資訊之潛在內容感應值;及/或,●該通知中包含之資訊之一段時間遞增及/或遞減值。
做出關於不確定性之推論因此可產生為值之預期可能性,例如干擾該使用者之成本,舉例來說,使用給定該使用者某注意狀態之一特殊裝置之一特殊模式。該執行引擎2124可做出決策至一下多個下列各項:●該使用者目前注意且做的事(舉例來說,根據前後文資訊);●該使用者目前所在處;●該資訊多重要;●推論該通知之成本為何;●一通知會如何分析;●至該使用者之可能性為何;及,●與一給定通知接收器之一特殊模式之使用相關之精確度損失為何。
因此,該執行引擎2124可執行一分析,例如使用中之一決策理論分析及主動通知、評估由資訊接收器與來源提供之架構相依變數、及推論已選擇不確定性,例如直到一使用者可能檢閱資訊之時間與該使用者之位置與目前注意狀態。
此外,該執行引擎2124可由該架構分析器2122存取
儲存於一使用者設定檔中之資訊,或支援一個人化決策邏輯分析。舉例來說,該使用者設定檔可指示於一給定時間,該使用者偏好經由一呼叫器通知,或僅若該通知具有一預定重要性程度。此資訊可利用唯一基礎線,自此開始一決策邏輯分析,或可為該執行引擎2124決定如何與是否通知該使用者之方式。
根據本發明之一方法,該通知平台架構2100可配置為一層,位於一事件或訊息基礎建設。然而,本發明不限於任何特定事件基礎建設。此事件與訊息系統與通訊協定可包含:●超文字傳輸通訊協定(HTTP)、或HTTP副檔名,如業界中已知者;●簡單物件存取通訊協定(SOAP),如業界中已知者;●視窗管理儀器(WMI),如業界中已知者;●Jini,如業界中已知者;及,●實質任何類型之通訊協定,例如根據封包切換通訊協定者。
此外,該架構可配置為位於一彈性分散式計算基礎建設之一層,且可由熟知該項技術人士所了解。因此,該通知平台架構2100可利用一基本基礎建設,舉例來說,以何來源傳送通知、警告與事件之一方式,及以何接收器接收通知、警告與事件之一方式。然而,本發明並非受限於此。
現在請參閱第22圖,說明之前一節中所描述之資訊代理者系統綱目之架構分析器2122在此更詳細說明於系統
2200中。舉例說明於第22圖中之架構分析器2222包含一使用者通知喜好儲存2240、包含一使用者架構設定檔儲存2262之一使用者架構模組2260、及一白板2264。根據本發明一態樣之架構分析器2222可實施為一或多個電腦程式,可由一電腦之一處理器自其一機器可讀取媒體加以執行,包含但不限於一記憶體。
該喜好儲存2262為一使用者儲存通知參數,例如為該使用者之預設通知喜好,例如一使用者設定檔,可由該使用者編輯與修改。該喜好儲存2262可被視為儲存資訊於參數上,影響如何通知一使用者。如在此所描述者,喜好可由使用者利用綱目邏輯加以指定,例如,以該IF-THEN格式。舉例來說,該使用者架構模組2260根據公佈至該白板2264之一或多個架構資訊來源2280決定一使用者的目前架構。該使用者架構設定檔儲存2262為一使用者儲存架構參數,例如為該使用者之預設架構設定,可由該使用者編輯與修改。也就是說,該使用者架構模組2260藉由該設定檔儲存3262存取資訊及/或經由一或多個內容來源2280以生活常識更新該儲存2262中前一組看法提供關於一使用者的目前架構架構資訊之一最佳猜測或估計。舉例來說,該設定檔儲存2262可被視為儲存一使用者所在地及該使用者做些什麼之優先權。
該使用者架構設定檔儲存2262可為一預先評估及/或預定使用者設定檔,抓取此資訊作為一決定性或可能性設定檔。該設定檔可為典型位置、活動、裝置有效性、及通
知之不同類別之成本與值,作為日期時間、日期類型、及與一或多個裝置之使用者互動之觀察之一函數。舉例來說,該日期類型可包含上班日、週末與假日。該使用者架構模組2260接著可主動決定或推論該使用者架構或狀態之態樣,例如該使用者目前或未來位置與注意狀態。此外,內容之實際狀態可經由該白板2264直接自該架構資訊來源2280加以存取,及/或可自透過如貝斯理由推論方法之各種觀察加以推論,如下方將更詳細描述者。
該架構資訊來源2280可經由該白板2264提供關於該使用者注意狀態與位置之資訊至該架構模組2260,該模組2260可對該使用者目前架構做出一決定(如該使用者目前注意狀態與位置)。此外,本發明並不限於特定數量或類型之內容來源2280,亦不限於由該使用者架構模組2260推論或存取之資訊類型。然而,該內容來源2280可包含多個桌面資訊與事件,例如滑鼠資訊、鍵盤資訊、應用程式資訊(如何應用程式目前接收該使用者之焦點)、周圍聲音與說話資訊、桌面上視窗中之文字資訊。該白板2264可包含一共用儲存區域,該架構資訊來源2280可公佈資訊於此,且來自此之多個組件,包含來源與該架構模組2260可存取此資訊。一事件或動作,亦稱為一通知或警告,一般可包含關於該世界一或多個狀態之觀察之資訊。此狀態可包含系統組件、一使用者活動、及/或關於該環境之一測量之狀態。此外,事件可由一主動輪詢一測量裝置與/或事件來源、於一變更上傳送之資訊接收、及/或每一常數或相異事
件心跳產生。
其他類型之內容來源2280包含該使用者之一個人資訊管理者(PIM)資訊,舉例來說,一般可提供關於該使用者之行程之排程資訊。舉例來說,日期之目前時間以及由一全球定位系統(GPS)決定之使用者位置及/或可以位置方式決定之一行動電話、PDA、或一膝上型電腦之一使用者存取,亦為內容來源2280之類型。此外,及時行動裝置使用係內容來源2280之一類型。舉例來說,如一行動電話之一行動裝置可決定是否目前由該使用者加以存取,以及裝置角度與傾斜度(如以及指示關於裝置使用之資訊)、以及加速度與速度(如指示是否該使用者移動與否之資訊)。
現在請參照第23圖,更詳細舉例說明上述之通知來源。該通知來源2326-2328一般產生傳送至該通知執行引擎2324之通知,決定通知應何時發生,且若是,應傳送何通知至何通知接收器2336-2338且以何順序。
根據本發明之一態樣,通知來源2326-2328可具有屬性與關係之一標準說明中之一或多個下列參數,在此稱為一通知來源綱目或來源綱目。應注意該綱目可為來源、為接收器、及為上述之架構資訊來源加以提供。此綱目提供關於不同元件之宣告式資訊,且可讓該來源2326-2328、該通知引擎2324、該接收器2336-2338、及該架構分析器2322互相共享語義資訊。因此,不同綱目提供關於該本性、緊急度、及與通知相關之裝置信號樣式之資訊。也就是說,一綱目一般可定義為定義通知與事件之結構之類別
間類別與關係之一集合,舉例來說,含有包含事件或通知類別、來源、目標、事件或通知語義、存在內容資訊、觀察可靠度、及實質任何品質服務屬性之資訊。
通知來源綱目之參數(未顯示)可包含一或多個:訊息類別;相關性;重要性;時間危機程度;新穎性;內容屬性;精確度交換(tradeoff);及/或來源資訊簡介資訊。為一通知由一通知來源產生之訊息類別指示該通知之通訊類型,例如電子郵件、立即通訊、數值財務更新、及桌面服務。為一通知由通知來源為一或多個指定內容產生之相關性指示包含於該通知中之資訊相關之一可能性。舉例來說,該相關性可由一邏輯旗標提供,指出是否該來源關於一給定內容與否。該通知之新穎性指出該使用者已經了解包含於該通知中之資訊之可能性。也就是說,該新穎性係是否在一段時間之後該資訊對該使用者為新的(指示是否該使用者現在了解及何時了解資訊,若是,該使用者會在未來學習該資訊,而不需要加以警告)。
與該通知相關之精確度交換指示該通知中資訊之損失值,舉例來說,可導自不同形式之特定許可截斷及/或歸納。此截斷及/或歸納可為該通知要求傳送至特定類型之通知接收器2336-2338,可具有頻寬及/或其他限制,避免該接收器接收原來產生之完整通知。精確度一般來說推論與一通知相關之原始內容之完整度知本性及/或程度。舉例來說,可截斷一長電子郵件訊息,或歸納至由一行動電話允許之一最大100字元,招致精確度損失。同樣的,當經由
僅具有文字功能之一裝置傳輸時,包含文字與圖形內容之一原始訊息遭受精確度損失。除此之外,一裝置可能僅可描述來自該來源之完整有效解析度之一部分。精確度交換推論一來源之一組精確度喜好,根據以順序(如以圖形先而聲音後之順序之執行重要性)及/或成本函數加以陳述,指出該通知之內容之總值如何縮小精確度之變化。舉例來說,一精確度交換可描述與一完整電子郵件訊息之傳輸相關之完整值如何以漸漸變大量的截斷加以變更。舉例來說,內容屬性可包含該內容之本性之一簡介,呈現此資訊為是否該核心訊息包含文字、圖形、及聲音組件。該內容本身係做成該通知之訊息內容之實際圖形、文字、及/或聲音。
一通知之重要性推論包含於至該使用者之通知中之資訊之值,假設該資訊關於一目前架構。舉例來說,該重要性可表示為對該使用者有價值之資訊之一美元值。時間危機程度指示包含於一通知中之資訊值中之時間相依變更-也就是說,該資訊值如何經過時間變更,在大部分但非所有情況中,一通知之資訊值隨時間衰減。此舉例說明於第24圖之示意圖中。一圖表2400描述一通知透過時間映射之公用程式。在該圖表中之點2402,代表該初始時間,指示該通知之重要性,而該曲線2404指示該公用程式隨時間經過之衰減。
請參照回第23圖,為不同通知來源或來源類型之預設屬性與綱目範本可做出有用於儲存於使用者通知喜好儲存
中之通知來源設定檔中,例如第22圖之儲存2240。此預設範本可導向覆寫由通知來源所提供之值,或當自該來源提供之綱目遺失時提供屬性。來源簡介資訊使一來源張貼可來自一來源之潛在通知之資訊狀態之一般簡介。舉例來說,來自一訊息來源之來源簡介資訊可包含關於至少為某優先權之未讀取訊息總數之資訊、由人嘗試與一使用者通訊之狀態、及/或其他簡介資訊。
該通知接收器2336-2338可實質為任何裝置或應用程式,其中可通知該使用者或其他實體包含於通知中之資訊。何接收器實施以傳送一特殊通知之選擇係由該通知引擎2324加以決定。
通知接收器2336-2338可具有提供於一綱目中之一或多個下列參數。舉例來說,這些參數可包含一裝置類別;信號(警告)模式;及為該相關模式之精確度/執行功能、傳輸可靠度、通訊實際成本、及/或分散注意成本。對於為警告屬性之參數化控制調適之裝置來說,該裝置之綱目可額外包含警告屬性及用以控制該屬性之參數之一說明,及其他屬性(如傳輸可靠度、散佈成本)以該警告屬性之不同設定變更之函數。通知接收器之綱目提供該方法,其中該通知裝置與該通知執行引擎2324及/或該系統之其他組件通訊關於其本性與功能之語義資訊。不同裝置類型之預設屬性與綱目範本可用於儲存於該使用者通知喜好儲存中之裝置設定檔中,例如前一節中描述第22圖之儲存2240中。此預設範本可導向覆寫由該裝置提供之值,並當其自此裝
置提供之綱目遺失時提供屬性。
現在接著描述各綱目參數。該裝置之類別參照該裝置之類型,例如一行動電話、一桌上型電腦、及一膝上型電腦。該類別亦可更一般化,例如一行動或一文具裝置。該信號模式參照一給定裝置可警告該使用者關於一通知之方式。裝置可具有一或多個通知模式。舉例來說,一行動電話可僅震動、或僅以某音量響鈴、及/或可具有震動與響鈴。此外,一警告系統之一桌面顯示可分解至數個分離模式中(如一小型通知視窗於該顯示器之右上方vs.一小型縮圖於該螢幕之上方-具有或不具有一聲音預報)。在限制一組預定行為之外,一裝置可允許具有警告屬性之模式,其為參數之函數,為一裝置定義之部分。舉例來說,一模式之此繼續警告參數代表此控制一警告顯示於該桌面上、一行動電話上之鈴聲、及一警告視窗之大小之量。
一通知接收器2336-2338之一模式之傳輸可靠度指示該使用者接收關於一通知之通訊警告之可能性,其經由具有該模式之接收器傳送至該使用者。傳輸可靠度可根據裝置有效性與該使用者之架構而定,一裝置之不同模式之傳輸可靠度可於此前後文屬性上條件化,作為一使用者之位置與注意力。亦可指定一或多個唯一前後文狀態之傳輸可靠度由此屬性之交叉乘積定義為唯一位置與唯一注意狀態,定義為分離建立為此屬性之摘要(如遠離家的任何位置,及早上8點之後及中午之前的任何時段)。舉例來說,根據該使用者目前於何處,傳輸至一行動電話之資訊可能
不會總是到達該使用者,尤其是若該使用者於斷斷續續的涵蓋區域中,或該使用者不想有一行動電話於此位置(如家族假日)中。內容亦可影響傳輸可靠度,由於周圍噪音與/或該內容之其他遮蔽或分析屬性。
通訊之實際成本指示當包含於傳送至該接收器之一通知中時,通訊該資訊至該使用者之實際成本。舉例來說,此成本可包含與一行動電話傳輸相關之費用。該干擾成本包含於一特殊內容中與該干擾相關之注意力成本,關於由一裝置之特殊模式所實施之警告。注意力成本一般感應於該使用者之注意力之特別焦點。該精確度/執行功能係一裝置之文字、圖形、及聲音/觸覺功能之一說明,亦給定一模式。舉例來說,一行動電話的文字限制可能為任何單一訊息為100個字元,且該電話可能沒有圖形功能。
現在回到第25圖,一範例介面2500舉例說明內容規格,可由一使用者加以選擇,可由一架構分析器加以利用,決定一使用者之目前架構。描述該使用者之直接規格之使用者架構之決定及/或一使用者可修改設定檔。該使用者之架構可包含該使用者之注意焦點-也就是說,是否該使用者目前順從接收通知警告-以及該使用者的目前位置。然而,本發明並不侷限於此。
該使用者之架構之直接規格讓該使用者指示是否他或她有空接收警告,或該使用者想要接收的地方。可實施一預設設定檔(未顯示),以指示一預設注意狀態,及其中該使用者可接收該警告之一預設位置。該預設設定檔可由該
使用者於想要時加以修改。
請參閱第25圖,該介面2500舉例說明根據本發明之一態樣可如何實施內容之直接規格。舉例來說,一視窗2502具有一注意焦點區段2520與一位置區段2540。在該焦點區段2520中,該使用者可核取一或多個核取方塊2522,舉例來說,指示是否該使用者有空接收警告;是否該使用者永遠沒空接收警告;及是否該使用者僅有空接收具有一重要性程度大於一預定臨界值之警告。應了解可提供其他有效性選擇。如第25圖中所述。一臨界值可以金錢測量,但此僅用於示範目的,且本發明並不僅限於此。該使用者可藉由直接輸入一新值或藉由經由箭頭2526遞增或遞減該臨界值增加該方塊2524中之臨界值。
在該位置區段2540中,該使用者可核取一或多個核取方塊2542,以指示該使用者想要讓警告傳至何處。舉例來說,該使用者可讓警告傳至該桌面、藉由電子郵件、於一膝上型電腦、於一行動電話上、於他或她的車中、於一呼叫器上、或於一個人數位助理(PDA)裝置上等等。然而,應了解這些僅為範例,且本發明本身並非加以限制。
可為該核取方塊2522與該區段2520之方塊2524及該區段2540之核取方塊2542預設預設值之視窗2502可被視為一預設使用者設定檔。該設定檔係使用者可修改,該使用者可以他或她想要的選擇覆寫該預設選擇。根據本發明亦可使用其他類型之設定檔。
現在請參照第26圖,舉例來說,根據本發明舉例說明
利用一或多個感應器之直接測量之使用者架構之一決定。該使用者之架構可包含該使用者之注意焦點,以及他或她的目前位置。然而,本發明本身並不限於此。內容之直接測量指示可實施該感應器以偵測是否該使用者目前順從接收警告,且偵測該使用者目前於何處。根據本發明之一態樣,可利用一推論分析結合直接測量以決定使用者架構,如於該說明之稍後一節中所描述者。
請參照第26圖,舉例說明可達成使用者架構之直接測量之一系統2600。該系統2600包含一架構分析器2602及通訊耦合至數個感應器2604-2616,舉例來說,也就是一行動電話2604、一視訊攝影機2606、一麥克風2608、一鍵盤2610、一PDA 2612、一汽車2614、及一GPS 2616。描述於第26圖中之感應器2604-2616僅為舉例說明之目的,且不代表對本發明本身之一限制。在此使用之感應器一詞係一一般且全面囊括詞,意指該架構分析器2602可決定該使用者目前注意焦點為何及/或該使用者目前位置為何之任何裝置或方法。
舉例來說,若該使用者開啟行動電話2604,此可指示該使用者可接收警告於該行動電話2604上。然而,若該使用者目前交談於該行動電話2604上,此可指示該使用者將他或她的注意焦點於別人身上(也就是該目前來電),使得該使用者目前不應被一通知警告打擾。舉例來說,一視訊攝影機2606可於該使用者的辦公室中,以偵測是否該使用者於他或她的辦公室(換言之,該使用者位置)中,且是否
其他人亦於他或她的辦公室中建議與其之一會議,使得該使用者不應被打擾(換言之,該使用者的焦點)。同樣的,該麥克風2608亦可於該使用者的辦公室中,以偵測是否該使用者正與某人交談,使得該使用者不應被打擾,其正在鍵盤上打字(如經由從聲音那裡產生),使得使用者目前不應被打擾。亦可實施該鍵盤2610以決定是否使用者目前輸入於其上,使得舉例來說,若該使用者輸入非常快,此可指示該使用者焦點放在一電腦相關動作上,且不應被不當打擾(且,亦可指示該使用者事實上於他或她的辦公室中)。
若該PDA裝置2612正由該使用者存取,此可指示該使用者可於該裝置2612接收警告-也就是說,無論該裝置2612位於何處,通知應傳送至該位置。亦可利用該裝置2612以決定該使用者目前注意焦點。該車2614可用以決定是否該使用者目前於該車中-也就是說,若該車目前整由該使用者操縱。此外,舉例來說,可考慮該車之速度,以決定該使用者的焦點為何。例如,若速度大於一預定速度,則可決定該使用者將注意力放在駕駛上,且不應以通知警告干擾。亦可實施GPS裝置2616,以確定該使用者目前位置,如該業界中已知者。
在詳細說明之下一節中,根據使用者可修改規則說明使用者架構之一決定。該使用者之架構可包含該使用者的注意焦點,以及他或她的目前位置。然而,本發明並不這麼限制。經由規則決定內容指出可跟隨一階層性如果-則規則組,以決定該使用者的位置及/或注意焦點。
請參照第27圖,一示意圖舉例說明一範例階層順序規則組2700。舉例來說,該規則組2700描述規則2702、2704、2706、2708、2710、2712及2714。應注意可類似配置其他規則。如第27圖中舉例說明者,規則2704與2706附屬於2702,而規則2706附屬於規則2704,而規則2714附屬於規則2712。該規則加以排序,最先測試規則2702;若發現為真,則測試規則2704,而若規則2704發現為真,則測試規則2706,以下類推。若規則2704發現為假,則測試規則2708。若規則2702發現為假,則測試規則2710,其若發現為真,則導致測試規則2712,其若發現為真,則導致測試規則2714。若想要,該規則可由使用者建立及/或修改。其他類型規則亦可包含於規則組2700中(如若其則規則發現為假,則控制其他規則)。
因此,由該使用者建構一規則組,使得決定該使用者的架構。舉例來說,關於位置,該規則組可為一第一規則,測試是否該目前日期為一工作日,若是,則附屬於該第一規則之第二規則測試是否該目前時間介於上午9點至下午5點。若是,則該第二規則指出該使用者位於他或她的辦公室中,否則該使用者於家中。若該第一規則發現為否-也就是說,該目前日為一週末而非一工作日-則一其他規則可陳述該使用者於家中。應注意此範例並非意指本發明本身之一限制範例,其中亦可類似配置一或多個其他規則。
在說明的下一節中,說明推論分析之使用者架構之一決定,例如藉由實施一統計及/或貝斯模型。應注意經由推
論分析之內容決定可一依賴於其他決定之某些方法,例如經由感應器之直接測量,如之前所描述者。在此所使用的推論分析參照利用許多輸入變數上之一推論處理,以產生一輸出變數,也就是該使用者之目前架構。該分析可包含利用一統計模型及/或一貝斯模型之一態樣中。
請參照第28圖,根據本發明之一態樣舉例說明一系統2800之一示意圖,其中由一推論引擎2802執行之推論分析,以決定一使用者的架構2804。該引擎2802係由一電腦之一處理器執行來自其電腦可讀取媒體之一電腦程式之一態樣,例如一記憶體。該使用者架構3804可視為該引擎2802之輸出變數。
該引擎2802可處理一或多個輸入變數以做出一內容決策。舉例來說,此輸入變數可包含一或多個感應器2808,例如已結合此說明前一節中內容決定之一直接測量方法加以描述之感應器,以及由一時鐘2810及一日曆2812代表之目前時間與日期,可存取於一使用者排程或個人資訊管理(PIM)電腦程式中,及/或於該使用者的PDA裝置上。除了第28圖中所舉例說明者外,亦可考慮其它輸入變數。第28圖之變數並非用於本發明本身之一限制。
現在請參照第29與第30圖,根據本發明舉例說明一範例推論模型,例如由一統計及/或貝斯模型所提供,可由上述推論引擎所執行。一般來說,一電腦系統可不太確定一使用者狀態之細節。因此,可建構可推論關於一使用者注意力或其他不確定狀態之隨機模型。貝斯模型可推論透
過一使用者注意焦點散佈之一可能性。此注意狀態可公式化為一典型情況組或由一使用者點出之認知挑戰之一不同類別組之更抽象呈現方式。或者,模型可公式化為推論關於注意焦點之一連續測量,及/或謂不同類型通知直接推論透過干擾成本散佈一可能性之模型。
可實施貝斯網路,可根據關於一使用者活動與位置之一觀察組,推論其他活動內容或狀態的可能性。作為一範例,第29圖顯示為單一時段用以推論一使用者注意焦點之一貝斯網路2900。一變數狀態,注意焦點2920,參照桌面及非桌面內容。舉例來說,於該模型中考慮之範例注意內容包含情況察覺、趕上、非特定背景工作、焦點內容產生或檢閱、光內容產生或檢閱、瀏覽文件、辦公室中會議、辦公室外會議、聆聽簡報、私人時間、家庭時間、個人焦點、輕鬆交談與旅行。該貝斯網路2900指出由該使用者排程預約2930、日期時間2940、及期限近接度2950影響之一使用者目前注意力與位置。舉例來說,透過一使用者注意力散佈之可能性亦由一使用者辦公室中監控之周圍聲學信號2960狀態之簡介加以影響。周圍聲學信號2960之片段經過時間提供關於活動與交談存在之線索/輸入。軟體應用程式與由一使用者一電腦互動所產生之使用者活動之前進流之狀態與配置亦提供關於一使用者注意之證據來源。
如之前於該網路2900中所描繪者,目前於一作業系統或其他環境中之頂層焦點2970之一軟體應用程式影響該使用者焦點與工作之本性,且一使用者注意狀態與焦點中
應用程式一起影響電腦中心活動。此活動包含使用者活動流,建立自滑鼠與鍵盤動作與高階樣式應用程式透過較廣水平時間使用之順序。此樣式包含電子郵件中心與文書處理器中心,且參照活動的典型類型,包含多個應用程式交叉的方式。
第30圖舉例說明不同時段架構變數間一使用者注意焦點之一貝斯模型3000。一馬可夫暫時依附組由該模型3000舉例說明,其中於該使用者狀態之目前決定中考慮架構變數之過去狀態。實際上,此貝斯模型3000考量由一線上行事曆提供之資訊,舉例來說,及關於室內聲學之觀察流及使用者活動,如由一事件感應系統(未顯示)所報告者,且繼續提供關於一使用者注意力之散佈可能性之推論結果。
第31與第32圖根據本發明舉例說明用以提供一通知架構部分之方法論,例如一架構分析器與一通知引擎。為了簡化說明之目的,該方法論以一連串動作顯示與描述,應了解本發明並不限制動作之順序,根據本發明,從在此所顯示與描述者,某些動作可以不同順序及/或與其他動作同時發生。舉例來說,熟知該項技術人士應了解一方法論或者可代表為一連串相互關連之狀態或事件,例如於一狀態示意圖中。此外,並非所有例示動作皆要求實施根據本發明之一方法論。
請參照第31圖,一流程圖3100舉例說明根據本發明決定一使用者架構。該處理包含決定該使用者位置於3102
及該使用者焦點於3104。這些動作可藉由先前所描述的一或多個方法加以達成。舉例來說,可實施一設定檔;一使用者可指定他或她的架構;可利用架構之直接測量;可跟隨一組規則;亦可執行一推論分析,例如經由一貝斯或一統計模型。應了解可實施其他分析,以決定一使用者之架構。舉例來說,可有一整合視訊攝影機來源,注意是否某人於該電腦前,且是否他或她注視該電腦。然而,應注意該系統可操作有或無一攝影機。對於所有來源來說,該系統可操作實質任何可用之輸入來源,不要求任何特殊來源以推論架構。此外,在其他態樣中,可有整合加速度計、麥克風、及近接偵測器於小型PDA上,給予一使用者位置與注意力之感應。
現在請參照第32圖,根據本發明之一態樣,一流程圖3200舉例說明為一通知引擎之一決策處理。於3202,一或多個通知來源產生通知,其由一通知引擎加以接收。於3204,一架構分析器產生/決定關於該使用者之架構資訊,其於3206中由該通知引擎加以接收。也就是說,根據本發明之一態樣,於3204,該架構分析器存取一使用者前後文資訊設定檔,指示該使用者目前注意狀態與位置,及/或自一或多個前後文資訊來源存取關於該使用者目前注意狀態與位置之及時資訊,如於說明之前幾節中已描述者。於3208,該通知引擎決定何通知傳送至何通知接收器,部分根據自該架構分析器接收之架構資訊。該通知引擎亦根據關於由該架構分析器儲存之使用者通知參數之資訊做出決
定。也就是說,根據一態樣,在3208中,該引擎執行一決策理論分析,是否應為一給定通知警告一使用者,及應如何通知該使用者。如下方將更詳細說明者,決策理論及/或試探分析,決定與策略可實施於3208。關於該使用者之通知參數可用以個人化該分析,藉由填入遺失值或藉由覆寫來源或接收器之綱目中提供之參數。通知喜好亦可提供策略(如試探),實施代替該決策邏輯分析。根據此決定,該通知引擎於3210將該通知傳送至該散佈器。
資料驅動應用程式安裝
根據本發明之一態樣,資訊代理者應用程式之安裝可藉由更新預定表加以執行。當安裝時,傳統通知系統以及其他應用程式一般包含資料庫物件之一設定。於一安裝處理期間,每個應用程式傳統上必須儲存程序以及大量表與資料庫。然而,本發明採取一不同方法。首先,當安裝一系統或平台時,例如資訊代理者系統100,可建立一基本表組。因此,應用程式安裝僅包含插入資料至該預先存在表中。當已安裝應用程式之數量增加且允許可擴充性時(如下所討論者),此方法減少資料庫物件之設定檔。
為了執行前述者,事件、喜好、及程序可皆儲存為資料。此讓一系統利用資料庫引擎之逐漸增加處理能力,並要求執行許多應用程式,例如資訊代理者應用程式300(第3圖)。如上所述,喜好可由使用者端加以定義,且接著摘要至表與資料庫中之高階資料欄位。事件可被抓取或取出,且接著儲存於一資料庫中。傳統儲存程序,例如查詢
評估程序,亦可藉由建立程序與將文字轉入一或多個資料庫表中表示為資料。此後,當該程序執行時,代表該程序之文字字串可自一資料庫表拉出,並動態評估於該資料庫中。此方法動態減少必須由一應用程式建立之已儲存程序之數量,且讓應用程式安裝僅為一DML(資料操控語言)資料驅動操作。
組合性與可擴充性
本節描述資訊代理者應用程式於初始建立期間如何組成,且其稍後可如何擴充。資訊代理者應用程式(IA)應用程式設計以讓一使用者端經由一事件條件動作(ECA)模型與某基本系統或應用程式網域互動。尤其是,資訊代理者應用程式設計以讓使用者可指定控制如何應用其他應用程式功能之喜好,尤其為處理資訊路由、過濾、及處理之問題網域,其中使用者架構之感應度是很重要的。在此基礎上,資訊代理者應用程式之組合性與可擴充性應了解為將目標放於一使用者有效建立喜好(新ECA例示)之能力,而非導向組合或擴充該基本系統或應用程式網域。
資訊代理者應用程式組合性與可擴充性之一目標並非建立新應用程式、組件、或系統模型(雖然此為可能,且應視為於本發明之領域中)。而是,該目標係讓動態擴充至一系統之層或元件,讓一使用者透過一ECA模型(如決策邏輯組件330)指定喜好邏輯。尤其,在一給定應用程式安裝時之後,目標係允許新條件與動作(ECA之CA部分)可用於使用者端。此外,亦應了解事件(ECA之E部分)亦可以
一類似方式動態擴充。
根據本發明之一態樣,資訊代理者應用程式沒有其本身之使用者介面以定義喜好,但而是利用一作業系統介面或一應用程式特殊使用者介面用以建立喜好。在此架構中,資訊代理者應用程式組合性與可擴充性設計以加入新條件與動作,以該既有使用者介面之後可允許使用者建立具有新條件與動作之新喜好之一方式。如此一來,IA應用程式可支援反應於此新條件與動作上,使得可適當顯示此新功能之簽名以及一擴充提供說明,以提供使用者端架構如何集合時適當使用新條件與動作。
重複在資訊代理者應用程式於不同時間存在於不同架構之間。尤其是,當IA應用程式可自我滿足且自由常駐時,許多IA應用程式會真正與其他IA應用程式提供之影響作用功能互動。特別是,一應用程式定義之條件與動作函數亦可由其他應用程式加以使用。IA代理者亦可以其他方式另一代理者互動。舉例來說,IA應用程式中之一喜好評估可觸發建立傳送至另一IA應用程式之一事件之一動作。
組合性與可擴充性間之不同對於了解資訊代理者應用程式之集合如何互動與進展是很重要的。組合性係當一新資訊代理者應用程式建立時使用之概念,其建立於組合性存在且由其他資訊代理者應用程式於該應用程式初始建立時提供之後。可擴充性參照該概念與處理,藉此一已存在資訊代理者應用程式擴充新功能,其於建立或安裝應用程
式後加以產生。此外,由於一共用機制組用於支援組合性與可擴充性,了解此共用機制如何用於達成某些不同目的的組合性與可擴充性的些微差異是很重要的。IA應用程式組合性之概念亦可應用至單一IA應用程式自一個別部分組建構之處理。此組合性態樣點出該軟體工程以一模組化方式研發一IA應用程式之目標。引入該IA應用程式系統之可擴充性概念與傳統之可擴充性概念一致。也就是說,新功能接著加入一IA應用程式之原始定義,增強該應用程式之功能。
就許多方面而言,一IA應用程式之測量係由呈現給使用者之功能加以決定。因此,一IA應用程式可擴充之程度可由該擴充加以決定,新條件與動作對使用者有效,定義一既有應用程式之架構中之新喜好。IA應用程式可擴充性主要針對讓新條件與動作於該應用程式安裝後加入一應用程式,而不進一步由該原始應用程式之作者介入。為了了解如何完成,強調該改革鏈是很重要的,一動作或條件函數之定義最後變成可存取一資訊代理者應用程式之使用者端。
現在回到第33圖,根據本發明之一態樣描述一條件/動作改革鏈3300。於3310,條件與動作開始為條件或動作函數。舉例來說,當參照至一SQL可呼叫函數/已儲存程序之定義之正式簽名時,可使用此函數目的。在定義一新條件或動作函數與該函數由一對應條件或動作之一宣告結合至一既有應用程式時間之間,該函數被視為一候選函
數。一候選函數之研發人員指示允許結合一目標應用程式擴充以建立一條件或動作,自此於3320函數稱為候選條件或動作。於此階段,條件或動作為既有應用程式擴充之候選使用,使得該應用程式可使用該條件或動作,但不要求接受它們。欲擴充應用程式中之接受邏輯決定是否接受此結合與否,舉例來說,根據誰指派該提議擴充/結合。一旦一應用程式結合其喜好類別至一條件或邏輯函數,於3330候選條件或動作僅變成條件或動作。最後,當一使用者端利用一新定義喜好之架構中之一條件或動作時,該動作或條件於3340例示為描述於該鏈中。
第34圖根據本發明之一態樣為應用程式互動舉例說明一系統3400。系統3400包含一範例登錄組件3410、定義登錄3412、結合登錄3414、應用程式A 3420、應用程式B 3430、結合3425、及擴充組件3440。在可擴充性之一實施方式中,配置單元係一應用程式或一擴充。範例藉由加入應用程式或應用程式資料檔(ADF)加以擴充。ADF可由研發人員為使用於配置單一應用程式時加以建立。一ADF一般定義該應用程式之中央邏輯,且為事件、條件、及如通知之動作包含綱目。應用程式可藉由加入擴充或擴充資料檔(EDF)加以擴充。EDF可由任何人加以建立,且使用於已建立一範例與應用程式後之任何時間(包含具有一應用程式之初始安裝)。
對於共享功能之應用程式來說,其必須互相注意。根據本發明之一態樣,此可藉由利用一範例登錄3410加以完
成,其由一定義登錄3412與一結合登錄3414組成,以儲存關於函數及函數如何結合至應用程式之資訊。範例登錄3410為應用程式提供一共享位置以儲存資料。範例登錄3410包含一定義登錄3412與結合登錄3414。
定義登錄3412儲存關於應用程式函數之資訊。根據本發明之一態樣,由應用程式(如IA應用程式)使用之應用程式函數可登錄或儲存於該定義登錄3412中。該定義登錄3412中之登錄函數導致該函數公開至執行於一系統上之所有應用程式。因此,由應用程式使用之函數為完整私用,意指其不登錄於該定義登錄,或公用,意指其登錄於該定義登錄中,且可由所有其他應用程式加以存取。應注意此僅為實施一定義登錄之一方式。另一實施機制可儲存一指示器,發出信號是否一函數係公用或私用。可併入該定義登錄中之某些範例資訊包含下列各項:
結合登錄3414可儲存所有結合、條件、動作、及存取器至來自複數個應用程式之函數。此可為真,不管是否那些函數自一初始定義或至該應用程式之稍後擴充加以取出。此外,應注意根據本發明之一態樣,沒有結合元資料,一公用函數不可用。結合元資料係指是一公用函數如何結合至一應用程式資料事件資料之資訊。登錄一公用函數於該結合登錄3414中結合一函數至一應用程式。此為一對多關係,其中一函數可結合至許多不同應用程式。
登錄於結合登錄314中之結合可具有數個狀態。舉例來說,一結合可為一候選結合。候選結合由一函數之一定義器加以建立,且可對其他應用程式有用。一結合亦可具有一結合函數之狀態,指示該結合特別對一給定應用程
式,呈現特定應用程式如何結合至一給定條件或動作函數。再者,一結合可具有「不接受」之狀態。有目標放至一特定應用程式旦不被目標應用程式的接受邏輯所接受之候選函數。接受邏輯可宣告於一ADF中,且可包含組件,其中用以確保一EDF來源係可信的(如使用數位簽名)、已授權(如來自一已信賴來源清單)、及已認證(EDF已由一已信賴來源簽名)。可放至於結合登錄3414中之其他資訊包含但不限於:
擴充組件3420根據候選函數建立條件與動作。擴充組件3420可由一安裝程式於安裝時呼叫,以結合候選函數至應用程式。若依新候選函數項目於該結合登錄3414中做成,根據其中採取於一目標應用程式之部分上之動作或缺乏可發生幾件事。舉例來說,若不安裝該目標應用程式,則可忽略該項目。若安裝該目標應用程式但配置不接受擴充,則同樣可忽略該項目。然而,若安裝該目標應用程式且接受該候選函數,則為該應用程式建立一新條件、動作、或存取器結合,且利用擴充組件3420結合至該應用程式。因此,在系統3400中,應用程式A 3430含有一區域函數「ConditionFuncx」,其想要可用於應用程式B 3440。該函數可藉由加入一擴充資料檔(EDF)可用於應用程式B 3440。此後,該函數以可用於應用程式B 3440之方式儲存於範例登錄3410中。例如,ConditionFuncX可登錄於定義登錄3412中,而一候選函數可儲存於結合登錄3414中。
擴充組件3420接著可自結合登錄3414讀取該候選函數,可藉由結合至應用程式B 3440建立條件A。因此,一結合3450係建立結合條件A至應用程式A之ConditionFuncX。
一旦已建立結合或依附性,應注意其可以許多方式打破。例如,若解除安裝該應用程式,由一應用程式實施之一函數可變成無效(如打破依附性)。依附性可被打破之一方法之另一範例會是若依新應用程式以一新條件、動作、或存取器安裝,其結合至不再有效之一函數。此外,若一應用程式重新配置以不再接受所有或特定擴充,可打破依附性。因此,既有喜好可能具有不再有效之條件、動作或存取器之依附性。打破的依附性可以許多方法補償。根據本發明之一態樣,可定義一無效狀態。例如,在一應用程式允許完全打破依附性之前,可通知所有其他應用程式,使其可將依附喜好放至一「NotAvailable」狀態中。此後,無論何時安裝一應用程式,該系統或應用程式可檢查看看是否已重新建立依附性,使得該無效狀態可變更為有效,且可利用該喜好。
喜好可建立於資訊代理者應用程式之間。喜好初始化呈現可達成IA應用程式間互動之方法。根據本發明之一態樣,可提供至少二機制,讓使用者建立存取超過一IA應用程式之功能之喜好。一機制係EDF結合。應用程式研發人員可建立EDF,讓一應用程式中之喜好類別參照定義於其他應用程式中之條件與動作。此讓使用者端例示參照來自多個應用程式之條件與動作之喜好。事件傳輸動作亦
可利用多個應用程式提供之功能。當一事件類別由一應用程式定義時,可隱藏建立一事件傳輸動作函數。此後,這些事件傳輸動作函數可經由其他應用程式使用之EDF結合至動作,藉此充實新建立使用者喜好之潛在功能。
為了讓應用程式直接例示由一應用程式研發人員,相對於一使用者端,指定之喜好之目的,可能需要額外機制或組件。一機制或組元件可對應至喜好範本。喜好範本可定義於一喜好類別之架構中,且包含一條件與類別組。為了定義該範本之目的,一喜好類別之語法可以依新標籤加以擴充。因此,為了擴充應用程式具有新範本之目的,此標籤可由EDF使用。亦可實施喜好例示動作。當建立一新喜好範本時,可隱藏建立一動作函數以例示來自一指定範本之一喜好。該動作函數之參數呈現必須例示來自該範本固定條件動作組之一喜好之常數。
研發人員亦可例示應用程式中與跨應用程式之喜好,而不受一使用者端之顯見介入。可實施數個機制以完成此功能。舉例來說,一新ADF標籤可加入一喜好類別,以允許喜好直接於應用程式定義時例示於一ADF中。或者,一新EDF標籤可加入該喜好類別。此會允許喜好例示於應用程式定義期間或之後。除此之外,喜好例示可透過該綱目定義外之程式(如SQL程式)完成,舉例來說,透過系統API之使用。
藉由前述功能,應用程式(如IA應用程式)互動可發生為一應用程式傳送事件、評估條件/動作、或例示其他應用
程式中之喜好。此互動可直接藉由研發人員或透過使用者端定義喜好加以完成。
為了更加了解應用程式組合性與可擴充性之各種態樣,此後提供幾個範例。ShellApp係一作業系統資訊代理者應用程式。Office亦為一資訊代理者應用程式。
範例
#1 組合
組合可定義於授權一新應用程式結合一既有已知函數時。在此範例中,先安裝ShellApp,而Office於其後安裝。當授權Office時,該研發人員知道並設計該Office應用程式以影響該ShellApp之FuncX條件函數。當安裝Office時,其註冊一結合於該結合登錄中,其結合FuncX條件函數(舊函數)至該Office應用程式(新應用程式)之一條件。該Office應用程式安裝程式接著呼叫讀取該結合登錄之擴充組件。該擴充組件接著可偵測有已定義(「內建」)之一條件,且因此跳至下一步驟,其重新評估該範例無效狀態。該Office應用程式由ShellApp加以擴充。
範例
#2 擴充
擴充可定義於當一舊應用程式以一新函數擴充時。在此範例中,如上述,安裝ShellApp,接著安裝Office。當授權Office時,該研發人員建立可用於該ShellApp中之一動作函數FuncY。當安裝Office時,其登錄一動作函數於該定義登錄中,及一結合於該結合登錄中,結合該Office應用程式FuncY(新函數)至該ShellApp(舊應用程式)之一動作。該Office應用程式之程式碼呼叫該擴充組件,以偵
測有一新結合沒有對應動作於該ShellApp中,且因此藉由將其建立於該ShellApp中以內部化該動作。其接著重新評估該範例廣泛NotAvailable狀態。ShellApp稱為已以該Office應用程式擴充。
範例
#3 修補擴充
當一函數與應用程式已被安裝於一系統上時,可發生修補。因此,假設ShellApp與Office已安裝於一系統上,則接著安裝一辦公室服務封包。在該Office問世後,應用程式研發人員了解到有一Office之一動作函數ShellApp可使用。服務封包再其中含有定義一結合之一EDF,結合一新Office應用程式條件至該Office應用程式中之條件函數。當安裝該服務中時,其可登錄該結合於該結合登錄中,且呼叫該擴充組件。該擴充組件可偵測有新結合,其沒有對應動作或條件於該目標應用程式中,且之後將其建立於該ShellApp與Office應用程式。該擴充組件可重新評估該範例廣泛NotAvailable狀態。ShellApp接著可稱為已由該Office應用程式擴充,而Office可稱為已由ShellApp擴充。
範例
#4 解除安裝
假設已解除安裝一先前安裝之Office應用程式,且在該處理期間,其自該定義與結合登錄移除其所有登錄。ShellApp現在可具有根據由現在已移除之Office所實施之函數之動作。因此,可為所有具有已破壞依附性之所有動作宣告一無效或NotAvailable狀態。一使用者端可接著接
收關於遺失依附性之一提示。一使用者端接著可選擇保持無效喜好或動作(如將來是否會回復Office)或僅將其刪除。
範例
#4 重新安裝
假設現在已重新安裝Office之先前解除安裝應用程式,且在安裝期間,其重新登錄其動作函數與結合至ShellApp。該Office安裝程式接著可呼叫該擴充組件,以建立一動作於該ShellApp中。然而,該擴充組件可僅偵測是否該條件、動作或存取器已存在於該目標應用程式中(如應用程式先前已安裝),並跳過該建立步驟。函數之NotAvailable狀態接著可被重新評估,以確保可為主動之所有函數放置於一已啟動狀態中。
個人化資料夾
前面提及與上述系統促進資訊應用程式之建構,其為一給定事件組自動化決策與動作之處理。因此,應用程式可建立讓使用者端個人化對事件之回應,包含但不限於桌面通知與電子郵件到達。此後會加以描述此一應用程式係一個人化資料夾應用程式。本發明允許藉由利用一綱目化資料儲存與綱目化邏輯處理此功能為個人化事件。
回到第35圖,根據本發明之一態樣描述個人化系統3500。系統3500包含資料儲存3550及一資訊代理者應用程式300,包含個人化資料夾3510與喜好3512。個人化資料夾3510稱為資料夾或資料容器,可根據可由使用者端直覺指定之條件運算式包含或排除項目。在一範例中,資料
夾3510可以一階層方式安排,且由一作業系統之一組件實施。然而,應注意資料夾或資料容器該詞之使用不意謂以一有限方式。資料夾3510可擴充至由一組關係所指定之連結、指標或資料之任何集合。資訊代理者喜好3512為一非技術使用者端呈現結合綱目化邏輯與綱目化資料(如經由資料儲存150)之能力,以提供多種個人化應用程式與環境。相反的,傳統喜好僅利用具有提供字串常數之直覺名稱之簡單條件。喜好3512可由使用者端加以指定,舉例來說,利用其熟悉之邏輯,例如:於事件上,IF條件THEN動作,或以更多應用程式特定詞:在資料夾事件上,IF條件THEN包含/排除動作。此外,應注意喜好3512可由推論分析加以研發,例如藉由實施一統計及/或貝斯模型,以根據使用者動作學習使用者喜好。再此使用之推論分析參照利用許多輸入變數上之一推論處理,以產生一輸出變數,也就是使用者喜好或輸出至一喜好研發工具。在一態樣,該分析可包含利用一統計模型與/或一貝斯模型,但並不限定於此。除了條件與動作之外,喜好包含初始評估該喜好之觸發器。根據本發明之一態樣,此觸發器可包含顯見使用者方向,以時間排程,及/或於一資料夾中自動加入一文件、刪除一文件、及/或修改一文件。再者,應了解喜好3512可被群組化以達到結果組,其太複雜以致不容易經由單一運算示加以建立(如自資料夾包含/排除特定項目,結合多個查詢之結果)。另外,應注意兩個個別及群組喜好3512可表現為一實體,使得一使用者可於資料夾3510之
間拖、放、剪下、並貼上喜好。資料夾3510可包含資料之副本,或僅指向一儲存裝置中儲存之資料之指標(亦稱為虛擬資料夾)。該已儲存資料可包含但不限於文書處理文件、試算表、圖片、及音樂。再者,個人化資料夾3510可具有關於複數個不同網域中項目之相關喜好3512。為了支援此功能,可引入預定常數。更特別的是,來自一項目網域(如MyGrandparent)之預定常數可用為參數至來自其他網域(如Photosfrom(MyGrandparent))之條件。預定條件與常數之組合為使用者端提供一簡單直覺之方法關聯各種項目網域。當然,使用者定義常數亦可提供至一個人化資料夾之條件。簡單條件可參照為一項目網域來自該綱目。舉例來說,該條件EmailIsFrom( )或SubjectContains( )可參照來自一電子郵件綱目。然而,一綱目研發人員一定可顯見指定一較多樣且更小組的有用條件。此外,亦應注意可加入新條件至一應用程式300(可擴充性),且接著由使用者端利用定義新喜好。當安裝新綱目時,用以個人化資料夾之新功能變得可能。
根據本發明之一態樣,資料夾3510可分類為使用中作用或已取出。當某些有趣的事發生於一資料夾中時(如事件檔案文件新增、刪除、或修改),作用資料夾代表一使用者採取動作。舉例來說,圖片可自一數位攝影機下載至稱為MyPictures之一作用資料夾。同時或在稍後一小段時間之內,該作用資料夾可諮詢一行事曆應用程式,以決定當照該照片時使用者正做些什麼,且接著以一適當標題(如釣魚
旅行)建立一新資料夾,並移動該照片至該新資料夾。在一電子郵件內容中,一電子郵件應用程式可決定一訊息何時包含一支出報告,且是否其小於一特定值,移動該報告至一已許可支出報告資料夾。在作用資料夾之又一範例使用中,音樂可下載至一作用資料夾,接著決定該藝術類型(如爵士、古典、饒舌、搖滾),並移動該音樂至一適當資料夾。
已取出資料夾使用喜好以決定是否包含或排斥來自一資料夾之特定檔案。除此之外,應注意已取出資料夾可為提供映射或指標至檔案之虛擬資料夾。虛擬資料夾作為用以放入資料之實際資料夾,另外該資料夾不具有一實際實體存在。一已取出資料夾之使用之一範例包含一情況,使用者定義一資料夾以包含該使用者在最近兩週內至少聽三次之所有爵士音樂。已取出資料夾亦可由喜好定義,以包含一特定類型但具有特定例外之所有檔案。例如,一資料夾可定義以包含爵士音樂家Miles Davis的所有音軌,但排除特定歌曲音軌(如Human Nature與New Rumba)。此外,應注意可定義喜好,使得一使用者可拖曳檔案至資料夾中,且該資料夾會確定是否該已放入檔案係已定義之類型。若該檔案係一已許可類型,其可被加入該資料夾中,若否,可拒絕該檔案(如不複製至該資料夾),或者,該使用者可提示是否應為該特定檔案建立一例外。
此外,應注意特定資料夾可呈現作用資料夾與已取出資料夾之特徵。因此,某些資料夾可具有與其相關之喜好,其指定何項目包含於一資料夾中,以及指定當特定事件發
生於這些項目上時要採取什麼動作之喜好。
可利用系統100之執行引擎處理應用程式。如之前所揭示者,喜好可以儲存為資料並以一資料查詢之形式執行。資料儲存150可儲存資料於一或多個表中,其可接著利用喜好資訊加以查詢。傳統上,針對一表資料庫執行查詢會在計算上不可行,當該查詢必須繼續執行於相對短區間中,以確保該資料夾中之資料保持為目前者。這在類似個人電腦的輕量級系統上特別不實用,如同於經常執行查詢以更新資料夾資料時,該處理器無法處理有效執行許多程式者。然而,本發明藉由執行查詢於事件發生上克服此問題,例如當資料新增、刪除、或修改時。因此,一處理器不負擔連續執行查詢,且該資料夾資料保持為目前者。
根據作用資料夾之類工作流程動作
個人化(如ECA規則)不同於工作流程或工作排程。工作流程或工作排程為可經由資料夾中項目呈現之一件多步驟工作。個人化係讓一使用者端指定喜好之概念,為了自動化處理使用者端有意義事件(如電子郵件到達)或系統/應用程式行為(如根據使用者架構控制桌面干擾)之目的應用於系統/應用程式擷取點處。個人化考量讓一使用者端表示何邏輯區域化至一給定擷取點(如事件、工作流程中一點…)之一喜好。由於單一喜好之動作之多個喜好之任何階層化評估皆相同,並沒有事先計畫。因此,個人化並非工作流程之一小型形式,而非工作流程與個人化為在一起的不同事件。用以處理一事件之一入射階層喜好不同於一工
作流程中已計畫之工作/規則鏈。此外,個人化可應用至電子郵件、來電、桌面干擾、及是否包含一工作流程或工作排程與否之許多其他類型的獨立使用者端事件。一個人化工作流程係根據個人化對工作流程係一獨立但互補之概念之前提而定。
個人化可應用至工作流程或工作排程,無論使用者端決策何時相關。有各種個人化工作流程之機會於個人化一工作、個人化工作流程初始化、個人化一工作流程工作、及個人化工作流程排程中。個人化一工作之一範例可為一使用者指定決策邏輯以自動化處理特定工作處,例如以一個人直接報告自動許可一特定金額之順序。工作流程初始化處理決定是否根據一興趣事件(如來電、電子郵件來到…)開啟/初始化一工作流程。一已計畫個人化可藉由將其以適當功能包覆潛在轉入一工作流程工作,以與欲追蹤之一排程互動等等。換句話說,一個人化可用為一工作流程中之一已計畫工作,其中使用者喜好會完全決定該工作之解析度。最後,個人化可包含於工作流程排程中。當存在關於一工作流程中下一個步驟之選擇時,個人化可用以允許一使用者為此決策指定喜好。
包含許多上述類別之一個人化工作流程之一實際範例可為一支出報告之處理。在此範例中,一電子郵件到達收件匣中,偵測該電子郵件之類型(如主旨行、標示為支出報告…),掃描該電子郵件資料,且若一發票數量小於一特定金額數量,該報告會移入一已許可資料夾中。之後,一電
子郵件可傳送回該傳送者,指示該報告已許可狀態。因此,可為由一使用者每月檢閱建立一旅程,且可結算已許可總量。
一工作流程之個人化之所有上述種類增強該工作流程之值,此利益之可行性並不排除於工作流程之外。那些利益可應用至許多其他網域,包含但不限於通訊處理、路由、或個人化,其中此網域可能不參與一工作流程中。
記錄資料夾
根據本發明之一態樣,記錄代表關於一使用者或一系統之一使用者之歷史與架構資訊。通知系統常常包含歷史資料之概念,可使用為評估是否根據一先前動作採取一動作之部分。例如,一使用者可希望設定一喜好,說「當MSFT股在當日到達一新高點時通知我」。在此情況中,該系統必須可於該日期間維護MSFT股之最高價格點,並當到達一新高點時更新此資訊。
根據本發明之一態樣,記錄儲存於一資料儲存中,並可自由對使用者經由一使用者介面(如由該作業系統提供)加以存取。因此,一使用者端具有透過此歷史資料之控制;其可以其他檔案備份之方式將其備份,其可將其與其家中或辦公室中之其他電腦同步化,其可將其透過一般檔案共用機制將其共享,且可設定存取許可與其他安全性設定,以控制誰真正可存取此架構資訊。例如,一使用者可允許其工作群組中的每個人看關於MSFT股價的歷史資訊,但可希望限制架構資訊,例如是否其於其桌前或於一會議室
中時方可觀看。
此外,本發明之系統可暴露特定共用行為為「內建」記錄建立/維護邏輯,包含建立代表一使用者採取之各動作儲存於一紀錄於此之一「審計」記錄;該系統持續計算其已看見多少特定種類之事件或動作之一「計算」記錄;及可追蹤經過一特定時段所看見之歷史最高與最低值之一「高/低浮水印」記錄之能力。
此外,本系統可使這些記錄由應用程式更新變得可能,其完全不知道關於資訊代理者應用程式。許多通知平台使架構資訊於使用者規則正常處理期間(在此亦稱為喜好)更新變得可能,但由於本發明利用一資料儲存中儲存之綱目化資料且作為規則或喜好處理之部分,該系統可使用由任何應用程式建立之架構資訊。例如,一使用者可下載與執行由NASDAQ寫入之一應用程式,其將及時股市行情流向一使用者電腦。該NASDAQ應用程式可為該使用者有興趣之各信號建立一檔案,並儲存相關資訊於這些檔案中。根據一態樣,由於本發明之資訊代理者應用程式建立以利用此類型之外部化架構資訊,該資訊代理者系統可於使用者規則或喜好處理期間使用這些檔案作為記錄。
記錄亦可使用於與作用資料夾結合。由於該個人化資料夾系統包含觀察特定資料夾之能力,建立、修改、或移至此資料夾中之資料夾項目可被視為至一特定記錄或記錄組之架構更新。如此一來,對一使用者來說,維護記錄而不需要代表其執行之任何程式設計寫入程式碼是可能的。
而是,使用者端可僅使用該作業系統之既有檔案操控機制,以保持其架構資料為最新。
因此,本發明可實施為利用標準程式設計及/或工程技術以產生軟體、韌體、硬體、或其任何組合之一方法、設備、或產品。在此使用之「產品」(或者,「電腦程式產品」)該詞用來囊括自任何電腦可讀取裝置、載體、或媒體可存取之一電腦程式。當然,熟知該項技術人士應認知在不超出本發明領域之外可對此配置作許多修改。
鑑於前述之範例系統,可根據本發明實施之一方法論將參照第36-41圖之流程圖可更容易了解。為了簡化說明的目的,該方法論顯示與描述為一連串區塊,應了解本發明並不限制該區塊之順序,根據本發明,在此描述與說明之某些區塊可以不同順序及/或與其他區塊同時發生。此外,並非所有例示區塊可要求以實施根據本發明之方法論。
回到第36圖,根據本發明之一態樣舉例說明用以實施喜好之一方法論3600。於3610,舉例來說,喜好由一使用者端根據一研發人員綱目(如XML綱目)加以指定,並儲存於一資料儲存之表中。接著,於3620,可接收或偵測一或多個事件。於3630,喜好接著可利用查詢語言(如SQL)執行或評估,以查詢該資料表。於3640,可產生一結果表或集结有效條件有效喜好。最後,於3650,可根據該結果表之結果執行個別動作。
回到第37圖,根據本發明之一態樣舉例說明用以安裝應用程式之一方法論3700。於3710,基本表設定於與將執
行已安裝應用程式(如資訊代理者系統資料儲存150)之系統或平台相關之資料儲存中。該基本表接著於3720以應用程式資料更新,而非嚴格為該已安裝應用程式建立新表與資料庫。於3730,應用程式程序儲存為資料,例如,於為應用程式程序指定之一基本表中。為了執行,自一資料庫移除文字之一應用程式程序字串,並及時根據一態樣加以執行。
第38圖描述根據本發明之一態樣用以擴充應用程式之一方法論3800。於3810,一EDF自一研發人員接收。EDF含有關於啟動一應用程式中一喜好類別之資訊,以參照定義於其他應用程式中之條件、動作、及事件。此後,於3820,該函數結合登錄於一中央位置,例如一立即登錄。於3830,結合資訊由一擴充組件取出或接收。因此,於3840,接收邏輯可應用於該結合。當安裝一EDF時,該結合有效,然而,根據本發明之一態樣,其不自動應用至一應用程式。而是,應用接受邏輯以決定是否欲接收該EDF。接受邏輯查詢一已信賴來源之一結合真實性、授權及/或認證,以決定是否接受。於3850,由一應用程式做出一決定,是否其接受該結合。若「否」,則該處理僅終止而無一結合。若「是」,則於3860,該候選函數結合自一第一應用程式結合至一第二應用程式。
第39圖係根據本發明之一態樣用以解除安裝應用程式之一方法論3900之一流程圖描述。於3910,解除安裝之應用程式自一中央儲存位置移除其所有登錄。該中央儲
存位置可為具有定義與結合登錄之一立即登錄。於3920,可接著移除應用程式組件。依附應用程式接著可被通知該已解除安裝應用程式(如由一擴充組件)。此外,且如上所注意,方法論3900之區塊可為任何順序。因此,本發明之另一態樣包含於任何解除安裝或移除處理前被通知之依附應用程式。
第40圖係根據本發明一態樣之跨應用程式之擴充程式設計常數之一方法之一流程圖舉例說明。於4010,接收一常數。於4020,藉由跨應用程式網域搜尋決定該常數之值。舉例來說,若接收該常數MyManager,則該方法論可搜尋一電子郵件應用程式,並決定MyManager之值。
第41圖描述根據本發明之一態樣用以個人化電腦功能之一方法論4100。於4110,一使用者端根據一已提供綱目寫入喜好。該喜好可為任何形式,但根據本發明之一態樣,其包含複數個IF-THEN陳述式,以布林運算子隔開。該綱目可由一應用程式研發人員提供,以限制且藉此簡化使用者端程式設計。於4120,該喜好執行於一事件之發生。一事件可為發生之任何事,包含但不限於資料夾資料之變更或一股價之一變更。一喜好之執行或評估可利用藉由查詢一資料儲存組件中之資料加以完成。於4120,根據一條件式有效喜好採取一動作。
為了為本發明各態樣提供一架構,第42圖與第43圖以及下列討論用於提供可實施本發明各態樣之一適用計算環境之一簡單一般描述。上方已描述本發明於執行於一電
腦上之一電腦程式之電腦可執行指令之一般架構中,熟知該項技術人士應認知本發明亦可實施與其他程式模組相組合。一般來說,程式模組包含執行特殊工作與/或實施特殊抽象資料類型之常式、程式、組件、資料結構等等。此外,熟知該項技術人士應了解本方法可實施以其他電腦系統配置,包含單處理器或多處理器電腦系統、迷你電腦裝置、主機電腦、以及個人電腦、手持式計算裝置、微處理器型或可程式設計消費者電子元件等等。本發明之例示態樣亦可包實施於分散式計算環境中,其中工作由透過一通訊網路連結之遠端處理裝置加以執行。然而,本發明某些,若非所有態樣皆實行於獨立電腦上。在一分散式計算環境中,程式模組可放至於區域與遠端記憶體儲存裝置中。
藉由參照第42圖,用以實施本發明各態樣之一範例環境4210包含一電腦4212。該電腦4212包含一處理單元4214、一系統記憶體4216、及一系統匯流排4218。該系統匯流排4218耦合系統組件,包含但不限於該系統記憶體4216,至該處理單元4214。該處理單元4214可為任何有效之處理器。雙微處理器與其他多處理器架構亦可實施為該處理單元4214。
該系統匯流排4218可為任何類型之匯流排結構,包含該記憶體匯流排或記憶體控制器、一週邊匯流排或外部匯流排、及/或使用任何有效匯流排架構之一區域匯流排,包含但不限於11位元匯流排、工業標準架構(ISA)、微通道架構(MSA)、已擴充ISA(EISA)、智慧型裝置電子元件
(IDE)、VESA區域匯流排(VLB)、週邊組件互連(PCI)、通用序列匯流排(USB)、增強圖形埠(AGP)、個人電腦記憶卡國際協會匯流排(PCMCIA)、及小型電腦系統介面(SCSI)。
該系統記憶體4216包含揮發性記憶體4220與非揮發性記憶體4222。包含如於開機期間傳輸該電腦4212中元件間之資訊之基本常式之基本輸入/出系統(BIOS)儲存於非揮發性記憶體4222中。藉由舉例說明但非加以限制,非揮發性記憶體4222可包含唯讀記憶體(ROM)、可程式設計ROM(PROM)、電子可程式設計ROM(EPROM)、電子可抹除ROM(EEPROM)、或快閃記憶體。揮發性記憶體4220包含隨機存取記憶體(RAM),其作為外部快取記憶體。藉由舉例說明但非加以限制,RAM可用於許多形式中,例如同步RAM(SRAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、雙資料率SDRAM(DDR SDRAM)、增強SDRAM(ESDRAM)、同步連結DRAM(SLDRAM)、及直接Rambus RAM(DRRAM)。
電腦4212亦包含可移除/不可移除、揮發性/非揮發性電腦儲存媒體。舉例來說,第42圖舉例說明一磁碟儲存4224。磁碟儲存4124包含但不限於如一磁碟驅動器、軟碟驅動器、帶驅動器、Jaz驅動器、Zip驅動器、LS-100驅動器、快閃記憶卡、或記憶條之裝置。除此之外,磁碟儲存4224可包含個別或與其他儲存媒體組合之儲存媒體,包含但不限於一光碟驅動器,例如一光碟ROM裝置(CD-ROM)、CD可錄式驅動器(CD-R驅動器)、CD可覆寫
式驅動器(CD-RW驅動器)或一數位萬用碟ROM驅動器(DVD-ROM)。為了促進該磁碟儲存裝置4224至該系統匯流排4218之連接,一般使用一可移除或不可移除介面,例如介面4226。
應了解第42圖描述作為使用者與描述於適用作業環境4210中基本電腦資源間之一中間媒介之軟體。此軟體包含一作業系統4228。可儲存於磁碟儲存4224之作業系統4228作為控制與配置該電腦系統4212之資源。系統應用程式4230利用作業系統4228至程式模組4232之資源管理,且程式資料4234儲存於系統記憶體4216中或磁碟儲存4224上。應了解本發明可實施有各種作業系統或作業系統之組合。
一使用者透過輸入裝置4236輸入指令或資訊至該電腦4212中。輸入裝置4236包含但不限於一指標裝置,例如一滑鼠、軌跡球、尖筆、鍵盤、麥克風、搖桿、遊戲墊、衛星碟、掃描器、TV調諧器卡、數位攝影機、數位視訊攝影機、網路攝影機等等。這些與其他輸入裝置經由介面埠4238透過該系統匯流排4218連接至該處理單元4214。舉例來說,介面埠4238包含一序列埠、一並列埠、一遊戲埠、及一通用序列匯流排(USB)。輸出裝置4240使用與輸入裝置4236某些同樣類型的埠。因此,舉例來說,一USB不可用於提供輸入電腦4212,及自電腦4212輸出資訊至一輸出裝置4240。提供輸出配接器4242以舉例說明有某些輸出裝置4240需要特殊配接器,在其他輸出裝置4240中
如同螢幕、喇叭、及印表機。藉由舉例說明但非加以限制,該輸出配接器4242包含提供該輸出裝置4240與該系統匯流排4218間連接之一構件之視訊與音效卡。應注意其他裝置及/或系統裝置提供輸入與輸出功能,例如遠端電腦4244。
電腦4212可操作於一網路型環境中,利用邏輯連接至一或多台遠端電腦,例如遠端電腦4244。該遠端電腦4244可為一個人電腦、一伺服器、一路由器、一網路PC、一工作站、一微處理器型設備、一對等裝置或其他共用網路節點等等,且一般包含關於電腦4212所描述之許多或所有元件。為了簡化之目的,僅一記憶體儲存裝置4246舉例說明於遠端電腦4244。遠端電腦4244透過一網路介面4248邏輯連接至電腦4212,且接著經由通訊連接4250實體連接。網路介面4248囊括通訊網路,例如區域網路(LAN)與廣域網路(WAN)。LAN技術包含光纖散佈資料介面(FDDI)、銅線散佈資料介面(CDDI)、乙太網路/IEEE 1102.3、符記環/IEEE 1102.5等等。WAN技術包含但不限於點對點連結、電路切換網路,如整合服務數位網路(ISDN)與其變化、封包切換網路、及數位訂閱線(DSL)。
通訊連接4250參照該硬體/軟體實施以連接該網路介面4248至該匯流排4218。為舉例說明澄清的目的,通訊連接4250顯示於電腦4212內,其亦可於電腦4212外。僅為了舉例說明的目的,必須連結至該網路介面4248之硬體/軟體包含內部與外部技術,例如包含規則電話級數據機之
數據機、電纜數據機及DSL數據機、ISDN配接器、及乙太網路卡。
第43圖係可與本發明互動之一樣本計算環境4300之一綱目區塊圖。該系統4300包含一或多個客戶端4310。該客戶端4310可為硬體及/或軟體(如緒、處理、計算裝置)。該系統4300亦包含一或多個伺服器4330。該伺服器4330亦可為硬體及/或軟體(如緒、處理、計算裝置)。舉例來說,該伺服器4330藉由實施本發明可含有緒以執行轉換。一客戶端4310與一伺服器4330間之一可能通訊可為一資料封包之形式,調適以傳輸兩個或多個電腦處理之間。該系統4300包含有一通訊框架4350,可實施以促進該客戶端4310與該伺服器4330間之通訊。該客戶端4310以可操作之方式連接至一或多個客戶端資料儲存4360,其可實施以儲存對該客戶端4310為區域之資訊。同樣的,該伺服器4330以可操作之方式連接至一或多個伺服器資料儲存4340,其可實施以儲存對該伺服器4330為區域之資訊。
上述描述者包含本發明之範例。當然,為了描述本發明之目的,不可能描述組件或方法論之每個想得到的組合,但熟知該項技術人士應認知本發明之許多其他組合與置換亦為可能。因此,本發明用於囊括落入所附申請專利範圍之精神與領域中之所有此改變、修改及變化。此外,對該內容來說,「包含」該詞用於詳細說明或申請專利範圍中,此詞用於包含之一方式,而「包含」應解釋為實施於
申請專利範圍中之連接詞。
100‧‧‧資訊代理者系統
140‧‧‧架構分析器
110‧‧‧API
150‧‧‧綱目化資料儲存組件
120‧‧‧編譯器
160‧‧‧喜好執行引擎
130‧‧‧事件組件
170‧‧‧動作組件
180‧‧‧通知組件
520‧‧‧存取器組件
200‧‧‧(to be specified)
530‧‧‧網域1
272‧‧‧內容格式器
540‧‧‧網域2
274‧‧‧傳送通訊協定
550‧‧‧網域N
300‧‧‧資訊代理者應用程式
600‧‧‧系統
310‧‧‧邏輯綱目
610‧‧‧表630結果表
320‧‧‧使用者介面
700‧‧‧系統
330‧‧‧決策邏輯組件
712‧‧‧優先權系統
340‧‧‧事件程式設計組件
714‧‧‧訊息
350‧‧‧工作排程組件
716‧‧‧優先權化訊息
400‧‧‧邏輯綱目
717‧‧‧資訊代理者系統
410‧‧‧條件類別
718‧‧‧通知接收器
415‧‧‧動作類別
719‧‧‧其他路由/警告系統
420‧‧‧事件類別
820‧‧‧分類器
425‧‧‧喜好類別
822‧‧‧顯見
430‧‧‧結合
824‧‧‧顯見
435‧‧‧記錄
826‧‧‧分類器建構器與特性選擇
445‧‧‧衝突解決方法
830‧‧‧資料儲存
450‧‧‧顯見執行順序
832‧‧‧學習模型
455‧‧‧所需條件與動作
834‧‧‧背景螢幕
460‧‧‧範本
920‧‧‧分類器
465‧‧‧已排程與遞迴喜好
936‧‧‧訊息
500‧‧‧系統
938‧‧‧優先權
510‧‧‧輸入組件
940‧‧‧訓練組
942‧‧‧建構以執行及時分類之分類器
1980‧‧‧接收資料
1982‧‧‧產生優先權
944‧‧‧新訊息
1984‧‧‧輸出資料之優先權
946‧‧‧資料夾
1986‧‧‧決定不複查之損失
1020‧‧‧分類器
1988‧‧‧決定警告成本
1036‧‧‧欲分析之文字
1990‧‧‧損失>成本?
1047‧‧‧訓練文字高優先權
1992‧‧‧現在沒有警告
1048‧‧‧訓練文字低優先權
1994‧‧‧警告
1049‧‧‧純量值
2000‧‧‧文字產生與優先權系統
1120‧‧‧分類器
2002‧‧‧程式
1136‧‧‧欲分析之文字
2004‧‧‧分類器
1147‧‧‧訓練文字高優先權
2040‧‧‧喜好儲存
1148‧‧‧訓練文字低優先權
2100‧‧‧系統
1149‧‧‧純量值
2122‧‧‧架構分析器
1150‧‧‧訓練文字中優先權
2124‧‧‧執行引擎
1152‧‧‧類別
2126‧‧‧來源1
1254‧‧‧圖表
2127‧‧‧來源2
1256‧‧‧高
2128‧‧‧來源N
1258‧‧‧中
2130‧‧‧優先權系統
1260‧‧‧低
2136‧‧‧接收器1
1362‧‧‧圖表
2137‧‧‧接收器2
1364‧‧‧成本功能
2138‧‧‧接收器M
1366‧‧‧線
2200‧‧‧系統
1974‧‧‧流程圖
2222‧‧‧架構分析器
2260‧‧‧架構模組
2602‧‧‧架構分析器
2262‧‧‧設定檔儲存
2604‧‧‧感應器
2264‧‧‧白板
2606‧‧‧感應器
2280‧‧‧架構資訊來源
2608‧‧‧感應器
2324‧‧‧執行引擎
2610‧‧‧感應器
2326‧‧‧來源1綱目1
2612‧‧‧感應器
2327‧‧‧來源2綱目2
2614‧‧‧感應器
2328‧‧‧來源N綱目N
2616‧‧‧感應器
2336‧‧‧接收器1綱目1
2700‧‧‧用以決定內容之規則組
2337‧‧‧接收器2綱目2
2702‧‧‧如果…則
2338‧‧‧接收器M綱目M
2704‧‧‧如果…則
2400‧‧‧圖表
2706‧‧‧如果…則
2402‧‧‧通知重要性
2708‧‧‧如果…則
2404‧‧‧經過時間通知之公用程式
2710‧‧‧如果…則
2712‧‧‧如果…則
2500‧‧‧範例介面
2714‧‧‧如果…則
2502‧‧‧視窗
2800‧‧‧系統
2520‧‧‧注意焦點區段
2802‧‧‧推論引擎
2522‧‧‧核取方塊
2804‧‧‧使用者架構
2524‧‧‧方丟
2806‧‧‧(to be specified)
2526‧‧‧箭頭
2808‧‧‧感應器
2540‧‧‧位置區段
2810‧‧‧時鐘
2542‧‧‧核取方塊
2812‧‧‧日曆
2600‧‧‧系統
2900‧‧‧貝斯網路
2920‧‧‧使用者注意焦點
3412‧‧‧定義登錄
2930‧‧‧線上日曆
3414‧‧‧結合登錄
2940‧‧‧日期,時間
3420‧‧‧擴充組件
2950‧‧‧期限狀態
3430‧‧‧應用程式A ConditionFuncX
2960‧‧‧周圍聲學信號
2970‧‧‧焦點中應用程式
3440‧‧‧應用程式B條件A
3000‧‧‧貝斯模型
3450‧‧‧結合
3100‧‧‧決定使用者的架構
3500‧‧‧個人化系統
3102‧‧‧決定使用者的位置
3510‧‧‧資料夾
3104‧‧‧決定使用者的焦點
3512‧‧‧喜好
3200‧‧‧流程圖
3600‧‧‧方法
3202‧‧‧產生通知
3610‧‧‧根據研發人員綱目指定使用者喜好及儲存該喜好於一資料儲存中
3204‧‧‧產生架構資訊
3206‧‧‧處理架構資訊
3208‧‧‧執行關於傳送何通知之分析
3620‧‧‧接收或偵測一或多個事件
3210‧‧‧傳送通知
3630‧‧‧查詢資料表
3300‧‧‧條件/動作改良鏈
3640‧‧‧產生喜好結果表
3310‧‧‧條件或動作功能
3650‧‧‧根據結果表資料採取動作
3320‧‧‧候選條件或動作
3330‧‧‧條件或動作
3700‧‧‧方法
3340‧‧‧條件或動作範例
3710‧‧‧建立一組基本表於一系統平台中
3400‧‧‧系統
3410‧‧‧立即登錄組件
3720‧‧‧以應用程式資料更新該
基本表
4010‧‧‧接收一常數
3730‧‧‧儲存程序作為資料
4020‧‧‧藉由跨應用程式網域搜尋決定該常數之值
3800‧‧‧方法
3810‧‧‧接收一EDF
4100‧‧‧方法
3820‧‧‧登錄結合於一中央位置中
4110‧‧‧根據一已提供綱目寫入一使用者喜好
3830‧‧‧取出結合資訊
4120‧‧‧執行一喜好以響應一事件
3840‧‧‧應用接受規則
3850‧‧‧接受
4130‧‧‧於一有條件有效喜好上採取動作
3860‧‧‧自一應用程式結合功能至一第二應用程式
4210‧‧‧範例環境
3900‧‧‧方法
4212‧‧‧電腦
3910‧‧‧自中央儲存位置移除登錄
4214‧‧‧處理單元
4216‧‧‧系統記憶體
3920‧‧‧移除應用程式組件
4218‧‧‧匯流排
3930‧‧‧通知從屬應用程式
4220‧‧‧揮發性
4000‧‧‧(to be specified)
4222‧‧‧非揮發性
4224‧‧‧磁碟儲存
4238‧‧‧介面埠
4226‧‧‧介面
4240‧‧‧輸出裝置
4228‧‧‧作業系統
4242‧‧‧輸出配接器
4230‧‧‧應用程式
4244‧‧‧遠端電腦
4232‧‧‧模組
4246‧‧‧記憶體儲存
4234‧‧‧資料
4248‧‧‧網路介面
4236‧‧‧輸入裝置
4250‧‧‧通訊連接
4300‧‧‧樣本計算環境
4310‧‧‧客戶端
4330‧‧‧伺服器
4340‧‧‧伺服器資料儲存
4350‧‧‧通訊框架
4360‧‧‧客戶端資料儲存
第1圖係根據本發明之一態樣之一資訊代理者系統之一方塊圖。
第2圖係根據本發明之一態樣之一通知組件之一方塊圖。
第3圖係根據本發明之一態樣之一資訊代理者系統之一方塊圖。
第4圖係根據本發明之一態樣之一範例邏輯綱目之一方塊圖。
第5圖係根據本發明之一態樣用以評估常數存取器之一系統之一方塊圖。
第6圖係根據本發明之一態樣之一喜好評估系統之一方塊圖。
第7圖係根據本發明之一態樣之一優先權系統之一示意方塊圖。
第8圖係根據本發明之一態樣舉例說明一分類器之一方塊圖。
第9圖係根據本發明之一態樣舉例說明訊息分類之一示意方塊圖。
第10圖係根據本發明之一態樣舉例說明一純量分類器輸出之一示意方塊圖。
第11圖係根據本發明之一態樣舉例說明根據一類別
與純量輸出分類文字之一示意方塊圖。
第12圖係根據本發明之一態樣舉例說明線性優先權模型之一示意圖。
第13圖係根據本發明之一態樣舉例說明一非線性優先權模型之一示意圖。
第14圖係根據本發明之一態樣舉例說明用以決定使用者活動之一模型之一示意圖。
第15圖係根據本發明之一態樣舉例說明用以決定目前使用者活動之一推論型模型之一示意圖。
第16圖係根據本發明之一態樣舉例說明用以決定警告成本之一推論型模型之一示意圖。
第17圖係根據本發明之一態樣舉例說明用以決定警告成本之一更詳細推論型模型之一示意圖。
第18圖係根據本發明之一態樣舉例說明用以鑑於一精確度損失決定警告成本之一更詳細推論型模型之一示意圖。
第19圖係根據本發明之一態樣舉例說明用以產生與決定優先權之一方法論之一流程圖。
第20圖係根據本發明之一態樣舉例說明一文字產生程式與分類器之一示意圖。
第21圖係根據本發明之一態樣舉例說明所有執行引擎與一架構分析器間之系統合作之一示意方塊圖。
第22圖係根據本發明之一態樣舉例說明一架構分析器之一方塊圖。
第23圖係根據本發明之一態樣舉例說明來源與接收器之一方塊圖。
第24圖係描述經過時間映射之一通知之公用程式之一圖表。
第25圖係根據本發明之一態樣之一範例介面之一舉例說明。
第26圖舉例說明根據本發明之一態樣用以由直接測量決定一使用者架構之方法論。
第27圖係根據本發明之一態樣舉例說明用以決定架構之一範例階層已排序規則組之一方塊圖。
第28圖係根據本發明之一態樣舉例說明由一推論引擎執行以決定一使用者之架構之推論分析之一系統之一示意方塊圖。
第29圖舉例說明根據本發明之一態樣用以為單一時段推論之一使用者注意焦點之一範例貝斯網路。
第30圖舉例說明根據本發明之一態樣於不同時段於架構變數間之一使用者注意焦點之一貝斯模型。
第31圖係根據本發明之一態樣舉例說明如何決定一使用者之架構之一流程圖。
第32圖係根據本發明之一態樣舉例說明一通知運輸處理之一流程圖。
第33圖係根據本發明之一態樣之一動作/條件改良鏈之一舉例說明。
第34圖係根據本發明之一態樣為應用程式互動之一
系統之一方塊圖。
第35圖係根據本發明之一態樣之一個人化系統之一方塊圖。
第36圖係根據本發明之一態樣用以採用喜好之一方法論之一流程圖。
第37圖係根據本發明之一態樣用以安裝一應用程式之一方法論之一流程圖。
第38圖係根據本發明之一態樣用以擴充應用程式之一方法論之一流程圖。
第39圖係根據本發明之一態樣解除安裝一應用程式之一流程圖。
第40圖係根據本發明之一態樣跨應用程式擴充程式設計常數之一方法之一流程舉例說明。
第41圖係根據本發明之一態樣描述用以個人化電腦功能之一方法論之一流程圖。
第42圖係根據本發明之一態樣舉例說明一適用作業環境之一示意方塊圖。
第43圖係可與本發明互動之一樣本計算環境之一示意方塊圖。
100‧‧‧資訊代理者系統
110‧‧‧API
120‧‧‧編譯器
130‧‧‧事件組件
140‧‧‧架構分析器
150‧‧‧綱目化資料儲存組件
160‧‧‧喜好執行引擎
170‧‧‧動作組件
180‧‧‧通知組件
Claims (16)
- 一種喜好評估系統,其包含:一記憶體;一資料儲存組件,用以儲存綱目化資料及使用者端指定之喜好,其中查詢係被評估並儲存為該資料儲存組件中之資料,並於需要時建構;一編譯器,用以編譯包含使用者端指定喜好之資訊代理應用程式,並將經編譯之該資訊代理應用程式儲存於該資料儲存中;一執行引擎,用以於一或多個事件發生後擷取儲存於該資料儲存中之喜好,並且使用該等喜好及至少一經儲存程序來查詢該資料儲存內之表並產生一結果表,其中該結果表儲存喜好,該等喜好之狀態已被滿足,使得指定動作係基於經儲存之喜好而觸發;及一架構分析器,儲存並分析關於一使用者的變數及參數的資訊,該使用者的變數及參數影響通知決策決定,該等參數包含一使用者的典型位置及注意焦點、使用者在不同的位置傾向於存取的裝置、在不同設定中被不同類型的通知所干擾的一使用者喜好、在不同情況中使用者希望如何被通知的預設參數、在不同設定中與被不同的模式通知相關的干擾成本,該等參數係儲存為一使用者設定檔,該使用者設定檔可由該使用者編輯或允許使用者即時指定其狀態;及 一常數存取器,提供跨不同領域之資料的導覽,以賦能一使用者寫入跨領域喜好。
- 如申請專利範圍第1項所述之系統,進一步包含一動作組件,用以採取由一有條件有效喜好之一或多個動作。
- 如申請專利範圍第2項所述之系統,上述之動作組件包含一通知組件,用以為一或多個使用者通訊裝置根據一使用者喜好轉換與格式化由該執行引擎產生之通知資料。
- 如申請專利範圍第3項所述之系統,其中上述之使用者通訊裝置包含一行動電話、一呼叫器、一PDA、及一電腦。
- 如申請專利範圍第1項所述之系統,進一步包含一事件組件,自一事件來源取出事件資料,並儲存該資料於該資料儲存中。
- 如申請專利範圍第5項所述之系統,其中上述之事件來源係一訂閱服務。
- 如申請專利範圍第1項所述之系統,其中該架構分析器於一給定時間產生指示一使用者端之架構之架構資料,並儲存該架構資料於該資料儲存中。
- 如申請專利範圍第1項所述之系統,進一步包含與應用程式互動之一或多個API。
- 如申請專利範圍第1項所述之系統,其中上述之編譯器可編譯且該執行引擎可執行重量級應用程式與輕量級 喜好應用程式。
- 如申請專利範圍第1項所述之系統,上述之執行引擎藉由執行儲存於該資料儲存中之資料之查詢以評估喜好。
- 如申請專利範圍第1項所述之系統,其中上述之使用者端喜好係基於一研發人員指定綱目而定。
- 如申請專利範圍第11項所述之系統,其中上述之關於使用者端喜好與該研發人員指定綱目之資訊儲存於該資料儲存中之一或多個表中。
- 如申請專利範圍第1項所述之系統,進一步包含一個人化資料夾,用以定義喜好並定義一事件發生時控制資料夾內容的條件及動作。
- 如申請專利範圍第13項所述之系統,其中該個人化資料夾係由使用者端指定之邏輯所定義及控制,使用者端指定之邏輯定義控制該資料夾之內容的條件及動作。
- 一種用以實施喜好之方法,其包含以下步驟:根據一研發人員綱目,指定關於一資訊代理應用程式的使用者喜好;儲存該等喜好及綱目化資料於一資料儲存中之一或多個表中;於一事件發生後查詢該資料儲存中之表並擷取儲存在該資料儲存中之喜好;產生一結果表,其中該結果表儲存喜好,該等喜好之條件已被滿足以觸發指定之動作; 根據該結果表執行動作;使用一架構分析器,該架構分析器儲存並分析關於一使用者的變數及參數的資訊,該使用者的變數及參數影響通知決策決定,該等參數包含一使用者的典型位置及注意焦點、依據一天中之時間及一週中之天的活動、使用者在不同的位置傾向於存取的裝置、在不同設定中被不同類型的通知所干擾的一使用者喜好、在不同設定中與被不同的模式通知相關的干擾成本;及儲存該等參數為一使用者設定檔,該使用者設定檔可由該使用者編輯或允許使用者即時指定其狀態;使用一次一個宣告程式模組,其中使用者喜好係使用一或多個事件如果則(On-Event-If-Then)陳述式及布林運算子以指定條件、動作、綱目;及提供一常數存取器,用以允許寫入喜好及條件並可自不同的領域導覽及擷取資訊。
- 一種電腦可讀取媒體,其上儲存有指令,即用以執行如申請專利範圍第15項所述之方法之電腦可執行指令。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/693,735 US7669177B2 (en) | 2003-10-24 | 2003-10-24 | System and method for preference application installation and execution |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200515189A TW200515189A (en) | 2005-05-01 |
| TWI388995B true TWI388995B (zh) | 2013-03-11 |
Family
ID=34522466
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW093122611A TWI388995B (zh) | 2003-10-24 | 2004-07-28 | 用於喜好應用程式安裝及執行的系統與方法及記錄相關指令的電腦可讀取媒體 |
Country Status (16)
| Country | Link |
|---|---|
| US (1) | US7669177B2 (zh) |
| EP (1) | EP1646961A4 (zh) |
| JP (1) | JP4896726B2 (zh) |
| KR (1) | KR101103949B1 (zh) |
| CN (1) | CN101142549A (zh) |
| AU (1) | AU2004279183B2 (zh) |
| BR (1) | BRPI0406520A (zh) |
| CA (1) | CA2507255C (zh) |
| IL (1) | IL169411A (zh) |
| MX (1) | MXPA05006966A (zh) |
| NO (1) | NO20052547L (zh) |
| NZ (1) | NZ540876A (zh) |
| RU (1) | RU2364917C2 (zh) |
| TW (1) | TWI388995B (zh) |
| WO (1) | WO2005045740A2 (zh) |
| ZA (1) | ZA200505253B (zh) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9830784B2 (en) | 2014-09-02 | 2017-11-28 | Apple Inc. | Semantic framework for variable haptic output |
| US9864432B1 (en) | 2016-09-06 | 2018-01-09 | Apple Inc. | Devices, methods, and graphical user interfaces for haptic mixing |
| US9984539B2 (en) | 2016-06-12 | 2018-05-29 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US9996157B2 (en) | 2016-06-12 | 2018-06-12 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US10175762B2 (en) | 2016-09-06 | 2019-01-08 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US11314330B2 (en) | 2017-05-16 | 2022-04-26 | Apple Inc. | Tactile feedback for locked device user interfaces |
Families Citing this family (272)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6714967B1 (en) * | 1999-07-30 | 2004-03-30 | Microsoft Corporation | Integration of a computer-based message priority system with mobile electronic devices |
| US8645137B2 (en) | 2000-03-16 | 2014-02-04 | Apple Inc. | Fast, language-independent method for user authentication by voice |
| US20040002958A1 (en) | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for providing notification(s) |
| US7698276B2 (en) * | 2002-06-26 | 2010-04-13 | Microsoft Corporation | Framework for providing a subscription based notification system |
| US20050136903A1 (en) * | 2003-12-18 | 2005-06-23 | Nokia Corporation | Context dependent alert in a portable electronic device |
| US7162223B2 (en) * | 2004-02-17 | 2007-01-09 | Teamon Systems, Inc. | System and method for notifying users of an event using alerts |
| US20050235292A1 (en) * | 2004-04-15 | 2005-10-20 | Tillotson Timothy N | Client program grammar derivation from application programming interface (API) calls and associated metadata |
| US7395244B1 (en) * | 2004-06-23 | 2008-07-01 | Symantec Corporation | Criticality classification system and method |
| US10748158B2 (en) | 2004-10-08 | 2020-08-18 | Refinitiv Us Organization Llc | Method and system for monitoring an issue |
| US20060155716A1 (en) * | 2004-12-23 | 2006-07-13 | Microsoft Corporation | Schema change governance for identity store |
| US7607164B2 (en) | 2004-12-23 | 2009-10-20 | Microsoft Corporation | Systems and processes for managing policy change in a distributed enterprise |
| US7529931B2 (en) * | 2004-12-23 | 2009-05-05 | Microsoft Corporation | Managing elevated rights on a network |
| US7540014B2 (en) | 2005-02-23 | 2009-05-26 | Microsoft Corporation | Automated policy change alert in a distributed enterprise |
| US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
| US10825029B2 (en) | 2005-09-09 | 2020-11-03 | Refinitiv Us Organization Llc | Subscription apparatus and method |
| US7738887B2 (en) * | 2005-10-31 | 2010-06-15 | Microsoft Corporation | Voice instant messaging between mobile and computing devices |
| US8935429B2 (en) * | 2006-12-19 | 2015-01-13 | Vmware, Inc. | Automatically determining which remote applications a user or group is entitled to access based on entitlement specifications and providing remote application access to the remote applications |
| US7779091B2 (en) | 2005-12-19 | 2010-08-17 | Vmware, Inc. | Method and system for providing virtualized application workspaces |
| US20070283329A1 (en) * | 2006-01-09 | 2007-12-06 | Infosys Technologies, Ltd. | System and method for performance monitoring and diagnosis of information technology system |
| US20070226734A1 (en) * | 2006-03-03 | 2007-09-27 | Microsoft Corporation | Auxiliary display gadget for distributed content |
| US20070250365A1 (en) * | 2006-04-21 | 2007-10-25 | Infosys Technologies Ltd. | Grid computing systems and methods thereof |
| US8762395B2 (en) | 2006-05-19 | 2014-06-24 | Oracle International Corporation | Evaluating event-generated data using append-only tables |
| US8131696B2 (en) * | 2006-05-19 | 2012-03-06 | Oracle International Corporation | Sequence event processing using append-only tables |
| US20070292833A1 (en) * | 2006-06-02 | 2007-12-20 | International Business Machines Corporation | System and Method for Creating, Executing and Searching through a form of Active Web-Based Content |
| US9110934B2 (en) * | 2006-06-02 | 2015-08-18 | International Business Machines Corporation | System and method for delivering an integrated server administration platform |
| US20070282653A1 (en) * | 2006-06-05 | 2007-12-06 | Ellis Edward Bishop | Catalog based services delivery management |
| US8468042B2 (en) * | 2006-06-05 | 2013-06-18 | International Business Machines Corporation | Method and apparatus for discovering and utilizing atomic services for service delivery |
| US20070282470A1 (en) * | 2006-06-05 | 2007-12-06 | International Business Machines Corporation | Method and system for capturing and reusing intellectual capital in IT management |
| US8554596B2 (en) * | 2006-06-05 | 2013-10-08 | International Business Machines Corporation | System and methods for managing complex service delivery through coordination and integration of structured and unstructured activities |
| US7877284B2 (en) * | 2006-06-05 | 2011-01-25 | International Business Machines Corporation | Method and system for developing an accurate skills inventory using data from delivery operations |
| US20070282645A1 (en) * | 2006-06-05 | 2007-12-06 | Aaron Baeten Brown | Method and apparatus for quantifying complexity of information |
| US20070282776A1 (en) * | 2006-06-05 | 2007-12-06 | International Business Machines Corporation | Method and system for service oriented collaboration |
| US20070288274A1 (en) * | 2006-06-05 | 2007-12-13 | Tian Jy Chao | Environment aware resource capacity planning for service delivery |
| US8001068B2 (en) * | 2006-06-05 | 2011-08-16 | International Business Machines Corporation | System and method for calibrating and extrapolating management-inherent complexity metrics and human-perceived complexity metrics of information technology management |
| US8412561B2 (en) * | 2006-08-09 | 2013-04-02 | Infosys Technologies, Ltd. | Business case evaluation system and methods thereof |
| US7966599B1 (en) * | 2006-08-29 | 2011-06-21 | Adobe Systems Incorporated | Runtime library including a virtual file system |
| US9318108B2 (en) * | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
| US7672240B2 (en) * | 2006-12-14 | 2010-03-02 | Sun Microsystems, Inc. | Method and system for using Bayesian network inference for selection of transport protocol algorithm |
| US20080282205A1 (en) * | 2007-02-06 | 2008-11-13 | Access Systems Americas, Inc. | Unified launcher user interface system and method for integrating multiple disparate environments on an electronic device |
| US8702505B2 (en) | 2007-03-30 | 2014-04-22 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication |
| US8060887B2 (en) | 2007-03-30 | 2011-11-15 | Uranus International Limited | Method, apparatus, system, and medium for supporting multiple-party communications |
| US7765261B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers |
| US7765266B2 (en) | 2007-03-30 | 2010-07-27 | Uranus International Limited | Method, apparatus, system, medium, and signals for publishing content created during a communication |
| US7950046B2 (en) | 2007-03-30 | 2011-05-24 | Uranus International Limited | Method, apparatus, system, medium, and signals for intercepting a multiple-party communication |
| US8627211B2 (en) | 2007-03-30 | 2014-01-07 | Uranus International Limited | Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication |
| US8019812B2 (en) * | 2007-04-13 | 2011-09-13 | Microsoft Corporation | Extensible and programmable multi-tenant service architecture |
| US7930676B1 (en) | 2007-04-27 | 2011-04-19 | Intuit Inc. | System and method for adapting software elements based on mood state profiling |
| US20080275894A1 (en) * | 2007-05-03 | 2008-11-06 | Motorola, Inc. | Content item apparatus and method of operation therefor |
| US20090063266A1 (en) * | 2007-09-04 | 2009-03-05 | Microsoft Corporation | Performing of marketing actions while preserving confidentiality |
| US20090089039A1 (en) * | 2007-10-01 | 2009-04-02 | Ilan Shufer | System and method of emulating functionality of a web service |
| TWI416343B (zh) * | 2007-10-05 | 2013-11-21 | Chi Mei Comm Systems Inc | 人機介面功能群組定制系統及方法 |
| US10002189B2 (en) | 2007-12-20 | 2018-06-19 | Apple Inc. | Method and apparatus for searching using an active ontology |
| US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
| US8341598B2 (en) * | 2008-01-18 | 2012-12-25 | Microsoft Corporation | Declartive commands using workflows |
| US8271951B2 (en) * | 2008-03-04 | 2012-09-18 | International Business Machines Corporation | System and methods for collecting software development feedback |
| US8996376B2 (en) | 2008-04-05 | 2015-03-31 | Apple Inc. | Intelligent text-to-speech conversion |
| US8819266B2 (en) * | 2008-05-22 | 2014-08-26 | Hartford Fire Insurance Company | Dynamic file transfer scheduling and server messaging |
| US20090300525A1 (en) * | 2008-05-27 | 2009-12-03 | Jolliff Maria Elena Romera | Method and system for automatically updating avatar to indicate user's status |
| US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
| US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
| KR101533821B1 (ko) * | 2008-10-31 | 2015-07-10 | 삼성전자 주식회사 | 통신 툴을 추천하는 통신 시스템, 서버, 단말 및 이를 이용한 통신 방법 |
| US9489185B2 (en) * | 2009-01-29 | 2016-11-08 | At&T Mobility Ii Llc | Small/medium business application delivery platform |
| US8204717B2 (en) * | 2009-04-01 | 2012-06-19 | Honeywell International Inc. | Cloud computing as a basis for equipment health monitoring service |
| US9412137B2 (en) * | 2009-04-01 | 2016-08-09 | Honeywell International Inc. | Cloud computing for a manufacturing execution system |
| US20100306591A1 (en) * | 2009-06-01 | 2010-12-02 | Murali Mallela Krishna | Method and system for performing testing on a database system |
| US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
| US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
| US9431006B2 (en) | 2009-07-02 | 2016-08-30 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
| US8316125B2 (en) * | 2009-08-31 | 2012-11-20 | Red Hat, Inc. | Methods and systems for automated migration of cloud processes to external clouds |
| US8234524B1 (en) * | 2009-09-28 | 2012-07-31 | Dale Trenton Smith | Protocol analysis with event present flags |
| US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
| US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
| US8863171B2 (en) | 2010-06-14 | 2014-10-14 | Sony Corporation | Announcement of program synchronized triggered declarative objects |
| US9020871B2 (en) | 2010-06-18 | 2015-04-28 | Microsoft Technology Licensing, Llc | Automated classification pipeline tuning under mobile device resource constraints |
| WO2012023091A1 (en) * | 2010-08-16 | 2012-02-23 | Koninklijke Philips Electronics N.V. | Method and apparatus for selecting at least one media item |
| JP5621422B2 (ja) * | 2010-09-07 | 2014-11-12 | ソニー株式会社 | 情報処理装置、プログラム及び制御方法 |
| US10209967B2 (en) | 2010-10-18 | 2019-02-19 | Infosys Technologies Ltd. | System and method for detecting preventative maintenance operations in computer source code |
| US11055754B1 (en) | 2011-01-04 | 2021-07-06 | The Pnc Financial Services Group, Inc. | Alert event platform |
| US8856807B1 (en) * | 2011-01-04 | 2014-10-07 | The Pnc Financial Services Group, Inc. | Alert event platform |
| US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
| RU2464727C1 (ru) * | 2011-03-25 | 2012-10-20 | Общество С Ограниченной Ответственностью "Аилайн Кэмьюникейшнс Снг" | Способ предоставления информации при проведении распределенных транзакций и комплекс для его осуществления |
| US8649995B2 (en) | 2011-04-07 | 2014-02-11 | Infosys Technologies, Ltd. | System and method for efficient test case generation using input dependency information |
| DE112011105082T5 (de) * | 2011-04-21 | 2014-06-26 | Hewlett-Packard Development Company, L.P. | Installieren einer Anwendung in eine visualisierte Umgebung |
| US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
| US20130067365A1 (en) * | 2011-09-13 | 2013-03-14 | Microsoft Corporation | Role based user interface for limited display devices |
| MX2012011426A (es) * | 2011-09-30 | 2013-04-01 | Apple Inc | Utilizar informacion de contexto para facilitar el procesamiento de comandos en un asistente virtual. |
| US20130097660A1 (en) * | 2011-10-17 | 2013-04-18 | Mcafee, Inc. | System and method for whitelisting applications in a mobile network environment |
| US8806422B2 (en) * | 2011-10-27 | 2014-08-12 | Sap Ag | Impact analysis and adoption planning based on global where-used lists |
| KR101521332B1 (ko) * | 2011-11-08 | 2015-05-20 | 주식회사 다음카카오 | 인스턴트 메시징 서비스 및 인스턴트 메시징 서비스로부터 확장된 복수의 서비스들을 제공하는 방법 |
| US20130179791A1 (en) * | 2011-12-16 | 2013-07-11 | Webotics Inc. | System and method for real-time data in a graphical user interface |
| US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
| US9152784B2 (en) | 2012-04-18 | 2015-10-06 | Mcafee, Inc. | Detection and prevention of installation of malicious mobile applications |
| US9280610B2 (en) | 2012-05-14 | 2016-03-08 | Apple Inc. | Crowd sourcing information to fulfill user requests |
| US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
| CN103428174A (zh) * | 2012-05-17 | 2013-12-04 | 云联(北京)信息技术有限公司 | 一种基于云计算的互动体感游戏的实现方法 |
| US10671955B2 (en) * | 2012-06-05 | 2020-06-02 | Dimensional Insight Incorporated | Dynamic generation of guided pages |
| US9721563B2 (en) | 2012-06-08 | 2017-08-01 | Apple Inc. | Name recognition system |
| US8751500B2 (en) | 2012-06-26 | 2014-06-10 | Google Inc. | Notification classification and display |
| US9207703B1 (en) * | 2012-06-28 | 2015-12-08 | Emc Corporation | Method and apparatus for client application customization |
| CN102790981B (zh) * | 2012-06-29 | 2015-04-22 | 石化盈科信息技术有限责任公司 | 传感器网络时空动态模式下的实时报警方法 |
| US9547647B2 (en) | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
| US8719280B1 (en) | 2012-10-16 | 2014-05-06 | Google Inc. | Person-based information aggregation |
| US9282587B2 (en) | 2012-11-16 | 2016-03-08 | Google Technology Holdings, LLC | Method for managing notifications in a communication device |
| EP2932374B1 (en) * | 2012-12-14 | 2023-11-15 | Telefonaktiebolaget LM Ericsson (publ) | Systems, methods, and computer program products for a software build and load process using a compilation and deployment service |
| BR112015018905B1 (pt) | 2013-02-07 | 2022-02-22 | Apple Inc | Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico |
| US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
| WO2014197334A2 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
| WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
| AU2014278592B2 (en) | 2013-06-09 | 2017-09-07 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
| US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
| US9715406B2 (en) * | 2013-06-14 | 2017-07-25 | Microsoft Technology Licensing, Llc | Assigning and scheduling threads for multiple prioritized queues |
| RU2013134408A (ru) * | 2013-07-23 | 2015-01-27 | Общество с ограниченной ответственностью "ГлобалЛаб" | Система мониторинга параметров жизнедеятельности в географически локализованной зоне с функцией санкционированного доступа третьих лиц к результатам мониторинга |
| US10679185B2 (en) * | 2013-08-23 | 2020-06-09 | Synabee, Inc. | Personal attribute cartography with analysis feedback |
| CN105745585B (zh) * | 2013-11-26 | 2018-05-08 | 西门子公司 | 卸载人机交互任务 |
| US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
| US9581698B2 (en) * | 2014-02-03 | 2017-02-28 | Honeywell International Inc. | Systems and methods to monitor for false alarms from ionosphere gradient monitors |
| US9661653B2 (en) | 2014-05-08 | 2017-05-23 | Intel IP Corporation | Device to-device (D2D) communications |
| US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
| EP3149728B1 (en) | 2014-05-30 | 2019-01-16 | Apple Inc. | Multi-command single utterance input method |
| US20150348126A1 (en) * | 2014-05-30 | 2015-12-03 | Transilio, Inc. | Personalized user engagement system using operating system notification script |
| US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
| US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
| US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
| US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
| US9894009B2 (en) * | 2014-08-29 | 2018-02-13 | Microsoft Technology Licensing, Llc | Client device and host device subscriptions |
| US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
| US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
| US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
| US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
| US10891383B2 (en) | 2015-02-11 | 2021-01-12 | British Telecommunications Public Limited Company | Validating computer resource usage |
| GB2535710A (en) * | 2015-02-24 | 2016-08-31 | Siemens Ag | Computer device and method for detecting correlations within data |
| US10084865B2 (en) | 2015-02-26 | 2018-09-25 | Urban Airship, Inc. | Mobile event notifications |
| US10200486B2 (en) | 2015-02-26 | 2019-02-05 | Urban Airship, Inc. | Mobile event notifications for network enabled objects |
| US10152299B2 (en) | 2015-03-06 | 2018-12-11 | Apple Inc. | Reducing response latency of intelligent automated assistants |
| US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
| US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
| US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
| US9311083B1 (en) * | 2015-04-10 | 2016-04-12 | CypressX LLC | Machine interface configuration system for coerced inconsistencies on different machine platforms |
| US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
| US9768974B1 (en) | 2015-05-18 | 2017-09-19 | Google Inc. | Methods, systems, and media for sending a message about a new video to a group of related users |
| US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
| US12039477B1 (en) | 2015-05-29 | 2024-07-16 | Dimensional Insight Incorporated | Dynamic generation of guided pages |
| US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
| US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
| US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
| CN105094900A (zh) * | 2015-07-13 | 2015-11-25 | 小米科技有限责任公司 | 一种下载控制程序的方法及装置 |
| WO2017021154A1 (en) | 2015-07-31 | 2017-02-09 | British Telecommunications Public Limited Company | Access control |
| US10853750B2 (en) | 2015-07-31 | 2020-12-01 | British Telecommunications Public Limited Company | Controlled resource provisioning in distributed computing environments |
| WO2017021153A1 (en) | 2015-07-31 | 2017-02-09 | British Telecommunications Public Limited Company | Expendable access control |
| US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
| US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
| US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
| US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
| US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
| US10104051B2 (en) * | 2015-10-27 | 2018-10-16 | Airwatch Llc | Searching content associated with multiple applications |
| US9952953B2 (en) * | 2015-11-02 | 2018-04-24 | Microsoft Technology Licensing Llc | Non-monotonic eventual convergence for desired state configuration |
| US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
| US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
| US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
| US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
| WO2017167547A1 (en) | 2016-03-30 | 2017-10-05 | British Telecommunications Public Limited Company | Cryptocurrencies malware based detection |
| WO2017167545A1 (en) | 2016-03-30 | 2017-10-05 | British Telecommunications Public Limited Company | Network traffic threat identification |
| WO2017167549A1 (en) | 2016-03-30 | 2017-10-05 | British Telecommunications Public Limited Company | Untrusted code distribution |
| WO2017167548A1 (en) | 2016-03-30 | 2017-10-05 | British Telecommunications Public Limited Company | Assured application services |
| EP3437290B1 (en) | 2016-03-30 | 2020-08-26 | British Telecommunications public limited company | Detecting computer security threats |
| US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
| US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
| US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
| US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
| US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
| DK179309B1 (en) | 2016-06-09 | 2018-04-23 | Apple Inc | Intelligent automated assistant in a home environment |
| US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
| US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
| US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
| US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
| US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
| DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
| DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
| DK179049B1 (en) | 2016-06-11 | 2017-09-18 | Apple Inc | Data driven natural language event detection and classification |
| DK179343B1 (en) | 2016-06-11 | 2018-05-14 | Apple Inc | Intelligent task discovery |
| JP7351744B2 (ja) | 2016-08-10 | 2023-09-27 | シーメンス アクチエンゲゼルシヤフト | 産業用途のためのスキルインタフェース |
| US10261838B2 (en) | 2016-08-11 | 2019-04-16 | General Electric Company | Method and device for allocating resources in a system |
| US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
| US10552544B2 (en) * | 2016-09-12 | 2020-02-04 | Sriram Chakravarthy | Methods and systems of automated assistant implementation and management |
| US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
| US10649752B2 (en) * | 2016-09-28 | 2020-05-12 | International Business Machines Corporation | Sharing data and applications across computing systems |
| US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
| US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
| US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
| GB2559123A (en) * | 2017-01-24 | 2018-08-01 | Sony Interactive Entertainment Inc | Interaction apparatus and method |
| US10762040B2 (en) * | 2017-01-24 | 2020-09-01 | Microsoft Technology Licensing, Llc | Schematized data roaming |
| WO2018178026A1 (en) | 2017-03-30 | 2018-10-04 | British Telecommunications Public Limited Company | Hierarchical temporal memory for access control |
| EP3382591B1 (en) | 2017-03-30 | 2020-03-25 | British Telecommunications public limited company | Hierarchical temporal memory for expendable access control |
| EP3602369B1 (en) | 2017-03-30 | 2022-03-30 | British Telecommunications public limited company | Anomaly detection for computer systems |
| US11353868B2 (en) * | 2017-04-24 | 2022-06-07 | Intel Corporation | Barriers and synchronization for machine learning at autonomous machines |
| WO2018206406A1 (en) | 2017-05-08 | 2018-11-15 | British Telecommunications Public Limited Company | Adaptation of machine learning algorithms |
| EP3622447A1 (en) * | 2017-05-08 | 2020-03-18 | British Telecommunications Public Limited Company | Interoperation of machine learning algorithms |
| WO2018206408A1 (en) | 2017-05-08 | 2018-11-15 | British Telecommunications Public Limited Company | Management of interoperating machine leaning algorithms |
| US11698818B2 (en) | 2017-05-08 | 2023-07-11 | British Telecommunications Public Limited Company | Load balancing of machine learning algorithms |
| DK201770383A1 (en) | 2017-05-09 | 2018-12-14 | Apple Inc. | USER INTERFACE FOR CORRECTING RECOGNITION ERRORS |
| US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
| DK201770439A1 (en) | 2017-05-11 | 2018-12-13 | Apple Inc. | Offline personal assistant |
| US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
| US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
| US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
| DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
| DK201770428A1 (en) | 2017-05-12 | 2019-02-18 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
| DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
| DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
| DK201770432A1 (en) | 2017-05-15 | 2018-12-21 | Apple Inc. | Hierarchical belief states for digital assistants |
| DK179560B1 (en) | 2017-05-16 | 2019-02-18 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
| US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
| US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
| US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
| US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
| CN109039670A (zh) | 2017-06-09 | 2018-12-18 | 钉钉控股(开曼)有限公司 | 团队配置方法、团队配置方案的分享方法及装置 |
| US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
| CN107911227B (zh) * | 2017-09-28 | 2020-04-28 | 平安科技(深圳)有限公司 | 一种断点数据跟进方法、电子装置及计算机可读存储介质 |
| US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
| US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
| US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
| US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
| US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
| US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
| US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
| US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
| US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
| US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
| US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
| TWI685803B (zh) * | 2018-05-25 | 2020-02-21 | 凱威科技股份有限公司 | 行為回饋方法、伺服器以及計算機裝置 |
| DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
| DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
| DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
| US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
| US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
| US10504518B1 (en) | 2018-06-03 | 2019-12-10 | Apple Inc. | Accelerated task performance |
| US10796019B2 (en) * | 2018-07-17 | 2020-10-06 | Dell Products L.P. | Detecting personally identifiable information (PII) in telemetry data |
| CN109241101B (zh) | 2018-08-31 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种数据库查询优化方法、装置、及计算机设备 |
| US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
| US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
| US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
| US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
| US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
| US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
| US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
| DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
| US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
| US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
| US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
| US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
| DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | User activity shortcut suggestions |
| US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
| US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
| US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
| EP4011043B1 (en) | 2019-08-06 | 2025-09-24 | Airship Group, Inc. | Cross-channel orchestration of messages |
| WO2021056255A1 (en) | 2019-09-25 | 2021-04-01 | Apple Inc. | Text detection using global geometry estimators |
| US11372872B2 (en) * | 2020-03-30 | 2022-06-28 | Thoughtspot, Inc. | Dynamic chronometry data orientation |
| US11550817B2 (en) | 2020-03-30 | 2023-01-10 | Thoughtspot, Inc. | Dynamic chronometry data orientation |
| CN112073303B (zh) * | 2020-09-03 | 2022-10-18 | 中国平安财产保险股份有限公司 | 邮件任务收敛管理方法、装置、设备及可读存储介质 |
| US12164584B2 (en) * | 2020-09-08 | 2024-12-10 | Google Llc | System and method for identifying places using contextual information |
| US11956199B2 (en) | 2021-07-26 | 2024-04-09 | Airship Group, Inc. | Software development kit enabled cross-channel two-way software application messaging |
| WO2023026084A1 (en) * | 2021-08-27 | 2023-03-02 | Sensetime International Pte. Ltd. | Data processing method, apparatus, system and device and computer-readable storage medium |
| AU2021240195A1 (en) * | 2021-08-27 | 2023-03-16 | Sensetime International Pte. Ltd. | Data processing method, apparatus, system and device and computer-readable storage medium |
| US12335205B2 (en) | 2021-10-15 | 2025-06-17 | Airship Group, Inc. | Automated interactive communication trigger in message distribution |
| CN116155846B (zh) * | 2021-11-19 | 2024-12-24 | 广东美的制冷设备有限公司 | 一种数据迁移方法、设备及存储介质 |
| US12255860B2 (en) | 2022-10-12 | 2025-03-18 | Stodge Inc. | Integrated third-party application builder trigger for message flow |
| US11709660B1 (en) | 2022-10-12 | 2023-07-25 | Stodge Inc. | Integrated third-party application builder trigger for message flow |
| US11943188B1 (en) | 2023-01-06 | 2024-03-26 | Microsoft Technology Licensing, Llc | Restricting message notifications and conversations based on device type, message category, and time period |
| US12216657B2 (en) * | 2023-03-16 | 2025-02-04 | International Business Machines Corporation | Contextual searches in software development environments |
| TWI900102B (zh) * | 2023-07-31 | 2025-10-01 | 旺矽科技股份有限公司 | 基於節點流程的自動化設備客製化功能開發系統、運作方法、檢測系統與非暫態電腦可讀取儲存媒體 |
| JP2025049115A (ja) * | 2023-09-20 | 2025-04-03 | ソフトバンクグループ株式会社 | システム |
| US12332895B2 (en) * | 2023-10-27 | 2025-06-17 | International Business Machines Corporation | High-performance resource and job scheduling |
Family Cites Families (140)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4774658A (en) | 1987-02-12 | 1988-09-27 | Thomas Lewin | Standardized alarm notification transmission alternative system |
| US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
| US5287514A (en) * | 1990-01-08 | 1994-02-15 | Microsoft Corporation | Method and system for customizing a user interface in a computer system |
| AU639802B2 (en) | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
| US5301326A (en) * | 1991-09-24 | 1994-04-05 | Microsoft Corporation | Method and system for controlling the execution of an application program |
| US5481700A (en) * | 1991-09-27 | 1996-01-02 | The Mitre Corporation | Apparatus for design of a multilevel secure database management system based on a multilevel logic programming system |
| US5283856A (en) * | 1991-10-04 | 1994-02-01 | Beyond, Inc. | Event-driven rule-based messaging system |
| US5555346A (en) | 1991-10-04 | 1996-09-10 | Beyond Corporated | Event-driven rule-based messaging system |
| JPH05216641A (ja) * | 1992-02-06 | 1993-08-27 | Toshiba Corp | グラフィカル・ユーザ・インタフェース制御プログラム生成装置 |
| US5315703A (en) | 1992-12-23 | 1994-05-24 | Taligent, Inc. | Object-oriented notification framework system |
| US6748318B1 (en) | 1993-05-18 | 2004-06-08 | Arrivalstar, Inc. | Advanced notification systems and methods utilizing a computer network |
| US5416725A (en) | 1993-08-18 | 1995-05-16 | P.C. Sentry, Inc. | Computer-based notification system having redundant sensor alarm determination and associated computer-implemented method for issuing notification of events |
| CA2145923C (en) * | 1995-03-30 | 2001-05-08 | Gary W. Miller | Computer operating system providing means for formatting information in accordance with specified cultural preferences |
| US5852812A (en) | 1995-08-23 | 1998-12-22 | Microsoft Corporation | Billing system for a network |
| US5870746A (en) * | 1995-10-12 | 1999-02-09 | Ncr Corporation | System and method for segmenting a database based upon data attributes |
| US5721825A (en) | 1996-03-15 | 1998-02-24 | Netvision, Inc. | System and method for global event notification and delivery in a distributed computing environment |
| US6490718B1 (en) * | 1996-05-08 | 2002-12-03 | Electronic Data Systems Corporation | System and method for processing electronic data interchange using a graphical representation |
| RU2180470C2 (ru) * | 1996-05-31 | 2002-03-10 | Томсон Консьюмер Электроникс, Инк. | Обработка цифровых данных и информации программных указателей |
| US6151643A (en) | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
| US5813007A (en) | 1996-06-20 | 1998-09-22 | Sun Microsystems, Inc. | Automatic updates of bookmarks in a client computer |
| US6021403A (en) | 1996-07-19 | 2000-02-01 | Microsoft Corporation | Intelligent user assistance facility |
| US5973612A (en) | 1996-09-19 | 1999-10-26 | Microsoft Corporation | Flexible object notification |
| US6446092B1 (en) * | 1996-11-01 | 2002-09-03 | Peerdirect Company | Independent distributed database system |
| US6126328A (en) | 1997-02-28 | 2000-10-03 | Oracle Corporation | Controlled execution of partitioned code |
| US6055570A (en) | 1997-04-03 | 2000-04-25 | Sun Microsystems, Inc. | Subscribed update monitors |
| US6260148B1 (en) | 1997-04-04 | 2001-07-10 | Microsoft Corporation | Methods and systems for message forwarding and property notifications using electronic subscriptions |
| US5893091A (en) | 1997-04-11 | 1999-04-06 | Immediata Corporation | Multicasting with key words |
| US5892941A (en) | 1997-04-29 | 1999-04-06 | Microsoft Corporation | Multiple user software debugging system |
| US6209011B1 (en) | 1997-05-08 | 2001-03-27 | Microsoft Corporation | Handheld computing device with external notification system |
| US6112192A (en) * | 1997-05-09 | 2000-08-29 | International Business Machines Corp. | Method for providing individually customized content in a network |
| US6173284B1 (en) | 1997-05-20 | 2001-01-09 | University Of Charlotte City Of Charlotte | Systems, methods and computer program products for automatically monitoring police records for a crime profile |
| US6026235A (en) * | 1997-05-20 | 2000-02-15 | Inprise Corporation | System and methods for monitoring functions in natively compiled software programs |
| US6122633A (en) | 1997-05-27 | 2000-09-19 | International Business Machines Corporation | Subscription within workflow management systems |
| US6038601A (en) | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
| US5974406A (en) | 1997-08-18 | 1999-10-26 | International Business Machines Corporation | Automated matching, scheduling, and notification system |
| US6016394A (en) * | 1997-09-17 | 2000-01-18 | Tenfold Corporation | Method and system for database application software creation requiring minimal programming |
| US6484149B1 (en) * | 1997-10-10 | 2002-11-19 | Microsoft Corporation | Systems and methods for viewing product information, and methods for generating web pages |
| US5999978A (en) | 1997-10-31 | 1999-12-07 | Sun Microsystems, Inc. | Distributed system and method for controlling access to network resources and event notifications |
| WO1999023579A1 (en) | 1997-11-05 | 1999-05-14 | Microsoft Corporation | Notification scheduling system on a mobile device |
| CN101599196B (zh) * | 1997-11-28 | 2012-01-18 | 迪布尔特有限公司 | 自动柜员机 |
| US6119123A (en) * | 1997-12-02 | 2000-09-12 | U.S. Philips Corporation | Apparatus and method for optimizing keyframe and blob retrieval and storage |
| US6055505A (en) | 1997-12-30 | 2000-04-25 | U S West, Inc. | Automatic customer notification system and method |
| US6704803B2 (en) | 1998-01-26 | 2004-03-09 | International Business Machines Corporation | Method and system for distributing data events over an information bus |
| US6510429B1 (en) | 1998-04-29 | 2003-01-21 | International Business Machines Corporation | Message broker apparatus, method and computer program product |
| US6138158A (en) | 1998-04-30 | 2000-10-24 | Phone.Com, Inc. | Method and system for pushing and pulling data using wideband and narrowband transport systems |
| US6108712A (en) * | 1998-05-05 | 2000-08-22 | International Business Machines Corp. | Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system |
| CZ148199A3 (cs) | 1998-05-08 | 1999-11-17 | International Business Machines Corporation | Použití technologie dotazů v databázích pro přihlašování k účasti na zprávách v systémech pro zpracování zpráv |
| JPH11327889A (ja) * | 1998-05-18 | 1999-11-30 | Toshiba Corp | プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体 |
| US6167448A (en) | 1998-06-11 | 2000-12-26 | Compaq Computer Corporation | Management event notification system using event notification messages written using a markup language |
| US6330566B1 (en) * | 1998-06-22 | 2001-12-11 | Microsoft Corporation | Apparatus and method for optimizing client-state data storage |
| US6424966B1 (en) | 1998-06-30 | 2002-07-23 | Microsoft Corporation | Synchronizing crawler with notification source |
| US6353926B1 (en) | 1998-07-15 | 2002-03-05 | Microsoft Corporation | Software update notification |
| US20030025599A1 (en) | 2001-05-11 | 2003-02-06 | Monroe David A. | Method and apparatus for collecting, sending, archiving and retrieving motion video and still images and notification of detected events |
| US6256664B1 (en) | 1998-09-01 | 2001-07-03 | Bigfix, Inc. | Method and apparatus for computed relevance messaging |
| AU6392899A (en) | 1998-09-15 | 2000-04-03 | Local2Me.Com, Inc. | Dynamic matching TM of users for group communication |
| US6275957B1 (en) | 1998-09-21 | 2001-08-14 | Microsoft Corporation | Using query language for provider and subscriber registrations |
| US6314533B1 (en) | 1998-09-21 | 2001-11-06 | Microsoft Corporation | System and method for forward custom marshaling event filters |
| US6804663B1 (en) * | 1998-09-21 | 2004-10-12 | Microsoft Corporation | Methods for optimizing the installation of a software product onto a target computer system |
| US6327705B1 (en) * | 1998-10-08 | 2001-12-04 | Microsoft Corporation | Method for creating and maintaining user data |
| US6343376B1 (en) * | 1998-10-22 | 2002-01-29 | Computer Computer Corporation | System and method for program verification and optimization |
| US6292825B1 (en) | 1998-11-12 | 2001-09-18 | International Business Machines Corporation | Service application with pull notification |
| US6466949B2 (en) | 1998-11-23 | 2002-10-15 | Myway.Com Corporation | Performing event notification in a database having a distributed web cluster |
| US6564251B2 (en) * | 1998-12-03 | 2003-05-13 | Microsoft Corporation | Scalable computing system for presenting customized aggregation of information |
| US6438618B1 (en) | 1998-12-16 | 2002-08-20 | Intel Corporation | Method and device for filtering events in an event notification service |
| US6920616B1 (en) * | 1998-12-18 | 2005-07-19 | Tangis Corporation | Interface for exchanging context data |
| US6829770B1 (en) | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
| DE10031716B4 (de) | 1999-07-06 | 2006-10-26 | International Business Machines Corp. | Abonnement und Benachrichtigung bei Datenbanktechnik |
| US6400810B1 (en) | 1999-07-20 | 2002-06-04 | Ameritech Corporation | Method and system for selective notification of E-mail messages |
| US6405191B1 (en) | 1999-07-21 | 2002-06-11 | Oracle Corporation | Content based publish-and-subscribe system integrated in a relational database system |
| GB2354847A (en) | 1999-09-28 | 2001-04-04 | Ibm | Publish/subscribe data processing with subscription points for customised message processing |
| US6829639B1 (en) | 1999-11-15 | 2004-12-07 | Netvision, Inc. | Method and system for intelligent global event notification and control within a distributed computing environment |
| US6829478B1 (en) | 1999-11-19 | 2004-12-07 | Pamela G. Layton | Information management network for automated delivery of alarm notifications and other information |
| US20020069244A1 (en) | 1999-11-24 | 2002-06-06 | John Blair | Message delivery system billing method and apparatus |
| US6751657B1 (en) | 1999-12-21 | 2004-06-15 | Worldcom, Inc. | System and method for notification subscription filtering based on user role |
| EP1117050A1 (en) | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Individual data representation |
| US7072934B2 (en) * | 2000-01-14 | 2006-07-04 | Saba Software, Inc. | Method and apparatus for a business applications server management system platform |
| US6662195B1 (en) | 2000-01-21 | 2003-12-09 | Microstrategy, Inc. | System and method for information warehousing supporting the automatic, real-time delivery of personalized informational and transactional data to users via content delivery device |
| US6910070B1 (en) | 2000-01-24 | 2005-06-21 | Oracle International Corporation | Methods and systems for asynchronous notification of database events |
| WO2001055892A1 (en) | 2000-01-28 | 2001-08-02 | Global Technology Marketing International | Recipient selection and message delivery system and method |
| US6766329B1 (en) * | 2000-01-31 | 2004-07-20 | Microsoft Corporation | Dynamic personalized information organizer |
| US6462748B1 (en) | 2000-02-25 | 2002-10-08 | Microsoft Corporation | System and method for processing color objects in integrated dual color spaces |
| US6513026B1 (en) | 2000-06-17 | 2003-01-28 | Microsoft Corporation | Decision theoretic principles and policies for notification |
| US7243130B2 (en) | 2000-03-16 | 2007-07-10 | Microsoft Corporation | Notification platform architecture |
| US6601012B1 (en) | 2000-03-16 | 2003-07-29 | Microsoft Corporation | Contextual models and methods for inferring attention and location |
| US20020032597A1 (en) | 2000-04-04 | 2002-03-14 | Chanos George J. | System and method for providing request based consumer information |
| JP2001306308A (ja) | 2000-04-11 | 2001-11-02 | Sap Ag | データ中心アプリケーションのクラス定義方法 |
| US20020082919A1 (en) | 2000-05-01 | 2002-06-27 | Michael Landau | System method and article of manufacture for affiliate tracking for the dissemination of promotional and marketing material via e-mail |
| AU2001274899A1 (en) | 2000-05-19 | 2001-12-03 | Synapse Wireless, Inc. | Method and apparatus for generating dynamic graphical representations and real-time notification of the status of a remotely monitored system |
| US7266595B1 (en) * | 2000-05-20 | 2007-09-04 | Ciena Corporation | Accessing network device data through user profiles |
| US7174557B2 (en) | 2000-06-07 | 2007-02-06 | Microsoft Corporation | Method and apparatus for event distribution and event handling in an enterprise |
| US20030023435A1 (en) * | 2000-07-13 | 2003-01-30 | Josephson Daryl Craig | Interfacing apparatus and methods |
| US6839730B1 (en) | 2000-07-14 | 2005-01-04 | Novell, Inc. | Method and system for efficiently matching events with subscribers in a content-based publish-subscribe system |
| US7302280B2 (en) | 2000-07-17 | 2007-11-27 | Microsoft Corporation | Mobile phone operation based upon context sensing |
| US20020032771A1 (en) | 2000-07-20 | 2002-03-14 | Trond Gledje | Event-based advertisements |
| US20020165894A1 (en) | 2000-07-28 | 2002-11-07 | Mehdi Kashani | Information processing apparatus and method |
| US6944662B2 (en) | 2000-08-04 | 2005-09-13 | Vinestone Corporation | System and methods providing automatic distributed data retrieval, analysis and reporting services |
| KR100353649B1 (ko) | 2000-08-18 | 2002-09-28 | 삼성전자 주식회사 | 무선망을 이용한 네비게이션 시스템 및 그에 의한 경로안내 방법 |
| US20020035482A1 (en) | 2000-08-28 | 2002-03-21 | Coble Keith A. | Business to business information environment with subscriber-publisher model |
| WO2002019228A1 (en) | 2000-09-01 | 2002-03-07 | Togethersoft Corporation | Methods and systems for improving a workflow based on data mined from plans created from the workflow |
| JP2002090163A (ja) | 2000-09-20 | 2002-03-27 | Pioneer Electronic Corp | ナビゲーション装置及びナビゲーション制御用プログラムがコンピュータで読取可能に記録された情報記録媒体 |
| US7647231B2 (en) | 2000-10-13 | 2010-01-12 | United States Postal Service | Flexible mail delivery system and method |
| JP3827936B2 (ja) * | 2000-10-18 | 2006-09-27 | シャープ株式会社 | 情報提供制御装置、情報提供方法、情報提供プログラムを記録した記録媒体および情報提供システム |
| US6826541B1 (en) * | 2000-11-01 | 2004-11-30 | Decision Innovations, Inc. | Methods, systems, and computer program products for facilitating user choices among complex alternatives using conjoint analysis |
| US20020087740A1 (en) | 2000-11-06 | 2002-07-04 | Rick Castanho | System and method for service specific notification |
| US20030105732A1 (en) * | 2000-11-17 | 2003-06-05 | Kagalwala Raxit A. | Database schema for structure query language (SQL) server |
| US6532471B1 (en) * | 2000-12-11 | 2003-03-11 | International Business Machines Corporation | Interface repository browser and editor |
| EP1215608A1 (en) | 2000-12-15 | 2002-06-19 | Pioneer Corporation | Advertisement information providing system |
| US7698161B2 (en) * | 2001-01-04 | 2010-04-13 | True Choice Solutions, Inc. | System to quantify consumer preferences |
| US6745193B1 (en) * | 2001-01-25 | 2004-06-01 | Microsoft Corporation | System and method for defining, refining, and personalizing communications policies in a notification platform |
| EP1233387A2 (en) | 2001-02-19 | 2002-08-21 | Hitachi Kokusai Electric Inc. | Vehicle emergency reporting system and method |
| US20020120711A1 (en) | 2001-02-23 | 2002-08-29 | International Business Machines Corporation | Method and system for intelligent routing of business events on a subscription-based service provider network |
| US6986145B2 (en) | 2001-03-13 | 2006-01-10 | Dipayan Gangopadhyay | In-context access to relevant services from multiple applications and information systems by object schema traversal |
| US6987755B2 (en) | 2001-03-22 | 2006-01-17 | Siemens Communications, Inc. | System and method for user notification in a communication system |
| US20020135614A1 (en) * | 2001-03-22 | 2002-09-26 | Intel Corporation | Updating user interfaces based upon user inputs |
| US6617969B2 (en) | 2001-04-19 | 2003-09-09 | Vigilance, Inc. | Event notification system |
| US6976086B2 (en) | 2001-06-18 | 2005-12-13 | Siemens Business Services, Llc | Systems and methods to facilitate a distribution of information via a dynamically loadable component |
| EP1410258A4 (en) * | 2001-06-22 | 2007-07-11 | Inc Nervana | SYSTEM AND METHOD FOR RECALLING, MANAGING, DELIVERING AND PRESENTING KNOWLEDGE |
| US6981250B1 (en) | 2001-07-05 | 2005-12-27 | Microsoft Corporation | System and methods for providing versioning of software components in a computer programming language |
| US7668535B2 (en) | 2001-07-09 | 2010-02-23 | Palm, Inc. | Notification infrastructure for sending device-specific wireless notifications |
| US6910033B2 (en) | 2001-08-15 | 2005-06-21 | Precache Inc. | Method for storing Boolean functions to enable evaluation, modification, reuse, and delivery over a network |
| JP2003069547A (ja) | 2001-08-29 | 2003-03-07 | Fujitsu Ltd | マルチキャスト通信システム |
| US7275235B2 (en) | 2001-08-29 | 2007-09-25 | Molinari Alfred A | Graphical application development system for test, measurement and process control applications |
| US20030050975A1 (en) * | 2001-09-12 | 2003-03-13 | Blaylock James G. | System and method for managing electronic documents including multimedia files |
| US7233781B2 (en) | 2001-10-10 | 2007-06-19 | Ochoa Optics Llc | System and method for emergency notification content delivery |
| US7272832B2 (en) | 2001-10-25 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform |
| US20030083952A1 (en) | 2001-10-29 | 2003-05-01 | Simpson Shell S. | Web-based imaging service providing the ability to specify a charge-back account |
| US20030172368A1 (en) * | 2001-12-26 | 2003-09-11 | Elizabeth Alumbaugh | System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology |
| US7143417B2 (en) | 2002-01-10 | 2006-11-28 | International Business Machines Corporation | Notification services within a unified communications service |
| JP2003240574A (ja) | 2002-02-14 | 2003-08-27 | Mitsubishi Electric Corp | ナビゲーション装置及びナビゲーション方法 |
| US7010710B2 (en) | 2002-03-12 | 2006-03-07 | International Business Machines Corporation | Proximity sensor enhanced power management |
| JP4295953B2 (ja) | 2002-04-26 | 2009-07-15 | パイオニア株式会社 | 距離係数学習装置、この方法、このプログラム、このプログラムを記録する記録媒体、移動状況算出装置、および、現在位置算出装置 |
| AU2003239385A1 (en) * | 2002-05-10 | 2003-11-11 | Richard R. Reisman | Method and apparatus for browsing using multiple coordinated device |
| US7698276B2 (en) | 2002-06-26 | 2010-04-13 | Microsoft Corporation | Framework for providing a subscription based notification system |
| US20040002958A1 (en) * | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for providing notification(s) |
| US7177859B2 (en) | 2002-06-26 | 2007-02-13 | Microsoft Corporation | Programming model for subscription services |
| US20040002988A1 (en) | 2002-06-26 | 2004-01-01 | Praveen Seshadri | System and method for modeling subscriptions and subscribers as data |
| US7788588B2 (en) * | 2003-02-07 | 2010-08-31 | Microsoft Corporation | Realizing users' preferences |
| US20050084082A1 (en) * | 2003-10-15 | 2005-04-21 | Microsoft Corporation | Designs, interfaces, and policies for systems that enhance communication and minimize disruption by encoding preferences and situations |
| US7137099B2 (en) * | 2003-10-24 | 2006-11-14 | Microsoft Corporation | System and method for extending application preferences classes |
| US20050091184A1 (en) * | 2003-10-24 | 2005-04-28 | Praveen Seshadri | Personalized folders |
-
2003
- 2003-10-24 US US10/693,735 patent/US7669177B2/en not_active Expired - Fee Related
-
2004
- 2004-07-27 JP JP2006536575A patent/JP4896726B2/ja not_active Expired - Fee Related
- 2004-07-27 RU RU2005120689/09A patent/RU2364917C2/ru not_active IP Right Cessation
- 2004-07-27 ZA ZA200505253A patent/ZA200505253B/xx unknown
- 2004-07-27 AU AU2004279183A patent/AU2004279183B2/en not_active Ceased
- 2004-07-27 CN CNA2004800017079A patent/CN101142549A/zh active Pending
- 2004-07-27 WO PCT/US2004/024139 patent/WO2005045740A2/en not_active Ceased
- 2004-07-27 NZ NZ540876A patent/NZ540876A/en not_active IP Right Cessation
- 2004-07-27 EP EP04779272A patent/EP1646961A4/en not_active Ceased
- 2004-07-27 CA CA2507255A patent/CA2507255C/en not_active Expired - Fee Related
- 2004-07-27 BR BR0406520-4A patent/BRPI0406520A/pt not_active IP Right Cessation
- 2004-07-27 KR KR1020057011960A patent/KR101103949B1/ko not_active Expired - Fee Related
- 2004-07-27 MX MXPA05006966A patent/MXPA05006966A/es active IP Right Grant
- 2004-07-28 TW TW093122611A patent/TWI388995B/zh not_active IP Right Cessation
-
2005
- 2005-05-26 NO NO20052547A patent/NO20052547L/no unknown
- 2005-06-27 IL IL169411A patent/IL169411A/en not_active IP Right Cessation
Cited By (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10417879B2 (en) | 2014-09-02 | 2019-09-17 | Apple Inc. | Semantic framework for variable haptic output |
| US12300095B2 (en) | 2014-09-02 | 2025-05-13 | Apple Inc. | Semantic framework for variable haptic output |
| US9928699B2 (en) | 2014-09-02 | 2018-03-27 | Apple Inc. | Semantic framework for variable haptic output |
| TWI621011B (zh) * | 2014-09-02 | 2018-04-11 | 蘋果公司 | 用於可變觸覺輸出之處理器實施方法、運算器件實施方法、電腦程式產品及資訊處理裝置 |
| US11790739B2 (en) | 2014-09-02 | 2023-10-17 | Apple Inc. | Semantic framework for variable haptic output |
| US9830784B2 (en) | 2014-09-02 | 2017-11-28 | Apple Inc. | Semantic framework for variable haptic output |
| US10089840B2 (en) | 2014-09-02 | 2018-10-02 | Apple Inc. | Semantic framework for variable haptic output |
| US10977911B2 (en) | 2014-09-02 | 2021-04-13 | Apple Inc. | Semantic framework for variable haptic output |
| US10504340B2 (en) | 2014-09-02 | 2019-12-10 | Apple Inc. | Semantic framework for variable haptic output |
| US11379041B2 (en) | 2016-06-12 | 2022-07-05 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US11468749B2 (en) | 2016-06-12 | 2022-10-11 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US10276000B2 (en) | 2016-06-12 | 2019-04-30 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US12353631B2 (en) | 2016-06-12 | 2025-07-08 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US12190714B2 (en) | 2016-06-12 | 2025-01-07 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US10156903B2 (en) | 2016-06-12 | 2018-12-18 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US9984539B2 (en) | 2016-06-12 | 2018-05-29 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US11735014B2 (en) | 2016-06-12 | 2023-08-22 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US10692333B2 (en) | 2016-06-12 | 2020-06-23 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US10175759B2 (en) | 2016-06-12 | 2019-01-08 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US9996157B2 (en) | 2016-06-12 | 2018-06-12 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US10139909B2 (en) | 2016-06-12 | 2018-11-27 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US11037413B2 (en) | 2016-06-12 | 2021-06-15 | Apple Inc. | Devices, methods, and graphical user interfaces for providing haptic feedback |
| US11221679B2 (en) | 2016-09-06 | 2022-01-11 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US10901514B2 (en) | 2016-09-06 | 2021-01-26 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US10901513B2 (en) | 2016-09-06 | 2021-01-26 | Apple Inc. | Devices, methods, and graphical user interfaces for haptic mixing |
| US11662824B2 (en) | 2016-09-06 | 2023-05-30 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US10620708B2 (en) | 2016-09-06 | 2020-04-14 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US10528139B2 (en) | 2016-09-06 | 2020-01-07 | Apple Inc. | Devices, methods, and graphical user interfaces for haptic mixing |
| US10175762B2 (en) | 2016-09-06 | 2019-01-08 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US9864432B1 (en) | 2016-09-06 | 2018-01-09 | Apple Inc. | Devices, methods, and graphical user interfaces for haptic mixing |
| US10372221B2 (en) | 2016-09-06 | 2019-08-06 | Apple Inc. | Devices, methods, and graphical user interfaces for generating tactile outputs |
| US11314330B2 (en) | 2017-05-16 | 2022-04-26 | Apple Inc. | Tactile feedback for locked device user interfaces |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101103949B1 (ko) | 2012-01-12 |
| AU2004279183A1 (en) | 2005-06-23 |
| JP4896726B2 (ja) | 2012-03-14 |
| KR20060114624A (ko) | 2006-11-07 |
| EP1646961A4 (en) | 2010-02-03 |
| TW200515189A (en) | 2005-05-01 |
| RU2005120689A (ru) | 2006-01-20 |
| BRPI0406520A (pt) | 2005-12-13 |
| ZA200505253B (en) | 2008-12-31 |
| EP1646961A2 (en) | 2006-04-19 |
| RU2364917C2 (ru) | 2009-08-20 |
| JP2007518151A (ja) | 2007-07-05 |
| CA2507255A1 (en) | 2005-05-19 |
| MXPA05006966A (es) | 2005-08-16 |
| NO20052547D0 (no) | 2005-05-26 |
| AU2004279183A8 (en) | 2008-10-02 |
| WO2005045740A3 (en) | 2007-08-30 |
| US7669177B2 (en) | 2010-02-23 |
| US20050091269A1 (en) | 2005-04-28 |
| AU2004279183B2 (en) | 2010-03-11 |
| WO2005045740A2 (en) | 2005-05-19 |
| NZ540876A (en) | 2009-04-30 |
| CN101142549A (zh) | 2008-03-12 |
| CA2507255C (en) | 2013-05-21 |
| NO20052547L (no) | 2005-07-15 |
| IL169411A (en) | 2012-02-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI388995B (zh) | 用於喜好應用程式安裝及執行的系統與方法及記錄相關指令的電腦可讀取媒體 | |
| CN1745364B (zh) | 用于扩展应用程序首选项类的系统和方法 | |
| CN100524197C (zh) | 个人化文件夹 | |
| US7177859B2 (en) | Programming model for subscription services | |
| CN100417072C (zh) | 网络帧结构和用于提供通告的应用程序 | |
| EP1287444B1 (en) | Priorities generation and management | |
| US7243130B2 (en) | Notification platform architecture | |
| US8024415B2 (en) | Priorities generation and management | |
| US11341337B1 (en) | Semantic messaging collaboration system | |
| US20070288932A1 (en) | Notification platform architecture | |
| EP1852789A1 (en) | Priorities generation and management |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |