相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求于2015年2月11日提交的序號(hào)為62/114,684的美國(guó)申請(qǐng)的優(yōu)先權(quán)。
本說(shuō)明書(shū)涉及用于過(guò)濾數(shù)據(jù)沿襲(datalineage)圖的沿襲標(biāo)簽。
背景技術(shù):
在數(shù)據(jù)處理系統(tǒng)中,某些類(lèi)型的用戶通常期望能夠訪問(wèn)貫穿系統(tǒng)的數(shù)據(jù)沿襲的視覺(jué)表示。這樣的“數(shù)據(jù)沿襲圖”可以包括系統(tǒng)中的數(shù)據(jù)和用于處理該數(shù)據(jù)實(shí)體的圖形表示以及它們之間的依賴關(guān)系。通常,在許多用途中,可以使用這些數(shù)據(jù)沿襲圖來(lái)降低風(fēng)險(xiǎn),驗(yàn)證合規(guī)性義務(wù)(regulatorycomplianceobligation),提高業(yè)務(wù)流程效率以及保護(hù)數(shù)據(jù)。重要的是數(shù)據(jù)沿襲圖是正確且完整的。
能夠產(chǎn)生并顯示數(shù)據(jù)沿襲圖的一些系統(tǒng)能夠自動(dòng)呈現(xiàn)端到端的數(shù)據(jù)沿襲圖,這些數(shù)據(jù)沿襲圖示出數(shù)據(jù)項(xiàng)的表示,并且顯示表示了用于消耗或生成這些數(shù)據(jù)項(xiàng)的處理實(shí)體的項(xiàng)的表示。在一些示例中,特定項(xiàng)上游的沿襲路徑有時(shí)稱為該項(xiàng)的“依賴性沿襲(dependencylineage)”,并且特定項(xiàng)下游的沿襲路徑有時(shí)稱為該項(xiàng)的“影響沿襲(impactlineage)”。在其他示例中,特定項(xiàng)上游的沿襲路徑被稱為“沿襲”或“依賴性”,并且特定項(xiàng)下游的沿襲路徑稱為“影響”或“影響分析”。如本文所使用的,“數(shù)據(jù)沿襲圖”可以包括相對(duì)于任意給定項(xiàng)的上游依賴性沿襲和/或下游影響性沿襲。能夠生成并顯示數(shù)據(jù)沿襲圖的一些系統(tǒng)允許用戶將數(shù)據(jù)沿襲圖中項(xiàng)的邏輯和/或物理組分解成單個(gè)元素。能夠生成并顯示數(shù)據(jù)沿襲圖的一些系統(tǒng)能夠通過(guò)豐富的數(shù)據(jù)信息(如數(shù)據(jù)質(zhì)量評(píng)分)來(lái)增強(qiáng)數(shù)據(jù)沿襲圖。
技術(shù)實(shí)現(xiàn)要素:
在一個(gè)方案中,通常,一種用于在計(jì)算系統(tǒng)中管理沿襲信息的方法,所述方法包括:在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)有向圖的規(guī)范,所述有向圖的規(guī)范包括多個(gè)節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個(gè)節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個(gè)節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個(gè)標(biāo)簽標(biāo)識(shí)符中的一個(gè)或多個(gè)標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),所述多個(gè)標(biāo)簽標(biāo)識(shí)符中的至少一個(gè)標(biāo)簽標(biāo)識(shí)符具有多個(gè)可能標(biāo)簽值;使用至少一個(gè)處理器來(lái)處理針對(duì)所述多個(gè)節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請(qǐng)求。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個(gè)標(biāo)簽標(biāo)識(shí)符中至少第一標(biāo)簽標(biāo)識(shí)符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值中的至少一個(gè)標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開(kāi)始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲。所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個(gè)或兩個(gè),所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成。確定所述數(shù)據(jù)沿襲包括,對(duì)于每個(gè)被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識(shí)符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
方案可以包括一個(gè)或多個(gè)下述特征。
確定所述數(shù)據(jù)沿襲包括:針對(duì)每個(gè)被遍歷的節(jié)點(diǎn):如果所述被遍歷的節(jié)點(diǎn)不與所述第一標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),或者所述被遍歷的節(jié)點(diǎn)與所述第一標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)且與所述第一子集的至少一個(gè)標(biāo)簽值相關(guān)聯(lián),則將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲;或者如果所述被遍歷的節(jié)點(diǎn)與所述第一標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)但不與所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值中第一子集的至少一個(gè)標(biāo)簽值相關(guān)聯(lián),則將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
在從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)時(shí),終止所述第一沿襲路徑的遍歷。該方法可以包括:在遍歷所述多個(gè)節(jié)點(diǎn)中的各節(jié)點(diǎn)之前分析所述多個(gè)節(jié)點(diǎn),以確定與所述第一標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)但不與所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值第一子集中的至少一個(gè)標(biāo)簽值相關(guān)聯(lián)的所述多個(gè)節(jié)點(diǎn)的第一子集。確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)包括確定所述被遍歷的節(jié)點(diǎn)是否包括在所述多個(gè)節(jié)點(diǎn)的第一子集中。確定是否將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲包括:如果所述被遍歷的節(jié)點(diǎn)不包括在所述多個(gè)節(jié)點(diǎn)的第一子集中,則將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲;如果被遍歷的節(jié)點(diǎn)包括在所述多個(gè)節(jié)點(diǎn)的第一子集中,則從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)。
所述多個(gè)節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)嵌套在所述多個(gè)節(jié)點(diǎn)中的其他節(jié)點(diǎn)內(nèi)。與所述節(jié)點(diǎn)嵌套層級(jí)中較低級(jí)別的節(jié)點(diǎn)相關(guān)聯(lián)的標(biāo)簽標(biāo)識(shí)符及其相關(guān)聯(lián)的標(biāo)簽值的子集優(yōu)先于與節(jié)點(diǎn)嵌套層級(jí)中較高級(jí)別的節(jié)點(diǎn)相關(guān)聯(lián)的標(biāo)簽標(biāo)識(shí)符及其相關(guān)聯(lián)的標(biāo)簽值的子集。沿所述第一沿襲路徑遍歷多個(gè)節(jié)點(diǎn)包括從所述第一節(jié)點(diǎn)開(kāi)始沿著與所述有向鏈路的方向相反的方向遍歷多個(gè)節(jié)點(diǎn)。
該方法還可以包括生成所述有向圖的規(guī)范,其中,所述多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)節(jié)點(diǎn)表示計(jì)算,所述多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)節(jié)點(diǎn)表示執(zhí)行計(jì)算的過(guò)程中通過(guò)所述計(jì)算接收或產(chǎn)生的數(shù)據(jù)元素,以及所述有向鏈路表示計(jì)算與數(shù)據(jù)元素之間的沿襲關(guān)系。所述多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)節(jié)點(diǎn)表示所述多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)其他節(jié)點(diǎn)的分組。所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值的第一子集由與所述第一節(jié)點(diǎn)相關(guān)聯(lián)的一個(gè)或多個(gè)標(biāo)簽值構(gòu)成。
所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值的第一子集由從用戶輸入所接收的一個(gè)或多個(gè)標(biāo)簽值構(gòu)成。該方法還可以包括:從所述第一節(jié)點(diǎn)開(kāi)始沿有向鏈路的多個(gè)沿襲路徑遍歷多個(gè)節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中確定所述數(shù)據(jù)沿襲包括:對(duì)于每個(gè)被編列的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識(shí)符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲,還是從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)。該方法還包括:默認(rèn)將所述第一節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲。
在其他方案中,一般而言,提供了存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的軟件,用于管理計(jì)算系統(tǒng)中的沿襲信息,所述軟件包括用于使計(jì)算系統(tǒng)執(zhí)行以下操作的指令:在數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)有向圖的規(guī)范,所述有向圖的規(guī)范包括多個(gè)節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個(gè)節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個(gè)節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個(gè)標(biāo)簽標(biāo)識(shí)符中的一個(gè)或多個(gè)標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),所述多個(gè)標(biāo)簽標(biāo)識(shí)符中的至少一個(gè)標(biāo)簽標(biāo)識(shí)符具有多個(gè)可能標(biāo)簽值;使用至少一個(gè)處理器來(lái)處理針對(duì)所述多個(gè)節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請(qǐng)求。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個(gè)標(biāo)簽標(biāo)識(shí)符中至少第一標(biāo)簽標(biāo)識(shí)符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值中的至少一個(gè)標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開(kāi)始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中,所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個(gè)或兩個(gè),所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成,其中確定所述數(shù)據(jù)沿襲包括,對(duì)于每個(gè)被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識(shí)符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
在另一個(gè)方案中,一般而言,一種計(jì)算系統(tǒng),用于管理沿襲信息,所述計(jì)算系統(tǒng)包括:數(shù)據(jù)存儲(chǔ)系統(tǒng),用于存儲(chǔ)有向圖的規(guī)范,所述有向圖的規(guī)范包括多個(gè)節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個(gè)節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個(gè)節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個(gè)標(biāo)簽標(biāo)識(shí)符中的一個(gè)或多個(gè)標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),所述多個(gè)標(biāo)簽標(biāo)識(shí)符中的至少一個(gè)標(biāo)簽標(biāo)識(shí)符具有多個(gè)可能標(biāo)簽值;以及至少一個(gè)處理器,配置為處理針對(duì)所述多個(gè)節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請(qǐng)求。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個(gè)標(biāo)簽標(biāo)識(shí)符中至少第一標(biāo)簽標(biāo)識(shí)符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值中的至少一個(gè)標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開(kāi)始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中,所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個(gè)或兩個(gè),所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成,其中確定所述數(shù)據(jù)沿襲包括,對(duì)于每個(gè)被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識(shí)符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
在另一個(gè)方案中,一般而言,一種計(jì)算系統(tǒng),用于管理沿襲信息,所述計(jì)算系統(tǒng)包括:用于存儲(chǔ)有向圖的規(guī)范的裝置,所述有向圖的規(guī)范包括多個(gè)節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個(gè)節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個(gè)節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個(gè)標(biāo)簽標(biāo)識(shí)符中的一個(gè)或多個(gè)標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),所述多個(gè)標(biāo)簽標(biāo)識(shí)符中的至少一個(gè)標(biāo)簽標(biāo)識(shí)符具有多個(gè)可能標(biāo)簽值;用于處理針對(duì)所述多個(gè)節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請(qǐng)求的裝置。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個(gè)標(biāo)簽標(biāo)識(shí)符中至少第一標(biāo)簽標(biāo)識(shí)符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值中的至少一個(gè)標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識(shí)符的多個(gè)可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開(kāi)始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中,所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個(gè)或兩個(gè),所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成,其中確定所述數(shù)據(jù)沿襲包括,對(duì)于每個(gè)被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識(shí)符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
方案可以包括一個(gè)或多個(gè)下述優(yōu)點(diǎn)。
在一些常規(guī)方案中,本申請(qǐng)所述方法適用于用戶已經(jīng)用沿襲標(biāo)簽形式的附加信息來(lái)增強(qiáng)了各節(jié)點(diǎn)的沿襲圖。沿襲標(biāo)簽用于過(guò)濾沿襲圖,使得可以定位特定的用戶定義維度,而不會(huì)將沿襲僅僅限制為與通過(guò)過(guò)濾所挑選的對(duì)象相鄰的對(duì)象,或者通過(guò)過(guò)濾所挑選的對(duì)象的直系沿襲或影響路徑內(nèi)的對(duì)象。
相比于其他技術(shù)(例如,簡(jiǎn)單過(guò)濾或沿襲匯總),本申請(qǐng)所述的方法可以以更具選擇性的方式降低復(fù)雜度。例如,一些沿襲圖中的一個(gè)復(fù)雜度的來(lái)源是執(zhí)行標(biāo)準(zhǔn)化和去標(biāo)準(zhǔn)化操作的節(jié)點(diǎn),使用沿襲標(biāo)簽可以有助于降低這類(lèi)沿襲圖中的復(fù)雜度,如本申請(qǐng)更詳細(xì)描述的那樣。
這些方法通過(guò)允許用戶定義不同類(lèi)型的標(biāo)簽來(lái)實(shí)現(xiàn)選擇性,每個(gè)標(biāo)簽都有自己的一組枚舉值。每種類(lèi)型的標(biāo)簽充當(dāng)其自己的獨(dú)立過(guò)濾維度。標(biāo)簽也可以基于沿襲圖的配置而自動(dòng)定義,例如執(zhí)行標(biāo)準(zhǔn)化和去標(biāo)準(zhǔn)化的節(jié)點(diǎn)。
在一些示例中,用于選擇要將哪些節(jié)點(diǎn)包括在過(guò)濾后的數(shù)據(jù)沿襲圖中以及從過(guò)濾后的數(shù)據(jù)沿襲圖中排除哪些節(jié)點(diǎn)的算法遍及沿襲圖的各節(jié)點(diǎn),并通過(guò)將所遇到的標(biāo)簽(與標(biāo)簽相關(guān)聯(lián)的任何節(jié)點(diǎn))與一組活動(dòng)標(biāo)簽(activetag)進(jìn)行比較來(lái)確定要排除哪個(gè)或哪些。
除了其他優(yōu)點(diǎn)之外,本申請(qǐng)描述的方法并不是簡(jiǎn)單地將圖限制成具有活動(dòng)標(biāo)簽的項(xiàng)的上游和下游節(jié)點(diǎn)。相反,未標(biāo)注標(biāo)簽的節(jié)點(diǎn)也保留在圖中。因此,這些方法允許手術(shù)去除枚舉組的非期望元素的上游或下游的節(jié)點(diǎn)。這種選擇性有利地提供了解決通過(guò)簡(jiǎn)單過(guò)濾或者沿襲匯總(例如,數(shù)據(jù)的標(biāo)準(zhǔn)化/去標(biāo)準(zhǔn)化或超載對(duì)象(overloadedobject))而無(wú)法解決的問(wèn)題的能力。
隨著數(shù)據(jù)處理系統(tǒng)復(fù)雜度的增加,數(shù)據(jù)沿襲圖也變得越來(lái)越復(fù)雜,在單一視圖中呈現(xiàn)出由相應(yīng)圖標(biāo)所表示的許多節(jié)點(diǎn)(例如,數(shù)據(jù)節(jié)點(diǎn)和數(shù)據(jù)變換節(jié)點(diǎn),統(tǒng)稱“節(jié)點(diǎn)”)。隨著在數(shù)據(jù)沿襲圖中呈現(xiàn)給用戶的節(jié)點(diǎn)數(shù)量的增加,數(shù)據(jù)沿襲圖也可能變得難以理解。
在一些示例中,數(shù)據(jù)處理圖包括許多部分重疊的數(shù)據(jù)沿襲路徑,它們中只有一小部分是用戶通常所感興趣的。例如,在數(shù)據(jù)處理圖的上游部分中,存在許多不同的系統(tǒng),這些系統(tǒng)基于例如地理區(qū)域來(lái)處理數(shù)據(jù)。在數(shù)據(jù)處理圖的中游部分中,對(duì)來(lái)自該圖的上游部分的數(shù)據(jù)進(jìn)行分組,并且在該圖的下游部分中,處理已分組的數(shù)據(jù)。用戶可能有興趣分析單一地理區(qū)域的沿襲路徑。
本文所述的方法利用了一種認(rèn)識(shí),即在給定的數(shù)據(jù)處理系統(tǒng)內(nèi),相互關(guān)聯(lián)的某些節(jié)點(diǎn)通常就是用戶查看時(shí)所感興趣的節(jié)點(diǎn)。在本文所述的方法中,使用沿襲標(biāo)簽來(lái)關(guān)聯(lián)彼此相關(guān)的節(jié)點(diǎn)集。然后可以基于沿襲標(biāo)簽來(lái)過(guò)濾節(jié)點(diǎn),以允許用戶生成過(guò)濾后的數(shù)據(jù)沿襲圖,其中僅包括用戶查看時(shí)所感興趣的節(jié)點(diǎn)。
基于以下描述和權(quán)利要求,本發(fā)明的其他特征和優(yōu)點(diǎn)將變得明顯。
附圖說(shuō)明
圖1是包括沿襲過(guò)濾特征的數(shù)據(jù)處理系統(tǒng)的框圖。
圖2a是包括了帶有沿襲標(biāo)簽的節(jié)點(diǎn)的數(shù)據(jù)沿襲圖。
圖2b是“區(qū)域:us”的第一過(guò)濾后的數(shù)據(jù)沿襲圖。
圖3是過(guò)濾算法的框圖。
圖4是圖2a的數(shù)據(jù)沿襲圖,其中選擇了一個(gè)節(jié)點(diǎn)并將幾個(gè)節(jié)點(diǎn)添加至黑名單。
圖5是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第一數(shù)據(jù)沿襲路徑。
圖6是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第二數(shù)據(jù)沿襲路徑。
圖7是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第三數(shù)據(jù)沿襲路徑。
圖8是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第四數(shù)據(jù)沿襲路徑。
圖9是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第五數(shù)據(jù)沿襲路徑。
圖10是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第六數(shù)據(jù)沿襲路徑。
圖11是圖2a的數(shù)據(jù)沿襲圖,其中排除了無(wú)關(guān)聯(lián)的節(jié)點(diǎn)。
圖12是“區(qū)域:us、mex”的第二過(guò)濾后的數(shù)據(jù)沿襲圖。
圖13是計(jì)算機(jī)程序的數(shù)據(jù)沿襲圖,該計(jì)算機(jī)程序被配置為執(zhí)行數(shù)據(jù)標(biāo)準(zhǔn)化和去標(biāo)準(zhǔn)化。
圖14是圖13的數(shù)據(jù)沿襲圖,其包括與一些節(jié)點(diǎn)相關(guān)聯(lián)的沿襲標(biāo)簽。
圖15是圖13的數(shù)據(jù)沿襲圖,其中某些節(jié)點(diǎn)被添加至黑名單。
圖16是基于沿襲標(biāo)簽的過(guò)濾過(guò)程中的圖13的數(shù)據(jù)沿襲圖。
圖17是過(guò)濾后的數(shù)據(jù)沿襲圖。
具體實(shí)施方式
圖1示出了數(shù)據(jù)處理系統(tǒng)10的示例,其可以使用基于沿襲標(biāo)簽的數(shù)據(jù)沿襲過(guò)濾技術(shù)。系統(tǒng)10包括數(shù)據(jù)源12,該數(shù)據(jù)源12可以包括一個(gè)或多個(gè)數(shù)據(jù)源,例如存儲(chǔ)設(shè)備或者至在線數(shù)據(jù)流的連接,每個(gè)數(shù)據(jù)源可以存儲(chǔ)或提供各種格式中任意格式的數(shù)據(jù)(例如,數(shù)據(jù)庫(kù)表、電子表格文件、純文本文件或大型機(jī)使用的本地格式)。執(zhí)行環(huán)境14包括執(zhí)行模塊13。執(zhí)行環(huán)境14可以被托管在一個(gè)或多個(gè)通用計(jì)算機(jī)上,該一個(gè)或多個(gè)通用計(jì)算機(jī)受合適的操作系統(tǒng)的控制,例如某版本的unix操作系統(tǒng)。例如,執(zhí)行環(huán)境14可包括多節(jié)點(diǎn)并行計(jì)算環(huán)境,該多節(jié)點(diǎn)并行計(jì)算環(huán)境包括使用多個(gè)中央處理單元(cpu)或處理器內(nèi)核的計(jì)算機(jī)系統(tǒng)的配置,其為本地的(例如,諸如對(duì)稱多處理(smp)計(jì)算機(jī)之類(lèi)的多處理器系統(tǒng)),或?yàn)楸镜胤植际?例如,耦接為集群或大規(guī)模并行處理(mpp)系統(tǒng)的多個(gè)處理器,或?yàn)檫h(yuǎn)程的,或?yàn)檫h(yuǎn)程分布式的(例如,經(jīng)由局域網(wǎng)(lan)和/或廣域網(wǎng)(wan)耦接的多個(gè)處理器),或?yàn)槠淙我饨M合。
提供了數(shù)據(jù)源12的存儲(chǔ)設(shè)備可以對(duì)于執(zhí)行環(huán)境14來(lái)說(shuō)是本地的,例如,存儲(chǔ)在連接到托管有執(zhí)行環(huán)境14的計(jì)算機(jī)的存儲(chǔ)介質(zhì)(例如,硬盤(pán)驅(qū)動(dòng)器18)上,或者可以對(duì)于執(zhí)行環(huán)境14來(lái)說(shuō)是遠(yuǎn)程的,例如,通過(guò)遠(yuǎn)程連接(例如,由云計(jì)算基礎(chǔ)設(shè)施提供的遠(yuǎn)程連接)被托管在與托管了執(zhí)行環(huán)境14的計(jì)算機(jī)進(jìn)行通信的遠(yuǎn)程系統(tǒng)(例如,大型機(jī)20)上)。
系統(tǒng)10包括開(kāi)發(fā)環(huán)境28,在該開(kāi)發(fā)環(huán)境28中,開(kāi)發(fā)者30能夠指定數(shù)據(jù)處理計(jì)算機(jī)程序27(例如,數(shù)據(jù)流圖表),并將程序存儲(chǔ)在執(zhí)行環(huán)境14可訪問(wèn)的數(shù)據(jù)存儲(chǔ)系統(tǒng)26中。執(zhí)行模塊13根據(jù)計(jì)算機(jī)程序27來(lái)處理來(lái)自數(shù)據(jù)源的數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)24。輸出數(shù)據(jù)24可以被存儲(chǔ)回?cái)?shù)據(jù)源12中或被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)系統(tǒng)26中,或者被使用。在一些實(shí)施方式中,開(kāi)發(fā)環(huán)境28是用于將應(yīng)用程序開(kāi)發(fā)為數(shù)據(jù)流圖表的系統(tǒng),該數(shù)據(jù)流圖表包括通過(guò)多個(gè)頂點(diǎn)之間的有向鏈路(表示工作元素的流,即數(shù)據(jù))連接的頂點(diǎn)(表示數(shù)據(jù)處理組件或數(shù)據(jù)集)。例如,這種環(huán)境在美國(guó)公開(kāi)號(hào)為2007/0011668的標(biāo)題為“管理基于圖形的應(yīng)用的參數(shù)”的美國(guó)專利公開(kāi)文件中有更詳細(xì)的描述,該專利通過(guò)引用的方式并入本申請(qǐng)。在標(biāo)題為“executingcomputationsexpressedasgraphs(執(zhí)行表達(dá)為圖的計(jì)算)”的美國(guó)專利5,966,072中描述了一種用于執(zhí)行這種基于圖的計(jì)算的系統(tǒng),其通過(guò)引用的方式并入本申請(qǐng)。根據(jù)該系統(tǒng)制作的數(shù)據(jù)流圖提供了用于將信息輸入和輸出由圖形組件表示的各個(gè)進(jìn)程、用于在進(jìn)程之間移動(dòng)信息以及用于定義進(jìn)程的運(yùn)行順序的方法。該系統(tǒng)包括從任何可用方法選擇進(jìn)程間通信方法的算法(例如,根據(jù)圖的鏈路的通信沿襲路徑可以使用tcp/ip或unix域套接字,或者使用共享存儲(chǔ)器在進(jìn)程之間傳遞數(shù)據(jù))。
系統(tǒng)10包括企業(yè)環(huán)境29,用戶31(例如,企業(yè)用戶或數(shù)據(jù)架構(gòu)師)可以通過(guò)該企業(yè)環(huán)境29請(qǐng)求和查看數(shù)據(jù)沿襲圖。為了生成數(shù)據(jù)沿襲圖,企業(yè)環(huán)境29包括分析系統(tǒng)元數(shù)據(jù)以生成數(shù)據(jù)沿襲圖的數(shù)據(jù)沿襲模塊25,系統(tǒng)元數(shù)據(jù)包括表征表示對(duì)應(yīng)于計(jì)算機(jī)程序27不同部分的計(jì)算的數(shù)據(jù)變換節(jié)點(diǎn)的元數(shù)據(jù)(例如,不同的數(shù)據(jù)流圖或數(shù)據(jù)流圖內(nèi)的不同組件)以及表征由計(jì)算機(jī)程序27訪問(wèn)或生成的數(shù)據(jù)節(jié)點(diǎn)的元數(shù)據(jù)(例如,來(lái)自數(shù)據(jù)源12的數(shù)據(jù)集或?qū)?yīng)于輸出數(shù)據(jù)24的數(shù)據(jù)集)。
在一些示例中,表征數(shù)據(jù)變換節(jié)點(diǎn)和/或數(shù)據(jù)節(jié)點(diǎn)的元數(shù)據(jù)包括數(shù)據(jù)沿襲標(biāo)簽(有時(shí)稱為“沿襲標(biāo)簽”)。通常,每個(gè)沿襲標(biāo)簽都具有標(biāo)簽標(biāo)識(shí)符和許多可能的標(biāo)簽值。例如,一個(gè)示例性沿襲標(biāo)簽可以具有的標(biāo)簽標(biāo)識(shí)符為“區(qū)域”以及可能的標(biāo)簽值為“美國(guó)、英國(guó)、墨西哥、加拿大”。
計(jì)算機(jī)程序27中的至少一些節(jié)點(diǎn)(即,數(shù)據(jù)變換節(jié)點(diǎn)和/或數(shù)據(jù)節(jié)點(diǎn))與一個(gè)或多個(gè)沿襲標(biāo)簽和該沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián),該子集包括所述一個(gè)或多個(gè)沿襲標(biāo)簽的可能標(biāo)簽值的至少一個(gè)值并且少于所述一個(gè)或多個(gè)沿襲標(biāo)簽的所有可能的標(biāo)簽值。
參考圖2a,計(jì)算機(jī)程序27的示例性端到端數(shù)據(jù)沿襲圖100包括多個(gè)數(shù)據(jù)節(jié)點(diǎn)102、多個(gè)數(shù)據(jù)變換節(jié)點(diǎn)104和多個(gè)容器節(jié)點(diǎn)106,它們通過(guò)有向鏈路108互連。
特別地,圖100包括第一數(shù)據(jù)變換節(jié)點(diǎn)110、第二數(shù)據(jù)變換節(jié)點(diǎn)112、第三數(shù)據(jù)變換節(jié)點(diǎn)114、第四數(shù)據(jù)變換節(jié)點(diǎn)116、第五數(shù)據(jù)變換節(jié)點(diǎn)118、第六數(shù)據(jù)變換節(jié)點(diǎn)120、第七數(shù)據(jù)變換節(jié)點(diǎn)122、第八數(shù)據(jù)變換節(jié)點(diǎn)124、第九數(shù)據(jù)變換節(jié)點(diǎn)126、第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128、第十一數(shù)據(jù)變換節(jié)點(diǎn)130、第十二數(shù)據(jù)變換節(jié)點(diǎn)132和第十三數(shù)據(jù)變換節(jié)點(diǎn)134。圖100包括第一數(shù)據(jù)節(jié)點(diǎn)136和第二數(shù)據(jù)節(jié)點(diǎn)138。圖100包括第一容器節(jié)點(diǎn)140、第二容器節(jié)點(diǎn)142、第三容器節(jié)點(diǎn)144和第四容器節(jié)點(diǎn)146。
第一數(shù)據(jù)變換節(jié)點(diǎn)110與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián)。在該示例中,“區(qū)域”沿襲標(biāo)簽具有三個(gè)可能的標(biāo)簽值:“us、ca、mex”。第一變換節(jié)點(diǎn)110與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第三數(shù)據(jù)變換節(jié)點(diǎn)114與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“mex”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第四數(shù)據(jù)變換節(jié)點(diǎn)116與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián)標(biāo)簽,并且與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第五數(shù)據(jù)變換節(jié)點(diǎn)118與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第六數(shù)據(jù)變換節(jié)點(diǎn)120與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。
第七數(shù)據(jù)變換節(jié)點(diǎn)122與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第八數(shù)據(jù)變換節(jié)點(diǎn)124與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“mex”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第九數(shù)據(jù)變換節(jié)點(diǎn)126與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第十三數(shù)據(jù)變換節(jié)點(diǎn)134與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。
第一數(shù)據(jù)節(jié)點(diǎn)136與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“us,mex”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第二數(shù)據(jù)節(jié)點(diǎn)138與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。
1過(guò)濾后的數(shù)據(jù)沿襲生成
在一些示例中,圖2a的端到端數(shù)據(jù)沿襲圖100由數(shù)據(jù)沿襲模塊25處理,以產(chǎn)生過(guò)濾后的數(shù)據(jù)沿襲圖。參考圖2b,過(guò)濾后的數(shù)據(jù)沿襲圖201的一個(gè)示例是根據(jù)“區(qū)域”沿襲標(biāo)簽和“us”沿襲標(biāo)簽值而進(jìn)行過(guò)濾的端到端數(shù)據(jù)沿襲圖100的一個(gè)版本。從圖中可以看出,與圖2a的端到端數(shù)據(jù)沿襲圖100相比,過(guò)濾后的數(shù)據(jù)沿襲圖201大大簡(jiǎn)化,因?yàn)閺臄?shù)據(jù)沿襲中排除了與“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)的并且具有僅包括“ca”或僅包括“mex”的沿襲標(biāo)簽值的多個(gè)節(jié)點(diǎn)。
如下文參考圖3至圖12所詳細(xì)描述的那樣,為了實(shí)現(xiàn)諸如圖12的第一過(guò)濾后數(shù)據(jù)沿襲圖200之類(lèi)的過(guò)濾后數(shù)據(jù)沿襲圖,用戶選擇節(jié)點(diǎn)并命令數(shù)據(jù)沿襲模塊25確定該節(jié)點(diǎn)的過(guò)濾后數(shù)據(jù)沿襲。數(shù)據(jù)沿襲模塊25首先確定所選節(jié)點(diǎn)與一個(gè)或多個(gè)標(biāo)簽標(biāo)識(shí)符之間的關(guān)聯(lián)。對(duì)于與所選節(jié)點(diǎn)相關(guān)聯(lián)的每個(gè)標(biāo)簽標(biāo)識(shí)符,數(shù)據(jù)沿襲模塊25確定標(biāo)簽標(biāo)識(shí)符的可能標(biāo)簽值中的哪些標(biāo)簽值與所選節(jié)點(diǎn)相關(guān)聯(lián)。通常,用戶可以選擇任意數(shù)量的要與所選節(jié)點(diǎn)相關(guān)聯(lián)的標(biāo)簽值。所選標(biāo)簽值可以表示可能的標(biāo)簽值的子集,例如單個(gè)標(biāo)簽值(例如,如圖2b示例所示的“us”)或多個(gè)標(biāo)簽值(例如,如圖12示例所示的“us”和“mex”)。通常,選擇少于與標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)的所有可能標(biāo)簽值的一些標(biāo)簽值。
然后,數(shù)據(jù)沿襲模塊25遍歷從所選節(jié)點(diǎn)開(kāi)始的一個(gè)或多個(gè)沿襲路徑,以確定所選節(jié)點(diǎn)的過(guò)濾后數(shù)據(jù)沿襲。通常,每個(gè)沿襲路徑包括由有向鏈路連接的一個(gè)或多個(gè)節(jié)點(diǎn)。當(dāng)數(shù)據(jù)沿襲模塊25遍歷一個(gè)或多個(gè)節(jié)點(diǎn)時(shí),基于與該一個(gè)或多個(gè)所遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任意標(biāo)簽標(biāo)識(shí)符或標(biāo)簽值來(lái)決定是否將節(jié)點(diǎn)添加至過(guò)濾后的數(shù)據(jù)沿襲或者從過(guò)濾后的數(shù)據(jù)沿襲中排除節(jié)點(diǎn)。
參考圖3,在一些示例中,當(dāng)數(shù)據(jù)沿襲模塊25遍歷沿襲路徑時(shí),過(guò)濾算法300用于確定沿著沿襲路徑的節(jié)點(diǎn)是否應(yīng)被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲圖中,或者是否應(yīng)該被標(biāo)記為從過(guò)濾后的數(shù)據(jù)沿襲圖排除。
特別地,當(dāng)數(shù)據(jù)沿襲模塊25到達(dá)沿襲路徑上的被訪問(wèn)節(jié)點(diǎn)350時(shí),向過(guò)濾算法300提供被訪問(wèn)節(jié)點(diǎn)350和所選節(jié)點(diǎn)352。
在過(guò)濾算法300的第一步驟354中,執(zhí)行測(cè)試,以確定與被訪問(wèn)節(jié)點(diǎn)350相關(guān)聯(lián)的任意沿襲標(biāo)簽標(biāo)識(shí)符是否與所選節(jié)點(diǎn)352相關(guān)聯(lián)的沿襲標(biāo)簽標(biāo)識(shí)符匹配。如果沒(méi)有一個(gè)沿襲標(biāo)簽標(biāo)識(shí)符匹配,則算法進(jìn)行到第二步驟356,在該步驟中,被訪問(wèn)節(jié)點(diǎn)350被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲圖中。如果與被訪問(wèn)節(jié)點(diǎn)350和所選節(jié)點(diǎn)352兩者相關(guān)聯(lián)的一個(gè)或多個(gè)沿襲標(biāo)簽標(biāo)識(shí)符匹配,則算法進(jìn)行到第三步驟358。
在第三步驟358中,對(duì)于每個(gè)識(shí)別出來(lái)的匹配沿襲標(biāo)簽標(biāo)識(shí)符,執(zhí)行測(cè)試,以確定與被訪問(wèn)節(jié)點(diǎn)350相關(guān)聯(lián)的針對(duì)該沿襲標(biāo)簽標(biāo)識(shí)符的沿襲標(biāo)簽值中的一個(gè)或多個(gè)是否匹配與所選節(jié)點(diǎn)352相關(guān)聯(lián)的針對(duì)該沿襲標(biāo)簽標(biāo)識(shí)符的沿襲標(biāo)簽值中的一個(gè)或多個(gè)。如果與被訪問(wèn)節(jié)點(diǎn)350相關(guān)聯(lián)的針對(duì)該沿襲標(biāo)簽標(biāo)識(shí)符的沿襲標(biāo)簽值中的一個(gè)或多個(gè)匹配與所選節(jié)點(diǎn)352相關(guān)聯(lián)的針對(duì)該沿襲標(biāo)簽標(biāo)識(shí)符的沿襲標(biāo)簽值中的一個(gè)或多個(gè),則算法進(jìn)行到第二步驟356,在該步驟中,被訪問(wèn)節(jié)點(diǎn)350被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲圖中。
或者,如果與被訪問(wèn)節(jié)點(diǎn)350相關(guān)聯(lián)的針對(duì)該沿襲標(biāo)簽標(biāo)識(shí)符的沿襲標(biāo)簽值中沒(méi)有一個(gè)能夠匹配與所選節(jié)點(diǎn)352相關(guān)聯(lián)的針對(duì)該沿襲標(biāo)簽標(biāo)識(shí)符的沿襲標(biāo)簽值中的任一個(gè),則算法進(jìn)行到第四步驟360,在該步驟中,被訪問(wèn)節(jié)點(diǎn)350被標(biāo)記為排除在過(guò)濾后的數(shù)據(jù)沿襲圖之外。
在一些示例中,當(dāng)數(shù)據(jù)沿襲模塊25遍歷了端到端數(shù)據(jù)沿襲中的沿襲路徑時(shí),執(zhí)行過(guò)濾算法400。在其他示例中,一旦節(jié)點(diǎn)被選擇用于數(shù)據(jù)沿襲計(jì)算,并且在遍歷任意沿襲路徑之前,將過(guò)濾算法應(yīng)用于端到端數(shù)據(jù)沿襲中除所選節(jié)點(diǎn)之外的所有節(jié)點(diǎn)。過(guò)濾算法300標(biāo)記為從過(guò)濾后的數(shù)據(jù)沿襲圖中排除的任何節(jié)點(diǎn)被添加到“黑名單”。然后,數(shù)據(jù)沿襲模塊25遍歷從所選節(jié)點(diǎn)開(kāi)始的沿襲路徑。在由數(shù)據(jù)沿襲模塊25所訪問(wèn)的每個(gè)節(jié)點(diǎn)處,數(shù)據(jù)沿襲模塊25搜索黑名單以確定被訪問(wèn)節(jié)點(diǎn)是否存在于黑名單中。如果被訪問(wèn)節(jié)點(diǎn)存在于黑名單中,則終止沿襲路徑的遍歷,并且該被訪問(wèn)節(jié)點(diǎn)不包括在過(guò)濾后的數(shù)據(jù)沿襲中。
參考圖4,用戶已經(jīng)選擇了圖2a的端到端數(shù)據(jù)沿襲圖100中的第一數(shù)據(jù)節(jié)點(diǎn)136以用于生成過(guò)濾后的數(shù)據(jù)沿襲。如上所述,第一數(shù)據(jù)節(jié)點(diǎn)136與“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),并且與包括“us、mex”且不包括沿襲標(biāo)簽值“ca”的“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符的可能標(biāo)簽值的子集相關(guān)聯(lián)。
由于“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符的“ca”沿襲標(biāo)簽值不包括在與第一數(shù)據(jù)節(jié)點(diǎn)136相關(guān)聯(lián)的沿襲標(biāo)簽值的子集中,所以數(shù)據(jù)沿襲模塊25被配置為將既與“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)并且還具有僅包括“ca”的標(biāo)簽值子集的節(jié)點(diǎn)從數(shù)據(jù)沿襲中排除。
在一些示例中,在接收到第一數(shù)據(jù)節(jié)點(diǎn)136的選擇之后,數(shù)據(jù)沿襲模塊25處理端到端數(shù)據(jù)沿襲圖100以生成黑名單。如上所述,檢查除第一數(shù)據(jù)節(jié)點(diǎn)136之外的所有節(jié)點(diǎn)來(lái)識(shí)別與“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)且具有僅包括“ca”的標(biāo)簽值子集的節(jié)點(diǎn),從而生成黑名單。將過(guò)濾算法300應(yīng)用到圖4的端到端數(shù)據(jù)沿襲而導(dǎo)致將第五數(shù)據(jù)變換節(jié)點(diǎn)118、第七數(shù)據(jù)變換節(jié)點(diǎn)122、第十三數(shù)據(jù)變換節(jié)點(diǎn)134和第二數(shù)據(jù)節(jié)點(diǎn)138添加到黑名單。在圖4中,用對(duì)角線圖案填充被添加到黑名單的節(jié)點(diǎn)。
一旦生成黑名單,則遍歷從第一數(shù)據(jù)節(jié)點(diǎn)136開(kāi)始的每條沿襲路徑(即,由有向鏈路108連接的各節(jié)點(diǎn)),直到訪問(wèn)到位于端到端沿襲圖100的邊緣的節(jié)點(diǎn),或者訪問(wèn)到黑名單上的節(jié)點(diǎn)為止。在遇到位于端到端數(shù)據(jù)沿襲圖100邊緣的節(jié)點(diǎn)的情況下,在該節(jié)點(diǎn)之前的整條沿襲路徑(包括該節(jié)點(diǎn))被包括在過(guò)濾后的數(shù)據(jù)沿襲中。在遇到黑名單上的節(jié)點(diǎn)的情況下,終止沿襲路徑的遍歷,并且在黑名單上的該節(jié)點(diǎn)之前的沿襲路徑(不包括該節(jié)點(diǎn))被包括在過(guò)濾后的數(shù)據(jù)沿襲中。
參考圖5,數(shù)據(jù)沿襲模塊25遍歷第一數(shù)據(jù)節(jié)點(diǎn)136和第九數(shù)據(jù)變換節(jié)點(diǎn)126之間的第一沿襲路徑。由于用戶選擇了第一數(shù)據(jù)節(jié)點(diǎn)136,所以它被默認(rèn)標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。接下來(lái)遍歷第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108。然后搜索黑名單以確定黑名單是否包括第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128。由于第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。接下來(lái)遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第九數(shù)據(jù)變換節(jié)點(diǎn)126之間的有向鏈路108。然后搜索黑名單以確定黑名單是否包括第九數(shù)據(jù)變換節(jié)點(diǎn)126。由于第九數(shù)據(jù)變換節(jié)點(diǎn)126不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。由于第九數(shù)據(jù)變換節(jié)點(diǎn)126位于端到端沿襲圖100的邊緣,所以第一沿襲路徑的遍歷完成。
參考圖6,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間延伸的第二沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第四數(shù)據(jù)變換節(jié)點(diǎn)116之間的有向鏈路108開(kāi)始其遍歷。
當(dāng)沿襲模塊25到達(dá)第四數(shù)據(jù)變換節(jié)點(diǎn)116時(shí),搜索黑名單以確定黑名單是否包括第四數(shù)據(jù)變換節(jié)點(diǎn)116。由于第四數(shù)據(jù)變換節(jié)點(diǎn)116不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。注意,第四數(shù)據(jù)變換節(jié)點(diǎn)116包括在嵌套于第一容器節(jié)點(diǎn)140中的第二容器節(jié)點(diǎn)142中。第一容器節(jié)點(diǎn)140和第二容器節(jié)點(diǎn)142均不與任何沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),因此它們倆也不包括在黑名單中。由于第二沿襲路徑遍歷了第一容器節(jié)點(diǎn)140和第二容器節(jié)點(diǎn)142的邊界,并且兩個(gè)容器節(jié)點(diǎn)都不在黑名單中,所以第一容器節(jié)點(diǎn)140和第二容器節(jié)點(diǎn)142都被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。注意,在一些示例中,如果容器節(jié)點(diǎn)標(biāo)記有沿襲標(biāo)簽標(biāo)識(shí)符和值,則其所有后代節(jié)點(diǎn)(即,子節(jié)點(diǎn)及它們的孩子)都標(biāo)記有相同的沿襲標(biāo)簽標(biāo)識(shí)符和值。因此,黑名單可以基于最低級(jí)別的節(jié)點(diǎn)來(lái)構(gòu)建。
接下來(lái),數(shù)據(jù)沿襲模塊25遍歷第四數(shù)據(jù)變換節(jié)點(diǎn)116和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間的有向鏈路108。當(dāng)沿襲模塊25到達(dá)第一數(shù)據(jù)變換節(jié)點(diǎn)110時(shí),搜索黑名單以確定黑名單是否包括第一數(shù)據(jù)變換節(jié)點(diǎn)110。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110處于端到端沿襲圖100的邊緣,所以第二沿襲路徑的遍歷完成。
參考圖7,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間延伸的第三沿襲路徑。同樣,由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第六數(shù)據(jù)變換節(jié)點(diǎn)120之間的有向鏈路108開(kāi)始其遍歷。
當(dāng)沿襲模塊25到達(dá)第六數(shù)據(jù)變換節(jié)點(diǎn)120時(shí),搜索黑名單以確定黑名單是否包括第六數(shù)據(jù)變換節(jié)點(diǎn)120。由于第六數(shù)據(jù)變換節(jié)點(diǎn)120不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。注意,第六數(shù)據(jù)變換節(jié)點(diǎn)120包括在嵌套于第一容器節(jié)點(diǎn)140中的第三容器節(jié)點(diǎn)144中。第一容器節(jié)點(diǎn)140和第三容器節(jié)點(diǎn)144都不與任何沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),因此它們均不包括在黑名單中。由于第二沿襲路徑遍歷了第一容器節(jié)點(diǎn)140和第三容器節(jié)點(diǎn)144的邊界,并且兩個(gè)容器節(jié)點(diǎn)均不在黑名單中,所以第一容器節(jié)點(diǎn)140和第三容器節(jié)點(diǎn)144均標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。
接下來(lái),數(shù)據(jù)沿襲模塊25遍歷第六數(shù)據(jù)變換節(jié)點(diǎn)120和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間的有向鏈路108。當(dāng)沿襲模塊25到達(dá)第一數(shù)據(jù)變換節(jié)點(diǎn)110時(shí),搜索黑名單以確定黑名單是否包括第一數(shù)據(jù)變換節(jié)點(diǎn)110。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110位于沿襲圖100的邊緣,所以第三沿襲路徑的遍歷完成。
參考圖8,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第二數(shù)據(jù)變換節(jié)點(diǎn)112之間延伸的第四沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第五數(shù)據(jù)變換節(jié)點(diǎn)118之間的有向鏈路108來(lái)開(kāi)始其遍歷。
當(dāng)沿襲模塊25到達(dá)第五數(shù)據(jù)變換節(jié)點(diǎn)118時(shí),搜索黑名單以確定黑名單是否包括第五數(shù)據(jù)變換節(jié)點(diǎn)118。由于第五數(shù)據(jù)變換節(jié)點(diǎn)118存在于黑名單中,所以從過(guò)濾后的數(shù)據(jù)沿襲中將它排除。由于第五數(shù)據(jù)變換節(jié)點(diǎn)118被確定為在黑名單中,所以終止第四沿襲路徑的遍歷。
參考圖9,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第三數(shù)據(jù)變換節(jié)點(diǎn)114之間延伸的第五沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第八數(shù)據(jù)變換節(jié)點(diǎn)124之間的有向鏈路108開(kāi)始其遍歷。
當(dāng)沿襲模塊25到達(dá)第八數(shù)據(jù)變換節(jié)點(diǎn)124時(shí),搜索黑名單以確定黑名單是否包括第八數(shù)據(jù)變換節(jié)點(diǎn)124。由于第八數(shù)據(jù)變換節(jié)點(diǎn)124不在黑名單中,所以它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。注意,第八數(shù)據(jù)變換節(jié)點(diǎn)124包括在嵌套于第一容器節(jié)點(diǎn)140中的第四容器節(jié)點(diǎn)146中。第一容器節(jié)點(diǎn)140和第四容器節(jié)點(diǎn)146均不與任何沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián),因此,它們均不包括在黑名單中。由于第五沿襲路徑遍歷了第一容器節(jié)點(diǎn)140和第四容器節(jié)點(diǎn)146的邊界,并且兩個(gè)容器節(jié)點(diǎn)都不在黑名單中,所以第一容器節(jié)點(diǎn)140和第四容器節(jié)點(diǎn)146均標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。
接下來(lái),數(shù)據(jù)沿襲模塊25遍歷第八數(shù)據(jù)變換節(jié)點(diǎn)124和第三數(shù)據(jù)變換節(jié)點(diǎn)114之間的有向鏈路。當(dāng)沿襲模塊25到達(dá)第三數(shù)據(jù)變換節(jié)點(diǎn)114時(shí),搜索黑名單以確定黑名單是否包括第三數(shù)據(jù)變換節(jié)點(diǎn)114。由于第三數(shù)據(jù)變換節(jié)點(diǎn)114不在黑名單中,因此它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。由于第三數(shù)據(jù)變換節(jié)點(diǎn)114位于沿襲圖100的邊緣,所以第五沿襲路徑的遍歷完成。
參考圖10,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第二數(shù)據(jù)變換節(jié)點(diǎn)112之間延伸的第六沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第十一數(shù)據(jù)變換節(jié)點(diǎn)130之間的有向鏈路108開(kāi)始其遍歷。
當(dāng)沿襲模塊25到達(dá)第十一數(shù)據(jù)變換節(jié)點(diǎn)130時(shí),搜索黑名單以確定黑名單是否包括第十一數(shù)據(jù)變換節(jié)點(diǎn)130。由于第十一數(shù)據(jù)變換節(jié)點(diǎn)130不在黑名單中,所以它被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。
接下來(lái),數(shù)據(jù)沿襲模塊25遍歷第十一數(shù)據(jù)變換節(jié)點(diǎn)130和第七數(shù)據(jù)變換節(jié)點(diǎn)122之間的有向鏈路。當(dāng)沿襲模塊25到達(dá)第七數(shù)據(jù)變換節(jié)點(diǎn)122時(shí),搜索黑名單以確定黑名單是否包括第七數(shù)據(jù)變換節(jié)點(diǎn)122。由于第七數(shù)據(jù)變換節(jié)點(diǎn)122存在于黑名單中,所以從過(guò)濾后的數(shù)據(jù)沿襲中將它排除。由于第七數(shù)據(jù)變換節(jié)點(diǎn)122被確定為存在于黑名單中,所以終止第六沿襲路徑的遍歷。
參考圖11,由于第十二數(shù)據(jù)變換組件132、第十三數(shù)據(jù)變換組件134和第二數(shù)據(jù)節(jié)點(diǎn)138不在從第一數(shù)據(jù)節(jié)點(diǎn)136開(kāi)始的沿襲路徑上,所以默認(rèn)將它們從過(guò)濾后的數(shù)據(jù)沿襲中排除。
注意,在任意有向鏈路的遍歷過(guò)程中,從來(lái)沒(méi)有到達(dá)過(guò)第二數(shù)據(jù)變換節(jié)點(diǎn)112,因此從過(guò)濾后的數(shù)據(jù)沿襲中將它排除。
參考圖12,一旦遍歷完從第一數(shù)據(jù)節(jié)點(diǎn)136開(kāi)始的所有沿襲路徑,則從端到端數(shù)據(jù)沿襲圖100中移除未被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中的任何節(jié)點(diǎn),從而得到過(guò)濾后的數(shù)據(jù)沿襲圖200。注意,過(guò)濾后的數(shù)據(jù)沿襲圖200不包括與“區(qū)域”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)且具有僅包括“ca”的沿襲標(biāo)簽值的節(jié)點(diǎn)。
2標(biāo)準(zhǔn)化/去標(biāo)準(zhǔn)化
參考圖13,計(jì)算機(jī)程序27的一個(gè)簡(jiǎn)單示例性的端到端數(shù)據(jù)沿襲圖1300包括輸入表單1360、標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362、數(shù)據(jù)節(jié)點(diǎn)1364、去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366和報(bào)告表單1368。輸入表單1360和報(bào)告表單1368是多個(gè)數(shù)據(jù)節(jié)點(diǎn),這些數(shù)據(jù)節(jié)點(diǎn)中的每一個(gè)數(shù)據(jù)節(jié)點(diǎn)均包括這些數(shù)據(jù)節(jié)點(diǎn)中的與嵌套在較高級(jí)數(shù)據(jù)元素內(nèi)的不同數(shù)據(jù)元素對(duì)應(yīng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)。在此示例中,嵌套的數(shù)據(jù)元素表示每個(gè)表單記錄中的不同字段。
標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362執(zhí)行標(biāo)準(zhǔn)化操作,該標(biāo)準(zhǔn)化操作對(duì)存儲(chǔ)在由數(shù)據(jù)節(jié)點(diǎn)1354表示的數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)元素進(jìn)行標(biāo)準(zhǔn)化,去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366執(zhí)行去標(biāo)準(zhǔn)化操作,該去標(biāo)準(zhǔn)化操作對(duì)從由數(shù)據(jù)節(jié)點(diǎn)1354表示的數(shù)據(jù)存儲(chǔ)器中取回的數(shù)據(jù)元素進(jìn)行去標(biāo)準(zhǔn)化。雖然標(biāo)準(zhǔn)化操作的“標(biāo)準(zhǔn)化”與去標(biāo)準(zhǔn)化操作的“去標(biāo)準(zhǔn)化”的具體實(shí)現(xiàn)方式可能不同,但通常它們具有以下特征。對(duì)數(shù)據(jù)元素進(jìn)行標(biāo)準(zhǔn)化包括將對(duì)應(yīng)于多個(gè)數(shù)據(jù)元素的記錄轉(zhuǎn)換成具有針對(duì)至少一個(gè)字段的通用格式的多個(gè)記錄。對(duì)數(shù)據(jù)元素進(jìn)行去標(biāo)準(zhǔn)化包括將具有針對(duì)至少一個(gè)字段的通用格式的多個(gè)記錄轉(zhuǎn)換成對(duì)應(yīng)于多個(gè)數(shù)據(jù)元素的單個(gè)記錄。以下是在數(shù)據(jù)沿襲圖1300的上下文中的這種操作的示例。
輸入表單1360包括包含移動(dòng)電話號(hào)碼的第一字段1370、包含工作電話號(hào)碼的第二字段1372和包含家庭電話號(hào)碼的第三字段1374。在操作中,標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362接收輸入表單1360,并將輸入表單1360中所包括的電話號(hào)碼轉(zhuǎn)換成適于存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)1364中的標(biāo)準(zhǔn)化形式。在一些示例中,標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362將輸入表單1360中所包括的電話號(hào)碼轉(zhuǎn)換成[電話號(hào)碼類(lèi)型,電話號(hào)碼]形式,其中電話號(hào)碼是具有三個(gè)值(移動(dòng)、工作和家庭)的枚舉數(shù)據(jù)類(lèi)型。在本文所述方案的上下文中,將具有數(shù)據(jù)元素類(lèi)型和數(shù)據(jù)元素值的數(shù)據(jù)元素轉(zhuǎn)換成包括數(shù)據(jù)元素類(lèi)型字段和數(shù)據(jù)元素值字段的數(shù)據(jù)結(jié)構(gòu)的上述過(guò)程被稱為對(duì)數(shù)據(jù)元素進(jìn)行“標(biāo)準(zhǔn)化”。標(biāo)準(zhǔn)化后的電話號(hào)碼存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)1364中以供后續(xù)使用。
去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366從數(shù)據(jù)節(jié)點(diǎn)1364中讀取標(biāo)準(zhǔn)化后的電話號(hào)碼,并對(duì)標(biāo)準(zhǔn)化后的電話號(hào)碼進(jìn)行去標(biāo)準(zhǔn)化以使其還原成原始形式。在本文所述方案的上下文中,將標(biāo)準(zhǔn)化數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換回具有數(shù)據(jù)元素類(lèi)型和數(shù)據(jù)元素值的數(shù)據(jù)元素的上述過(guò)程被稱為對(duì)數(shù)據(jù)元素進(jìn)行“去標(biāo)準(zhǔn)化”。去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366接下來(lái)將移動(dòng)電話號(hào)碼寫(xiě)入用于存儲(chǔ)移動(dòng)電話號(hào)碼的報(bào)告表單1368的第四字段1376中,用于存儲(chǔ)工作電話號(hào)碼的報(bào)告表單1368的第五字段1378中和用于存儲(chǔ)家庭電話號(hào)碼的報(bào)告表單1368的第六字段1380中。
因?yàn)閺臄?shù)據(jù)項(xiàng)成為標(biāo)準(zhǔn)化枚舉數(shù)據(jù)類(lèi)型的轉(zhuǎn)換以及從標(biāo)準(zhǔn)化枚舉數(shù)據(jù)類(lèi)型成為數(shù)據(jù)項(xiàng)的轉(zhuǎn)換,所以對(duì)于常規(guī)數(shù)據(jù)沿襲計(jì)算系統(tǒng)來(lái)說(shuō),上述標(biāo)準(zhǔn)化/去標(biāo)準(zhǔn)化處理可能是困難的。例如,如果用戶請(qǐng)求報(bào)告表單1368第四字段1376中的移動(dòng)電話號(hào)碼的數(shù)據(jù)沿襲圖,則依傳統(tǒng)生成的數(shù)據(jù)沿襲圖將包括報(bào)告表單1368第四字段1376中的移動(dòng)電話號(hào)碼、去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366、數(shù)據(jù)節(jié)點(diǎn)1364、標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362和輸入表單1368的第一字段1370。
依傳統(tǒng)生成的數(shù)據(jù)沿襲圖還包括輸入表單1360第二字段1372中的工作電話號(hào)碼以及輸入表單1360第三字段1374中的家庭電話號(hào)碼。這樣的傳統(tǒng)數(shù)據(jù)沿襲圖是不正確的,因?yàn)榈诙侄?372中的工作電話號(hào)碼和第三字段1374中的家庭電話號(hào)碼實(shí)際上不是報(bào)告表單1368第四字段1376中的移動(dòng)電話號(hào)碼的數(shù)據(jù)沿襲的一部分。
參考圖14,為了防止生成不正確的數(shù)據(jù)沿襲圖,端對(duì)端數(shù)據(jù)沿襲圖1300中的各個(gè)字段(其本質(zhì)上是數(shù)據(jù)節(jié)點(diǎn))標(biāo)注沿襲標(biāo)簽,該沿襲標(biāo)簽具有沿襲標(biāo)簽標(biāo)識(shí)符“電話號(hào)碼”和可能的沿襲標(biāo)簽值:“移動(dòng)”、“工作”和“家庭”。具體地,第一字段1370標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符和僅包括“移動(dòng)”的可能沿襲標(biāo)簽值的子集。第二字段1372標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符和僅包括“工作”的可能沿襲標(biāo)簽值的子集。第三字段1374標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符和僅包括“家庭”的可能沿襲標(biāo)簽值的子集。
第四字段1376標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符和僅包括“移動(dòng)”的可能沿襲標(biāo)簽值的子集。第五字段1378標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符和僅包括“工作”的可能沿襲標(biāo)簽值的子集。第六個(gè)字段1380簽注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符和僅包括“家庭”的可能的沿襲標(biāo)簽值的子集。
參考圖15,當(dāng)用戶選擇包括移動(dòng)電話號(hào)碼的第四字段1376以生成過(guò)濾后的數(shù)據(jù)沿襲圖時(shí),數(shù)據(jù)沿襲模塊25首先確定第四字段1376與一個(gè)或多個(gè)沿襲標(biāo)簽標(biāo)識(shí)符之間的關(guān)聯(lián)性。在這種情況下,第四字段1376與“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)。接下來(lái),數(shù)據(jù)沿襲模塊25確定“電話號(hào)碼”標(biāo)簽標(biāo)識(shí)符的可能標(biāo)簽值中的哪個(gè)標(biāo)簽值與第四字段1376相關(guān)聯(lián)。在這種情況下,“移動(dòng)”標(biāo)簽值是與第四字段1376相關(guān)聯(lián)的唯一標(biāo)簽值。
接下來(lái),數(shù)據(jù)沿襲模塊25處理端到端數(shù)據(jù)沿襲圖1300以生成黑名單。如上所述,檢查除所選第四字段1376之外的端到端數(shù)據(jù)沿襲圖1300中的所有節(jié)點(diǎn)和字段來(lái)生成黑名單,以便識(shí)別與“電話號(hào)碼”沿襲標(biāo)簽標(biāo)識(shí)符相關(guān)聯(lián)且具有僅包括“工作”和/或“家庭”的標(biāo)簽值子集的節(jié)點(diǎn)和字段。將圖3的過(guò)濾算法300應(yīng)用到端到端數(shù)據(jù)沿襲圖1300導(dǎo)致第二字段1372、第三字段1374、第五字段1378和第六字段1380被添加到黑名單。在圖15中,用對(duì)角線圖案填充被添加到黑名單的數(shù)據(jù)沿襲字段。
參考圖16,接下來(lái)數(shù)據(jù)沿襲模塊25遍歷從第四字段1376開(kāi)始的所有沿襲路徑,以確定哪些節(jié)點(diǎn)和字段被包括在過(guò)濾后的數(shù)據(jù)沿襲中以及從過(guò)濾后的數(shù)據(jù)沿襲中排除哪些節(jié)點(diǎn)和字段。從圖中可以看出,數(shù)據(jù)沿襲模塊25將僅用“工作”和“家庭”沿襲標(biāo)簽值標(biāo)注的字段標(biāo)記為從過(guò)濾后的數(shù)據(jù)沿襲中排除,而將僅用“移動(dòng)”沿襲標(biāo)簽值標(biāo)注的字段標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中。
參考圖17,一旦遍歷了從第四字段1376開(kāi)始的所有沿襲路徑,則從端到端數(shù)據(jù)沿襲圖1300中移除未被標(biāo)記為包括在過(guò)濾后的數(shù)據(jù)沿襲中的任何節(jié)點(diǎn)和字段,這就形成了過(guò)濾后的數(shù)據(jù)沿襲圖1700。注意,從過(guò)濾后的數(shù)據(jù)沿襲圖1700中排除了通過(guò)常規(guī)的沿襲生成技術(shù)而可能錯(cuò)誤地包括在過(guò)濾后的數(shù)據(jù)沿襲圖中的第二字段1327和第三字段1374。
3替代方案
應(yīng)當(dāng)注意,雖然以特定順序遍歷了上述基于沿襲標(biāo)簽的過(guò)濾示例中的數(shù)據(jù)沿襲圖的節(jié)點(diǎn),但是可以使用許多不同的遍歷順序。例如,可以使用廣度優(yōu)先遍歷順序(breadthfirstorder)或深度優(yōu)先遍歷順序(depthfirstorder)。
在上述基于沿襲標(biāo)簽的過(guò)濾示例中,選擇初始節(jié)點(diǎn),并且使用與初始節(jié)點(diǎn)相關(guān)聯(lián)的沿襲標(biāo)簽和沿襲標(biāo)簽值來(lái)過(guò)濾沿襲圖。然而,在一些示例中,用戶選擇初始節(jié)點(diǎn),并且數(shù)據(jù)沿襲模塊遍歷數(shù)據(jù)沿襲圖以確定初始節(jié)點(diǎn)的完整數(shù)據(jù)沿襲,并且發(fā)現(xiàn)可用于過(guò)濾該完整數(shù)據(jù)沿襲的任何沿襲標(biāo)簽和沿襲標(biāo)簽值。然后將初始節(jié)點(diǎn)的完整數(shù)據(jù)沿襲連同所發(fā)現(xiàn)的沿襲標(biāo)簽和沿襲標(biāo)簽值一起呈現(xiàn)給用戶。接下來(lái),用戶可以通過(guò)選擇一個(gè)或多個(gè)所發(fā)現(xiàn)的沿襲標(biāo)簽和沿襲標(biāo)簽值作為過(guò)濾參數(shù)來(lái)過(guò)濾該完整數(shù)據(jù)沿襲。在其他示例中,在數(shù)據(jù)沿襲模塊遍歷數(shù)據(jù)沿襲圖時(shí),維護(hù)所遇到的沿襲標(biāo)簽和沿襲標(biāo)簽值的列表。然后,可以在遍歷圖的第二上游部分時(shí)使用在遍歷圖的第一部分時(shí)被添加至列表中的一些或所有沿襲標(biāo)簽和沿襲標(biāo)簽值,以過(guò)濾圖的第二部分。
雖然上述方法通常與數(shù)據(jù)沿襲圖的生成相關(guān),但它們也可用于生成影響分析圖。
在一些示例中,與處于沿襲層級(jí)中的不同層(例如,容器節(jié)點(diǎn)和容器節(jié)點(diǎn)內(nèi)的數(shù)據(jù)變換節(jié)點(diǎn))的兩個(gè)或更多個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的沿襲標(biāo)簽可能會(huì)發(fā)生沖突。在一些示例中,選擇處于沿襲層級(jí)中最底層的節(jié)點(diǎn)作為沿襲標(biāo)簽。
在上述示例中,數(shù)據(jù)變換節(jié)點(diǎn)被示出為通過(guò)以箭頭表示的流而彼此直接連接。然而,應(yīng)當(dāng)注意,在一些示例中,將第一組件的輸出連接到第二組件的輸入的流可以隱含地包括數(shù)據(jù)存儲(chǔ)元件,該數(shù)據(jù)存儲(chǔ)元素被從第一組件出來(lái)的數(shù)據(jù)寫(xiě)入,并被第二個(gè)組件的輸入讀取。
4實(shí)施方式
上述數(shù)據(jù)沿襲生成方法可以例如使用執(zhí)行合適的軟件的計(jì)算系統(tǒng)來(lái)實(shí)現(xiàn)。例如,軟件可以包括在一個(gè)或多個(gè)編程或可編程計(jì)算系統(tǒng)(其可以是諸如分布式、客戶端/服務(wù)器或網(wǎng)格的各種架構(gòu))上執(zhí)行的一個(gè)或多個(gè)計(jì)算機(jī)程序中的過(guò)程,每個(gè)計(jì)算系統(tǒng)包括至少一個(gè)處理器、至少一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)(包括易失性和/或非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)用戶界面(用于使用至少一個(gè)輸入設(shè)備或端口接收輸入,并且用于使用至少一個(gè)輸出設(shè)備或端口提供輸出)。軟件可以包括例如提供與數(shù)據(jù)流圖的設(shè)計(jì)、配置和執(zhí)行相關(guān)的服務(wù)的較大程序的一個(gè)或多個(gè)模塊。程序的模塊(例如,數(shù)據(jù)流圖的元素)可以被實(shí)現(xiàn)為符合存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)或其它組織形式的數(shù)據(jù)。
軟件可以提供在有形、非暫時(shí)性介質(zhì)上,例如cd-rom或其他計(jì)算機(jī)可讀介質(zhì)(例如,可由通用或?qū)S糜?jì)算系統(tǒng)或設(shè)備讀取),或者通過(guò)網(wǎng)絡(luò)的通信介質(zhì)被遞送(例如,被編碼成傳播信號(hào))到其被執(zhí)行的計(jì)算系統(tǒng)的有形、非暫時(shí)性介質(zhì)??梢栽趯S糜?jì)算機(jī)上或使用諸如協(xié)處理器或現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)或特定的專用集成電路(asic)之類(lèi)的專用硬件來(lái)執(zhí)行一些或全部處理。處理可以以分布式方式實(shí)現(xiàn),其中由軟件指定的不同計(jì)算部分由不同的計(jì)算元件執(zhí)行。每個(gè)這樣的計(jì)算機(jī)程序優(yōu)選地存儲(chǔ)在或下載到可由通用或?qū)S每删幊逃?jì)算機(jī)訪問(wèn)的存儲(chǔ)設(shè)備的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(例如,固態(tài)存儲(chǔ)器或媒介,或磁媒介或光媒介)上,用于當(dāng)計(jì)算機(jī)讀取存儲(chǔ)設(shè)備介質(zhì)以執(zhí)行本文所述的處理時(shí),配置和操作計(jì)算機(jī)。本發(fā)明的系統(tǒng)還可以被認(rèn)為可實(shí)現(xiàn)為配置有計(jì)算機(jī)程序的有形的、非暫時(shí)性介質(zhì),其中如此配置的介質(zhì)使得計(jì)算機(jī)以特定和預(yù)定義的方式操作以執(zhí)行本文描述的一個(gè)或多個(gè)處理步驟。
已經(jīng)描述了本發(fā)明的多個(gè)實(shí)施例。然而,應(yīng)當(dāng)理解,前述描述旨在說(shuō)明而不是限制本發(fā)明的范圍,本發(fā)明的范圍由所附權(quán)利要求的范圍限定。因此,其他實(shí)施例也在所附權(quán)利要求的范圍內(nèi)。例如,在不脫離本發(fā)明的范圍的情況下可以進(jìn)行各種修改。另外,上述的一些步驟可以是與順序無(wú)關(guān)的,并且因此可以以與所描述的順序不同的順序來(lái)執(zhí)行。