当前位置: 首页 > 专利查询>武汉大学专利>正文

一种并行处理的大型族谱世系图的生成方法及装置制造方法及图纸

技术编号:21833162 阅读:79 留言:0更新日期:2019-08-10 18:11
本发明专利技术公开了一种并行处理的大型族谱世系图的生成方法及装置,其中的方法首先从数据库中将世系人物表中的人物读入内存中,形成sxt数据表,然后根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,并采用页码动态更新算法计算每个人物的位置信息;接着根据计算出的人物的位置信息,将人物信息写入到相应的HTML模板的对应的位置中,形成HTML文件;接下来利用浏览器内核对HTML文件进行合并,生成与每个HTML文件对应的图片;再将生成的图片重复叠加,形成大型族谱世系图。实现了大型世系图的自动生成的同时,避免了单线程模式下串行执行由于数据过大而内存崩溃的情况,大大提高了生成效率。

A Parallel Processing Method and Device for Generating Large Family Genealogy Maps

【技术实现步骤摘要】
一种并行处理的大型族谱世系图的生成方法及装置
本专利技术涉及计算机
,具体涉及一种并行处理的大型族谱世系图的生成方法及装置。
技术介绍
族谱,又称为家谱或者宗谱,是我国自古相传的一种记录重要人物事迹和家族迁徙繁衍的文字载体。家谱是中华民族的三大文献(国史,地志,家谱)之一,属珍贵的人文资料,对于历史学、民俗学、人口学、社会学和经济学的深入研究,均有其不可替代的独特功能。族谱中记载的内容甚多,格式也不尽统一,总的来说,族谱需要记录的内容有:姓氏源流、世系信息、人物传记、家族事件等,其中最主要的是世系图的记载,经过人们长时间对世系图的探索、研究和发展,世系图的样式呈现出多样化的特点。依据其表现形式可将其组成部分划分为三部分,分别对应行传、吊线图和速查表(如图1所示)。随着科技和计算机技术的不断发展和进步,已经有越来越多的群体和公司开始研究和分析挖掘族谱数据,并对传统的纸质谱书进行数字化,把族谱中包含的数据和图片进行有效合理的组织,并生成PDF格式的电子文档,从而方便在互联网上保存和传播。目前,国内外关于族谱数字化相关方面的研究有很多,但是都存在着不足之处。族谱数字化系统来大致可以分为两类,其一,单机模式,用户可以在计算机上输入数据,系统将输入的数据以文件形式进行存储。其二,能够对用户输入的族谱数据进行输出并显示,方便人们查看。本申请专利技术人在实施本专利技术的过程中,发现现有技术的方法,至少存在如下技术问题:在从族谱数据生成谱志的过程中,最为复杂的就是世系图中人物表的生成,一些大的家族经过若干代的繁衍,其人数已经达到几十万人,在生成如图1所示的人物世系图,则需要考虑其中的人数、世系代数、每代人的个数,以及生平简介。而世系表中,人物的关系形成一棵大的家族树,人物的数目是随着繁衍代数的增加呈指数级的增长。而采用现有的方法,首先其系统的架构和运行模式不利于数据的管理共享和高效生成,无法达到族谱数字化过程中高效生成的目的,存在着一定的局限性。国外著名的家谱网站FamilySearch能够对大数据量的族谱数据进行存储,但是对外输出均为印刷版本,实际上没有对用户提供真正的电子谱书生成和导出的功能,也就更加谈不上对族谱数据进行高效的数字化和生成,同时关于谱书体制个性化定制方面的研究目前尚处于萌芽阶段,现有的各大族谱数字化平台基本上没有提供相关的功能模块。由此可知,现有技术中的方法存在无法生成电子世系图、生成方法效率低的技术问题。
技术实现思路
有鉴于此,本专利技术提供了一种并行处理的大型族谱世系图的生成方法及装置,用以解决或者至少部分解决现有技术中的方法存在无法生成电子世系图、生成方法效率低的技术问题。本专利技术第一方面提供了一种并行处理的大型族谱世系图的生成方法,包括:步骤S1:从数据库中将世系人物表中的人物读入内存中,并存储于内存的数据结构中,形成sxt数据表,其中,sxt数据表中存储有人物以及对应的世系代数;步骤S2:根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,并基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息;步骤S3:根据计算出的人物的位置信息,将人物信息写入到相应的HTML模板的对应的位置中,形成HTML文件;步骤S4:利用浏览器内核对HTML文件进行合并,对合并后的HTML文件进行样式排版,并生成与每个HTML文件对应的图片;步骤S5:将生成的图片重复叠加,形成大型族谱世系图。在一种实施方式中,根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,具体包括:根据世系代数,对sxt数据表进行分块,其中,每个sxt数据表分块对应一个世代;创建一个单独的线程对每个sxt数据表分块进行处理。在一种实施方式中,预设的生成页面的大小为生成页面包含的行数,人物之间的逻辑关系包括每个人物在所处世代中的排序,步骤S2中,基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息,具体包括:将每个人物对应的页码数用Pid标识符表示,获得与每个人物对应的sxt数据表字段中的信息;采用如下公式计算每个世代中包含的人物的位置信息:其中,p表示当前页码,cy表示当前代的人物数据所占的页码,n表示在每一个世代中该人物的排序,m表示生成页面行数,by-1表示前一代最后一页的空白行数,page表示计算出的页面数;将计算出的页面数page替换Pid标识符,获得人物在世系图中的位置信息。在一种实施方式中,为创建的每个线程设置标记位,标记位与线程中人物所处代数对应,步骤S5具体包括:根据每个线程的标记位,对生成的图片进行叠加,形成大型族谱世系图。在一种实施方式中,在计算出页面数page后,所述方法还包括:采用预设调度算法对待处理的数据进行处理。基于同样的专利技术构思,本专利技术第二方面提供了一种并行处理的大型族谱世系图的生成装置,包括:sxt数据表形成模块,用于从数据库中将世系人物表中的人物读入内存中,并存储于内存的数据结构中,形成sxt数据表,其中,sxt数据表中存储有人物以及对应的世系代数;人物位置计算模块,用于根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,并基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息;HTML文件生成模块,用于根据计算出的人物的位置信息,将人物信息写入到相应的HTML模板的对应的位置中,形成HTML文件;图片生成模块,用于利用浏览器内核对HTML文件进行合并,对合并后的HTML文件进行样式排版,并生成与每个HTML文件对应的图片;大型族谱世系图生成模块,用于将生成的图片重复叠加,形成大型族谱世系图。在一种实施方式中,人物位置计算模块,具体用于:根据世系代数,对sxt数据表进行分块,其中,每个sxt数据表分块对应一个世代;创建一个单独的线程对每个sxt数据表分块进行处理。在一种实施方式中,预设的生成页面的大小为生成页面包含的行数,人物之间的逻辑关系包括每个人物在所处世代中的排序,人物位置计算模块还用于:将每个人物对应的页码数用Pid标识符表示,获得与每个人物对应的sxt数据表字段中的信息;采用如下公式计算每个世代中包含的人物的位置信息:其中,p表示当前页码,cy表示当前代的人物数据所占的页码,n表示在每一个世代中该人物的排序,m表示生成页面行数,by-1表示前一代最后一页的空白行数,page表示计算出的页面数;将计算出的页面数page替换Pid标识符,获得人物在世系图中的位置信息。基于同样的专利技术构思,本专利技术第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。基于同样的专利技术构思,本专利技术第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:本专利技术提供的一种并行处理的大型族谱世系图的生成方法,首先从数据库中将世系人物表中的人物读入内存中,形成sxt数据表,然后根据存储的人物以及对应的世系代数,创建多本文档来自技高网
...

