一種完全親緣關(guān)系信息庫遍歷完善方法
【專利摘要】本發(fā)明公開了一種完全親緣關(guān)系信息庫遍歷完善方法,經(jīng)過三遍遍歷過程,第一遍對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相互性推導(dǎo)并完善,第二遍對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相關(guān)性推導(dǎo)并完善,第三遍針對(duì)通用親緣關(guān)系信息子庫部分,首先確定要推導(dǎo)的具體親緣關(guān)系種類范圍和檢查規(guī)則,然后執(zhí)行遍歷完善過程,過程中按所確定的要推導(dǎo)的具體親緣關(guān)系種類范圍進(jìn)行關(guān)系推導(dǎo)并進(jìn)行完善以及按所確定的檢查規(guī)則進(jìn)行檢查處理,其中若屬于優(yōu)選親緣關(guān)系信息子庫部分可直接描述的應(yīng)按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,此時(shí)對(duì)于優(yōu)選親緣關(guān)系信息子庫部分中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟再次進(jìn)行完善。
【專利說明】 一種完全親緣關(guān)系信息庫遍歷完善方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)信息處理領(lǐng)域,尤其涉及一種完全親緣關(guān)系信息庫遍歷完善方法。
【背景技術(shù)】
[0002]發(fā)明專利申請(qǐng)一種通用親緣關(guān)系信息庫遍歷完善方法及一種非通用親緣關(guān)系信息庫遍歷完善方法,均不能獨(dú)立適應(yīng)于通用親緣關(guān)系信息庫和采用復(fù)用技術(shù)的親緣關(guān)系信息庫同時(shí)存在的完全親緣關(guān)系信息庫,運(yùn)用其中一種遍歷完善方法或簡單的將兩種遍歷完善方法結(jié)合在一起運(yùn)用,都難以較為充分的實(shí)現(xiàn)遍歷完善。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決完全親緣關(guān)系信息庫的遍歷完善問題,為解決上述問題,本發(fā)明的目的在于提供一種完全親緣關(guān)系信息庫遍歷完善方法,使存儲(chǔ)的親緣關(guān)系信息能夠得到足夠的分析處理以便能得到較好的存儲(chǔ)利用。
[0004]完全親緣關(guān)系信息庫包含通用親緣關(guān)系信息子庫和采用復(fù)用技術(shù)的優(yōu)選親緣關(guān)系信息子庫兩個(gè)部分,在遍歷優(yōu)化時(shí)可以分別考慮,但又必須注意到兩個(gè)子庫并不是割裂的,而是共同構(gòu)成一個(gè)整體的信息庫,因此,本發(fā)明提出的完全親緣關(guān)系信息庫遍歷完善方法,主要包括以下步驟:
第一遍遍歷過程:對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相互性推導(dǎo)并完善;首先處理優(yōu)選親緣關(guān)系信息子庫部分,而且進(jìn)行相互性推導(dǎo)在完全親緣關(guān)系信息庫對(duì)于通用親緣關(guān)系信息子庫意義不大,因?yàn)閮?yōu)選親緣關(guān)系信息子庫中存儲(chǔ)的一般是最重要的親緣關(guān)系,而通用親緣關(guān)系信息子庫的重要性則次之,且很多是不可直接描述的,第一遍遍歷過程具體包括以下步驟:
第I步:首先將親緣關(guān)系信息庫中所有記錄的所有屬性均標(biāo)記為未處理,這里標(biāo)記到屬性,在處理的過程中將經(jīng)過處理的屬性標(biāo)記為已處理,避免重復(fù)處理;
第4步:開始處理每一個(gè)記錄,先定位到親緣關(guān)系信息庫中第一個(gè)記錄,如果已經(jīng)到達(dá)信息庫末即信息庫中沒有任何則執(zhí)行第16步結(jié)束,否則執(zhí)行下步;
第7步:開始處理當(dāng)前記錄的每一個(gè)屬性,檢查該記錄第一個(gè)不為空且未處理的屬性,為空的或已處理的均不必進(jìn)行處理,如果沒有則執(zhí)行第14步,如果沒有說明當(dāng)前記錄能處理的已處理完畢或無法處理,這時(shí)應(yīng)繼續(xù)處理下一記錄;
第9步:進(jìn)行相互性推導(dǎo),根據(jù)親緣關(guān)系的相互性,如果對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性為空且未處理將對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性設(shè)置為指明本記錄的關(guān)系人本人的值并將兩個(gè)記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理;如果對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性已為指明本記錄的關(guān)系人本人的值則將兩個(gè)記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理即可;如果為其它值且該屬性描述的是可能超過2個(gè)關(guān)系人的同種相互親緣關(guān)系,如兄弟姐妹關(guān)系則一直追溯到對(duì)應(yīng)屬性為空或指明本記錄的關(guān)系人本人的值的鏈尾記錄,為空時(shí)將鏈尾記錄的對(duì)應(yīng)屬性改為指明本記錄的關(guān)系人本人的值否則無須設(shè)置對(duì)應(yīng)屬性值,并將此鏈上所有記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理;如果為其它值且該屬性描述的是僅為2個(gè)關(guān)系人的同種相互親緣關(guān)系,如生父、生母、配偶等親緣關(guān)系,這時(shí)就存在沖突,則按沖突規(guī)則處理并將兩個(gè)記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理;沖突規(guī)則一般按照以下原則進(jìn)行選擇最佳的,判斷最優(yōu)可以采用自動(dòng)判斷或人工判斷,其一般原則是,當(dāng)前的親緣關(guān)系信息的優(yōu)于非當(dāng)前的,法律效力高的親緣關(guān)系信息優(yōu)于效力低的,信息來源可靠的親緣關(guān)系信息優(yōu)于可靠性低的,可能正確的親緣關(guān)系信息優(yōu)于可能錯(cuò)誤的;當(dāng)對(duì)應(yīng)關(guān)系人記錄無對(duì)應(yīng)屬性時(shí),應(yīng)根據(jù)優(yōu)選策略確定是否調(diào)整復(fù)用方案,若調(diào)整為新的復(fù)用方案則需要設(shè)置包括對(duì)應(yīng)屬性在內(nèi)的所有受影響已有屬性,首先要將推導(dǎo)結(jié)果存儲(chǔ)到本復(fù)用方案的相應(yīng)屬性,其次要本復(fù)用方案的保留的原復(fù)用方案的信息復(fù)制過來,沒有保留的予以拋棄,如果沒有致數(shù)據(jù)復(fù)用方案的變化,則無需設(shè)置對(duì)應(yīng)屬性及進(jìn)行相關(guān)處理,但本屬性及對(duì)應(yīng)屬性(對(duì)應(yīng)屬性如無則不標(biāo)記)也需要標(biāo)記為已處理;
第12步:繼續(xù)處理該記錄下一個(gè)不為空且未處理的屬性,如果有執(zhí)行第9步,直至處理完該記錄所有不為空且未處理的屬性,如果沒有則執(zhí)行下步,繼續(xù)處理下一記錄;
第14步:定位到親緣關(guān)系信息庫中下一個(gè)記錄,按順序逐一進(jìn)行處理,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第16步結(jié)束,否則執(zhí)行第7步;
第16步:第一遍遍歷過程結(jié)束。
[0005]第二遍遍歷過程:對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相關(guān)性推導(dǎo)并完善;繼續(xù)對(duì)優(yōu)選親緣關(guān)系信息子庫部分進(jìn)行處理,進(jìn)行相關(guān)性推導(dǎo),與第一遍遍歷過程不同的是,這里會(huì)要用到通用親緣關(guān)系信息子庫部分存儲(chǔ)的信息,第二遍遍歷過程具體包括以下步驟:
第I步:將親緣關(guān)系信息庫中所有記錄均標(biāo)記為未處理,這里標(biāo)記到記錄,在處理的過程中將經(jīng)過處理的記錄標(biāo)記為已處理,避免重復(fù)處理;
第4步:開始處理每一個(gè)記錄,定位到親緣關(guān)系信息庫中第一個(gè)未處理的記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第16步結(jié)束,否則執(zhí)行下步;
第7步:檢索該記錄第一個(gè)為空的屬性,只處理這種未知的親緣關(guān)系信息,已知的則不管,如果沒有則執(zhí)行第14步,有則執(zhí)行下步;
第9步:如果根據(jù)親緣關(guān)系的相關(guān)性可以推導(dǎo)出此屬性所描述的親緣關(guān)系的兩個(gè)親緣關(guān)系均存在,確認(rèn)是不是存在必須要搜索兩個(gè)子庫,如果其中一個(gè)或兩個(gè)全部在通用親緣關(guān)系信息子庫部分也算是存在,即該為空屬性如果可進(jìn)行相關(guān)性推導(dǎo),則進(jìn)行相關(guān)性推導(dǎo)并按推導(dǎo)結(jié)果設(shè)置該屬性,必要時(shí)可能還要調(diào)整相關(guān)關(guān)系人記錄的相應(yīng)屬性,比如推導(dǎo)出甲和乙是兄弟姐妹關(guān)系時(shí),如果其中一個(gè)已經(jīng)具有相應(yīng)的親緣關(guān)系,則應(yīng)將另一該加入已存在兄弟姐妹鏈,如果推導(dǎo)出該屬性描述的是僅為2個(gè)關(guān)系人的同種相互親緣關(guān)系,如生父、生母、配偶等親緣關(guān)系,則要根據(jù)親緣關(guān)系的相互性設(shè)置對(duì)應(yīng)關(guān)系人記錄的相應(yīng)屬性值,具體處理方法參考第一遍遍歷過程的第9步,但無須標(biāo)記相關(guān)屬性為已處理,最后將當(dāng)前記錄外的所有受影響的關(guān)系人記錄標(biāo)記為未處理,在僅為2個(gè)關(guān)系人的同種相互親緣關(guān)系情況下是根據(jù)親緣關(guān)系的相互性將對(duì)應(yīng)的關(guān)系人標(biāo)記為未處理,在兄弟姐妹關(guān)系等可能超過2個(gè)關(guān)系人的同種相互親緣關(guān)系的情況下,要將此關(guān)系鏈中所有其它記錄均標(biāo)記為未處理,然后執(zhí)行下步,若無法根據(jù)相關(guān)性推導(dǎo)來推導(dǎo)出本屬性則直接執(zhí)行下步;
第12步:檢查該記錄下一個(gè)為空的屬性,逐一處理為空的屬性,如果沒有則執(zhí)行第14步,有則執(zhí)行第9步;
第14步:將本記錄標(biāo)記為已處理,已處理完的記錄,不過其為空屬性是否可以推導(dǎo)均不影響要將本記錄標(biāo)記為已處理,然后執(zhí)行第4步,處理信息庫中剩下的未處理的記錄中第一個(gè)未處理的,此記錄可能是曾經(jīng)已處理但由于第9步中受影響又被標(biāo)記為未處理的記錄;
第16步:第二遍遍歷過程結(jié)束。
[0006]第三遍遍歷過程:針對(duì)通用親緣關(guān)系信息子庫部分,首先確定要推導(dǎo)的具體親緣關(guān)系種類范圍和檢查規(guī)則,由于通用親緣關(guān)系信息庫中存儲(chǔ)的具體親緣關(guān)系種類不受限制,如果對(duì)于推導(dǎo)結(jié)果也不做限制的話,那么其推導(dǎo)結(jié)果集將可能很大,而且對(duì)于提高分析檢索效率也沒有什么作用,因此應(yīng)當(dāng)限定為有利于提高分析檢索效率的具體親緣關(guān)系種類,一般應(yīng)為兩人之間最直接的親緣關(guān)系,即關(guān)系路徑長度為I的那些具體親緣關(guān)系種類,由于通用親緣關(guān)系信息庫的分析檢索有時(shí)不采取類似于指針的技術(shù),為了分析檢索更加快捷,有時(shí)也可將某些關(guān)系路徑長度為2的那些具體親緣關(guān)系種類等也納入要推導(dǎo)的具體親緣關(guān)系種類范圍;檢查規(guī)則主要包括消除數(shù)據(jù)沖突和數(shù)據(jù)冗余的規(guī)則,為了不至于在檢查方面耗費(fèi)過多,一般來說只有比較明顯的數(shù)據(jù)沖突和不必要的數(shù)據(jù)冗余才消除,比較明顯的數(shù)據(jù)沖突如不符合親緣關(guān)系的相互性的數(shù)據(jù),一個(gè)親緣關(guān)系信息甲是乙的父親和另一個(gè)親緣關(guān)系信息乙是丙(男性)的兒子就是不符合親緣關(guān)系的相互性的數(shù)據(jù),不必要的數(shù)據(jù)冗余包括完全相同的兩條信息、互為相互反向的等價(jià)的兩條信息以及可以由其它兩條或以上信息直接拼接而成的信息等,當(dāng)然也可以根據(jù)需要確定更為嚴(yán)格或更為寬松的檢查規(guī)則;此處假設(shè)不做任何檢查,不對(duì)任何數(shù)據(jù)沖突和數(shù)據(jù)冗余進(jìn)行檢查和處理;
然后執(zhí)行遍歷完善過程,過程中按第一步所確定的要推導(dǎo)的具體親緣關(guān)系種類范圍進(jìn)行關(guān)系推導(dǎo)并進(jìn)行完善以及按第一步所確定的檢查規(guī)則進(jìn)行檢查處理。主要流程是對(duì)信息庫中每一個(gè)記錄與其它記錄一一進(jìn)行關(guān)系推導(dǎo),關(guān)系推導(dǎo)包括兩種,通過確定未知關(guān)系人來推導(dǎo)親緣關(guān)系和通過確定未知關(guān)系種類來推導(dǎo)親緣關(guān)系,從已有的信息中推導(dǎo)出常見的但尚未明知的信息,從而有利于更好的分析檢索。為了實(shí)現(xiàn)遍歷,這里用了兩個(gè)定位器,第一個(gè)定位器用于定位在遍歷信息庫時(shí)當(dāng)前訪問的記錄,第二個(gè)定位器用于定位配合進(jìn)行推導(dǎo)的記錄,由于第一步已確定不做任何檢查,所以不包括任何對(duì)任何數(shù)據(jù)沖突和數(shù)據(jù)冗余進(jìn)行檢查和處理的步驟,如果在第一步中加入相關(guān)的檢查規(guī)則,可參照發(fā)明專利申請(qǐng)一種通用親緣關(guān)系信息庫遍歷完善方法增加和/或修改有關(guān)的步驟,這里不再敘述;由于完全親緣關(guān)系信息庫的數(shù)據(jù)存放在兩個(gè)子庫中,上述步驟均只對(duì)通用親緣關(guān)系信息子庫部分做了分析處理,因此要增加一個(gè)步驟結(jié)合優(yōu)選親緣關(guān)系信息子庫部分進(jìn)行處理,這里該步驟只用于通過優(yōu)選親緣關(guān)系信息子庫信息對(duì)通用親緣關(guān)系信息子庫信息進(jìn)行優(yōu)化;上述過程中若推導(dǎo)出屬于優(yōu)選親緣關(guān)系信息子庫部分可直接描述的親緣關(guān)系信息應(yīng)按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,此時(shí)對(duì)于優(yōu)選親緣關(guān)系信息子庫部分中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟對(duì)受影響的記錄再次進(jìn)行完善;第三遍遍歷過程具體包括以下步驟:
第I步:第一個(gè)定位器定位到信息庫中第一個(gè)記錄(外循環(huán)置初值),如果已經(jīng)到達(dá)信息庫末則執(zhí)行第25步結(jié)束,否則執(zhí)行下步;
第2步:根據(jù)該記錄的關(guān)系路徑,從兩端出發(fā)在優(yōu)選親緣關(guān)系信息子庫部分查找可以唯一匹配的親緣關(guān)系信息,如果關(guān)系路徑可以全部唯一匹配,則刪除該記錄后執(zhí)行第22步,如果僅剩一個(gè)親緣關(guān)系未匹配則推導(dǎo)出該親緣關(guān)系,且將該親緣關(guān)系按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,并有可能要將置換出來的可直接描述的親緣關(guān)系存儲(chǔ)到通用親緣關(guān)系信息子庫部分尾部,如果存儲(chǔ)成功則刪除該記錄后執(zhí)行第22步,如果存儲(chǔ)不成功則刪除該記錄并將推導(dǎo)出的親緣關(guān)系存儲(chǔ)到通用親緣關(guān)系信息子庫部分尾部后執(zhí)行第22步,如果剩余兩個(gè)或以上親緣關(guān)系未匹配則未匹配部分可構(gòu)成一個(gè)比原記錄更精簡的不可直接描述的親緣關(guān)系并替換原通用親緣關(guān)系信息子庫部分中的原記錄,然后執(zhí)行下步,如果不能進(jìn)行任何唯一匹配,則直接執(zhí)行下步;
第3步:第二個(gè)定位器定位到第一個(gè)定位器定位當(dāng)前記錄的后一記錄(內(nèi)循環(huán)置初值),如果已經(jīng)到達(dá)信息庫末則執(zhí)行第25步結(jié)束,否則執(zhí)行第8步(即開始執(zhí)行循環(huán)體);
第8步:判斷兩個(gè)定位器定位的記錄是否可以唯一匹配部分關(guān)系路徑,用關(guān)系路徑長度短的去匹配長的,如果長度相等則執(zhí)行第11步,也可繼續(xù)進(jìn)行匹配但肯定是不能唯一匹配;假如第二個(gè)定位器定位的記錄所描述的親緣關(guān)系關(guān)系路徑短,則看該記錄是否可以唯一匹配第一個(gè)定位器定位的記錄所描述的親緣關(guān)系的部分關(guān)系路徑,如果可以唯一匹配,按通過確定未知關(guān)系人來推導(dǎo)親緣關(guān)系方法進(jìn)行關(guān)系推導(dǎo)(結(jié)果集是第一步限定的,不在結(jié)果集的推導(dǎo)結(jié)果均屬不可推導(dǎo)的范圍,相關(guān)的推導(dǎo)規(guī)則中可只有推導(dǎo)結(jié)果屬于第一步確定的推導(dǎo)的具體親緣關(guān)系種類范圍的規(guī)則),上述過程可統(tǒng)稱為通過確定未知關(guān)系人來推導(dǎo)親緣關(guān)系的過程;如果不可推導(dǎo),那么執(zhí)行第11步;若推導(dǎo)出另一組可直接描述或不可直接描述的兩人之間親緣關(guān)系信息,執(zhí)行第14步進(jìn)行處理;
第11步:判斷第二個(gè)定位器定位的記錄所描述的親緣關(guān)系是否可以擬合第一個(gè)定位器定位的記錄所描述的親緣關(guān)系的部分關(guān)系路徑,如果可以部分?jǐn)M合,按通過確定未知關(guān)系種類來推導(dǎo)親緣關(guān)系方法進(jìn)行關(guān)系推導(dǎo),上述過程可統(tǒng)稱為通過確定未知關(guān)系種類來推導(dǎo)親緣關(guān)系的過程;如果不可推導(dǎo),那么執(zhí)行第20步;若推導(dǎo)出另一組可直接描述或不可直接描述的兩人之間親緣關(guān)系信息,執(zhí)行第14步進(jìn)行處理;
第14步:將推導(dǎo)結(jié)果插入信息庫末,完成推導(dǎo)結(jié)果的入庫工作,然后執(zhí)行第20步;
第20步:將第二個(gè)定位器定位到原定位記錄的下一記錄(內(nèi)循環(huán)下移一條記錄),如果已經(jīng)到達(dá)信息庫末則執(zhí)行第22步(內(nèi)循環(huán)全部結(jié)束),否則執(zhí)行第5步;
第22步:將第一個(gè)定位器定位到原定位記錄的下一記錄(外循環(huán)下移一條記錄),如果已經(jīng)到達(dá)信息庫末則執(zhí)行第25步結(jié)束(外循環(huán)全部結(jié)束),否則執(zhí)行第3步;
第25步:整個(gè)遍歷完善的過程結(jié)束。
[0007]上述第三遍遍歷過程中如果有通過關(guān)系推導(dǎo)推導(dǎo)出的親緣關(guān)系信息要存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,此時(shí)對(duì)于優(yōu)選親緣關(guān)系信息子庫部分中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟再次進(jìn)行完善,其特征在于:
第一步:從受影響的記錄的新插入屬性出發(fā),進(jìn)行相互性推導(dǎo),如果對(duì)應(yīng)關(guān)系人記錄有對(duì)應(yīng)屬性,且屬性為空則將對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性設(shè)置為指明本記錄的關(guān)系人本人的值;如果對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性已為指明本記錄的關(guān)系人本人的值則無須處理;如果為其它值且該屬性描述的是可能超過2個(gè)關(guān)系人的同種相互親緣關(guān)系,則一直追溯到對(duì)應(yīng)屬性為空或指明本記錄的關(guān)系人本人的值的鏈尾記錄,為空時(shí)將鏈尾記錄的對(duì)應(yīng)屬性改為指明本記錄的關(guān)系人本人的值否則無須設(shè)置對(duì)應(yīng)屬性值;如果為其它值且該屬性描述的是僅為2個(gè)關(guān)系人的同種相互親緣關(guān)系,則按沖突規(guī)則處理;當(dāng)對(duì)應(yīng)關(guān)系人記錄無對(duì)應(yīng)屬性時(shí),應(yīng)根據(jù)優(yōu)選策略確定是否調(diào)整復(fù)用方案,若調(diào)整為新的復(fù)用方案則需要設(shè)置包括對(duì)應(yīng)屬性在內(nèi)的所有受影響已有屬性,如果沒有致數(shù)據(jù)復(fù)用方案的變化,則無需設(shè)置對(duì)應(yīng)屬性及進(jìn)行相關(guān)處理;因?yàn)橄嗷バ酝茖?dǎo)影響的新的記錄與本記錄是成對(duì)或成組的固定搭配,不會(huì)影響其它的記錄,因此處理到此為止;
第二步:從受影響的記錄開始,檢索該記錄第一個(gè)為空的屬性,如果該為空屬性可進(jìn)行相關(guān)性推導(dǎo),則進(jìn)行相關(guān)性推導(dǎo)并按推導(dǎo)結(jié)果設(shè)置該屬性,必要時(shí)可能還要調(diào)整相關(guān)關(guān)系人記錄的相應(yīng)屬性,或者根據(jù)親緣關(guān)系的相互性參照第一步設(shè)置對(duì)應(yīng)關(guān)系人記錄的相應(yīng)屬性值,并將當(dāng)前處理記錄外的所有受影響的關(guān)系人記錄均加入第二步處理隊(duì)列;繼續(xù)檢索該記錄下一個(gè)為空的屬性,并按上面步驟進(jìn)行處理直至本記錄處理完畢;繼續(xù)按上面步驟處理第二步處理隊(duì)列的記錄直至隊(duì)列里的記錄全部處理完畢;因?yàn)橄嚓P(guān)性推導(dǎo)影響的新的記錄是不可預(yù)期的,且這種影響對(duì)于受影響的新的記錄的相關(guān)性推導(dǎo)會(huì)帶來新的條件,因此必須處理所有受到影響的記錄。
【專利附圖】
【附圖說明】
[0008]圖1圖1為完全親緣關(guān)系信息庫遍歷完善方法示意圖;
圖2為第一遍遍歷完善過程流程圖;
圖3為第二遍遍歷完善過程流程圖;
圖4為第三遍遍歷完善過程流程圖;
圖5為第三遍遍歷完善過程中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟再次進(jìn)行完善示意圖;
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明。
【具體實(shí)施方式】
[0009]實(shí)施例1
假設(shè)有在戶籍管理系統(tǒng)中某個(gè)家庭有8個(gè)人V0、V1、V2、V3、V4、V5、V6、V7,戶主為V2,VO的“與戶主關(guān)系”的當(dāng)前值為“妻”,Vl的“與戶主關(guān)系”的當(dāng)前值為“妻兄”,V3的“與戶主關(guān)系”的當(dāng)前值為“兒子”,V4的“與戶主關(guān)系”的當(dāng)前值為“岳父”,V5的“與戶主關(guān)系”的當(dāng)前值為“岳母”,V6的“與戶主關(guān)系”的當(dāng)前值為“養(yǎng)母”,V7的“與戶主關(guān)系”的當(dāng)前值為“養(yǎng)父”。先要從上述已知親緣關(guān)系信息中提取可直接描述的兩人之間親緣關(guān)系信息,為了敘述方便這里采用三元組來描述提取的親緣關(guān)系信息,三元組(a,b,r)表示b是a的具有r親緣關(guān)系的關(guān)系人,如(甲,乙,兒子)表示乙是甲具有兒子關(guān)系的人,即乙是甲的兒子。同時(shí)為簡化起見,只列出V0、V1、V2、V3所有的可提取的親緣關(guān)系信息,V4、V5、V6、V7的親緣關(guān)系均不提取。從已知的上述親緣關(guān)系信息中可以提取到以下可直接描述的兩人之間親緣關(guān)系信息,用三元組表示如下:
(V2, V0,配偶)、(V2,V3,子女)、(V2,V6,養(yǎng)母)、(V2,V7,養(yǎng)父);
(VO, V2,配偶)、(V0,V3,子女)、(V0,VI,同父兄弟姐妹)、(V0,VI,同母兄弟姐妹)、(VO, V5,生母)、(V0,V4,生父);
(VI, V0,同父兄弟姐妹)、(V1,V0,同母兄弟姐妹)、(V1,V5,生母)、(V1,V4,生父);(V3, VO,生母)、(V3,V2,生父);
及以下不可描述的兩人之間親緣關(guān)系信息,用三元組表示如下:
(V2, VI,妻兄)、(V2,V4,岳父)、(V2,V5,岳母);
接下來創(chuàng)建相應(yīng)的屬性復(fù)用親緣關(guān)系結(jié)點(diǎn)來存儲(chǔ)表示上述關(guān)系人的可直接描述的兩人之間親緣關(guān)系信息,屬性復(fù)用方案I為各屬性固定對(duì)應(yīng)血親關(guān)系結(jié)點(diǎn)相應(yīng)屬性,其代碼值為1,屬性復(fù)用方案2為在其余屬性固定對(duì)應(yīng)血親關(guān)系結(jié)點(diǎn)相應(yīng)屬性的基礎(chǔ)上FATHER、MOTHER復(fù)用為養(yǎng)父、養(yǎng)母,其代碼值為2,那么上述提取的可直接描述的親緣關(guān)系信息可以創(chuàng)建相應(yīng)的8個(gè)屬性復(fù)用親緣關(guān)系結(jié)點(diǎn)E0、EU E2、E3、E4、E5、E6、E7,這里采用結(jié)構(gòu)化內(nèi)存變量的實(shí)現(xiàn)形式,為簡化表示用一個(gè)七元組(ID,F(xiàn)ATHER, MOTHER, NEXTBROTHER_F,NEXTBROTHER_M, ACHILD, MARRYED, TAG)表示屬性復(fù)用親緣關(guān)系結(jié)點(diǎn),其中的屬性值用V0、V1、V2、V3、V4、V5、V6、V7代表相應(yīng)的身份證號(hào)、NULL表示相應(yīng)的親緣關(guān)系未知,經(jīng)過設(shè)置后此8個(gè)關(guān)系人的屬性復(fù)用親緣關(guān)系結(jié)點(diǎn)為:
EO:(V0, V4, V5, VI, VI, V3, V2, I)
El: (VI, V4, V5, VO, VO, NULL, NULL, I)
E2:(V2, V7, V6, NULL, NULL, V3, VO, 2)
E3:(V3, V2, VI, NULL, NULL, NULL, NULL, I)
E4:(V4, NULL, NULL, NULL, NULL, NULL, NULL, I)
E5:(V5, NULL, NULL, NULL, NULL, NULL, NULL, I)
E6:(V6, NULL, NULL, NULL, NULL, NULL, NULL, I)
E7:(V7, NULL, NULL, NULL, NULL, NULL, NULL, I)
將上述信息存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分。
[0010]接下來創(chuàng)建相應(yīng)的通用親緣關(guān)系結(jié)點(diǎn)來存儲(chǔ)表示上述不可直接描述的兩人之間親緣關(guān)系信息,最簡單的親緣關(guān)系結(jié)點(diǎn)應(yīng)有三個(gè)屬性,其中兩個(gè)屬性表示雙方關(guān)系人并要明確其序位,一個(gè)屬性表示具體親緣關(guān)系種類,這里分別用P1、P2、R三個(gè)屬性來表示(參見圖4),并明確P1、P2的序位,即該結(jié)點(diǎn)要表示的親緣關(guān)系信息是P2是Pl的具有R親緣關(guān)系的關(guān)系人。那么上述3條規(guī)范的兩人之間親緣關(guān)系信息可以創(chuàng)建相應(yīng)三個(gè)通用親緣關(guān)系結(jié)點(diǎn) E'1、E'2、E'3,其中:
E' 1.Pl=V2、E'l.P2=Vl、E'l.R=妻兄 E'2.Pl= V2、E'2.P2= V4、E'2.R=岳父 Ε'3.Pl= V2、E'3.Ρ2= V5、E'3.R=岳母 將上述信息存儲(chǔ)到通用親緣關(guān)系信息子庫部分。
[0011 ] 信息庫構(gòu)建完畢后,然后根據(jù)本方法經(jīng)過三遍遍歷過程對(duì)信息庫進(jìn)行完善:
第一遍遍歷過程:對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相互性推導(dǎo)并完善;在此過程中,在處理EO記錄時(shí),其親緣關(guān)系信息(V0,V2,配偶)、(V0,V3,子女)、(V0,VI,同父兄弟姐妹)、(V0,VI,同母兄弟姐妹)根據(jù)相互反向的親緣關(guān)系信息均已存在,所以均標(biāo)記為已處理即可,但處理到親緣關(guān)系(V0,V5,生母)、(V0,V4,生父)時(shí),根據(jù)親緣關(guān)系的相互性可以推導(dǎo)出(V5,V0,子女)、(V4,VO,子女),且對(duì)應(yīng)的E4、E5的對(duì)應(yīng)屬性均為空,因此按照推導(dǎo)出的結(jié)果進(jìn)行設(shè)置,然后均設(shè)置為已處理;第一遍遍歷過程其它的處理過程略;
第二遍遍歷過程:對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相關(guān)性推導(dǎo)并完善;在處理EO時(shí)由于EO沒有為空屬性,所以接下來處理El直至E7,由于本例中親緣關(guān)系信息較少,第二遍遍歷過程沒有推導(dǎo)出任何新的親緣關(guān)系所以沒有設(shè)置動(dòng)作;
第三遍遍歷過程:針對(duì)通用親緣關(guān)系信息子庫部分,首先確定要推導(dǎo)的具體親緣關(guān)系種類范圍和檢查規(guī)則,然后執(zhí)行遍歷完善過程,過程中按所確定的要推導(dǎo)的具體親緣關(guān)系種類范圍進(jìn)行關(guān)系推導(dǎo)并進(jìn)行完善以及按所確定的檢查規(guī)則進(jìn)行檢查處理,其中若屬于優(yōu)選親緣關(guān)系信息子庫部分可直接描述的應(yīng)按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,此時(shí)對(duì)于優(yōu)選親緣關(guān)系信息子庫部分中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟再次進(jìn)行完善;先處理E'1,可以從優(yōu)選親緣關(guān)系信息子庫找到關(guān)系路徑上的兩個(gè)親緣關(guān)系并進(jìn)行唯一匹配,所以可以刪除E'1,E'2和E'3也同樣如此,均在處理中被刪除。
【權(quán)利要求】
1.一種完全親緣關(guān)系信息庫遍歷完善方法,其特征在于包括以下步驟: 第一遍遍歷過程:對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相互性推導(dǎo)并完善; 第二遍遍歷過程:對(duì)優(yōu)選親緣關(guān)系信息子庫部分逐一進(jìn)行相關(guān)性推導(dǎo)并完善; 第三遍遍歷過程:針對(duì)通用親緣關(guān)系信息子庫部分,首先確定要推導(dǎo)的具體親緣關(guān)系種類范圍和檢查規(guī)則,然后執(zhí)行遍歷完善過程,過程中按所確定的要推導(dǎo)的具體親緣關(guān)系種類范圍進(jìn)行關(guān)系推導(dǎo)并進(jìn)行完善以及按所確定的檢查規(guī)則進(jìn)行檢查處理,其中若屬于優(yōu)選親緣關(guān)系信息子庫部分可直接描述的應(yīng)按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,此時(shí)對(duì)于優(yōu)選親緣關(guān)系信息子庫部分中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟再次進(jìn)行完善。
2.權(quán)利要求1所述的一種完全親緣關(guān)系信息庫遍歷完善方法中的根據(jù)親緣關(guān)系的相互性進(jìn)行關(guān)系推導(dǎo)來實(shí)現(xiàn)的第一遍遍歷過程,其特征在于包括以下步驟: 第I步:將優(yōu)選親緣關(guān)系信息子庫部分中所有記錄的所有屬性均標(biāo)記為未處理; 第4步:定位到優(yōu)選親緣關(guān)系信息子庫部分中的第一個(gè)記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第16步結(jié)束,否則執(zhí)行下步; 第7步:檢查該記錄第一個(gè)不為空且未處理的屬性,如果沒有則執(zhí)行第14步,否則執(zhí)行下步; 第9步:進(jìn)行相互性推導(dǎo),如果對(duì)應(yīng)關(guān)系人記錄有對(duì)應(yīng)屬性,且屬性為空且未處理將對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性設(shè)置為指明本記錄的關(guān)系人本人的值并將兩個(gè)記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理;如果對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性已為指明本記錄的關(guān)系人本人的值則將兩個(gè)記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理即可;如果為其它值且該屬性描述的是可能超過2個(gè)關(guān)系人的同種相互親緣關(guān)系,則一直追溯到對(duì)應(yīng)屬性為空或指明本記錄的關(guān)系人本人的值的鏈尾記錄,為空時(shí)將鏈尾記錄的對(duì)應(yīng)屬性改為指明本記錄的關(guān)系人本人的值否則無須設(shè)置對(duì)應(yīng)屬性值,并將此鏈上所有記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理;如果為其它值且該屬性描述的是僅為2個(gè)關(guān)系人的同種相互親緣關(guān)系,則按沖突規(guī)則處理并將兩個(gè)記錄的對(duì)應(yīng)屬性均標(biāo)記為已處理;當(dāng)對(duì)應(yīng)關(guān)系人記錄無對(duì)應(yīng)屬性時(shí),應(yīng)根據(jù)優(yōu)選策略確定是否調(diào)整復(fù)用方案,若調(diào)整為新的復(fù)用方案則需要設(shè)置包括對(duì)應(yīng)屬性在內(nèi)的所有受影響已有屬性,如果沒有致數(shù)據(jù)復(fù)用方案的變化,則無需設(shè)置對(duì)應(yīng)屬性及進(jìn)行相關(guān)處理,但本屬性及對(duì)應(yīng)屬性(對(duì)應(yīng)屬性如無則不標(biāo)記)也需要標(biāo)記為已處理; 第12步:處理該記錄下一個(gè)不為空且未處理的表示兩人之間親緣關(guān)系屬性,如果有執(zhí)行第9步,如果沒有則執(zhí)行下步; 第14步:定位到優(yōu)選親緣關(guān)系信息子庫部分中的下一個(gè)記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第16步結(jié)束,否則執(zhí)行第7步; 第16步:第一遍遍歷過程結(jié)束。
3.權(quán)利要求1所述的一種完全親緣關(guān)系信息庫遍歷完善方法中的根據(jù)親緣關(guān)系的相關(guān)性進(jìn)行關(guān)系推導(dǎo)來實(shí)現(xiàn)第二遍遍歷過程,其特征在于包括以下步驟: 第I步:將優(yōu)選親緣關(guān)系信息子庫部分中所有記錄均標(biāo)記為未處理; 第4步:定位到優(yōu)選親緣關(guān)系信息子庫部分中的第一個(gè)未處理的記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第16步結(jié)束,否則執(zhí)行下步; 第7步:檢索該記錄第一個(gè)為空的屬性,如果沒有則執(zhí)行第14步,有則執(zhí)行下步;第9步:該為空屬性如果可進(jìn)行相關(guān)性推導(dǎo),則進(jìn)行相關(guān)性推導(dǎo)并按推導(dǎo)結(jié)果設(shè)置該屬性,必要時(shí)可能還要調(diào)整相關(guān)關(guān)系人記錄的相應(yīng)屬性,或者根據(jù)親緣關(guān)系的相互性設(shè)置對(duì)應(yīng)關(guān)系人記錄的相應(yīng)屬性值,最后將當(dāng)前記錄外的所有受影響的關(guān)系人記錄均標(biāo)記為未處理,然后執(zhí)行下步,若無法根據(jù)相關(guān)性推導(dǎo)來推導(dǎo)出本屬性則直接執(zhí)行下步; 第12步:檢查該記錄下一個(gè)為空的屬性,如果沒有則執(zhí)行第14步,有則執(zhí)行第9步; 第14步:將本記錄標(biāo)記為已處理,然后執(zhí)行第4步; 第16步:第二遍遍歷過程結(jié)束。
4.權(quán)利要求1所述的一種完全親緣關(guān)系信息庫遍歷完善方法中的根據(jù)親緣關(guān)系的相關(guān)性進(jìn)行關(guān)系推導(dǎo)來實(shí)現(xiàn)第三遍遍歷過程,其特征在于包括以下步驟: 第一步:確定要推導(dǎo)的具體親緣關(guān)系種類范圍和檢查規(guī)則; 第二步:針對(duì)通用親緣關(guān)系信息子庫部分執(zhí)行遍歷完善過程,過程中按第一步所確定的要推導(dǎo)的具體親緣關(guān)系種類范圍進(jìn)行關(guān)系推導(dǎo)并進(jìn)行完善以及按第一步所確定的檢查規(guī)則進(jìn)行檢查處理,在沒有設(shè)置檢查規(guī)則的情況下具體包括以下步驟: 第I步:第一個(gè)定位器定位到通用親緣關(guān)系信息子庫部分中的第一個(gè)記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第25步結(jié)束,否則執(zhí)行下步; 第2步:根據(jù)該記錄的關(guān) 系路徑,從兩端出發(fā)在優(yōu)選親緣關(guān)系信息子庫部分查找可以唯一匹配的親緣關(guān)系信息,如果關(guān)系路徑可以全部唯一匹配,則刪除該記錄后執(zhí)行第22步,如果僅剩一個(gè)親緣關(guān)系未匹配則推導(dǎo)出該親緣關(guān)系,且將該親緣關(guān)系按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,并有可能要將置換出來的可直接描述的親緣關(guān)系存儲(chǔ)到通用親緣關(guān)系信息子庫部分尾部,如果存儲(chǔ)成功則刪除該記錄后執(zhí)行第22步,如果存儲(chǔ)不成功則刪除該記錄并將推導(dǎo)出的親緣關(guān)系存儲(chǔ)到通用親緣關(guān)系信息子庫部分尾部后執(zhí)行第22步,如果剩余兩個(gè)或以上親緣關(guān)系未匹配則未匹配部分可構(gòu)成一個(gè)比原記錄更精簡的不可直接描述的親緣關(guān)系并替換原通用親緣關(guān)系信息子庫部分中的原記錄,然后執(zhí)行下步,如果不能進(jìn)行任何唯一匹配,則直接執(zhí)行下步; 第3步:第二個(gè)定位器定位到第一個(gè)定位器定位當(dāng)前記錄的后一記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第25步結(jié)束,否則執(zhí)行第8步; 第8步:執(zhí)行通過確定未知關(guān)系人來推導(dǎo)親緣關(guān)系的過程,如果不可推導(dǎo),那么執(zhí)行第11步;若推導(dǎo)出另一組可直接描述或不可直接描述的兩人之間親緣關(guān)系信息,執(zhí)行第14步進(jìn)行處理; 第11步:執(zhí)行通過確定未知關(guān)系種類來推導(dǎo)親緣關(guān)系的過程,如果不可推導(dǎo),那么執(zhí)行第20步;若推導(dǎo)出另一組可直接描述或不可直接描述的兩人之間親緣關(guān)系信息,執(zhí)行第14步進(jìn)行處理; 第14步:若推導(dǎo)結(jié)果是可直接描述的親緣關(guān)系,則將該親緣關(guān)系按照優(yōu)選策略盡量存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,并有可能要將置換出來的可直接描述的親緣關(guān)系存儲(chǔ)到通用親緣關(guān)系信息子庫部分尾部;否則將推導(dǎo)結(jié)果插入信息庫末,完成推導(dǎo)結(jié)果的入庫工作,然后執(zhí)行第20步; 第20步:將第二個(gè)定位器定位到原定位記錄的下一記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第22步,否則執(zhí)行第5步; 第22步:將第一個(gè)定位器定位到原定位記錄的下一記錄,如果已經(jīng)到達(dá)信息庫末則執(zhí)行第25步結(jié)束,否則執(zhí)行第3步; 第25步:整個(gè)遍歷完善的過程結(jié)束。
5.權(quán)利要求4所述的第三遍遍歷過程中如果有通過關(guān)系推導(dǎo)的親緣關(guān)系存儲(chǔ)到優(yōu)選親緣關(guān)系信息子庫部分,此時(shí)對(duì)于優(yōu)選親緣關(guān)系信息子庫部分中受影響的記錄參照第一遍遍歷過程和第二遍遍歷過程有關(guān)步驟再次進(jìn)行完善,其特征在于: 第一步:從受影響的記錄的新插入屬性出發(fā),進(jìn)行相互性推導(dǎo),如果對(duì)應(yīng)關(guān)系人記錄有對(duì)應(yīng)屬性,且屬性為空則將對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性設(shè)置為指明本記錄的關(guān)系人本人的值;如果對(duì)應(yīng)關(guān)系人記錄的對(duì)應(yīng)屬性已為指明本記錄的關(guān)系人本人的值則無須處理;如果為其它值且該屬性描述的是可能超過2個(gè)關(guān)系人的同種相互親緣關(guān)系,則一直追溯到對(duì)應(yīng)屬性為空或指明本記錄的關(guān)系人本人的值的鏈尾記錄,為空時(shí)將鏈尾記錄的對(duì)應(yīng)屬性改為指明本記錄的關(guān)系人本人的值否則無須設(shè)置對(duì)應(yīng)屬性值;如果為其它值且該屬性描述的是僅為2個(gè)關(guān)系人的同種相互親緣關(guān)系,則按沖突規(guī)則處理;當(dāng)對(duì)應(yīng)關(guān)系人記錄無對(duì)應(yīng)屬性時(shí),應(yīng)根據(jù)優(yōu)選策略確定是否調(diào)整復(fù)用方案,若調(diào)整為新的復(fù)用方案則需要設(shè)置包括對(duì)應(yīng)屬性在內(nèi)的所有受影響已有屬性,如果沒有致數(shù)據(jù)復(fù)用方案的變化,則無需設(shè)置對(duì)應(yīng)屬性及進(jìn)行相關(guān)處理; 第二步:從受影響的記錄開始,檢索該記錄第一個(gè)為空的屬性,如果該為空屬性可進(jìn)行相關(guān)性推導(dǎo),則進(jìn)行相關(guān)性推導(dǎo)并按推導(dǎo)結(jié)果設(shè)置該屬性,必要時(shí)可能還要調(diào)整相關(guān)關(guān)系人記錄的相應(yīng)屬性,或者根據(jù)親緣關(guān)系的相互性參照第一步設(shè)置對(duì)應(yīng)關(guān)系人記錄的相應(yīng)屬性值,并將當(dāng)前處理記錄外的所有受影響的關(guān)系人記錄均加入第二步處理隊(duì)列;繼續(xù)檢索該記錄下一個(gè)為空的屬性,并按上面步驟進(jìn)行處理直至本記錄處理完畢;繼續(xù)按上面步驟處理第二步 處理隊(duì)列的記錄直至隊(duì)列里的記錄全部處理完畢。
【文檔編號(hào)】G06F17/30GK103544239SQ201310459004
【公開日】2014年1月29日 申請(qǐng)日期:2013年10月7日 優(yōu)先權(quán)日:2013年10月7日
【發(fā)明者】倪龍 申請(qǐng)人:寧波芝立軟件有限公司