專利名稱:多級(jí)事件計(jì)算模型的制作方法
多級(jí)事件計(jì)算模型背景技術(shù)
機(jī)器通常會(huì)配備為所述機(jī)器提供關(guān)于其外部環(huán)境信息的傳感器。舉例來(lái)說(shuō),計(jì)算機(jī)可以具有外部傳感器,例如加速度計(jì)、溫度計(jì)、全球定位系統(tǒng)(GPS)接收機(jī)或是其他那些獲取關(guān)于計(jì)算機(jī)外部環(huán)境的信息的設(shè)備。除了計(jì)算機(jī)自身之外,很多類型的機(jī)器(例如汽車、電話、廚房用具等等)也具有計(jì)算能力并且可以具有此類傳感器。
通常,計(jì)算機(jī)或其他機(jī)器上的操作系統(tǒng)會(huì)提供接口,應(yīng)用可以通過(guò)該接口來(lái)訪問(wèn)傳感器產(chǎn)生的原始數(shù)據(jù)。例如,操作系統(tǒng)可以提供允許應(yīng)用程序乃至操作系統(tǒng)的別的組件讀取傳感器的應(yīng)用編程接口(API)。該API可以允許設(shè)備按需請(qǐng)求傳感器讀數(shù),或者可以允許應(yīng)用訂閱諸如傳感器讀數(shù)變化之類的事件通知。因此,如果應(yīng)用希望知道設(shè)備的當(dāng)前緯度或經(jīng)度,那么它可以使用API來(lái)從GPS接收機(jī)中獲取當(dāng)前讀數(shù)?;蛘?,如果應(yīng)用希望知道設(shè)備的當(dāng)前加速度,那么它可以使用API來(lái)獲取當(dāng)前加速度矢量的讀數(shù)。
通過(guò)獲取傳感器讀數(shù)提供了關(guān)于環(huán)境的數(shù)據(jù)。然而,一般用戶及其使用的應(yīng)用通常對(duì)這種低級(jí)數(shù)據(jù)是沒(méi)有興趣的。對(duì)于攜帶了配備加速度計(jì)和GPS接收機(jī)的手機(jī)的科學(xué)家來(lái)說(shuō),其有可能發(fā)現(xiàn)查看這種原始傳感器讀數(shù)是很有趣的。然而,一般用戶(及其使用的應(yīng)用)并不那么關(guān)注于原始位置數(shù)據(jù)(例如“您處于北緯47. 64852西經(jīng)122. 13928”);相反,他們關(guān)注的是高級(jí)問(wèn)題和描述(例如“您在微軟園區(qū)”)。應(yīng)用通常會(huì)基于使用了來(lái)自眾多來(lái)源的不同類型的數(shù)據(jù)的復(fù)雜模型來(lái)向用戶提供信息,并且這些應(yīng)用通常會(huì)發(fā)現(xiàn)較為便利的是處理高級(jí)抽象而不是原始傳感器數(shù)據(jù)。發(fā)明內(nèi)容
一種系統(tǒng)可以支持從關(guān)于低級(jí)信息的高級(jí)推理中產(chǎn)生的使用事件。低級(jí)信息(例如物理傳感器讀數(shù)變化)可以作為輸入而被提供給應(yīng)用高級(jí)抽象的模型。這些模型可以形成結(jié)論,并且這些結(jié)論是關(guān)于哪些事件可被傳遞的高階事實(shí)。這些事件可以作為輸入而被提供給其他模型,所述其他模型可以形成自己的結(jié)論,并且從中可以產(chǎn)生事件。不同層級(jí)的事件之間的依存關(guān)系可以形成一個(gè)級(jí)聯(lián)結(jié)構(gòu),其中實(shí)現(xiàn)等級(jí)逐漸增高的事件的模型依靠的是在較低的抽象層級(jí)產(chǎn)生的事件。處于任一層級(jí)的事件都可以供那些使用事件來(lái)做出決定的程序消費(fèi)。
例如,諸如加速度計(jì)和GPS接收機(jī)之類的傳感器分別可以提供關(guān)于所述傳感器所依附的設(shè)備的運(yùn)動(dòng)和位置的低級(jí)信息。如果加速度矢量或位置中的任何一個(gè)發(fā)生變化,那么用以訪問(wèn)這些傳感器的接口可以產(chǎn)生一個(gè)事件。這種低級(jí)信息可以作為輸入提供給更高級(jí)模型,所述模型則可以使用該信息來(lái)得出這些傳感器所依附的設(shè)備如何移動(dòng)的推論。舉個(gè)例子,緯度和經(jīng)度的變化(由GPS接收機(jī)指示)以及加速度計(jì)矢量的變化(由加速度計(jì)指示)可以暗示設(shè)備正在某個(gè)位置移動(dòng)。對(duì)于這種運(yùn)動(dòng)性質(zhì)(例如行走、跑步、開(kāi)車等等)的推斷可以包括將復(fù)雜的物理模型應(yīng)用于原始傳感器數(shù)據(jù)。實(shí)現(xiàn)該模型的程序可以得出關(guān)于這種運(yùn)動(dòng)的性質(zhì)的推論。舉例來(lái)說(shuō),該程序可以斷定所述設(shè)備是由正在行走的人攜帶的一一例如基于緯度和經(jīng)度的變化速率以及基于加速度矢量的變化模式。此時(shí),“正在行走”可被認(rèn)為是一個(gè)事實(shí),并且推斷該事實(shí)的程序可以產(chǎn)生圍繞該事實(shí)的事件例如開(kāi)始行走,停止行走等等。雖然可能沒(méi)有傳感器可以直接感測(cè)出開(kāi)始或停止行走的事實(shí),但是恰當(dāng)?shù)哪P涂梢詮牡图?jí)傳感器信息中推斷出這個(gè)事實(shí),并且由此可以產(chǎn)生與所推斷的事實(shí)相關(guān)聯(lián)的 “更高階”事件。這些更高階事件可被傳遞到其他程序以及供所述其他程序消費(fèi)。
在一個(gè)示例中,實(shí)現(xiàn)等級(jí)逐漸增高的抽象的模型可能會(huì)消費(fèi)級(jí)聯(lián)結(jié)構(gòu)中的較低等級(jí)的事件。舉個(gè)例子,一個(gè)程序可以讀取GPS和加速度計(jì)數(shù)據(jù)來(lái)確定“正在行走”的事實(shí)是否適用于所述設(shè)備(或者更確切地說(shuō)是適用于攜帶該設(shè)備的人)。另一個(gè)程序可以消費(fèi)“正在行走”事件,它可以將這些事件與那些從將設(shè)備與其所有者相關(guān)聯(lián)的數(shù)據(jù)庫(kù)中檢索的信息相結(jié)合,并且可以使用這個(gè)組合信息來(lái)斷定“喬正在行走”(舉個(gè)例子,如果數(shù)據(jù)庫(kù)顯示喬是設(shè)備的所有者電話)。另一個(gè)程序可以消費(fèi)“喬正在行走”事件,并且可以將這些事件與喬的日程表數(shù)據(jù)相結(jié)合,以便得出“喬正在步行去與公司董事長(zhǎng)會(huì)晤”的結(jié)論(如果該會(huì)晤出現(xiàn)在喬的日程表中在喬正在行走的大致時(shí)間的話)。另一個(gè)程序可以消費(fèi)諸如“喬正在步行去與公司董事長(zhǎng)會(huì)晤”之類的事件以及來(lái)自喬的心率監(jiān)視器的讀數(shù),從而推斷出“喬很累”。 這樣一來(lái),模型可以采用相似的方式來(lái)消費(fèi)較高階的事件以及低級(jí)傳感器事件。
圍繞事件的信息的類型可能有很多種。例如,模型可以推斷出具有某個(gè)置信度等級(jí)的事實(shí),并且可以產(chǎn)生指示所述置信度等級(jí)和/或其變化的事件。例如,在分析了傳感器數(shù)據(jù)之后,模型有可能發(fā)現(xiàn)不明確攜帶設(shè)備的人是否正在行走,但是有可能發(fā)現(xiàn)傳感器數(shù)據(jù)有80%的可能性是由行走運(yùn)動(dòng)產(chǎn)生的。由此,模型可以產(chǎn)生一個(gè)指示已開(kāi)始行走的事件, 并且該事件可以指示所述事件精確描述所述人人正在做的事情的確定性是80%。此外,該模型還可以形成某些關(guān)于事件與假定的事件消費(fèi)器具有多大相關(guān)性或關(guān)于信息可靠性衰減速率的結(jié)論,并且這些結(jié)論可以作為事件的一部分來(lái)傳遞。
來(lái)自若干個(gè)不同來(lái)源的事件是可以組合的。在一個(gè)示例中,低級(jí)事件是從單個(gè)設(shè)備中讀取的,并且使用模型來(lái)產(chǎn)生較高階事件的處理是在相同的設(shè)備上進(jìn)行的。在另一個(gè)示例中,不同的低級(jí)和高級(jí)事件是在各種不同的設(shè)備上產(chǎn)生的,并且是在分布排列的設(shè)備上消費(fèi)的。
本發(fā)明內(nèi)容是為了以簡(jiǎn)化形式引入精選概念而被提供的,并且在以下的詳細(xì)描述中將會(huì)進(jìn)一步描述這些概念。本發(fā)明內(nèi)容的目的既不是識(shí)別所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不是用來(lái)限制所要求保護(hù)的主題的范圍。
圖1是其中可以產(chǎn)生和消費(fèi)事件的例示配置的框圖。
圖2是級(jí)聯(lián)的較高階事件的示例的框圖。
圖3是其中在分布式環(huán)境中的多個(gè)機(jī)器上產(chǎn)生和消費(fèi)事件的例示場(chǎng)景的框圖。
圖4是可以產(chǎn)生和/或消費(fèi)事件的例示處理的流程圖。
圖5是可以與事件一起傳遞的信息的示例的框圖。
圖6是可以結(jié)合這里描述的主題的實(shí)現(xiàn)一起使用的例示組件的框圖。
具體實(shí)施方式
計(jì)算機(jī)和具有計(jì)算能力的其他機(jī)器通常包括提供關(guān)于周圍環(huán)境的信息的物理傳感器。例如,機(jī)器可以配備光傳感器、溫度計(jì)、加速度計(jì)、全球定位系統(tǒng)(GPS)傳感器或其他類型的傳感器設(shè)備。在機(jī)器上運(yùn)行的軟件可以訪問(wèn)這些傳感器讀數(shù)。在一個(gè)示例中,機(jī)器上的操作系統(tǒng)提供應(yīng)用編程接口(API ),通過(guò)該接口,軟件可以獲取傳感器讀數(shù)。所述API 可以提供允許軟件按需請(qǐng)求讀數(shù)的功能,或者可以提供一種允許軟件訂閱傳感器事件以及將事件以消息的形式推送給軟件的機(jī)制。
出現(xiàn)的一個(gè)問(wèn)題是用戶很少會(huì)對(duì)原始傳感器數(shù)據(jù)感興趣。用戶(以及延伸至其使用的軟件)通常關(guān)注的是高級(jí)概念,例如“某個(gè)人去哪兒旅行”。諸如加速度矢量和GPS讀數(shù)之類的原始低級(jí)傳感器數(shù)據(jù)可以用于推導(dǎo)出高級(jí)事件,但是高級(jí)事件本身并不是直接感測(cè)到的;取而代之的是,它們通常是基于如何解釋原始傳感器數(shù)據(jù)的抽象模型的。軟件通常會(huì)以某個(gè)便于軟件目標(biāo)的抽象等級(jí)來(lái)應(yīng)對(duì)這個(gè)世界,但是低級(jí)傳感器數(shù)據(jù)僅僅是在基本的物理層級(jí)上應(yīng)對(duì)這個(gè)世界的。如果用戶攜帶的是手持計(jì)算機(jī)之類的設(shè)備,那么對(duì)于計(jì)算機(jī)上的應(yīng)用來(lái)說(shuō),較為便利的是僅僅讓操作系統(tǒng)向應(yīng)用通知高級(jí)事實(shí)。例如,應(yīng)用可被設(shè)計(jì)成向用戶告知疲勞的發(fā)生,由此,如果應(yīng)用可以簡(jiǎn)單地要求操作系統(tǒng)向所述應(yīng)用通知攜帶設(shè)備的人感到疲勞,那么將會(huì)是非常便利的。疲勞度可以從各種不同的事實(shí)來(lái)建?!缛艘呀?jīng)完成的行走量、戶外溫度、人的年齡、人的心率等等。然而,沒(méi)有一種傳感器會(huì)直接感測(cè)疲勞度。如果應(yīng)用關(guān)注的是諸如溫度之類的基本物理事實(shí),那么可以通過(guò)操作系統(tǒng)的用于讀取傳感器值的機(jī)制來(lái)訪問(wèn)這些事實(shí)。然而,操作系統(tǒng)提供的用于訪問(wèn)傳感器數(shù)據(jù)的機(jī)制通常不會(huì)處理來(lái)自這些傳感器之外的其他組件的數(shù)據(jù)。換言之,允許應(yīng)用訂閱傳感器事件的機(jī)制未必允許應(yīng)用訂閱通過(guò)某個(gè)較高級(jí)模型產(chǎn)生的事件。
這里描述的主題提供了一種可以采用統(tǒng)一的全面的方式來(lái)處理高級(jí)抽象以及低級(jí)事件數(shù)據(jù)的系統(tǒng)。如上所述,應(yīng)用可以訂閱傳感器事件,并且可以從操作系統(tǒng)提供的機(jī)制那里接收傳感器數(shù)據(jù)。這里的主題允許實(shí)現(xiàn)較高級(jí)抽象的程序產(chǎn)生事件,并且這些事件可以采取一種與如何使用傳感器數(shù)據(jù)的方式相類似的方式使用。模型可以使用這些事件作為輸入,并且還可以產(chǎn)生它們自己的事件,以便供其他模型使用。由此,可以在級(jí)聯(lián)結(jié)構(gòu)中構(gòu)造高級(jí)抽象,其中一個(gè)模型將會(huì)消費(fèi)低級(jí)事件,并且以逐漸增高的抽象等級(jí)來(lái)產(chǎn)生供其他模型消費(fèi)的事件。例如,第一模型可以基于描述了加速度、緯度和經(jīng)度變化的事件來(lái)確定攜帶特定設(shè)備的人人是否正在行走。一旦該模型確定了所述人人是否正在行走,那么“正在行走”將會(huì)變成事實(shí),并且應(yīng)用可以訂閱關(guān)于該事實(shí)的事件通知。第二模型可以基于(a)第一模型做出的關(guān)于所述人人是否正在行走的確定以及(b)所述人人的日程表上有什么事件來(lái)嘗試確定所述人人在哪里行走。一旦第二模型確定所述人人在哪里行走,則可以發(fā)布類似于“喬開(kāi)始步行去與公司董事長(zhǎng)會(huì)晤”的事件。這些事件可以被應(yīng)用訂閱。第三模型可以嘗試確定所述人人是否疲憊,并且可以基于(a)所述人人已經(jīng)走了多遠(yuǎn)(從“正在行走”事件中確定)以及(b)所述人人的心率(這可以通過(guò)訂閱來(lái)自心率監(jiān)視器的事件來(lái)確定)來(lái)執(zhí)行該處理。一旦第三模型做出了人人是否感到疲憊的確定,那么它可以產(chǎn)生可供其他應(yīng)用訂閱的事件。換句話說(shuō),等級(jí)逐漸提高的概念可以用于產(chǎn)生事件,然后,所述事件可以供那些希望以高抽象等級(jí)來(lái)處理事實(shí)的程序消費(fèi)。
這里的主題可以用于在單個(gè)機(jī)器上管理高級(jí)事件。然而,事件也可以在處于分布式環(huán)境中的機(jī)器上使用。例如,處于一臺(tái)機(jī)器上的程序可以訂閱在其他機(jī)器上獲取的傳感器讀數(shù),或者可以訂閱在其他機(jī)器上計(jì)算的更高級(jí)的事件。
現(xiàn)在轉(zhuǎn)到附圖,圖1顯示了其中可以產(chǎn)生和消費(fèi)事件的例示配置100。配置100可以是計(jì)算機(jī)、別的類型的機(jī)器(例如手機(jī)、汽車、音頻/視頻組件等等)或是一個(gè)或多個(gè)計(jì)算機(jī)和/或一個(gè)或多個(gè)其他機(jī)器的集合。應(yīng)該指出的是,這里描述的技術(shù)既可以在單個(gè)機(jī)器上實(shí)現(xiàn),也可以分布在任意數(shù)量的機(jī)器上。
在圖1的示例中,配置100可以包括傳感器,例如加速度計(jì)102、溫度計(jì)104、光傳感器106、全球定位系統(tǒng)(GPS)接收機(jī)108或其他傳感器110。這些傳感器可以提供關(guān)于在傳感器所依附的設(shè)備的環(huán)境中存在的物理?xiàng)l件的信息。加速度計(jì)102是一個(gè)以某種方式依附于配置100的設(shè)備(在配置100包含多個(gè)機(jī)器的示例中,加速度計(jì)102可以依附于作為配置100的一部分的其中一個(gè)機(jī)器上)。加速度計(jì)102感測(cè)其依附的配置100 (或是其依附的處于配置100內(nèi)部的機(jī)器)上的加速度。該加速度計(jì)可以產(chǎn)生數(shù)據(jù),例如描述在某個(gè)時(shí)間點(diǎn)的加速度的大小和方向的矢量。該數(shù)據(jù)可以供那些使用了下述技術(shù)的軟件使用。
溫度計(jì)104感測(cè)配置100 (或是配置100內(nèi)部的機(jī)器)上呈現(xiàn)的溫度。光傳感器 106感測(cè)配置100 (或是配置100內(nèi)部的機(jī)器)上的光的存在性。GPS接收機(jī)108則與衛(wèi)星進(jìn)行通信,以便對(duì)配置100 (或是配置100內(nèi)部的機(jī)器)的位置執(zhí)行三角測(cè)量。溫度計(jì)104、 光傳感器106以及GPS接收機(jī)108可以基于其感測(cè)的信息來(lái)產(chǎn)生數(shù)據(jù)。例如,溫度計(jì)104可以產(chǎn)生一個(gè)以攝氏度為單位的溫度。光傳感器106可以產(chǎn)生描述檢測(cè)到的光線的數(shù)據(jù)(其中舉例來(lái)說(shuō),所述數(shù)據(jù)可以將光線表示成是某個(gè)顏色空間中的矢量,例如色度-飽和度-亮度空間或是紅-綠-藍(lán)空間)。GPS接收機(jī)108可以在某個(gè)坐標(biāo)系統(tǒng)中表示機(jī)器位置,例如緯度和經(jīng)度。加速度計(jì)102、溫度計(jì)104、光傳感器106以及GPS接收機(jī)108都是可以在配置100上存在的傳感器的示例,但是其他傳感器110也是可以存在的,并且其他傳感器110 可以是任何類型的傳感器。
傳感器應(yīng)用編程接口(API) 112提供一個(gè)可供配置100上運(yùn)行的程序從傳感器中獲取信息的接口。例如,傳感器API 112可以提供可供程序調(diào)用以讀取傳感器的函數(shù)。或者,傳感器API 112可以提供一種可供程序注冊(cè)事件通知的機(jī)制,由此在發(fā)生了與傳感器相關(guān)的事件時(shí),程序可以接收到消息??赡芟鄬?duì)于傳感器發(fā)生的事件的一個(gè)示例是傳感器值改變——舉個(gè)例子,如果溫度改變,那么溫度計(jì)104有可能遭遇到值變化,并且這種變化可以用一個(gè)消息來(lái)傳達(dá)。事件的另一個(gè)示例是導(dǎo)致傳感器的當(dāng)前數(shù)值被傳遞的定時(shí)器到期。例如,傳感器API 112可以每η秒讀取一次傳感器值,并且可以在讀取傳感器的時(shí)候?qū)?dāng)前傳感器值發(fā)送到應(yīng)用。在本示例中,大小為η秒且導(dǎo)致讀取時(shí)間的時(shí)段流逝是事件的一個(gè)示例。任何恰當(dāng)?shù)年P(guān)于事件的想法都是可以與這里的主題一起使用的。
無(wú)論事件由何種機(jī)制觸發(fā)(例如傳感器值變化、時(shí)間推移等等),當(dāng)事件被觸發(fā)時(shí), 傳感器API 112都可以將這些傳感器事件114傳遞給事件消費(fèi)器。任何類型的程序(例如應(yīng)用程序、操作系統(tǒng)組件、設(shè)備驅(qū)動(dòng)器等等)都可以訂閱和消費(fèi)傳感器事件114。然而,可以消費(fèi)事件的組件的一個(gè)示例是事件生成器116。事件生成器116基于它從其他來(lái)源接收的信息而產(chǎn)生較高階事件。一種這樣的類型的信息是傳感器API 112從其他傳感器那里傳遞的低級(jí)傳感器事件114。例如,傳感器事件114可以指示加速度和位置的某些變化,并且事件生成器116可以是基于這些傳感器事件114來(lái)確定某個(gè)人正在行走(或是跑步、開(kāi)車等等) 的運(yùn)動(dòng)分析器。由此,事件生成器116可以基于其對(duì)較低等級(jí)的傳感器事件114的分析來(lái)產(chǎn)生那些指示已經(jīng)開(kāi)始(或者停止或暫停等等)行走的事件。在確定發(fā)生了什么事件的過(guò)程中,事件生成器116可以將其他數(shù)據(jù)118與傳感器事件114組合使用。其他數(shù)據(jù)118可以是任何類型的數(shù)據(jù),例如日程表、雇員記錄、姓名/地址數(shù)據(jù)庫(kù)等等。由此,如果事件生成器 116是辨別步行運(yùn)動(dòng)的運(yùn)動(dòng)分析器,那么事件生成器116可以使用諸如人的日程表和當(dāng)前日期及時(shí)間之類的信息來(lái)確定所述人是在步行前往某個(gè)會(huì)晤。如果日程表標(biāo)識(shí)了與之會(huì)晤的人,那么事件生成器116可以使用姓名/地址數(shù)據(jù)庫(kù)來(lái)確定所述人步行前往的地址。事件生成器116可以從任何類型的事件或非事件信息中得出結(jié)論。無(wú)論事件生成器116使用了什么信息來(lái)得出結(jié)論,事件生成器116都可以基于這些結(jié)論來(lái)產(chǎn)生事件(例如較高階的事件120)。
較高階事件120被提供給事件消費(fèi)器122。例如,事件消費(fèi)器122可以是訂閱了事件通知的程序(例如應(yīng)用、操作系統(tǒng)組件、設(shè)備驅(qū)動(dòng)器等等)。該訂閱機(jī)制可以與程序用以訂閱傳感器事件114的機(jī)制相同或相似。例如,傳感器API 112可被擴(kuò)展成允許程序訂閱較高階事件120以及低級(jí)傳感器事件114。或者,可以為較高階事件創(chuàng)建獨(dú)立的API?;蛘咦鳛楦M(jìn)一步的示例,可以創(chuàng)建包裝器API,其中該API提供可供程序通過(guò)傳感器API 112來(lái)訂閱傳感器事件114以及允許程序訂閱較高階事件120的統(tǒng)一機(jī)制。
無(wú)論使用了什么機(jī)制來(lái)訂閱較高階事件120,事件消費(fèi)器122都可以消費(fèi)這些事件,并且可以基于這些事件來(lái)產(chǎn)生某種類型的結(jié)果。舉個(gè)簡(jiǎn)單的例子,較高階事件120可以包括關(guān)于特定設(shè)備的所有者是否正在行走及其步行前往何處的信息。事件消費(fèi)器122可以是人安裝在其手持計(jì)算設(shè)備上以向其同事告知其在任何指定時(shí)間的位置的應(yīng)用。由此,事件消費(fèi)器122可以是消費(fèi)較高階事件120以獲悉設(shè)備所有者正在步行前往特定地點(diǎn)的應(yīng)用。然后,事件消費(fèi)器122可以向其同事發(fā)送通知,以便向這些同事告知設(shè)備所有者所在位置以及其正在前往的地點(diǎn)。
在圖1的示例中,產(chǎn)生僅僅一個(gè)等級(jí)的較高階事件。然而,事件消費(fèi)器除了消費(fèi)事件之外,還可以產(chǎn)生它自己的事件。由此,較高階事件可以構(gòu)建于彼此之上,以便產(chǎn)生抽象等級(jí)逐漸升高的事件。從第一較高階事件的存在性依賴于一些低級(jí)事件,第二較高階事件的存在性依賴于第一較高階事件等等的意義上講,此類事件可被稱為是“級(jí)聯(lián)的”。圖2顯示了級(jí)聯(lián)較高階事件的示例。
在圖2中,有各種不同的傳感器提供底層低級(jí)輸入。這些傳感器可以包括加速度計(jì)102、GPS接收機(jī)108以及心率傳感器202。雖然這些傳感器中的每一個(gè)都產(chǎn)生低級(jí)事件,但是這些事件可以作為輸入用來(lái)進(jìn)行不同抽象等級(jí)的建模。由此,在本示例中,加速度計(jì)102產(chǎn)生被“isMoving”函數(shù)206用作輸入的事件204。舉個(gè)例子。isMoving函數(shù)可以使用事件消息服務(wù)來(lái)訂閱加速度計(jì)事件。所述isMoving函數(shù)206可以基于對(duì)加速度矢量變化的分析來(lái)確定所述加速度計(jì)所依附的設(shè)備是否被處于運(yùn)動(dòng)的人攜帶。如果isMoving 函數(shù)206確定此人正在移動(dòng),那么它可以產(chǎn)生事件208。事件208可以指示運(yùn)動(dòng)狀態(tài)的變化(例如開(kāi)始、停止、暫停運(yùn)動(dòng)等等),并且還可以提供關(guān)于運(yùn)動(dòng)性質(zhì)的信息。舉個(gè)例子,事件 208可以包括某些數(shù)據(jù),例如運(yùn)動(dòng)視在速度(從加速度計(jì)讀數(shù)中推斷出)。諸如“isWalking” 函數(shù)210之類的另一個(gè)函數(shù)可以訂閱事件208。所述isWalking函數(shù)可以基于對(duì)事件208 中包含的信息的分析(例如運(yùn)動(dòng)速度、運(yùn)動(dòng)開(kāi)始和停止的頻率等等)來(lái)推斷出所述人正在參與的運(yùn)動(dòng)的類型是否是步行運(yùn)動(dòng)。由此,isWalking函數(shù)210可以產(chǎn)生與人參與的運(yùn)動(dòng)是否是步行運(yùn)動(dòng)相關(guān)的事件(例如開(kāi)始步行、停止步行等等)。
應(yīng)該指出的是,此時(shí),isMoving函數(shù)206和isWalking函數(shù)210 —起顯示級(jí)聯(lián)較高階事件的一個(gè)示例。換言之,isMoving函數(shù)206基于低級(jí)加速度計(jì)讀數(shù)來(lái)確定是否發(fā)生運(yùn)動(dòng),并且提供描述了所述運(yùn)動(dòng)的存在性和細(xì)節(jié)的事件。這些事件是較高階事件,并且 isWalking函數(shù)210訂閱了這些事件。然后,isWalking函數(shù)210使用這些事件中的信息來(lái)產(chǎn)生它自己的事件212。事件212依賴于事件208,事件208則依賴于事件204,從這個(gè)意義上講,事件可被稱為具有用于構(gòu)建關(guān)于運(yùn)動(dòng)的等級(jí)逐漸增的抽象的級(jí)聯(lián)依存關(guān)系。在最低的等級(jí),物理傳感器(加速度計(jì)102)檢測(cè)到出現(xiàn)了加速度。在下一個(gè)等級(jí),這種加速度被解釋成指示加速度計(jì)所依附的設(shè)備正在移動(dòng)。在接下來(lái)的等級(jí),該運(yùn)動(dòng)被解釋成是步行運(yùn)動(dòng)。
在圖2所示的級(jí)聯(lián)結(jié)構(gòu)中,較高等級(jí)的抽象也可以被實(shí)現(xiàn)。例如,“isWalkingTo” 函數(shù)214嘗試基于其他信息來(lái)確定人在哪里行走。這種信息的一個(gè)示例是isWalking函數(shù)210產(chǎn)生的事件212。isWalkingTo函數(shù)214接收事件212,以便確定人是否正在行走, 然后使用其他信息來(lái)設(shè)法確定所述人在哪里行走。這個(gè)其他信息的一些可以包括來(lái)自GPS 接收機(jī)108的事件216。該信息還可以包括來(lái)自日程表217的信息,其中所述日程表可以通過(guò)向函數(shù)發(fā)送事件218來(lái)與isWalkingTo函數(shù)214進(jìn)行通信。舉個(gè)例子,如果某個(gè)人正在行走,并且在其日程表中在接下來(lái)的半個(gè)小時(shí)內(nèi)有一個(gè)會(huì)晤,此外其緯度和經(jīng)度指示他在所計(jì)劃的會(huì)晤位置附近,那么可以合理地推斷出所述人正在步行前往會(huì)晤。isWalkingTo 函數(shù)214可以實(shí)現(xiàn)這種類型的高級(jí)抽象,以便推斷出所述人正在步行前往特定的會(huì)晤。此外,isWalkingTo函數(shù)214可以基于這種推論來(lái)產(chǎn)生它自己的事件220的集合。例如,事件 220可以指示某個(gè)人是否開(kāi)始步行前往會(huì)晤(或是停止、暫停等等),并且還可以指示諸如在哪里會(huì)晤以及與誰(shuí)會(huì)晤之類的事實(shí)。
在圖2的示例中,級(jí)聯(lián)事件可以用于實(shí)現(xiàn)更進(jìn)一步的抽象。例如,isTired函數(shù) 222嘗試基于人的心率及其步行了多遠(yuǎn)來(lái)推斷出所述人是否疲憊。由此,isTired函數(shù)222 訂閱事件220來(lái)獲悉人在哪里行走,并且還訂閱來(lái)自心率傳感器202的事件226以獲悉人的心率。然后,所述isTired函數(shù)222可以使用關(guān)于人在哪里行走的信息來(lái)推斷出所述人步行了多遠(yuǎn),并且隨后可以應(yīng)用人類耐力模型來(lái)基于步行距離以及當(dāng)前心率確定人是否疲憊。所述isTired函數(shù)222可以產(chǎn)生它自己的事件集合,并且所述事件集合可以供其他模型或應(yīng)用消費(fèi)。例如,應(yīng)用可以消費(fèi)isTired事件,并且可以在用戶屏幕上顯示示出了疲勞等級(jí)的圖標(biāo)(例如在紅到綠或是1到100的某個(gè)標(biāo)度),其中疲勞等級(jí)是從isTired事件中計(jì)算的。
在圖2中可以看出,在級(jí)聯(lián)結(jié)構(gòu)中,抽象等級(jí)可以是構(gòu)建在彼此之上的。因此,諸如加速度矢量、緯度和精度以及人的心率之類的基本信息可被用于構(gòu)建逐漸抽象的事實(shí), 例如疲勞度。一旦基于疲勞度之類的高級(jí)事實(shí)產(chǎn)生了事件,那么程序可以采用與其使用來(lái)自傳感器的低級(jí)事實(shí)的方式大致相同的方式來(lái)消費(fèi)和使用高級(jí)事實(shí)。
如上所指出的,其中產(chǎn)生或消費(fèi)事件的配置可以是單個(gè)機(jī)器,或者可以包括多個(gè)機(jī)器(所述機(jī)器可以全都是相同類型的機(jī)器,或者可以是不同類型的機(jī)器)。圖3顯示了一個(gè)在分布式環(huán)境中在多個(gè)不同的機(jī)器上產(chǎn)生和消費(fèi)事件的例示場(chǎng)景。
在圖3的示例中,機(jī)器302產(chǎn)生事件304,并且機(jī)器306產(chǎn)生事件308。機(jī)器302和 306可以包括基于傳感器讀數(shù)來(lái)產(chǎn)生事件或者基于關(guān)于傳感器讀數(shù)和/或其他數(shù)據(jù)的抽象推理來(lái)產(chǎn)生事件的軟件。例如,機(jī)器302可以是具有溫度計(jì)的固定機(jī)器,并且機(jī)器306可以是具有加速度計(jì)和GPS接收機(jī)的手持計(jì)算機(jī)。事件304可以指示溫度計(jì)讀數(shù)的狀態(tài),并且事件308可以基于加速度計(jì)和GPS讀數(shù)來(lái)指示關(guān)于人的運(yùn)動(dòng)的高級(jí)推論。機(jī)器302和306 可以基于任何類型的讀數(shù)和/或推理來(lái)產(chǎn)生任何類型的事件。
其中可以存在機(jī)器302和306的分布式環(huán)境允許其他機(jī)器上的處理訂閱機(jī)器302 和306產(chǎn)生的事件。例如,機(jī)器310可以包括一個(gè)或多個(gè)事件接口 312和316,并且機(jī)器310 上的軟件可以通過(guò)這些接口來(lái)訂閱機(jī)器302和306上的事件。舉個(gè)例子,事件接口 312可以提供一種可供機(jī)器310上的處理訂閱機(jī)器302產(chǎn)生的事件的訂閱機(jī)制。同樣,事件接口 314可以提供一種可供機(jī)器310上的處理訂閱機(jī)器302產(chǎn)生的事件的訂閱機(jī)制。雖然機(jī)器 310被顯示成為與之通信的各種不同的機(jī)器使用獨(dú)立的事件接口,但是機(jī)器310也可以提供統(tǒng)一的事件接口,并且處理可以通過(guò)該接口來(lái)訂閱在任何機(jī)器上產(chǎn)生的事件(包括機(jī)器 302和306產(chǎn)生的事件乃至機(jī)器310產(chǎn)生的事件)。
在機(jī)器310上,可以訂閱事件的一個(gè)處理是事件消費(fèi)器313。事件消費(fèi)器313消費(fèi)在別處產(chǎn)生的事件,并且還可以消費(fèi)其他數(shù)據(jù)(例如數(shù)據(jù)315)。事件消費(fèi)器313可以實(shí)現(xiàn)某種類型的使用事件和其他數(shù)據(jù)來(lái)推斷事實(shí)的模型。該事件消費(fèi)器313可以使用其得出的結(jié)論來(lái)產(chǎn)生它自己的事件,例如事件316。舉個(gè)例子,事件消費(fèi)器可以基于人行進(jìn)了多遠(yuǎn)以及戶外溫度來(lái)實(shí)現(xiàn)人的疲勞等級(jí)的模型。由此,事件消費(fèi)器313可以接收戶外溫度(從機(jī)器 302的溫度計(jì))以及所述人步行了多遠(yuǎn)的指示(從機(jī)器306上根據(jù)GPS和加速度計(jì)讀數(shù)來(lái)推斷步行距離的程序)。該模型還可以考慮其他因素,例如人的年齡。在這種情況下,數(shù)據(jù)315 可以是識(shí)別特定設(shè)備所有者和所有者年齡的數(shù)據(jù)庫(kù)記錄。由此,數(shù)據(jù)315可以指示喬是機(jī)器306的所有者(在本示例中,所述機(jī)器是手持計(jì)算機(jī)),并且可以指示喬的年齡是30歲。 基于該信息,事件消費(fèi)器313可以確定喬是否疲憊,并且可以產(chǎn)生諸如事件316之類的事件來(lái)指示喬何時(shí)開(kāi)始疲憊和/或喬何時(shí)從疲憊狀態(tài)中恢復(fù)。
然后,可以由可能處于不同機(jī)器上的上游事件消費(fèi)器318消費(fèi)事件316。該上游事件消費(fèi)器318可以使用事件316來(lái)產(chǎn)生結(jié)果或者提供信息。例如,喬可能是一名公司雇員, 并且該公司的醫(yī)療部門有可能希望能夠在喬開(kāi)始疲憊的時(shí)候告訴喬去休息。由此,上游事件消費(fèi)器318可能是處于醫(yī)療部門計(jì)算機(jī)上的應(yīng)用,其中所述應(yīng)用會(huì)在模型指示雇員開(kāi)始疲憊的時(shí)候向操作者發(fā)出警報(bào),由此操作者可以采取恰當(dāng)?shù)牟僮?例如呼叫雇員以及請(qǐng)求其休息一下)。
由此,圖3的上述場(chǎng)景顯示了一個(gè)在分布式環(huán)境中的機(jī)器上產(chǎn)生和消費(fèi)事件的示例。
圖4以流程圖的形式顯示了一個(gè)其中可以產(chǎn)生和/或消費(fèi)事件的例示處理。在轉(zhuǎn)到圖4的描述之前,應(yīng)該指出的是,圖4包含的流程圖是參考圖1-3所述的組件通過(guò)舉例的方式來(lái)描述的,然而該處理是可以在任何系統(tǒng)中執(zhí)行的,并不局限于圖1-3所示的場(chǎng)景。此外,如連接方框的線條所示,圖4中的流程圖顯示了一個(gè)以特定順序來(lái)執(zhí)行處理階段的示例,但是該圖中顯示的不同階段可以按照任何順序或者以任何組合或子組合的形式執(zhí)行。
在402,可以從一個(gè)或多個(gè)傳感器接收信息。所述傳感器可以是如上所述的傳感器(例如加速度計(jì)、溫度計(jì)、光傳感器、GPS接收機(jī)等等),或者可以是任何類型的傳感器。此外,可能有任意數(shù)量的傳感器。圖4通過(guò)舉例顯示了兩個(gè)傳感器404和406,但是也可以具有任何數(shù)量的傳感器(如傳感器404與406之間的省略號(hào)所示)。來(lái)自傳感器的信息可以以事件的形式接收,但是也可以采用任何恰當(dāng)?shù)男问浇邮?。例如,可以存在一個(gè)允許程序訂閱傳感器事件的消息服務(wù),或者可以具有一組可供程序調(diào)用以按需讀取傳感器的函數(shù)。
在408,可以將模型應(yīng)用于接收到的傳感器輸入,以便產(chǎn)生信息。模型還可以接收一些其他數(shù)據(jù)412,并且該模型可以使用傳感器輸入和數(shù)據(jù)412作為推斷事實(shí)的基礎(chǔ)。(在以上的一個(gè)示例中,模型使用來(lái)自數(shù)據(jù)庫(kù)的關(guān)于人的年齡的信息;該年齡信息是數(shù)據(jù)412 的一個(gè)示例)。如上所述,模型可以用于推斷出事實(shí),例如運(yùn)動(dòng)、步行、疲憊或是其他任何類型的事實(shí)。
在410,較高階事件可被生成。所述較高階事件是以某種形式的推理為基礎(chǔ)的事件,而不僅僅是關(guān)于原始低級(jí)數(shù)據(jù)的報(bào)告。這些較高階事件可以基于在408應(yīng)用的模型所產(chǎn)生的信息。
在414,事件消費(fèi)器接收所述較高階事件。所述較高階事件可以被產(chǎn)生事件的同一機(jī)器上的消費(fèi)器接收,或者可以被處于不同機(jī)器上的事件消費(fèi)器接收。
在414接收的較高階事件可被應(yīng)用使用,或者所述事件可被用作其他事件生成器的輸入來(lái)產(chǎn)生其他事件。由此,在416,可以將模型應(yīng)用于較高階事件(并且有可能應(yīng)用于一些其他數(shù)據(jù)418)來(lái)產(chǎn)生附加的較高階事件。在420,事件可以在一個(gè)具有任意大小和復(fù)雜度的鏈條中產(chǎn)生和/或消費(fèi)。舉個(gè)例子,如上所述,圖2顯示了連續(xù)使用事件來(lái)產(chǎn)生逐漸抽象的模型的場(chǎng)景。由此,事件可被用作其他模型的輸入;這些模型可以產(chǎn)生新的事件;以此類推。
在某個(gè)點(diǎn)將會(huì)產(chǎn)生一個(gè)事件,該事件會(huì)被使用該事件的應(yīng)用或其他程序消費(fèi)(在 422)?;谑录?,應(yīng)用可以創(chuàng)建數(shù)據(jù)或者可以采用某種切實(shí)操作。為了使用如上所述的一個(gè)示例,事件可能指示雇員開(kāi)始疲憊,這可以促使應(yīng)用顯示一個(gè)警報(bào),所述警報(bào)可以促使雇員休息以恢復(fù)精力。
在上述示例中,作為事件一部分傳遞的信息通常是某個(gè)事實(shí)狀態(tài)的變化(例如溫度變化、人是否正在行走的改變等等)。然而,與任何事件包含在一起的信息可以包括其他類型的信息。圖5顯示了一些可以與事件一起傳遞的例示類型的信息。
事件信息502可以包括如下信息,例如確定性504、顯著性506、衰減指數(shù)508以及時(shí)間戳510。該信息可以支持某種使用事件中包含的信息的方式。
確定性504指的是已產(chǎn)生的特定事件精確描述其旨在描述的事實(shí)的置信度等級(jí)。 例如,產(chǎn)生此類事件的組件可能提供關(guān)于事件正確描述相關(guān)事實(shí)的組件確定性的評(píng)估。由此,在上述示例中,事件可能指示人已開(kāi)始行走或者停止行走。然而,確定人是否行走的處理可能依賴于一個(gè)從諸如加速度矢量變化或位置變化之類的其他事實(shí)中推斷出人正在行走的事實(shí)的模型。在解釋這種事件的過(guò)程中有可能存在某種不確定性。由此,模型可以斷定人正在行走,但是該模型還有可能發(fā)現(xiàn)觀察到的物理傳感器讀數(shù)與表征行走運(yùn)動(dòng)的原型傳感器讀數(shù)之間的相關(guān)性并不理想。因此,模型可以斷定人正在行走的確定性是70%。在這種情況下,模型可以產(chǎn)生指示人已經(jīng)開(kāi)始行走的事件,并且還可以為該事件提供70%的確定性等級(jí)。由此,依賴于某個(gè)人是否行走的模型可以對(duì)這個(gè)確定性等級(jí)加以考慮。
顯著性506指的是特定事件相對(duì)其消費(fèi)器所具有的相關(guān)性。在一些情況中,產(chǎn)生事件的程序旨在被特定程序使用,例如,郵件客戶端的制造商可以產(chǎn)生用于指示郵件何時(shí)到達(dá)的獨(dú)立的事件生成器,由此郵件客戶端可以通過(guò)已有的事件機(jī)制來(lái)訂閱“郵件到達(dá)”事件。由此,事件生成器可以具有某種算法來(lái)評(píng)估用戶關(guān)注以及不關(guān)注哪些郵件。這樣一來(lái), 無(wú)論郵件何時(shí)到達(dá),都可以產(chǎn)生“郵件到達(dá)”事件,但是該事件有可能是與一個(gè)關(guān)于顯著性的指示一起到來(lái)的,事件生成器或假定的事件消費(fèi)器將會(huì)認(rèn)為所述顯著性屬于是所述事件的(例如基于事件生成器相信郵件客戶端會(huì)發(fā)現(xiàn)指定的一封郵件有多重要的某種確定)。如果事件生成器是在考慮了特定事件消費(fèi)器的情況下設(shè)計(jì)的,那么這種事件生成器可以處于一個(gè)用于判定消費(fèi)器將會(huì)認(rèn)為屬于事件的顯著性的位置(與事件生成器是為特定郵件客戶端設(shè)計(jì)的示例一樣)。
衰減指數(shù)508指的是事件傳遞的信息的可靠性有可能會(huì)隨著時(shí)間的過(guò)去而降低的事實(shí)。例如,某個(gè)模型有可能能夠以很高的精度來(lái)確定人正在行走。但是人們非常頻繁地開(kāi)始和停止行走,因此,指示人開(kāi)始行走的事件有可能在產(chǎn)生事件之后的一秒是非??煽康?,但其可靠性在五分鐘之后有可能會(huì)大幅降低。衰減指數(shù)508可以指示信息的可靠性是如何隨著時(shí)間流逝而改變的。例如,衰減指數(shù)508可以指示信息的半衰期,或者可以指示信息價(jià)值的絕對(duì)時(shí)間限制。由于信息可靠性會(huì)隨著時(shí)間而衰減,因此,可以為事件提供一個(gè)時(shí)間戳510,由此可以使用時(shí)間戳510以及衰減指數(shù)508來(lái)確定信息的可靠性。舉個(gè)例子, 如果衰減指數(shù)508指示事件具有大小為5分鐘的半衰期,并且時(shí)間戳510指示事件是在十分鐘之前發(fā)布的,那么可以確定,該信息的可靠性是其在最初發(fā)布時(shí)的可靠性的四分之一。
一般來(lái)說(shuō),確定性504、顯著性506、衰減指數(shù)508以及時(shí)間戳510都是表征特定事實(shí)的意義或重要性的信息的示例。
圖6顯示了一個(gè)其中可以部署這里描述的主題各個(gè)方面的例示環(huán)境。
計(jì)算機(jī)600包括一個(gè)或多個(gè)處理器602以及一個(gè)或多個(gè)數(shù)據(jù)記憶組件604。一個(gè)或多個(gè)處理器602通常是微處理器,例如在個(gè)人臺(tái)式計(jì)算機(jī)或膝上計(jì)算機(jī)、服務(wù)器、手持計(jì)算機(jī)、或別的類型的計(jì)算設(shè)備中發(fā)現(xiàn)的微處理器。一個(gè)或多個(gè)數(shù)據(jù)記憶組件604是能夠短期或長(zhǎng)期存儲(chǔ)數(shù)據(jù)的組件。一個(gè)或多個(gè)數(shù)據(jù)記憶組件604的示例包括硬盤、可移除盤(包括光盤和磁盤)、易失和非易失隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存、磁帶等等。所述一個(gè)或多個(gè)數(shù)據(jù)記憶組件是計(jì)算機(jī)可讀存儲(chǔ)媒體的示例。計(jì)算機(jī)600可以包括或者關(guān)聯(lián)于顯示器612,其中所述顯示器可以是陰極射線管(CRT)監(jiān)視器、液晶顯示器(IXD)監(jiān)視器或是其他任何類型的監(jiān)視器。
軟件可以保存在一個(gè)或多個(gè)數(shù)據(jù)記憶組件604中,并且可以在一個(gè)或多個(gè)處理器 602上運(yùn)行。此類軟件的一個(gè)示例是事件抽象軟件606,其中該軟件可以實(shí)現(xiàn)在上文中結(jié)合圖1-5描述的某些或所有功能,但是任何類型的軟件也是可以使用的。例如,軟件606可以通過(guò)一個(gè)或多個(gè)組件來(lái)實(shí)現(xiàn),其中所述組件可以是分布式系統(tǒng)中的組件、獨(dú)立的文件、獨(dú)立的函數(shù)、獨(dú)立的對(duì)象、獨(dú)立的代碼行等等。將程序存入硬盤、載入RAM以及在一個(gè)或多個(gè)計(jì)算機(jī)處理器上運(yùn)行所述程序的計(jì)算機(jī)(例如個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持計(jì)算機(jī)等等) 代表了圖6描述的場(chǎng)景,但是這里描述的主題并不局限于該示例。
這里描述的主題可以作為保存在一個(gè)或多個(gè)數(shù)據(jù)記憶組件604中并在一個(gè)或多個(gè)處理器602上運(yùn)行的軟件來(lái)實(shí)現(xiàn)。作為另一個(gè)示例,所述主題可以作為保存在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒體中的指令來(lái)實(shí)現(xiàn)。(諸如光盤或磁盤之類的有形介質(zhì)是存儲(chǔ)介質(zhì)的示例)。在由計(jì)算機(jī)或其他機(jī)器運(yùn)行時(shí),這些指令可以促使計(jì)算機(jī)或其他機(jī)器執(zhí)行方法的一個(gè)或多個(gè)操作。執(zhí)行這些操作的指令可以保存在一個(gè)介質(zhì)上,或者可以分布在多個(gè)媒體上,由此這些指令可以集中出現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒體上,而不用考慮這些指令是否碰巧全部都在相同的介質(zhì)上。
此外,這里描述的任何操作(無(wú)論是否在圖中顯示)都可以作為方法的一部分由處理器(例如一個(gè)或多個(gè)處理器602)執(zhí)行。由此,如果在這里描述了操作A、B和C,那么可以執(zhí)行一種包含了操作A、B和C的方法。此外,如果在這里描述了操作A、B和C,那么可以執(zhí)行一種包括使用處理器來(lái)執(zhí)行操作A、B和C的方法。
在一個(gè)例示環(huán)境中,計(jì)算機(jī)600通過(guò)網(wǎng)絡(luò)608可通信地連接到一個(gè)或多個(gè)其他設(shè)備。在結(jié)構(gòu)上與計(jì)算機(jī)600相似的計(jì)算機(jī)610是可以連接到計(jì)算機(jī)600的設(shè)備的一個(gè)示例, 但是其他類型的設(shè)備也可以采用這種方式連接。
雖然已經(jīng)通過(guò)特定于結(jié)構(gòu)特征和/或方法操作的語(yǔ)言描述了本主題,但是應(yīng)該理解,所附權(quán)利要求中限定的主題不必局限于上述具體特征或操作。相反,以上描述的具體特征和操作是作為用于實(shí)現(xiàn)權(quán)利要求的例示形式公開(kāi)的。
權(quán)利要求
1.一種使用事件的方法,該方法包括在第一組件上接收第一事件;將模型應(yīng)用于所述第一事件,以便產(chǎn)生第二事件,所述第二事件包括關(guān)于所述模型從包含第一事件的第一信息中推斷的事實(shí)的通知,所述第二事件還包括表征所述第二事件的意義或重要性的數(shù)據(jù);在第二組件上接收所述第二事件;以及使用所述第二事件來(lái)執(zhí)行操作。
2.權(quán)利要求1的方法,其中表征所述第二事件的意義或重要性的所述數(shù)據(jù)包括關(guān)于所述第一組件對(duì)于所述第二事件表征所述事實(shí)的確定性的等級(jí)所做的評(píng)定的指示。
3.權(quán)利要求1的方法,其中所述第一組件產(chǎn)生供所述第二組件消費(fèi)的所述第二事件, 以及其中表征所述第二事件的意義或重要性的所述數(shù)據(jù)包括關(guān)于所述第一組件對(duì)所述第二組件認(rèn)為屬于所述第二事件的顯著性所做的評(píng)定的指示。
4.權(quán)利要求1的方法,其中表征所述第二事件的意義或重要性的所述數(shù)據(jù)包括關(guān)于所述第二事件精度的衰減速率的指示。
5.權(quán)利要求1的方法,其中所述第一事件包括關(guān)于傳感器獲取的讀數(shù)的指示,其中所述傳感器檢測(cè)所述傳感器所依附的機(jī)器周圍的環(huán)境的物理方面。
6.權(quán)利要求1的方法,其中所述應(yīng)用所述模型包括從數(shù)據(jù)庫(kù)接收第二信息,以及使用所述第二信息來(lái)產(chǎn)生第二事件。
7.權(quán)利要求1的方法,其中所述第一事件是在第一機(jī)器上產(chǎn)生的,并且其中所述第二事件是在不同于所述第一機(jī)器的第二機(jī)器上產(chǎn)生的。
8.一種具有用于執(zhí)行權(quán)利要求1-7中任一權(quán)利要求的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
9.一種使用事件的系統(tǒng),該系統(tǒng)包括第一機(jī)器,該機(jī)器包括檢測(cè)所述第一機(jī)器上存在的物理?xiàng)l件的傳感器,所述第一機(jī)器包括產(chǎn)生第一事件的軟件,所述第一事件包括關(guān)于所述傳感器的值的指示,所述第一機(jī)器包括允許組件訂閱與所述傳感器相關(guān)的事件的機(jī)制;以及不同于所述第一機(jī)器的第二機(jī)器,所述第二機(jī)器包括訂閱所述第一事件的第一程序, 所述第一程序?qū)崿F(xiàn)從包含所述第一事件的信息中推導(dǎo)出第一事實(shí)的第一模型,所述第一程序產(chǎn)生第二事件,其中該第二事件包含關(guān)于所述第一事實(shí)的指示以及關(guān)于所述第二事件精確描述所述第一事實(shí)的確定性的等級(jí)的指示。
10.權(quán)利要求9的系統(tǒng),其中所述第二事件還包括由所述第一程序?qū)嵤┑年P(guān)于所述第二事件精度的衰減速率的評(píng)估。
11.權(quán)利要求9的系統(tǒng),還包括不同于所述第一機(jī)器和所述第二機(jī)器的第三機(jī)器,所述第三機(jī)器包括訂閱所述第二事件的第二程序,所述第二程序?qū)崿F(xiàn)第二模型,所述第二模型使用所述第二事件和所述確定性的等級(jí)來(lái)推導(dǎo)基于所述第二事件以及進(jìn)一步基于所述確定性的等級(jí)的第二事實(shí)。
12.權(quán)利要求9的系統(tǒng),其中第一程序?yàn)榈诙绦虍a(chǎn)生所述第二事件,以及其中所述第二事件包括所述第一程序所做的關(guān)于所述第二程序?qū)?huì)認(rèn)為屬于所述第一程序的顯著性的評(píng)估。
13.權(quán)利要求9的系統(tǒng),其中所述第一程序從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),以及其中所述信息還包括所述數(shù)據(jù)。
14.權(quán)利要求9的系統(tǒng),還包括消費(fèi)所述第二事件并且基于所述第二事件來(lái)產(chǎn)生切實(shí)的結(jié)果的第三程序。
15.權(quán)利要求9的系統(tǒng),其中所述第二事件是從所述第一程序從數(shù)據(jù)庫(kù)檢索的信息中推導(dǎo)得出的。
全文摘要
在級(jí)聯(lián)的計(jì)算模型中可以產(chǎn)生和消費(fèi)高階事件。諸如物理傳感器讀數(shù)變化之類的低級(jí)信息可被以操作系統(tǒng)服務(wù)產(chǎn)生的事件消息的形式傳遞至應(yīng)用。在一個(gè)示例中,實(shí)現(xiàn)高級(jí)抽象的模型還可以使用事件來(lái)傳達(dá)從較低等級(jí)的事實(shí)中得出的事實(shí)。例如,程序可以產(chǎn)生一個(gè)指示特定類型的運(yùn)動(dòng)(例如步行)已開(kāi)始或停止的事件,其中程序從關(guān)于加速度和位置的傳感器數(shù)據(jù)中推斷出步行運(yùn)動(dòng)。另一個(gè)程序可以消費(fèi)這些事件以及其他數(shù)據(jù)來(lái)得出更高等級(jí)的推論,例如“喬正在步行前往會(huì)晤”。由此,事件可以在級(jí)聯(lián)模型中使用,其中所述事件是以抽象等級(jí)逐步提高的方式產(chǎn)生和消費(fèi)的。
文檔編號(hào)G06F9/44GK102498469SQ201080042284
公開(kāi)日2012年6月13日 申請(qǐng)日期2010年9月15日 優(yōu)先權(quán)日2009年9月22日
發(fā)明者G·H·帕克斯, R·D·科普蘭德, W·H·米切爾 申請(qǐng)人:微軟公司