專利名稱:用于為數(shù)據(jù)項(xiàng)的流生成處理規(guī)范的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于為數(shù)據(jù)項(xiàng)的流生成處理規(guī)范的方法。
背景技術(shù):
現(xiàn)代計(jì)算機(jī)系統(tǒng)經(jīng)常對流傳輸數(shù)據(jù)進(jìn)行操作,即對傳感器所捕獲的數(shù)據(jù)項(xiàng)的連續(xù) 序列進(jìn)行操作,其中在傳感器仍在捕獲另外的數(shù)據(jù)項(xiàng)的同時(shí)對已經(jīng)接收到的數(shù)據(jù)項(xiàng)進(jìn)行處 理。通常的應(yīng)用情形是安全系統(tǒng),例如設(shè)施監(jiān)視系統(tǒng),其中讀卡器所捕獲的數(shù)據(jù)項(xiàng)的流被處 理以識別對設(shè)施內(nèi)的機(jī)密區(qū)域的未授權(quán)訪問或者進(jìn)入和離開建筑物的人的其他異常行為。為了處理這種在理論上無限的數(shù)據(jù)項(xiàng)(亦稱作事件)的流,已知將事件的流劃分 為有限的可處理部分(所謂的窗口),并且對這些窗口應(yīng)用計(jì)算,以或許生成從對計(jì)算結(jié)果 的串接得到的另一可能無限的事件流。窗口規(guī)范通常包含開始條件(start condition)和 結(jié)束條件(end condition),因此窗口(即,給定流中的具體事件子序列)各自包括在匹配 開始條件的開始事件與匹配結(jié)束條件的結(jié)束事件之間的所有連續(xù)事件。雖然對與單個(gè)數(shù)據(jù)項(xiàng)/事件有關(guān)的異常行為的檢測相當(dāng)直截了當(dāng)(例如,當(dāng)讀卡 器讀卡時(shí)判定一個(gè)人的ID卡已經(jīng)過期),但是多數(shù)真實(shí)生活情形需要檢測與流內(nèi)的多個(gè) 數(shù)據(jù)項(xiàng)有關(guān)的更復(fù)雜情況(例如,有人進(jìn)入某一房間,但是在預(yù)定量時(shí)間之后未離開該房 間)。該處理范例通常被稱為復(fù)雜事件處理。復(fù)雜事件處理中的一個(gè)關(guān)鍵且困難的任務(wù)是定義用于以合理方式將輸入流劃分 為窗口以檢測期望的異常條件的適當(dāng)標(biāo)準(zhǔn)。例如,如果讀卡器所捕獲的數(shù)據(jù)項(xiàng)的流(其表 示進(jìn)入和離開建筑物的人)被錯(cuò)誤地劃分(例如,如果“進(jìn)入”事件和“離開”事件被劃分 在不同的窗口當(dāng)中),那么對得到的各個(gè)窗口的處理將使得難以乃至不可能揭示有人已經(jīng) 在某一房間內(nèi)過長時(shí)間這一事實(shí)。因此,提供允許以正確方式處理各個(gè)數(shù)據(jù)項(xiàng)的窗口規(guī)范 是至關(guān)重要的。這種窗口的定義通常是處理規(guī)范的一部分,該處理規(guī)范通常遵循“連續(xù)查詢”方 法,即對數(shù)據(jù)項(xiàng)的查詢處理在給定輸入流上永遠(yuǎn)運(yùn)行。適于描述這種處理規(guī)范的計(jì)算機(jī)語 言通常提供用于定義窗口的復(fù)雜句法表示法,例如作為SQL的擴(kuò)展或者如在XQuery 1. 1建 議中規(guī)定的。例如,窗口可以簡單地基于計(jì)數(shù)(例如,每個(gè)窗口包含三個(gè)相鄰事件)、基于定 時(shí)(例如,在一小時(shí)內(nèi)發(fā)生的所有事件)或者基于事件相關(guān)性(例如,窗口覆蓋人在建筑物 中期間的時(shí)段,即在事件“人進(jìn)入建筑物”與“人離開建筑物”之間的所有事件)。另外,窗 口可以是重疊的(所謂的滑動窗口)或是不重疊的(所謂的滾動窗口)。圖1示出了 XQuery中的窗口規(guī)范的簡單示例。由圖可見,窗口規(guī)范包括確定在哪 里劃分?jǐn)?shù)據(jù)項(xiàng)(事件)的流的開始和結(jié)束條件。更詳細(xì)地察看該示例中的開始條件,每當(dāng) 數(shù)據(jù)項(xiàng)的“方向(direction)”屬性具有值“進(jìn)(in) ”時(shí)(例如,每當(dāng)有人進(jìn)入建筑物時(shí)), 新窗口就開始。結(jié)束條件決定相應(yīng)窗口何時(shí)結(jié)束,即每當(dāng)連續(xù)數(shù)據(jù)項(xiàng)的“方向(direction)” 屬性具有值“出(out)”并且該連續(xù)數(shù)據(jù)項(xiàng)的“人(person)”屬性的值等于開始條件所涉及 的數(shù)據(jù)項(xiàng)的“人(person)”屬性的值時(shí)(例如,每當(dāng)同一人離開建筑物時(shí))。
雖然根據(jù)以上句法表示法的窗口定義非常強(qiáng)大和靈活,但是在句法層面(例如, 如何以特定語言正確地制定處理規(guī)范)和語義層面(即,如何保證所制定的處理規(guī)范表示 以合理方式劃分?jǐn)?shù)據(jù)項(xiàng)的流的窗口定義)兩者上,查詢設(shè)計(jì)者要定義這些窗口定義變得非 常復(fù)雜和困難。結(jié)果,手動定義的處理規(guī)范非常易于出錯(cuò)并且因而可能導(dǎo)致底層處理邏輯 中的嚴(yán)重安全漏洞。在現(xiàn)有技術(shù)中,已知旨在幫助查詢設(shè)計(jì)者定義窗口規(guī)范的若干方法。例如, US 2009/0106701涉及交互式復(fù)雜事件式樣(pattern)構(gòu)建器以及涉及圖形用戶界面 的可視化器,以幫助開發(fā)者定義句法正確的事件-條件-動作規(guī)則。2005/022^96和 2006/0224542集中研究對數(shù)據(jù)庫系統(tǒng)中的事件-條件-動作規(guī)則的評估和管理。另外,例 如在 US 7,499,900、US7, 468,662、US 6,496,831、US 6,601,193 和 US 2008/0120283 中 公開了在手動預(yù)先定義的規(guī)則集上工作的用于情況監(jiān)視和事件處理的系統(tǒng)和方法。關(guān)于 復(fù)雜事件處理的另外背景信息例如可以在US 6,681,230、US 6,502,133、US 6,449,618、 US 2006/0229923、US 2009/0006320、US 2009/0171999、US 7,275,250、US 7,398,530、US 7,444,395 和 US 7,502,845 中找到。然而,所有已知的系統(tǒng)和方法要么需要已經(jīng)手動預(yù)先定義的規(guī)則集,要么僅輔助 開發(fā)者以給定的流處理語言定義句法正確的規(guī)則。因此,所有已知系統(tǒng)沒有達(dá)到幫助開發(fā)者決定如何以正確和準(zhǔn)確的方式(在語義 層面上)劃分?jǐn)?shù)據(jù)項(xiàng)的給定流,以允許對該流內(nèi)的復(fù)雜事件的可靠檢測。因此本發(fā)明的技術(shù)問題是提供用于為數(shù)據(jù)項(xiàng)的流生成更準(zhǔn)確的處理規(guī)范的方法, 從而提高底層計(jì)算機(jī)系統(tǒng)的安全性和可靠性并且至少部分地克服現(xiàn)有技術(shù)的上述缺點(diǎn)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,該問題由用于為傳感器所捕獲的數(shù)據(jù)項(xiàng)的流生成至少一 個(gè)處理規(guī)范的方法解決。在權(quán)利要求1的實(shí)施例中,該方法包括以下步驟a.生成多個(gè)提議窗口規(guī)范(proposed window specification)并且基于所述提議 窗口規(guī)范中的至少一個(gè)生成所述至少一個(gè)處理規(guī)范;b.其中所述多個(gè)提議窗口規(guī)范是基于相似性量度(similarity metric)生成的, 所述相似性量度適于在數(shù)據(jù)項(xiàng)的流中識別相似的成對數(shù)據(jù)項(xiàng)。因此,該實(shí)施例定義了為數(shù)據(jù)項(xiàng)的給定流提議多個(gè)窗口規(guī)范的方法,而不是為數(shù) 據(jù)項(xiàng)的給定流手動地定義處理規(guī)范。所述多個(gè)提議窗口規(guī)范是基于相似性量度從數(shù)據(jù)項(xiàng)的 輸入流得出的。數(shù)據(jù)項(xiàng)的流是由傳感器捕獲的,傳感器例如是硬件傳感器(例如讀卡器或 溫度傳感器)或軟件傳感器(例如輸出事件的流的計(jì)算機(jī)程序、服務(wù)或者其他應(yīng)用)。然后 基于所述提議窗口規(guī)范中的至少一個(gè)生成所述至少一個(gè)處理規(guī)范,所述至少一個(gè)處理規(guī)范 可包括諸如XQuery之類的流處理語言的處理指令。因?yàn)樗龆鄠€(gè)提議窗口規(guī)范是基于適于在數(shù)據(jù)項(xiàng)的流中識別相似的成對數(shù)據(jù)項(xiàng) 的相似性量度來生成的,因此識別出的相似成對數(shù)據(jù)項(xiàng)可被用于定義相應(yīng)提議窗口規(guī)范的 開始和結(jié)束條件。結(jié)果,所獲得的提議窗口規(guī)范較之現(xiàn)有技術(shù)更準(zhǔn)確,這是因?yàn)楸景l(fā)明的方 法(優(yōu)選地自動)在流中檢測相似數(shù)據(jù)項(xiàng),即相關(guān)數(shù)據(jù)項(xiàng)的式樣。在本發(fā)明的另一方面,所述相似性量度可適于計(jì)算數(shù)據(jù)項(xiàng)的流中的至少一對數(shù)據(jù)項(xiàng)的兩兩相似性值,如將在以下詳細(xì)描述中進(jìn)一步說明的。另外,該方法還可包括以下步 驟計(jì)算所述多個(gè)提議窗口規(guī)范的累積相似性值,并且基于具有最高累積相似性值的提議 窗口規(guī)范生成所述至少一個(gè)處理規(guī)范。在本發(fā)明的另一方面,該方法還可包括以下步驟向用戶顯示所述多個(gè)提議窗口 規(guī)范,由所述用戶選擇所述提議窗口規(guī)范中的至少一個(gè),并且基于所選擇的至少一個(gè)提議 窗口規(guī)范生成所述至少一個(gè)處理規(guī)范。因此,生成處理規(guī)范的過程可以是交互式的,即,用 戶被呈現(xiàn)以多個(gè)提議窗口規(guī)范并且然后可以根據(jù)用戶的要求選擇最適當(dāng)?shù)拇翱谝?guī)范。對可 能的相關(guān)窗口規(guī)范的自動提議極大地提高了所生成的處理規(guī)范的準(zhǔn)確性。在另一方面,該方法可包括以下步驟在所述流中選擇第一數(shù)據(jù)項(xiàng),并且基于所述 相似性量度在所述流中識別第二數(shù)據(jù)項(xiàng)。因此,在用戶對提議窗口規(guī)范不滿意的情況下,可 以(優(yōu)選由用戶)選擇流中的第一數(shù)據(jù)項(xiàng),并且該方法可以基于相似性量度識別第二數(shù)據(jù) 項(xiàng)?;谛乱唤M的第一和第二數(shù)據(jù)項(xiàng),該方法然后可以生成另外的(一個(gè)或多個(gè))提議窗 口規(guī)范。優(yōu)選地,在該階段中排除已經(jīng)提議過的窗口規(guī)范。本發(fā)明的該方面進(jìn)一步提高了 所獲得的處理規(guī)范的準(zhǔn)確性,這是因?yàn)橛脩艨梢詫μ嶙h窗口規(guī)范進(jìn)行微調(diào)。另外,該方法還可包括以下步驟在所述流中選擇與識別出的第二數(shù)據(jù)項(xiàng)不同的 第三數(shù)據(jù)項(xiàng),并且基于由所選擇的第一和第三數(shù)據(jù)項(xiàng)構(gòu)成的成對數(shù)據(jù)項(xiàng)生成提議窗口規(guī) 范。因此,第二數(shù)據(jù)項(xiàng)也可(優(yōu)選由用戶)通過選擇流中的第三數(shù)據(jù)項(xiàng)來編輯,使得該方法 基于所選擇的第一和第三數(shù)據(jù)項(xiàng)生成一個(gè)或多個(gè)提議窗口規(guī)范,以對(一個(gè)或多個(gè))提議 窗口規(guī)范進(jìn)行進(jìn)一步微調(diào),如將在以下詳細(xì)描述中說明的。在另一方面,所述數(shù)據(jù)項(xiàng)可包括至少一種屬性,并且其中所述相似性量度適于基 于至少一對數(shù)據(jù)項(xiàng)中的至少一種屬性的值來計(jì)算兩兩相似性值。另外,如果所述至少一對 數(shù)據(jù)項(xiàng)的至少一種屬性的值相等,則可使所述兩兩相似性值增大。另外或者作為替代,如果 所述至少一種屬性是二進(jìn)制屬性并且如果所述至少一對數(shù)據(jù)項(xiàng)的至少一種二進(jìn)制屬性的 值是互補(bǔ)的,則可使所述兩兩相似性值增大。在該上下文中,二進(jìn)制屬性可被理解為具有兩 種可能值的屬性(例如,具有可能值“進(jìn)”和“出”的“方向”屬性)。在以下詳細(xì)描述中說 了另外的示例。另外,相似性量度可以對關(guān)于數(shù)據(jù)項(xiàng)的元數(shù)據(jù)進(jìn)行操作。優(yōu)選地,元數(shù)據(jù)是從本體 (ontology)獲得的,如將在以下詳細(xì)描述中進(jìn)一步說明的。在本發(fā)明的另一方面,該方法還可包括以下步驟接收至少一個(gè)處理規(guī)范,基于所 述至少一個(gè)處理規(guī)范得出數(shù)據(jù)項(xiàng)的至少一個(gè)流并且/或者顯示數(shù)據(jù)項(xiàng)的流中的至少一個(gè) 提議窗口規(guī)范。因此,該方法可被用于使給定的處理規(guī)范(例如XQuery窗口定義)可視化, 如將在以下詳細(xì)描述中進(jìn)一步說明的。將會認(rèn)識到,本發(fā)明的該方面可以結(jié)合或者獨(dú)立于 這里描述的其他方面實(shí)現(xiàn)。本發(fā)明還涉及一種計(jì)算機(jī)程序,其包括適于實(shí)現(xiàn)以上方法中的任一種的指令。另外,本發(fā)明針對于一種用于為傳感器所捕獲的數(shù)據(jù)項(xiàng)的流生成至少一個(gè)處理規(guī) 范的系統(tǒng),其中該系統(tǒng)包括適于生成多個(gè)提議窗口規(guī)范的窗口規(guī)范發(fā)生器以及適于基于所 述提議窗口規(guī)范中的至少一個(gè)生成所述至少一個(gè)處理規(guī)范的處理規(guī)范發(fā)生器,其中所述窗 口規(guī)范發(fā)生器適于基于相似性量度生成所述多個(gè)提議窗口規(guī)范,所述相似性量度適于在數(shù) 據(jù)項(xiàng)的流中識別相似的成對數(shù)據(jù)項(xiàng)。
另外,所述窗口規(guī)范發(fā)生器還可適于計(jì)算所述多個(gè)提議窗口規(guī)范的累積相似性 值,并且所述處理規(guī)范發(fā)生器還可適于基于具有最高累積相似性值的提議窗口規(guī)范生成所 述至少一個(gè)處理規(guī)范。在另一方面,該系統(tǒng)還可包括圖形用戶界面(graphical user interface),其適 于向用戶顯示所述多個(gè)提議窗口規(guī)范并且適于使所述用戶可以選擇所述提議窗口規(guī)范中 的至少一個(gè),其中所述處理規(guī)范發(fā)生器適于基于所選擇的至少一個(gè)提議窗口規(guī)范生成所述 至少一個(gè)處理規(guī)范。
在以下詳細(xì)描述中,參考以下附圖進(jìn)一步描述了本發(fā)明的當(dāng)前優(yōu)選實(shí)施例圖1 根據(jù)現(xiàn)有技術(shù)的XQuery中的示例性處理規(guī)范;圖2 根據(jù)本發(fā)明實(shí)施例的方法所執(zhí)行的處理步驟的流程圖;圖3 根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)項(xiàng)的示例性流;圖4 根據(jù)本發(fā)明實(shí)施例的示例性提議窗口規(guī)范;圖5 根據(jù)本發(fā)明實(shí)施例的示例性處理規(guī)范;以及圖6 示出根據(jù)本發(fā)明實(shí)施例的系統(tǒng)的框圖。
具體實(shí)施例方式下面針對如圖3示意性示出的數(shù)據(jù)項(xiàng)(事件)100a,... , IOOn的流10的示例性摘 錄(excerpt)描述本發(fā)明的當(dāng)前優(yōu)選實(shí)施例??梢钥吹?,數(shù)據(jù)項(xiàng)100a,...,100η中的每一 個(gè)包括時(shí)間戳、屬性“人”(分別具有值“Arm”、“B0b”、“Carie”、“Dan”和“Rob”)以及屬性 “方向”(分別具有值“進(jìn)”和“出”)。將會認(rèn)識到圖3示出了極簡化的示例并且流可以包括 具有任何數(shù)目和數(shù)量的屬性的任何類型的數(shù)據(jù)項(xiàng)。一般而言,流10可被理解為連續(xù)數(shù)據(jù)項(xiàng) (事件)的有序序列。圖2示出了具有根據(jù)本發(fā)明實(shí)施例的方法所執(zhí)行的處理步驟的流程圖。將會認(rèn)識 到,下面描述的處理步驟中的一些在其他實(shí)施例中可被省略或者以不同順序執(zhí)行。如圖2 中可見,用戶在步驟200中可以例如從給定的一組流(例如,在注冊表中注冊/存儲的)中 選擇事件流10,或者通過指定適當(dāng)?shù)膫鞲衅? (見下文)來選擇事件流10。在步驟205中,從事件流10(參見圖幻中獲得足夠大的事件(數(shù)據(jù)項(xiàng))樣本。雖 然流的樣本將被理解為摘錄,即流的數(shù)據(jù)項(xiàng)的(可能無限的序列)的子序列,但是術(shù)語“樣 本流”和“流”在下文中可以互換使用。樣本是否足夠大可以由用戶來驗(yàn)證,例如通過在圖 形用戶界面60 (見下文)中將流樣本顯示給用戶并且向其詢問該樣本是否足夠。如果答案 是“否”,那么樣本可被擴(kuò)充(S卩,可以從流中獲得具有更多數(shù)據(jù)項(xiàng)的樣本)直到用戶滿意為 止。在步驟210中,基于流10 (即基于在步驟205中獲得的流樣本)(例如通過窗口規(guī) 范發(fā)生器40;見下文)生成多個(gè)提議的窗口規(guī)范20。更具體地說,基于以下啟發(fā)法和量度 (乃至其組合)中的至少一種通過算法從流10得出可能的窗口定義20 -相似性量度(見下文)可被應(yīng)用于成對事件100a,..., IOOn并且結(jié)果可基于事 件相關(guān)性而被組合以得出一定數(shù)量(例如,2到幻的可能窗口規(guī)范20(參見在圖4中示出并且在下面得到更詳細(xì)說明的下面兩個(gè)窗口規(guī)范20)。例如,如果根據(jù)第一事件屬性的兩兩 相似性(pair-wise similarity)之和顯著高于根據(jù)第二事件屬性的兩兩相似性之和,那么 基于第一相似性(與第一事件屬性有關(guān))的窗口定義20是更可能的。-窗口定義可以基于事件100a,...,100η的計(jì)數(shù)(例如,每個(gè)窗口可以具有相同 的大小,例如三個(gè)連續(xù)事件)。在這種情況下,窗口定義20可以基于啟發(fā)法,例如基于樣本 10的大小(例如,樣本大小/100)。-窗口定義可以是基于時(shí)間的。除了固定的時(shí)間間隔(例如5分鐘)之外,流10 內(nèi)的時(shí)間分布可以給出另外的暗示,例如,如果事件100a,...,100η僅在工作時(shí)間期間發(fā) 生,那么工作日將是合理的窗口大小。-最后,窗口定義可以基于事件同質(zhì)性。如果多個(gè)后續(xù)事件100a,.. .,100η非常 類似(例如,一系列溫度測量,其中各個(gè)數(shù)據(jù)項(xiàng)在一定時(shí)段內(nèi)幾乎恒定然后流示出一峰值, 即異常高的測量值),那么窗口定義可以基于該相似性的變化。在這種情況下,諸如標(biāo)準(zhǔn) 差或其他統(tǒng)計(jì)函數(shù)之類的測度可被應(yīng)用(例如參見http://WWW. dcs. shef. ac. uk/ sam/ stringmetrics. html處的計(jì)算語言學(xué)和字符串處理的情境中的量度概要)?;谧址?算法的應(yīng)用可以直接基于串值屬性,或者可以通過將其看作對應(yīng)于字母串的符號序列而基 于屬性值的序列。在步驟215中,例如通過累積在流10中識別出的成對數(shù)據(jù)項(xiàng)的各個(gè)兩兩相似性 值,似然性值(likelihood value)可被指派給在步驟210中得出的每個(gè)提議窗口規(guī)范20。 基于所指派的似然性值,最有可能的提議窗口規(guī)范20可被選擇。在步驟220中,所生成的提議窗口規(guī)范20可被逐一應(yīng)用于流10并且結(jié)果可被以 圖形方式顯示給用戶(參見圖4中的下面兩個(gè)提議窗口規(guī)范),以讓用戶選擇最準(zhǔn)確的提議 窗口規(guī)范20。可以看到,在圖4的第三行中示出的提議窗口規(guī)范20根據(jù)條件“‘X進(jìn)’到‘X 出,,,來劃分流10 (注意跨越事件"Ann進(jìn)”…"Ann出,,,"Bob進(jìn)”…"Bob出”(兩次), "Carie進(jìn)”.· · "Carie出”和“Dan進(jìn)”.· ·的粗矩形所示的窗口,其中沒有對應(yīng)于“Dan進(jìn)” 的結(jié)束事件)。類似地,在圖4的最后一行中示出的提議窗口規(guī)范20根據(jù)條件“‘X進(jìn)’到 ‘X進(jìn)’”來劃分流10。另外,可以向用戶提供使窗口定義改為基于時(shí)間或計(jì)數(shù)(參見圖4中 的上面兩個(gè)提議窗口規(guī)范)的選擇。如果用戶未找到與其要求相匹配的窗口定義20,那么 方法可以執(zhí)行交互式微調(diào)循環(huán)(參見圖2中從步驟220指回步驟210的箭頭),例如如下-用戶可以在流10中選擇樣本開始事件(即第一數(shù)據(jù)項(xiàng)100a,.. .,100η)?;?相似性量度和/或統(tǒng)計(jì)方法,可能的結(jié)束事件(即第二數(shù)據(jù)項(xiàng)100a,..., 100η)可被檢測 (優(yōu)選排除曾在步驟210中用于提議窗口規(guī)范20的那些事件)并且所檢測到的結(jié)束事件可 被呈現(xiàn)給用戶。-用戶可以確認(rèn)結(jié)束事件或者從流10中選擇另一結(jié)束事件(即,第三數(shù)據(jù)項(xiàng) 100a, ...,100n)。在后一種情況下,所選擇的開始和結(jié)束事件的相似性可被計(jì)算,并且基 于由此得到的相似性值,流10中的至少一個(gè)另外的提議窗口規(guī)范20可被生成并呈現(xiàn)給用 戶。用戶然后可以確認(rèn)或校正新的提議窗口規(guī)范20。在后一種情況下,可以針對(一個(gè)或 多個(gè))新窗口計(jì)算相似性,并且可以將結(jié)果用于執(zhí)行進(jìn)一步的微調(diào)循環(huán)(每當(dāng)用戶需要時(shí), 該處理可被重復(fù))。在步驟225中,用戶可以通過例如以文本形式編輯窗口定義來精煉(refine)迄今
8為止找到的提議窗口定義20。優(yōu)選地,步驟225在步驟230之后被執(zhí)行(見下文),并且用 戶可以通過編輯所生成的提議窗口規(guī)范20來精煉所提議的窗口定義20。一旦用戶確認(rèn)了所提議的窗口定義20,方法就前進(jìn)到步驟230,并且基于經(jīng)確認(rèn) 的提議窗口規(guī)范20(例如通過處理規(guī)范發(fā)生器50 ;見下文)生成例如是XQuery或者另一 合適流處理語言形式的相應(yīng)句法30。圖5示出了根據(jù)在圖4的第三行中示出的提議窗口 規(guī)范20 “‘X進(jìn)’到‘X出’”生成的示例性處理規(guī)范30,其中(優(yōu)選由用戶)選擇了窗口可 以重疊。更具體地說,圖5的處理規(guī)范30中的第二行表示用戶所指定的用來從中采集流 樣本的流10。第4行中的關(guān)鍵字“sliding(滑動),,定義了窗口可以重疊(否則,關(guān)鍵字 “tumbling(滾動)”可被使用)。第6-7行定義了(一個(gè)或多個(gè))窗口的開始條件,即相應(yīng) 事件的“direction (方向)”屬性必須具有值“ in (進(jìn))”。第8_14行定義了窗口以具有值 為“out (出),,的"direction"屬性的事件結(jié)束(參見第9-10行),并且如果該事件具有 "name (名稱)”屬性,那么其值等于相應(yīng)開始事件的“name”屬性的值。另外或者作為替代,所生成的句法30可被傳遞給查詢構(gòu)建工具,該查詢構(gòu)建工具 允許事件處理的圖形規(guī)范。在一些實(shí)施例中,本發(fā)明可被用于使給定XQuery所表示的窗口定義20可視化并 且根據(jù)基于窗口定義20的相似性分析來提議窗口精煉(即,分析在給定窗口中是否出現(xiàn)可 能提議不同窗口定義的有關(guān)相似性)。該方面表示對本發(fā)明的重要擴(kuò)展。因此,該方法將以 給定的XQuery (或者優(yōu)選由用戶接收和/或選擇的任何其他格式的處理規(guī)范30)開始。將 從XQuery得出流,而非由用戶選擇流。另外,將在流樣本上對XQuery求值(evaluate)以 顯示窗口,而非(如上面已經(jīng)描述)基于相似性進(jìn)行窗口計(jì)算??傊摲矫嬗糜赬Query窗口定義的可視化。用戶然后要么可以操縱給定的 XQuery并使結(jié)果得到顯示,要么可以(例如經(jīng)由合適圖形用戶界面的元素)選擇被呈現(xiàn)以 經(jīng)精煉的窗口規(guī)范,經(jīng)精煉的窗口規(guī)范然后可以將已經(jīng)用XQuery定義的(一個(gè)或多個(gè))窗 口定義用作另外和/或類似的相似性的基礎(chǔ)。這樣,如果(使用現(xiàn)有處理規(guī)范30)的運(yùn)行 中系統(tǒng)已經(jīng)存在,但是如果查詢30不再是適當(dāng)?shù)?例如,要么因?yàn)橐笠呀?jīng)改變,要么因?yàn)?流的特性已經(jīng)隨時(shí)間而改變),那么本發(fā)明可被使用。在下文中,說明相似性量度的示例使用。例如,基于所選擇的開始事件100a,..., 100η,可如下在流樣本10中識別出最相似的(一個(gè)或多個(gè))后續(xù)事件100a,...,100n。相 似性量度可以例如基于如下規(guī)則系統(tǒng)對成對事件/數(shù)據(jù)項(xiàng)的事件屬性進(jìn)行操作-針對兩個(gè)事件中具有相同值的每個(gè)屬性,向相似性值加1。-如果屬性是二進(jìn)制屬性(即僅可具有兩種不同值的屬性),那么針對這對事件中 具有互補(bǔ)值的每個(gè)屬性(參見圖3中的值為“進(jìn)”和“出,,的屬性“位置”),向相似性值加 0. 5。將會認(rèn)識到,以上規(guī)則系統(tǒng)只是用于展示的一個(gè)很簡單的示例,并且本發(fā)明能夠 支持任意的復(fù)雜規(guī)則系統(tǒng)。在下文中,以上規(guī)則系統(tǒng)被應(yīng)用于圖3所示的示例性流10以計(jì) 算提議窗口規(guī)范20 從圖3中的數(shù)據(jù)項(xiàng)100b(其屬性“人”具有值“Bob”并且其屬性“方向”具有值 “進(jìn)”;在下文中被表示為“Bob進(jìn)”)開始,流10中的下一數(shù)據(jù)項(xiàng)100c是“Bob出”。因此, 根據(jù)以上規(guī)則系統(tǒng)的成對數(shù)據(jù)項(xiàng)100b和100c的兩兩相似性值是1. 5 (因?yàn)椤叭恕睂傩跃哂邢嗤挡⑶叶M(jìn)制“方向”屬性具有互補(bǔ)值)。具有開始條件“X進(jìn)”和結(jié)束條件“X出,,的 相應(yīng)提議窗口規(guī)范20在圖4的第三行中示出。在生成(一個(gè)或多個(gè))提議窗口規(guī)范20期 間,優(yōu)選假定所有的事件/數(shù)據(jù)項(xiàng)100a,IOOn是相似的,即它們具有相同的類型(在該 示例中為一個(gè)“人”屬性和一個(gè)“方向”屬性)。由于在該示例中,兩個(gè)相似事件的“人”屬 性具有相同的值,因此“人”屬性被歸納為提議窗口規(guī)范20中的“X”。由于兩個(gè)相似事件的 “方向”屬性具有相反的值(“進(jìn)”和“出”),因此該信息也被包括在提議窗口規(guī)范20中。確 定“進(jìn)”和“出,,是互補(bǔ)的屬性值可以通過檢查相應(yīng)屬性的值范圍來實(shí)現(xiàn),該值范圍在這種 情況下可能實(shí)際僅包括一組兩個(gè)元素,并且將這兩個(gè)元素看作二進(jìn)制屬性值。另外,成對數(shù)據(jù)項(xiàng)100b ("Bob進(jìn)”)和IOOd ("Bob進(jìn)”)的兩兩相似性值是2. 0 (因 為“人”屬性和“方向”屬性都具有相同的值)。因此,具有開始條件“X進(jìn)”和結(jié)束條件“X 進(jìn)”的提議窗口規(guī)范20被生成,如圖4中最后一行所示。另外,成對數(shù)據(jù)項(xiàng)100b ( "Bob進(jìn)”)和IOOe ( "Carie進(jìn)”)的兩兩相似性值是1. 0, 并且成對數(shù)據(jù)項(xiàng)100b( “Bob進(jìn)”)和100f( “Arm出”)的兩兩相似性值是0.5。相應(yīng)的窗 口規(guī)范“‘X進(jìn)’到‘Y進(jìn)’”和“‘X進(jìn)’到‘Y出’”分別未在圖4中示出,這是因?yàn)樵谠撌纠?中,只有前兩個(gè)提議窗口規(guī)范20被選擇并呈現(xiàn)給用戶。另外,基于相似性量度,具有最高累積相似性值的窗口式樣(即特定屬性的相等 值,等等)然后可被選擇并呈現(xiàn)給用戶。累積相似性值可例如通過計(jì)算流10中的所有成對 數(shù)據(jù)項(xiàng)100a,...,IOOn的所有兩兩相似性值之和來計(jì)算。例如,對于提議窗口規(guī)范20 “ ‘X 進(jìn)’到‘X出’”,在圖3所示的示例流10中存在五個(gè)相應(yīng)的窗口(見圖4中的粗矩形),因 此累積相似性值將是7.5( = 5X1.5)。對于“‘X進(jìn)’到‘X進(jìn)’”,存在四個(gè)相應(yīng)的窗口,從 而產(chǎn)生累積相似性值8 ( = 4 X 2. 0)?!?‘X進(jìn)’到‘Y進(jìn)’ ”的提議窗口規(guī)范20將產(chǎn)生五個(gè)具 有相似性1. 0的窗口,因而產(chǎn)生累積相似性值5( = 5X 1. 0)。結(jié)果,后面一個(gè)窗口規(guī)范20 可被認(rèn)為不如另兩個(gè)窗口規(guī)范20那么相關(guān)。因此,與在流10中僅具有例如一個(gè)窗口(即 一個(gè)與窗口規(guī)范相匹配的具體事件子序列)的提議窗口規(guī)范20相比,向具體窗口更經(jīng)常出 現(xiàn)在流10中的提議窗口規(guī)范20指派更高的累積相似性值。另外或者作為替代,關(guān)于事件/數(shù)據(jù)項(xiàng)的元數(shù)據(jù)、事件/數(shù)據(jù)項(xiàng)的類型和/或事件 /數(shù)據(jù)項(xiàng)的屬性的值可被包括在相似性量度中。例如,將“Arm”定義為女名并將“Bob”定義 為男名的本體可被使用以應(yīng)用類似性量度,或者本體可被用來確定值“進(jìn)”是“出,,的對立 物??傊谝恍?shí)施例中,本發(fā)明基于以下概念使用數(shù)據(jù)項(xiàng)的流的樣本來提議窗口 劃分(即,提議的窗口規(guī)范),并且就最終窗口定義與用戶交互以針對所選擇的窗口規(guī)范20 生成句法(即處理規(guī)范30)。該方法相對于現(xiàn)有技術(shù)(例如,如在圖1中手動地用XQuery 編寫處理規(guī)范30)是有利的,因?yàn)閷Σ荒敲疵嫦蚣夹g(shù)的人而言,定義這種處理規(guī)范是非常 困難的,這導(dǎo)致錯(cuò)誤和易于出錯(cuò)的窗口定義。圖6示出了根據(jù)本發(fā)明實(shí)施例的示例性系統(tǒng)1??梢钥吹剑到y(tǒng)1與傳感器5通信 以獲得所捕獲的事件流10。系統(tǒng)還包括適于生成提議窗口規(guī)范20的窗口規(guī)范發(fā)生器40, 以及適于基于提議窗口規(guī)范20生成至少一個(gè)處理規(guī)范30的處理規(guī)范發(fā)生器50。在圖6 所示的實(shí)施例中,系統(tǒng)1還包括用于向用戶顯示所生成的提議窗口規(guī)范20的圖形用戶界面 60。例如,圖形用戶界面60可以顯示圖4所示的提議窗口規(guī)范20。另外,圖形用戶界面60可以包括圖形交互元素(例如圖4所示的復(fù)選框和下拉菜單)以使得用戶能夠與系統(tǒng)1交 互以對處理規(guī)范生成進(jìn)行微調(diào),如上所述。系統(tǒng)1及其組件還可適于執(zhí)行上述方法中的任 何其他步驟。將會認(rèn)識到,圖6所示的系統(tǒng)1是中央處理組件。然而,例如通過將提議窗口 發(fā)生器40和處理規(guī)范發(fā)生器50分布到通過網(wǎng)絡(luò)連接互相通信的不同計(jì)算機(jī)系統(tǒng)上,系統(tǒng) 1也可被實(shí)現(xiàn)為分布式系統(tǒng)。
權(quán)利要求
1.一種為傳感器(5)所捕獲的數(shù)據(jù)項(xiàng)(100a,100b,. . . , 100η)的流(10)生成至少一 個(gè)處理規(guī)范(30)的方法,其中所述方法包括以下步驟a.生成多個(gè)提議窗口規(guī)范00)并且基于所述提議窗口規(guī)范00)中的至少一個(gè)生成所 述至少一個(gè)處理規(guī)范(30);b.其中所述多個(gè)提議窗口規(guī)范00)是基于相似性量度生成的,所述相似性量度適于 在數(shù)據(jù)項(xiàng)的流(10)中識別相似的成對數(shù)據(jù)項(xiàng)(100a,100b, . . .,100η)。
2.如權(quán)利要求1所述的方法,其中所述相似性量度適于計(jì)算所述數(shù)據(jù)項(xiàng)的流(10)中的 至少一對數(shù)據(jù)項(xiàng)(100a, 100b, ... , 100η)的兩兩相似性值。
3.如權(quán)利要求1或2所述的方法,還包括以下步驟計(jì)算所述多個(gè)提議窗口規(guī)范00) 的累積相似性值,并且基于具有最高累積相似性值的提議窗口規(guī)范00)生成所述至少一 個(gè)處理規(guī)范(30)。
4.如在先權(quán)利要求中任一項(xiàng)所述的方法,還包括以下步驟向用戶顯示所述多個(gè)提議 窗口規(guī)范(20),由所述用戶選擇所述提議窗口規(guī)范00)中的至少一個(gè),并且基于所選擇的 至少一個(gè)提議窗口規(guī)范00)生成所述至少一個(gè)處理規(guī)范(30)。
5.如在先權(quán)利要求中任一項(xiàng)所述的方法,還包括以下步驟在所述流(10)中選擇第一 數(shù)據(jù)項(xiàng)(100a, 100b, . . .,100η),并且基于所述相似性量度在所述流(10)中識別第二數(shù)據(jù) 項(xiàng)(100a,100b, · · ·,100η)。
6.如前一權(quán)利要求所述的方法,還包括以下步驟在所述流(10)中選擇與識別出的第 二數(shù)據(jù)項(xiàng)不同的第三數(shù)據(jù)項(xiàng)(100a,100b,...,100η),并且基于由所選擇的第一和第三數(shù)據(jù) 項(xiàng)形成的成對數(shù)據(jù)項(xiàng)生成提議窗口規(guī)范00)。
7.如在先權(quán)利要求中任一項(xiàng)所述的方法,其中,生成所述至少一個(gè)處理規(guī)范(30)的步 驟包括以流處理語言生成處理指令,所述流處理語言優(yōu)選是XQuery。
8.如在先權(quán)利要求中任一項(xiàng)所述的方法,其中,所述數(shù)據(jù)項(xiàng)(100a,100b,.. . , 100η) 包括至少一種屬性,并且其中所述相似性量度適于基于至少一對數(shù)據(jù)項(xiàng)(100a,100b,..., 100η)中的至少一種屬性的值來計(jì)算兩兩相似性值。
9.如前一權(quán)利要求所述的方法,其中,如果所述至少一對數(shù)據(jù)項(xiàng)(100a,100b,..., 100η)中的至少一種屬性的值相等,則使所述兩兩相似性值增大。
10.如在先權(quán)利要求8或9所述的方法,其中,如果所述至少一種屬性是二進(jìn)制屬性 并且如果所述至少一對數(shù)據(jù)項(xiàng)(100a,100b,. . . , 100η)的至少一種二進(jìn)制屬性的值是互補(bǔ) 的,則使所述兩兩相似性值增大。
11.如在先權(quán)利要求中任一項(xiàng)所述的方法,還包括以下步驟接收至少一個(gè)處理規(guī)范 (30),基于所述至少一個(gè)處理規(guī)范(30)得出數(shù)據(jù)項(xiàng)(100a,100b,. . . , 100η)的至少一個(gè)流 (10)并且/或者在數(shù)據(jù)項(xiàng)的流中顯示至少一個(gè)提議窗口規(guī)范00)。
12.—種計(jì)算機(jī)程序,其包括用于實(shí)現(xiàn)如在先權(quán)利要求中任一項(xiàng)所述的方法的指令。
13.一種用于為傳感器(5)所捕獲的數(shù)據(jù)項(xiàng)(100a, 100b,..., 100η)的流(10)生成至 少一個(gè)處理規(guī)范(30)的系統(tǒng)(1),其中所述系統(tǒng)(1)包括a.窗口規(guī)范發(fā)生器(40),適于生成多個(gè)提議窗口規(guī)范00);b.處理規(guī)范發(fā)生器(50),適于基于所述提議窗口規(guī)范00)中的至少一個(gè)生成所述至 少一個(gè)處理規(guī)范(30);c.其中,所述窗口規(guī)范發(fā)生器GO)適于基于相似性量度生成所述多個(gè)提議窗口規(guī)范 (20),所述相似性量度適于在數(shù)據(jù)項(xiàng)的流(10)中識別相似的成對數(shù)據(jù)項(xiàng)(100a,100b,..., 100η)。
14.如前一權(quán)利要求所述的系統(tǒng)(1),其中,所述窗口規(guī)范發(fā)生器GO)還適于計(jì)算所述 多個(gè)提議窗口規(guī)范O0)的累積相似性值,并且其中所述處理規(guī)范發(fā)生器(50)還適于基于 具有最高累積相似性值的提議窗口規(guī)范O0)生成所述至少一個(gè)處理規(guī)范(30)。
15.如在先權(quán)利要求13或14中任一項(xiàng)所述的系統(tǒng)(1),還包括圖形用戶界面(60),其 適于向用戶顯示所述多個(gè)提議窗口規(guī)范00)并且適于允許所述用戶選擇所述提議窗口規(guī) 范O0)中的至少一個(gè),其中所述處理規(guī)范發(fā)生器(50)適于基于所選擇的至少一個(gè)提議窗 口規(guī)范00)生成所述至少一個(gè)處理規(guī)范(30)。
全文摘要
本發(fā)明公開了用于為數(shù)據(jù)項(xiàng)的流生成處理規(guī)范的方法。本發(fā)明涉及一種為傳感器(5)所捕獲的數(shù)據(jù)項(xiàng)(100a,100b,...,100n)的流(10)生成至少一個(gè)處理規(guī)范(30)的方法,其中該方法包括以下步驟a.生成多個(gè)提議窗口規(guī)范(20)并且基于所述提議窗口規(guī)范(20)中的至少一個(gè)生成所述至少一個(gè)處理規(guī)范(30);b.其中所述多個(gè)提議窗口規(guī)范(20)是基于相似性量度生成的,所述相似性量度適于在數(shù)據(jù)項(xiàng)的流(10)中識別相似的成對數(shù)據(jù)項(xiàng)(100a,100b,...,100n)。
文檔編號G06F21/00GK102073809SQ201010570250
公開日2011年5月25日 申請日期2010年11月24日 優(yōu)先權(quán)日2009年11月24日
發(fā)明者哈拉德·斯隆寧, 雨朵·哈非曼 申請人:軟件股份公司