用于數(shù)據(jù)可視化的描述性框架的制作方法【專利摘要】這里描述了一種用來便利數(shù)據(jù)可視化的描述性框架。根據(jù)該框架的一個方面,提供了一個或多個模塊清單,其中模塊清單描述表示可視化的特定組件的模塊。圖清單可以用來協(xié)調(diào)一個或多個模塊清單??梢曰趫D清單來呈現(xiàn)可視化。【專利說明】用于數(shù)據(jù)可視化的描述性框架【
技術領域:
】[0001]本公開一般涉及數(shù)據(jù)可視化(visualization),更具體地,涉及用于構造數(shù)據(jù)可視化的描述性框架?!?br>背景技術:
】[0002]數(shù)據(jù)的圖形化表示可以極大地便利對數(shù)據(jù)的分析和理解。可以從數(shù)據(jù)集合生成不同類型的圖(chart)(或圖形(graph)),諸如條形圖、面積圖、餅圖、線形圖、柱形圖、散點圖等等,以便適應不同的需求。這樣的可視化有助于便利對復雜的商業(yè)數(shù)據(jù)集合的理解。[0003]開發(fā)者可以使用圖(或制圖(charting))庫為網(wǎng)絡應用添加基于網(wǎng)絡的可視化支持。圖庫(chartlibrary)通常提供用來呈現(xiàn)可視化的命令。它可以包括預先定義的圖組件(例如,圖例、軸、標題、工具提示、繪圖區(qū)域等等)的庫,所述預先定義的圖組件可以用作用于新的可視化的構建塊。不同的圖可以共享若干公共的圖部件(part)。例如,條形圖和線形圖可以共享相同的圖例,而多條圖(multi-barchart)能夠與單條圖(singlebarchart)共享相同的繪圖區(qū)域。[0004]然而,傳統(tǒng)圖庫的問題之一是:雖然不同的圖可以共享公共的圖部件,但是這樣的圖部件不容易被重復使用。為了生成新的可視化,所有不同的圖部件都需要從代碼層面重新定義。此外,每個客戶可能具有不同的要求。例如,客戶可能要求餅圖具有兩個標題(例如,主標題和副標題(subtitle))或者要求條形圖具有位于頂端的數(shù)值軸(valueaxis)。然而,圖庫通常僅僅支持預先定義的圖,并且客戶不能夠自行對圖進行定制或擴展。因此,如果圖庫僅僅提供具有一個標題的默認餅圖或者具有位于底部的數(shù)值軸的默認條形圖,則不能生成這樣的圖,除非圖庫被定制以適應這樣的特定的要求。[0005]因此,需要解決上述挑戰(zhàn)的改進的框架?!?br/>發(fā)明內(nèi)容】[0006]這里描述一種用于便利數(shù)據(jù)可視化的描述性框架。根據(jù)框架的一個方面,在存儲于存儲器模塊中的清單系統(tǒng)中提供預先定義的模塊清單,其中預先定義的模塊清單描述表示可視化的特定組件的模塊??梢曰陬A先定義的模塊清單之一生成新的模塊清單??梢蕴峁┮茫╮eference)新的模塊清單或者預先定義的模塊清單中的至少一個的圖清單。然后可以基于圖清單呈現(xiàn)可視化。[0007]根據(jù)框架的另一個方面,提供了一個或多個模塊清單,其中模塊清單描述表示可視化的特定組件的模塊。圖清單可以用來協(xié)調(diào)一個或多個模塊清單。然后可以基于圖清單呈現(xiàn)可視化。[0008]利用以下將變得清楚的這些及其它優(yōu)點和特征,通過參考下面的詳細描述和所附權利要求、以及通過參考附圖,可以獲得更多的信息。【專利附圖】【附圖說明】[0009]附圖中示出了一些實施例,其中相似的參考標號指定相似的部分,并且其中:[0010]圖1是示出示范性系統(tǒng)的框圖;[0011]圖2示出為真實的圖定義的不同的示范性模塊;[0012]圖3a示出示范性架構;[0013]圖3b示出各種類型的圖清單(manifest)和模塊清單的示范性結(jié)構;[0014]圖4a示出模塊清單文件的示范性結(jié)構;[0015]圖4b示出將被添加到容器(container)類型模塊的模塊清單文件的結(jié)構的示范性項目;[0016]圖4c示出布局(layout)模塊清單文件的示范性結(jié)構;[0017]圖4d示出圖清單文件的示范性結(jié)構;[0018]圖5a示出模塊引用(modulereference)的示范性結(jié)構;[0019]圖5b分別示出主標題和副標題的示范性結(jié)構;[0020]圖6示出另一個模塊引用的示范性結(jié)構;[0021]圖7示出具有行為配置(behaviorconfiguration)的模塊引用的示范性結(jié)構;[0022]圖8示出值依賴(valuedependency)的示范性結(jié)構;[0023]圖9示出事件依賴的結(jié)構;[0024]圖IOa到圖IOe示出模塊的示范性接口定義;[0025]圖11示出示范性條形模塊清單樣本;[0026]圖12a到圖12c示出示范性條形圖清單樣本;[0027]圖13a到圖13c示出多條圖清單樣本;[0028]圖14示出用于構造可視化的示范性過程;[0029]圖15示出在運行時構建可視化的示范性過程?!揪唧w實施方式】[0030]在下面的描述中,為了闡釋的目的,特定的數(shù)字、材料、和配置被闡述,以便提供對本框架和方法的全面理解,并且以便滿足對規(guī)定的書面描述、可實施性和最佳方式的要求。然而,本領域技術人員將清楚,無需特定的示范性細節(jié)就可以實踐本框架和方法。在其它實例中,熟知的特征被省略或簡化,以便使本框架和方法的示范性實施方式的描述變得清楚,從而更好地闡釋本框架和方法。另外,為了容易理解,某些方法步驟被描繪為單獨的步驟;然而,這些單獨描繪的步驟不應該被解釋為在執(zhí)行上一定依賴于順序。[0031]這里描述了用于便利構造(compose)數(shù)據(jù)可視化的描述性方法的框架。根據(jù)一些實施方式,通過首先開發(fā)表示圖的組件或部件的較小的可重用模塊來構造可視化,其中圖的組件或部件諸如軸、圖例、標題、容器、繪圖區(qū)域等等。不同于需要從代碼層面定義圖組件的傳統(tǒng)系統(tǒng),根據(jù)本框架的模塊可以使用配置文件或模塊清單來定義。它們可以獨立或者經(jīng)由至少一個圖清單(或配置文件)與其它模塊組合以形成可視化。來自清單系統(tǒng)127的現(xiàn)有模塊可以用來構造可視化。此外,可以擴展或定制現(xiàn)有模塊以便生成將要添加到清單系統(tǒng)127的新的模塊。圖清單按照其組件模塊和組件模塊之間的關系來描述可視化。圖清單可以被用戶擴展和容易地創(chuàng)造而無需高級編程知識或技能。[0032]因此,本框架有利地達到了可重用性、可定制性、以及可擴展性。它使得圖庫提供商的客戶能夠根據(jù)他們的要求通過定制或擴展現(xiàn)有模塊或圖清單以創(chuàng)建新的模塊或圖類型,來修改(tailor)他們的圖庫。此外,客戶能夠?qū)嵤┧麄冏约旱哪K并且將它們添加到現(xiàn)有的數(shù)據(jù)可視化或者創(chuàng)建新的數(shù)據(jù)可視化。[0033]這里描述的框架可以實施為方法、計算機控制的裝置、計算機過程、計算系統(tǒng)、或?qū)嵤橹T如計算機可用介質(zhì)的制造物品(article)。這些和各種其它特征將從下面的描述中顯而易見。[0034]圖1是示出可以用來實施這里描述的框架的示范性系統(tǒng)100的框圖。一般來說,系統(tǒng)100可以包括計算機系統(tǒng)106,計算機系統(tǒng)106通信地耦合到輸入設備102(例如,鍵盤、觸摸板、麥克風、照相機等等)和輸出設備104(例如,顯示設備、監(jiān)視器、打印機、揚聲器等等)。計算機系統(tǒng)106也可以包括用于使用通信鏈路130(例如,電話線、無線網(wǎng)絡鏈路、有線網(wǎng)絡鏈路、或電纜網(wǎng)絡)與網(wǎng)絡132交換數(shù)據(jù)的通信卡或設備116(例如,調(diào)制解調(diào)器和/或網(wǎng)絡適配器)。網(wǎng)絡132可以是局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。計算機系統(tǒng)106可以經(jīng)由網(wǎng)絡132通信地耦合到一個或多個其它的計算機系統(tǒng)150。例如,計算機系統(tǒng)106可以充當服務器并且使用到一個或多個客戶端計算機150的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作??蛻舳擞嬎銠C150可以包括與計算機系統(tǒng)106相似的組件,并且可以采用臺式計算機、移動設備、平板計算機、通信設備、基于瀏覽器的設備等等的形式。位于客戶端計算機150的用戶可以與用戶接口152交互,以便與可視化構造框架(visualizationcompositionframework)122通信。[0035]計算機系統(tǒng)106可以通信地耦合到一個或多個數(shù)據(jù)源154。數(shù)據(jù)源154可以是,例如,任何數(shù)據(jù)庫(例如,關系數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫等等)、實體(例如,相關記錄的集合)、或者包括在數(shù)據(jù)庫中的數(shù)據(jù)集合。數(shù)據(jù)源154可以是任何合適的數(shù)據(jù),包括緩存或者駐留在本地易失性存儲器中的數(shù)據(jù),并且不需要與數(shù)據(jù)庫直接相關。[0036]應當理解,計算機系統(tǒng)106的不同組件和子組件可以位于不同的機器或系統(tǒng)上。還應當理解,客戶端計算機150的組件也可以位于計算機系統(tǒng)106上,反之亦然。[0037]計算機系統(tǒng)106包括中央處理單元(CPU)114、輸入/輸出(1/0)單元110、和存儲器模塊112。諸如高速緩存、電源、時鐘電路和通信總線的其它支持電路也可以包括在計算機系統(tǒng)106中。此外,上述各項中的任何一個都可以由專用集成電路來補充或者被合并在專用集成電路中。計算機系統(tǒng)106的示例包括手持設備、移動設備、個人數(shù)字助理(PDA)、工作站、服務器、便攜式膝上型計算機、另一個便攜式設備、迷你計算機、大型計算機、存儲系統(tǒng)、專用數(shù)字電器、設備、組件、其它裝備、或者能夠以定義的方式響應并執(zhí)行指令的這些項目的某個組合。[0038]存儲器模塊112可以是任何形式的非臨時計算機可讀介質(zhì),包括但不限于,動態(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM)、可擦可編程只讀存儲器(EPR0M)、電可擦可編程只讀存儲器(EEPR0M)、快閃存儲器設備、磁盤、內(nèi)部硬盤、可移動盤、磁光盤、壓縮盤只讀存儲器(CD-ROM)、任何其它易失性或非易失性存儲器、及它們的組合。[0039]存儲器模塊112用于存儲用于實現(xiàn)這里描述的技術的機器可執(zhí)行指令、數(shù)據(jù)、和各種軟件組件,以上各項全部可以被CPU114處理。因此,計算機系統(tǒng)106是當執(zhí)行機器可執(zhí)行指令時變成專用計算機系統(tǒng)的通用計算機系統(tǒng)??商鎿Q地,這里描述的各種技術可以實施為軟件產(chǎn)品的部分。每個計算機程序可以用高級程序語言或面向?qū)ο蟮木幊陶Z言(例如,C、C++、Java、JavaScript、來自SAP?AG的高級業(yè)務應用編程(ABAP?)、結(jié)構化查詢語言(SQL)等等)來實現(xiàn),或者用匯編語言或機器語言來實現(xiàn),如果期望的話。所述語言可以是編譯語言或者解釋語言。機器可執(zhí)行指令不意圖限制在任何特定的編程語言及其實施方式。要理解,各種編程語言及其代碼可以用來實現(xiàn)這里包含的公開的教導。[0040]在一個實施方式中,計算機系統(tǒng)106的存儲器模塊112包括可視化構造框架122、呈現(xiàn)組件124、和清單系統(tǒng)127。可視化構造框架122可以包括被設計用來便利用于構造可重用、可定制、并且可擴展的可視化的描述性方法的一組功能模塊或程序。可視化可以以存儲在清單系統(tǒng)127中的圖清單文件(或配置文件)的形式來構造,稍后將更詳細地描述清單系統(tǒng)127。呈現(xiàn)組件124可以從清單系統(tǒng)127和/或數(shù)據(jù)源154檢索數(shù)據(jù)(例如,圖清單文件)并且基于該數(shù)據(jù)生成可視化表示。[0041]清單系統(tǒng)127與管理大量清單(或清單文件)的配置注冊表相似。除了管理清單之夕卜,清單系統(tǒng)127還可以支持清單繼承和擴展,從而便利清單創(chuàng)建和/或維護。在一些實施方式中,每個清單都是使用無需高級編程知識或技能就能夠方便地寫或讀的簡單的人類可讀語言(諸如JavaScript對象表示法(JS0N)、可擴展標記語言(XML)等等)創(chuàng)作的配置文件。[0042]在一些實施方式中,清單可以是模塊清單或者圖清單。模塊清單描述模塊,其中模塊是制作可視化(或圖)的最小單元。模塊清單通過例如描述模塊的特征(例如,類型、特性等等)來定義新的模塊。圖清單類似于協(xié)調(diào)模塊使它們按照對可視化所預期的那樣表現(xiàn)的應用。圖清單通過描述如何由現(xiàn)有模塊來構造圖(例如,層級關系)以及模塊如何交互來定義新的圖。模塊清單或圖清單可以通過對一個或多個現(xiàn)有模塊或圖進行定制、擴展、或重復使用來分別生成新的模塊或圖??梢詾椴煌哪K類型定義不同的接口,以保證它們很好地一起協(xié)作。用戶可以實現(xiàn)他們自己的模塊,并且如果這些模塊與這些接口兼容,則將它們用在圖中。[0043]清單系統(tǒng)127還可以包括用于提供清單管理功能的一個或多個組件或應用編程接口(API)。例如,清單系統(tǒng)127可以包括用于創(chuàng)建新的類別的"registerCategory(注冊類別)"API。"類別"一般是指清單的類型。例如,清單系統(tǒng)127可以將模塊清單和圖清單分為兩類,即,圖類別和模塊類別,進行管理。清單系統(tǒng)127還可以包括用于將新的清單安裝在類別中的"register(注冊)"API、基于清單"id"并且支持對用于定位和訪問清單中的配置項目的一個或多個容易使用的訪問器(accessor)API的引用的索引系統(tǒng)、和/或用來啟用能夠用來容易地擴展和重復使用現(xiàn)有清單的繼承(inheritance)的"base/abstract(基礎/抽象)"關鍵詞。[0044]在一些實施方式中,清單系統(tǒng)127提供一個或多個預先定義的模塊清單。每個模塊表示特定類型的可視化組件,諸如圖例、標題、軸、繪圖、工具提示等等。可以為不同類型的可視化組件定義不同類型的模塊。通常,可以存在五種類型的模塊:(1)容器;(2)布局;(3)輔助(supplementary);(4)圖;和(5)行為。[0045]容器類型的模塊是包含其它模塊的模塊。它用于在例如數(shù)據(jù)分派(dispatch)、事件分派等等中協(xié)調(diào)它的子模塊。每個容器類型的模塊可以指定特定的布局模塊在可視化中布置由其子模塊表示的可視部件。示范性容器類型的模塊可以包括但不限于commonContainer(公共容器)模塊、tableContainer(表格容器)模塊、matrixContainer(矩陣容器)模塊等等。每個容器類型的模塊可以表示不同的協(xié)調(diào)方式。例如,tableContainer模塊和matrixContainer模塊可以實施不同的數(shù)據(jù)分派算法。[0046]布局類型的模塊用于布置其被分配到的容器類型的模塊的子模塊。它與容器類型的模塊分開定義,并且允許用戶為單一容器類型的模塊指定不同的布局。示范性布局類型的模塊可以包括但不限于gridLayout(網(wǎng)格布局)、xyLayout(xy布局)、chartLayout(圖布局)等等°[0047]輔助類型的模塊不直接表示數(shù)據(jù),而是用于便利用戶對數(shù)據(jù)的解釋。示范性輔助類型的模塊包括但不限于標題模塊、軸模塊(例如,數(shù)值軸模塊、類別軸模塊等等)、圖例模塊(例如,色彩圖例模塊、尺寸圖例模塊等等)、工具提示模塊等等。[0048]圖類型的模塊直接以可視的形式表示數(shù)據(jù)。示范性圖類型的模塊包括但不限于條形模塊(例如,柱狀條形模塊、堆疊條形模塊等等)、線形模塊、餅狀模塊、散點圖或氣泡圖模塊、雷達模塊等等。[0049]行為類型的模塊用于定義并控制可視化的行為。示范性行為類型的模塊包括但不限于選擇模塊、導出模塊等等。[0050]圖2示出為真實的圖200定義的不同的示范性模塊。如圖所示,圖200可以由容器模塊202、輔助模塊/標題204a、輔助模塊/類別軸204b、輔助模塊/數(shù)值軸204c、輔助模塊/圖例204d、和行為模塊206構造。[0051]圖3a示出系統(tǒng)106的示范性架構300。應當注意到,在下面的討論中,可以使用相似的參考標號引用圖1中描述的特征。[0052]可視化構造框架122通信地耦合到清單系統(tǒng)127??梢暬瘶嬙炜蚣?22可以分別基于來自用戶的輸入選項(例如,定制模塊或清單定義)和/或清單系統(tǒng)127中的現(xiàn)有模塊和/或圖清單來構建輸出可視化。[0053]清單系統(tǒng)127包括各種類型的現(xiàn)有模塊302a_e,諸如圖模塊(例如,條形模塊302a)、輔助模塊(例如,標題模塊302b、圖例模塊302c)、容器模塊(例如,XYContainer模塊302d)、以及可能的表示任何其它模塊的其它模塊302e。模塊302a-e的每一個與定義模塊302a_e的特征的各個模塊清單304a_e相關聯(lián)。例如,條形模塊302a與條形模塊的清單304a相關聯(lián),標題模塊302b與標題模塊的清單304b相關聯(lián),圖例模塊302c與圖例模塊的清單304c相關聯(lián),XYContainer模塊302d與XYContainer模塊的清單304d相關聯(lián),并且其它模塊302e與其它模塊的清單304e相關聯(lián)。[0054]模塊清單304a_e中的每一個還可以分別與圖清單306a_b相關聯(lián)。在一些實施方式中,多個模塊清單304a-e與圖清單306a或306b的每一個相關聯(lián)。每個圖清單描述如何由各種模塊來構造圖。例如,條形圖的清單306a可以描述如何由條形模塊302a、標題模塊302b、圖例模塊302c、XYContainer模塊302d、和其它模塊302e來構造條形圖。圖清單可以"引用"來自清單系統(tǒng)127的一個或多個模塊,并且指定所述模塊的特殊特性以生成所述模塊的"實例化"。[0055]圖3b示出各種類型的圖清單322和模塊清單324的示范性結(jié)構。通常,實線箭頭指示繼承關系,而具有虛線的箭頭指示引用關系。[0056]更具體地,從第一清單到第二清單的實線箭頭指示其中第二清單從第一清單(即,基礎)繼承屬性或行為的繼承關系。例如,為了簡化模塊清單的定義,圖清單可以從預先存在父類圖清單繼承某些屬性或行為。如圖所示,圓環(huán)圖清單326可以從餅圖清單328繼承;線形圖清單330、瀑布(waterfall)圖清單332和垂直條形圖清單334可以從基礎垂直圖清單336繼承;雙水平圖清單340和雙條形圖清單342可以分別從水平線形圖清單344和條形圖清單346繼承,而水平線形圖清單344和條形圖清單346都可以從基礎水平圖清單348繼承。[0057]從第三清單到第四清單的具有虛線的箭頭指示其中第三清單包括對第四清單的引用的引用關系。例如,圖清單可以引用一個或多個模塊清單以構造圖。如圖所示,條形圖清單346可以引用根容器清單360。模塊清單也可以引用其它模塊清單。例如,根容器清單360可以引用工具提示清單350、背景清單352、XYContainer(根)清單354、標題清單356、和圖例清單358。XYContainer(根)清單354還可以引用X軸:軸清單362、y軸:軸清單364、行為清單370、和條形清單372。[0058]圖4a示出模塊清單文件的示范性結(jié)構402。模塊清單文件可以用來定義輔助類型、圖類型、容器類型或行為類型的模塊。如圖所示,可以通過指定關鍵詞(id(或唯一標識符)、名稱、類型、基礎、特性、事件、和css(或?qū)盈B樣式表))的值來定義每個模塊。為了簡化定義,關鍵詞'基礎'可以用來指示基礎模塊,其中定義從基礎模塊繼承和重載(override)。[0059]圖4b示出將被添加到容器類型模塊的模塊清單文件的結(jié)構402的示范性項目412。更具體地,項目412包括可以用來為特定的容器類型模塊定義默認布局(例如,表格、網(wǎng)格、等等)的關鍵詞'布局'。[0060]圖4c示出布局模塊清單文件的示范性結(jié)構422。如先前所討論的,布局類型的模塊負責布置其被分配到的容器類型模塊的子模塊。如圖所示,可以通過指定關鍵詞(id(或唯一標識符)、名稱、基礎、特性、CSS(或?qū)盈B樣式表)和布局(其描述可以使用的布局規(guī)范))的值來定義每個布局類型的模塊。[0061]圖4d示出圖清單文件的示范性結(jié)構432。如先前所討論的,圖清單主要定義具有現(xiàn)有模塊的圖結(jié)構和模塊之間的協(xié)調(diào)方式。如圖所示,可以通過指定關鍵詞(id、名稱、基礎、根、依賴、屬性、和事件)的值來定義每個圖。為了簡化定義,通過使用用來指示基礎模塊標識符的關鍵詞'基礎'來支持繼承/重載。關鍵詞'根'指定根模塊引用,所述根模塊引用通常引用包含其全部子模塊的容器類型的模塊。[0062]圖5a示出模塊引用500的示范性結(jié)構。當使用模塊500來構造圖時,對該模塊的引用可以包括在圖的清單文件中。當可視化構造框架122遇到每個模塊引用500時,它可以使用唯一模塊標識符(id)502在清單系統(tǒng)127中搜索原始的模塊清單。來自原始的模塊清單的元數(shù)據(jù)可以與模塊引用中的特定信息503合并,并且被當做用于該模塊在圖中的實例的元數(shù)據(jù)。特定信息503可以包括與特定用于這個引用實例的某些特性相關聯(lián)的'特性'。例如,可以為圖指定兩個標題(例如,主標題和副標題),全部兩個標題都可以引用標題模塊。[0063]圖5b分別示出主標題504和副標題506的示范性結(jié)構。如圖所示,可以為兩個標題指定不同的'特性'值(例如,'對齊'值)。例如,主標題可以被配置為與'中心'對齊,而副標題可以被配置為與'右邊'對齊。[0064]圖6示出另一個模塊引用602的示范性結(jié)構。在這個示例中,該模塊引用是容器模塊引用。關鍵詞'模塊'604可以用來指定子模塊的名稱。在結(jié)構602的主體中,關鍵詞'布局'606可以用來指定布局模塊。如果沒有指定布局模塊,則可以應用默認布局。在每個子模塊引用中,關鍵詞'布局'608可以用來向布局模塊提供關于如何布置子模塊的信息(例如,列信息和行信息)。[0065]圖7示出具有行為配置的模塊引用702的示范性結(jié)構。為了支持圖內(nèi)的豐富交互,可以將行為模塊綁定到目標模塊以使其能夠支持行為。如圖所示,唯一標識符'id'704可以在結(jié)構702的行為模塊引用中被指定,以便,例如,啟動選擇行為模塊。關鍵詞'特性'可以用來為行為模塊引用定制特性值。[0066]圖8示出值依賴801的示范性結(jié)構。值依賴801可以包括在圖清單文件中以便基于值指定兩個引用模塊之間的依賴關系。更具體地,值依賴可以用來連接模塊以使它們在某個方面一致。當模塊被聚集在圖中時,它們可能需要在一個或多個方面一致。例如,圖例模塊應該與圖繪制模塊使用相同的調(diào)色板;圖例模塊的軸應該與圖繪制模塊使用相同的比例尺,等等。如結(jié)構801所示,'目標'關鍵詞806和'源'關鍵詞808用來指定相同的'調(diào)色板'功能,這允許'圖例'目標模塊和'main,plot'源模塊共享相同的調(diào)色板。[0067]關鍵詞'targetModule(目標模塊)'802可以用來指定目標模塊路徑,而關鍵詞'sourceModule(源模塊)'804可以用來指定源模塊路徑。模塊路徑用來在框架分解(resolve)值依賴時找到某個模塊。模塊路徑反映從該模塊的圖根模塊到該模塊的組成結(jié)構。例如,源模塊路徑'main,plot'指示源模塊是由名為'plot'的模塊引用定義的,所述名為'plot'的模塊引用是名為'main'的另一個模塊引用的孩子。[0068]任何模塊可以經(jīng)由指定的源和目標功能具有對任何其它模塊的任何依賴。對于對象的依賴,可能需要預先定義用于全部可能的依賴的接口。換句話說,需要為被其它模塊依賴的全部模塊配置接口。這可以限制其它模塊的實施。例如,如果模塊A基于功能X依賴于模塊B,則任何想要被模塊A依賴的模塊C應當具有與功能X相同的簽名。鑒于模塊C可以為了其它功能性而使用功能X,模塊C的實施方式可以被限制。然而,對于值依賴,功能簽名可以包括在值依賴配置中,并且只要模塊C向模塊A提供正確的值,則模塊C就能夠使用任何其它功能而不管其簽名為何。[0069]圖9示出事件依賴902的結(jié)構。事件依賴902可以包括在圖清單中以便基于事件指定兩個模塊之間的依賴關系。結(jié)構902與如先前結(jié)合圖8所描述的值依賴結(jié)構801相似。如圖所示,目標模塊'工具提示'和源模塊'main,plot'基于事件'hideTooltip(隱藏工具提示)'共享依賴關系。源模塊(例如,'main.plot')可以觸發(fā)事件,而目標模塊(例如,'hideTooltip')可以傾聽事件并且對事件作出響應。[0070]圖10a-e示出模塊的示范性接口定義。如先前所討論的,可以為每個模塊定義接口,以便協(xié)調(diào)模塊之間的交互。圖IOa示出可以用于除了行為類型模塊之外的全部類型的模塊的示范性接口定義。圖IOb示出輔助類型模塊的示范性接口定義。圖IOc示出行為類型模塊的示范性接口定義。圖IOd示出容器類型模塊的示范性接口定義。圖IOe示出圖類型模塊的示范性接口定義。[0071]圖11、圖12a_c、和圖13a_c示出示范性清單樣本。更具體地,圖11示出示范性條形模塊清單樣本1102。圖12a-c示出示范性條形圖清單樣本1202。如圖所示,條形圖是由標題模塊1204、圖例模塊1206、工具提示模塊1208、具有選擇支持1211的容器模塊1210、數(shù)值軸模塊1212、類別軸模塊1214、條形模塊1216、值依賴1218、和事件依賴1220來構造的。[0072]圖13a_c不出多條圖(multiplebarchart)清單樣本1302。如圖所不,多條圖是通過重復使用參考圖12a-c描述的單條圖模塊1202來構造的。工具提示支持1302a-b和選擇支持1304a-b也被提供。[0073]圖14示出用于構造可視化的示范性過程1400。過程1400可以由系統(tǒng)100自動地或半自動地執(zhí)行,如先前參考圖1所描述的。應當注意到,在下面的討論中,將使用相似的參考標號對圖1中描述的特征進行引用。[0074]在1402,可視化構造框架122接收構造可視化的請求。通常,構造可視化包括創(chuàng)建、修改、和/或?qū)耄╥mport)可視化??梢詮模?,經(jīng)由相關聯(lián)的用戶接口152的用戶交互,接收該用戶請求。該用戶請求可以指示,例如,對于用于構造可視化的期望的模塊或圖清單的用戶選擇。用戶可以選擇定制來自清單系統(tǒng)127的一個或多個現(xiàn)有模塊。[0075]在1404,可視化構造框架122確定是否用戶選擇的全部模塊已經(jīng)存在于清單系統(tǒng)127中。如果用戶選擇的全部模塊已經(jīng)存在,則過程1400在1418繼續(xù)生成圖的清單文件。[0076]在1406,可視化構造框架122確定是否需要定制的容器模塊。當例如需要現(xiàn)有容器模塊中沒有的特殊協(xié)調(diào)方式、布局或其他特性時,會需要定制的容器模塊。如果僅僅需要特殊布局,則可以在1410實施定制的布局模塊。如果需要除了特殊布局之外的特性,則可以在1412實施新的容器模塊。[0077]更具體地,如果需要定制的容器模塊,則過程1400在1408繼續(xù)確定是否需要定制的布局模塊。當清單系統(tǒng)127中預先存在的布局模塊不滿足用戶需求時會需要定制的布局模塊。例如,可能需要表格布局,而不是默認的流程圖布局。如果需要定制的布局模塊,過程1400在1410繼續(xù)以實施布局模塊??梢酝ㄟ^定制或者擴展現(xiàn)有布局模塊來實施布局模塊。在一些實施方式中,用戶可以經(jīng)由相關聯(lián)的用戶接口152編寫(write)布局模塊清單文件以便實施布局模塊。[0078]如果不需要定制的布局模塊,則過程1400在1412繼續(xù)以實施容器模塊??梢酝ㄟ^定制或者擴展現(xiàn)有容器模塊來實施容器模塊。在一些實施方式中,用戶可以經(jīng)由相關聯(lián)的用戶接口152來編寫容器模塊清單文件。可以根據(jù)使用,例如,簡單的人類可讀語言根據(jù)這里描述的描述性方法對布局模塊清單文件和容器模塊清單文件進行編程,其中所述簡單的人類可讀語言諸如JavaScript對象表示法(JS0N)、可擴展標記語言(XML)等等。[0079]如果不需要定制的容器模塊,則過程1400在1414繼續(xù)以確定是否需要定制的模塊。當清單系統(tǒng)127中的現(xiàn)有模塊不滿足用戶需求時會需要定制的模塊。[0080]如果需要定制的模塊,則過程1400在1416繼續(xù)以實施模塊。可以通過定制或擴展從清單系統(tǒng)127中檢索到的現(xiàn)有模塊來實施模塊。例如,用戶可以選擇修改現(xiàn)有模塊中預先定義的特性、依賴、和/或事件。在一些實施方式中,用戶可以經(jīng)由相關聯(lián)的用戶接口152編寫模塊清單文件以便實施定制的模塊。應當理解,在需要多于一個的定制模塊的情況中,步驟1416可以重復所期望的次數(shù)。[0081]如果不需要定制的模塊或者全部所期望的模塊已經(jīng)存在于清單系統(tǒng)127中,則過程1400在1418繼續(xù)以編寫圖清單文件。在一些實施方式中,用戶可以經(jīng)由相關聯(lián)的用戶接口152來編寫圖清單文件??梢愿鶕?jù)使用,例如,簡單的人類可讀語言在這里描述的描述性方法對圖清單文件進行編程,其中所述簡單的人類可讀語言諸如JavaScript對象表示法(JSON)、可擴展標記語言(XML)等等。在圖清單文件中,用戶可以選擇重新組織組件模塊和/或定義新的圖類型。用戶也可以將采用現(xiàn)有圖類型的模塊實施方式(例如,容器、圖、或輔助)替換為步驟1410、1412、和/或1416中實施的新模塊。[0082]在1420,在清單系統(tǒng)127中注冊新的圖類型以用于構建新的可視化。例如,清單系統(tǒng)127可以調(diào)用"registerCategory"API來創(chuàng)建新的類別,以及調(diào)用"register"API以將新的圖類型清單安裝在新的類別中,其它注冊方法也是有用的。[0083]圖15示出在運行時構建可視化的示范性過程1500。過程1500可以由系統(tǒng)100自動地或半自動地執(zhí)行,如先前參考圖1所描述的。應當注意到,在下面的討論中,將使用相似的參考標號引用圖1中描述的特征。[0084]在1502,呈現(xiàn)組件124接收圖清單文件。可以響應于例如用戶經(jīng)由用戶接口152對圖的選擇,接收圖清單文件。[0085]在1504,呈現(xiàn)組件124確定是否存在與圖清單相關聯(lián)的圖。如果圖的清單文件為"有效"("valid")或者可以在清單系統(tǒng)127中找到,則該圖存在。如果圖已經(jīng)存在,則過程1500結(jié)束。如果圖不存在,則過程在1506繼續(xù)。[0086]在1506,呈現(xiàn)組件124讀取圖清單文件并且檢查其根模塊。在1508,呈現(xiàn)組件124確定根模塊是否是容器模塊。容器模塊可以是可選的,并且當需要多于一個的模塊來構造可視化時被實施。換句話說,當指定僅僅一個模塊來構造可視化時,容器模塊可以不是必需的。[0087]如果根模塊是容器模塊,在1510,呈現(xiàn)組件124直接從根模塊構建模塊樹。模塊樹是表示模塊之間的引用關系的數(shù)據(jù)結(jié)構。例如,圖3b示出模塊清單部分324中的示范性模塊樹。如圖所示,根容器模塊360引用5個子模塊(350、352、354、356、358)。子模塊XYContainer(根)354也是引用兩個軸模塊實例(362、364)、行為模塊實例370、和條形圖模塊實例372的容器類型的模塊。[0088]如果根模塊不是容器模塊,則在1514創(chuàng)建新的模塊(而不是模塊樹)。在1516,呈現(xiàn)組件124分解和/或合并新的模塊的特性。所述特性可以在創(chuàng)建圖實例時由用戶指定??商鎿Q地,所述特性可以在圖清單中包括的模塊引用中被指定。[0089]在1512,呈現(xiàn)組件124通過使用例如圖清單中指定的布局模塊來構建圖的布局。布局模塊負責對全部的模塊實例進行定位和/或尺寸衡量(sizing)。期望的布局特性可以由用戶指定,或者在圖清單中包括的模塊引用中被指定。例如,參考圖12b,公共容器模塊可以被配置為使用默認的布局模塊(例如,邊界布局模塊)??梢酝ㄟ^指出圖清單中的一個或多個期望的特性1213來配置默認布局模塊。然后默認布局模塊可以基于所指出的特性1213來布置子模塊。[0090]在1518,呈現(xiàn)組件124分解圖清單中引用的模塊之間的任何依賴。在一些實施方式中,值依賴和/或事件依賴被分解。所述依賴被分解以便生成連接全部模塊實例的依賴配置。由于一些依賴與布局組件的尺寸相關,所以步驟1518通常在步驟1512之后執(zhí)行。[0091]在1520,呈現(xiàn)組件124呈現(xiàn)圖的可視的表示??梢曰谟刹襟E1510確定的模塊樹或者由步驟1514-1516創(chuàng)建的單一模塊來執(zhí)行所述呈現(xiàn)。在一些實施方式中,可以為模塊樹中的每個孩子模塊實例分配來自其父類模塊實例的呈現(xiàn)元素。每個呈現(xiàn)元素可以被處理以呈現(xiàn)圖的可視的組件。[0092]雖然已經(jīng)用對結(jié)構化特征和/或方法步驟而言特定的語言描述了上述一個或多個實施方式,將理解,可以無需所描述的特定特征或步驟就可以實踐其它實施方式。相反,所述特定的特征和步驟作為一個或多個實施方式的優(yōu)選形式被公開?!緳嗬蟆?.一種計算機實施的數(shù)據(jù)可視化的描述性方法,包括:在存儲在存儲器模塊中的清單系統(tǒng)中提供預先定義的模塊清單,其中預先定義的模塊清單描述表示可視化的特定組件的模塊;基于預先定義的模塊清單中的至少一個生成新的模塊清單;提供引用新的模塊清單或者預先定義的模塊清單中的至少一個的圖清單;基于圖清單呈現(xiàn)可視化。2.-種計算機實施的數(shù)據(jù)可視化的描述性方法,包括:提供一個或多個模塊清單,其中模塊清單描述表示可視化的特定組件的模塊;通過定義圖清單來協(xié)調(diào)所述一個或多個模塊;W及基于所述圖清單來呈現(xiàn)可視化。3.如權利要求2所述的方法,其中所述模塊包括包含子模塊的容器類型的模塊。4.如權利要求3所述的方法,其中所述容器類型的模塊指定布置子模塊的布局類型的模塊。5.如權利要求2所述的方法,其中所述模塊包括便利用戶對數(shù)據(jù)的解釋的輔助類型的模塊。6.如權利要求5所述的方法,其中所述輔助類型的模塊包括標題模塊、軸模塊、圖例模塊、或工具提示模塊。7.如權利要求2所述的方法,其中所述模塊包括W可視的形式表示數(shù)據(jù)的圖類型的模塊。8.如權利要求7所述的方法,其中所述圖類型的模塊包括條形模塊、線形模塊、餅狀模塊、散點圖或氣泡圖模塊、或雷達模塊。9.如權利要求2所述的方法,其中所述模塊包括定義可視化的行為的行為類型的模塊。10.如權利要求2所述的方法,其中所述提供一個或多個模塊清單包括提供JavaScript文件。11.如權利要求2所述的方法,其中所述提供一個或多個模塊清單包括基于清單系統(tǒng)中預先定義的模塊清單來實施新的模塊清單。12.如權利要求11所述的方法,還包括為新的模塊清單定制特性值。13.如權利要求2所述的方法,其中定義圖清單包括定義化vaScript文件。14.如權利要求2所述的方法,其中所述圖清單是基于預先定義的圖清單來定義的。15.如權利要求2所述的方法,其中定義所述圖清單包括指定兩個模塊之間的值依賴。16.如權利要求2所述的方法,其中定義所述圖清單包括指定兩個模塊之間的事件依賴。17.-種其上存儲了程序代碼的非臨時性計算機可讀介質(zhì),所述程序代碼可W由計算機運行W便執(zhí)行W下操作:提供一個或多個模塊清單,其中模塊清單描述表示可視化的特定組件的模塊;通過定義圖清單來協(xié)調(diào)所述一個或多個模塊清單;W及基于所述圖清單來呈現(xiàn)可視化。18.如權利要求17所述的非臨時性計算機可讀介質(zhì),其中所述模塊包括容器類型的模塊、布局類型的模塊、輔助類型的模塊、圖類型的模塊、或行為類型的模塊。19.一種系統(tǒng),包括:非臨時性存儲器設備,用于存儲計算機可讀程序代碼;和處理器,其與所述存儲器設備通信,所述處理器利用所述計算機可讀程序代碼操作W便執(zhí)行W下操作:提供一個或多個模塊清單,其中模塊清單描述表示可視化的特定組件的模塊,通過定義圖清單來協(xié)調(diào)所述一個或多個模塊清單,W及基于所述圖清單來呈現(xiàn)可視化。20.如權利要求19所述的系統(tǒng),其中所述模塊包括容器類型的模塊、布局類型的模塊、輔助類型的模塊、圖類型的模塊、或行為類型的模塊?!疚臋n編號】G06F9/44GK104346149SQ201310325767【公開日】2015年2月11日申請日期:2013年7月30日優(yōu)先權日:2013年7月30日【發(fā)明者】楊宇彬,柳佳,李徐洲,陶剛,葉偉強申請人:商業(yè)對象軟件有限公司