專利名稱::將二維數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)形式的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及將數(shù)據(jù)定制為一種適于用不同格式表示的表達(dá)方式,包括音頻和有限可視格式。本發(fā)明特別涉及從超文本鏈接標(biāo)示語言(HTML)格式中選擇數(shù)據(jù),以便使這些數(shù)據(jù)適合于用除源格式以外的其它格式進(jìn)行呈現(xiàn),如音頻或視頻格式。目前,在HTML格式中包含大量有價(jià)值的信息。但是,HTML主要是設(shè)計(jì)用來在特定的可視環(huán)境進(jìn)行訪問,即通過網(wǎng)絡(luò)瀏覽器所應(yīng)用的圖形用戶接口進(jìn)行訪問。因此有必要通過其它接口和閱讀程序獲取HTML上的數(shù)據(jù)。本發(fā)明就是要解決這種需求中的關(guān)鍵問題。
發(fā)明內(nèi)容在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,本發(fā)明提供了一種方法,它可以將二維數(shù)據(jù),特別是HTML格式中的信息,轉(zhuǎn)換為一種標(biāo)準(zhǔn)形式以便用音頻或其它可視格式進(jìn)行呈現(xiàn),其中每個(gè)關(guān)心元素的選擇是基于它在標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式中的作用,即任何表示方法均可以用樹結(jié)構(gòu)進(jìn)行語法分析。為完成這個(gè)選擇過程,先要確定元素的容器的位置,然后按照語法樹確定元素的本地線路,以便構(gòu)造根據(jù)這個(gè)識別所建立的元素特征標(biāo)記,并存儲(chǔ)以便后面檢索和呈現(xiàn)元素值時(shí)使用。對本發(fā)明進(jìn)一步優(yōu)化,該方法可以搜索重復(fù)的元素,并只存儲(chǔ)一個(gè)所選擇的重復(fù)元素,比如第一個(gè)重復(fù)的元素。本發(fā)明的一個(gè)突出特點(diǎn)是HTML網(wǎng)頁可以用標(biāo)準(zhǔn)形式表達(dá)。本發(fā)明的另一個(gè)重要特點(diǎn)是只需要選擇元素,而不必選擇元素的實(shí)際值,這樣就可以用當(dāng)前值對它進(jìn)行動(dòng)態(tài)更新和翻譯。為更好地理解本發(fā)明,下面結(jié)合附圖,對本發(fā)明進(jìn)行詳細(xì)說明。圖1是根據(jù)本發(fā)明所建立的系統(tǒng)框圖,其中應(yīng)用設(shè)計(jì)工具來選擇和識別HTML頁的元素。圖2的框圖更詳細(xì)地說明了識別、提取和翻譯過程之間的關(guān)系。圖3A和3B是根據(jù)本發(fā)明具體實(shí)施例的方法的流程圖。圖4為HTML頁與處理過程的三元關(guān)系框圖。具體實(shí)施例的詳細(xì)說明參見圖1,本發(fā)明在萬維網(wǎng)的網(wǎng)頁范圍內(nèi)進(jìn)行說明。根據(jù)本發(fā)明,在網(wǎng)絡(luò)中,首次將需要的網(wǎng)頁拷貝到存儲(chǔ)裝置14后,用交互式設(shè)計(jì)者工具10定制主服務(wù)器12的源網(wǎng)站中以標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)方式寫成的網(wǎng)頁11,如HTML。存儲(chǔ)裝置14可以是一個(gè)共享的持久存儲(chǔ)器,如磁盤驅(qū)動(dòng)器組或其它帶有持久存儲(chǔ)器的數(shù)據(jù)庫存儲(chǔ)裝置。通過應(yīng)用后面所解釋的設(shè)計(jì)者工具,設(shè)計(jì)者能夠從現(xiàn)有的網(wǎng)絡(luò)應(yīng)用程序中選擇、識別和定制信息,而不必破壞源網(wǎng)絡(luò)應(yīng)用程序。為定制各個(gè)網(wǎng)頁,設(shè)計(jì)者確定什么本文和提示信息將呈現(xiàn)給用戶,特別是對于音頻界面為目標(biāo)的電話呼叫者,需要呼叫者向輸入組件提供什么輸入數(shù)據(jù),以及呼叫者以什么樣的次序訪問可用音頻的網(wǎng)頁。設(shè)計(jì)者建立設(shè)計(jì)對象16。在具體實(shí)施例中設(shè)計(jì)程序輸出的是音頻元數(shù)據(jù)。該元數(shù)據(jù)用腳本表達(dá),腳本,即此處所說的元素集合,存儲(chǔ)在存儲(chǔ)裝置14的數(shù)據(jù)庫中。運(yùn)行時(shí)引擎利用這個(gè)腳本可以使呼叫者與可用音頻的網(wǎng)站交互。在操作時(shí),由于交互式設(shè)計(jì)工具10查詢并下載網(wǎng)站的HTML頁11,它的作用像主網(wǎng)絡(luò)服務(wù)器12的瀏覽器。工具10的設(shè)計(jì)者/用戶決定到哪個(gè)網(wǎng)頁可用音頻。對于每個(gè)這樣的網(wǎng)頁,設(shè)計(jì)者選擇將在運(yùn)行時(shí)呈現(xiàn)的信息。設(shè)計(jì)者可以建立語音提示信息,以要求呼叫者提供網(wǎng)頁的輸入控制數(shù)據(jù)。當(dāng)用戶以正確的響應(yīng)回應(yīng)提示信息時(shí),設(shè)計(jì)者還將進(jìn)一步確定將會(huì)識別哪些單詞和詞組。例如,如果網(wǎng)頁有一個(gè)挑選一種顏色的下拉式選擇列表,提示信息會(huì)是“請選擇紅、白或藍(lán)”。設(shè)計(jì)者規(guī)定呼叫者應(yīng)說“紅”、“白”或“藍(lán)”來進(jìn)行響應(yīng)。設(shè)計(jì)者也可規(guī)定音頻控制流。在單個(gè)網(wǎng)頁中,頁內(nèi)流確定閱讀文本和發(fā)給呼叫者提示信息的次序。頁內(nèi)流還確定用戶訪問站點(diǎn)中可用音頻頁的次序。一般情況下,通過站點(diǎn)的音頻路徑和使用視頻瀏覽器時(shí)的視頻路徑是相似的。用組件提供的設(shè)計(jì)者工具10是用來建立一套保存在存儲(chǔ)裝置14中的設(shè)計(jì)對象。這些對象封裝了對于可用音頻網(wǎng)站來說所有必需的信息。設(shè)計(jì)者工具能夠從存儲(chǔ)裝置14中檢索這些對象,對它們進(jìn)行更新,并回存到存儲(chǔ)裝置。將設(shè)計(jì)對象16存到存儲(chǔ)裝置14后,設(shè)計(jì)者工具10調(diào)用發(fā)生器18來建立用稱作AML的說明語言寫成的文本腳本。AML腳本內(nèi)編入了從設(shè)計(jì)對象16中提取出的信息,設(shè)計(jì)對象在運(yùn)行時(shí)會(huì)被呈現(xiàn)出來。每個(gè)腳本含有相應(yīng)網(wǎng)頁的URL。由于在運(yùn)行時(shí)要使用URL和AML腳本,所以AML腳本也保存在存儲(chǔ)裝置18中。網(wǎng)頁上的值用AML來表示。A.組件選擇、識別和定制在設(shè)計(jì)過程中,組件選擇和定制由下面的步驟組成1.從已有的HTML頁中選擇組件;2.對HTML頁中選擇出的組件進(jìn)行識別;3.對HTML頁中選擇出的組件進(jìn)行定制;4.通過一種具有能夠表示選擇和定制組件功能的語言對選擇和定制的組件進(jìn)行說明。上述設(shè)計(jì)技術(shù)是通過用戶界面來控制和完成的,而設(shè)計(jì)者不必關(guān)心正確選擇、識別和產(chǎn)生AML腳本所需的具體細(xì)節(jié)和內(nèi)部算法。B.HTML頁中組件的選擇和識別圖2是對于運(yùn)行時(shí)系統(tǒng)的概念性描述,該系統(tǒng)選擇并呈現(xiàn)HTML頁上的數(shù)據(jù)到目標(biāo)音頻呈現(xiàn)語言查看窗。從主網(wǎng)絡(luò)服務(wù)器12檢索出網(wǎng)頁11后,交給翻譯器20,翻譯器從共享的持久存儲(chǔ)器14中取出相應(yīng)的AML文檔21,生成WML網(wǎng)頁23和運(yùn)行時(shí)對象24。設(shè)計(jì)者13須從HTML頁11中用指并向點(diǎn)擊的方法選擇一些數(shù)據(jù),此后稱作“組件”17,設(shè)計(jì)者工具10(見圖1)自動(dòng)地產(chǎn)生唯一的特征標(biāo)記,以便運(yùn)行環(huán)境通過運(yùn)行時(shí)引擎22在其后的程序中利用該標(biāo)記從HTML網(wǎng)頁中提取實(shí)時(shí)數(shù)據(jù)。運(yùn)行時(shí)引擎22與電話服務(wù)器26和用戶28連接。組件11的特征標(biāo)記可以由下面的一項(xiàng)或多項(xiàng)內(nèi)容組成1.組件17在HTML頁上的位置??疾橄旅婧唵蔚腍TML頁(如果在客戶計(jì)算機(jī)上用網(wǎng)絡(luò)瀏覽器運(yùn)行,這些代碼會(huì)產(chǎn)生一個(gè)HTML頁)<prelisting-type="program-listing"><![CDATA[<HTML><tablename=″T1″> ?。紅r> <tdwidth=″13%″>Row1</td> ?。紅dwidth=″13%″align=″center″>rlc2</td> <tdwidth=″66%″align=″center″>rlc3</td> ?。紅dwidth=″8%″><palign=″center″>rlc4</td> <\tr> ?。紅r> ?。紅d> <formmethod=″POST″name=″Form1″ action=″WEBBOT-SELF″> ?。糹nputtype=″checkbox″name=″C1″value=″ON″> <inputtype=″radio″value=″V1″checkedname=″R1″> ?。糹nputtype=″radio″name=″R1″value=″V2″> ?。糪form> ?。?td> <\tr> ?。糪table> <\HTML>]]></pre>在上面的例子中,如果設(shè)計(jì)者13(圖1)選擇整個(gè)表T1,且如果它始終是HTML頁的第一個(gè)表,則表T1能夠由它的位置“1”來識別,特征標(biāo)記為代表“HTML頁上的第一個(gè)表”的符號。2.組件的屬性??疾樯厦娴睦?,其中表T1的第二行含有格式Form1。如果設(shè)計(jì)者13選擇Form1,則它能夠用它的動(dòng)作屬性唯一地識別。如果對于這個(gè)屬性來說,僅有這個(gè)格式具有值WEBBOT-SELF,則該屬性-值對的識別符變?yōu)镕orm1的特征標(biāo)記。3.組件的祖代關(guān)系,即,與某組件相關(guān)的網(wǎng)頁上其它組件的識別。在前面的例子中,組件的特征標(biāo)記是由它的特性所決定,如位置或?qū)傩?值對,這里有所不同,組件的特征標(biāo)記能夠取決于HTML頁中其它組件的識別。任何一個(gè)HTML頁都能夠由標(biāo)準(zhǔn)形式來表示。例如,考查上面的HTML頁。如果用語法A(B)來表示在組件A的范圍內(nèi)組件A包含組件B,則上面簡單的HTML頁能夠表示為HTML(T1(trtr(td(Form1(C1V1R1)))))。而且,在標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式中給定組件的識別取決于包含該給定組件的祖代組件。因此,F(xiàn)orm1的識別取決于包含組件的識別,如HTML、表T1,等等。通過遞推識別這些包含組件,可以唯一地識別格式Form1。例如,通過容器T1、T1中的第2個(gè)tr和第2個(gè)tr中的td的識別可以唯一地識別出Form1。這樣,格式Form1的特征標(biāo)記為“尋找最高級容器HTML,在容器HTML中尋找容器表T1,在容器表T1中尋找第二行容器,在該容器中尋找容納格式Form1的第一個(gè)單元”。4.“左”共有屬性組件,及其祖代組件的識別。當(dāng)一個(gè)或多個(gè)左共有屬性組件多次重復(fù)時(shí),要求對左共有屬性組件進(jìn)行識別。此時(shí),也有必要對這些左共有屬性組件進(jìn)行識別,考查下面的HTML頁。<prelisting-type="program-listing"><![CDATA[ <HTML> ?。紅ablename=″T1″> ?。紅r> <tdwidth=″13%″>Row1</td> ?。紅dwidth=″13%″align=″center″>rlc2</td> <tdwidth=″66%″align=″center″>rlc3</td> ?。紅dwidth=″8%″><palign=″center″>rlc4</td> ?。糪tr> ?。紅r> ?。紅d>12.5<\td> ?。紅d>2.5</td> ?。紅d><formmethod=″POST″name=″Form1″ action=″WEBBOT-SELF″> <inputtype=″checkbox″name=″C1″ value=″ON″> ?。糹nputtype=″radio″value=″V1″checked name=″R1″> <inputtype=″radio″name=″R1″ value=″V2″> ?。?form> </td> ?。糪tr> <\table> ?。糪HTML>]]></pre>在上面的例子中,表T1的第二行包含數(shù)據(jù)列的初始設(shè)置。如果在HTML頁中,一個(gè)實(shí)例的列數(shù)與下一個(gè)實(shí)例不同,那么格式Form1的識別要求對這些重復(fù)的列進(jìn)行識別。容器T1包含的第二個(gè)<tr>中有包含數(shù)字的重復(fù)<td>(分別為12.5和2.5),和最后一個(gè)含有格式Form1的<td>,這樣,通過識別容器T1可以唯一識別格式Form1。此時(shí),格式Form1組件的特征標(biāo)記為“尋找最高級容器HTML,在容器HTML中尋找容器T1,在容器表T1中尋找第二行容器,在該容器中尋找重復(fù)’n’次的容器<td>,最后一個(gè)容器<td>容納格式Form1”。5.從HTML頁中提取的模式??疾榍懊娴睦?,如果Form1總是含有三個(gè)輸入,則這些輸入可以用作格式的識別。特征標(biāo)記為“尋找含有三個(gè)輸入的格式,其中第一個(gè)輸入的模式為<inputtype=”checkbox”name=”C1”value=”O(jiān)N”>,第二個(gè)輸入的模式為<inputtype=”radio”value=”V1”checked...>”。有時(shí)組件的最后特征標(biāo)記由上述方法組合而成。但是,一旦組件的特征標(biāo)記建立起來,則認(rèn)為它是規(guī)范的表達(dá)方式,也就是說,這種表達(dá)方式是唯一的且非常貼切地識別了組件及其相關(guān)的屬性。圖3A和3B提供了根據(jù)本發(fā)明所建立起來的識別算法的概要。識別算法的輸入為設(shè)計(jì)者選擇的組件,輸出為用目標(biāo)語言編寫的腳本,用標(biāo)記語言的格式,這里稱作AML(下一節(jié)進(jìn)行說明),來說明所選擇出組件的完整特征標(biāo)記。首先為設(shè)計(jì)者選擇的源語言組件,這里為HTML組件,建立一個(gè)源目標(biāo)語言組件(步驟A),這里為AML語言。然后獲取或檢索AML組件的屬性值(步驟B)。測試這個(gè)屬性以確定組件的屬性可以在其父容器中唯一確定該組件(步驟C)并繼續(xù)。如果不是,則要選擇“左”共有屬性組件的次序,以便組件所依照的該次序在父容器中獲得唯一的特征標(biāo)記。然后將該次序包含在組件說明中(步驟D)。利用這個(gè)唯一的組件說明,就可對所有其它組件進(jìn)行測試以便確定它們是否需要在本級容器內(nèi)進(jìn)行說明(步驟E)。如果是,則可獲得在本級容器中其它組件的說明(步驟F)。下面的步驟側(cè)重說明的唯一性。獲得說明各自組件的說明后,需要對每個(gè)說明進(jìn)行測試以確定在當(dāng)前的級別中,子說明是否為外部說明的一部分(步驟G)。如果是,則檢索或取得所有其它模式的說明,并定義識別開關(guān)組件(Idswitch),以封裝取得的模式(步驟H)。對每個(gè)說明進(jìn)行測試以確定它是否是重復(fù)的模式(步驟I)。如果是,則定義一個(gè)包含當(dāng)前說明的識別循環(huán)(Idloop)(步驟J)。對照同一HTML頁中的其它說明對該說明進(jìn)行測試,以確定本說明定義是否唯一(步驟L)。如果不是,則檢索父容器的類型信息,并定義封裝AML組件以反映HTML頁中的容納特性(步驟M)。對設(shè)計(jì)者選擇出的所有AML組件重復(fù)該循環(huán),直到全部完成(步驟M),最后輸出AML腳本(步驟O)。按照本發(fā)明,為說明選擇組件的識別和定制步驟,計(jì)算機(jī)語言必須滿足某些要求。根據(jù)本發(fā)明,所使用的語言,即AML滿足了這些要求。另外,該語言還滿足XML的要求。為正確地表達(dá)所應(yīng)用識別的組合方法(如前述與圖3A和圖3B相關(guān)的詳細(xì)算法),目標(biāo)標(biāo)記語言必須能說明以下內(nèi)容它必須能夠說明HTML組件及其相關(guān)屬性。它必須能夠描述任何標(biāo)準(zhǔn)表達(dá)式。它必須具有高級結(jié)構(gòu),如switch、case、loop等,這些對描述替換和重復(fù)組件非常有用。它必須能夠描述HTML元素的鏈接。它必須能夠描述字符串模式。根據(jù)本發(fā)明的AML語言滿足了上述要求。它從這里定義的組件的角度觀察HTML頁格式、表、列表。組件的說明可以分為三個(gè)部分識別識別是用來識別HTML頁上的不同組件。提取提取是用來說明如何從選擇的組件中提取數(shù)據(jù)。翻譯翻譯是說明如何通過電話來呈現(xiàn)組件。所有給定的HTML頁中組件的識別、提取和翻譯都集中放在一個(gè)對話中。圖4是說明每個(gè)HTML頁與識別/提取/翻譯三元之間的關(guān)系,以及每個(gè)url流元素/HTML頁之間動(dòng)作轉(zhuǎn)換間的關(guān)系。HTML網(wǎng)頁36作為名義父組件與網(wǎng)頁38和40相關(guān)聯(lián)。每個(gè)HTML頁由url/動(dòng)作轉(zhuǎn)換50、51、52相聯(lián)。而且,每個(gè)識別/提取/翻譯三元30、32、34通過url/動(dòng)作轉(zhuǎn)換54、55、56與相應(yīng)的HTML頁36、38、40相聯(lián)。但是,在三元間沿著信息線路58、59、60也存在信息流。接下來的一節(jié)將對本發(fā)明的AML具體實(shí)例中的組件、識別方法、提取方法和內(nèi)部語法進(jìn)行更詳細(xì)的說明。C.識別和提取用元素“組件”對組件進(jìn)行識別,其中元素中的所有屬性-值對的值均用引號形式給出,使它們不作為值來對待。這樣行就可以當(dāng)做組件A來識別如下<componentname=”A”type=”tr”></component>組件的類型與HTML的標(biāo)記相對應(yīng)。利用嵌套的組件符號,可以使組件包含組件。這樣,下面的代碼符號表示組件A包含在組件B中<componentname=”B”type=”table”><componentname=”A”type=”tr”></component></component>而且,利用“idloop”元素可以使組件重復(fù)多次。這樣,下面的代碼符號表示稱作A的組件可以出現(xiàn)多次<idloopname=”aloop”><componentname=”A”type=”tr”></component></idloop>一個(gè)組件可以由兩個(gè)可替換的組件組成。下面的代碼符號表示組件A可以由組件X或組件Y組成<prelisting-type="program-listing"><![CDATA[ <componentname=”A”type=”form”> ?。糹dswitchname=”switch1”> ?。糹dcasedefine=”pattern1”><componentname=”X”type=”input”> ?。?component> ?。?idcase> ?。糹dcasedefine=”pattern2”> ?。糲omponentname=”Y”type=”select”> </component> ?。?idcase> ?。?idswitch> ?。?component>]]></pre>這里說明了能夠表示標(biāo)準(zhǔn)表達(dá)式的規(guī)定用嵌套表示父-子關(guān)系簡寫符號A(B)說明A是B的父組件。用idloop表示重復(fù)循環(huán);簡寫符號A*說明A是重復(fù)組件。用開關(guān)表示OR;簡寫符號A|B說明存在A或B。用連寫表示AND;簡寫符號AB說明A后面為B。例如,標(biāo)準(zhǔn)表達(dá)式A(B|C)*D可以用下面的代碼表示,其中A為或循環(huán)的父組件,或是用組件B和C表示,后面跟有組件D<prelisting-type="program-listing"><![CDATA[ <componentname=”X”type=”type1”> ?。糲omponentname=”A”type=”type2”> ?。糹dloopname=”loop1”> ?。糹dswitchname=”switch1”> <idcasedefine=”pattern1”> ?。糲omponentname=”B” type=”type3”></component> </idcase> ?。糹dcasedefine=”pattern2”> ?。糲omponentname=”C” type=”type4”></component> ?。?idcase> ?。?idswitch></idloop> </component> ?。糲omponentname=”D”type=”type5”></component> ?。?component>]]></pre>組件、idswitch或idloop的名稱可以用作變量,在idloop中定義的變量可以有幾種實(shí)例,一種實(shí)例用帶有idloop名下標(biāo)的變量名進(jìn)行說明。例如,“l(fā)oop1.C”代表在第一個(gè)idloop循環(huán)“l(fā)oop1”中識別的實(shí)例“C”。通常,用帶有包容idloop下標(biāo)的變量名來說明變量實(shí)例。變量也可以用<amlvar>元素明確地說明/定義。C1.變量定義用amlvar元素建立變量。變量的范圍為音頻頁的全局變量。在用戶會(huì)話中,它的作用一直到音頻頁引用完成后。在一個(gè)音頻頁中變量名必須唯一。變量具有下列屬性,它可以幫助定義變量的名稱、類型等等。name#變量名format=mmddy4/y4/etc#在HTML頁中變量的形式render=mmddy4/y4/etc#是否用音頻頁呈現(xiàn)它type=date/time/int/char/money#變量類型visible#可視文本部分,即在屏幕上所看到的#見5.5節(jié),實(shí)際上是從串#中取出HTML標(biāo)記下面的代碼符號說明了編碼“date”型字段的變量X。<amlvarname=xtype=’date’format=’mmddy4’render=’y4’></amlvar>C.2.變量用法所有變量均為包含下列元素的對象vector=y(tǒng)es/no//yes=>向量;no=>標(biāo)量length=1//向量的長度rowspan//如tr為變量,行的長度colspan//如td為變量,列的長度action//格式的動(dòng)作方式,見5.4節(jié)define//用來定義case的值,見5.7節(jié)anchor//相連的固定元素,見6.2.1節(jié)這樣,名為var1的循環(huán)就可以用變量$amlvar(var1)來調(diào)用。下面為實(shí)際的var1對象var1{vector=y(tǒng)es;length=#elementsinloop}同樣,表示表中一個(gè)單元元素的變量cell1可以用符號$amlvar(cell1)來調(diào)用,而且用$amlvar(cell1.vector)、$amlvar(cell1).colspan等來調(diào)用其字段。如果cell1是循環(huán)var1的第5次循環(huán),則與cell1相關(guān)的固定元素就可以用$amlvar(var1[4].cell1.anchor)來訪問。C.2.1系統(tǒng)全局變量變量可以標(biāo)記為“全局”。在整個(gè)頁中無論以什么樣的次序均可取得它們的定義。變量存取的順序?yàn)榫植孔兞?循環(huán)索引),頁變量(從頁中提出的變量),然后是全局變量。amlerroramlerror變量為系統(tǒng)變量,它向用戶給出出錯(cuò)信息。該變量為一對象,具有下列字段amlerror={ERRORtype;//當(dāng)前錯(cuò)誤類型intnumber_errors_step;//當(dāng)前步驟中,本類型錯(cuò)誤的編號intnumber_errors_page;//當(dāng)前頁中,本類型錯(cuò)誤的編號intnumber_errors_session;//電話會(huì)話中,本類型錯(cuò)誤的編號用戶可以用$amlvar(amlerror.type)查閱錯(cuò)誤類型。錯(cuò)誤可能是下列類型中的一種ERROR={RECOGNITITON_FAILURE,CALLER_TIMEOUT,OTHER_ERROR,WRONG_NUMBER_DIGITS}下面的表說明的是當(dāng)下述錯(cuò)誤發(fā)生時(shí)所發(fā)生的默認(rèn)動(dòng)作。錯(cuò)誤類型輸入RECOGNITION_FAILURE1)重試指定的#次;如最大對話超出,則不能再試2)隱藏提示信息3)向用戶列出導(dǎo)航菜單WRONG_NUMBER_DIGITSCALLER_TIMEOUT1)重復(fù)前面的提示并輸入#次2)列出導(dǎo)航菜單C.3.組件的識別組件可以結(jié)合到標(biāo)準(zhǔn)表達(dá)式中。HTML頁上能夠被識別的組件,包括格式、表和列表組件??梢允褂脙身?xiàng)廣泛應(yīng)用技術(shù)中的一項(xiàng)對組件進(jìn)行識別。識別類型(即,form、table、tr、td等)和名稱/位置/URL/尺寸中的一項(xiàng)或多項(xiàng)。識別組件的“結(jié)構(gòu)”。這是所有方法最好的一種。但是,這比類型識別需要更多的用戶干預(yù)。很多情況下,對用戶來說,使用其它的識別機(jī)制會(huì)更容易些。因此應(yīng)當(dāng)允許設(shè)計(jì)者從較容易的識別更進(jìn)一步到復(fù)雜的識別方法。注意選擇工作流到設(shè)計(jì)者,提供下面的識別方法1)類型對象的類型是什么,比如格式、表、行、單元、輸入等。例如<componentname=”keywordsearch”type=”form”>組件為格式2)1/002-5206325-4441208″>DesignandInferenceinFinitePopulationSampling(WileySeriesinProbabilityandMathematicalStatistics)</a></b>~<NOBR><fontcolor=#990033>Shipsin2-3days</font></NOBR><dd>A.S.Hedayat(Contributor),B.K.Sinha/Paperback/Published1991 <br>OurPrice$101.00<br><ahref=″/exec/obidos/ASIN/0471880736/qid=909790477/sr=1-1/002-5206325-4441208″><i>Readmoreaboutthistitle...</i></a><p> ?。糳t>.....]]></pre>上面是從amazon.com網(wǎng)站中的一個(gè)實(shí)例。結(jié)果組件可以說明如下<prelisting-type="program-listing"><![CDATA[ ?。糲omponentname=”resultssection”type=”body”> ?。糲omponentname=”list”type=”dl”> ?。糹dloopname=”resultsection2”> ?。糲omponentname=”item”type=“dt“></component> ?。?idloop> ?。?component> </component>]]></pre>在上面的說明中,有一個(gè)固定標(biāo)題組件“<dl>”,后面跟有一個(gè)循環(huán)組件。在每個(gè)循環(huán)組件的反復(fù)中,需要對下面的部分進(jìn)行識別<prelisting-type="program-listing"><![CDATA[ Title=DesignandInferenceinFinitePopulationSampling(WileySeriesinProbabilityandMathematicalStatistics) Shipping=Shipsin2-3days Author=A.S.Hedayat(Contributor),B.K.Sinha Type=Paperback Date=1991 Price=$101.00]]></pre>為提出上面部分,結(jié)果組件可以描述如下<prelisting-type="program-listing"><![CDATA[<componentname=resultssection> <componentname=”list”type=”dl”> ?。糹dloopname=”loop1”> ?。糲omponentname=”item”type=”dt” structure=”<dt><b><amlvarname=’title’visible=’true’></b> <nobr><amlvarname=’shipping’visible=’true’></nobr> ?。糰mlvar><dd> ?。糰mlvarname=’author’visible=’true’>/<amlvar name=’type’visible=’true’>/Published<amlvar name=’date’visible=’true’><br><amlvar>Price<amlvar name=’price’visible=’true’><br><amlvarname=’detail’ visible=’true’><p>” ?。?component> ?。?idloop> </component</component>]]></pre>標(biāo)題文本可以做為$amlvar(loop1[index].title)調(diào)用;標(biāo)題的信息可以從$amlvar(loop1[index].detail)中得到。C.7提取替代結(jié)構(gòu)在最佳的情況下,到用戶的組件可以用一種方法來識別。但是,相同的格式可以作為頁的第1/第3個(gè)格式出現(xiàn),或表有3或4個(gè)單元,將用唯一結(jié)構(gòu)識別組件擴(kuò)展到用替代結(jié)構(gòu)識別組件,有下面的例子。例1考慮下表(一個(gè)股票報(bào)價(jià)網(wǎng)站中的交易歷史表),其中行有三個(gè)不同的類型。StockPriceQuantityOperationDateIFMX10.500100BUY5/25/98ORCL51.5200SELL5/26/98IBM171.5DIVIDEND5/27/98IBM51.5INTEREST此例中,由于行不表示交易的相同“類型”,它們需要用不同的格式讀出。同時(shí),它們的輸入組織也不同。本表的規(guī)則如下它是interest類型的交易,它是dividend類型的交易它是buy/sell的交易以下代碼說明上表<prelisting-type="program-listing"><![CDATA[<componentname=″transaction″type=”table”position=”1”> ?。糹dloopname=″transactionList″loopindex=”index”><idswitchname=”switch1”> ?。糹dcasedefine=”INTEREST”> <componentname=”intrst”type=”tr”structure=”<amlvar>interest<amlvar>”> ?。糲omponentname=icol1type=”td”position=1></component> ?。糲omponentname=icol2type=”td”position=2></component> ?。糲omponentname=icol3type=”td”position=3></component> ?。糲omponentname=icol4type=”td”position=4></component> ?。糲omponentname=icol5type=”td”position=5></component> ?。?component> ?。?idcase> <idcasedefine=”DIVIDEND”> ?。糲omponentname=”dvdnc”type=”tr”structure=”<amlvar>dividend<amlvar>”><componentname=dcol1type=”td”position=1></component> ?。糲omponentname=dcol2type=”td”position=2></component> ?。糲omponentname=dcol3type=”td”position=3></component> ?。糲omponentname=dcol4type=”td”position=4></component> <componentname=dcol5type=”td”position=5></component> ?。?component> ?。?idcase> <idcasedefine=”default”> ?。糲omponentname=”intrst”type=”tr”> <componentname=col1type=”td”position=1></component> ?。糲omponentname=col2type=”td”position=2></component> ?。糲omponentname=col3type=”td”position=3></component> <componentname=col4type=”td”position=4></component> ?。糲omponentname=col5type=”td”position=5></component> </component> ?。?idcase></idloop></component>]]></pre>這里參考具體實(shí)施例對本發(fā)明進(jìn)行了說明。對于那些對相關(guān)
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說其它的實(shí)施例是很明顯的。因此除在本發(fā)明的權(quán)利要求書所說明內(nèi)容以外,本發(fā)明是不受限制的。權(quán)利要求1.在具有源數(shù)據(jù)存儲(chǔ)裝置和所述源數(shù)據(jù)識別程序存儲(chǔ)裝置的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,一種將用傳統(tǒng)可視格式表示的,且為標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式一部分的元素源數(shù)據(jù),轉(zhuǎn)換為一種標(biāo)準(zhǔn)形式以便用其它格式呈現(xiàn)所述源數(shù)據(jù)的方法,其它格式包括音頻格式和另外一種視頻格式,所述轉(zhuǎn)換方法包括檢索做為標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式格式二維數(shù)據(jù)的源數(shù)據(jù)到存儲(chǔ)裝置;在標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式的語法分析樹中尋找元素的唯一容器;此后按照語法分析樹中元素的唯一確定的路徑獲取元素的特征標(biāo)記,該特征標(biāo)記為標(biāo)準(zhǔn)表達(dá)方式,該特征標(biāo)記包括所述唯一容器和所述唯一本地路徑;將所述特征標(biāo)記存儲(chǔ)到存儲(chǔ)裝置中,以便后面檢索和呈現(xiàn)元素值時(shí)使用。2.根據(jù)權(quán)利要求1的方法,其特征在于還包括搜索所述元素的重復(fù)表達(dá)式;識別關(guān)于特征標(biāo)記的所有所述重復(fù)表達(dá)式。3.根據(jù)權(quán)利要求1的方法,其特征在于還包括搜索所選擇元素的重復(fù)實(shí)例;僅保存一個(gè)實(shí)例的表達(dá)式。4.根據(jù)權(quán)利要求3的方法,其特征在于所述的一個(gè)實(shí)例是第一個(gè)重復(fù)的元素。5.根據(jù)權(quán)利要求1的方法,還包括識別每個(gè)所述所選擇的元素。6.根據(jù)權(quán)利要求1的方法,其特征在于還包括對存儲(chǔ)的選擇元素的表達(dá)式進(jìn)行定制,以便結(jié)合目的上下文呈現(xiàn)選擇的元素。7.在具有源數(shù)據(jù)存儲(chǔ)裝置和所述源數(shù)據(jù)識別程序存儲(chǔ)裝置的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,一種將用傳統(tǒng)可視格式表示的,且為標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式一部分的元素源數(shù)據(jù),轉(zhuǎn)換為一種標(biāo)準(zhǔn)形式以便用其它格式呈現(xiàn)所述源數(shù)據(jù)的方法,其它格式包括音頻格式和另外一種視頻格式,所述轉(zhuǎn)換方法包括為設(shè)計(jì)者選擇的源語言組件建立目標(biāo)語言組件;獲取所述目標(biāo)語言組件屬性的值;對所述目標(biāo)語言組件的值進(jìn)行測試以確定,在目標(biāo)語言的父容器中,該值是否能唯一地說明所述目標(biāo)語言組件;如果不是,選擇“左”共有屬性組件的次序,以便按照該次序,在父容器中,該目標(biāo)語言組件在上下文中具有唯一的特征標(biāo)記;將所述次序包含在所述目標(biāo)語言組件的說明中;在當(dāng)前級別上測試其它目標(biāo)語言組件,以確定在當(dāng)前級別中所述其它組件是否需要說明;如果是,在當(dāng)前級別中獲取其它組件的說明;在當(dāng)前級別中測試說明的唯一性;建立說明的唯一性后,輸出所述目標(biāo)語言的腳本。8.根據(jù)權(quán)利要求7的方法,其中測試說明的唯一性包括在當(dāng)前級別中,確定主題說明是否為情況說明的一部分;如果是在當(dāng)前級別中,獲取所有其它模式的說明;并定義識別開關(guān)組件以裝入所有獲取的組件。9.根據(jù)權(quán)利要求8的方法,其中測試說明的唯一性還包括確定所述說明是否是重復(fù)模式的一部分;且如果是定義包含當(dāng)前說明的識別循環(huán)。10.根據(jù)權(quán)利要求9的方法,其中測試說明的唯一性還包括對照同一HTML頁中的其它說明對該說明進(jìn)行測試,以確定本說明定義是否唯一;如果不唯一,則獲取祖代容器的類型信息;并定義封裝AML組件以反映所述HTML頁中的容納特性。11.一個(gè)系統(tǒng),包含從主網(wǎng)絡(luò)服務(wù)器接收指定網(wǎng)絡(luò)元素的源語言信息的裝置;從源語言信息中選擇網(wǎng)絡(luò)元素的裝置;產(chǎn)生識別網(wǎng)絡(luò)元素的特征標(biāo)記的裝置;產(chǎn)生關(guān)于網(wǎng)絡(luò)元素運(yùn)行時(shí)引擎提示信息的裝置;將特征標(biāo)記和運(yùn)行時(shí)引擎提示信息存儲(chǔ)到持久存儲(chǔ)器的裝置。12.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于源語言信息包括HTML數(shù)據(jù)。13.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于特征標(biāo)記包括識別選擇的網(wǎng)絡(luò)元素的位置信息。14.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于特征標(biāo)記包括識別選擇的網(wǎng)絡(luò)元素的屬性信息。15.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于特征標(biāo)記包括一個(gè)或多個(gè)其它網(wǎng)絡(luò)元素的識別信息,識別信息具有屬性信息可以用來確定選擇的網(wǎng)絡(luò)元素的屬性信息。16.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于特征標(biāo)記包括一個(gè)或多個(gè)其它具有屬性信息的網(wǎng)絡(luò)元素的識別信息,用來確定選擇的網(wǎng)絡(luò)元素的屬性信息。17.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于特征標(biāo)記包括左共有屬性信息以識別選擇的網(wǎng)絡(luò)元素。18.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于特征標(biāo)記包括模式信息以識別選擇的網(wǎng)絡(luò)元素。19.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于運(yùn)行時(shí)引擎提示信息包括音頻提示信息。20.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于運(yùn)行時(shí)引擎提示信息包括用戶可選擇的選項(xiàng)。21.根據(jù)權(quán)利要求11的系統(tǒng),還包括對于運(yùn)行時(shí)引擎產(chǎn)生用戶可訪問響應(yīng)的裝置。22.根據(jù)權(quán)利要求11的系統(tǒng),還包括產(chǎn)生運(yùn)行時(shí)引擎設(shè)計(jì)對象的裝置。23.根據(jù)權(quán)利要求21的系統(tǒng),還包括從運(yùn)行時(shí)引擎設(shè)計(jì)對象中產(chǎn)生腳本的裝置。24.根據(jù)權(quán)利要求22的系統(tǒng),其特征在于源語言信息指定網(wǎng)頁,腳本中包括了識別網(wǎng)頁的URL。25.根據(jù)權(quán)利要求11的系統(tǒng),其特征在于選擇網(wǎng)絡(luò)元素的裝置包括選擇多個(gè)網(wǎng)絡(luò)元素的裝置,且還進(jìn)一步包括在用戶可選擇網(wǎng)絡(luò)元素間產(chǎn)生控制流運(yùn)行時(shí)引擎提示信息的裝置。26.一種方法,包括從主網(wǎng)絡(luò)服務(wù)器中接收指定網(wǎng)絡(luò)元素的源語言信息;從源語言信息中選擇網(wǎng)絡(luò)元素;產(chǎn)生識別網(wǎng)絡(luò)元素的特征標(biāo)記;產(chǎn)生關(guān)于網(wǎng)絡(luò)元素的運(yùn)行時(shí)引擎提示信息;以及將特征標(biāo)記和運(yùn)行時(shí)引擎提示信息存儲(chǔ)到持久存儲(chǔ)器中。27.根據(jù)權(quán)利要求26的方法,其中特征標(biāo)記包含從組中選出的網(wǎng)絡(luò)元素標(biāo)識符,該組包括說明網(wǎng)絡(luò)元素類型的類型標(biāo)識符,與源語言信息網(wǎng)絡(luò)元素ID相對應(yīng)的ID標(biāo)識符,與網(wǎng)頁上名稱屬性相對應(yīng)的名稱標(biāo)識符,說明網(wǎng)絡(luò)元素在網(wǎng)頁中位置的位置標(biāo)識符,說明動(dòng)作URL的URL標(biāo)識符,說明網(wǎng)絡(luò)元素的子元素結(jié)構(gòu)的尺寸標(biāo)識符,和說明網(wǎng)絡(luò)元素屬性的結(jié)構(gòu)標(biāo)識符。28.一種計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì),存儲(chǔ)程序代碼以便于計(jì)算機(jī)完成以下步驟從主網(wǎng)絡(luò)服務(wù)器接收說明網(wǎng)絡(luò)元素的源語言信息;從源語言信息中選擇網(wǎng)絡(luò)元素;產(chǎn)生說明網(wǎng)絡(luò)元素的特征標(biāo)記;產(chǎn)生關(guān)于網(wǎng)絡(luò)元素的運(yùn)行時(shí)引擎提示信息;并將特征標(biāo)記和運(yùn)行時(shí)引擎提示信息存儲(chǔ)到持久存儲(chǔ)器中。全文摘要提供了一種方法,它可以將二維數(shù)據(jù),特別是HTML格式中的信息,轉(zhuǎn)換為一種標(biāo)準(zhǔn)形式以便用音頻或其它可視格式進(jìn)行呈現(xiàn),其中每個(gè)所關(guān)心元素的選擇是基于它在標(biāo)準(zhǔn)數(shù)學(xué)表達(dá)式中的作用,即任何表示方法均可以用樹結(jié)構(gòu)進(jìn)行語法分析。為完成這個(gè)選擇過程,先要確定元素的容器的位置,然后按照語法樹確定元素的本地線路,以便構(gòu)造根據(jù)這個(gè)識別所建立的元素特征標(biāo)記,并存儲(chǔ)以便后面檢索和翻譯元素值時(shí)使用。這樣,這些元素能經(jīng)過適當(dāng)?shù)恼Z言翻譯器呈現(xiàn)給查詢者。對發(fā)明進(jìn)一步優(yōu)化,本方法可以搜索重復(fù)的元素,并只存儲(chǔ)一個(gè)所選擇的重復(fù)元素,比如第一個(gè)重復(fù)的元素。文檔編號G06F17/28GK1379882SQ00814426公開日2002年11月13日申請日期2000年9月8日優(yōu)先權(quán)日1999年9月10日發(fā)明者普蘭卡什·伊耶,皮雨什·戈?duì)?雷杰夫·莫希德雷,艾米塔什·辛哈,帕雷薩德·克羅薩普里,羅納德·馬克,沙石·維蒂爾申請人:伊維里帕斯公司