TWI714184B - 多階層網路樣式比對方法 - Google Patents
多階層網路樣式比對方法 Download PDFInfo
- Publication number
- TWI714184B TWI714184B TW108126349A TW108126349A TWI714184B TW I714184 B TWI714184 B TW I714184B TW 108126349 A TW108126349 A TW 108126349A TW 108126349 A TW108126349 A TW 108126349A TW I714184 B TWI714184 B TW I714184B
- Authority
- TW
- Taiwan
- Prior art keywords
- level
- query
- node
- specific
- levels
- Prior art date
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明為一種多階層網路樣式比對方法,係包括:提供一欲查詢節點;提供欲查詢的入方階層數與出方階層數;依據該入方階層數與該出方階層數,建立每一個階層的篩選條件與查詢方向;利用該欲查詢節點、該入方階層數、該出方階層數及各階層之篩選條件與查詢方向,產生多階層特定樣式查詢語法,且該多階層特定樣式查詢語法中之特定節點、該特定節點之入方所有階層及該特定節點之出方所有階層分別對應該欲查詢節點、該欲查詢節點之入方所有階層及該欲查詢節點之出方所有階層;以及執行該多階層特定樣式查詢語法,以由多階層網路中搜索出符合該篩選條件與該查詢方向之特定樣式。
Description
本發明係關於多階層網路中查找特定樣式之技術,詳而言之,係關於一種多階層網路樣式比對方法。
由於圖形資料庫比對運算尚在起步階段,現有技術鮮少有對複雜網路進行多階層特定樣式查找的方法,當使用者想要從複雜的多階層網路(例如供應鏈交易網路、人際互動網路或人際關係網路等)查找符合預先定義好的特定樣式,理論上不太容易,做法會變得非常複雜。簡言之,傳統資料庫需用較多次的單層查詢,並以組合的方式才能找出簡單的特定樣式,例如兩階層以內、少數過濾條件、關係為單向的簡單特定樣式,若要再找較複雜一些的特定樣式,則需要撰寫更複雜的查詢程式與SQL語法,此將耗費大量查詢資源與執行時間,倘若預先定義的樣式較為複雜,例如超過兩階層、多種過濾條件、含單向與雙向的複雜特定樣式,則要從多階層網路中查找出符合預先定義的樣式,更是難以實現。
舉例而言,傳統資料庫查找供應鏈交易網路關係,僅針對特定營業人(節點)單向尋找下一階層交易關係或僅查找上一階層交易關
係,無法直接對特定節點查找上或下多階層交易關係,當然更難以探勘特定節點超過兩階層的特定樣式,因而若特定樣式包含雙向交互關係將更難以達成,因此若僅以傳統資料庫查詢,要查找特定節點的多階層特定樣式,常常都是事倍功半。
由上可知,若能找出一種有關多階層網路中特定樣式之查找技術,特別是能針對特定節點從多階層網路中查找多階層特定樣式,甚至能對非特定節點進行整個網路的多階層特定樣式探勘,此將成為本技術領域人員急欲追求解決方案之目標。
本發明之目的係查找多階層網路之特定樣式,所謂特定樣式即為超過兩層的子網路(subgraph),解決一般傳統資料庫難以從特定節點查找多階層特定樣式的缺點,特別是對於多階層特定樣式(pattern)不易探勘之問題。
為達到上述目的與其他目的,本發明係提出一種多階層網路樣式比對方法,係包括:提供一欲查詢節點;提供欲查詢的入方階層數與出方階層數;依據該入方階層數與該出方階層數,建立每一個階層的篩選條件與查詢方向;利用該欲查詢節點、該入方階層數、該出方階層數及各階層之篩選條件與查詢方向,產生包含指定節點、該指定節點之入方所有階層及該指定節點之出方所有階層的多階層指定樣式查詢語法,且該指定節點、該指定節點之入方所有階層及該指定節點之出方所有階層分別對應該欲查詢節點、該欲查詢節點之入方所有階層及該欲查詢節點之出方所
有階層;以及執行該多階層指定樣式查詢語法,以由多階層網路中搜索出符合該篩選條件與該查詢方向之指定樣式。
於一實施例中,產生該多階層指定樣式查詢語法包括設定查詢節點的實體為該欲查詢節點。
於另一實施例中,產生該多階層指定樣式查詢語法包括自該欲查詢節點之入方第一階層開始代入該篩選條件與該查詢方向以產生入方第一階層查詢語法,且以相同方式類推以產生入方各階層查詢語法,直到該多階層指定樣式查詢語法符合該入方階層數,以及自該欲查詢節點之出方第一階層開始代入該篩選條件與該查詢方向以產生出方第一階層查詢語法,且以相同方式類推以產生出方各階層查詢語法,直到該多階層指定樣式查詢語法符合該出方階層數。
於上述實施例中,產生該多階層指定樣式查詢語法包括先產生該入方各階層查詢語法而後產生該出方各階層查詢語法,或是先產生該出方各階層查詢語法而後產生該入方各階層查詢語法。
於上述實施例中,產生該多階層指定樣式查詢語法包括僅產生該入方各階層查詢語法或該出方各階層查詢語法之其中一者。
於再一實施例中,該欲查詢節點包括指定節點或非指定節點。
於上述實施例中,該指定節點包括某一指定節點或多個指定節點。另外,提供該欲查詢節點之步驟中包括設定指定節點之數量並定義一或多個指定節點。
於另一實施例中,該查詢方向包括單向之入方和出方以及雙向。
於其他實施例中,本發明之多階層網路樣式比對方法,復包
括將由該多階層網路中搜索出符合該篩選條件與該查詢方向之特定樣式的查詢結果於前端使用者介面上呈現。
綜上可知,本發明所提出之多階層網路樣式比對方法,係利用本發明所述方法與圖形資料庫遍歷(traversal)圖形之查詢特性以及特有的雙向搜尋,以實現查找超過兩階層與複雜雙向交互關係,相較於傳統資料庫利用結合(join)的方法,考量效能與語法複雜度,通常僅能查找到兩階層以內的簡單特定樣式,亦即本發明所產生的查詢語法,透過遍歷節點(vertex)與邊(edge)的屬性,可以查找較複雜的多階層特定樣式關係,如此能改善現有技術不易從多階層網路中對特定節點查找多階層特定樣式的缺點,且能改善現有技術不易從多階層網路對非特定節點查找多階層特定樣式的缺點,也就是說,本發明不僅能針對特定節點從多階層網路查找多階層特定樣式,還能對非特定節點進行整個多階層網路的多階層特定樣式探勘,且查找方向不限定入方或出方先進行,甚至能透過雙向搜尋讓入方或出方皆可查找,故能查找出多階層網路中各種多階層的特定樣式。
S11~S15‧‧‧步驟
第1圖為本發明之多階層網路樣式比對方法的步驟圖。
第2圖為本發明第一實施例中多階層網路的示意圖。
第3圖為本發明第一實施例中篩選條件與查詢方向的示意圖。
第4圖為本發明第一實施例中代入欲查詢節點的示意圖。
第5圖為本發明第一實施例中產生多階層網路樣式比對結果的示意圖。
第6圖為說明本發明第一實施例中產生多階層網路樣式比對結果的示意圖。
第7圖為本發明第二實施例中基於非特定節點所產生之多階層網路樣式比對結果的示意圖。
第8圖為說明本發明第二實施例中產生多階層網路樣式比對結果的示意圖。
第9圖為本發明第三實施例中篩選條件與查詢方向的示意圖。
第10圖為說明本發明第三實施例中基於非特定節點所產生之多階層網路樣式比對結果的示意圖。
第11圖為本發明中多階層網路樣式比對結果僅包含入方階層的示意圖。
第12圖為本發明查詢方向包含單向和雙向的一實施例的示意圖。
第13圖為本發明查詢方向包含單向和雙向的另一實施例的示意圖。
以下藉由特定的具體實施形態說明本發明之技術內容,熟悉此技藝之人士可由本說明書所揭示之內容輕易地瞭解本發明之優點與功效。然本發明亦可藉由其他不同的具體實施形態加以施行或應用。
本發明之目的在於查找多階層網路中特定節點或非特定節點之多階層特定樣式,藉此改善現有技術對於複雜特定樣式不易探勘之缺
點。舉例而言,在供應鏈交易網路中,傳統資料庫僅針對特定營業人(節點)尋找下一階層交易關係或僅查找上一階層交易關係,使用者不易查詢供應鏈交易網路中以特定營業人(節點)為起始點的上下游交互關係,且在傳統資料庫的交易資料中,通常僅有買方與賣方的單方向交易記錄,查詢者需要撰寫複雜的SQL語法與查詢程式,才能找出特定營業人的上下游交互關係;然而,若使用者希望查詢超過兩階層且包含雙向交易關係的特定樣式,以傳統資料庫查找,通常只能分別一層一層單方向查詢,將難以達成使用者的查詢需求。
第1圖係為本發明之多階層網路樣式比對方法的步驟圖。本發明將資料儲存於圖形資料庫,例如供應鏈交易網路、人際互動網路、人際關係網路等,以人或公司資料為節點(vertex),人際關係或交易資料為邊(edge),將傳統資料庫內容轉為多階層網路並利用圖形資料庫遍歷(traversal)圖形之查詢特性,提高查找多階層特定樣式(pattern)的計算效率。如圖所示,本發明之多階層網路樣式比對方法,可包括設定查詢節點、設定階層數、設定各階層之篩選條件與查詢方向、產生查詢語法、進行樣式比對以及產生多階層網路樣式比對結果等步驟。
於步驟S11中,提供一欲查詢節點。於此步驟中,主要是設定一個欲查詢節點,也就是確認欲查詢的節點為何,後續將以此節點往入方(in)或出方(out)進行延伸。於一具體實施例中,能透過一個起始節點接收器讀入欲查詢節點。
於步驟S12中,提供欲查詢的入方階層數與出方階層數。於此步驟中,主要是提供欲查詢者其入方和出方分別涵蓋幾個階層,以利後
續能以該欲查詢節點以及其入方和出方所涵蓋之階層數以建立出特定樣式。於一具體實施例中,能透過一個階層數接收器讀入一欲查詢的入方(in)與出方(out)階層數。
於步驟S13中,依據該入方階層數與該出方階層數,建立每一個階層的篩選條件與查詢方向。此步驟即是說明設定各階層之篩選條件與查詢方向,具體而言,為了找出合適的特定樣式,於此會取得兩個節點之間的關係條件與方向,例如A節點對B節點是上游關係,且B節點付款金額超過100萬,此說明了A節點和B節點之間的關係存在方向性和數據條件,此能幫助查找出符合關係條件的特定樣式。於一具體實施例中,能透過一個各階層過濾條件與查詢方向接收器分別讀入步驟S12每一階層的篩選條件與查詢方向。
於步驟S14中,利用該欲查詢節點、該入方階層數、該出方階層數及各階層之篩選條件與查詢方向,產生包含特定節點、該特定節點之入方所有階層及該特定節點之出方所有階層的多階層特定樣式查詢語法,且該特定節點、該特定節點之入方所有階層及該特定節點之出方所有階層分別對應該欲查詢節點、該欲查詢節點之入方所有階層及該欲查詢節點之出方所有階層。於本步驟中,利用該欲查詢節點、該入方階層數、該出方階層數及各階層之篩選條件與查詢方向產生多階層特定樣式查詢語法,而該多階層特定樣式查詢語法包含特定節點、該特定節點之入方所有階層及該特定節點之出方所有階層,並分別對應該欲查詢節點、該欲查詢節點之入方所有階層及該欲查詢節點之出方所有階層。
具體而言,能透過起始節點接收器、階層數接收器以及各階
層過濾條件與查詢方向接收器,分別讀入欲查詢節點、入方和出方階層數、各階層篩選條件與查詢方向,以產生包含三個部分組成之多階層特定樣式查詢語法,而三個部分分別為第一部分為該特定節點,第二部分為該特定節點的入方(in)所有階層,第三部分為該特定節點的出方(out)所有階層,主要用意在於查找該欲查詢節點、其入方(in)所有階層和其出方(out)所有階層。
於一具體實施例中,產生該多階層特定樣式查詢語法包括設定查詢節點的實體為該欲查詢節點。簡言之,查詢語法由第一部分開始產生,即將步驟S11設定查詢節點的實體代入該欲查詢節點。
於另一具體實施例中,產生該多階層特定樣式查詢語法包括自該欲查詢節點之入方第一階層開始代入該篩選條件與該查詢方向以產生入方第一階層查詢語法,且以相同方式產生入方第二階層查詢語法並類推以產生入方各階層查詢語法,直到該多階層特定樣式查詢語法符合該入方階層數,以及自該欲查詢節點之出方第一階層開始代入該篩選條件與該查詢方向以產生出方第一階層查詢語法,且以相同方式產生出方第二階層查詢語法並類推以產生出方各階層查詢語法,直到該多階層特定樣式查詢語法符合該出方階層數。上述為產生該多階層特定樣式查詢語法的說明,係依據該篩選條件與該查詢方向從該欲查詢節點開始產生,接著分為該欲查詢節點之入方和出方,且各別由第一階層繼續產生,也就是說,依據第一階層之篩選條件與查詢方向,產生第一階層查詢語法,接著以相同方式,產生第二階層查詢語法以及後續階層的查詢語法,直到階層數符合先前設定之入方階層數或出方階層數。
具體來說,由該欲查詢節點的入方第一階層開始代入篩選條件與查詢方向,藉以串接成入方第一階層查詢語法,接著以相同方式產生入方第二階層查詢語法,如此依序產生入方各階層查詢語法,直到產生語法的階層數到達步驟S12所設定的入方階層數,即產生第二部分該特定節點的入方所有階層查詢語法;同樣地,由該欲查詢節點的出方第一階層開始代入篩選條件與查詢方向,藉以串接成出方第一階層查詢語法,接著以相同方式產生出方第二階層查詢語法,如此依序產生出方各階層查詢語法,直到產生語法的階層數到達步驟S12所設定的出方階層數,即產生第三部分該特定節點的出方所有階層查詢語法。
於上述實施例中,產生該多階層特定樣式查詢語法包括先產生該入方各階層查詢語法而後產生該出方各階層查詢語法,或是先產生該出方各階層查詢語法而後產生該入方各階層查詢語法。由上可知,第二部分之入方所有階層查詢語法與第三部分之出方所有階層查詢語法可以前後交換,亦即由該特定節點開始往一個方向查找完畢後,再往另一個方向查找,因此不限由入方或出方先開始。
於其他實施例中,產生該多階層特定樣式查詢語法包括僅產生該入方各階層查詢語法或該出方各階層查詢語法之其中一者。此實施例係說明該多階層特定樣式查詢語法可由第一部分與第二部分組成,或者由第一部分與第三部分組成,其用意在可僅查找該欲查詢節點與其入方所有階層,或者僅查找該欲查詢節點與其出方所有階層,也就是說,不限定要入方與出方皆要存在。
於步驟S15中,執行該多階層特定樣式查詢語法,以由多階
層網路中搜索出符合該篩選條件與該查詢方向之特定樣式。此步驟即為執行該多階層特定樣式查詢語法,於龐大的網路關係中搜索,找出符合查詢條件的樣式,即為特定樣式。
於其他實施例中,該欲查詢節點包括特定節點或非特定節點。此實施例係說明步驟S11不限定要針對特定節點,舉例來說,要查找A節點的上下節點關係,此類型確定以A節點為欲查詢節點,於本發明中,欲查詢節點亦可為非特定節點,後續將由具體實施例進一步說明。
於其他實施例中,該特定節點包括某一特定節點或多個特定節點。此實施例係說明於步驟S11中,亦可設定一個或一個以上的特定節點,舉例來說,於多階層網路中查找A節點和B節點的上下節點關係,此時即將A節點和B節點都設為欲查詢節點。
於其他實施例中,步驟S11復包括設定該特定節點之數量並定義一或多個特定節點,具體而言,即設定該特定節點之方式為由節點接收器讀入特定節點數量,接著該節點接收器讀入一或多個特定節點。
另外,該查詢方向包括單向之入方和出方以及雙向。具體而言,步驟S14產生該多階層特定樣式查詢語法能包含下列變化,即查詢方向包含單向的入(in)和出(out)與雙向(both),也就是說,兩個節點之間存在單向關係,例如A節點到B節點或B節點到A節點,則若A節點為欲查詢節點,則前者單向關係為出(out),反之後者單向關係為入(in),出方與入方視圖形資料庫建立時設定而定,另外,若A節點能到B節點且B節點能到A節點,則兩個節點之間存在雙向關係。同樣地,後續亦有具體實施例說明。
於其他實施例中,本發明之多階層網路樣式比對方法復包括
將由該多階層網路中搜索出符合該篩選條件與該查詢方向之特定樣式的查詢結果於前端使用者介面上呈現。亦即,當步驟S15產生多階層網路樣式比對結果後,可將該多階層特定樣式的查詢結果在前端使用者介面上呈現,又或者輸出成檔案以供後續多元利用。
由上可知,本發明將傳統資料庫內容轉為多階層網路並利用圖形資料庫遍歷圖形之查詢特性,提高查找多階層特定樣式的計算效率,相較於傳統資料庫利用結合(join)的方法僅能單向查找較少階層數之關係,透過本發明產生的查詢語法遍歷節點與邊的屬性,不僅能針對特定節點從多階層網路查找多階層特定樣式,還能對非特定節點進行整個網路的多階層特定樣式探勘,故改善現有技術對於多階層特定樣式(pattern)不易探勘之缺點。
另外,本發明定義的多階層特定樣式由三個部分組成,第一部分為某特定節點,第二部分為某特定節點的入方(in)所有階層,第三部分為某特定節點的出方(out)所有階層,第二與第三部分可以交換或選一方留下,即多階層特定樣式由第一部分與第二部分組成,或者由第一部分與第三部分組成,且當使用者想要從多階層網路中之特定節點查找超過兩階層、多種過濾條件、含單向與雙向的複雜特定樣式時,更能突顯本發明之功效。
後續將以多個實施例來說明本發明如何透過設定特定節點、其入方所有階層、其出方所有階層來建立出多階層特定樣式查詢語法,其中包含特定節點、非特定節點、查詢方向為單向、雙向等不同實施態樣。具體來說,實施例以一圖形資料庫(泰坦(titan)0.5.4版本)的格林姆林(gremlin)語法說明三種案例,針對現有技術很難達成,但改以本發明所述方法即能完成的複雜特定樣式
查找,從多階層網路查找超過兩階層、多種過濾條件、含單向與雙向的複雜特定樣式,包含一個「從特定節點查找多階層網路特定樣式」與兩個「從非特定節點查找多階層網路特定樣式」之實例。
首先說明「從特定節點查找多階層網路特定樣式」之實例,對應本發明所述方法步驟,能用於查找供應鏈交易網路中有食安風險且有可疑假交易的相關公司。
假設有一交易網路如第2圖所示(大寫字母表示公司,箭頭為交易資料並指向買方),某日食安與財經專家發現一種可疑交易樣式,在食安部分,不合規定的原料"乙"可能流入食品供應鏈,這種原料"乙"可能會製成添加物"丙",而食品"丁"的添加物內容含添加物"丙",在財經部分,有兩家公司可能透過包含原料"乙"等的交易品項進行雙方向的假交易,這種假交易金額通常大於兩千萬,綜上結合食品供應鏈,可以定義出有食安風險且可疑的假交易特定樣式如第3圖所示,需進行此種樣式比對,找出所有受影響廠商,於是先選定A公司為起始點開始進行樣式比對。
搭配本發明第1圖的步驟,使用者於步驟S11中設定查詢特定節點,接著輸入特定節點數量為1,再輸入特定節點為A公司,接著執行步驟S12的設定階層數,輸入欲查詢的入方階層數為2以及出方階層數為1,接著繼續執行步驟S13的設定各階層篩選條件與查詢方向,即分別輸入每一階層的篩選條件與查詢方向,包含交易方向為雙向且品項有原料"乙"或交易金額大於2000萬、交易方向為單向且品項含添加物"丙"及交易方向為單向且品項含食品"丁",在步驟S11、S12和S13輸入完成後,得到如第4圖的示意圖。
接著進行步驟S14的產生多階層特定樣式查詢語法,本發明會將使用者設定好的特定節點、階層數、各階層篩選條件與查詢方向等查詢條件,對應預先撰寫的圖形資料庫查詢語法模組,並將查詢條件加入由該圖形資料庫查詢語法模組產生的判斷式中,進而自動產生相對應的圖形資料庫的多階層特定樣式查詢語法。
該多階層特定樣式查詢語法所示如下:g.V.has('公司名稱','A').as('x').inE.filter{it.品項=='添加物"丙"'}.outV.bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV.back('x').outE.filter{it.品項=='食品"丁"'}.inV.path,其中,下面表一係進一步說明從特定節點查找多階層特定食安與可疑交易樣式之圖形資料庫查詢語法。
此多階層特定樣式查詢語法分為三個部分,第一部分為某特定公司,第二部分為某特定公司的上游所有階層,第三部分為某特定公司的下游所有階層。該多階層特定樣式查詢語法由某特定公司開始往一個方向查找完畢後,再往另一個方向查找,亦即,產生上述多階層特定樣式查詢語法的概念可解析為由A公司開始產生,接著產生A公司上游所有階層,再產生A公司下游所有階層,以下分詳細步驟解析。
首先,將A公司代入某特定公司,並將其另外指定為x,即產生第一部分查詢語法g.V.has('公司名稱','A').as('x');接著,利用inE代入添加物"丙"再串接outV得到inE.filter{it.品項=='添加物"丙"'}.outV,其用意為由A公司的交易邊往上一階層單向查找品項含添加物"丙"的交易與交易對象,接著,再加上bothE代入原料"乙"或金額大於2000萬的篩選條件,再串接bothV得到bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV,其用來繼續往上一階層查找,透過交易邊繼續進行雙向查找交易品項含原料"乙"或交易金額大於2000萬的交易與交易對象,由於此時已產生二個階層的查詢語法,產生查詢語法的階層數已達到步驟S12所設定的入方階層數2(即A公司的上二階層),即完整產生第二部分查詢語法inE.filter{it.品項=='添加物"丙"'}.outV.bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV,其用意在於查找A公司上游符合交易條件的所有階層。接著,再利用back('x')串接outE代入食品"丁"再串接inV,得到back('x').outE.filter{it.品項=='食品"丁"'}.inV,其用意在於將查詢指標回到A公司,再從A公司繼續往下游方向查詢,透過outE由
A公司的交易邊往下一階層單向查找品項含食品"丁"的交易與交易對象,由於此時已產生一個階層的查詢語法,產生查詢語法的階層數已達到步驟S12所設定的出方階層數1(即A公司的下一階層),即完整產生第三部分查詢語法back('x').outE.filter{it.品項=='食品"丁"'}.inV,其用意在於查找A公司下游符合交易條件的所有階層。最後,再加上path,其用意在於將查詢語法三個部分的節點、邊與查詢條件等完整查詢路徑列出。
以此多階層特定樣式查詢語法(符號說明請見表一)在圖形資料庫中進行步驟S15的樣式比對,於龐大的網路關係中搜索,找出符合查詢條件的特定樣式,並產生多階層網路樣式比對結果。舉例來說,如第5圖所示,查詢結果將可在前端使用者介面上呈現或者輸出成檔案,以供後續多元利用。另外,檢查符合特定交易樣式的內容,可如第6圖所示,可發現公司A和公司C雖然符合交易方向,但因交易品項不含食品"丁"而被濾除,而公司E和公司G則因交易金額與交易方向皆符合查詢條件,因此符合特定交易樣式定義。
前述實施例是必須先選定起始點(即欲查詢節點)才能開始進行樣式比對,假若不指定起始點而要直接查詢交易網路(多階層圖形網路)中全部符合的特定樣式,則需由下面「從非特定節點查找多階層網路特定樣式」實例來達成。
接續第一個實施例內容,假設有一交易網路如第2圖所示。某天食安與財經專家發現了一種可疑交易樣式,在食安部分,不合規定的原料"乙"可能流入食品供應鏈,這種原料"乙"可能會製成添加物"丙",而食
品"丁"的添加物內容含添加物"丙",在財經部分,有兩家公司可能透過包含原料"乙"等的交易品項進行雙方向的假交易,這種假交易金額通常大於兩千萬,綜上結合食品供應鏈,可以定義出有食安風險且可疑的假交易特定樣式如第3圖所示,需進行此種樣式比對,找出所有受影響廠商。惟本次樣式比對未先選定起始點,而是直接由整個交易網路直接開始進行樣式比對。
同樣搭配本發明第1圖的步驟,使用者於步驟S11中設定查詢非特定節點為某特定公司,同第一個實施例之條件,接著執行步驟S12的設定階層數,輸入欲查詢的入方階層數為2與出方階層數為1,接著繼續執行步驟S13的設定各階層篩選條件與查詢方向,即分別輸入每一階層的篩選條件與查詢方向,包含交易方向為雙向且品項有原料"乙"或交易金額大於2000萬、交易方向為單向且品項含添加物"丙"及交易方向為單向且品項含食品"丁",輸入完成後如第3圖所示。
接著進行步驟S14的產生多階層特定樣式查詢語法,本發明會將使用者設定好的非特定節點、階層數、各階層篩選條件與查詢方向等查詢條件,對應預先撰寫的圖形資料庫查詢語法模組,並將查詢條件加入由圖形資料庫查詢語法模組產生的判斷式中,進而自動產生相對應的圖形資料庫的多階層特定樣式查詢語法。
該多階層特定樣式查詢語法所示如下:g.V.as('x').inE.filter{it.品項=='添加物"丙"'}.outV.bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV.back('x').outE.filter{it.品項=='食
品"丁"'}.inV.path,其中,下面表二係進一步說明從非特定節點查找多階層特定食安與可疑交易樣式之圖形資料庫查詢語法。
此多階層特定樣式查詢語法分為三個部分,第一部分為某特定公司,第二部分為某特定公司的上游所有階層,第三部分為某特定公司的下游所有階層。該多階層特定樣式查詢語法由某特定公司開始往一個方向查找完畢後,再往另一個方向查找,亦即,產生上述查詢語法的概念可解析為由某特定公司開始產生,接著產生某特定公司上游所有階層,再產生某特定公司下游所有階層,以下分詳細步驟解析。
首先,將非特定公司代入某特定公司,並將其另外指定為x,即產生第一部分查詢語法g.V.as('x');接著利用inE代入添加物"丙"再串接
outV得到inE.filter{it.品項=='添加物"丙"'}.outV,其用意在於由某特定公司的交易邊往上一階層單向查找品項含添加物"丙"的交易與交易對象,接著,再加上bothE代入原料"乙"或金額大於2000萬的篩選條件,再串接bothV得到bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV,其用來繼續往上一階層查找,透過交易邊繼續進行雙向查找交易品項含原料"乙"或交易金額大於2000萬的交易與交易對象,由於此時已產生二個階層的查詢語法,產生查詢語法的階層數已達到步驟S12所設定的入方階層數2(某特定公司的上二階層),即完整產生第二部分查詢語法inE.filter{it.品項=='添加物"丙"'}.outV.bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV,其用意在於查找某特定公司上游符合交易條件的所有階層。接著,再利用back('x')串接outE代入食品"丁"再串接inV,得到back('x').outE.filter{it.品項=='食品"丁"'}.inV,其用意在於將查詢指標回到某特定公司,再從某特定公司繼續往下游方向查詢,透過outE由某特定公司的交易邊往下一階層單向查找品項含食品"丁"的交易與交易對象,由於此時已產生一個階層的查詢語法,產生查詢語法的階層數已達到步驟S12所設定的出方階層數1(某特定公司的下一階層),即完整產生第三部分查詢語法back('x').outE.filter{it.品項=='食品"丁"'}.inV,其用意在於查找某特定公司下游符合交易條件的所有階層。最後,再加上path,其用意在於將查詢語法三個部分的節點、邊與查詢條件等完整查詢路徑列出。
以此多階層特定樣式查詢語法(符號說明請見表二)在圖形資料庫中進行步驟S15的樣式比對,於龐大的網路關係中搜索,找出符合查詢條件的特定樣式,並產生多階層網路樣式比對結果。舉例來說,如第
7圖所示,查詢結果將可在前端使用者介面上呈現或者輸出成檔案。另外,檢查符合特定交易樣式的內容,可如第8圖所示,可以發現公司M和公司T因交易金額與交易方向皆符合查詢條件,因此符合特定交易樣式定義。由此可見,在進行相同特定樣式的樣式比對時,從「特定節點」與「非特定節點」查找多階層網路特定樣式,此實施例比前項實施例多查出了公司T、公司M、公司L、公司N、公司K等節點。
上述兩實施例為公司與公司之間的交易網路,接下來以人與人之間的人際互動關係網路為例,由於第一個實施例已介紹過「從特定節點查找多階層網路特定樣式」,本實施例將介紹「從非特定節點查找多階層網路特定樣式」,尋找所有符合恐怖關係樣式,即查找可能會危害大眾安全的潛在恐怖分子。
假設有一人際互動關係網路如第2圖所示(大寫字母表示人名,箭頭為互動關係並指向被留言者)。某天,反恐專家發現了一種可疑的人際互動關係樣式,有兩個人的關係親密或兩者間的留言數大於2000,表示可能為恐怖分子高級幹部間秘密交換情報,其中一方與下一階層關係為朋友,表示下一層的人為接受高級幹部恐攻計畫者,再下一階層關係為點頭交,表示恐攻執行者,由恐怖分子高級幹部,往下連結到普通幹部,再由普通幹部往下連結到真正執行者,可定義出恐怖關係樣式如第9圖所示,需進行此種特定樣式比對,找出所有潛在恐怖分子。本次樣式比對如同第二實施例,未先選定起始點,直接由整個人際互動關係網路直接開始進行樣式比對。
同樣搭配第1圖所述步驟,使用者於步驟S11中設定查詢
非特定節點為某特定人,接著執行步驟S12的設定階層數,輸入欲查詢的入方階層數為2與出方階層數為1,接著繼續執行步驟S13的設定各階層篩選條件與查詢方向,即分別輸入每一階層的篩選條件與查詢方向,包含留言方向為雙向且關係為親密或留言數大於2000、留言方向為單向且關係為朋友及留言方向為單向且關係為點頭交,待上述條件輸入完成後,能得到如第9圖的示意圖。
接著進行步驟S14的產生多階層特定樣式查詢語法,本發明會將使用者設定好的非特定節點、階層數、各階層篩選條件與查詢方向等查詢條件,對應預先撰寫的圖形資料庫查詢語法模組,並將查詢條件加入由圖形資料庫查詢語法模組產生的判斷式中,進而自動產生相對應的圖形資料庫的多階層特定樣式查詢語法。
該多階層特定樣式查詢語法所示如下:g.V.as('x').inE.filter{it.關係=='朋友'}.outV.bothE.filter{it.關係=='親密'∥it.留言數>2000}.bothV.back('x').outE.filter{it.關係=='點頭交'}.inV.path,其中,下面表三係進一步說明從非特定節點查找多階層特定可疑人際互動關係樣式之圖形資料庫查詢語法。
此多階層特定樣式查詢語法分為三個部分,第一部分為某特定人,第二部分為某特定人往上所有階層,第三部分為某特定人往下所有階層。該多階層特定樣式查詢語法由某特定人開始往一個方向查找完畢後,再往另一個方向查找,亦即,產生上述查詢語法的概念可解析為由某特定人開始產生,接著產生某特定人往上所有階層,再產生某特定人往下所有階層,以下分詳細步驟解析。
首先,將非特定人代入某特定人,並將其另外指定為x,即產生第一部分查詢語法g.V.as('x');接著,利用inE代入朋友再串接outV得到inE.filter{it.關係=='朋友'}.outV,其用意為由某特定人的人際關係邊
往上一階層單向查找關係為朋友的人際關係與留言對象,接著,再加上bothE代入親密或留言數大於2000的篩選條件,再串接bothV得到bothE.filter{it.關係=='親密'∥it.留言數>2000}.bothV,其用來繼續往上一階層查找,透過人際關係邊繼續進行雙向查找關係為親密或留言數大於2000的人際關係與留言對象,由於此時已產生二個階層的查詢語法,產生查詢語法的階層數已達到步驟S12所設定的入方階層數2(即某特定人的上二階層),即完整產生第二部分查詢語法inE.filter{it.關係=='朋友'}.outV.bothE.filter{it.關係=='親密'∥it.留言數>2000}.bothV,其用意在於查找某特定人往上符合篩選條件的所有階層。接著,再利用back('x')串接outE代入點頭交再串接inV,得到back('x').outE.filter{it.關係=='點頭交'}.inV,其用意在於將查詢指標回到某特定人,再從某特定人繼續往下方階層查詢,透過outE由某特定人的人際關係邊往下一階層單向查找關係為點頭交的人際關係與被留言對象,由於此時已產生一個階層的查詢語法,產生查詢語法的階層數已達到步驟S12所設定的出方階層數1(即某特定人的下一階層),即完整產生第三部分查詢語法back('x').outE.filter{it.關係=='點頭交'}.inV,其用意在於查找某特定人往下符合篩選條件的所有階層。最後,再加上path,其用意在於將查詢語法三個部分的節點、邊與查詢條件等完整查詢路徑列出。
以此多階層特定樣式查詢語法(符號說明請見表三)在圖形資料庫中進行步驟S15的樣式比對,於龐大的網路關係中搜索,找出符合查詢條件的特定樣式,並產生多階層網路樣式比對結果。另外,檢查符合特定可疑人際互動關係樣式的內容,可如第10圖所示,可以發現兩個子圖
皆符合查詢條件,因此符合特定可疑人際互動關係樣式定義。
如前所述,本發明所產生的多階層特定樣式查詢語法係由三個部分組成,第一部分為某特定節點,第二部分為某特定節點的入方所有階層,第三部分為某特定節點的出方所有階層,其中第二部分與第三部分先後順序可以交換,即由某特定節點開始往一個方向查找完畢後,再往另一個方向查找;另外,本發明產生的多階層特定樣式查詢語法亦可由第一部分與第二部分組成,或是由第一部分與第三部分組成,也就是入方和出方僅有一者亦可。延續第二實施例,以下再舉三個特定樣式範例,說明本發明產生多階層特定樣式查詢語法的概念。
首先,第一個特定樣式範例,若將第二實施例的可疑交易樣式條件移除食品"丁",其餘部分相同,則會有入方階層數為2層與出方階層數為0的情況,此可定義出可疑特定交易樣式如第11圖所示,由本發明產生相對應的圖形資料庫多階層特定樣式查詢語法如下:g.V.as('x').inE.filter{it.品項=='添加物"丙"'}.outV.bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV.path。
由於交易條件移除食品"丁"致使某特定節點查找完入方所有階層,就不用再查找某特定節點的出方所有階層,因此,本範例較第二實施例的查詢語法,在bothV之後少了back('x').outE.filter{it.品項=='食品"丁"'}.inV等內容。
接著,第二個特定樣式範例,若將第二實施例的可疑交易樣式條件,於食品"丁"的下游再增加食品"戊",其餘部分相同,則會有入方階層數與出方階層數皆為2的情況,此可定義出可疑特定交易樣式如第12圖
所示,由本發明產生相對應的圖形資料庫多階層特定樣式查詢語法如下:g.V.as('x').inE.filter{it.品項=='添加物"丙"'}.outV.bothE.filter{it.品項=='原料"乙"'∥it.金額>20000000}.bothV.back('x').outE.filter{it.品項=='食品"丁"'}.inV.outE.filter{it.品項=='食品"戊"'}.inV.path。
由於交易條件於食品"丁"的下游再增加食品"戊",除了某特定節點查找完入方所有階層,在查找某特定節點的出方所有階層時,查找完食品"丁"後還要再多查找食品"戊",因此,本範例較第二實施例的查詢語法,在inV之後多了outE.filter{it.品項=='食品"戊"'}.inV等內容。
另外,第三個特定樣式範例由第二個特定樣式變化而來,此特定樣式定義在食安部分,不合規定的原料"己"和化合物"庚"可能流入食品供應鏈,這種原料"己"可以製成化合物"庚",化合物"庚"可能會製成添加物"辛",而食品"壬"的添加物內容含添加物"辛",在財經部分,有兩家公司可能透過包含化合物"庚"等的交易品項進行雙方向的假交易,這種假交易金額通常大於兩千萬,綜上結合食品供應鏈,可定義出入方階層數與出方階層數皆為2、有食安風險且有可疑的假交易特定樣式如第13圖所示,由本發明產生相對應的圖形資料庫多階層特定樣式查詢語法如下:g.V.as('x').bothE.filter{it.品項=='化合物"庚"'∥it.金額>20000000}.bothV.inE.filter{it.品項=='原料"己"'}.outV.back('x').outE.filter{it.品項=='添加物"辛"'}.inV.outE.filter{it.品項=='食品"壬"'}.inV.path。
比較第12與13圖的特定樣式,不同之處在於某特定節點入方所有階層,第12圖在入方第一個階層為單向,第二階層為雙向,第13
圖在入方第一個階層為雙向,第二階層為單向,加上兩者篩選的條件後,某特定節點其入方第一個階層變為bothE.filter{it.品項=='化合物"庚"'∥it.金額>20000000}.bothV,而某特定節點其入方第二個階層變為inE.filter{it.品項=='原料"己"'}.outV。另外,兩者的特定樣式在某特定節點出方所有階層相同,因此雙方在back('x')以後的語法型態亦相同。
綜上所述,本發明所提出之多階層網路樣式比對方法,係利用本發明所述方法與圖形資料庫遍歷(traversal)圖形之查詢特性以及特有的雙向搜尋,以實現查找超過兩階層與複雜雙向交互關係,且上述各實施例以較精簡的多階層網路(交易網路與人際互動關係網路)為例,然而在實際更龐大且複雜的多階層網路中,當使用者想要查找超過兩階層、多種過濾條件、含單向與雙向的複雜特定樣式時,更能突顯本發明之功效,因此,本發明不僅改善現有技術對於多階層特定樣式不易探勘之缺點,還能針對特定節點從多階層網路查找多階層特定樣式,甚至可以對非特定節點進行整個多階層網路的多階層特定樣式探勘。
上述實施形態僅例示性說明本發明之原理及其功效,而非用於限制本發明。任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。因此,本發明之權利保護範圍,應如後述之申請專利範圍所列。
S11~S15‧‧‧步驟
Claims (10)
- 一種多階層網路樣式比對方法,係包括:提供一欲查詢節點;提供欲查詢的入方階層數與出方階層數;依據該入方階層數與該出方階層數,建立每一個階層的篩選條件與查詢方向;利用該欲查詢節點、該入方階層數、該出方階層數及各階層之篩選條件與查詢方向,產生包含指定節點、該指定節點之入方所有階層及該指定節點之出方所有階層的多階層指定樣式查詢語法,且該指定節點、該指定節點之入方所有階層及該指定節點之出方所有階層分別對應該欲查詢節點、該欲查詢節點之入方所有階層及該欲查詢節點之出方所有階層;以及執行該多階層指定樣式查詢語法,以由多階層網路中搜索出符合該篩選條件與該查詢方向之指定樣式。
- 如申請專利範圍第1項所述之多階層網路樣式比對方法,其中,產生該多階層指定樣式查詢語法包括設定查詢節點的實體為該欲查詢節點。
- 如申請專利範圍第1項所述之多階層網路樣式比對方法,其中,產生該多階層指定樣式查詢語法包括自該欲查詢節點之入方第一階層開始代入該篩選條件與該查詢方向以產生入方第一階層查詢語法,且以相同方式類推以產生入方各階層查詢語法,直到該多階層指定樣式查詢語法符合該入方階層數,以及自該欲查詢節點之出 方第一階層開始代入該篩選條件與該查詢方向以產生出方第一階層查詢語法,且以相同方式類推以產生出方各階層查詢語法,直到該多階層指定樣式查詢語法符合該出方階層數。
- 如申請專利範圍第3項所述之多階層網路樣式比對方法,其中,產生該多階層指定樣式查詢語法包括先產生該入方各階層查詢語法而後產生該出方各階層查詢語法,或是先產生該出方各階層查詢語法而後產生該入方各階層查詢語法。
- 如申請專利範圍第3項所述之多階層網路樣式比對方法,其中,產生該多階層指定樣式查詢語法包括僅產生該入方各階層查詢語法或該出方各階層查詢語法之其中一者。
- 如申請專利範圍第1項所述之多階層網路樣式比對方法,其中,該欲查詢節點包括指定節點或非指定節點。
- 如申請專利範圍第6項所述之多階層網路樣式比對方法,其中,該指定節點包括某一指定節點或多個指定節點。
- 如申請專利範圍第1項所述之多階層網路樣式比對方法,其中,提供該欲查詢節點之步驟中包括設定指定節點之數量並定義一或多個指定節點。
- 如申請專利範圍第1項所述之多階層網路樣式比對方法,其中,該查詢方向包括單向之入方和出方以及雙向。
- 如申請專利範圍第1項所述之多階層網路樣式比對方法,復包括將由該多階層網路中搜索出符合該篩選條件與該查詢方向之指定樣式的查詢結果顯示於前端使用者介面上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108126349A TWI714184B (zh) | 2019-07-25 | 2019-07-25 | 多階層網路樣式比對方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108126349A TWI714184B (zh) | 2019-07-25 | 2019-07-25 | 多階層網路樣式比對方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI714184B true TWI714184B (zh) | 2020-12-21 |
TW202105195A TW202105195A (zh) | 2021-02-01 |
Family
ID=74670020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108126349A TWI714184B (zh) | 2019-07-25 | 2019-07-25 | 多階層網路樣式比對方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI714184B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259352A (ja) * | 2001-03-01 | 2002-09-13 | Handotai Rikougaku Kenkyu Center:Kk | マルチプロセッサシステム装置 |
TW200634570A (en) * | 2004-06-30 | 2006-10-01 | Ibm | Method, system and recording medium for providing a configuration specification language supporting incompletely specified configuration entities |
US20090106165A1 (en) * | 1999-11-01 | 2009-04-23 | Solomon Research Llc | System for intelligent search agent to access data in a distributed network |
US20100082513A1 (en) * | 2008-09-26 | 2010-04-01 | Lei Liu | System and Method for Distributed Denial of Service Identification and Prevention |
US20100313038A1 (en) * | 2003-06-05 | 2010-12-09 | Intertrust Technologies Corp. | Interoperable systems and methods for peer-to-peer service orchestration |
TWI353120B (en) * | 2006-11-14 | 2011-11-21 | Qualcomm Inc | Memory efficient adaptive block coding |
CN103098425A (zh) * | 2011-02-24 | 2013-05-08 | 株式会社日立制作所 | 通信网络系统及通信网络构成方法 |
WO2018183422A1 (en) * | 2017-03-28 | 2018-10-04 | Cisco Technology, Inc. | Flowlet resolution for application performance monitoring and management |
US10326532B2 (en) * | 2016-08-05 | 2019-06-18 | Nxgen Partners Ip, Llc | System and method providing network optimization for broadband networks |
-
2019
- 2019-07-25 TW TW108126349A patent/TWI714184B/zh active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106165A1 (en) * | 1999-11-01 | 2009-04-23 | Solomon Research Llc | System for intelligent search agent to access data in a distributed network |
JP2002259352A (ja) * | 2001-03-01 | 2002-09-13 | Handotai Rikougaku Kenkyu Center:Kk | マルチプロセッサシステム装置 |
US20100313038A1 (en) * | 2003-06-05 | 2010-12-09 | Intertrust Technologies Corp. | Interoperable systems and methods for peer-to-peer service orchestration |
TW200634570A (en) * | 2004-06-30 | 2006-10-01 | Ibm | Method, system and recording medium for providing a configuration specification language supporting incompletely specified configuration entities |
TWI353120B (en) * | 2006-11-14 | 2011-11-21 | Qualcomm Inc | Memory efficient adaptive block coding |
US20100082513A1 (en) * | 2008-09-26 | 2010-04-01 | Lei Liu | System and Method for Distributed Denial of Service Identification and Prevention |
CN103098425A (zh) * | 2011-02-24 | 2013-05-08 | 株式会社日立制作所 | 通信网络系统及通信网络构成方法 |
US10326532B2 (en) * | 2016-08-05 | 2019-06-18 | Nxgen Partners Ip, Llc | System and method providing network optimization for broadband networks |
WO2018183422A1 (en) * | 2017-03-28 | 2018-10-04 | Cisco Technology, Inc. | Flowlet resolution for application performance monitoring and management |
Also Published As
Publication number | Publication date |
---|---|
TW202105195A (zh) | 2021-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10049143B2 (en) | Ontology harmonization and mediation systems and methods | |
Thalheim | Dependencies in relational databases | |
CN103377190B (zh) | 一种基于交易平台的供应商信息搜索方法和装置 | |
Gilson et al. | From web data to visualization via ontology mapping | |
Ronen et al. | SoQL: A language for querying and creating data in social networks | |
CN108038136A (zh) | 基于图模型的企业知识图谱的建立方法和图形化查询方法 | |
JP2002532788A (ja) | データを編成するシステム及び方法 | |
US8972463B2 (en) | Method and apparatus for functional integration of metadata | |
CN103678350B (zh) | 社交网络搜索结果展示方法及装置 | |
van Erven et al. | Detecting evidence of fraud in the brazilian government using graph databases | |
JP2010525477A (ja) | ウェブログの時系列分析のためのデータ格納および照会方法及びその方法を実行するシステム | |
CN110489565A (zh) | 基于领域知识图谱本体中的对象根类型设计方法及系统 | |
CN106446122A (zh) | 信息检索的方法、装置与计算设备 | |
Saeed et al. | Big data characteristics (V’s) in industry | |
Färber et al. | A linked data wrapper for crunchbase | |
Brahimi et al. | Mapping the Scientific Landscape of Metaverse Using VOSviewer and Bibliometrix | |
TWI714184B (zh) | 多階層網路樣式比對方法 | |
Hayashi et al. | The acceptability of tools for the data marketplace among firms using market research online communities | |
Millham et al. | Social media and big data | |
Tu et al. | GraphCharter: Combining browsing with query to explore large semantic graphs | |
Centorrino et al. | From double-entry bookkeeping and ledger to blockchain technology: New frontiers for accounting information systems | |
TWI781138B (zh) | 多階層網路交互關係查找方法 | |
Benouaret et al. | Fudocs: A web service composition system based on fuzzy dominance for preference query answering | |
Vasilyeva et al. | Leveraging flexible data management with graph databases | |
CN114547157A (zh) | 一种知识图谱分析系统及方法 |