專利名稱:信息聚合系統(tǒng)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息的聚合及方法,特別是涉及一種信息聚合系統(tǒng)及其實(shí)現(xiàn)方法。
背景技術(shù):
微博,即微博客(MicroBlog)的簡稱,是ー個(gè)基于用戶關(guān)系的信息分享、傳播以及獲取平臺(tái)。在微博中,用戶可以關(guān)注好友,可以看到好友最新動(dòng)態(tài);用戶也可以產(chǎn)生動(dòng)態(tài)信息,系統(tǒng)把動(dòng)態(tài)信息及時(shí)的推送給關(guān)注該用戶的用戶。游戲社區(qū)中動(dòng)態(tài)推送系統(tǒng)原理與微博類似,但是與一般微薄最大的不同是游戲社區(qū)會(huì)接入很多游戲,用戶在玩游戲的過程中也會(huì)產(chǎn)生動(dòng)態(tài)信息。游戲中短時(shí)間內(nèi)產(chǎn)生大量相似動(dòng)態(tài)信息的可能性比較高,比如一個(gè)用戶連續(xù)發(fā)了 10次求救信號(hào),產(chǎn)生10個(gè)動(dòng)態(tài)信息,把這些動(dòng)態(tài)信息一一展示會(huì)比較浪費(fèi)版面。當(dāng)多個(gè)游戲動(dòng)態(tài)信息在時(shí)序上有交叉時(shí)展示的版面也比較亂。聚合就是要把這類重復(fù)或相似的動(dòng)態(tài)信息聚合起來,有選擇的展示其中一部分。常規(guī)可能的聚合需求如下1)強(qiáng)制不聚合,比如用戶主動(dòng)輸入的推他動(dòng)態(tài)信息;2)游戲A的每兩小時(shí)的動(dòng)態(tài)信息聚合在一起,不同類型的動(dòng)態(tài)信息在該游戲內(nèi)再按類型聚合在ー塊,每種類型顯示最新一條,同時(shí)告知另外還有幾條;3)游戲B的每兩小時(shí)的動(dòng)態(tài)信息聚合在一起,不區(qū)分類型,顯示最新五條;4)游戲D、E、F的類型X的動(dòng)態(tài)信息(比如開通游戲動(dòng)態(tài))聚合在ー塊,每個(gè)游戲顯示最新一條;5)系統(tǒng)動(dòng)態(tài)中的頭像更換動(dòng)態(tài)聚合后只顯示最新一條。關(guān)于聚合,目前最常用的解決方法是為每個(gè)或每類聚合需求實(shí)現(xiàn)ー套獨(dú)立代碼, 當(dāng)新的聚合需求吋,需要新開發(fā)代碼,因此,這類方法具有如下缺點(diǎn)1)需要長期的開發(fā)類人力投入,每接入一個(gè)游戲動(dòng)態(tài)都要升級(jí)程序;2)由于需要開發(fā),從需求提出到實(shí)現(xiàn)的周期較長;3)當(dāng)動(dòng)態(tài)類型越多吋,開發(fā)周期上的劣勢越明顯;4)代碼過多,不易維護(hù),如果某個(gè)聚合需求撤銷了,會(huì)留下垃圾代碼。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供ー種信息聚合系統(tǒng)及其實(shí)現(xiàn)方法。利用該系統(tǒng)可以很方便地完成信息聚合,而且如果以后増加聚合需求,只需要配置語法描述規(guī)則就能達(dá)到目的,在開發(fā)上減少了的人力投入。為解決上述技術(shù)問題,本發(fā)明的信息聚合系統(tǒng),包括集合模塊,用于描述需要聚合的動(dòng)態(tài)范圍,并根據(jù)該動(dòng)態(tài)范圍進(jìn)行信息聚合;優(yōu)先級(jí)模塊,用于多級(jí)聚合吋,描述信息聚合的優(yōu)先級(jí),并根據(jù)優(yōu)先級(jí)進(jìn)行信息聚合;約束條件模塊,用于描述不同的應(yīng)用場景,并根據(jù)應(yīng)用場景進(jìn)行信息聚合;所述集合模塊、優(yōu)先級(jí)模塊、約束條件模塊,根據(jù)情況組合應(yīng)用完成信息聚合。動(dòng)態(tài)具有各種屬性,而聚合的集合模塊和優(yōu)先級(jí)模塊正是通過屬性來描述,該屬性包含動(dòng)態(tài)屬性。如可用游戲社區(qū)常用的動(dòng)態(tài)屬性來描述,但屬性在不同應(yīng)用中是可擴(kuò)展的,因此本發(fā)明描述模塊中的ー種語法,涉及的屬性包含(但不限干)如下屬性1)產(chǎn)生動(dòng)態(tài)的游戲每個(gè)游戲有個(gè)獨(dú)立的數(shù)字ID表示,用A表示該屬性名;2)動(dòng)態(tài)的類型每個(gè)游戲產(chǎn)生的動(dòng)態(tài)有不同類型,每種類型用數(shù)字ID表示,用T 表示該屬性名;3)產(chǎn)生動(dòng)態(tài)的主體用戶用F表示該屬性名。集合模塊的語法描述如下A ? T ? , A ? T ?,…用“,”分割各個(gè)子集合,所有子集合的并集完整的表示ー個(gè)集合。每個(gè)子集合的語法含義如下A ?指定游戲ID ;T ?指定動(dòng)態(tài)類型ID ;如上語法可根據(jù)屬性擴(kuò)展如A ? T ? X ? Y ?,A ? T ? X ? Y ?,…(X、Y根據(jù)具體應(yīng)用添加)。優(yōu)先級(jí)模塊的語法描述如下?或? > 或? > > 或? >…?“?”用屬性名替換,有幾個(gè)?表示有幾個(gè)聚合層級(jí),左邊的屬性優(yōu)先級(jí)高于右邊的屬性。約束條件模塊的語法可根據(jù)實(shí)際應(yīng)用場景自定義。另外,本發(fā)明的信息聚合系統(tǒng)的實(shí)現(xiàn)方法(即算法),包括步驟第一歩,載入信息聚合系統(tǒng)的語法描述配置和待聚合的動(dòng)態(tài);第二步,獲取下一個(gè)動(dòng)態(tài),如果不成功(即所有動(dòng)態(tài)都遍歷完了),則根據(jù)動(dòng)態(tài)的層級(jí)結(jié)構(gòu)進(jìn)行深度優(yōu)先遍歷,編碼成前端可顯示的數(shù)據(jù)包結(jié)構(gòu),完成聚合;獲取下ー個(gè)動(dòng)態(tài),如果成功,則按下述步驟進(jìn)行1)根據(jù)集合模塊中的語法描述,確定該動(dòng)態(tài)符合哪個(gè)模塊的語法描述;2)根據(jù)約束條件模塊中的語法描述,找到該語法描述下對(duì)應(yīng)的數(shù)據(jù)包,如不存在, 新建一個(gè)數(shù)據(jù)包;3)如果是多級(jí)聚合吋,根據(jù)優(yōu)先級(jí)模塊中的語法描述,找到歸屬的子包,如不存在,新建ー個(gè)子包,對(duì)于子包,需要記錄子包所屬父包,以維持層級(jí)結(jié)構(gòu);4)當(dāng)找到最小聚合力度子包吋,根據(jù)顯示條數(shù)目數(shù)和包內(nèi)已存在的條數(shù),決定把動(dòng)態(tài)加入包或只增加計(jì)數(shù);第三歩,再進(jìn)行獲取下ー個(gè)動(dòng)態(tài),重復(fù)第二步的操作。本發(fā)明設(shè)計(jì)的信息聚合系統(tǒng),針對(duì)不同的聚合需求,只需根據(jù)模塊的語法配置即可表達(dá)需要聚合的效果,同時(shí)實(shí)現(xiàn)了信息聚合方法。根據(jù)該方法,以后增加聚合需求,只需要配置模塊中的語法描述就能達(dá)到目的,大大減少了在開發(fā)上的人力投入。
因此,本發(fā)明最大的優(yōu)點(diǎn)就是語言邏輯清晰,支持通用聚合語法配置,無需重復(fù)開發(fā)代碼。本發(fā)明雖然是應(yīng)游戲社區(qū)的需求而設(shè)計(jì),但設(shè)計(jì)比較通用,也可用于其它需要對(duì)信息進(jìn)行聚合的領(lǐng)域。
下面結(jié)合附圖與具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)ー步詳細(xì)的說明附圖是本發(fā)明的信息聚合系統(tǒng)的實(shí)現(xiàn)方法流程圖。
具體實(shí)施例方式本實(shí)施例中,以游戲社區(qū)為例,說明本發(fā)明的信息聚合系統(tǒng)及其實(shí)現(xiàn)方法。本發(fā)明的信息聚合系統(tǒng),包括集合模塊,用于描述需要聚合的動(dòng)態(tài)范圍,并根據(jù)該動(dòng)態(tài)范圍進(jìn)行信息聚合;優(yōu)先級(jí)模塊,用于多級(jí)聚合吋,描述信息聚合的優(yōu)先級(jí),并根據(jù)優(yōu)先級(jí)進(jìn)行信息聚合;約束條件模塊,用于描述不同的應(yīng)用場景,并根據(jù)應(yīng)用場景進(jìn)行信息聚合;該3個(gè)模塊,能根據(jù)情況(實(shí)際情況)組合應(yīng)用完成信息聚合。其中,約束條件模塊根據(jù)不同的應(yīng)用場景,可以擴(kuò)展,在本實(shí)施例的游戲社區(qū)中主要四個(gè)①是否聚合不聚合時(shí),優(yōu)先級(jí)等無用信息描述被無視;②時(shí)間分段長度落在不同時(shí)段動(dòng)態(tài)會(huì)聚合在兩個(gè)獨(dú)立的數(shù)據(jù)包里面;③顯示條目數(shù)把需要顯示的動(dòng)態(tài)內(nèi)容放在聚合包里不顯示,只顯示統(tǒng)計(jì)數(shù)字;④是否多好友聚合多個(gè)好友的動(dòng)態(tài)是聚合在同一個(gè)數(shù)據(jù)包里、還是各自獨(dú)立的數(shù)據(jù)包里。聚合的集合模塊和優(yōu)先級(jí)模塊,通過游戲社區(qū)常用的動(dòng)態(tài)屬性來描述,包含1)產(chǎn)生動(dòng)態(tài)的游戲每個(gè)游戲有個(gè)獨(dú)立的數(shù)字ID表示,用A表示該屬性名;2)動(dòng)態(tài)的類型每個(gè)游戲產(chǎn)生的動(dòng)態(tài)有不同類型(如打怪、升級(jí)等等),每種類型用數(shù)字ID表示,用T表示該屬性名;3)產(chǎn)生動(dòng)態(tài)的主體用戶用F表示該屬性名。集合模塊的語法描述如下A ? T ? , A ? T ?,…用“,”分割各個(gè)子集合,所有子集合的并集完整的表示ー個(gè)集合。每個(gè)子集合的語法含義如下A ?:指定游戲10,如41001、六1003;T 指定動(dòng)態(tài)類型ID,如Tl、T8、T*(表示該游戲下的所有類型)。完整的集合模塊語法描述舉例如下Α1001Τ* 游戲1001下所有類型的動(dòng)態(tài);Α1002Τ1, Α1003Τ1, Α1004Τ1 游戲 1002、1003、1004 的類型 ID 為 1 的動(dòng)態(tài);Α1005Τ3, Α1006Τ* 游戲1005的類型ID為3的動(dòng)態(tài)和游戲1006的所有動(dòng)態(tài)。
如上語法可根據(jù)屬性擴(kuò)展如A ? T ? X ? Y ?,A ? T ? X ? Y ?,…(X、Y根據(jù)具體應(yīng)用添加)。優(yōu)先級(jí)模塊的語法描述如下?或? > 或? > > 或? >…?“?”用屬性名替換,有幾個(gè)?表示有幾個(gè)聚合層級(jí),左邊的屬性優(yōu)先級(jí)高于右邊的屬性。舉例如下A 按游戲聚合;A > T 按游戲聚合成包后,每個(gè)包內(nèi)的動(dòng)態(tài)再按類型聚合成子包;T > A 按類型聚合成包后,每個(gè)包內(nèi)的動(dòng)態(tài)再按游戲聚合成子包;A > T > F 按游戲聚合成包后,每個(gè)包內(nèi)的動(dòng)態(tài)再按類型聚合成子包,子包內(nèi)的動(dòng)態(tài)在按用戶聚合成更小カ度的子包。約束條件模塊的語法可根據(jù)實(shí)際應(yīng)用場景自定義。根據(jù)上述系統(tǒng),本發(fā)明的實(shí)現(xiàn)信息聚合的方法,其流程圖如說明書附圖所示,具體步驟包括第一歩,載入信息聚合系統(tǒng)的語法描述配置(即關(guān)于上述集合模塊、優(yōu)先級(jí)模塊和約束條件模塊的語法描述)和待聚合的動(dòng)態(tài);第二步,獲取下一個(gè)動(dòng)態(tài),如果不成功(即所有動(dòng)態(tài)都遍歷完了),則根據(jù)動(dòng)態(tài)的層級(jí)結(jié)構(gòu)進(jìn)行深度優(yōu)先遍歷,編碼成前端可顯示的數(shù)據(jù)包(如XML格式)結(jié)構(gòu),完成聚合;獲取下ー個(gè)動(dòng)態(tài),如果成功,則按下述步驟進(jìn)行1)根據(jù)集合模塊中的語法描述,確定該動(dòng)態(tài)符合哪個(gè)模塊的語法描述;如有一條語法定義為集合是A1001T*,聚合優(yōu)先級(jí)是A>T ;那么所有應(yīng)用ID為1001的動(dòng)態(tài)都符合該語法,這些動(dòng)態(tài)都要先按應(yīng)用再按類型進(jìn)行兩級(jí)聚合;2)根據(jù)約束條件中的語法描述(如是否聚合、時(shí)間分段長度、顯示條目數(shù)、是否多好友聚合),找到該語法下對(duì)應(yīng)的數(shù)據(jù)包,如不存在,新建一個(gè)數(shù)據(jù)包;對(duì)于屬于同一集合的動(dòng)態(tài),約束條件可以導(dǎo)致其屬于不同的包,比如每兩個(gè)小時(shí)聚一次,那么間隔兩小時(shí)的以上的動(dòng)態(tài)會(huì)分屬于兩個(gè)包;再比如單用戶聚合要求不同用戶的動(dòng)態(tài)聚合到不同的包;3)如果是多級(jí)聚合吋,根據(jù)優(yōu)先級(jí)模塊中的語法描述(即根據(jù)屬性和聚合層級(jí)), 找到歸屬的子包,如不存在,新建ー個(gè)子包,記錄子包所屬父包,以維持層級(jí)結(jié)構(gòu);比如應(yīng)用 ID為1001類型為2的動(dòng)態(tài),按“A > T”優(yōu)先級(jí)聚合,那么所有應(yīng)用ID為1001類型為2的動(dòng)態(tài)形成ー個(gè)子包,其父包是所有應(yīng)用ID為1001的動(dòng)態(tài)數(shù)據(jù)包;4)當(dāng)找到最小聚合力度子包時(shí)(優(yōu)先級(jí)模塊中定義的所有屬性都相同的動(dòng)態(tài)形成最小力度子包),根據(jù)顯示條數(shù)目數(shù)和包內(nèi)已存在的條數(shù),決定把動(dòng)態(tài)加入包或只增加計(jì)數(shù)(當(dāng)動(dòng)態(tài)條數(shù)大于顯示條數(shù)時(shí)只增加計(jì)數(shù));第三歩,再進(jìn)行獲取下ー個(gè)動(dòng)態(tài),重復(fù)第二步的操作。本實(shí)施例可以把相似動(dòng)態(tài)比較多時(shí),只顯示最新的幾條,而且需要聚合在ー塊展
7J\ ο
權(quán)利要求
1.一種信息聚合系統(tǒng),其特征在干該系統(tǒng)包括集合模塊,用于描述需要聚合的動(dòng)態(tài)范圍,并根據(jù)該動(dòng)態(tài)范圍進(jìn)行信息聚合; 優(yōu)先級(jí)模塊,用于多級(jí)聚合時(shí),描述信息聚合的優(yōu)先級(jí),并根據(jù)優(yōu)先級(jí)進(jìn)行信息聚合; 約束條件模塊,用于描述不同的應(yīng)用場景,并根據(jù)應(yīng)用場景進(jìn)行信息聚合; 所述集合模塊、優(yōu)先級(jí)模塊、約束條件模塊,根據(jù)情況組合應(yīng)用完成信息聚合。
2.如權(quán)利要求1所述的信息聚合系統(tǒng),其特征在于所述約束條件模塊,在游戲社區(qū)中的應(yīng)用場景包括是否聚合、時(shí)間分段長度、顯示條目數(shù)、是否多好友聚合。
3.如權(quán)利要求1所述的信息聚合系統(tǒng),其特征在于所述集合模塊和優(yōu)先級(jí)模塊是通過屬性來描述,該屬性包含動(dòng)態(tài)屬性。
4.如權(quán)利要求3所述的信息聚合系統(tǒng),其特征在于所述動(dòng)態(tài)屬性包含1)產(chǎn)生動(dòng)態(tài)的游戲每個(gè)游戲有獨(dú)立的數(shù)字ID表示,用A表示該屬性名;2)動(dòng)態(tài)的類型每個(gè)游戲產(chǎn)生的動(dòng)態(tài)有不同類型,每種類型用數(shù)字ID表示,用T表示該屬性名;3)產(chǎn)生動(dòng)態(tài)的主體用戶用F表示該屬性名。
5.如權(quán)利要求4所述的信息聚合系統(tǒng),其特征在干所述集合模塊的語法描述為 A ? T ? , A ? T ?,…用“,”分割各個(gè)子集合,所有子集合的并集完整的表示ー個(gè)集合,其中,每個(gè)子集合的語法含義,A ?指定游戲ID;T 指定動(dòng)態(tài)類型ID; 優(yōu)先級(jí)模塊的語法描述為 ?或? > 或? > > 或? >…?“ ? ”用屬性名替換,有幾個(gè)?表示有幾個(gè)聚合層級(jí),左邊的屬性優(yōu)先級(jí)高于右邊的屬性;約束條件模塊的語法根據(jù)實(shí)際應(yīng)用場景自定義。
6.如權(quán)利要求5所述的信息聚合系統(tǒng),其特征在于所述集合模塊的語法描述,根據(jù)屬性擴(kuò)展為A ? T ? X ? Y ? , A ? T ? X ? Y ?,…其中,X、Y根據(jù)具體應(yīng)用添加。
7.如權(quán)利要求1-6任意一項(xiàng)所述的信息聚合系統(tǒng)的實(shí)現(xiàn)方法,包括步驟 第一歩,載入信息聚合系統(tǒng)的語法描述配置和待聚合的動(dòng)態(tài);第二歩,獲取下ー個(gè)動(dòng)態(tài),如果不成功,則根據(jù)動(dòng)態(tài)的層級(jí)結(jié)構(gòu)進(jìn)行深度優(yōu)先遍歷,編碼成前端可顯示的數(shù)據(jù)包結(jié)構(gòu),完成聚合;獲取下一個(gè)動(dòng)態(tài),如果成功,則按下述步驟進(jìn)行1)根據(jù)集合模塊中的語法描述,確定該動(dòng)態(tài)符合哪個(gè)模塊的語法描述;2)根據(jù)約束條件模塊中的語法描述,找到該語法描述下對(duì)應(yīng)的數(shù)據(jù)包,如不存在,新建一個(gè)數(shù)據(jù)包;3)如果是多級(jí)聚合吋,根據(jù)優(yōu)先級(jí)模塊中的語法描述,找到歸屬的子包,如不存在,新建一個(gè)子包;4)當(dāng)找到最小聚合力度子包吋,根據(jù)顯示條數(shù)目數(shù)和包內(nèi)已存在的條數(shù),決定把動(dòng)態(tài)加入包或只增加計(jì)數(shù);第三歩,再進(jìn)行獲取下ー個(gè)動(dòng)態(tài),重復(fù)第二步的操作。
8.如權(quán)利要求7所述的信息聚合系統(tǒng)的實(shí)現(xiàn)方法,其特征在干所述步驟3)中,對(duì)于子包,需要記錄子包所屬父包,以維持層級(jí)結(jié)構(gòu)。
全文摘要
本發(fā)明公開了一種信息聚合系統(tǒng)及其實(shí)現(xiàn)方法,該系統(tǒng)包括集合模塊、優(yōu)先級(jí)模塊、約束條件模塊,這3個(gè)模塊根據(jù)情況組合應(yīng)用完成信息聚合。該方法,包括步驟第一步,載入信息聚合系統(tǒng)的語法描述配置和待聚合的動(dòng)態(tài);第二步,獲取下一個(gè)動(dòng)態(tài)是否成功,進(jìn)行不同的步驟;第三步,再進(jìn)行獲取下一個(gè)動(dòng)態(tài),重復(fù)第二步的操作。利用本發(fā)明可以很方便地完成信息聚合,而且如果以后增加聚合需求,只需要配置語法描述就能達(dá)到目的,在開發(fā)上減少了的人力投入。
文檔編號(hào)G06F17/30GK102541846SQ20101057673
公開日2012年7月4日 申請(qǐng)日期2010年12月7日 優(yōu)先權(quán)日2010年12月7日
發(fā)明者童舟 申請(qǐng)人:盛樂信息技術(shù)(上海)有限公司