【技术保护点】
1.一种并行处理的大型族谱世系图的生成方法,其特征在于,包括:步骤S1:从数据库中将世系人物表中的人物读入内存中,并存储于内存的数据结构中,形成sxt数据表,其中,sxt数据表中存储有人物以及对应的世系代数;步骤S2:根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,并基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息;步骤S3:根据计算出的人物的位置信息,将人物信息写入到相应的HTML模板的对应的位置中,形成HTML文件;步骤S4:利用浏览器内核对HTML文件进行合并,对合并后的HTML文件进行样式排版,并生成与每个HTML文件对应的图片;步骤S5:将生成的图片重复叠加,形成大型族谱世系图。

【技术特征摘要】
1.一种并行处理的大型族谱世系图的生成方法,其特征在于,包括:步骤S1:从数据库中将世系人物表中的人物读入内存中,并存储于内存的数据结构中,形成sxt数据表,其中,sxt数据表中存储有人物以及对应的世系代数;步骤S2:根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,并基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息;步骤S3:根据计算出的人物的位置信息,将人物信息写入到相应的HTML模板的对应的位置中,形成HTML文件;步骤S4:利用浏览器内核对HTML文件进行合并,对合并后的HTML文件进行样式排版,并生成与每个HTML文件对应的图片;步骤S5:将生成的图片重复叠加,形成大型族谱世系图。2.如权利要求1所述的方法,其特征在于,步骤S2中,根据存储的人物以及对应的世系代数,创建多个线程对人物之间的逻辑关系进行处理分析,具体包括:根据世系代数,对sxt数据表进行分块,其中,每个sxt数据表分块对应一个世代;创建一个单独的线程对每个sxt数据表分块进行处理。3.如权利要求2所述的方法,其特征在于,预设的生成页面的大小为生成页面包含的行数,人物之间的逻辑关系包括每个人物在所处世代中的排序,步骤S2中,基于人物之间的逻辑关系、预设的生成页面的大小和前一代所占的空间,计算每个世代中包含的人物的位置信息,具体包括:将每个人物对应的页码数用Pid标识符表示,获得与每个人物对应的sxt数据表字段中的信息;采用如下公式计算每个世代中包含的人物的位置信息:其中,p表示当前页码,cy表示当前代的人物数据所占的页码,n表示在每一个世代中该人物的排序,m表示生成页面行数,by-1表示前一代最后一页的空白行数,page表示计算出的页面数;将计算出的页面数page替换Pid标识符,获得人物在世系图中的位置信息。4.如权利要求2所述的方法,其特征在于,为创建的每个线程设置标记位,标记位与线程中人物所处代数对应,步骤S5具体包括:根据每个线程的标记位,对生成的图片进行叠加,形成大型族谱世系图。5.如权利要求3所述的方法,其特征在于,在计算出页面数page后,...

【专利技术属性】
技术研发人员:彭智勇江欢何子龙彭煜玮李蓉蓉
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1