專利名稱:通過分枝隔離管理用戶接口的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī),更具體地說,涉及訪問文檔并向用戶呈現(xiàn)文檔的計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)。
小型計(jì)算設(shè)備和/或通信設(shè)備正變得更加普及。這種相對(duì)小型的設(shè)備包括掌上計(jì)算機(jī)、手持計(jì)算機(jī),以及諸如蜂窩電話等的無線通信設(shè)備。這種相對(duì)小型的設(shè)備不具有顯示裝置,或者顯示裝置較小。這種相對(duì)小型的設(shè)備的存儲(chǔ)器和/或處理能力也是有限的。
萬維網(wǎng)(簡稱“Web”)是向各種客戶機(jī)提供專用格式化的電子文檔的因特網(wǎng)服務(wù)器。Web服務(wù)器當(dāng)前支持基于文本的置標(biāo)語言(稱為超文本置標(biāo)語言(HTML))格式的文檔。
為了向具有有限能力的客戶機(jī)(例如掌上和手持計(jì)算機(jī))提供Web訪問,通常在客戶機(jī)和因特網(wǎng)服務(wù)器之間設(shè)置“代碼轉(zhuǎn)換器代理(transcoder proxy)。代碼轉(zhuǎn)換器代理例如根據(jù)客戶機(jī)能力為客戶機(jī)提供請(qǐng)求的Web文檔的選定部分。這樣,代碼轉(zhuǎn)換器代理將一個(gè)或多Web文檔的選定部分從一種數(shù)字格式翻譯成另一種格式。
圖1是當(dāng)前用于向客戶機(jī)14提供電子文檔12的系統(tǒng)10的方框圖。電子文檔12例如可以是Web頁或交互應(yīng)用程序(例如,應(yīng)由用戶填寫的電子表格以獲取用戶信息)。系統(tǒng)10包括互聯(lián)網(wǎng)服務(wù)器16和設(shè)置在客戶機(jī)14和互聯(lián)網(wǎng)服務(wù)器16之間的代碼轉(zhuǎn)換器代理18。代碼轉(zhuǎn)換器代理18從客戶機(jī)14向互聯(lián)網(wǎng)服務(wù)器16傳遞對(duì)文檔12的請(qǐng)求。這樣的請(qǐng)求通常包括用于指定文檔12的互聯(lián)網(wǎng)協(xié)議(IP)地址和包括文檔12的文件名稱的統(tǒng)一資源定位器(URL)。
互聯(lián)網(wǎng)服務(wù)器16取出文檔12并將文檔12提供給代碼轉(zhuǎn)換器代理18。代碼轉(zhuǎn)換器代理18將文檔12從一種數(shù)字格式(例如超文本置標(biāo)語言或HTML)翻譯成以運(yùn)行在客戶機(jī)14內(nèi)的Web瀏覽器應(yīng)用程序可以理解的腳本語言編寫的腳本。Web瀏覽器程序可以使用腳本傳遞的信息在客戶機(jī)14的顯示裝置上顯示文檔12。替代地,Web瀏覽器程序可以使用腳本傳遞的信息通過客戶機(jī)14的揚(yáng)聲器以語音形式輸出文檔12的內(nèi)容。
這樣當(dāng)客戶機(jī)14具有的存儲(chǔ)器、處理能力和/或顯示能力是有限的,并且文檔12大到超過了客戶機(jī)14的一個(gè)或多個(gè)有限能力時(shí)就會(huì)出現(xiàn)問題。例如客戶機(jī)14可能是具有有限的存儲(chǔ)器、處理能力和/或顯示能力的掌上或手持計(jì)算機(jī)。人們正在付出巨大努力來研究一種使大文檔的內(nèi)容適于客戶機(jī)14的有限能力的方法。已知的內(nèi)容變換方法包括代替圖象顯示短的文本說明、將圖象轉(zhuǎn)換成鏈接、將表轉(zhuǎn)換成條列表、去掉設(shè)備不支持的特性(例如,JAVASCRIPTTM小應(yīng)用程序),去掉設(shè)備不支持的對(duì)圖象的引用、將聯(lián)合圖形專家組(JPEG)圖象轉(zhuǎn)換成圖形互換格式(GIF)圖形用于只支持GIF圖象的設(shè)備,通過降低尺寸和/或彩色等級(jí)對(duì)GIF和JPEG圖象進(jìn)行代碼轉(zhuǎn)換以及摘錄文本元素。
還希望具有能夠根據(jù)文檔12的結(jié)構(gòu)和/或客戶機(jī)14的能力向客戶機(jī)14傳遞電子文檔12(例如Web頁)的系統(tǒng)和方法。
本發(fā)明提供用于呈現(xiàn)(顯示)分層結(jié)構(gòu)的幾個(gè)不同的方法。分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的層次關(guān)系。分層結(jié)構(gòu)可以在諸如Web文檔、交互式應(yīng)用程序或分成幾部分的地圖等電子文檔中實(shí)施。每個(gè)元素有一個(gè)“呈現(xiàn)屬性”,可以是數(shù)值或函數(shù)。一個(gè)單一的元素具有“焦點(diǎn)”(例如根據(jù)由作者編碼的文檔或缺省)。
“分枝隔離”方法的第一實(shí)施例用于呈現(xiàn)分層結(jié)構(gòu),其形成了分層結(jié)構(gòu)的一個(gè)模型。該模型包括相對(duì)于其他層排列的多層;多個(gè)節(jié)點(diǎn);以及至少一個(gè)分枝。每個(gè)節(jié)點(diǎn)代表單一元素。一個(gè)節(jié)點(diǎn)是根節(jié)點(diǎn)并占據(jù)分層結(jié)構(gòu)的最高層。一個(gè)給定的分枝將第一層中的第一節(jié)點(diǎn)連接到第一層的直接下一層的第二節(jié)點(diǎn)上。每個(gè)分枝代表了分枝連接的節(jié)點(diǎn)之間的分層關(guān)系。
術(shù)語“焦點(diǎn)節(jié)點(diǎn)”用于描述表示接收焦點(diǎn)的元素的節(jié)點(diǎn)。在分枝隔離方法的實(shí)施例中,確定模型中從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)的路徑。路徑是從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)沿分枝形成的路由。由根節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性被有選擇地提供。例如,分層結(jié)構(gòu)可能是HTML文檔,并且根節(jié)點(diǎn)的呈現(xiàn)屬性可能簡單地為“<BODY>”。在此情況下,根節(jié)點(diǎn)的呈現(xiàn)屬性傳遞少的信息并可能不提供。
一旦由根節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性已被有選擇地提供,則根節(jié)點(diǎn)之外的沿著從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)路徑上的其他節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性被提供。然后每個(gè)由一低于焦點(diǎn)節(jié)點(diǎn)層的節(jié)點(diǎn)代表并且被一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的元素的呈現(xiàn)屬性被提供。
模型可以是樹形結(jié)構(gòu)。在此情況下,低于焦點(diǎn)節(jié)點(diǎn)層的并由一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)包括樹結(jié)構(gòu)的“子樹”,其中焦點(diǎn)節(jié)點(diǎn)為子樹的根節(jié)點(diǎn)。于是將低于焦點(diǎn)節(jié)點(diǎn)層的并由一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)描述成“樹結(jié)構(gòu)的子樹中的結(jié)點(diǎn),其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn)”。
電子文檔傳遞系統(tǒng)的一個(gè)實(shí)施例包括耦合(有線或無線通信)到代碼轉(zhuǎn)換器代理的客戶機(jī)。該客戶機(jī)例如可以是具有有限存儲(chǔ)器和/或處理能力的掌上或手持計(jì)算機(jī)或無線通信設(shè)備。耦合代碼轉(zhuǎn)換器代理用于接收電子文檔。每個(gè)電子文檔包括一個(gè)或多個(gè)元素,并且以第一數(shù)字格式(例如,諸如HTML或擴(kuò)展置標(biāo)語言XML的基于文本的置標(biāo)語言)表示。
可以在代碼轉(zhuǎn)換器代理中實(shí)施的分枝隔離方法的第二實(shí)施例,包括以第一數(shù)字格式(例如HTML或擴(kuò)展XML的基于文本的置標(biāo)語言)表示的分層結(jié)構(gòu)。如上所述地形成分層結(jié)構(gòu)的樹形模型。該樹形模型用于產(chǎn)生以第二數(shù)字格式(例如腳本語言)表示的原始腳本。原始腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性(ⅰ)沿著從根節(jié)點(diǎn)至原焦點(diǎn)節(jié)點(diǎn)的第一路徑上的節(jié)點(diǎn),其中原焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);和(ⅱ)樹形模型的第一子樹中的節(jié)點(diǎn),其中原焦點(diǎn)節(jié)點(diǎn)是第一子樹的根節(jié)點(diǎn)。然后提供(例如向客戶機(jī))原始腳本。
該方法還包括接收一事件,其中事件表示在有焦點(diǎn)的元素中發(fā)生了變化。響應(yīng)該事件,可以使用樹形模型產(chǎn)生以第二數(shù)字格式表示的新的腳本。該新的腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性(ⅱ)沿著從根節(jié)點(diǎn)至新焦點(diǎn)節(jié)點(diǎn)的第二路徑上的節(jié)點(diǎn),其中新焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn)作為由事件表明的焦點(diǎn)中變化結(jié)果;和在第二子樹中的節(jié)點(diǎn),其中新焦點(diǎn)節(jié)點(diǎn)是第二子樹的根節(jié)點(diǎn)。提供(例如向客戶機(jī))新的腳本。
分枝隔離方法的第三實(shí)施例可以在客戶機(jī)上實(shí)施,包括接收從如上所述的分層結(jié)構(gòu)的樹模型推導(dǎo)出的原始腳本。提供原始腳本中的呈現(xiàn)屬性。第三方法還可以包括響應(yīng)用戶輸入產(chǎn)生事件,其中事件表明有焦點(diǎn)的元素中的變化。(例如向代碼轉(zhuǎn)換器代理)提供事件??梢?例如從代碼轉(zhuǎn)換器代理)接收以第二種數(shù)字格式并如上所述從樹模型推導(dǎo)出的新腳本??梢蕴峁┬履_本中的呈現(xiàn)屬性。
還描述一種用于呈現(xiàn)分層結(jié)構(gòu)的觀察深度方法。可以將分枝隔離方法和觀察深度方法組合起來。該組合的一個(gè)實(shí)施例包括訪問分層結(jié)構(gòu)并形成如上所述的分層結(jié)構(gòu)的模型。根據(jù)分枝隔離方法選擇模型的第一部分,并包括(ⅰ)沿著從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑上的節(jié)點(diǎn),和(ⅱ)在低于焦點(diǎn)節(jié)點(diǎn)層的層中并由一個(gè)或多個(gè)分枝連接到焦點(diǎn)的節(jié)點(diǎn)。根據(jù)觀察深度方法選擇模型的第二部分,包括與焦點(diǎn)節(jié)點(diǎn)處于同層的節(jié)點(diǎn);和(ⅱ)高于焦點(diǎn)節(jié)點(diǎn)層的選定的一些層中的節(jié)點(diǎn)。提供在模型第一和第二部分中由節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性。當(dāng)根節(jié)點(diǎn)在模型的第一和第二部分中,可以有選擇地提供根節(jié)點(diǎn)所表示的元素的呈現(xiàn)屬性。
下面描述用于呈現(xiàn)分層結(jié)構(gòu)的分枝隔離和/或觀察深度方法所應(yīng)用的計(jì)算機(jī)系統(tǒng)的兩個(gè)實(shí)施例。這兩個(gè)計(jì)算機(jī)系統(tǒng)的實(shí)施例包括與客戶應(yīng)用耦合的主機(jī)應(yīng)用。主機(jī)應(yīng)用和客戶應(yīng)用可以是在計(jì)算機(jī)系統(tǒng)中同時(shí)執(zhí)行(運(yùn)行)的單獨(dú)的軟件程序。主機(jī)應(yīng)用例如可以是Web瀏覽器??蛻魬?yīng)用例如可以是輔助技術(shù)接口。在兩個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)包括如上所述的分層結(jié)構(gòu)。該主機(jī)應(yīng)用耦合到分層結(jié)構(gòu)。在其他實(shí)施例中,分層結(jié)構(gòu)可以在計(jì)算機(jī)系統(tǒng)的外部,并且主機(jī)應(yīng)用可以耦合接收或訪問訪分層結(jié)構(gòu)。
主機(jī)應(yīng)用訪問分層結(jié)構(gòu)并形成分層結(jié)構(gòu)的樹形模型(即樹)。在計(jì)算機(jī)系統(tǒng)的第一實(shí)施例中,樹駐留在主機(jī)應(yīng)用中。如上所述,樹包括節(jié)點(diǎn)和分枝。
為了提供分層結(jié)構(gòu)的一部分,該客戶應(yīng)用訪問主機(jī)應(yīng)用中的樹。該客戶應(yīng)用可以實(shí)施如上所述的分枝隔離方法。在此情況下,客戶應(yīng)用確定模型中從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)的路徑??蛻魬?yīng)用產(chǎn)生呈現(xiàn)屬性集。因?yàn)槿缟纤龅脑?,呈現(xiàn)屬性可以包括或不包括根節(jié)點(diǎn)的呈現(xiàn)屬性。呈現(xiàn)屬性集包括沿著從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)的路徑上除根節(jié)點(diǎn)之外的節(jié)點(diǎn)所表示的每個(gè)元素的呈現(xiàn)屬性。呈現(xiàn)屬性集還包括低于焦點(diǎn)節(jié)點(diǎn)層并通過一個(gè)或多個(gè)分枝耦合到焦點(diǎn)的節(jié)點(diǎn)(即樹的子樹,其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn))所表示的每個(gè)元素的呈現(xiàn)屬性??蛻魬?yīng)用還可以實(shí)施如上所述的分枝隔離和觀察深度方法的組合。
客戶應(yīng)用向計(jì)算機(jī)系統(tǒng)的用戶代理提供呈現(xiàn)屬性集??蛻魬?yīng)用可以作為主機(jī)應(yīng)用和用戶代理之間的接口。用戶代理可以用作客戶應(yīng)用和計(jì)算機(jī)系統(tǒng)的輸出裝置之間的接口。輸出裝置例如可以是Braille顯示或文本-語音轉(zhuǎn)換器。Braille顯示可以是用于可視挑戰(zhàn)用戶(例如永久或暫時(shí)視覺損壞的用戶)選擇的輸出裝置。用戶代理可以用作客戶應(yīng)用和計(jì)算機(jī)系統(tǒng)的輸入裝置之間的接口。輸入裝置例如可以是語音-文本轉(zhuǎn)換器。語音-文本轉(zhuǎn)換器例如可以作為物理挑戰(zhàn)用戶(例如永久或暫時(shí)不能操作諸如鼠標(biāo)或鍵盤等傳統(tǒng)輸入裝置的用戶)的輸入裝置。用戶代理使用呈現(xiàn)屬性集來產(chǎn)生輸出命令并向輸出裝置提供輸出命令。結(jié)果,顯示部分分層結(jié)構(gòu),或者由輸出設(shè)備提供部分分層結(jié)構(gòu)。
在計(jì)算機(jī)系統(tǒng)的第二實(shí)施例中,樹駐留在客戶應(yīng)用中??蛻魬?yīng)用通過主機(jī)應(yīng)用訪問分層結(jié)構(gòu)并形成樹??蛻魬?yīng)用訪問樹以形成如上所述的呈現(xiàn)屬性集,并向用戶代理提供呈現(xiàn)屬性集。
在參照附圖閱讀了有關(guān)本發(fā)明的說明后,會(huì)更加理解本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn)。
圖1是當(dāng)前用于向客戶機(jī)提供電子文檔的系統(tǒng)的方框圖2是用于向客戶機(jī)提供電子文檔的系統(tǒng)的一個(gè)實(shí)施例的方框圖,其中電子文檔具有分層結(jié)構(gòu),并且其中使用樹模型或樹來表示電子文檔的分層結(jié)構(gòu);圖3示意了圖2中的樹的例子;圖4示意了圖3中的樹的例子,進(jìn)一步說明了樹的結(jié)構(gòu);圖5是用于表示分層結(jié)構(gòu)的“分枝隔離”方法的一個(gè)實(shí)施例的流程圖;圖6示意了圖3中的樹的例子,強(qiáng)調(diào)了樹的多層次;圖7是用于表示分層結(jié)構(gòu)的“觀察深度”方法的一個(gè)實(shí)施例的流程圖;圖8是實(shí)施用于表示分層結(jié)構(gòu)的分枝隔離和/或觀察深度方法的計(jì)算機(jī)系統(tǒng)的第一實(shí)施例的方框圖;以及圖9是圖8的計(jì)算機(jī)系統(tǒng)的第二實(shí)施例的方框圖。
盡管通過圖中的例子示出的本發(fā)明適于各種修改和變型,然而也應(yīng)理解,這些附圖和說明不應(yīng)將本發(fā)明限制于所公開的形式,相反,本發(fā)明涵蓋了落入由所附權(quán)利要求限定的本發(fā)明的精神實(shí)質(zhì)和范圍內(nèi)的所有修改、等價(jià)物和變型。
圖2是用于向客戶機(jī)22提供電子文檔12的系統(tǒng)20的實(shí)施例的方框圖。通常,電子文檔12具有包括多個(gè)元素的分層結(jié)構(gòu),并定義元素之間的分層關(guān)系。電子文檔12例如可以是Web頁、交互式應(yīng)用程序(例如由用戶填寫以獲得用戶信息的電子表格),或劃分成各部分的地圖。客戶機(jī)22例如可以是掌上計(jì)算機(jī)、手持計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)或無線通信設(shè)備,并且可能具有有限的存儲(chǔ)器和/或處理能力。在圖2所示的實(shí)施例中,客戶機(jī)22包括輸出裝置24。輸出裝置24可能包括具有有限顯示能力的相對(duì)小型的顯示裝置。輸出裝置24可能還包括用于產(chǎn)生語音的揚(yáng)聲器。
在圖2的實(shí)施例中,系統(tǒng)20包括互聯(lián)網(wǎng)服務(wù)器16和耦合于客戶機(jī)22和因特網(wǎng)服務(wù)器16之間的過渡服務(wù)器26。過渡服務(wù)器26包括代碼轉(zhuǎn)換器代理28。代碼轉(zhuǎn)換器代理28從客戶機(jī)22向互聯(lián)網(wǎng)服務(wù)器16傳遞對(duì)電子文檔(例如文檔12)的請(qǐng)求。如上所述,這樣的請(qǐng)求通常包括用于指明文檔12的網(wǎng)間協(xié)議(IP)地址和包含文檔12的文件的名稱的統(tǒng)一資源定位器(URL)。互聯(lián)網(wǎng)服務(wù)器16取出文檔12并將文檔12提供給代碼轉(zhuǎn)換器代理28。代碼轉(zhuǎn)換器代理28接收來自互聯(lián)網(wǎng)服務(wù)器16的以數(shù)字格式表示的文檔12。已知的數(shù)字格式包括諸如超文本置標(biāo)語言(HTML)和擴(kuò)展置標(biāo)語言(XML)的基于文本的置標(biāo)語言格式。其他常用的數(shù)字格式包括POSTSCRIPT(TMAdobeSys.Inc.,San Jose,CA),便攜文檔格式(PDF)和先進(jìn)功能打印(AFP)。
電子文檔12包括表示文檔結(jié)構(gòu)的多元素。例如,電子文檔可以是包括諸如段、超文本鏈接、列表、表和/或圖象的Web頁。文檔12的元素形成分層,并且電子文檔12定義元素之間的分層關(guān)系。電子文檔可以由樹形結(jié)構(gòu)來表示。代碼轉(zhuǎn)換器代理28對(duì)文檔12的元素進(jìn)行語法分析,形成樹30并存儲(chǔ)樹30,其中樹30是文檔12的分層結(jié)構(gòu)的表示或模型。代碼轉(zhuǎn)換器代理使用樹30產(chǎn)生以用戶代理32(運(yùn)行在客戶機(jī)22內(nèi)的Web瀏覽器應(yīng)用程序)理解的腳本語言寫成的腳本。
腳本語言例如可以是代碼轉(zhuǎn)換器代理28從互聯(lián)網(wǎng)服務(wù)器16接收文檔所使用的數(shù)字格式的子集(例如,HTML、XML、POSTSCRIPT,或PDF的子集)。在生成腳本時(shí),代碼轉(zhuǎn)換器代理28可以將電子文檔12中的圖形圖象從一種格式轉(zhuǎn)換成另一種格式(例如從聯(lián)合圖形專家組/JPEG格式轉(zhuǎn)換成圖形交換格式/GIF格式,從JPEG和GIF格式轉(zhuǎn)換成定標(biāo)向量圖形/SVG格式等)。腳本可以包括聲頻數(shù)據(jù)文件(例如,wav文件),代碼轉(zhuǎn)換的Braille和/或非格式化文本。
電子文檔12的每個(gè)元素具有“呈現(xiàn)屬性”。一個(gè)給定元素的呈現(xiàn)屬性可以是值(例如元素的名稱或標(biāo)題)或函數(shù)(例如一個(gè)或多個(gè)被執(zhí)行的指令或語句以呈現(xiàn)元素)。代碼轉(zhuǎn)換器代理28例如可以將圖象翻譯成用于呈現(xiàn)圖象的一組繪圖命令。在此情況下,圖象的呈現(xiàn)屬性是包括繪圖命令集的函數(shù)。如以下詳細(xì)說明的,由代碼轉(zhuǎn)換器代理28產(chǎn)生的腳本包括文檔12的選定部分內(nèi)的元素的呈現(xiàn)屬性。代碼轉(zhuǎn)換器代理28向用戶代理32提供生成的腳本。響應(yīng)接收到的腳本,客戶機(jī)22的用戶代理32產(chǎn)生呈現(xiàn)信息34。用戶代理32使用呈現(xiàn)信息34向輸出裝置24發(fā)出輸出命令。
圖3是圖2中表示相應(yīng)的電子文檔12的分層結(jié)構(gòu)的示例樹30的示意圖。樹30包括文檔12的元素并傳遞文檔12的元素之間的分層關(guān)系。就技術(shù)術(shù)語來說,樹30是不包括環(huán)與回路的連接圖。圖形是由有限個(gè)通過稱為“分枝”或“邊”的線段連接的“節(jié)點(diǎn)”或“頂點(diǎn)”構(gòu)成的幾何圖形。連接圖是其中有可能形成任意兩節(jié)點(diǎn)或頂點(diǎn)之間的“路徑”的圖形?;芈坊颦h(huán)路是以相同的節(jié)點(diǎn)或頂點(diǎn)開始或結(jié)束的路徑。
圖3中的樹30包括節(jié)點(diǎn)40和分枝42。節(jié)點(diǎn)40代表文檔12的元素。節(jié)點(diǎn)40存在于樹30內(nèi)的不同層次上。每個(gè)分枝42在不同層次上互連兩節(jié)點(diǎn)。節(jié)點(diǎn)30包括在圖3的樹30上在層次0上標(biāo)記為“0”的“根”節(jié)點(diǎn)。節(jié)點(diǎn)0是層1中節(jié)點(diǎn)1A和1B的父節(jié)點(diǎn),而節(jié)點(diǎn)1A和1B是“同胞”。節(jié)點(diǎn)2A、2B和2C是節(jié)點(diǎn)1A的“子節(jié)點(diǎn)”。類似地,節(jié)點(diǎn)2D-2F是節(jié)點(diǎn)1B的子節(jié)點(diǎn)。節(jié)點(diǎn)3A-3C是節(jié)點(diǎn)2A的子節(jié)點(diǎn),節(jié)點(diǎn)3D-3F是節(jié)點(diǎn)2B的子節(jié)點(diǎn),節(jié)點(diǎn)3G-3I是節(jié)點(diǎn)2C的子節(jié)點(diǎn)。節(jié)點(diǎn)2D-2F和節(jié)點(diǎn)3A-3I無子節(jié)點(diǎn),并稱為“葉子”或“外部”節(jié)點(diǎn)。所有至少具有一個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)4D稱為“內(nèi)部”節(jié)點(diǎn)。
例如,文檔12可以是包含表元素和列表元素的HTML文檔。樹30的節(jié)點(diǎn)0可以代表整個(gè)文檔12(例如,文檔12的體元素)。節(jié)點(diǎn)1A可能表示表元素,而節(jié)點(diǎn)1B可能代表列表元素。節(jié)點(diǎn)1A的子節(jié)點(diǎn)2A-2C可能分別代表第一行的行元素(第一行內(nèi)的提供的值)、第二行的行元素以及表元素的標(biāo)題元素。節(jié)點(diǎn)2A、節(jié)點(diǎn)3A-3C的三個(gè)子節(jié)點(diǎn)可能分別表示表元素的第一行的不同行元素。節(jié)點(diǎn)2B、節(jié)點(diǎn)3D-3F的三個(gè)子節(jié)點(diǎn)可能分別表示表元素的第二行的不同行元素。節(jié)點(diǎn)2C、節(jié)點(diǎn)3G-3I的三個(gè)子節(jié)點(diǎn)可能分別表示表元素的不同標(biāo)題元素。
圖2和圖4現(xiàn)在將用于描述基于文檔12的結(jié)構(gòu)和/或客戶機(jī)22的能力向客戶機(jī)22提供文檔12的一部分第一“分枝隔離”方法。分枝隔離方法可以在圖2的代碼轉(zhuǎn)換代理28內(nèi)實(shí)施。在系統(tǒng)初始化和/或系統(tǒng)運(yùn)行時(shí),用戶代理32可以向代碼轉(zhuǎn)換器代理28提供客戶數(shù)據(jù)??蛻魯?shù)據(jù)可能包括客戶機(jī)22的信息傳遞能力(例如存儲(chǔ)器大小、處理能力、顯示器大小等)。代碼轉(zhuǎn)換器代理28可以基于從客戶機(jī)22接收到的客戶數(shù)據(jù)實(shí)現(xiàn)分枝隔離方法。
圖4是進(jìn)一步描述圖3中的示例樹30的結(jié)構(gòu)的圖。如上所述,節(jié)點(diǎn)0是樹30的根節(jié)點(diǎn)。圖4的樹30包括第一子樹44和第二子樹46。節(jié)點(diǎn)0的子節(jié)點(diǎn)1A是第一子樹44的根。節(jié)點(diǎn)0的其他子節(jié)點(diǎn)1B是第二子樹46的根。子樹44包括節(jié)點(diǎn)1A和節(jié)點(diǎn)1A的子節(jié)點(diǎn)2A-2C,節(jié)點(diǎn)2A的子節(jié)點(diǎn)3A-3C,節(jié)點(diǎn)2B的子節(jié)點(diǎn)3D-3F以及節(jié)點(diǎn)2C的子節(jié)點(diǎn)3G-3I。子樹46包括節(jié)點(diǎn)1B和節(jié)點(diǎn)1B的子節(jié)點(diǎn)2D-2F。
圖4的樹30還包括一個(gè)第三子樹48、第四子樹50和第五子樹52。節(jié)點(diǎn)1A的子節(jié)點(diǎn)2A是第三子樹48的根節(jié)點(diǎn)。子樹48包括節(jié)點(diǎn)2A和節(jié)點(diǎn)2A的子節(jié)點(diǎn)3A-3C。節(jié)點(diǎn)1A的另一子節(jié)點(diǎn)2B是第四子樹50的根。子樹50包括節(jié)點(diǎn)2B和2B的子節(jié)點(diǎn)3D-3F。節(jié)點(diǎn)1A的第三子節(jié)點(diǎn)2C是第五子樹52的根。子樹52包括節(jié)點(diǎn)2C和節(jié)點(diǎn)2C的子節(jié)點(diǎn)3G-3I。
根據(jù)作者對(duì)文檔12的編碼,文檔12的元素的單個(gè)元素最初具有文檔12內(nèi)的焦點(diǎn)。在圖4中,由節(jié)點(diǎn)1A表示的元素最初具有焦點(diǎn)。如以下詳細(xì)地說明的那樣,使用通過用戶輸入可變更的焦點(diǎn)向客戶機(jī)22提供文檔12的選擇部分。實(shí)施分枝隔離方法,代碼轉(zhuǎn)換器代理28可以將文檔12的選定部分從一種數(shù)字格式(例如HTML、POSTSCRIPT、PDF等)翻譯成客戶機(jī)22內(nèi)的用戶代理32(例如Web瀏覽器)理解的腳本語言編寫的腳本,并將腳本提供給用戶代理32。
分枝隔離方法包括確定從樹的根節(jié)點(diǎn)(樹30的節(jié)點(diǎn)0)到表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的路徑。例如,在圖4中,由節(jié)點(diǎn)1A表示的元素最初具有如上所述的焦點(diǎn)。從節(jié)點(diǎn)A到節(jié)點(diǎn)B的路徑是從節(jié)點(diǎn)A至節(jié)點(diǎn)B的序列。在樹形結(jié)構(gòu)中,從根節(jié)點(diǎn)至樹中任何其它節(jié)點(diǎn)只能有一條路徑。在圖4中,從樹30的根節(jié)點(diǎn)(節(jié)點(diǎn)0)到節(jié)點(diǎn)1A的路徑是節(jié)點(diǎn)序列(0,1A)。
分枝隔離方法還包括調(diào)用以下節(jié)點(diǎn)表示的元素沿著從根節(jié)點(diǎn)至表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的路徑上的節(jié)點(diǎn)以及表示接收焦點(diǎn)的元素的節(jié)點(diǎn)為根的任何子樹中的節(jié)點(diǎn)。調(diào)用一個(gè)元素是實(shí)施該元素的呈現(xiàn)屬性(例如,函數(shù)值)。
例如,參照?qǐng)D2和圖4,代碼轉(zhuǎn)換器代理28接收文檔12并形成樹30,文檔12的分層表示。例如文檔12可以是HTML文檔并且節(jié)點(diǎn)0可能表示文檔12的主體。節(jié)點(diǎn)1A可以表示文檔12的表元素,并且最初具有如圖4所述的焦點(diǎn)。在此情況下,代碼轉(zhuǎn)換器代理28可以實(shí)施分枝隔離方法基于接收到的客戶數(shù)據(jù),通過調(diào)用由沿著從根節(jié)點(diǎn)0至節(jié)點(diǎn)1A的路徑上的節(jié)點(diǎn)表示的元素,表示接收焦點(diǎn)的元素,以及子樹44的節(jié)點(diǎn)以產(chǎn)生腳本。
例如,節(jié)點(diǎn)0表示的元素可以具有值,該值是HTML標(biāo)記“<BODY>”。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)0表示的元素,從而獲得元素的值“<BODY>”。代碼轉(zhuǎn)換器代理28可以包括也可以不包括腳本上“<BODY>”值。
由節(jié)點(diǎn)1A表示的元素可以具有值,該值是HTML標(biāo)記“<TABLE>”。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)1A表示的元素,從而獲得元素的值“<TABLE>”。代碼轉(zhuǎn)換器代理28可以包括腳本中的“<TABLE>”值以提供表。
接收初始焦點(diǎn)的節(jié)點(diǎn)1A是子樹44的根節(jié)點(diǎn)。在實(shí)施分枝隔離法時(shí),代碼轉(zhuǎn)換器代理28可以調(diào)用子樹44的所有元素。這樣調(diào)用產(chǎn)生表的第一和第二行的行元素,以及表的標(biāo)題元素。代碼轉(zhuǎn)換器代理28可以在腳本中包括第一和第二行的行元素,以及標(biāo)題元素以提供表。
如上所述,由代碼轉(zhuǎn)換器代理28產(chǎn)生的腳本包括文檔12的選定部分中的元素的呈現(xiàn)屬性(例如,值或函數(shù))。代碼轉(zhuǎn)換器代理28向用戶代理32提供產(chǎn)生的腳本。響應(yīng)接收到的腳本,客戶機(jī)22的用戶代理32產(chǎn)生呈現(xiàn)信息34。用戶代理32使用呈現(xiàn)信息34向輸出裝置24發(fā)出輸出命令。如上所述,輸出裝置24可以包括具有有限顯示能力的相對(duì)小型的顯示裝置。輸出裝置24還包括用于產(chǎn)生語音的揚(yáng)聲器。
參照?qǐng)D2,客戶機(jī)22還包括耦合到用戶代理32的輸入裝置36。輸入裝置36例如可以是一個(gè)或多個(gè)鍵或按鈕,諸如鼠標(biāo)的指點(diǎn)裝置或語音-文本轉(zhuǎn)換器。通過輸入裝置36的用戶輸入可以使用戶代理32產(chǎn)生事件。事件可以導(dǎo)致文檔12內(nèi)焦點(diǎn)的變化。例如,在用戶按鼠標(biāo)按鈕而指示或光標(biāo)處于當(dāng)前不接收焦點(diǎn)的表的行元素上,這就將焦點(diǎn)改變到表的行元素。如圖2所指出的,用戶代理32可以向代碼轉(zhuǎn)換器代理28提供事件。用戶還可以按下鍵,將焦點(diǎn)傳送給文檔12中的下一鏈路。
注意,客戶機(jī)22可能包括其他沒有示出的輸入、輸出和/或輸入/輸出(I/O)裝置。還應(yīng)注意,輸入裝置36和輸出裝置24可能是組合的I/O裝置,如語音引擎,用于將表示文本的數(shù)字信號(hào)轉(zhuǎn)換成語音,還將語音轉(zhuǎn)換成表示文本的數(shù)字信號(hào),或者是觸摸屏I/O裝置,包括可視顯示屏幕和通過施與顯示屏幕的壓力(例如通過鐵筆)接收用戶輸入。
響應(yīng)焦點(diǎn)的改變,代碼變換器代理28可以使用當(dāng)前接收焦點(diǎn)的元素再應(yīng)用分枝隔離方法,從而通過產(chǎn)生新的腳本并向客戶機(jī)22提供新的腳本來響應(yīng)焦點(diǎn)的變化。響應(yīng)新的腳本,客戶機(jī)22的用戶代理32可以產(chǎn)生新的呈現(xiàn)信息,并使用新的呈現(xiàn)信息向輸出裝置24發(fā)出新的輸出命令。
例如,在圖4中,如果焦點(diǎn)從節(jié)點(diǎn)1A表示的表元素變化成由節(jié)點(diǎn)3A表示的表的第一行的行元素(例如通過響應(yīng)用戶輸入產(chǎn)生的事件),代碼轉(zhuǎn)換器代理28可以重新應(yīng)用分枝隔離方法。代碼轉(zhuǎn)換器代理28于是可以確定從根節(jié)點(diǎn)0到節(jié)點(diǎn)3A的路徑,調(diào)用沿該路徑的元素,以及由以節(jié)點(diǎn)3A為根的任何子樹中的節(jié)點(diǎn)表示的元素,以產(chǎn)生新的腳本,并向客戶機(jī)22提供新的腳本。
圖5是用于表示分層結(jié)構(gòu)(例如,諸如Web頁和交互式應(yīng)用程序的電子文檔,或分成若干部分的地圖)的“分枝隔離”方法60的一個(gè)實(shí)施的流程圖。在步驟62,訪問分層結(jié)構(gòu)。分層結(jié)構(gòu)包括多元素并定義元素之間的分層關(guān)系。如上所述,每個(gè)元素具有呈現(xiàn)屬性,并且單個(gè)元素具有焦點(diǎn)。
在步驟64形成分層結(jié)構(gòu)的模型。模型包括相對(duì)于其他層排列的多層、多個(gè)節(jié)點(diǎn)以及至少一個(gè)分枝。每個(gè)節(jié)點(diǎn)表示單一元素。節(jié)點(diǎn)中的一個(gè)是根節(jié)點(diǎn)并占據(jù)最高層(圖3和4中的層0的節(jié)點(diǎn)0)。一個(gè)給定的分枝將第一層中的第一節(jié)點(diǎn)連接到第一層的直接下一層中的第二節(jié)點(diǎn)上。每個(gè)分枝表示分枝連接的節(jié)點(diǎn)之間的分層關(guān)系。
模型可以是樹形結(jié)構(gòu)。在此情況下,低于焦點(diǎn)節(jié)點(diǎn)層并且通過一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)包括樹結(jié)構(gòu)中的“子樹”,其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn)。低于焦點(diǎn)節(jié)點(diǎn)層并且通過一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)于是可以描述為“樹結(jié)構(gòu)的子樹中的節(jié)點(diǎn),其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn)”。
在步驟66,確定模型中從根節(jié)點(diǎn)到“焦點(diǎn)節(jié)點(diǎn)”的路徑,其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn)。路徑是從根節(jié)點(diǎn)到焦點(diǎn)由分枝形成的路由。由根節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性被有選擇地提供。例如,分層結(jié)構(gòu)可以是超文本置標(biāo)語言(HTML)文檔,并且根節(jié)點(diǎn)的呈現(xiàn)屬性可以簡單地為“<BODY>”。在此情況下,根節(jié)點(diǎn)的呈現(xiàn)屬性傳遞很少的信息,并可能不提供。
由非根節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性在步驟70提供,這些節(jié)點(diǎn)是從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑上的節(jié)點(diǎn)。在步驟72,提供由低于焦點(diǎn)節(jié)點(diǎn)層并由一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性。
現(xiàn)在使用圖2和圖6來描述基于文檔12的結(jié)構(gòu)和/或客戶機(jī)22的能力向客戶機(jī)22提供文檔12的一部分的第二“觀察深度”法。觀察深度法可以實(shí)施在圖2的代碼轉(zhuǎn)換代理28中。代碼轉(zhuǎn)換器代理28可以根據(jù)從客戶機(jī)22接收到的客戶數(shù)據(jù)實(shí)施觀察深度方法。
圖6是圖3中例示樹30,強(qiáng)調(diào)樹30的多層。如上所述,由節(jié)點(diǎn)1A表示的元素最初具有焦點(diǎn),根據(jù)作者對(duì)文檔12的編碼。在觀察深度法中,提供給客戶機(jī)22的那部分文檔取決于包含表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的樹30的層。具體地說,提供給客戶機(jī)22的文檔12部分包括在樹30中包含表示接收焦點(diǎn)的元素的節(jié)點(diǎn)所在的層中的節(jié)點(diǎn)表示的元素。提供給客戶機(jī)22的文檔12部分還包括層數(shù)大于樹30上包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)所在的層中節(jié)點(diǎn)表示的元素和/或?qū)訑?shù)小于樹30上包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)所在的層中節(jié)點(diǎn)表示的元素。
在圖6中,節(jié)點(diǎn)1A表示如上所述根據(jù)作者對(duì)文檔12的編碼接收初始焦點(diǎn)的元素。代碼轉(zhuǎn)換器代理28可以通過調(diào)用由樹30的層1、包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)1A的樹30中的層中的節(jié)點(diǎn)1A和1B表示的元素。根據(jù)客戶數(shù)據(jù)(例如由客戶機(jī)22傳遞的客戶機(jī)22的能力),代碼轉(zhuǎn)換器代理還可以調(diào)用層數(shù)大于樹30中層1和于小層1的層中節(jié)點(diǎn)表示的元素。
例如,代碼轉(zhuǎn)換器代理28調(diào)用層數(shù)大于樹30中包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的層中以及層樹小于包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的層中的節(jié)點(diǎn)表示的元素(例如根據(jù)客戶機(jī)22提供的客戶數(shù)據(jù))。由于圖6的節(jié)點(diǎn)1A表示接收初始焦點(diǎn)的元素,代碼轉(zhuǎn)換器代理28可以通過調(diào)用由以下節(jié)點(diǎn)表示的元素來實(shí)施觀察深度法(ⅰ)層0中的節(jié)點(diǎn),(ⅱ)層1中的節(jié)點(diǎn)1A和1B,(ⅲ)層2中的節(jié)點(diǎn)2A-2F。
由節(jié)點(diǎn)0表示的元素可以具有值是HTML標(biāo)記“<BODY>”。代碼轉(zhuǎn)換器代理28可以調(diào)用由節(jié)點(diǎn)0表示的元素,從而獲得元素的值“<BODY>”。代碼轉(zhuǎn)換器28可以包括也可以不包括腳本中的值“<BODY>”。
由節(jié)點(diǎn)1A表示的元素可以具有值是HTML標(biāo)記“<TABLE>”。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)1A表示的元素,從而獲得元素的值“<TABLE>”。代碼轉(zhuǎn)換器代理28可以選擇包括腳本中的“<TABLE>”值以向客戶機(jī)22的用戶表明文檔12包括表。
由節(jié)點(diǎn)1B表示的元素可以具有值是HTML標(biāo)記“<LI>”用于列表。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)1A表示的元素,從而獲得元素的值“<LI>”。代碼轉(zhuǎn)換器代理28可以包括腳本中的值“<LI>”,以便于提供列表。
由節(jié)點(diǎn)2A表示的元素可以具有值是HTML標(biāo)記“<TR>”用于表行。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)2A表示的元素,從而獲得元素的值“<TR>”。代碼轉(zhuǎn)換器28可以包括腳本中的值“<TR>”,以向客戶機(jī)22的用戶表明表元素包括第一行。
由節(jié)點(diǎn)2B表示的元素也可以具有值是HTML標(biāo)記“<TR>”用于表行。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)2B表示的元素,從而獲得元素的值“<TR>”。代碼轉(zhuǎn)換器代理28可以包括腳本中的值“<TR>”,以向客戶機(jī)22的用戶表明表元素包括第二行。
由節(jié)點(diǎn)2C表示的元素可以具有值“<HEADER>”用于表標(biāo)題。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)2C表示的元素,從而獲得元素的值“<HEADER>”。代碼轉(zhuǎn)換器代理28可以選擇包括腳本中的“<HEADER>”值以向客戶機(jī)22的用戶表明表元素包括至少一個(gè)標(biāo)題。
由節(jié)點(diǎn)2D-2F表示的元素可以具有列表項(xiàng)目值。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)2D-2F表示的元素,從而獲得元素的列表項(xiàng)目值。代碼轉(zhuǎn)換器代理28可以包括腳本中的列表項(xiàng)目值以提供該列表。
如上所示,代碼轉(zhuǎn)換器代理28向用戶代理32提供生成的腳本。響應(yīng)接收到的腳本,客戶機(jī)22的用戶代理32產(chǎn)生呈現(xiàn)信息34。用戶代理32使用呈現(xiàn)信息34向輸出裝置24發(fā)出輸出命令。
如上所述,通過輸入裝置36的用戶輸入可以使用戶代理32產(chǎn)生一事件。該事件引起文檔12中的焦點(diǎn)變化。響應(yīng)焦點(diǎn)的變化,代碼轉(zhuǎn)換器代理28使用當(dāng)前接收焦點(diǎn)的元素再應(yīng)用觀察深度方法,從而通過產(chǎn)生新腳本響應(yīng)焦點(diǎn)中的變化并且將新腳本提供給客戶機(jī)22。響應(yīng)新的腳本,客戶機(jī)22的用戶代理32可以產(chǎn)生新的呈現(xiàn)信息34,并使用新的呈現(xiàn)信息34向輸出裝置24發(fā)出新的輸出命令。
例如,在圖6中,如果通過響應(yīng)用戶輸入產(chǎn)生的事件將焦點(diǎn)從層1中的節(jié)點(diǎn)1A表示的表元素改變成層2中的節(jié)點(diǎn)(例如節(jié)點(diǎn)2A),代碼轉(zhuǎn)換器代理28可以再應(yīng)用觀察深度法。代碼轉(zhuǎn)換器代理28可以調(diào)用層2中的節(jié)點(diǎn)表示的元素(即節(jié)點(diǎn)2A-2F)。根據(jù)由客戶機(jī)22提供的客戶數(shù)據(jù)傳遞的客戶機(jī)22的能力,代碼轉(zhuǎn)換器代理28還可以調(diào)用在層數(shù)大于樹30的層2的層中的節(jié)點(diǎn)表示的元素和/或?qū)訑?shù)小于層2的層中節(jié)點(diǎn)表示的元素。
在系統(tǒng)運(yùn)行期間,用戶代理32可以向代碼轉(zhuǎn)換器代理28提供新的客戶數(shù)據(jù)。新的客戶數(shù)據(jù)可以由用戶代理32產(chǎn)生以增加或降低詳細(xì)呈現(xiàn)量,并且可以根據(jù)用戶輸入產(chǎn)生新的客戶數(shù)據(jù)。響應(yīng)新的客戶數(shù)據(jù),代碼轉(zhuǎn)換器代理28可以改變大于表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的層的層數(shù)和/或小于表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的層的層數(shù)。
圖7是用于提供分層結(jié)構(gòu)(諸如Web頁的電子文檔和交互應(yīng)用程序或分成各部分的地圖)的“觀察深度”法80的一個(gè)實(shí)施例的流程圖。在步驟82,訪問如上所述的分層結(jié)構(gòu)。在步驟84,按如上所述形成分層結(jié)構(gòu)的模型。在步驟86,提供與焦點(diǎn)節(jié)點(diǎn)同在一層的節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性,其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn)。在步驟88,提供在選定的高于焦點(diǎn)節(jié)點(diǎn)層的層中的一個(gè)節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性。
如上所述使用圖4和圖5描述的分枝隔音法以及使用圖6和圖7描述的觀察深度法可以組合在一起(例如,提供的電子文檔12的部分在客戶機(jī)32的呈現(xiàn)能力之內(nèi))。參照?qǐng)D4,對(duì)于接收焦點(diǎn)的節(jié)點(diǎn)1A表示的元素,使用分枝隔離方法選定的文檔12的部分可能包括由根節(jié)點(diǎn)0和子樹44表示的元素。如上所述,輸出裝置24可以包括具有有限顯示能力的相對(duì)小型的顯示裝置,并且子樹44可以超過輸出裝置24的顯示能力。
在此情況下,代碼轉(zhuǎn)換器代理28可以僅調(diào)用子樹44的選定的一些層中的元素。例如選定的層數(shù)可以依據(jù)傳遞客戶機(jī)22的能力(例如,存儲(chǔ)器大小,處理能力、顯示器大小等等)的客戶數(shù)據(jù)。代碼轉(zhuǎn)換器代理可以首先實(shí)施分枝隔離方法,從而選擇由根節(jié)點(diǎn)0和子樹44表示的元素。代碼轉(zhuǎn)換器代理28然后可以對(duì)子樹44實(shí)施觀察深度法。如上所述,可以將代碼轉(zhuǎn)換器代理28配置成選擇樹30中包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的層中的節(jié)點(diǎn)以及樹30中層數(shù)大于包括表示接收焦點(diǎn)的元素的節(jié)點(diǎn)的層中的節(jié)點(diǎn)。在此情況下,對(duì)于樹30中使用分枝隔離法選擇的部分應(yīng)用觀察深度方法,代碼轉(zhuǎn)換器代理28選擇層0中的節(jié)點(diǎn)0、層1中的節(jié)點(diǎn)1A以及層2中的節(jié)點(diǎn)2A-2C。
代碼轉(zhuǎn)換器代理28可以調(diào)用由節(jié)點(diǎn)0表示的元素,從而得到元素的值“<BODY>”。代碼轉(zhuǎn)換器代理28可以在腳本中包括或不包括“<BOOY>”值。
由節(jié)點(diǎn)1A表示的元素可以具有值為HTML標(biāo)記“<TABLE>”。代碼轉(zhuǎn)換器代理28可以調(diào)用由節(jié)點(diǎn)1A表示的元素,從而獲得元素的值“<TABLE>”。代碼轉(zhuǎn)換器代理28可以選擇在腳本中包括“<TABLE>”值以向客戶機(jī)22的用戶表明文檔12包括表。
由節(jié)點(diǎn)2A表示的元素可以具有值為HTML標(biāo)記“<TR>”用于表行。代碼轉(zhuǎn)換器代理28可以調(diào)用節(jié)點(diǎn)2A表示的元素,從而獲得元素的值“<TR>”。代碼轉(zhuǎn)換器28可以在腳本中包括值“<TR>”,以向客戶機(jī)22的用戶表明表元素包括第一行。
由節(jié)點(diǎn)2B表示的元素還可以具有值為HTML標(biāo)記“<TR>”用于表行。代碼轉(zhuǎn)換器代理28可以調(diào)用由節(jié)點(diǎn)2B表示的元素,從而獲得元素的值“<TR>”。代碼轉(zhuǎn)換器代理28可以在腳本中包括“<TR>”用于向客戶機(jī)22的用戶表明表元素包括第二行。
由節(jié)點(diǎn)2C表示的元素可能具有值“<HEADER>”用于表標(biāo)題。代碼轉(zhuǎn)換器代理28可以調(diào)用由節(jié)點(diǎn)2C表示的元素,從而獲得元素的值“<HEADER>”以向客戶機(jī)22的用戶表明表元素包括至少一個(gè)標(biāo)題。
參照?qǐng)D6,對(duì)于由接收焦點(diǎn)的節(jié)點(diǎn)1A表示的元素,使用觀察深度法選擇的文檔12的部分可以包括由層0中的根節(jié)點(diǎn)0、層1中的節(jié)點(diǎn)1A和1B以及層2中的節(jié)點(diǎn)2A-2F表示的元素。使用觀察深度方法選擇的文檔12的部分可以超出輸出裝置24的顯示能力。在此情況下,代碼轉(zhuǎn)換器代理28可以對(duì)使用觀察深度法選擇的文檔12的部分應(yīng)用分枝隔離方法。這樣,代碼轉(zhuǎn)換器代理28可以選擇由根節(jié)點(diǎn)0和子樹44的節(jié)點(diǎn)1A和2A-2C表示的元素。代碼轉(zhuǎn)換器代理28可以如上所述地調(diào)用由這些節(jié)點(diǎn)表示的元素。
注意,通過對(duì)使用觀察深度方法選擇的文檔12的部分應(yīng)用分枝隔離法所取得的結(jié)果與通過對(duì)使用分枝隔離方法選擇的文檔12的部分應(yīng)用觀察深度方法所取得的結(jié)果是相同的。
圖8是應(yīng)用上述分枝隔離和/或觀察深度法以提供分層結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)90的第一實(shí)施例的方框圖。計(jì)算機(jī)系統(tǒng)90包括耦合于客戶應(yīng)用94的主機(jī)應(yīng)用92,主機(jī)應(yīng)用92和客戶應(yīng)用94可以是在計(jì)算機(jī)系統(tǒng)90內(nèi)同時(shí)執(zhí)行(運(yùn)行)的單獨(dú)的軟件程序。主機(jī)應(yīng)用例如可以是Web瀏覽器??蛻魬?yīng)用94例如可以是“輔助技術(shù)”接口。術(shù)語“輔助技術(shù)是用于描述幫助實(shí)際受到挑戰(zhàn)的個(gè)體來訪問計(jì)算機(jī)系統(tǒng)(例如計(jì)算機(jī)系統(tǒng)90)的技術(shù)。已知的各種輔助技術(shù)包括“屏幕閱讀器”,將顯示信息轉(zhuǎn)換成語音或Braille,“屏幕強(qiáng)調(diào)器“,將顯示屏幕上的部分內(nèi)容的特征放大以及可以將語音轉(zhuǎn)換成文本或命令的數(shù)字表示的語音識(shí)別軟件。
在圖8的實(shí)施例中,計(jì)算機(jī)系統(tǒng)90包括分層結(jié)構(gòu)96。在其他實(shí)施例中,分層結(jié)構(gòu)96可以在計(jì)算機(jī)系統(tǒng)90的外部,并且分層結(jié)構(gòu)96可以連接用于接收或訪問分層結(jié)構(gòu)96。分層結(jié)構(gòu)96包括多元素并定義元素之間的分層關(guān)系。分層結(jié)構(gòu)96的每個(gè)元素具有呈現(xiàn)屬性,并且單個(gè)元素具有焦點(diǎn)。分層結(jié)構(gòu)96例如可以是諸如Web頁的電子文檔。分層文檔96可以是交互式應(yīng)用程序或劃分成諸部分的地圖。
主機(jī)應(yīng)用92耦合到分層結(jié)構(gòu)96,并訪問分層結(jié)構(gòu)96。主機(jī)應(yīng)用92形成樹98,其中樹98是分層結(jié)構(gòu)96的樹模型。在圖8的實(shí)施例中,樹98駐留在主機(jī)應(yīng)用92中。樹98包括如上所述的節(jié)點(diǎn)和分枝。
為了表示分層結(jié)構(gòu)96的一部分,客戶應(yīng)用94訪問主機(jī)應(yīng)用92內(nèi)的樹98??蛻魬?yīng)用94可以實(shí)施如上所述的分枝隔離法。在此情況下,客戶應(yīng)用確定模型中從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑,其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn)??蛻魬?yīng)用94產(chǎn)生一組呈現(xiàn)特性。該組呈現(xiàn)特性可以包括或不包括根節(jié)點(diǎn)的呈現(xiàn)屬性,如上所述。該組呈現(xiàn)屬性包括由根節(jié)點(diǎn)以外的沿著從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)的路徑上的其他節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性。該組呈現(xiàn)屬性還包括由低于焦點(diǎn)節(jié)點(diǎn)層的層中、并由一個(gè)或多個(gè)分枝連接于焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)(即樹98的子樹,其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn))表示的每個(gè)元素的呈現(xiàn)屬性。
替代地,客戶應(yīng)用94可以實(shí)施如上所述的觀察深度方法。在此情況下,該組呈現(xiàn)屬性包括與焦點(diǎn)節(jié)點(diǎn)在相同層中的節(jié)點(diǎn)表示的所有元素的呈現(xiàn)屬性。該組呈現(xiàn)屬性還可以包括高于焦點(diǎn)節(jié)點(diǎn)層的選定的一些層中的節(jié)點(diǎn)表示的所有元素的呈現(xiàn)屬性。該組呈現(xiàn)屬性還可以包括低于焦點(diǎn)節(jié)點(diǎn)層的選定的一些層中的節(jié)點(diǎn)表示的所有元素的呈現(xiàn)屬性??蛻魬?yīng)用94可以按如上所述實(shí)施分枝隔離和觀察深度方法的組合。
客戶應(yīng)用94向計(jì)算機(jī)系統(tǒng)90的用戶代理100提供該組呈現(xiàn)屬性??蛻魬?yīng)用94可以作為主機(jī)應(yīng)用92和用戶代理100之間的接口。用戶代理100可以用作客戶應(yīng)用94和計(jì)算機(jī)系統(tǒng)90的輸出裝置102之間的接口。輸出裝置102例如可以是Braille顯示或文本-語音轉(zhuǎn)換器。用戶代理100可以用作客戶應(yīng)用94與計(jì)算機(jī)系統(tǒng)的輸入裝置104之間的接口。輸入裝置104例如可以是語音-文本轉(zhuǎn)換器。用戶代理100使用該組呈現(xiàn)屬性產(chǎn)生輸出命令,并且輸出裝置提供輸出命令。結(jié)果,顯示希望的分層結(jié)構(gòu)的部分或者由輸出裝置102提供輸出。
圖9是應(yīng)用上述分枝隔離和/或觀察深度法表示分層結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)的第二實(shí)施例的方框圖。在圖9的實(shí)施例中,樹98駐留在客戶應(yīng)用94內(nèi)??蛻魬?yīng)用94通過主機(jī)應(yīng)用92訪問分層結(jié)構(gòu)96并形成樹98??蛻魬?yīng)用訪問樹98形成如上所述的呈現(xiàn)屬性集,并向該組呈現(xiàn)屬性提供給用戶代理100。
正如本領(lǐng)域技術(shù)人員所理解的,本發(fā)明的方法和系統(tǒng)可用于表示分層結(jié)構(gòu),以下所附的權(quán)利要求書將函蓋所有的修改和變型。
權(quán)利要求
1.一種提供分層結(jié)構(gòu)的方法,包括訪問分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義了元素之間的分層關(guān)系,并且其中每個(gè)元素具有一個(gè)呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的模型,分層結(jié)構(gòu)包括多個(gè)相對(duì)于其他層排列的層,多個(gè)節(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一元素為根節(jié)點(diǎn)并占據(jù)最高層,并且其中一給定的分枝將一個(gè)第一層中的第一節(jié)點(diǎn)連接于第一層的直接下一層中的第二節(jié)點(diǎn),并且其中每個(gè)分枝表示由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;確定模型中從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑,其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);有選擇地提供由根節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性;提供根節(jié)點(diǎn)之外的在從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑上的其他節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性;以及提供在低于焦點(diǎn)節(jié)點(diǎn)層的層中并且通過一個(gè)或多個(gè)分枝連接于焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)所表示的每個(gè)元素的呈現(xiàn)屬性。
2.如權(quán)利要求1的方法,其中分層結(jié)構(gòu)是電子文檔。
3.如權(quán)利要求2的方法,其中電子文檔是Web頁,交互式應(yīng)用程序或地圖。
4.如權(quán)利要求1的方法,其中模型是樹結(jié)構(gòu)。
5.如權(quán)利要求1的方法,其中路徑是從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)沿分枝形成的路由。
6.如權(quán)利要求5的方法,其中在低于焦點(diǎn)節(jié)點(diǎn)層的層中并通過一個(gè)或多個(gè)分枝連接于焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)包括樹結(jié)構(gòu)的一個(gè)子樹,并且其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn)。
7.如權(quán)利要求1的方法,其中給定節(jié)點(diǎn)的呈現(xiàn)屬性或者是一值或者是一函數(shù)。
8.一種用于提供分層結(jié)構(gòu)的方法,包括接收以第一數(shù)字格式表示的分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的分層關(guān)系,并且其中每個(gè)元素具有一個(gè)呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的樹模型,包括多個(gè)相對(duì)于其他層排列的層,多個(gè)節(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一節(jié)點(diǎn)為樹模型的根節(jié)點(diǎn)并占據(jù)了最高層,并且其中一給定的分枝將一個(gè)第一層中的第一節(jié)點(diǎn)連接于第一層的直接下一層中的第二節(jié)點(diǎn)上,并且其中每個(gè)分枝表示由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;使用樹模型產(chǎn)生以第二數(shù)字格式表示的原始腳本,其中原始腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)至原始焦點(diǎn)節(jié)點(diǎn)的第一路徑上的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);以及,在樹模型的第一子樹中的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是第一子樹的根節(jié)點(diǎn);以及提供原始腳本。
9.如權(quán)利要求8的方法,其中第一數(shù)字格式是基于文本的置標(biāo)語言。
10.如權(quán)利要求9的方法,其中基于文本的置標(biāo)語言是超文本置標(biāo)語言(HTML)或擴(kuò)展置標(biāo)語言(XML)。
11.如權(quán)利要求8的方法,其中第二數(shù)字格式是腳本語言。
12.如權(quán)利要求8的方法,還包括接收一事件,其中事件表明在具有焦點(diǎn)的元素中產(chǎn)生了變化;使用樹模型產(chǎn)生新的以第二數(shù)字格式表示的腳本以響應(yīng)所述事件,其中新的腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)至新的焦點(diǎn)節(jié)點(diǎn)的第二路徑上的節(jié)點(diǎn),其中新焦點(diǎn)節(jié)點(diǎn)是表示具有作為由事件表明的焦點(diǎn)中的變化的結(jié)果的焦點(diǎn)的元素的節(jié)點(diǎn);和,第二子樹中的節(jié)點(diǎn),其中新焦點(diǎn)節(jié)點(diǎn)是第二子樹的根節(jié)點(diǎn),以及提供新腳本。
13.一種用于提供分層結(jié)構(gòu)的方法,包括接收以數(shù)字格式表示的原始腳本,其中分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的分層關(guān)系,并且其中每個(gè)元素具有一個(gè)呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn),并且其中原始腳本來自于具有多層和多個(gè)節(jié)點(diǎn)的分層結(jié)構(gòu)的樹模型,多層彼此相對(duì)排列,并且其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中原始腳本包括由以下節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)至原始焦點(diǎn)節(jié)點(diǎn)的路徑上的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);以及,在樹模型的第一子樹中的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是第一子樹的根節(jié)點(diǎn);以及提供原始腳本中的呈現(xiàn)屬性。
14.如權(quán)利要求13的方法,還包括響應(yīng)用戶的輸入產(chǎn)生事件,其中事件表明具有焦點(diǎn)的元素中的變化;提供事件;接收以數(shù)字格式表示的從樹模型中推導(dǎo)出來的新的腳本,其中新的腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)到新的焦點(diǎn)節(jié)點(diǎn)的第二路徑上的節(jié)點(diǎn),其中新的焦點(diǎn)節(jié)點(diǎn)是表示具有作為事件表明的焦點(diǎn)中的變化的結(jié)果的焦點(diǎn)的元素的節(jié)點(diǎn);以及,在第二子樹中的節(jié)點(diǎn),其中新的焦點(diǎn)節(jié)點(diǎn)是第二子樹的根節(jié)點(diǎn);以及提供新的腳本內(nèi)的呈現(xiàn)屬性。
15.一種用于提供分層結(jié)構(gòu)的方法,包括接收以第一數(shù)字格式表示的分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的分層關(guān)系,并且其中每個(gè)元素有一呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的樹模型,分層結(jié)構(gòu)包括多個(gè)相對(duì)其他層排列的層,多個(gè)節(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一節(jié)點(diǎn)是樹模型的根節(jié)點(diǎn)并且占據(jù)于最高層,并且其中一給定的分枝將一個(gè)第一層中的一個(gè)第一節(jié)點(diǎn)連接到第一層的直接下一層的第二節(jié)點(diǎn)上,并且其中每個(gè)分枝表示由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;使用樹模型產(chǎn)生以第二數(shù)字格式表示的原始腳本,其中原始腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性,沿著從根節(jié)點(diǎn)至原始焦點(diǎn)節(jié)點(diǎn)的第一路徑上的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);以及,在樹模型的一個(gè)第一子樹內(nèi)的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是第一子樹的根節(jié)點(diǎn);提供原始腳本中的呈現(xiàn)屬性;響應(yīng)用戶輸入產(chǎn)生事件,其中事件表明具有焦點(diǎn)的元素中的變化;使用樹模型響應(yīng)事件產(chǎn)生以第二數(shù)字格式表示的新的腳本,其中新的腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)至新的焦點(diǎn)節(jié)點(diǎn)的第二路徑上的節(jié)點(diǎn),其中新焦點(diǎn)節(jié)點(diǎn)是表示具有作為由事件表明的焦點(diǎn)的變化的結(jié)果的焦點(diǎn)的元素的節(jié)點(diǎn);以及,在第二子樹內(nèi)的節(jié)點(diǎn),其中新的焦點(diǎn)節(jié)點(diǎn)是第二子樹的根節(jié)點(diǎn);以及提供新腳本內(nèi)的呈現(xiàn)屬性。
16.一種用于提供分層結(jié)構(gòu)的系統(tǒng),包括將代碼轉(zhuǎn)換器代理配置成接收以第一數(shù)字格式表示的分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的分層關(guān)系,并且其中每個(gè)元素具有一個(gè)呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的樹模型,包括多個(gè)相對(duì)于其他層排列的層,多個(gè)節(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一節(jié)點(diǎn)為樹模型的根節(jié)點(diǎn)并占據(jù)了最高層,并且其中一給定的分枝將一個(gè)第一層中的第一節(jié)點(diǎn)連接于第一層的直接下一層中的第二節(jié)點(diǎn)上,并且其中每個(gè)分枝表示由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;使用樹模型產(chǎn)生以第二數(shù)字格式表示的原始腳本,其中原始腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)至原始焦點(diǎn)節(jié)點(diǎn)的第一路徑上的節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);以及,在樹模型的第一子樹中節(jié)點(diǎn),其中原始焦點(diǎn)節(jié)點(diǎn)是第一子樹的根節(jié)點(diǎn);以及提供原始腳本,以及與代碼轉(zhuǎn)換器代理相連接的客戶機(jī),其中客戶機(jī)包括輸出裝置;以及與輸出裝置相耦合的用戶代理,并且被配置成接收原始腳本;響應(yīng)原始腳本形成呈現(xiàn)信息,其中呈現(xiàn)信息包括原始腳本內(nèi)的呈現(xiàn)屬性;使用呈現(xiàn)信息產(chǎn)生輸出命令;以及向輸出裝置輸出命令。
17.如權(quán)利要求16的系統(tǒng),其中客戶機(jī)的用戶代理配置成響應(yīng)用戶的輸入產(chǎn)生事件,其中事件表明具有焦點(diǎn)的元素中的變化;以及提供事件。
18.如權(quán)利要求17的系統(tǒng),其中代碼轉(zhuǎn)換器代理被進(jìn)一步配置成接收事件;使用樹模型響應(yīng)事件產(chǎn)生以第二數(shù)字格式表示的新的腳本,其中新的腳本包括由以下節(jié)點(diǎn)表示的元素的至少一部分的呈現(xiàn)屬性沿著從根節(jié)點(diǎn)至新的焦點(diǎn)節(jié)點(diǎn)的第二路徑上的節(jié)點(diǎn),其中新的焦點(diǎn)節(jié)點(diǎn)是表示具有作為由事件表明的焦點(diǎn)中的變化的結(jié)果的焦點(diǎn)的元素的節(jié)點(diǎn);在第二子樹內(nèi)的節(jié)點(diǎn),其中新焦點(diǎn)節(jié)點(diǎn)是第二子樹的根節(jié)點(diǎn);以及提供新的腳本。
19.如權(quán)利要求18的系統(tǒng),其中客戶機(jī)的用戶代理被進(jìn)一步配置成接收新的腳本;以及響應(yīng)新的腳本修改呈現(xiàn)信息。
20.一種用于提供分層結(jié)構(gòu)的方法,包括訪問分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義了元素之間的分層關(guān)系,并且其中每個(gè)元素具有一個(gè)呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的模型,分層結(jié)構(gòu)包括多個(gè)相對(duì)其他層排列的層,多個(gè)結(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一節(jié)點(diǎn)是根節(jié)點(diǎn)并且占據(jù)最高層,并且其中一給定的分枝將一個(gè)第一層中的第一節(jié)點(diǎn)連接到該第一層的直接下一層的第二節(jié)點(diǎn)上,并且其中每個(gè)分枝表示由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;選擇模型的第一部分,包括沿著模型中從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑上的節(jié)點(diǎn),其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);以及在低于焦點(diǎn)節(jié)點(diǎn)層的層中并且由一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn);選擇模型的第二部分,包括與焦點(diǎn)節(jié)點(diǎn)同一層中的節(jié)點(diǎn);以及低于焦點(diǎn)節(jié)點(diǎn)層的選定的一些層中的節(jié)點(diǎn);以及提供由模型的第一和第二部分內(nèi)的節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性。
21.如權(quán)利要求20的方法,其中路徑是從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)沿分枝形成的路由。
22.如權(quán)利要求20的方法,其中根節(jié)點(diǎn)是在模型的第一和第二部分內(nèi),并且其中有選擇地提供由根節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性。
23.一計(jì)算機(jī)系統(tǒng),包括主機(jī)應(yīng)用,配置成訪問分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的分層關(guān)系,并且其中每個(gè)元素具有呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的模型,分層結(jié)構(gòu)包括多個(gè)相對(duì)于其他層排列的層,多個(gè)節(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一節(jié)點(diǎn)是根節(jié)點(diǎn)并且占據(jù)了最高層,并且其中一給定分枝將一個(gè)第一層中的第一節(jié)點(diǎn)連接到該第一層的直接下一層中的第二節(jié)點(diǎn)中,并且其中每個(gè)分枝表示由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;耦合到主機(jī)應(yīng)用的客戶應(yīng)用,并且配置成訪問分層結(jié)構(gòu)的模型;確定從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的模型中的路徑,其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);產(chǎn)生一組呈現(xiàn)屬性,其中該組呈現(xiàn)屬性包括由從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑上的非根節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性;以及,由低于焦點(diǎn)節(jié)點(diǎn)層并且由一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性;以及提供該組呈現(xiàn)屬性;輸出裝置;以及與輸出裝置相連接用于接收該組呈現(xiàn)屬性的用戶代理,其中用戶代理被配置成使用該組呈現(xiàn)屬性以產(chǎn)生輸出命令;以及向輸出裝置提供輸出命令。
24.如權(quán)利要求23的計(jì)算機(jī)系統(tǒng),其中主機(jī)應(yīng)用是Web瀏覽器。
25.如權(quán)利要求23的計(jì)算機(jī)系統(tǒng),其中客戶應(yīng)用是用作主機(jī)應(yīng)用和用戶代理之問接口的輔助技術(shù)。
26.如權(quán)利要求23的計(jì)算機(jī)系統(tǒng),其中用戶代理用作客戶應(yīng)用和輸出裝置之間的接口。
27.如權(quán)利要求23的計(jì)算機(jī)系統(tǒng),其中輸出裝置是Braille顯示或文本-語音轉(zhuǎn)換器。
28.如權(quán)利要求23的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括與用戶代理相耦合的輸入裝置。
29.如權(quán)利要求28的計(jì)算機(jī)系統(tǒng),其中輸入裝置是語音-文本轉(zhuǎn)換器。
30.如權(quán)利要求23的計(jì)算機(jī)系統(tǒng),其中,根節(jié)點(diǎn)的呈現(xiàn)屬性被有選擇地包括在呈現(xiàn)屬性組中。
31.一種計(jì)算機(jī)系統(tǒng),包括主機(jī)應(yīng)用;與主機(jī)應(yīng)用相耦合的客戶應(yīng)用,并配置成通過主機(jī)應(yīng)用訪問分層結(jié)構(gòu),其中分層結(jié)構(gòu)包括多個(gè)元素并且定義元素之間的分層關(guān)系,并且其中每個(gè)元素有一呈現(xiàn)屬性,并且其中單一元素具有焦點(diǎn);形成分層結(jié)構(gòu)的模型,分層結(jié)構(gòu)包括多個(gè)相對(duì)其他層排列的層,多個(gè)節(jié)點(diǎn),以及至少一個(gè)分枝,其中每個(gè)節(jié)點(diǎn)表示單一元素,并且其中單一節(jié)點(diǎn)為根節(jié)點(diǎn)并且占據(jù)最高層,并且其中一給定分枝將一個(gè)第一層中的第一節(jié)點(diǎn)連接到該第一層的直接下一層中的第二節(jié)點(diǎn)上,并且其中每個(gè)分枝表示了由分枝連接的節(jié)點(diǎn)之間的分層關(guān)系;確定模型中從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑,并且其中焦點(diǎn)節(jié)點(diǎn)是表示具有焦點(diǎn)的元素的節(jié)點(diǎn);產(chǎn)生一組呈現(xiàn)屬性,其中該組呈現(xiàn)屬性包括由從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)的路徑上的非根節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性;以及在低于焦點(diǎn)節(jié)點(diǎn)層并且由一個(gè)或多個(gè)分枝連接到焦點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)表示的每個(gè)元素的呈現(xiàn)屬性;以及提供該組呈現(xiàn)屬性;輸出裝置;以及與輸出裝置相耦合用于接收該組呈現(xiàn)屬性的用戶代理,其中用戶代理被配置成使用該組呈現(xiàn)屬性產(chǎn)生輸出命令;以及向輸出裝置提供輸出命令。
全文摘要
分枝隔離方法包括形成分層結(jié)構(gòu)的樹形模型,每個(gè)節(jié)點(diǎn)表示一個(gè)元素。每個(gè)分枝表示連接的節(jié)點(diǎn)之間的分層關(guān)系。一焦點(diǎn)節(jié)點(diǎn)表示接收焦點(diǎn)的元素。確定模型中從根節(jié)點(diǎn)到焦點(diǎn)節(jié)點(diǎn)的路徑。有選擇地提供由根節(jié)點(diǎn)表示的元素的呈現(xiàn)屬性。還提供從根節(jié)點(diǎn)至焦點(diǎn)節(jié)點(diǎn)路徑上非根節(jié)點(diǎn)表示的每個(gè)元素的屬性。提供子樹中的節(jié)點(diǎn)表示的每個(gè)元素的屬性,其中焦點(diǎn)節(jié)點(diǎn)是子樹的根節(jié)點(diǎn)。
文檔編號(hào)G06F15/00GK1306256SQ0013505
公開日2001年8月1日 申請(qǐng)日期2000年12月7日 優(yōu)先權(quán)日1999年12月9日
發(fā)明者弗朗西絲·C.·布朗, 理查德·S.·施沃特費(fèi)格, 勞倫斯·F.·威斯 申請(qǐng)人:國際商業(yè)機(jī)器公司