用于電子表格模式提取的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種用于電子表格模式提取的方法和系統(tǒng)。本發(fā)明的各方面提供了一種用于從電子表格提取模式的工具。在一個(gè)實(shí)施例中,檢索以未編目表格格式(例如電子表格)存儲(chǔ)的一組數(shù)據(jù)。檢查所檢索的一組數(shù)據(jù)的結(jié)構(gòu)以便確定其數(shù)據(jù)集模式。然后,分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得有關(guān)所述數(shù)據(jù)元素的信息。根據(jù)數(shù)據(jù)集模式和元素信息,可以構(gòu)造允許遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)的接口。
【專利說(shuō)明】用于電子表格模式提取的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的主題一般地涉及數(shù)據(jù)檢索。更具體地說(shuō),本發(fā)明的各方面提供一種用于從電子表格(spreadsheet)提取模式(schema)的工具。
【背景技術(shù)】
[0002]隨著信息技術(shù)的日益流行,其作為存儲(chǔ)和檢索數(shù)據(jù)方式的有用性變得廣為重視。計(jì)算機(jī)提供了存儲(chǔ)數(shù)據(jù)的能力,而這種存儲(chǔ)使用紙質(zhì)存儲(chǔ)解決方案需要的物理空間的一部分。此外,訪問(wèn)基于計(jì)算機(jī)的數(shù)據(jù)可以明顯縮短數(shù)據(jù)的檢索時(shí)間。
[0003]為了便于基于計(jì)算機(jī)的存儲(chǔ),開發(fā)了多種不同類型的存儲(chǔ)范式。如可以理解的,這些范式可以在特性(例如使用的簡(jiǎn)單性和可用性)方面明顯不同。例如,數(shù)據(jù)庫(kù)型存儲(chǔ)解決方案可以提供互相鏈接的數(shù)據(jù)和/或索引,它們便于訪問(wèn)和/或解釋數(shù)據(jù)。但是,初始化數(shù)據(jù)庫(kù)型存儲(chǔ)解決方案所需的時(shí)間和知識(shí)可能使某些用戶望而卻步。相比之下,基于簡(jiǎn)單表的數(shù)據(jù)存儲(chǔ)解決方案(例如電子表格)提供一種介質(zhì),其對(duì)于經(jīng)驗(yàn)不太豐富的用戶來(lái)說(shuō)具有更大的易用性,但這有時(shí)可能以數(shù)據(jù)可訪問(wèn)性為代價(jià)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的
【發(fā)明者】發(fā)現(xiàn):在基于表的存儲(chǔ)解決方案(例如電子表格)中,可以改進(jìn)當(dāng)前的訪問(wèn)數(shù)據(jù)方式。具體地說(shuō),允許用戶以多種不同方式使用電子表格的靈活性會(huì)在嘗試無(wú)需人為干預(yù)而訪問(wèn)存儲(chǔ)在其中的數(shù)據(jù)時(shí)產(chǎn)生困難。例如,因?yàn)椴恍枰脩舳x數(shù)據(jù)字段、使用標(biāo)準(zhǔn)化數(shù)據(jù)結(jié)構(gòu)和/或提供可以由其它人訪問(wèn)的數(shù)據(jù)定義,所以對(duì)于訪問(wèn)數(shù)據(jù)的某人來(lái)說(shuō),解釋檢索的數(shù)據(jù)變得困難。在此方面,如果給出一組未知的電子表格,則沒(méi)有任何方式可用于查詢電子表格以獲得需要的數(shù)據(jù)集。此外,即使兩個(gè)不同的電子表格可能具有相關(guān)的信息,但一個(gè)人創(chuàng)建的電子表格可能具有不同的格式、不同的數(shù)據(jù)類型、不同的命名約定等,它們使得彼此結(jié)合地使用電子表格成為一個(gè)難題。
[0005]總體上,本發(fā)明的各方面提供一種用于從電子表格提取模式的工具。在一個(gè)實(shí)施例中,檢索以未編目表格格式(例如電子表格)存儲(chǔ)的一組數(shù)據(jù)。檢查所檢索的一組數(shù)據(jù)的結(jié)構(gòu)以便確定其數(shù)據(jù)集模式。然后,分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得有關(guān)所述數(shù)據(jù)元素的信息。根據(jù)數(shù)據(jù)集模式和元素信息,可以構(gòu)造允許遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)的接□。
[0006]本發(fā)明的第一方面提供一種用于提取電子表格模式的方法,包括:檢索以未編目表格格式存儲(chǔ)的一組數(shù)據(jù);檢查所述一組數(shù)據(jù)的結(jié)構(gòu)以便確定所述一組數(shù)據(jù)的數(shù)據(jù)集模式;分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得元素信息;以及使用所述數(shù)據(jù)集模式和所述元素信息構(gòu)造接口以便遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)。
[0007]本發(fā)明的第二方面提供一種用于提取電子表格模式的系統(tǒng),包括至少一個(gè)執(zhí)行方法的計(jì)算機(jī)設(shè)備,所述方法包括:檢索以未編目表格格式存儲(chǔ)的一組數(shù)據(jù);檢查所述一組數(shù)據(jù)的結(jié)構(gòu)以便確定所述一組數(shù)據(jù)的數(shù)據(jù)集模式;分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得元素信息;以及使用所述數(shù)據(jù)集模式和所述元素信息構(gòu)造接口以便遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)。
[0008]本發(fā)明的第三方面提供一種存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,當(dāng)執(zhí)行所述計(jì)算機(jī)程序產(chǎn)品時(shí),執(zhí)行一種用于提取電子表格模式的方法,包括:檢索以未編目表格格式存儲(chǔ)的一組數(shù)據(jù);檢查所述一組數(shù)據(jù)的結(jié)構(gòu)以便確定所述一組數(shù)據(jù)的數(shù)據(jù)集模式;分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得元素信息;以及使用所述數(shù)據(jù)集模式和所述元素信息構(gòu)造接口以便遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)。
[0009]本發(fā)明的第四方面提供一種部署用于提取電子表格模式的應(yīng)用的方法,包括:提供一種計(jì)算機(jī)基礎(chǔ)架構(gòu),其可操作以:檢索以未編目表格格式存儲(chǔ)的一組數(shù)據(jù);檢查所述一組數(shù)據(jù)的結(jié)構(gòu)以便確定所述一組數(shù)據(jù)的數(shù)據(jù)集模式;分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得元素信息;以及使用所述數(shù)據(jù)集模式和所述元素信息構(gòu)造接口以便遠(yuǎn)程訪問(wèn)所述
一組數(shù)據(jù)。
[0010]此外,用于在計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)本發(fā)明教導(dǎo)的服務(wù)提供者可以對(duì)本發(fā)明的任何組件進(jìn)行部署、管理、服務(wù)等。
[0011]本發(fā)明的各實(shí)施例還提供相關(guān)的系統(tǒng)、方法和/或程序產(chǎn)品。
【專利附圖】
【附圖說(shuō)明】
[0012]從以下結(jié)合附圖的對(duì)本發(fā)明的不同方面的詳細(xì)描述,將更容易地理解本發(fā)明的這些和其它特性,這些附圖是:
[0013]圖1示出根據(jù)本發(fā)明的實(shí)施例的一個(gè)示例性計(jì)算機(jī)系統(tǒng);
[0014]圖2示出根據(jù)本發(fā)明的實(shí)施例的表格數(shù)據(jù)集;
[0015]圖3示出根據(jù)本發(fā)明的實(shí)施例的針對(duì)表格數(shù)據(jù)集使用逐行掃描的圖示;
[0016]圖4示出根據(jù)本發(fā)明的實(shí)施例的針對(duì)表格數(shù)據(jù)集進(jìn)一步使用逐行掃描的圖示;
[0017]圖5是示出根據(jù)本發(fā)明的實(shí)施例的對(duì)表格數(shù)據(jù)集進(jìn)行后續(xù)訪問(wèn)的流程圖;以及
[0018]圖6示出根據(jù)本發(fā)明的實(shí)施例的一個(gè)實(shí)例流程圖。
[0019]附圖不一定按比例。附圖僅是示意性表示,并非旨在描繪本發(fā)明的特定參數(shù)。附圖旨在僅示出本發(fā)明的典型實(shí)施例,因此不應(yīng)被視為限制本發(fā)明的范圍。在附圖中,相似編號(hào)表示相似元素。
【具體實(shí)施方式】
[0020]如上所述,本發(fā)明的各方面提供一種用于從電子表格提取模式的工具。在一個(gè)實(shí)施例中,檢索以未編目表格格式(例如電子表格)存儲(chǔ)的一組數(shù)據(jù)。檢查所檢索的一組數(shù)據(jù)的結(jié)構(gòu)以便確定其數(shù)據(jù)集模式。然后,分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得有關(guān)所述數(shù)據(jù)元素的信息。根據(jù)數(shù)據(jù)集模式和元素信息,可以構(gòu)造允許遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)的接口。
[0021]轉(zhuǎn)到附圖,圖1示出用于提取電子表格模式的示例性環(huán)境100。在此方面,環(huán)境100包括計(jì)算機(jī)系統(tǒng)102,其可以執(zhí)行在此描述的過(guò)程以便提取電子表格模式。具體地說(shuō),計(jì)算機(jī)系統(tǒng)102被示為包括計(jì)算設(shè)備104,其包括模式提取程序140,模式提取程序140使計(jì)算設(shè)備104可操作以通過(guò)執(zhí)行在此描述的過(guò)程而提取電子表格模式。[0022]計(jì)算設(shè)備104被示為包括處理組件106 (例如,一個(gè)或多個(gè)處理器)、存儲(chǔ)器110、存儲(chǔ)系統(tǒng)118 (例如,存儲(chǔ)層次結(jié)構(gòu))、輸入/輸出(I/O)組件114 (例如,一個(gè)或多個(gè)I/O接口和/或設(shè)備)和通信路徑112。通常,處理組件106執(zhí)行至少部分固定在存儲(chǔ)器110中的程序代碼,例如模式提取程序140。在此方面,處理組件106可以包括單個(gè)處理單元,或者跨一個(gè)或多個(gè)位置中的一個(gè)或多個(gè)處理單元分布。
[0023]存儲(chǔ)器110還可以包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲(chǔ)器、大容量存儲(chǔ)裝置(存儲(chǔ)裝置118)和/或提供至少某些程序代碼的臨時(shí)存儲(chǔ)以減少必須在執(zhí)行期間從大容量存儲(chǔ)裝置118檢索代碼的次數(shù)的高速緩沖存儲(chǔ)器(未示出)。因此,存儲(chǔ)器110可以包括任何已知類型的臨時(shí)或永久數(shù)據(jù)存儲(chǔ)介質(zhì),包括磁介質(zhì)、光介質(zhì)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、數(shù)據(jù)高速緩存、數(shù)據(jù)對(duì)象等。此外,類似于處理組件116,存儲(chǔ)器110可以駐留在單個(gè)物理位置處(包括一種或多種類型的數(shù)據(jù)存儲(chǔ)裝置),或者以各種形式跨多個(gè)物理系統(tǒng)分布。
[0024]當(dāng)執(zhí)行程序代碼時(shí),處理組件106可以處理數(shù)據(jù),這可以導(dǎo)致從存儲(chǔ)器110和/或I/o組件114讀取轉(zhuǎn)換后的數(shù)據(jù)和/或?qū)⑥D(zhuǎn)換后的數(shù)據(jù)寫入到存儲(chǔ)器110和/或I/O組件114以供進(jìn)一步處理。路徑112在計(jì)算機(jī)系統(tǒng)102中的每個(gè)組件之間提供直接或間接通信鏈路。I/O組件114可以包括一個(gè)或多個(gè)人類I/O設(shè)備,這使個(gè)人用戶120能夠與計(jì)算機(jī)系統(tǒng)102和/或一個(gè)或多個(gè)通信設(shè)備交互,以使系統(tǒng)用戶120能夠使用任何類型的通信鏈路與計(jì)算機(jī)系統(tǒng)102通信。
[0025]在此方面,模式提取程序140可以管理一組接口(例如,圖形用戶界面(多個(gè))、應(yīng)用程序接口等),它們使個(gè)人和/或系統(tǒng)用戶120能夠與模式提取程序140交互。用戶120可以包括系統(tǒng)管理員和/或需要查詢和/或提供查詢和/或?qū)Ρ砀駭?shù)據(jù)集200 (圖2)進(jìn)行其它訪問(wèn)的客戶等。進(jìn)一步,模式提取程序140可以使用任何解決方案管理(例如,存儲(chǔ)、檢索、創(chuàng)建、操縱、組織、呈現(xiàn)等)存儲(chǔ)系統(tǒng)118中的數(shù)據(jù),包括但不限于表格數(shù)據(jù)集152和/或分析工具154。
[0026]在任何情況下,計(jì)算機(jī)系統(tǒng)102可以包括一個(gè)或多個(gè)計(jì)算設(shè)備104 (例如,通用計(jì)算制品),它們能夠執(zhí)行安裝在其上的程序代碼,例如模式提取程序140。如在此使用的,應(yīng)該理解,“程序代碼”指采用任何語(yǔ)言、代碼或符號(hào)的任何指令集合,它們導(dǎo)致具有信息處理能力的計(jì)算設(shè)備直接執(zhí)行特定的操作,或者執(zhí)行以下任何組合之后執(zhí)行特定的操作:(a)轉(zhuǎn)換為另一種語(yǔ)言、代碼或符號(hào);(b)以不同的材料形式再現(xiàn);和/或(c)解壓縮。在此方面,模式提取程序140可以體現(xiàn)為系統(tǒng)軟件和/或應(yīng)用軟件的任何組合。在任何情況下,計(jì)算機(jī)系統(tǒng)102的技術(shù)效果是為計(jì)算設(shè)備104提供處理指令,以便修復(fù)與遷移相關(guān)的故障。
[0027]進(jìn)一步,可以使用一組模塊142-148實(shí)現(xiàn)模式提取程序140。在這種情況下,模塊142-148可以使計(jì)算機(jī)系統(tǒng)102能夠執(zhí)行模式提取程序140使用的一組任務(wù),并可以單獨(dú)開發(fā)和/或獨(dú)立于模式提取程序140的其它部分而實(shí)現(xiàn)。如在此使用的,術(shù)語(yǔ)“組件”指具有或沒(méi)有軟件的任何硬件配置,其使用任何解決方案實(shí)現(xiàn)與之結(jié)合描述的功能,而術(shù)語(yǔ)“模塊”指程序代碼,其使計(jì)算機(jī)系統(tǒng)102能夠使用任何解決方案實(shí)現(xiàn)與之結(jié)合描述的操作。當(dāng)固定在包括處理組件106的計(jì)算機(jī)系統(tǒng)102的存儲(chǔ)器110中時(shí),模塊是實(shí)現(xiàn)操作的組件的一個(gè)主要部分。總之,應(yīng)該理解,兩個(gè)或更多個(gè)組件、模塊和/或系統(tǒng)可以共享其相應(yīng)硬件和/或軟件的部分/全部。進(jìn)一步,應(yīng)該理解,可以不實(shí)現(xiàn)在此討論的某些功能,或者可以包括額外功能作為計(jì)算機(jī)系統(tǒng)102的一部分。
[0028]當(dāng)計(jì)算機(jī)系統(tǒng)102包括多個(gè)計(jì)算設(shè)備104時(shí),每個(gè)計(jì)算設(shè)備104可以僅使模式提取程序140的一部分固定在其上(例如,一個(gè)或多個(gè)模塊142-148)。但是,應(yīng)該理解,計(jì)算機(jī)系統(tǒng)102和模式提取程序140僅代表各種可能的可以執(zhí)行在此描述的過(guò)程的等效計(jì)算機(jī)系統(tǒng)。在此方面,在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)102和模式提取程序140提供的功能可以至少部分地由一個(gè)或多個(gè)計(jì)算設(shè)備實(shí)現(xiàn),這些計(jì)算設(shè)備包括具有或沒(méi)有程序代碼的通用和/或?qū)S糜布娜魏谓M合。在每個(gè)實(shí)施例中,可以分別使用標(biāo)準(zhǔn)工程和編程技術(shù)創(chuàng)建硬件和程序代碼(如果包括)。
[0029]總之,當(dāng)計(jì)算機(jī)系統(tǒng)102包括多個(gè)計(jì)算設(shè)備104時(shí),計(jì)算設(shè)備可以通過(guò)任何類型的通信鏈路通信。進(jìn)一步,當(dāng)執(zhí)行在此描述的過(guò)程時(shí),計(jì)算機(jī)系統(tǒng)102可以使用任何類型的通信鏈路與一個(gè)或多個(gè)其它計(jì)算機(jī)系統(tǒng)通信。在任何一種情況下,通信鏈路可以包括各種類型的有線和/或無(wú)線鏈路的任何組合;包括一種或多種類型的網(wǎng)絡(luò)的任何組合;和/或使用各種類型的傳輸技術(shù)和協(xié)議的任何組合。
[0030]如在此討論的,模式提取程序140使計(jì)算機(jī)系統(tǒng)102能夠提取電子表格模式。在此方面,模式提取程序140被示為包括數(shù)據(jù)集檢索模塊142、數(shù)據(jù)集結(jié)構(gòu)檢查模塊144、數(shù)據(jù)元素分析器模塊146以及接口構(gòu)造器模塊148。
[0031]執(zhí)行數(shù)據(jù)集檢索模塊142的計(jì)算機(jī)系統(tǒng)102檢索表格數(shù)據(jù)集152,其中表格數(shù)據(jù)集152是一組以表格格式存儲(chǔ)的數(shù)據(jù)??梢允褂矛F(xiàn)在已知或以后開發(fā)的任何解決方案執(zhí)行表格數(shù)據(jù)集152的檢索,包括但不限于從存儲(chǔ)系統(tǒng)118檢索、通過(guò)局域網(wǎng)或廣域網(wǎng)檢索等,或者由用戶120創(chuàng)建。在任何情況下,數(shù)據(jù)集檢索模塊142檢索的表格數(shù)據(jù)集152可以是一組未編目的數(shù)據(jù)。具體地說(shuō),表格數(shù)據(jù)集152不需要包括互相鏈接的數(shù)據(jù)、索引、元數(shù)據(jù)或其它外部鏈接和/或?qū)⑺鼈冴P(guān)聯(lián)到數(shù)據(jù)、接口或其它訪問(wèn)工具,以便由模式提取程序140使用。
[0032]現(xiàn)在參考圖2,示出根據(jù)本發(fā)明的實(shí)施例的一個(gè)表格數(shù)據(jù)集200。表格數(shù)據(jù)集200可以采用電子表格202的形式,如圖2中所示,或者備選地可以包含在任何其它類型的應(yīng)用中,該應(yīng)用可以表示一組采用表格格式的數(shù)據(jù),包括但不限于字處理應(yīng)用、演示應(yīng)用、插圖應(yīng)用等。在任何情況下,如圖所示,表格數(shù)據(jù)集200包括一組數(shù)據(jù)元素210,它們可以包括數(shù)據(jù)(例如數(shù)據(jù)元素212)或者可以沒(méi)有數(shù)據(jù)(如數(shù)據(jù)元素214)。可以使用任何解決方案,通過(guò)一組行指示符204和/或一組列指示符206對(duì)數(shù)據(jù)元素210進(jìn)行尋址。此外,可以在應(yīng)用中的單個(gè)工作表上顯示表格數(shù)據(jù)集200,或者備選地可以使用多個(gè)工作表208表示所有數(shù)據(jù)。
[0033]在任何情況下,一旦已檢索表格數(shù)據(jù)集200,計(jì)算機(jī)系統(tǒng)102執(zhí)行的數(shù)據(jù)集結(jié)構(gòu)檢查模塊144就可以檢查表格數(shù)據(jù)集200的結(jié)構(gòu)??梢詢H根據(jù)在表格數(shù)據(jù)集200中發(fā)現(xiàn)的數(shù)據(jù)執(zhí)行該檢查,因此無(wú)需外部訪問(wèn)幫助。例如,可以標(biāo)識(shí)表格數(shù)據(jù)集200中的一個(gè)或多個(gè)矩形區(qū)域。每個(gè)標(biāo)識(shí)的矩形區(qū)域可以是表格數(shù)據(jù)集200中具有連續(xù)數(shù)據(jù)的區(qū)域,S卩,包含數(shù)據(jù)的數(shù)據(jù)元素210。為了標(biāo)識(shí)這些矩形區(qū)域,可以針對(duì)表格數(shù)據(jù)集200執(zhí)行逐行掃描。該掃描類似于計(jì)算機(jī)圖形掃描,可以通過(guò)以下操作實(shí)現(xiàn):將表格數(shù)據(jù)集200視為二維數(shù)組,并使用掃描行啟發(fā)算法以確定不相交的矩形。這種掃描行啟發(fā)算法可以按如下方式工作:掃描行302 (圖3)可以遍歷表格數(shù)據(jù)集200的行(該算法還通過(guò)掃描列來(lái)工作)。作為第一步驟,它可以標(biāo)識(shí)并跳過(guò)表格數(shù)據(jù)集中的所有空行。
[0034]即使空行(列)可能不需要進(jìn)一步處理,但空行(列)可以特別重要,因?yàn)樗鼈兛梢杂糜跇?biāo)識(shí)包含數(shù)據(jù)的矩形區(qū)域之間的邊界。如果標(biāo)識(shí)空行,則該算法可以斷定任何未來(lái)矩形都不會(huì)與到目前為止標(biāo)識(shí)的任何矩形相交(由于空行所致),因此該算法可以將先前標(biāo)識(shí)的所有矩形標(biāo)記為完整。對(duì)于非空行,每當(dāng)標(biāo)識(shí)表格數(shù)據(jù)集中的非空單元時(shí),它可以用于定義新矩形,該矩形最初僅包含單個(gè)標(biāo)識(shí)的非空單元。然后,該算法可以測(cè)試是否存在與新創(chuàng)建的矩形相鄰的任何鄰近矩形(在同一行中),并且如果存在,則可以將兩個(gè)矩形合并成一個(gè)(從而擴(kuò)展先前標(biāo)識(shí)的矩形的邊界)。
[0035]該算法還可以考慮這種情況:其中矩形與先前標(biāo)識(shí)的矩形在先前行之一中相鄰或重疊。這種考慮可以涉及至少四種不同的情況以標(biāo)識(shí)重疊,包括:(a)在當(dāng)前矩形的頂部行上,先前標(biāo)識(shí)的矩形是否與當(dāng)前矩形邊界內(nèi)的其它矩形的左側(cè)列或右側(cè)列相鄰;(b)在當(dāng)前矩形的底部行上,先前標(biāo)識(shí)的矩形是否與當(dāng)前矩形邊界內(nèi)的其它矩形的左側(cè)列或右側(cè)列相鄰;(c)在先前標(biāo)識(shí)的矩形的左側(cè)列上,此矩形是否與當(dāng)前矩形邊界內(nèi)的其它矩形的頂部行或底部行相鄰;和/或(d)在先前標(biāo)識(shí)的矩形的右側(cè)列上,此矩形是否與當(dāng)前矩形邊界內(nèi)的其它矩形的頂部行或底部行相鄰。如果適用這四種情況中的任何一種,則可以將兩個(gè)矩形合并成一個(gè)。當(dāng)已處理表格數(shù)據(jù)集中的所有行(和列)時(shí),該算法終止。
[0036]現(xiàn)在轉(zhuǎn)到圖3,示出針對(duì)表格數(shù)據(jù)集300使用逐行掃描的圖示。如圖所示,掃描行302逐行掃描表格數(shù)據(jù)集300。但是,應(yīng)該認(rèn)識(shí)到,此外或備選地,掃描行302可以逐列掃描表格數(shù)據(jù)集300。此外,掃描行302可以從表格數(shù)據(jù)集300中的第一行或列開始執(zhí)行掃描,并按順序通過(guò)行和/或列,或者備選地,可以使用在另一個(gè)位置開始和/或按不同順序掃描的算法。更進(jìn)一步,可以使用單個(gè)掃描行302或者備選地使用多個(gè)掃描行302執(zhí)行逐行掃描。
[0037]在任何情況下,如圖3中所示,使用掃描行302執(zhí)行的逐行掃描檢測(cè)到六個(gè)矩形區(qū)域310a_f。每個(gè)矩形區(qū)域310a_f在其邊界內(nèi)具有連續(xù)數(shù)據(jù),但是如可以看到的,在矩形區(qū)域310a-f中可以存在沒(méi)有數(shù)據(jù)的數(shù)據(jù)位置。相反,在掃描行302遇到與矩形區(qū)域直接相鄰且沒(méi)有數(shù)據(jù)的數(shù)據(jù)位置312a_c的行時(shí),逐行掃描可以針對(duì)特定的矩形區(qū)域310a_f設(shè)置邊界。因此例如,如圖3中所示,矩形區(qū)域310c的邊界設(shè)置如下:左側(cè)由空數(shù)據(jù)位置312a的行設(shè)置,上邊由空數(shù)據(jù)位置312b的行設(shè)置,右側(cè)由空數(shù)據(jù)位置312c的行設(shè)置。
[0038]使用掃描行302執(zhí)行的逐行掃描返回的信息還可以用于確定特定矩形區(qū)域310a-f中的數(shù)據(jù)元素的類型信息。例如,可以根據(jù)在表格數(shù)據(jù)集中標(biāo)識(shí)的數(shù)據(jù)及其與用于計(jì)算環(huán)境的已知數(shù)據(jù)類型(例如,字符串、整數(shù)、浮點(diǎn)、日期、時(shí)間)的對(duì)應(yīng)性,創(chuàng)建一組已知的數(shù)據(jù)類型。常用的表格數(shù)據(jù)集(例如,商用電子表格)通常具有專門用于特定產(chǎn)品的數(shù)據(jù)類型,并且這些數(shù)據(jù)類型可以用作初始類型系統(tǒng)。備選地,可以導(dǎo)入數(shù)據(jù)類型??梢詮娜魏卧磳?dǎo)入這些已知的數(shù)據(jù)類型,包括但不限于從其它電子表格的先前分析導(dǎo)入。然后可以將矩形區(qū)域310a_f中的數(shù)據(jù)元素與這些數(shù)據(jù)類型相比較,以便嘗試判定數(shù)據(jù)類型是否一致。
[0039]現(xiàn)在轉(zhuǎn)到圖4,示出針對(duì)表格數(shù)據(jù)集400進(jìn)一步使用逐行掃描的圖示。具體地說(shuō),掃描行402返回的信息可以用于確定特定矩形區(qū)域410a-f中的邏輯定向(orientation)。例如,可以在掃描行402掃描數(shù)據(jù)位置之后,分析數(shù)據(jù)位置(例如矩形區(qū)域410a-f中的行或列)的線性數(shù)組。分析線性數(shù)組可以判定線性數(shù)組中的數(shù)據(jù)元素是否具有對(duì)應(yīng)的數(shù)據(jù)類型。如果發(fā)現(xiàn)這種對(duì)應(yīng)性,則可以假設(shè)矩形區(qū)域410a-f中的數(shù)據(jù)以與線性數(shù)組相同的方向被邏輯定向。例如,如果可以在矩形區(qū)域410a_f中發(fā)現(xiàn)多個(gè)具有對(duì)應(yīng)數(shù)據(jù)類型且具有相同邏輯定向的線性數(shù)組,則可以加強(qiáng)該假設(shè)。如果沿著不同方向的線性數(shù)組具有不同的數(shù)據(jù)類型,則可以進(jìn)一步證實(shí)該假設(shè)。如圖3中所示,矩形區(qū)域410c和410f被確定為具有水平定向(例如,元素沿著行被邏輯定向),矩形區(qū)域410b、410d和410e被確定為具有垂直定向(例如,元素沿著列被邏輯定向),并且矩形區(qū)域410a被確定為具有雙向定向(例如,元素沿著行和列兩者被邏輯定向)。
[0040]使用掃描行402執(zhí)行的逐行掃描返回的信息還可以用于確定特定矩形區(qū)域410a-f中的一組標(biāo)題標(biāo)識(shí)符。例如,可以分析矩形區(qū)域410a_f中的數(shù)據(jù)位置(特別是與邊界相鄰的數(shù)據(jù)位置)的內(nèi)容,以便判定它們是否包含文本數(shù)據(jù)。如果發(fā)現(xiàn)這些數(shù)據(jù)位置包含文本數(shù)據(jù),則可以分析數(shù)據(jù)以便判定它是否對(duì)應(yīng)于已知標(biāo)題標(biāo)識(shí)符的常用值。例如,如果在這些數(shù)據(jù)位置中發(fā)現(xiàn)諸如“姓名”、“日期”、“數(shù)量”、“成本”之類的值,則可以將這些值確定為是標(biāo)題標(biāo)識(shí)符。在一個(gè)實(shí)施例中,可以將文本數(shù)據(jù)與外部源(例如字典、本體(ontology)等)相比較。進(jìn)一步,如果在單個(gè)矩形區(qū)域410a_f中發(fā)現(xiàn)多個(gè)標(biāo)題標(biāo)識(shí)符的線性數(shù)組,則可以借助矩形區(qū)域410a_f中的數(shù)據(jù)位置的合并屬性而創(chuàng)建類型層次結(jié)構(gòu)。
[0041]結(jié)合圖3再次參考圖1,計(jì)算機(jī)系統(tǒng)102執(zhí)行的數(shù)據(jù)元素分析器模塊146可以分析數(shù)據(jù)集結(jié)構(gòu)檢查模塊144返回的數(shù)據(jù)集模式中的數(shù)據(jù)元素,以便獲得有關(guān)位于其中的特定數(shù)據(jù)元素的進(jìn)一步元素信息。例如,可以分析數(shù)據(jù)集模式,以便確定數(shù)據(jù)集模式中的哪些數(shù)據(jù)元素包含原始數(shù)據(jù)。在該實(shí)例中,可以將原始數(shù)據(jù)與編輯數(shù)據(jù)區(qū)分開。例如,許多表格數(shù)據(jù)集300包含以某種方式組合其它數(shù)據(jù)元素的數(shù)據(jù)元素。這種編輯數(shù)據(jù)的實(shí)例包括公式,其可以提供數(shù)據(jù)集中的數(shù)據(jù)元素的總和、乘法、百分比、串接等。數(shù)據(jù)元素分析器模塊146可以區(qū)分原始數(shù)據(jù)和編輯數(shù)據(jù)。然后可以標(biāo)識(shí)包含原始數(shù)據(jù)的數(shù)據(jù)元素的界線。例如,算法的擴(kuò)展可以標(biāo)識(shí)矩形,以便矩形不會(huì)延伸到包含編輯數(shù)據(jù)的區(qū)域。然后,實(shí)際上將包含編輯數(shù)據(jù)的數(shù)據(jù)元素視為空數(shù)據(jù)元素,以便實(shí)現(xiàn)表格數(shù)據(jù)集處理的目的。
[0042]再次參考圖1,計(jì)算機(jī)系統(tǒng)102執(zhí)行的接口構(gòu)造器模塊148可以構(gòu)造接口,可以通過(guò)該接口遠(yuǎn)程訪問(wèn)表格數(shù)據(jù)集152。這種訪問(wèn)可以包括能夠“打開”連接、“關(guān)閉”連接、“獲得”元數(shù)據(jù)、“查詢”表格數(shù)據(jù)集等,方式與以下操作的方式大致相同:某人“打開”連接、“關(guān)閉”連接、“獲得”元數(shù)據(jù)、“查詢”遠(yuǎn)程數(shù)據(jù)源等(例如,使用關(guān)系數(shù)據(jù)庫(kù)、遠(yuǎn)程網(wǎng)絡(luò)源等)??梢允褂脭?shù)據(jù)集結(jié)構(gòu)檢查模塊144返回的數(shù)據(jù)集模式和數(shù)據(jù)元素分析器模塊146返回的元素信息來(lái)完成此構(gòu)造,其可以采用元數(shù)據(jù)的形式,或者備選地可以采取適于傳送有關(guān)數(shù)據(jù)的信息的任何其它形式。
[0043]因此,接口構(gòu)造器模塊148構(gòu)造的接口為用戶120提供工具,以便訪問(wèn)和理解表格數(shù)據(jù)集152中的數(shù)據(jù),否則該數(shù)據(jù)將不可用。進(jìn)一步,可以將該數(shù)據(jù)與來(lái)自其它這種數(shù)據(jù)集152的數(shù)據(jù)相組合,以及/或者與更多結(jié)構(gòu)化數(shù)據(jù)(例如來(lái)自一個(gè)或多個(gè)結(jié)構(gòu)化數(shù)據(jù)庫(kù))相組合,因此為現(xiàn)有數(shù)據(jù)提供更大的可訪問(wèn)性。通過(guò)這種方式,用戶120可以發(fā)出結(jié)構(gòu)化查詢而無(wú)需了解表格數(shù)據(jù)集152中的數(shù)據(jù),并轉(zhuǎn)而接收表格數(shù)據(jù)集152中滿足結(jié)構(gòu)化查詢的數(shù)據(jù)元素。此外,針對(duì)表格數(shù)據(jù)集對(duì)此類結(jié)構(gòu)化查詢求值可以返回觸發(fā)接口,以便遍歷滿足該結(jié)構(gòu)化查詢的數(shù)據(jù)元素。該觸發(fā)接口可以提供逐個(gè)遍歷表格數(shù)據(jù)集的滿足查詢的所有元素的能力。更詳細(xì)地說(shuō),該接口可以為用戶提供用于返回查詢的答案集的大小的方法(例如,size ()方法),以及用于測(cè)試答案集是否為空的方法(例如,isEmptyO方法),并且還提供用于獲得答案集中的第一個(gè)答案的方法(例如,getFirst ()方法)。此外,用戶能夠使用next ()方法獲得當(dāng)前答案之后的下一個(gè)答案,直到已處理答案集中的所有答案。通過(guò)這種方式并借助此類接口,用戶將能夠獲得查詢的所有答案(從第一個(gè)答案開始)。
[0044]現(xiàn)在轉(zhuǎn)到圖5,示出顯示根據(jù)本發(fā)明實(shí)施例的對(duì)表格數(shù)據(jù)集進(jìn)行后續(xù)訪問(wèn)的流程圖。如圖5 (結(jié)合圖1)所示,在Q1,接收由接口構(gòu)造器模塊148構(gòu)造的接口。在Q2,接收來(lái)自用戶120的結(jié)構(gòu)化查詢。結(jié)構(gòu)化查詢是對(duì)數(shù)據(jù)集(例如表格數(shù)據(jù)集152)中的數(shù)據(jù)元素的請(qǐng)求。在此方面,可以以結(jié)構(gòu)化查詢語(yǔ)言(例如SQL等)編寫結(jié)構(gòu)化查詢。在Q3,針對(duì)表格數(shù)據(jù)集152對(duì)從用戶120處接收的查詢求值。該求值可以獨(dú)立、與其它表格數(shù)據(jù)集152結(jié)合和/或與其它數(shù)據(jù)(例如位于結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù))結(jié)合。在任何情況下,在針對(duì)表格數(shù)據(jù)集152對(duì)查詢求值時(shí),使用構(gòu)造的接口指示表格數(shù)據(jù)集152的模式。該求值還可以返回觸發(fā)接口,以便遍歷滿足該結(jié)構(gòu)化查詢的數(shù)據(jù)元素。因此,在Q4,可以將符合條件的答案單元(例如,表格數(shù)據(jù)集152中滿足結(jié)構(gòu)化查詢的數(shù)據(jù)元素)返回給用戶120。
[0045]現(xiàn)在轉(zhuǎn)到圖6,示出根據(jù)本發(fā)明實(shí)施例的一個(gè)實(shí)例流程圖。如圖6 (結(jié)合圖1)所示,在S1,計(jì)算機(jī)系統(tǒng)102執(zhí)行的數(shù)據(jù)集檢索模塊142檢索以未編目表格格式存儲(chǔ)的一組數(shù)據(jù)(表格數(shù)據(jù)集152)。該未編目表格格式可以是電子表格的格式,或者是可以用于存儲(chǔ)表格數(shù)據(jù)集152的任何其它格式。在S2,計(jì)算機(jī)系統(tǒng)102執(zhí)行的數(shù)據(jù)集結(jié)構(gòu)檢查模塊144檢查所述一組數(shù)據(jù)的結(jié)構(gòu),以便確定所述一組數(shù)據(jù)的數(shù)據(jù)集模式。該數(shù)據(jù)集模式可以包括確定矩形區(qū)域310a-f、確定邊界區(qū)域、確定邏輯定向、確定標(biāo)題標(biāo)識(shí)符和/或確定表格數(shù)據(jù)集152中的元素的類型信息。在S3,計(jì)算機(jī)系統(tǒng)102執(zhí)行的數(shù)據(jù)集元素分析器模塊146分析數(shù)據(jù)集模式內(nèi)的數(shù)據(jù)元素,以便獲得數(shù)據(jù)元素信息。該元素信息可以包括(除其他項(xiàng)外)數(shù)據(jù)集中將原始數(shù)據(jù)與編輯數(shù)據(jù)分隔的界線等。在S4,計(jì)算機(jī)系統(tǒng)102執(zhí)行的接口構(gòu)造器模塊148使用數(shù)據(jù)集模式和元素信息,構(gòu)造允許遠(yuǎn)程訪問(wèn)表格數(shù)據(jù)集152的接口。
[0046]盡管在此被不出和描述為一種用于提取電子表格模式的方法和系統(tǒng),但應(yīng)該理解,本發(fā)明的各方面還提供不同的備選實(shí)施例。例如,在一個(gè)實(shí)施例中,本發(fā)明提供一種固定在至少一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序,當(dāng)執(zhí)行計(jì)算機(jī)程序時(shí),使計(jì)算機(jī)系統(tǒng)能夠提取電子表格模式。在此方面,計(jì)算機(jī)可讀介質(zhì)包括實(shí)現(xiàn)在此描述的過(guò)程的部分或全部的程序代碼,例如模式提取程序140 (圖1)。應(yīng)該理解,術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”包括現(xiàn)在已知或以后開發(fā)的任何類型的有形表達(dá)介質(zhì)中的一種或多種,計(jì)算設(shè)備可以從該介質(zhì)發(fā)現(xiàn)、再現(xiàn)或以其它方式傳送程序代碼的副本。例如,計(jì)算機(jī)可讀介質(zhì)可以包括:一個(gè)或多個(gè)便攜式存儲(chǔ)制品;計(jì)算設(shè)備的一個(gè)或多個(gè)存儲(chǔ)器/存儲(chǔ)組件等。
[0047]在另一個(gè)實(shí)施例中,本發(fā)明提供一種方法,所述方法提供實(shí)現(xiàn)在此描述的過(guò)程的部分或全部的程序代碼(例如模式提取程序140 (圖1))的副本。在這種情況下,計(jì)算機(jī)系統(tǒng)可以處理實(shí)現(xiàn)在此描述的過(guò)程的部分或全部的程序代碼的副本,以便生成和傳輸一組數(shù)據(jù)信號(hào)以在第二不同位置處接收,所述一組數(shù)據(jù)信號(hào)以這樣的方式設(shè)置和/或更改其一個(gè)或多個(gè)特性:對(duì)所述一組數(shù)據(jù)信號(hào)中的程序代碼的副本進(jìn)行編碼。同樣,本發(fā)明的一個(gè)實(shí)施例提供一種方法,所述方法獲得實(shí)現(xiàn)在此描述的過(guò)程的部分或全部的程序代碼的副本,所述方法包括計(jì)算機(jī)系統(tǒng)接收在此描述的所述一組數(shù)據(jù)信號(hào),以及將所述一組數(shù)據(jù)信號(hào)轉(zhuǎn)換為固定在至少一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序的副本。在任何一種情況下,可以使用任何類型的通信鏈路傳輸/接收所述一組數(shù)據(jù)信號(hào)。
[0048]在另一個(gè)實(shí)施例中,本發(fā)明提供一種方法,所述方法生成用于修復(fù)與遷移相關(guān)的故障的系統(tǒng)。在這種情況下,可以獲得(例如,創(chuàng)建、維護(hù)、提供等)諸如計(jì)算機(jī)系統(tǒng)120 (圖1)之類的計(jì)算機(jī)系統(tǒng),并且可以獲得(例如,創(chuàng)建、購(gòu)買、使用、修改等)用于執(zhí)行在此描述的過(guò)程的一個(gè)或多個(gè)組件并將其部署到計(jì)算機(jī)系統(tǒng)。在此方面,部署可以包括以下一項(xiàng)或多項(xiàng):(1)在計(jì)算設(shè)備上安裝程序代碼;(2)將一個(gè)或多個(gè)計(jì)算和/或I/O設(shè)備添加到計(jì)算機(jī)系統(tǒng);(3)集成和/或修改計(jì)算機(jī)系統(tǒng)以使它能夠執(zhí)行在此描述的過(guò)程;等等。
[0049]術(shù)語(yǔ)“第一”、“第二”等(如果在此使用)并非表示任何順序、數(shù)量或重要性,而是用于區(qū)分一個(gè)元素與另一個(gè)元素,術(shù)語(yǔ)“一”、“一個(gè)”在此并不表示數(shù)量限制,而是表示存在至少一個(gè)提及的項(xiàng)。與數(shù)量結(jié)合使用的修飾語(yǔ)“大約”包括所聲稱的值,并具有上下文決定的含義(例如,包括與特定數(shù)量的測(cè)量關(guān)聯(lián)的誤差度)。后綴“(多個(gè))”如在此使用的,旨在包括它修飾的術(shù)語(yǔ)的單數(shù)和復(fù)數(shù),從而包括一個(gè)或多個(gè)該術(shù)語(yǔ)(例如,金屬(多種)包括一種或多種金屬)。
[0050]出于示例和說(shuō)明目的給出了上面對(duì)本發(fā)明不同方面的描述。所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開的精確形式,顯然可以進(jìn)行許多修改和變化。對(duì)本領(lǐng)域技術(shù)人員顯而易見(jiàn)的這些修改和變型將包括在所附權(quán)利要求限定的本發(fā)明的范圍內(nèi)。
【權(quán)利要求】
1.一種用于提取電子表格模式的方法,包括:檢索以未編目表格格式存儲(chǔ)的一組數(shù)據(jù);檢查所述一組數(shù)據(jù)的結(jié)構(gòu)以便確定所述一組數(shù)據(jù)的數(shù)據(jù)集模式;分析所述數(shù)據(jù)集模式中的數(shù)據(jù)元素以便獲得元素信息;以及使用所述數(shù)據(jù)集模式和所述元素信息構(gòu)造接口以便遠(yuǎn)程訪問(wèn)所述一組數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的方法,其中所述表格格式包括電子表格。
3.根據(jù)權(quán)利要求1的方法,其中所述檢查進(jìn)一步包括:標(biāo)識(shí)所述一組數(shù)據(jù)中具有連續(xù)數(shù)據(jù)的矩形區(qū)域;確定所述矩形區(qū)域中的數(shù)據(jù)元素的邏輯定向;確定所述矩形區(qū)域中的所述數(shù)據(jù)元素的一組標(biāo)題標(biāo)識(shí)符;以及確定所述數(shù)據(jù)元素的數(shù)據(jù)類型信息。
4.根據(jù)權(quán)利要求3的方法,其中所述標(biāo)識(shí)進(jìn)一步包括:對(duì)所述一組數(shù)據(jù)執(zhí)行逐行掃描;以及在遇到與所述連續(xù)數(shù)據(jù)直 接相鄰的沒(méi)有數(shù)據(jù)的行時(shí),設(shè)置所述矩形區(qū)域的邊界。
5.根據(jù)權(quán)利要求4的方法,其中確定所述一組標(biāo)題標(biāo)識(shí)符進(jìn)一步包括:分析與所述邊界相鄰的數(shù)據(jù)位置的內(nèi)容;判定一組所述數(shù)據(jù)位置是否包含文本數(shù)據(jù);以及將所述文本數(shù)據(jù)與已知的標(biāo)題標(biāo)識(shí)符相比較,以便判定所述文本數(shù)據(jù)是否包括所述矩形區(qū)域的一組標(biāo)題標(biāo)識(shí)符。
6.根據(jù)權(quán)利要求5的方法,其中所述比較將所述文本數(shù)據(jù)與外部字典或本體中的至少一個(gè)相比較。
7.根據(jù)權(quán)利要求3的方法,其中確定所述邏輯定向進(jìn)一步包括:分析所述矩形區(qū)域中的數(shù)據(jù)位置的線性數(shù)組;判定所述線性數(shù)組中的數(shù)據(jù)元素是否具有對(duì)應(yīng)的數(shù)據(jù)類型;以及根據(jù)所述判定而標(biāo)識(shí)所述數(shù)據(jù)元素在邏輯上是被水平存儲(chǔ)、垂直存儲(chǔ)還是雙向存儲(chǔ)。
8.根據(jù)權(quán)利要求3的方法,其中確定類型信息進(jìn)一步包括:導(dǎo)入從對(duì)其它電子表格的先前分析而收集的一組已知數(shù)據(jù)類型;以及將所述矩形區(qū)域中的數(shù)據(jù)元素的類型與所述一組已知數(shù)據(jù)類型相比較。
9.根據(jù)權(quán)利要求1的方法,其中分析所述數(shù)據(jù)元素進(jìn)一步包括:針對(duì)所述數(shù)據(jù)元素中的每個(gè)數(shù)據(jù)元素,區(qū)分該數(shù)據(jù)元素是包含原始數(shù)據(jù)還是編輯數(shù)據(jù);以及標(biāo)識(shí)所述矩形區(qū)域內(nèi)包含具有原始數(shù)據(jù)的數(shù)據(jù)元素的界線。
10.根據(jù)權(quán)利要求1的方法,還包括:接收來(lái)自用戶的結(jié)構(gòu)化查詢;根據(jù)所構(gòu)造的接口,針對(duì)所述一組數(shù)據(jù)而對(duì)所述結(jié)構(gòu)化查詢求值;以及返回所述一組數(shù)據(jù)中滿足所述結(jié)構(gòu)化查詢的數(shù)據(jù)元素。
11.根據(jù)權(quán)利要求10的方法,其中針對(duì)所述一組數(shù)據(jù)而對(duì)所述結(jié)構(gòu)化查詢求值的步驟返回觸發(fā)接口,以便遍歷滿足所述結(jié)構(gòu)化查詢的數(shù)據(jù)元素。
12.一種用于提取電子表格模式的系統(tǒng),所述系統(tǒng)包括被配置為執(zhí)行權(quán)利要求1至11中的任一權(quán)利 要求的方法步驟的裝置。
【文檔編號(hào)】G06F17/30GK103678451SQ201310410042
【公開日】2014年3月26日 申請(qǐng)日期:2013年9月10日 優(yōu)先權(quán)日:2012年9月12日
【發(fā)明者】M·A·伯尼亞, 段松云, A·B·福庫(kù)-恩庫(kù)徹, A·凱門西斯迪斯, K·斯里尼瓦斯, M·J·沃德 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司