欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

解析可觀察集合的制作方法

文檔序號:6436020閱讀:202來源:國知局

專利名稱::解析可觀察集合的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及解析技術(shù),尤其涉及解析可觀察集合。
背景技術(shù)
:解析器使得程序能夠識別與形式語法相匹配的模式。更具體而言,解析器能夠以多個步驟對輸入序列執(zhí)行句法分析。首先,可對字符序列進行詞法分析以尤其識別諸如關(guān)鍵詞、運算符和標識符等權(quán)標。換言之,輸入序列被預處理。例如,考慮包括空白的下述輸入序列“{,V,a,r,,X,,=,,X,,+,,l,;,}”。詞法分析能夠生成下述權(quán)標序列“{,”"var,-χ,‘=,’《x,《‘+,-1,‘;,”。接下來,這些權(quán)標可被用來根據(jù)編程語言語法產(chǎn)生解析樹或更緊湊的抽象句法樹(AST),該解析樹或更緊湊的抽象句法樹可被用于后續(xù)的分析、優(yōu)化和代碼生成。關(guān)于上述示例,“{varχ=x+1;}”還能以分層格式表示。解析常規(guī)上是一種基于拉取(pull-based)的運算。例如,解析器能夠請求下一權(quán)標。響應之,執(zhí)行詞法分析的詞法分析器(lexer)在輸入序列上拉取以讀取形成被提供回解析器的權(quán)標的接下來的一個或多個字符。隨后,解析器請求下一權(quán)標而該過程繼續(xù)。輸入序列通常例如以串(string)或文件形式存在,而發(fā)現(xiàn)輸入中的模式或結(jié)構(gòu)的過程是基于拉取的。只要當消費過程需要知道更多時,它就請求下一值。例如,解析器請求下一權(quán)標,而詞法分析器請求下一字符。許多解析器是手寫的,而其它解析器是自動生成的。例如,可提供語法,其中解析器從該語法生成。特別是,正則表達式可用來促進基于語法自動生成解析器,其中正則表達式提供例如在現(xiàn)有串或文件中尋找或匹配字符序列的精確手段。無論如何,解析器以及正則表達式是基于拉取的,從而輸入的消費者控制數(shù)據(jù)獲取。而且,解析器和正則表達式引擎均能利用任意前瞻和/或回溯(負前瞻)來促進對輸入的模式的識別。例如,就解析而言,前瞻指定在決定使用什么語法規(guī)則之前可使用的權(quán)標的最大數(shù)量。回溯指的是使用一個或多個之前獲取的權(quán)標來標識適當?shù)恼Z法規(guī)則。在前瞻和回溯的情況下,這樣的功能可以通過簡單地在輸入序列中將指針向前或向后移動,隨后在指針標識的位置處從序列拉取輸入來實現(xiàn)。
發(fā)明內(nèi)容下面呈現(xiàn)了簡化的
發(fā)明內(nèi)容,以便提供對所公開主題的某些方面的基本概念。本
發(fā)明內(nèi)容不是廣泛性的概觀。它并不旨在標識關(guān)鍵/重要元素,也不旨在劃定所要求保護主題的范圍。其唯一目的是以簡化形式呈現(xiàn)一些概念,作為稍后呈現(xiàn)的更具體實施例的序、曰ο簡言之,本公開大體涉及解析可觀察集合(observablecollection).尤其是,使用解析技術(shù)來促進關(guān)于可觀察集合的模式識別。依照一個實施例,組合符解析器(combinatorparser)可被生成并用于識別一個或多個可觀察集合中的模式。而且,來自兩個或更多個可觀察集合的項可被添加到單一可觀察集合以便于處理,并且通過用時間對可觀察集合項進行注釋或生成時間項可以捕捉時間。為實現(xiàn)上述及相關(guān)目的,在此結(jié)合以下描述和附圖描述了所要求保護主題的某些說明性方面。這些方面指示可實踐本主題的各種方式,它們均落在所要求保護主題的范圍之內(nèi)。當結(jié)合附圖閱讀以下詳細描述時,本發(fā)明的其它優(yōu)點和新穎特征將變得顯而易見。圖1是數(shù)據(jù)處理系統(tǒng)的框圖。圖2是代表性集合處理器組件的框圖。圖3A描繪了項時間的第一表示。圖:3B示出了項時間的第二表示。圖4是代表性識別器組件的框圖。圖5描繪了對具有失敗的事件的樣本左因子提取(leftfactoring)0圖6是數(shù)據(jù)處理系統(tǒng)的框圖。圖7是處理數(shù)據(jù)的方法的流程圖。圖8是集合組合的方法的流程圖。圖9是捕捉項時間的方法的流程圖。圖10是捕捉項時間的方法的流程圖。圖11是數(shù)據(jù)處理的方法的流程圖。圖12是示出用于本公開各方面的合適操作環(huán)境的示意性框圖。具體實施例方式下面的細節(jié)大體針對解析可觀察集合。傳統(tǒng)上,解析器被用來對串、文件或其它基于拉取的或可枚舉的集合進行操作。然而,解析器還可以用來對基于推送的數(shù)據(jù)(或換言之,諸如事件流等可觀察集合)標識模式。在一個實施例中,可使用組合符解析器,組合符解析器是一種從原始的或較不復雜的解析器分段構(gòu)造的解析器。換言之,可以使用解析器組合符,所述解析器組合符利用基本解析器來構(gòu)建較復雜的解析器并利用復雜的解析器來構(gòu)建更復雜的解析器。進而,多個可觀察集合可被組合成單一可觀察集合,并且可以用時間來注釋可觀察集合項或者可生成獨立的時間項來便于解析。傳統(tǒng)的解析器技術(shù)可被改造成便于對基于推送的或可觀察的集合使用。傳統(tǒng)解析系統(tǒng)對基于拉取的或可枚舉的集合常使用回溯和前瞻。然而,可觀察的或基于推送的數(shù)據(jù)的異步性使得對輸入的回溯或緩沖困難或不可能。而且,就還沒有被提供的、基于推送的數(shù)據(jù)而言,解析器不能進行前瞻。盡管如此,如本文進一步描述的,在需要時可提供有限的回溯和前瞻功能以解析可觀察集合?,F(xiàn)在參考附圖更詳細地描述本公開的各個方面,在全部附圖中用相似的標記來指示相似或相應的元素。然而應該理解,附圖及其相關(guān)詳細描述不旨在將所要求保護的主題限于所公開的具體形式。相反,其意圖是覆蓋落在所要求保護主題的精神和范圍之內(nèi)的所有修改、等效和替換的方案。首先參考圖1,示出了數(shù)據(jù)處理系統(tǒng)100。數(shù)據(jù)處理系統(tǒng)100包括可觀察集合110,可觀察集合110表示動態(tài)的數(shù)據(jù)集合,其中除了其他方面外,數(shù)據(jù)與在任意時間被推送到該數(shù)據(jù)的項相對應。如所示,一個或多個數(shù)據(jù)源120(數(shù)據(jù)源f數(shù)據(jù)源M,其中M是大于或等于1的整數(shù))可向可觀察集合110提供項。換言之,數(shù)據(jù)源120相對于基于推送的運算模型進行操作,其中數(shù)據(jù)源120向消費者異步推送數(shù)據(jù),而不是由消費者從數(shù)據(jù)源120拉取數(shù)據(jù)。由于該集合的動態(tài)性,可觀察集合110可被認為是或被表示為數(shù)據(jù)流。相應地,事件(或換言之,事件流)可以是一種類型的可觀察集合110。例如,可觀察集合110可以是在任意時間提供的股票價格流或天氣數(shù)據(jù)流。當然,可觀察集合110不限于事件。其它在傳統(tǒng)上不被視為事件的、基于推送的集合可以是一種類型的可觀察集合110,諸如但不限于異步運算的結(jié)果。而且,在一個具體實施例中,可觀察集合110可指代關(guān)于編程語言(諸如但不限于c#)的“IObserveable”接口等的數(shù)據(jù)集合,其提供一種用于基于推送的通知的通用機制,也被稱為觀察者設(shè)計模式。更具體而言,“IObservable"接口可暴露“IObserver"接口,其中“IObservableCD”表示發(fā)送通知的類(提供者)而“IObserverCD”表示接收通知的類(觀察者)。這里“T”表示通知的類或類型。數(shù)據(jù)處理系統(tǒng)100還包括集合處理器組件130,集合處理器組件130與可觀察集合110通信地耦合并被配置成對可觀察集合110執(zhí)行某種動作。例如,集合處理器組件130可對可觀察集合110執(zhí)行某種預處理以便于由識別器組件140進一步處理。識別器組件140與可觀察集合110通信地耦合并被配置成分析該可觀察集合并輸出識別的模式、錯誤或其它消息。如后面將進一步描述的,識別器組件140可利用在此之前被保留用于處理串、文件或其它基于拉取的或可枚舉的數(shù)據(jù)集合的解析器技術(shù)。除其它事項之外,識別器組件140提供的函數(shù)功能還能允許較低抽象層次的基于推送的數(shù)據(jù)間的模式被發(fā)現(xiàn)并被用來創(chuàng)建較高抽象層次的模式等。例如,假定在鼠標事件的事件流中,期望通過尋找模式“mouseover(鼠標在··上),···,mousemove(鼠標移動),mouseout(鼠標離開)”來檢測鼠標已被移動到某個控件上方。這種模式現(xiàn)在能被更高層次的抽象取代,諸如“鼠標在控件上方事件(mouseovercontrolevents)”。轉(zhuǎn)向圖2,詳細示出了代表性集合處理器組件130。如所示,集合處理器組件130包括組合器組件210和時間組件220。組合器組件210從兩個或更多個可觀察集合生成單一可觀察集合而不丟失信息。特別是,組合器組件210能夠為特定可觀察集合生成新項,其中該新項是用項的類或類型注釋的并包括由該項提供的相關(guān)聯(lián)數(shù)據(jù)。然后這個新項可被添加到包括來自多個不同的可觀察集合的項和相關(guān)聯(lián)數(shù)據(jù)的單一可觀察集合。作為示例而非限制,事件流可提供股票價格事件,而組合器組件210可從股票價格事件生成新的事件以被添加到記錄如下事實的流該事件是股票價格并包括諸如實際股票和價格等數(shù)據(jù)。用這種方式,該事件可在單一流中區(qū)別于從其它流(諸如例如提供與天氣相關(guān)的事件的流)提供的其它事件。更抽象而言,分別具有事件“A1”、“B1”和“Cl”的三個事件流“A”、“B”和“C”可被組合成包括事件“Al,,、“Bi”和“Cl,,的單一流“D”。時間組件220捕捉項時間。在任意時間推送到可觀察集合的數(shù)據(jù)項,以及項所提供的數(shù)據(jù)的重要性,可以是時間相關(guān)的(例如,提供項的時間,項之間的時間段……)。時間組件220可以以各種方式捕捉與項的供應(provisioning)相關(guān)聯(lián)的時間。在一個實例中,一旦從源接收到項之后,事件被接收的時間可被記錄并以某種方式添加到該事件。例如,可用時間戳注釋項。結(jié)果是,因為項之間的時間很容易被計算,所以捕捉數(shù)據(jù)項間的持續(xù)時間變得無關(guān)。暫時將注意力轉(zhuǎn)移到圖3A,時間由時間線300上的豎線或刻度表示且增量為1,并且項被示出為可觀察集合310的一部分。從時間線300確定的時間可被映射到可觀察集合310中的相應項。具體而言,第一項312可被注釋有時間“5”而第二項314可被注釋有時間“17”,其中第一項312和第二項314的發(fā)生之間的持續(xù)時間可被計算為這兩個時間之間的差,S卩,“12”個刻度或其它時間單位。在另一實施例中,時間組件220可將時間項注入到新的或現(xiàn)有的可觀察集合(例如,時間流)中。例如,時間項可表示與其它項相關(guān)的某個重要時間。作為示例,某一模式可指定兩個項是在一特定時間幀內(nèi)獲取的。更具體而言,如果項“M”在事件“B”的五分鐘內(nèi)出現(xiàn),則某一模式可指定匹配。圖:3B提供了這樣的時間表示情形的圖形表示。如所描繪的,有三個可觀察集合“集合1”320、“集合2”330和“集合3”340?!凹?”320包括“M”項并包括第一“M”項322和第二“M”項324。“集合2”330包括一個“F”項332,而“集合3”340包括單一時間項342。這里,時間項每五分鐘創(chuàng)建一次。給定指定“M”項在“F”項的五分鐘內(nèi)發(fā)生的模式,如果時間項“T”在“M”項和“F”項之間發(fā)生,則沒有匹配,而如果在“M”項和“F”項之間沒有時間項“T”發(fā)生,則有匹配。在圖3B中,第一“M”項322和第一“F”項332之間沒有匹配,因為時間項“T”342發(fā)生。然而,第二“M”項342和第一“F”項332之間有匹配,因為在這兩個項之間沒有時間項“T”。注意,無論實現(xiàn)如何,圖2的時間組件220可返回相同的結(jié)果。在第一實例中,時間戳之間的差可用來確定匹配。與之相對,可使用兩個項之間的生成的時間項的發(fā)生。參考圖4,示出了代表性識別器組件140。如同前面提到的,識別器組件140可被用來識別或以其它方式標識可觀察集合間的指定模式。依照一個實施例,識別器組件140可被實現(xiàn)成具有解析器組件410,解析器組件410在句法上分析項的發(fā)生以試圖定位特定模式。替代地,正則表達式組件420可利用正則表達式來標識指定的模式。再進一步,解析器組件410和正則表達式組件420兩者均可被使用,其中正則表達式組件420執(zhí)行詞法分析功能(lexingfunction)以生成權(quán)標并隨之將權(quán)標提供給解析器組件410以供其使用。相應地,要領(lǐng)會,解析器組件410能夠比正則表達式組件420檢測更復雜的模式。而且,解析器組件410和正則表達式組件420在性質(zhì)上是可組合且可合成的。具體而言,解析器組件410可被具體化為組合符解析器,其中解析器組合符(在一些上下文中被稱為運算符)被用來限定基本解析器,基本解析器又被用來構(gòu)建更復雜的解析器,該更復雜的解析器能被用來構(gòu)建愈加復雜的解析器。換言之,解析器能夠從原始或較不復雜的解析器逐段構(gòu)建。例如,考慮以下樣本解析器組合符Atom(原子)a->解析器aEmpty(空)解析器1Sequence(序列)解析器a解析器b->解析器a和bChoice(選擇)解析器b解析器c->解析器b或cStar(星)解析器b->解析器b*Try(嘗試)解析器b->解析器b這里,原語是“原子(Atom)”和“空(Empty)”。“原子”指示在給定值“a”的情況下用于該值的解析器可被返回,而“空”表示如果沒有輸入則可以返回返回“1”的解析器?!靶蛄?kquence)”采用用于“a”的解析器和用于“b”的解析器并返回用于“a”和“b”的解析器。“選擇(Choice)”采用用于“b”的解析器和用于“C”的解析器并返回用于“b”或“C”解析器。“星(Star)”采用用于“b”的解析器并返回用于表示為“b*”的另一“b”的解析器,這解決了遞歸問題。最后,“嘗試(Try)”采用用于“b”的解析器并返回用于“b”的另一解析器以允許連續(xù)搜索“b”。就正則表達式實現(xiàn)而言,可使用類似的組合符。而且,就正則表達式模式匹配而言,可生成確定性有限狀態(tài)機,該狀態(tài)機根據(jù)下一進入項而在各狀態(tài)之間轉(zhuǎn)換。然而,一般而言,期望重復識別同一模式。為了高效地完成這一動作,通過在下一進入值可開始一模式時開始一新的識別有限狀態(tài)機(或預先計算有限狀態(tài)機的并行合成),可使用Boyer-Moore串匹配算法的一種變型。然而,通過為每個合適的前綴“R”或模式“P”和每個字符“χeΣ”創(chuàng)建轉(zhuǎn)換“R->χ->S”,這可呈現(xiàn)有限字母表,其中“S”是模式“P”的最長的前綴,也是“Rx”的后綴。對可觀察集合工作的兩個結(jié)果是不能像傳統(tǒng)上對串、文件等所做的那樣使用任意回溯和前瞻。更具體而言,因為數(shù)據(jù)的項是在任意時間發(fā)出的,所以不能夠前瞻到尚未被提供的項。并且,回溯的量可能是無限的,因此不期望以傳統(tǒng)方式緩沖項以允許回溯。盡管如此,依照本發(fā)明的一個方面,在必要時可使用有限的前瞻和回溯。按照前瞻,通過對項的集合進行時移從而被評估的當前項不是最新的項,可以實現(xiàn)這一點。至于回溯,可以使用左因子提取。此處,如果例如解析器在不消費任何輸入的情況下失敗(而不是在某一值上獲得成功),則另一解析器可以“退回”或查看未消費的輸入。換言之,關(guān)于在不消費輸入的情況下的失敗,狀態(tài)信息可得以維護。暫時參考圖5,事件流500被示出為具有多個事件。在510處在沒有消費輸入的情況下失敗之后,未消費的事件520可被加到510處的失敗之后發(fā)生的事件之前,從而在某個點那些事件可被分析和消費。失敗的這種表示協(xié)助組合符解析器的逐段構(gòu)造,同時還允許對多個結(jié)果的標識,例如在有歧義的情況下??傮w上,不是允許傳統(tǒng)的無限的或無約束的回溯,對諸如事件等項的記錄或緩沖可被更精確地操縱(在何時開始和停止對未消費的項的緩沖方面)。而且,應當領(lǐng)會,解析器組件410可以是一元體(monad),或更具體而言是一元體式組合符解析器,用于可觀察集合,其中一元體是表示運算而不是數(shù)據(jù)的某一類型的抽象數(shù)據(jù)類型構(gòu)造器。作為實際上的副作用,其它一元體可被映射到一元體式組合符解析器,諸如一元體綜合(comprehension)或查詢綜合,所述綜合為對任意數(shù)據(jù)集合的過濾、變換、聯(lián)接、分組和聚集指定一元體式原語。因此,各種查詢運算符(例如,Where,klect,Join,Take,Skip...)或利用查詢運算符的查詢表達式可被用來以比否則會需要的形式更容易理解且更常見的形式表達解析器。在一種具體實現(xiàn)中,解析器可用語言集成查詢(LINQ)來指定,其中查詢運算符可被用來指定主編程語言(例如,C#,VisualBasic·...)內(nèi)的查詢表達式。更具體而言,識別器組件140可實現(xiàn)LINQ序列運算符從而識別器組件140可用LINQ查詢定義。對于解析器,一個重要的運算符可以是“choice(選擇),,:IParser<T>Choice<T>(thisIParser<T>left,IParser<T>right)(IParser<T>選擇<T>(此IParser<T>左側(cè),IParser<T>右側(cè)))若第一項(左側(cè))不消費任何輸入,則“choice”運算符對其第二選擇(右側(cè))求值。解析器“P.SelectMany(p),,的順序合成可跟蹤“P”是否已消費了輸入。圖6示出一種數(shù)據(jù)處理的系統(tǒng)600。發(fā)布者組件610和訂閱者組件620被包括在內(nèi)。依照發(fā)布者/訂閱者模型,發(fā)布者組件610發(fā)布數(shù)據(jù)或事件,而訂閱者組件620訂閱發(fā)布,指示從發(fā)布者組件610接收數(shù)據(jù)或事件的希望。而且,此處,訂閱者組件620可與服務組件630交互,服務組件630提供與過濾數(shù)據(jù)有關(guān)的功能。例如,服務組件630能生成諸如解析器和/或正則表達式等識別器組件140,識別器組件140可用來關(guān)于發(fā)布者組件610提供的基于推送的數(shù)據(jù)標識一個或多個模式。利用解析器或類似技術(shù)的能力能夠使得標識比關(guān)于發(fā)布者/訂閱者模型傳統(tǒng)上可用的更具體和更相關(guān)的信息。例如,過濾傳統(tǒng)上是很粗粒度的,諸如通過主題來過濾。然而,解析器能夠進行粒度精細得多的過濾或模式識別。依照一種實現(xiàn),服務組件630可以是網(wǎng)絡(luò)可訪問服務,諸如web服務。而且,服務組件630能基于訂閱者組件620提供的憑證來提供變化的功能,這可反映對不同特征的選擇,例如作為與服務相關(guān)聯(lián)的付費或非付費的結(jié)果。作為示例,除其它事項之外,還可針對要處理的事件的數(shù)量或要過濾掉的事件的數(shù)量的限制進行控制。此外,識別器組件140的復雜度更能被修改,而與有限回溯相關(guān)聯(lián)的存儲可被設(shè)定并調(diào)整到與特定憑證相對應的層次。換言之,服務可以任意或預定的層次被劃分和分配。已經(jīng)關(guān)于若干組件之間的交互描述了上述系統(tǒng)、架構(gòu)、環(huán)境等。應該理解,這樣的系統(tǒng)和組件可以包括這些組件或其中指定的子組件,某些指定的組件或子組件,和/或附加的組件。子組件也可以被實現(xiàn)為在通信上被耦合到其它組件而不是被包括在父組件中的組件。此外,一個或多個組件和/或子組件可以被組合成提供聚集功能的單個組件。系統(tǒng)、組件、和/或子組件之間的通信可以根據(jù)推送(push)和/或拉取(pull)模型來實現(xiàn)。各組件也可以與一個或多個其它組件進行交互,出于簡要考慮在此未具體描述這些其它組件,但本領(lǐng)域的技術(shù)人員均已知。此外,應該理解以上所公開的系統(tǒng)及以下方法的各部分可以包括或包含人工智能、機器學習或基于知識或規(guī)則的組件、子組件、進程、手段、方法或機制(例如,支持向量機、神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、貝葉斯信任網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎、分類器……)。這樣的組件和其它組件可以自動化其執(zhí)行的某些機制或進程,由此使得系統(tǒng)和方法的各部分更為自適應以及高效和智能。作為示例而非限制,識別器組件140能被實現(xiàn)為具有這樣的機制以能夠?qū)谕扑偷臄?shù)據(jù)進行模式的智能指定和標識??紤]到以上描述的示例性系統(tǒng),參考圖7-11的流程圖將可以更好地理解依照所公開的主題實現(xiàn)的方法。盡管為了說明簡潔起見,作為一系列框示出和描述了方法,但是,應該理解,所要求保護的主題不僅限于所描述框的順序,一些框可以按與此處所描繪和描述的不同的順序進行和/或與其它框并發(fā)地進行。此外,并非全部所示出的框都是實現(xiàn)下面所描述的方法所必需的。參考圖7,示出了數(shù)據(jù)處理的方法700。在附圖標記710,例如從一個或多個事件流獲取基于推送的數(shù)據(jù)。在標記720,可使用例如解析器和/或正則表達式分析數(shù)據(jù)。而且,在一種實現(xiàn)中,解析器能對應于從原始或較不復雜的解析器逐段構(gòu)建的組合符解析器。再進一步,在標號720處的事件分析可采用最多有限的回溯和/或前瞻。例如,可利用左因子提取,從而如果解析器在不消費任何輸入的情況下失敗(而不是在一值上獲得成功),則另一解析器能“退回”或查看未消費的輸入。在附圖標記730,可將作為該分析動作的結(jié)果而標識的任何模式標識或以其它方式輸出到感興趣實體。依照本發(fā)明的一個方面,可利用較低抽象層次的所發(fā)現(xiàn)的模式來創(chuàng)建較高抽象層次的可觀察集合。例如,“mouseover(鼠標在…上),mousemove(鼠標移動),mouseout(鼠標離開),,可由"mousepassed(鼠標通過)”取代。圖8是集合組合的方法的流程圖800。在附圖標記810,可獲取兩個或更多個可觀察數(shù)據(jù)集合。在標號820,可從兩個或更多個集合生成單一集合,其中所述兩個或更多個集合包括具有類型和數(shù)據(jù)的項。換言之,有關(guān)項的類型或種類的信息可被添加到項(包括項數(shù)據(jù))以使得來自兩個或更多個集合的項能在單一可觀察集合中彼此區(qū)分。用這種方式,分析來自跨多個集合的項的問題可被簡化為分析單一可觀察集合中的項。換言之,多個集合或流變得與分析項無關(guān)。圖9描繪了捕捉項時間的方法900。在附圖標記910,例如從基于推送的數(shù)據(jù)源可獲取基于推送的項。在920,確定項被接收的時間。在附圖標記930,可用所確定的時間注釋或以其它方式標記獲取的項。換言之,方法900可對項添加時間戳。用這種方式,持續(xù)時間變得無關(guān),因為可以按照時間戳之間的差很容易地將其計算出來。圖10示出了捕捉項時間的方法1000。在附圖標記1010,時間可被確定。在本實例中,可以以一個或多個預定間隔確定時間,預定間隔可與一個或多個基于推送的項相關(guān)。在標記1020,可在所確定的時間將時間項添加到可觀察集合。換言之,時間項被添加到可觀察集合以反映持續(xù)時間的流逝(例如,5分鐘)。作為示例而非限制,在事件的上下文中,如果某一模式指定第一事件在第二事件的五分鐘內(nèi)發(fā)生,則可每五分鐘將一時間事件插入流。為了確定是否存在匹配模式,分析可確定在第一和第二事件之間是否發(fā)生一時間事件。如果在兩個事件之間存在時間事件,則沒有匹配,因為已經(jīng)過去了超過5分鐘。然而,如果時間事件不存在,則存在匹配,因為在第一和第二事件的發(fā)生之間過去了5分鐘或小于5分鐘。圖11是數(shù)據(jù)處理的方法的流程圖1100。在附圖標記1110,接收、檢索或以其它方式獲得或獲取與所需信息有關(guān)的信息。例如,可接收查詢,該查詢聲明性地指定信息或興趣。在附圖標記1120,可從在1110接收的信息生成模式識別器。在一個實施例中,模式識別器可對應于組合符解析器,附加的或替代地,正則表達式可指定要匹配的模式。在附圖標記1130,在1120生成的模式識別器可被用來相對于諸如事件流等可觀察集合識別所需的信息。而且,應當領(lǐng)會,生成的識別器的復雜度和使用的方式(例如,處理的事件、過濾的事件、利用的存儲……)可被調(diào)整以使得功能能被控制并潛在地貨幣化(例如,購買對某些或全部功能的權(quán)利)。所公開的主題的各方面與至少表面上看上去類似的一些傳統(tǒng)技術(shù)——即對XML(可擴展標記語言)的基于推送和基于拉取的解析以及復雜的事件處理、流和數(shù)據(jù)庫上下文中的連續(xù)查詢——不同。XML的基于推送和基于拉取的解析指的是解析器與其消費者通信的方式。更具體而言,流式拉取解析指的是一種編程模型,在該編程模型中客戶機應用在需要與XML信息集(將XML文檔表示為一組信息項的抽象數(shù)據(jù)模型)交互時對XML解析庫調(diào)用方法。艮口,客戶機只在顯式請求XML數(shù)據(jù)時取得(拉取)XML數(shù)據(jù)。另一方面,流式推送解析是指一種編程模型,在該編程模型中,當XML解析器遇到XML信息集中的元素時,XML解析器將XML數(shù)據(jù)發(fā)送(推送)至客戶機。即,無論那時候客戶機是否準備好使用數(shù)據(jù),解析器均發(fā)送數(shù)據(jù)。本公開涉及識別可觀察集合中的模式的機制,而不是對涉及枚舉集合(例如,存儲器內(nèi)集合)的模式的傳統(tǒng)解析和識別。復雜事件處理(CEP)、流以及連續(xù)查詢在數(shù)據(jù)庫社區(qū)中很常見。那里的模型是對表(tables)進行查詢的模型,其中新的行被不斷地添加到該表中以及從該表中除去。然而,查詢通常是對表而不是直接對事件流進行的。與傳統(tǒng)解析和正則表達式匹配相比,可觀察集合面臨的一個問題是異步性使得回溯或緩沖輸入困難或不可能。而且,因為可觀察集合是基于推送的,前瞻輸入是不實際的,而前瞻輸入對于傳統(tǒng)識別器是很常見的。相應地,需要在有有限回溯或前瞻或沒有回溯或前瞻的情況下識別模式。此處使用的術(shù)語“組件”和“系統(tǒng)”及其各種形式旨在表示與計算機相關(guān)的實體,其可以是硬件、硬件和軟件的組合、軟件、或執(zhí)行中的軟件。例如,組件可以是但不限于是,在處理器上運行的進程、處理器、對象、實例、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機。作為說明,在計算機上運行的應用和計算機都可以是組件。一個或多個組件可以駐留在進程和/或執(zhí)行線程中,并且組件可以位于一個計算機內(nèi)和/或分布在兩個或更多的計算機之間。在本文中使用的詞語“示例性”或其各種形式意味著用作示例、實例或說明。在此被描述為“示例性”的任何方面或設(shè)計并不一定要被解釋為相比其它方面或設(shè)計更優(yōu)選或有利。此外,各示例只是出于清楚和理解的目的來提供的并且并不意味著以任何方式限制或約束所要求保護主題或本發(fā)明的相關(guān)部分??梢岳斫?,本來可呈現(xiàn)不同范圍的多個附加或替換示例,但出于簡明的目的已被省略。如此處所使用,術(shù)語“推論”或“推斷”通常指的是從經(jīng)由事件和/或數(shù)據(jù)捕捉的一組觀察結(jié)果來推理或推斷系統(tǒng)、環(huán)境、和/或用戶的狀態(tài)的過程。可以使用推斷來標識特定上下文或動作,也可以生成例如狀態(tài)上的概率分布。推斷可以是概率性的,即,基于對數(shù)據(jù)和事件的考慮,運算在感興趣狀態(tài)上的概率分布。推斷也可以是指用于從一組事件和/或數(shù)據(jù)構(gòu)成較高級別的事件的技術(shù)。這樣的推斷導致從一組觀察到的事件和/或存儲的事件數(shù)據(jù)構(gòu)建新的事件或動作,不管事件在時間上是否緊密相關(guān),以及事件和數(shù)據(jù)是來自一個還是多個事件和數(shù)據(jù)源??刹捎酶鞣N分類方案和/或系統(tǒng)(例如,支持向量機、神經(jīng)網(wǎng)絡(luò)、專家系統(tǒng)、貝葉斯信任網(wǎng)絡(luò)、模糊邏輯、數(shù)據(jù)融合引擎……)來執(zhí)行關(guān)于所要求保護主題的自動化和/或推斷的動作。而且,對于在詳細描述或權(quán)利要求書中使用術(shù)語“包括”、“包含”、“具有”、“含有”或其它形式的變型而言,這樣的術(shù)語旨在以類似于術(shù)語“包括”的方式體現(xiàn)包含性,如同“包括”在用作權(quán)利要求書中的過渡詞時所解釋的那樣。為了為所要求保護主題提供上下文,圖12以及以下討論旨在提供對其中可以實現(xiàn)本主題的各方面的合適環(huán)境的簡要、概括描述。然而,合適的環(huán)境只是示例并且并非旨在對使用范圍或功能提出任何限制。盡管能夠在可以在一臺或多臺計算機上運行的程序的計算機可執(zhí)行指令的一般上下文中描述以上公開的系統(tǒng)和方法,但是,本領(lǐng)域的技術(shù)人員將認識到,各方面也可以與其它程序模塊等相結(jié)合地實現(xiàn)。一般而言,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件和數(shù)據(jù)結(jié)構(gòu)等。此外,本領(lǐng)域技術(shù)人員可以理解,上述系統(tǒng)和方法可用各種計算機系統(tǒng)配置實現(xiàn),包括單處理器、多處理器或多核處理器計算機系統(tǒng)、小型計算設(shè)備、大型計算機、以及個人計算機、手持式計算設(shè)備(例如,個人數(shù)字助理(PDA)、電話、手表……)、基于微處理器或可編程消費者或工業(yè)電子設(shè)備等。各方面也可以在其中任務由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的分布式計算環(huán)境中實現(xiàn)。然而,所要求保護主題的某些方面,如果不是所有方面的話,可以在獨立計算機上實施。在分布式計算環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設(shè)備中的一個或兩者中。參考圖12,示出了示例性通用計算機1210或計算設(shè)備(例如,臺式機、膝上型計算機、服務器、手持式設(shè)備、可編程消費或工業(yè)電子產(chǎn)品、機頂盒、游戲系統(tǒng)……)。計算機1210包括一個或多個處理器1220、系統(tǒng)存儲器1230、系統(tǒng)總線1M0、大容量存儲1250、以及一個或多個接口組件1270。系統(tǒng)總線1240與至少上述系統(tǒng)組件通信地耦合。然而,可以理解,在其最簡單的形式中,計算機1210可包括耦合到系統(tǒng)存儲器1230的一個或多個處理器1220,該一個或多個處理器執(zhí)行各種計算機可執(zhí)行動作、指令和/或組件。處理器1220可以用通用處理器、數(shù)字信號處理器(DSP)、應用專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯設(shè)備、分立門或晶體管邏輯、分立硬件組件或被設(shè)計為執(zhí)行此處描述的功能的其任意組合來實現(xiàn)。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何處理器、控制器、微控制器、或狀態(tài)機。處理器1220還可被實現(xiàn)為計算設(shè)備的組合,例如DSP和微處理器的組合、多個微處理器、多核處理器、結(jié)合一個DSP核的一個或多個微處理器、或任何其它這種配置。計算機1210可包括各種計算機可讀介質(zhì)或以其它方式與各種計算機可讀介質(zhì)交互以便于控制計算機1210來實現(xiàn)所要求保護主題的一個或多個方面。計算機可讀介質(zhì)可以是能由計算機1210訪問的任何可用介質(zhì),并包含易失性和非易失性介質(zhì)以及可移動、不可移動介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息的任意方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,存儲器設(shè)備(例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)……)、磁存儲設(shè)備(例如,硬盤、軟盤、磁帶盒、磁帶……)、光盤(例如,緊致盤(CD)、數(shù)字多功能盤(DVD)……)、以及固態(tài)設(shè)備(例如,固態(tài)驅(qū)動器(SSD)、閃存驅(qū)動器(例如,卡、棒、鍵驅(qū)動器……)……)、或者可用于存儲所需信息并且可由計算機1210訪問的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”是指具有以在信號中編碼信息的方式被設(shè)定或改變其一個或多個特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學、RFjl外及其它無線介質(zhì)之類的無線介質(zhì)。上述的任意組合也應包含在計算機可讀介質(zhì)的范圍內(nèi)。系統(tǒng)存儲器1230和大容量存儲1250都是計算機可讀存儲介質(zhì)的示例。取決于計算設(shè)備的確切配置和類型,系統(tǒng)存儲器1230可以是易失性的(例如RAM)、非易失性的(例如ROM、閃存……)或是兩者的某種組合。作為示例,基本輸入/輸出系統(tǒng)(BIOS),包括諸如在啟動期間在計算機1210內(nèi)的元件之間傳輸信息的基本例程,可被存儲在非易失性存儲器中,而易失性存儲器可擔當外部高速緩存存儲器以便于處理器1220的處理等。大容量存儲1250包括相對于系統(tǒng)存儲器1230來說用于存儲大量數(shù)據(jù)的可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。例如,大容量存儲1250包括但不限于,諸如磁盤或光盤驅(qū)動器、軟盤驅(qū)動器、閃存存儲器、固態(tài)驅(qū)動器、或記憶棒的一個或多個設(shè)備。系統(tǒng)存儲器1230和大容量存儲1250可包括或其中存儲有操作系統(tǒng)1沈0、一個或多個應用1沈2、一個或多個程序模塊1264和數(shù)據(jù)1266。操作系統(tǒng)1260用于控制和分配計算機1210的資源。應用1262包括系統(tǒng)和應用軟件中的一個或兩者,并且可通過存儲在系統(tǒng)存儲器1230和/或大容量存儲1250中的程序模塊1264和數(shù)據(jù)1266來利用操作系統(tǒng)1260對資源的管理以執(zhí)行一個或多個動作。因此,應用1262可根據(jù)由此提供的邏輯來將通用計算機1210變成專用機器。所要求保護主題的全部或各部分可以使用產(chǎn)生控制計算機以實現(xiàn)所公開功能的軟件、固件、硬件或其任意組合的標準編程和/或工程技術(shù)來實現(xiàn)。作為示例而非限制,集合處理器組件130和識別器組件140可以是應用1262或形成應用1262的一部分,并且包括存儲在存儲器和/或大容量存儲1250中的一個或多個模塊1264和數(shù)據(jù)1266,其功能可以在由所示的一個或多個處理器1220執(zhí)行時實現(xiàn)。計算機1210還包括通信地耦合到系統(tǒng)總線1240并方便與計算機1210的交互的一個或多個接口組件1270。作為示例,接口組件1270可以是端口(例如,串行、并行、PCMCIA、USB、火線……)或接口卡(例如,聲音、視頻……)等等。在一個示例實現(xiàn)中,接口組件1270可被具體化為用戶輸入/輸出接口,該用戶輸入/輸出接口使得用戶能夠通過一個或多個輸入設(shè)備(例如,諸如鼠標的指向設(shè)備、跟蹤球、指示筆、觸摸墊、鍵盤、話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀、相機、其它計算機……)來將命令和信息輸入到計算機1210中。在另一示例實現(xiàn)中,接口組件1270可被具體化為輸出外圍接口,該輸出外圍接口向顯示器(例如,CRT、LCD、等離子……)、揚聲器、打印機和/或其它計算機等提供輸出。此外,接口組件1270可被具體化為網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口使得能夠諸如通過有線或無線通信鏈路與其它計算設(shè)備(未示出)通信。以上所已經(jīng)描述的內(nèi)容包括所要求保護主題的各方面的示例。當然,出于描繪所要求保護主題的目的而描述每一個可以想到的組件或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應該認識到,所要求保護主題的許多進一步的組合和排列都是可能的。從而,所公開的主題旨在涵蓋落入所附權(quán)利要求書的精神和范圍內(nèi)的所有這樣的變更、修改和變化。權(quán)利要求1.一種處理可觀察集合的方法,包括利用被配置成執(zhí)行存儲在存儲器中的計算機可執(zhí)行指令的至少一個處理器來執(zhí)行以下動作用組合符解析器對一個或多個可觀察集合執(zhí)行句法分析。2.如權(quán)利要求1所述的方法,其特征在于,還包括將多個可觀察集合組合為單一可觀察集合,其中所述單一可觀察集合的項包括項類型和數(shù)據(jù)。3.如權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)查詢表達式來生成所述組合符解析器。4.如權(quán)利要求1所述的方法,其特征在于,執(zhí)行句法分析而不回溯。5.如權(quán)利要求1所述的方法,其特征在于,維護與在不消費所述一個或多個可觀察集合的項的情況下的解析器失敗相對應的狀態(tài)信息。6.一種數(shù)據(jù)處理系統(tǒng),包括耦合到存儲器的處理器,所述處理器被配置成執(zhí)行以下存儲在所述存儲器中的計算機可執(zhí)行組件被配置成發(fā)現(xiàn)關(guān)于一個或多個可觀察集合的模式的組合符解析器組件。7.如權(quán)利要求6所述的系統(tǒng),其特征在于,還包括被配置成將來自所述一個或多個可觀察集合中的兩個或更多個可觀察集合的項組合為單一可觀察集合的第二組件。8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述組合符解析器是至少部分基于查詢表達式生成的。9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述組合符解析器被配置成標識模式而不回溯。10.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述組合符解析器被配置成維護與在不消費輸入的情況下的解析器組合符失敗相對應的狀態(tài)。全文摘要本發(fā)明涉及解析可觀察集合。解析技術(shù)被應用于可觀察集合。更具體而言,諸如組合符解析器等解析器能被用來對一個或多個可觀察集合執(zhí)行句法分析。進而,多個可觀察集合可被組合為單一集合且可通過注釋集合項或生成時間項來捕捉時間。文檔編號G06F9/30GK102402420SQ201110321768公開日2012年4月4日申請日期2011年10月10日優(yōu)先權(quán)日2010年10月14日發(fā)明者D·J·P·萊延,H·J·M·梅杰,J·W·戴爾申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
禹州市| 吴江市| 清涧县| 酒泉市| 桃园市| 江口县| 威海市| 桦甸市| 康平县| 礼泉县| 那曲县| 繁昌县| 米林县| 那坡县| 垣曲县| 通化县| 弋阳县| 永修县| 藁城市| 屯留县| 云安县| 包头市| 广汉市| 犍为县| 苏州市| 察隅县| 门源| 肃南| 凯里市| 四子王旗| 常宁市| 西峡县| 隆昌县| 金山区| 泰和县| 郸城县| 松溪县| 贵南县| 扬中市| 会理县| 黄大仙区|