專利名稱:以串行二進制格式存儲文檔的系統(tǒng)和方法
背景技術:
寫字板式PC一般允許用戶在屏幕上直接繪圖或書寫。這種繪圖或書寫一般稱為“墨跡(inking)”。墨跡是一種用戶輸入類型,并且包括觸摸屏和用戶使用計算筆在屏幕上書寫,就好象用傳統(tǒng)的筆與紙書寫一樣。墨跡用于各種各樣應用。例如,墨跡可用于繪圖應用,繪畫應用,字處理應用,信用卡簽名應用等等。
墨跡不僅可包括筆畫的可視表示;它可包括數(shù)據(jù)類型。盡管數(shù)據(jù)結構是已知的,但用于存儲信息的數(shù)據(jù)結構大小可變得過分大和麻煩。此外,程序之間文檔結構的兼容性增加了計算機的效率和通用性。然而,在用戶希望將墨跡數(shù)據(jù)從一個應用傳送到另一個墨跡應用時,兼容性是一個問題。
發(fā)明內(nèi)容
通常,本發(fā)明的諸方面涉及產(chǎn)生文檔結構和以串行二進制格式存儲文檔結構的系統(tǒng)和方法。本發(fā)明還涉及產(chǎn)生墨跡文檔結構和存儲墨跡文檔結構使得它可由其它應用訪問的系統(tǒng)和方法。本發(fā)明還涉及用于修改或改變墨跡一部分而不要求重新分析整個墨跡的系統(tǒng)和方法。
本發(fā)明的諸方面涉及一種計算機可讀介質,具有用于以串行化二進制格式存儲文檔數(shù)據(jù)的數(shù)據(jù)結構,使得文檔數(shù)據(jù)對于其它應用是可訪問的。產(chǎn)生文檔結構,它包括根節(jié)點數(shù)據(jù)。以串行二進制數(shù)據(jù)格式存儲該文檔。串行二進制格式包括在第一數(shù)據(jù)域中存儲與文檔結構相關聯(lián)的大小數(shù)據(jù)。串行二進制格式還包括在第二數(shù)據(jù)域中存儲文檔描述符數(shù)據(jù),其中,文檔結構描述符數(shù)據(jù)包括至少一個用于指示數(shù)據(jù)預期對象的標志。串行二進制格式還包括在第三數(shù)據(jù)域中存儲根節(jié)點數(shù)據(jù),其中,根節(jié)點數(shù)據(jù)是由所述標志中至少一個指示的。
本發(fā)明的其它方面涉及一種計算機實現(xiàn)的方法,用于以串行化格式存儲二進制樹結構。該計算機實現(xiàn)的方法包括在第一數(shù)據(jù)域中存儲文檔結構大小數(shù)據(jù)。該計算機實現(xiàn)的方法還包括在第二數(shù)據(jù)域中存儲文檔結構描述符數(shù)據(jù),其中文檔結構描述符數(shù)據(jù)包括至少一個指示數(shù)據(jù)預期對象的標志。該計算機實現(xiàn)的方法還包括在第三數(shù)據(jù)域中存儲根節(jié)點數(shù)據(jù),其中根節(jié)點數(shù)據(jù)是由所述標志中至少一個指示的。
本發(fā)明的又一方面涉及一種計算機可讀介質,具有存儲在其上的計算機可執(zhí)行指令。所述指令包括產(chǎn)生墨跡文檔結構,其中墨跡文檔結構包括至少一個根節(jié)點。所述指令還包括以串行二進制格式存儲墨跡文檔結構。串行二進制格式包括在第一數(shù)據(jù)域中存儲與墨跡文檔結構相關聯(lián)的大小數(shù)據(jù)。串行二進制格式還包括在第二數(shù)據(jù)域中存儲墨跡文檔描述符數(shù)據(jù),其中,墨跡文檔結構描述符數(shù)據(jù)包括至少一個用于指示數(shù)據(jù)預期對象的標志。串行二進制格式還可包括在第三數(shù)據(jù)域中存儲根節(jié)點數(shù)據(jù),其中根節(jié)點數(shù)據(jù)是由所述標志中至少一個指示的。
圖1例示可在本發(fā)明的一個方面中使用的示例性計算設備。
圖2例示可在本發(fā)明的一個方面中使用的示例性移動設備。
圖3例示用于以串行二進制格式存儲墨跡文檔數(shù)據(jù)的系統(tǒng)的一個示例性方面。
圖4例示按照本發(fā)明一個方面的示例性墨跡。
圖5例示表示圖4中所示墨跡的一部分的示例性墨跡文檔結構。
圖6例示按照本發(fā)明諸方面的用于存儲串行二進制數(shù)據(jù)塊的數(shù)據(jù)結構。
圖7例示按照本發(fā)明諸方面的用于存儲上下文節(jié)點數(shù)據(jù)的數(shù)據(jù)結構。
圖8例示一個流程圖,描繪以串行二進制格式存儲墨跡文檔結構的一般方面。
具體實施例方式
現(xiàn)在將參考附圖更詳細地描述本發(fā)明的實施例,這些附圖構成本發(fā)明的一部分,并且作為例示,示出用實踐本發(fā)明的特定示例性實施例。然而,本發(fā)明可以用許多不同形式來具體化,并且不應當解釋為受限于在此闡述的實施例;相反,提供這些實施例是為了本說明書的全面與完整,并且將充分地向本領域熟練技術人員傳達本發(fā)明的范圍。尤其是,本發(fā)明可以具體化為方法或設備。因此,本發(fā)明可采用全部硬件實施例、全部軟件實施例或者組合軟硬件方面的實施例的形式。因此不是在限制意義上采用下面的詳細描述。
以串行二進制格式存儲數(shù)據(jù)的方法與系統(tǒng)的說明性實施例本發(fā)明一般涉及產(chǎn)生墨跡文檔結構和存儲墨跡文檔結構使得其它應用能夠訪問它的系統(tǒng)和方法。更明確地,本發(fā)明涉及以串行二進制格式存儲數(shù)據(jù)以增加存儲效率的系統(tǒng)和方法。本發(fā)明還涉及修改或改變墨跡一部分而不要求重新分析整個墨跡的系統(tǒng)和方法。即使在此闡述的說明引用了存儲和加載墨跡文檔,但在此引用的串行二進制格式也可用于存儲其它類型的數(shù)據(jù)。例如,本發(fā)明可包括與字處理應用、電子表格應用、繪圖應用、圖形應用、筆記應用、圖片應用等等相關聯(lián)的數(shù)據(jù)。簡潔地說,串行二進制格式可用于存儲與二進制樹結構相關聯(lián)的任何類型數(shù)據(jù)。
1.墨跡應用的說明性實施例作為本發(fā)明一個方面的一般上下文,墨跡應用可在用戶使用筆輸入數(shù)據(jù)時提供實時的可視化反饋。然而,墨跡可包括比筆畫的可視化多得多的內(nèi)容;它可包括數(shù)據(jù)類型。用戶可建立應用,用于支持筆、墨跡、墨跡分析和墨跡識別的各種層次功能的數(shù)字轉換器。這類應用范圍從識別簡單的文本輸入到創(chuàng)建和編輯復雜的墨跡文檔。
墨跡應用也可包括墨跡到文本的轉換。在有些情況下,應用可不接受直接的墨跡輸入。在這樣一種情況下,墨跡應用可實現(xiàn)手寫識別和將墨跡轉換成文本,使得它可以剪切和粘貼到不接受直接墨跡輸入的應用中。應用也可識別有關其它文檔對象的墨跡對象及其上下文。其它實施例允許用戶操縱墨跡并且使用墨跡來編寫豐富文檔,它包括文本、圖形、矢量形狀、多媒體對象等等。這類實施例將墨跡作為具有回流(reflow)和疊加(overlie)墨跡對象的數(shù)據(jù)類型來處理。
墨跡輸入可與原始墨跡數(shù)據(jù)形式的應用相關聯(lián)。在一個實施例中,原始墨跡數(shù)據(jù)可發(fā)送到墨跡分析器來處理原始墨跡數(shù)據(jù),并且產(chǎn)生可與原始墨跡數(shù)據(jù)分離的墨跡文檔結構。墨跡分析器可實現(xiàn)分析和識別過程,以便將原始墨跡數(shù)據(jù)分成可管理的筆畫組件。如下面更完整地闡述的,在一個實施例中,墨跡分析器可產(chǎn)生具有二進制樹的墨跡文檔結構,其中樹的每個節(jié)點定義與原始墨跡數(shù)據(jù)各部分的關系。墨跡文檔結構允許將與平臺相關聯(lián)的墨跡應用與原始墨跡數(shù)據(jù)和墨跡文檔結構相關,以便加載原始墨跡和相關聯(lián)的墨跡文檔結構。墨跡文檔結構還允許用戶加載和修改墨跡,不要求重新分析整個墨跡文檔。而且,本發(fā)明允許在一個平臺上的多個應用之間共享墨跡。
圖3表示以串行二進制格式存儲墨跡文檔數(shù)據(jù)的系統(tǒng)的一個示例性實施例的一般概觀。如所示的,系統(tǒng)300包括數(shù)字轉換器302、應用304和墨跡分析器306。數(shù)字轉換器302可包括結合圖1描述的計算設備。數(shù)字轉換器302也可包括結合圖2描述的移動計算設備。在一個實施例中,數(shù)字轉換器包括平板式PC數(shù)字轉換器,它運行來自MICROSOFT CORPORATION(總部在華盛頓州雷蒙德)的WINDOWSXP TABLET PC EDITION(寫字板式PC版本)。然而,數(shù)字轉換器302可包括促進墨跡應用操作的任何設備。
數(shù)字轉換器302數(shù)字化用戶輸入的筆畫(例如書寫和/或繪圖的筆畫),將數(shù)據(jù)存儲在原始數(shù)據(jù)存儲308中。原始數(shù)據(jù)存儲308是任何類型的能夠保存來自數(shù)字轉換器302的存儲。原始數(shù)據(jù)存儲308可與一或多個應用和/或一或多個平臺相關聯(lián)。在另一個實施例中,數(shù)字轉換器302旁路原始數(shù)據(jù)存儲308并將數(shù)字化的數(shù)據(jù)傳輸給應用304。
應用304可包括任何與平臺相關聯(lián)的應用。在一個實施例中,應用304是促進墨跡的應用。應用304可包括字處理應用、繪畫應用、制圖應用、繪圖應用、信用卡簽名應用等等。在一個實施例中,應用304包括來自MICROSOFTCORPORATION(微軟公司)的InkEdit、InkPicture和/或OneNote。在另一個實施例中,應用304能夠執(zhí)行保存操作和加載操作。保存操作可包括保存墨跡數(shù)據(jù)和非墨跡數(shù)據(jù)。應用304可將原始墨跡數(shù)據(jù)保存在原始數(shù)據(jù)存儲308中,并且應用304可將墨跡文檔結構保存到與平臺相關聯(lián)的墨跡分析器。在加載操作中,應用304可加載和綜合墨跡文檔結構和原始墨跡數(shù)據(jù),如將在下面進一步闡述的。
墨跡分析器306可配置為從應用304接收原始墨跡數(shù)據(jù)。墨跡分析器306被配置為在原始墨跡數(shù)據(jù)上執(zhí)行結構分析,以便產(chǎn)生墨跡文檔結構。結構分析可包括原始數(shù)據(jù)的分析和原始數(shù)據(jù)的識別。
在一個實施例中,結構分析可促進文本識別,書寫和繪圖分類以及布局分析。墨跡分析器306可包括分析組件和識別器組件,它們協(xié)同工作以增強文本識別。例如,分析器可執(zhí)行作為在將墨跡發(fā)送到識別器之前的預處理步驟的操作。預處理允許分析器分析和“清除”多行墨跡并且將它發(fā)送到識別器,一次一個小包(parcle)。小包可包括墨跡文檔的一部分。分析器可進一步配置成糾正不正確的輸入筆畫順序信息,以保證識別所有筆畫而不管輸入的順序。而且,分析器可產(chǎn)生有關相鄰行的信息。例如,兩個以項目符號開始相鄰行是當前行以項目符號開始的強指示符。
在另一個實施例中,墨跡分析器306的分析操作也可包括將墨跡分類為繪圖或書寫。書寫可包括有利于字的任何墨跡筆畫。繪圖筆畫可包括不是書寫筆畫的任何筆畫。例如,參考圖4,筆畫“H”可包括書寫筆畫,而“下畫線”可包括繪圖筆畫。以這種方式,按照一個實施例,書寫筆畫是發(fā)送給識別器的最合適筆畫。
在墨跡分析器306的又一個實施例中,布局分析包括相對于彼此和非墨跡數(shù)據(jù)的書寫和繪圖筆畫的分解。一旦墨跡分析器306分析了墨跡的筆畫,就可產(chǎn)生這些筆畫的樹表示(即墨跡文檔結構)。簡潔地說,墨跡分析器306可包括任何類型的能夠以二進制樹存儲文檔并且使二進制樹能夠由其它應用通過串行二進制格式訪問的分析器。雖然在此參考墨跡文檔結構來描述串行二進制格式,但是串行二進制格式也可用于存儲任何類型的與文檔樹結構相關聯(lián)的信息。
一旦墨跡分析器306已經(jīng)基于原始數(shù)據(jù)產(chǎn)生了墨跡文檔結構,就使墨跡文檔結構可用于應用304。墨跡文檔結構可包括活的墨跡文檔結構。當激起存儲操作時,應用請求墨跡分析器306存儲墨跡文檔結構。因為墨跡分析器306是平臺組件,所以墨跡文檔結構可用于其它墨跡應用。例如,如果用戶在字處理文檔中產(chǎn)生墨跡,則該墨跡可剪切并粘帖到繪圖應用,而不必重新分析。在本例中,繪圖應用將理解如何從墨跡文檔結構產(chǎn)生最初的墨跡。而且,由于以串行二進制格式分析和保存墨跡(下面討論),因此墨跡可修改并有效地存儲而不要求重新分析整個墨跡。修改的部分可對應于墨跡文檔結構的一個單個小包,并且因此,僅要求重新分析被改變的小包。
通常,在加載操作期間,應用304可加載原始墨跡數(shù)據(jù)、非墨跡數(shù)據(jù)和墨跡文檔結構。原始墨跡數(shù)據(jù)可從原始數(shù)據(jù)存儲308加載。非墨跡數(shù)據(jù)也可從原始數(shù)據(jù)存儲308加載。然而,預期非墨跡數(shù)據(jù)可從與應用304相關聯(lián)的任何存儲加載。墨跡文檔結構可從墨跡分析器306加載,墨跡分析器306是一個平臺組件。在一個實施例中,應用304將原始數(shù)據(jù)與墨跡文檔結構相關聯(lián),使得墨跡被加載而不要求重新分析。
圖4表示按照本發(fā)明一個方面的示例性墨跡400。墨跡400可與文本、繪圖、表格、圖表等等相關聯(lián)。而且,墨跡400可包括各種類型的書寫、繪畫、形狀、語言、符號和歪斜(skew)。如下面更完整地描述的,墨跡400可包括多個輸入,它們與多個墨跡文檔結構的節(jié)點相關。例如,參考編號402表示書寫區(qū)域。
如另一個示例,參考編號404表示對齊級別。如圖4所示,墨跡400的第一和最后一行目的是同一級別,并且因此表示對齊級別404。墨跡400的中間行向內(nèi)縮進,并且因此,表示另一個對齊級別。
在又一示例中,參考編號406表示一個段落而參考編號408表示一行。墨跡400還包括字410,并且盡管未示出,字410也可包括筆畫。筆畫可包括一個字的一部分。
圖5表示示例性墨跡文檔結構500。示例性墨跡文檔結構500與示例性墨跡400相關。墨跡文檔結構500只是墨跡文檔結構的一個示例??蓪崿F(xiàn)任何類型的便于數(shù)據(jù)結構表示的樹結構。墨跡文檔結構500包括多個節(jié)點,諸如根節(jié)點501、書寫區(qū)域節(jié)點502、對齊級別節(jié)點504、段落節(jié)點506、行節(jié)點508、字節(jié)點510和/或筆畫節(jié)點(未示出)。墨跡文檔結構500也可包括繪圖節(jié)點512、提示節(jié)點514和一或多個鏈接。
在圖4中,繪圖412是名字“Mr.Bhattacharyay”的下畫線。繪圖412在圖5中由繪圖節(jié)點512表示。由于繪圖412與字“Mr.”和“Bhattacharyay”相關聯(lián),繪圖節(jié)點512和字節(jié)點510與511通過如圖5描繪的鏈接相關聯(lián)。同樣,參考編號414表示一種類型的提示。在一個實施例中,提示414包括提示框。提示414可表示輸入是數(shù)字、字母、符號、結構、代碼、順序等等。例如,在圖4中,提示可包括一個提示,即輸入是不大于三位數(shù)的數(shù)字。因此,墨跡分析器將不會將“5”誤作“S”。由于提示414與書寫“35”相關聯(lián),因此提示節(jié)點514可通過圖5描繪的鏈接與字節(jié)點515相關聯(lián)。上面的示例是示例性,并且僅僅為了描述。
以這種方式,墨跡400可通過節(jié)點表示為墨跡文檔結構500。例如,筆畫節(jié)點(未示出)可以是字節(jié)點510的子節(jié)點。字節(jié)點510可以是行節(jié)點508的子節(jié)點,而行節(jié)點508可以是段落節(jié)點506的子節(jié)點。同樣,段落節(jié)點506可以是對齊級別節(jié)點504的子節(jié)點,而對齊級別節(jié)點504可以是書寫區(qū)域節(jié)點502的子節(jié)點。以這種方式,根節(jié)點501可包含所有其子節(jié)點的信息。在一個實施例中,整個墨跡400可關于根節(jié)點501來表示。任意數(shù)量的節(jié)點可與任何類型的文檔相關聯(lián),只要它們便于文檔以文檔樹結構來表示。
2.墨跡文檔串行化圖6表示一個示例性實施例,用于在內(nèi)部以串行二進制格式600存儲文檔結構。雖然在此參考墨跡文檔結構,但串行二進制格式600可用于存儲任何類型的樹文檔結構。當產(chǎn)生墨跡文檔結構時,將存在與文檔結構相關的一或多個串。在一個實施例中,壓縮包括這些串的Lempel-Ziv Welch格式(“LZW格式”。然而,所預期的是,這些串可通過減少這些串大小的任何壓縮格式來壓縮。圖6包括數(shù)據(jù)604-618的存儲的展開圖(其中有些數(shù)據(jù)是可選地存儲的)。在一個實施例中,存儲包括多字節(jié)編碼(“MBE”)值,它們有利于無符號整數(shù)的存儲,以節(jié)省存儲空間。
串行二進制數(shù)據(jù)塊602包括墨跡文檔的串行化二進制數(shù)據(jù)并且由數(shù)據(jù)塊604-618表示。數(shù)據(jù)塊604-618表示整個串行二進制數(shù)據(jù)塊602的展開圖。大小數(shù)據(jù)604可以是存儲在串行二進制數(shù)據(jù)塊602中的第一信息。大小數(shù)據(jù)604包括與墨跡文檔結構的大小相關聯(lián)的數(shù)據(jù)。
墨跡文檔描述符數(shù)據(jù)606可跟隨在大小數(shù)據(jù)604之后。墨跡文檔描述符數(shù)據(jù)606可包括任何類型的的數(shù)據(jù),它與有關包括在串行二進制數(shù)據(jù)塊602中數(shù)據(jù)類型的預期對象相關聯(lián)。該預期對象可由一組標志來指示,它們表示在墨跡文檔結構中可用的相關聯(lián)數(shù)據(jù)。這些標志可指示在串行二進制數(shù)據(jù)塊602內(nèi)可用的任何數(shù)據(jù)。數(shù)據(jù)塊604-618只是可與墨跡文檔結構相關聯(lián)的數(shù)據(jù)的一些示例。在本發(fā)明的一個實施例中,根節(jié)點數(shù)據(jù)614(下面進一步描述)始終與墨跡文檔描述符606中的一個標志相關聯(lián)。
臟區(qū)域數(shù)據(jù)608是可任選的數(shù)據(jù),它可不與每個墨跡文檔結構相關聯(lián)。臟區(qū)域數(shù)據(jù)608指向墨跡文檔結構中在保存前沒有完全分析過的數(shù)據(jù)。臟區(qū)域數(shù)據(jù)608既可指向墨跡數(shù)據(jù),也可指向非墨跡數(shù)據(jù),諸如文本字、圖象等等。臟區(qū)域數(shù)據(jù)608可由一個與墨跡文檔描述符數(shù)據(jù)608相關聯(lián)的標志來指示。當墨跡文檔描述符數(shù)據(jù)606包括指示一個臟區(qū)域的標志時,該標志指示墨跡文檔結構具有一個有限的非空臟區(qū)域。如果臟區(qū)域數(shù)據(jù)608存在,則該數(shù)據(jù)可表示為一系列矩形,它們以二進制格式存儲,以利于臟區(qū)域的再生。在完全分析了墨跡文檔的情況下,臟區(qū)域數(shù)據(jù)608不存在,并且不需要墨跡文檔描述符606中的標志。在一個實施例中,臟區(qū)域數(shù)據(jù)608(如果存在)緊跟在墨跡文檔描述符數(shù)據(jù)606之后。
在一個實施例中,臟區(qū)域數(shù)據(jù)608作為區(qū)域數(shù)據(jù)存儲到串行二進制數(shù)據(jù)塊602。區(qū)域數(shù)據(jù)格式可用于存儲臟區(qū)域數(shù)據(jù)608、非墨跡葉上下文節(jié)點的位置數(shù)據(jù)或提示節(jié)點的位置。區(qū)域數(shù)據(jù)可包括單獨矩形的數(shù)組,這些矩形定義整個區(qū)域數(shù)據(jù)的范圍。為了正確地從流重構區(qū)域數(shù)據(jù)對象(例如臟區(qū)域數(shù)據(jù)608),區(qū)域數(shù)據(jù)可包括矩形的計數(shù)。對于每個矩形,區(qū)域數(shù)據(jù)可包括有關頂端數(shù)據(jù)、左邊數(shù)據(jù)、寬度數(shù)據(jù)和高度數(shù)據(jù)的信息。描述矩形數(shù)據(jù)的各個值可使用MBE或帶符號的多字節(jié)編碼(“SMBE)來存儲。持久化的區(qū)域數(shù)據(jù)的表示的一個示例如下MBE[矩形的計數(shù)][矩形數(shù)據(jù)]}矩形的計數(shù)}[矩形數(shù)據(jù)]}矩形數(shù)據(jù)可表示為如下SMBE[矩形.左邊]SMBE[矩形.頂端]SMBE[矩形.寬度]SMBE[矩形.高度]全局唯一標識符(“GUID”表格數(shù)據(jù)610是可任選的數(shù)據(jù),它可不與每個墨跡文檔結構相關聯(lián)。GUID表格數(shù)據(jù)610可包括MBE GUID數(shù)量的計數(shù),這些GUID與GUID表格和/或GUID值的列表相關聯(lián)。GUID值的列表可包括每個GUID的16字節(jié)無符號文字值。墨跡文檔結構或文檔樹結構中任何單獨的節(jié)點可包括由GUID標識的任意數(shù)據(jù)。該任意數(shù)據(jù)可包括已知的數(shù)據(jù)類型和與特定應用相關聯(lián)的數(shù)據(jù)類型。對于與特定應用相關聯(lián)的數(shù)據(jù)(即定制屬性數(shù)據(jù)),該數(shù)據(jù)針對一個特定的GUID來存儲。GUID表格數(shù)據(jù)610指定不能通過推理得知的有關墨跡文檔結構使用的任何GUID的值。GUID表格數(shù)據(jù)610相應于在墨跡文檔級別或上下文節(jié)點級別上的任何定制屬性數(shù)據(jù)、并且隨后可通過MBE、關于GUID表格數(shù)據(jù)610的基于零的索引來引用。作為示例,非預定義的GUID可包括應用特定擴展的節(jié)點類型和節(jié)點上應用特定擴展的屬性。在有關串行二進制數(shù)據(jù)塊602的GUID表格數(shù)據(jù)610存在的情況下,該存在是由一個與文檔描述符數(shù)據(jù)606相關的標志標識的。同樣,如果GUID表格數(shù)據(jù)61O不存在,則在墨跡文檔描述符數(shù)據(jù)606中不設置標志。持久化的GUID表格數(shù)據(jù)的表示的一個示例如下MBE[Guid的計數(shù)][GUID]}...}Guid的計數(shù)[GUID]}串表格數(shù)據(jù)612是可選的數(shù)據(jù),它可不與每個墨跡文檔結構相關聯(lián)。串表格數(shù)據(jù)612可包括串表格中MBE串數(shù)量的計數(shù)、壓縮串數(shù)據(jù)的大小和/或壓縮串數(shù)據(jù)。串表格數(shù)據(jù)612可與分析提示后綴數(shù)據(jù)、前綴文本數(shù)據(jù)、被描述為事實的數(shù)據(jù)、提示名字數(shù)據(jù)、字列表數(shù)據(jù)、定制節(jié)點鏈接數(shù)據(jù)和經(jīng)識別的串數(shù)據(jù)相關聯(lián)。按照本發(fā)明的一個方面,串表格數(shù)據(jù)612可包括復制對象。到此為止,因為墨跡文檔結構是以特定的順序加載的,所以將索引保存到串表格數(shù)據(jù)612允許從串表格數(shù)據(jù)612加載適當?shù)拇當?shù)據(jù)。
每當一個串與串表格數(shù)據(jù)612相關聯(lián)時,可不寫索引。在這樣一種情況下,至少每個實例保存一個字節(jié)。而且,在串表格數(shù)據(jù)612中的串可用LZW來壓縮。通過不為每個串寫索引并結合LZW壓縮,可實質性地減少串的大小。在有關串行二進制數(shù)據(jù)塊602的串表格數(shù)據(jù)612存在的情況下,該存在是由一個與墨跡文檔描述符數(shù)據(jù)606相關的標志標識的。同樣,如果串表格數(shù)據(jù)612不存在,則在墨跡文檔描述符數(shù)據(jù)606中不設置標志。持久化的串表格數(shù)據(jù)的表示的一個示例如下//串表格數(shù)據(jù)MBE[串的計數(shù)]MBE[壓縮串數(shù)據(jù)的大小][壓縮串數(shù)據(jù)字節(jié)]根節(jié)點數(shù)據(jù)614包括與根節(jié)點大小相關的數(shù)據(jù)和/或與根節(jié)點相關聯(lián)的數(shù)據(jù)。根節(jié)點數(shù)據(jù)614可如參考圖8所討論的那樣存儲(下面更完整地闡述)。在一個方面,根節(jié)點數(shù)據(jù)是強制性數(shù)據(jù),它與每個墨跡文檔結構相關聯(lián),即使根節(jié)點數(shù)據(jù)614為空。一個與墨跡文檔描述符數(shù)據(jù)606相關聯(lián)的標志可指示根節(jié)點數(shù)據(jù)614的存在。
鏈接數(shù)據(jù)616是可任選的數(shù)據(jù),它可不與每個墨跡文檔結構相關聯(lián)。鏈接616包括指示墨跡文檔結構的任何節(jié)點是否鏈接到同一墨跡文檔結構中的其它節(jié)點的數(shù)據(jù)。鏈接數(shù)據(jù)616可關聯(lián)于墨跡文檔結構全局地保存。在存儲鏈接數(shù)據(jù)616時,鏈接數(shù)據(jù)616可包括與墨跡文檔結構相關聯(lián)的鏈接數(shù)量的計數(shù)。單獨的鏈接數(shù)據(jù)616也可包括MBE數(shù)據(jù)大小。在一個方面,MBE大小數(shù)據(jù)之后跟隨著鏈接描述符,它標識鏈接類型和起源信息。在另一個方面,描述符數(shù)據(jù)之后跟隨著源節(jié)點索引值的SMBE和目的地節(jié)點索引值的SMBE。源節(jié)點索引和目的地節(jié)點索引分別標識源節(jié)點和目的地節(jié)點。在又一個方面,如果鏈接描述符數(shù)據(jù)指示鏈接數(shù)據(jù)616包括定制鏈接,則定制鏈接數(shù)據(jù)是從由全局串表格中的索引標識的全局串表格讀取的。在有關串行二進制數(shù)據(jù)塊602的鏈接數(shù)據(jù)616存儲的情況下,該存在是由一個與墨跡文檔描述符數(shù)據(jù)606相關的標志標識的。同樣,如果鏈接數(shù)據(jù)616不存在,則在墨跡文檔描述符數(shù)據(jù)606中不設置標志。持久化的墨跡數(shù)據(jù)的表示的一個示例如下[上下文鏈接描述符]//1字節(jié)SMBE[源節(jié)點索引]SMBE[目的地節(jié)點索引]定制屬性數(shù)據(jù)618是可任選的數(shù)據(jù),它可不與每個墨跡文檔結構相關聯(lián)。定制屬性數(shù)據(jù)618可與墨跡文檔結構相關聯(lián),并且在一個方面,作為與節(jié)點相關聯(lián)的定制屬性數(shù)據(jù)存儲。定制屬性數(shù)據(jù)可包括任何由應用將其與節(jié)點相關聯(lián)的任何數(shù)據(jù),定制屬性數(shù)據(jù)可由GUID標識并且可包括已知或未知的GUID。在GUID是未知的情況下,該GUID可存儲為GUID表格數(shù)據(jù)610。在存儲定制屬性數(shù)據(jù)618時,一個標志可將定制屬性數(shù)據(jù)618標識為已知值。在另一個方面,存儲定制屬性數(shù)據(jù)618包括對GUID表格數(shù)據(jù)610的索引。定制屬性數(shù)據(jù)618的存儲也可包括數(shù)據(jù)大小的MBE值和表示數(shù)據(jù)的字節(jié)數(shù)組。在有關串行二進制數(shù)據(jù)塊602的定制屬性數(shù)據(jù)618存在的情況下,該存在是由一個與墨跡文檔描述符數(shù)據(jù)606相關的標志標識的。同樣,如果定制屬性數(shù)據(jù)620不存在,則在墨跡文檔描述符數(shù)據(jù)606中不設置標志。持久化的墨跡文檔結構的表示的一個示例如下MBE[大小]<墨跡結構描述述-1字節(jié)>
//臟區(qū)域數(shù)據(jù)[分析區(qū)域數(shù)據(jù)]//Guid表格數(shù)據(jù)MBE[Guid的計數(shù)][GUID]}...}Guid的計數(shù)[GUID]}//串表格數(shù)據(jù)MBE[串的計數(shù)]MBE[LZ壓縮串數(shù)據(jù)的大小][LZ壓縮串數(shù)據(jù)]//根節(jié)點數(shù)據(jù)MBE[大小][數(shù)據(jù)]
//全局上下文鏈接數(shù)據(jù)MBE[鏈接表格的大小][單獨的鏈接數(shù)據(jù)]圖7表示一個示例性實施例,用于在內(nèi)部存儲上下文節(jié)點數(shù)據(jù)700。在一個實施例,根節(jié)點數(shù)據(jù)614是上下文節(jié)點并且存儲為上下文節(jié)點數(shù)據(jù)700。上下文節(jié)點數(shù)據(jù)700可包括在墨跡文檔的串行化二進制數(shù)據(jù)中,并且由數(shù)據(jù)塊704-716表示。數(shù)據(jù)塊704-716表示上下文節(jié)點數(shù)據(jù)702的展開視圖。
節(jié)點描述符數(shù)據(jù)704可包括與墨跡文檔結構的每個節(jié)點相關聯(lián)的數(shù)據(jù)。節(jié)點描述符數(shù)據(jù)704可由標志集合指示,這些標志定義節(jié)點數(shù)據(jù)的配置以及與墨跡文檔結構相關聯(lián)的節(jié)點類型。
節(jié)點大小數(shù)據(jù)706可包括存儲在特定節(jié)點上的可能已知的屬性(例如,格子數(shù)據(jù)、邊界框數(shù)據(jù)和/或釘住標志數(shù)據(jù)(pinning flags data))。節(jié)點大小數(shù)據(jù)706也可包括未知屬性(擴展的/定制的屬性)連同位置數(shù)據(jù)、子附屬節(jié)點數(shù)據(jù)和筆畫數(shù)據(jù)。在一個方面,節(jié)點大小數(shù)據(jù)706可緊跟在節(jié)點描述符數(shù)據(jù)704之后。簡潔地說,節(jié)點描述符數(shù)據(jù)704可指示整個上下文節(jié)點樹的大小。
節(jié)點位置數(shù)據(jù)708是可任選的數(shù)據(jù),它可不與每個節(jié)點類型相關聯(lián)。在節(jié)點位置數(shù)據(jù)708存在的情況下,該存在是由一個與節(jié)點描述符數(shù)據(jù)704相關的標志標識的。同樣,如果節(jié)點位置數(shù)據(jù)708不存在,則在節(jié)點描述符數(shù)據(jù)704中不設置標志。在一個方面,如果節(jié)點描述符數(shù)據(jù)704指示一個非墨跡葉節(jié)點,則節(jié)點位置數(shù)據(jù)708可跟隨在其后。非墨跡葉節(jié)點可包括沒有子節(jié)點且不包括筆畫數(shù)據(jù)的任何節(jié)點。例如,非墨跡葉節(jié)點可包括圖象節(jié)點、文本節(jié)點或提示節(jié)點。在一個實施例中,節(jié)點位置數(shù)據(jù)708存儲為區(qū)域數(shù)據(jù)。區(qū)域數(shù)據(jù)可包括單獨矩形的數(shù)組,它們定義整個區(qū)域數(shù)據(jù)的范圍。為了正確地從流重構區(qū)域數(shù)據(jù)對象(例如節(jié)點位置數(shù)據(jù)708),區(qū)域數(shù)據(jù)可包括矩形的計數(shù)。對于每個矩形,區(qū)域數(shù)據(jù)可包括有關頂端數(shù)據(jù)、左邊數(shù)據(jù)、寬度數(shù)據(jù)和高度數(shù)據(jù)的信息。這些描述矩形數(shù)據(jù)的單獨值可使用MBE或SMBE來存儲。持久化的區(qū)域數(shù)據(jù)的表示的一個示例如下MBE[矩形的計數(shù)][矩形數(shù)據(jù)]}}矩形的計數(shù)[矩形數(shù)據(jù)]}矩形數(shù)據(jù)可表示為如下SMBE[矩形.左邊]SMBE[矩形.頂端]SMBE[矩形.寬度]SMBE[矩形.高度]
筆畫數(shù)據(jù)710是可任選的數(shù)據(jù),它可不與每個節(jié)點類型相關聯(lián)。筆畫數(shù)據(jù)710可包括與任何包括筆畫數(shù)據(jù)的節(jié)點相關聯(lián)的數(shù)據(jù)。例如,筆畫數(shù)據(jù)710可與未分類的墨跡節(jié)點、字節(jié)點或繪圖節(jié)點相關聯(lián)。在筆畫數(shù)據(jù)710存在的情況下,該存在可由一個與節(jié)點描述符數(shù)據(jù)704相關的標志來標識。同樣,如果筆畫數(shù)據(jù)710不存在,則在節(jié)點描述符數(shù)據(jù)704中不設置標志。
當筆畫數(shù)據(jù)710存在時,存儲可包括與節(jié)點相關聯(lián)的MBE筆畫數(shù)量值。在一個方面,每個筆畫與一字節(jié)的筆畫描述符相關聯(lián),后者包括筆畫描述符標志集合。這些標志可指示筆畫標識,它表示MBE筆畫標識數(shù)據(jù)。在一個方面,如果筆畫標識標志沒有設置,則筆畫標識可包括檢索到的最后一個筆畫標識。這些標志也可包括書寫筆畫描述符標志,它們標識與書寫相關聯(lián)的筆畫類型。在另一個方面,這些標志可包括繪圖筆畫描述符標志,它們標識與繪圖相關聯(lián)的筆畫類型。這些標志也可包括突出(加亮)對象(highlighter)描述符標志,它標識與突出(加亮)相關聯(lián)的筆畫類型。在又一個實施例中,這些標志可包括確認的祖先描述符標志,它們標識一個筆畫的有效確認的祖先。確認的祖先串行化索引的MBE值可存儲在流中。在又一個實施例中,這些標志可包括筆畫語言標識標志,它們標識與筆畫相關聯(lián)的語言。相應于該語言的帶符號編碼值可存儲在流中。在又一個實施例中,與這些標志相關聯(lián)的值以上述取決于筆畫描述符數(shù)據(jù)的順序來存儲。進一步預期的是,可設置任何類型的標志來促進筆畫的標識。
子節(jié)點數(shù)據(jù)712是可任選的數(shù)據(jù),它可不與每個節(jié)點類型相關聯(lián)。在子節(jié)點數(shù)據(jù)712存在的情況下,該存在可由一個與節(jié)點描述符數(shù)據(jù)704相關的標志來標識。同樣,如果子節(jié)點數(shù)據(jù)712不存在,則在節(jié)點描述符數(shù)據(jù)704不設置標志。子節(jié)點數(shù)據(jù)712可包括容器類型節(jié)點(即,段落節(jié)點、行節(jié)點、對齊節(jié)點、書寫區(qū)域節(jié)點和/或根節(jié)點等等)。容器節(jié)點可包括任何包含子節(jié)點的節(jié)點類型。子節(jié)點數(shù)據(jù)712的存儲包括存儲子節(jié)點數(shù)量和來自每個子節(jié)點的數(shù)據(jù)。來自每個子節(jié)點的數(shù)據(jù)以與上下文節(jié)點數(shù)據(jù)702相同的方式存儲。
節(jié)點已知屬性數(shù)據(jù)714是可任選的數(shù)據(jù),它可不與每個節(jié)點類型相關聯(lián)。在節(jié)點已知屬性數(shù)據(jù)714存在的情況下,該存在可由一個與節(jié)點描述符數(shù)據(jù)704相關聯(lián)的標志來標識。同樣,如果節(jié)點已知屬性數(shù)據(jù)714不存在,則在節(jié)點描述符數(shù)據(jù)704中不設置標志。
節(jié)點已知屬性數(shù)據(jù)714包括數(shù)據(jù)類型與格式已知的屬性,并且促進最優(yōu)化以減少數(shù)據(jù)大小。節(jié)點已知屬性數(shù)據(jù)714可包括經(jīng)旋轉的邊界框數(shù)據(jù)(八個整數(shù)的數(shù)組)、識別格子數(shù)據(jù)(包括可變長度字節(jié)的數(shù)組)、注解數(shù)據(jù)確認數(shù)據(jù)(整數(shù)類型)和/或提示數(shù)據(jù)(用于提示節(jié)點)。在一個實施例中,該數(shù)據(jù)以預定義的方式存儲,以便最優(yōu)化數(shù)據(jù)的二進制表示。例如,整數(shù)數(shù)組可用帶符號的編碼格式保存。而且,復雜數(shù)據(jù)類型諸如結構或類數(shù)據(jù),可用有效定義該數(shù)據(jù)的二進制格式存儲。持久化的已知屬性數(shù)據(jù)的表示的一個示例如下[已知屬性描述符]//1字節(jié)[經(jīng)旋轉的邊界框數(shù)據(jù)]8*SMBE[表示坐標的整數(shù)][識別格子]MBE[格子數(shù)據(jù)大小][格子數(shù)據(jù)][確認]SMBE[確認][注解]SMBE[注解][分析提示屬性][分析提示數(shù)據(jù)]節(jié)點定制屬性數(shù)據(jù)716是可任選的數(shù)據(jù),它可不與每個節(jié)點類型相關聯(lián)。在節(jié)點定制屬性數(shù)據(jù)716存在的情況下,該存在可由一個與節(jié)點描述符數(shù)據(jù)704相關聯(lián)的標志來標識。同樣,如果節(jié)點定制屬性數(shù)據(jù)716不存在,則在節(jié)點描述符數(shù)據(jù)704中不設置標志。節(jié)點定制屬性數(shù)據(jù)可包括任何由應用將其與節(jié)點相關聯(lián)的任意數(shù)據(jù)。節(jié)點定制屬性數(shù)據(jù)716可由GUID來標識,并且可包括已知或未知的GUID。在GUID是未知的情況下,該GUID可存儲為GUID表格數(shù)據(jù)610。在存儲節(jié)點定制屬性數(shù)據(jù)716時,一個標志可將節(jié)點定制屬性數(shù)據(jù)716標識為已知值。在另一個方面,存儲節(jié)點定制屬性數(shù)據(jù)716包括對GUID表格數(shù)據(jù)610的索引。節(jié)點定制屬性數(shù)據(jù)716的存儲也可包括數(shù)據(jù)大小的MBE值和表示數(shù)據(jù)的字節(jié)數(shù)組。持久化的上下文節(jié)點數(shù)據(jù)的表示的一個示例如下MBE[大小]//位置數(shù)據(jù)-用于非墨跡葉節(jié)點[分析區(qū)域數(shù)據(jù)]//筆畫數(shù)據(jù)-用于墨跡葉節(jié)點MBE[筆畫的計數(shù)][筆畫數(shù)據(jù)]}...}筆畫的計數(shù)[筆畫數(shù)據(jù)]}每個筆畫數(shù)據(jù)二進制塊(blob)在流中表示為如下<1字節(jié)的筆畫描述符標志>
MBE[筆畫標識]MBE[確定了的祖先節(jié)點的索引]MBE[筆畫的語言標識]
//子數(shù)據(jù)-用于容器節(jié)點<1字節(jié)節(jié)點描述符>
MBE[附屬節(jié)點數(shù)據(jù)的大小][附屬節(jié)點數(shù)據(jù)]<1字節(jié)節(jié)點描述符>
MBE[附屬節(jié)點數(shù)據(jù)的大小][附屬節(jié)點數(shù)據(jù)][已知屬性數(shù)據(jù)][標記最大已知屬性計數(shù)(TagMaxKnownPropertyCount)+到全局Guid表格中的索引]MBE[大小定制屬性][定制屬性數(shù)據(jù)]3.以串行化格式存儲文檔的說明性過程圖8表示以串行化二進制格式存儲墨跡文檔數(shù)據(jù)的系統(tǒng)的一個普通實施例。系統(tǒng)800開始于起始框802,并且流至框804,其中產(chǎn)生一個墨跡文檔。框804可包括一個用于將來自用戶的筆畫輸入數(shù)字化的數(shù)字轉換器。數(shù)字轉換器可包括計算設備(例如圖1)、移動計算設備(例如圖2)、運行來自MICROSOFTCORPORATION(微軟公司)的WINDOWS XP TABLET EDITION的寫字板式PC或者便于墨跡應用操作的任何設備。而且,雖然在此的描述參考墨跡文檔,但系統(tǒng)800可相對于任何類型的數(shù)據(jù)來實現(xiàn)。例如,本發(fā)明也可關聯(lián)于字處理應用、電子表格應用、繪圖應用、圖象應用、筆記應用、圖片應用等等來使用。在一個實施例中,應用包括來自MICROSOFT CORPORATION(微軟公司)的InkEdit、InkPicture和/或OneNote。從框804,過程800流至框806。
框806指示產(chǎn)生原始墨跡數(shù)據(jù)的步驟。在一個實施例中,產(chǎn)生原始墨跡數(shù)據(jù)包括數(shù)字轉換器將筆畫輸入轉換成原始墨跡數(shù)據(jù)和將原始墨跡數(shù)據(jù)存儲到原始數(shù)據(jù)存儲。在另一個實施例中,產(chǎn)生原始墨跡數(shù)據(jù)包括數(shù)字轉換器將筆畫輸入轉換成原始墨跡數(shù)據(jù)和將原始墨跡數(shù)據(jù)發(fā)送給應用。過程800隨后流至框808。
框808指示產(chǎn)生墨跡文檔結構的步驟。框808可包括墨跡分析器從應用接收原始墨跡數(shù)據(jù)。墨跡分析器可配置為分析和識別操作,如上面結合圖3更完整地闡述的???08還可包括產(chǎn)生墨跡文檔結構,如上面按照圖4和5描述的。在另一個實施例中,墨跡文檔結構包括與墨跡相關的多個節(jié)點。例如,墨跡文檔結構可包括書寫區(qū)域節(jié)點、對齊節(jié)點、段落節(jié)點、行節(jié)點、字節(jié)點或筆畫節(jié)點。墨跡文檔結構還可包括繪圖節(jié)點和/或提示節(jié)點。所預期的是,墨跡文檔結構可包括便于墨跡的二進制樹表示的任何類型的節(jié)點。在另一個實施例中,這些節(jié)點可與使有關節(jié)點相關的鏈接相關聯(lián)。
流至框810,可存儲墨跡文檔結構,使之能全局訪問。在一個實施例中,壓縮并存儲墨跡文檔結構,如上結合圖6和7所述。在這樣一種情況下,可結合一個應用產(chǎn)生墨跡,并且隨后存儲它,以使其它應用能訪問它。換言之,與該平臺相關聯(lián)的其它應用可使用該墨跡文檔結構和原始墨跡來重新產(chǎn)生經(jīng)分析的墨跡。該可訪問能力有利于在應用之間的剪切和粘貼操作。而且,墨跡可修改而不要求對整個墨跡文檔的重新分析,因為墨跡已經(jīng)被分析、識別和以串行化格式保存。
4.說明性操作環(huán)境參考圖1,用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括一個計算設備如計算設備100。在基本配置中,計算設備100一般包括至少一個處理單元102和系統(tǒng)存儲器104。取決于計算設備的準確配置和類型,系統(tǒng)存儲器104可以是易失性的(如RAM)、非易失性的(如ROM、閃存等等)或兩者的某種組合。系統(tǒng)存儲器104一般包括操作系統(tǒng)105、一或多個應用106,并且可包括程序數(shù)據(jù)107。在一個實施例中,應用106還包括用于墨跡操作的應用120。該基本配置在圖1中由虛線108內(nèi)的那些組件來例示。
計算設備100還可具有附加特征或功能。例如,計算設備100還可包括附加的數(shù)據(jù)存儲設備(可移動的和/或不可移動的),諸如例如磁盤、光盤或帶。這樣的附加存儲在圖1中由可移動存儲109和不可移動存儲110來例示。計算機存儲介質可包括易失性與非易失性、可移動與不可移動的介質,它們是以任何用于存儲信息諸如計算機可讀指令、數(shù)據(jù)結構、程序數(shù)據(jù)或其它數(shù)據(jù)的方法或技術來實現(xiàn)的。系統(tǒng)存儲器104、可移動存儲109和不可移動存儲110都是計算機存儲介質的示例。計算機存儲介質包括但不限于RAM、ROM、EEPROM、閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設備,或者任何可以用于存儲所想要的信息并且可以由計算設備100訪問的其它介質。任何這樣的計算機存儲介質可以是設備100的一部分。計算設備100還可具有輸入設備112,諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備等等。還包括輸出設備114諸如顯示器、揚聲器等等。所有這些設備在本領域中是已知的并且不需要在這里詳細討論。
計算設備100還包含通信連接116,允許設備與其它計算設備118通信,諸如通過網(wǎng)絡或無線網(wǎng)狀網(wǎng)絡。通信連接116是通信介質的示例。通信介質一般包含在經(jīng)調制的數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),諸如載波或其它傳輸機制并且包括任何信息傳送介質。術語“經(jīng)調制的數(shù)據(jù)信號”指對信號中的信息編碼的方式設置或改變其一或多個特性的一種信號。作為示例,且非限制性地,通信介質包括無線介質諸如線連接網(wǎng)絡或直接線連接,并包括有線介質,諸如聲音、RF、紅外和其它無線介質。術語計算機可讀介質如在此使用的包括存儲介質和通信介質兩者。
圖2例示可在本發(fā)明的一個示例性實施例中使用的移動計算設備。參考圖2,用于實現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括一個移動計算設備如移動計算設備200。移動計算設備200具有處理器260、存儲器262、顯示器228和小鍵盤232。存儲器262一般包括易失性(例如RAM)和非易失性存儲器(例如ROM、閃存等等)兩者。移動計算設備200包括操作系統(tǒng)264,它駐留在存儲器262中并在處理器260上執(zhí)行。小鍵盤232可以是按壓按鈕數(shù)字撥號板(諸如在典型的電話上的),或者多鍵鍵盤(諸如常規(guī)的鍵盤)。顯示器228可以是液晶顯示器,或者任何通常在移動計算設備中使用的其它類型的顯示器。顯示器228可以是觸敏的,并且因而也用作輸入設備。
一或多個應用程序266被加載到存儲器262中并且在操作系統(tǒng)264上運行。應用程序的示例包括電話撥號器程序、電子郵件程序、日程安排程序、PIM(個人信息管理)程序、字處理程序、電子表格程序、因特網(wǎng)瀏覽器程序等等。移動計算設備200還包括在存儲器262內(nèi)的非易失性存儲268。非易失性存儲268可用于存儲持久信息,在移動計算設備200關閉電源時不應該丟失。應用266可在存儲268中使用和存儲信息,諸如由電子郵件應用使用的電子郵件或其它消息、由PIM使用的聯(lián)系人信息、由日程安排程序使用的約會信息、由字處理應用使用的文檔等等。在一個實施例中,應用266還包括用于墨跡操作的應用280。
移動計算設備200具有電源270,它可實現(xiàn)為一或多個電池。電源270可能還包括外部電源,諸如交流適配器或補充或充電電池的充電座。
移動計算設備200示為兩種類型的外部通知機制LED(發(fā)光二極管)240和音頻接口274。這些設備可直接耦合至電源270,使得當被激活時,它們保持接通由通知機制指示的一段時間,即使處理器260和其它組件可能關閉以節(jié)省電池電源。LED 240可編程為無限期地保持接通,直到用戶采取動作來指示設備的電源接通狀態(tài)。音頻接口274用于提供可聽見的信號給用戶,并且從用戶接收可聽見的聲音。例如,音頻接口274可耦合到揚聲器以提供可聽見的輸出,以及耦合到話筒以接受可聽見的輸入,諸如促進電話交談。
移動計算設備200還包括無線電接口層272,它執(zhí)行收發(fā)通信諸如無線電頻率通信的功能。無線電接口層272促進移動計算設備200通過通信公司或服務提供者與外部世界之間的無線連通性。與無線電接口層272的傳輸是在操作系統(tǒng)264的控制下進行的。換言之,由無線電接口層272接收的通信可通過操作系統(tǒng)264傳播到應用程序266,反之亦然。
上述描述、示例和數(shù)據(jù)提供制造的完整描述和本發(fā)明組成的用法。由于可以在不脫離本發(fā)明的精神和范圍的情況下作出本發(fā)明的許多實施例,所以本發(fā)明存在于下面所附的權利要求書中。
權利要求
1.一種計算機可讀介質,具有存儲在其上的數(shù)據(jù)結構,用于以串行化數(shù)據(jù)格式存儲二進制樹結構,包括第一數(shù)據(jù)域,用于存儲與文檔結構相關聯(lián)的大小數(shù)據(jù);第二數(shù)據(jù)域,用于存儲文檔描述符數(shù)據(jù),其中文檔描述符數(shù)據(jù)包括一個或多個指示文檔結構的相關聯(lián)數(shù)據(jù)的標志;以及第三數(shù)據(jù)域,用于存儲根節(jié)點數(shù)據(jù),其中,根節(jié)點數(shù)據(jù)是由所述標志中的至少一個指示的。
2.如權利要求1所述的計算機可讀介質,還包括第四數(shù)據(jù)域,用于存儲臟區(qū)域數(shù)據(jù),其中,臟區(qū)域數(shù)據(jù)在串行化數(shù)據(jù)中的存在是由與文檔描述符數(shù)據(jù)相關聯(lián)的標志之一指示的。
3.如權利要求2所述的計算機可讀介質,其特征在于,臟區(qū)域數(shù)據(jù)包括下列至少之一墨跡分析器沒有分析過的墨跡數(shù)據(jù)的位置數(shù)據(jù),和墨跡分析器沒有分析過的非墨跡數(shù)據(jù)的位置數(shù)據(jù)。
4.如權利要求2所述的計算機可讀介質,其特征在于,臟區(qū)域數(shù)據(jù)包括下列至少之一與臟區(qū)域數(shù)據(jù)相關聯(lián)的矩形的計數(shù),頂端數(shù)據(jù),左邊數(shù)據(jù),寬度數(shù)據(jù)和高度數(shù)據(jù)。
5.如權利要求1所述的計算機可讀介質,還包括第四數(shù)據(jù)域,用于存儲全局唯一標識符數(shù)據(jù),其中,全局唯一標識符數(shù)據(jù)在串行化數(shù)據(jù)中的存在是由與文檔描述符數(shù)據(jù)相關聯(lián)的標志之一指示的。
6.如權利要求5所述的計算機可讀介質,其特征在于,全局唯一標識符數(shù)據(jù)包括下列至少之一應用特定節(jié)點類型和應用特定擴展屬性。
7.如權利要求1所述的計算機可讀介質,還包括第四數(shù)據(jù)域,用于存儲串表格數(shù)據(jù),其中,串表格數(shù)據(jù)在串行化數(shù)據(jù)中的存在是由與文檔描述符數(shù)據(jù)相關聯(lián)的標志之一指示的。
8.如權利要求7所述的計算機可讀介質,其特征在于,串表格數(shù)據(jù)與下列至少之一相關聯(lián)分析提示后綴數(shù)據(jù),前綴文本數(shù)據(jù),被描述為事實的數(shù)據(jù),提示節(jié)點數(shù)據(jù),字列表數(shù)據(jù),定制鏈接節(jié)點數(shù)據(jù)和識別出的串數(shù)據(jù)。
9.如權利要求1所述的計算機可讀介質,還包括第四數(shù)據(jù)域,用于存儲鏈接數(shù)據(jù),其中,鏈接數(shù)據(jù)在串行化數(shù)據(jù)中的存在是由與文檔描述符數(shù)據(jù)相關聯(lián)的標志之一指示的。
10.如權利要求9所述的計算機可讀介質,其特征在于,鏈接數(shù)據(jù)包括下列至少之一與文檔結構相關聯(lián)的鏈接計數(shù),鏈接數(shù)據(jù)大小,鏈接描述符,源節(jié)點索引數(shù)據(jù)和目的地節(jié)點索引數(shù)據(jù)。
11.如權利要求1所述的計算機可讀介質,還包括第四數(shù)據(jù)域,用于存儲定制屬性數(shù)據(jù),其中,定制屬性數(shù)據(jù)在串行化數(shù)據(jù)中的存在是由與文檔描述符數(shù)據(jù)相關聯(lián)的標志之一指示的。
12.如權利要求11所述的計算機可讀介質,其特征在于,定制屬性數(shù)據(jù)包括下列至少之一大小數(shù)據(jù)和表示定制屬性數(shù)據(jù)的字節(jié)數(shù)組。
13.如權利要求1所述的計算機可讀介質,其特征在于,根節(jié)點數(shù)據(jù)包括描述符數(shù)據(jù),并且其中,節(jié)點描述符數(shù)據(jù)在串行化數(shù)據(jù)中的存在包括一或多個標志,所述標志指示與根節(jié)點數(shù)據(jù)相關聯(lián)的數(shù)據(jù)。
14.如權利要求13所述的計算機可讀介質,其特征在于,根節(jié)點數(shù)據(jù)包括指示根節(jié)點數(shù)據(jù)大小的大小數(shù)據(jù)。
15.如權利要求13所述的計算機可讀介質,其特征在于,根節(jié)點數(shù)據(jù)包括下列至少之一節(jié)點位置數(shù)據(jù),筆畫數(shù)據(jù),子節(jié)點數(shù)據(jù),節(jié)點已知屬性數(shù)據(jù)和節(jié)點定制屬性數(shù)據(jù)。
16.一種計算機實現(xiàn)的方法,用于以串行化數(shù)據(jù)格式存儲二進制樹結構,包括在第一數(shù)據(jù)域中存儲文檔結構大小數(shù)據(jù);在第二數(shù)據(jù)域中存儲文檔結構描述符數(shù)據(jù),其中,文檔結構描述符數(shù)據(jù)包括至少一個用于指示數(shù)據(jù)預期對象的標志;以及在第三數(shù)據(jù)域中存儲根節(jié)點數(shù)據(jù),其中根節(jié)點數(shù)據(jù)是由所述標志中的至少一個指示的。
17.如權利要求16所述的計算機實現(xiàn)的方法,還包括在第四數(shù)據(jù)域中存儲下列至少之一臟區(qū)域數(shù)據(jù),全局唯一標識符表格數(shù)據(jù),串表格數(shù)據(jù),鏈接數(shù)據(jù)和定制屬性數(shù)據(jù)。
18.如權利要求16所述的計算機實現(xiàn)的方法,其特征在于,根節(jié)點數(shù)據(jù)包括下列至少之一預期對象數(shù)據(jù),大小數(shù)據(jù),節(jié)點位置數(shù)據(jù),筆畫數(shù)據(jù),子節(jié)點數(shù)據(jù),節(jié)點已知屬性數(shù)據(jù)和節(jié)點定制屬性數(shù)據(jù)。
19.一種計算機可讀介質,具有存儲在其上的計算機可執(zhí)行指令,所述指令包括產(chǎn)生墨跡文檔結構,其中,墨跡文檔結構包括至少一個根節(jié)點;以串行二進制數(shù)據(jù)格式存儲墨跡文檔結構,其中存儲串行二進制格式包括在第一數(shù)據(jù)域中存儲與墨跡文檔結構相關聯(lián)的大小數(shù)據(jù);在第二數(shù)據(jù)域中存儲墨跡文檔描述符數(shù)據(jù),其中,墨跡文檔結構描述符數(shù)據(jù)包括至少一個用于指示數(shù)據(jù)預期對象的標志;以及在第三數(shù)據(jù)域中存儲根節(jié)點數(shù)據(jù),其中,根節(jié)點數(shù)據(jù)是由所述標志中的至少一個指示的。
20.如權利要求19所述的計算機可執(zhí)行指令,其特征在于,根節(jié)點數(shù)據(jù)包括下列至少之一預期對象數(shù)據(jù),大小數(shù)據(jù),節(jié)點位置數(shù)據(jù),筆畫數(shù)據(jù),子節(jié)點數(shù)據(jù),節(jié)點已知屬性數(shù)據(jù)和節(jié)點定制屬性數(shù)據(jù)。
全文摘要
一種計算機可讀介質,具有以串行化二進制格式存儲文件數(shù)據(jù)的數(shù)據(jù)結構,使得文檔數(shù)據(jù)對于其它應用是可訪問的。產(chǎn)生一種文檔結構,它包括根節(jié)點數(shù)據(jù)。以串行二進制數(shù)據(jù)格式存儲該文檔。串行二進制格式包括在第一數(shù)據(jù)域中存儲與文檔結構相關聯(lián)的大小數(shù)據(jù)。串行二進制格式還包括在第二數(shù)據(jù)域中存儲文檔結構描述符數(shù)據(jù),其中,文檔結構描述符數(shù)據(jù)包括至少一個用于指示數(shù)據(jù)預期對象的標志。串行二進制格式還包括在第三數(shù)據(jù)域中存儲根節(jié)點數(shù)據(jù),其中根節(jié)點數(shù)據(jù)是由所述標志中的至少一個指示的。
文檔編號G06F17/30GK1811773SQ20061000691
公開日2006年8月2日 申請日期2006年1月23日 優(yōu)先權日2005年1月21日
發(fā)明者王海勇, J·N·維克安姆, J·J·特納, S·鮑魯斯, S·巴哈塔查雅 申請人:微軟公司