CN110532257B - 一种将家谱数据进行可视化呈现的方法及系统 - Google Patents
一种将家谱数据进行可视化呈现的方法及系统 Download PDFInfo
- Publication number
- CN110532257B CN110532257B CN201910628685.7A CN201910628685A CN110532257B CN 110532257 B CN110532257 B CN 110532257B CN 201910628685 A CN201910628685 A CN 201910628685A CN 110532257 B CN110532257 B CN 110532257B
- Authority
- CN
- China
- Prior art keywords
- family
- members
- array
- data
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000001228 spectrum Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000003491 array Methods 0.000 claims abstract description 18
- 230000000007 visual effect Effects 0.000 claims abstract 2
- 238000013507 mapping Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种将家谱数据进行可视化呈现的方法及系统,其中方法包括:获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;对每个二维的成员数组进行初始遍历,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,生成包含所有族谱成员的坐标信息的位置数组;以及对经过结构化处理的家谱数据进行可视化呈现。
Description
技术领域
本发明涉及数据呈现领域,并且具体地涉及一种将家谱数据进行可视化呈现的方法及系统。
背景技术
族谱,又称家谱、宗谱等,是一种以表谱形式记载一个家族的世系繁衍及重要人物事迹的书。随着计算机互联网技术的发展,族谱数据的电子化成为趋势和需要。当前电子化的族谱数据的存储和展示方式主要包括扫描方式录入、电子表格方式录入、存储及显示,以及计算机录入数据及网页显示等方式。
对于通过扫描纸质族谱形成电子数据并显示的方式来说,这种方式的交互性差,无法直接查看某个家族成员的详细信息,并且可维护性也差。对于通过电子表格录入和存储数据的方式来说,这种方式也不直观,难以体现具体的人与人之间的亲属关系。而通过计算机录入数据并通过网页显示的实现方式来说,这种方式通常只是堆砌数据,无法直观地用图的方式体现族谱成员之间的关系。
以上的族谱数据展示方式要么不直观,要么交互性、可维护性差。因此,本发明提出了一种将族谱数据进行可视化呈现的方法及系统,主要用于解决现有技术中的上述问题。
发明内容
有鉴于此,本发明的目的是针对当前族谱数据的展示方式存在的不直观以及交互性和可维护性差的问题。
为解决该问题,本发明提出了一种将家谱数据进行可视化呈现的方法,所述方法包括:
获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;
对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;
基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;
对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;
对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组;以及
基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现。
每个二维的成员数组包括辈分数据和族谱成员数据。
其中族谱成员数据包括:成员编号、名字、性别、字号、字派名、辈分、父亲编号数组、母亲编号数组、兄弟编号数组、姐妹编号数组、配偶编号数组、儿子编号数组以及女儿编号数组。
基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构包括:基于哈希表对每个二维的成员数组对辈分进行遍历,对于每个当前辈分,遍历当前辈分中的所有族谱成员,将每个族谱成员与父亲、配偶、排行高的兄或姐、排行低的弟或妹以及第一个子女的实体族谱数据使用哈希表进行关联。
所述基本位置和扩展位置的坐标系是原点在左上角的坐标系,并且通过坐标系的横纵坐标来确定每个族谱成员的基本位置或扩展位置。
每个族谱成员的基本位置用于指示当前族谱成员的初始位置。
每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
在基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息之前还包括:根据每个族谱成员的姓名信息进行检索,以获取每个族谱成员的标识信息,将每个族谱成员的标识信息与族谱成员的坐标信息进行关联。
所述标识信息包括:照片、视频、图形元素或标记符号。
本发明还提供一种将家谱数据进行可视化呈现的系统,所述系统包括:
获取装置,获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;
初始遍历装置,对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;
循环遍历装置,基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;
倒序遍历装置,对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;
位置遍历装置,对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组;以及
呈现装置,基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现。
每个二维的成员数组包括辈分数据和族谱成员数据。
其中族谱成员数据包括:成员编号、名字、性别、字号、字派名、辈分、父亲编号数组、母亲编号数组、兄弟编号数组、姐妹编号数组、配偶编号数组、儿子编号数组以及女儿编号数组。
基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构包括:基于哈希表对每个二维的成员数组对辈分进行遍历,对于每个当前辈分,遍历当前辈分中的所有族谱成员,将每个族谱成员与父亲、配偶、排行高的兄或姐、排行低的弟或妹以及第一个子女的实体族谱数据使用哈希表进行关联。
所述基本位置和扩展位置的坐标系是原点在左上角的坐标系,并且通过坐标系的横纵坐标来确定每个族谱成员的基本位置或扩展位置。
每个族谱成员的基本位置用于指示当前族谱成员的初始位置。
每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
在基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息之前还包括:根据每个族谱成员的姓名信息进行检索,以获取每个族谱成员的标识信息,将每个族谱成员的标识信息与族谱成员的坐标信息进行关联。
所述标识信息包括:照片、视频、图形元素或标记符号。
本发明提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序能够被执行以进行:
获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;
对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;
基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;
对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;
对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组;以及
基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现。
通过本发明提供的方法和系统,本发明可以使用计算机技术辅助录入族谱数据,并将族谱数据以传统的纸质族谱的树状图的方式展示,兼具了清晰明确的表现能力和高效的交互能力。本发明的技术方案的优点在于:直观,可以很方便地看出族谱成员之间的关系。易于操作和维护,在这种展示方案中,用户可以很方便地点击族谱成员查看该成员的详细信息,做到了在极小的屏幕上展示大量数据的效果。可扩展性强,本发明的算法同样可以用在纸质族谱的自动印刷中,可以完美的实现传统族谱中的树形排版,免去了大量的人工排版、修订,并且也可以轻松的避免修订时出现的错误。并且如果族群中成员变化,族谱需要重新修订。该算法可以立刻生成新的族群树形图,无需任何额外成本。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是根据本发明实施例的族谱数据存储过程中经历的多次遍历的流程图;
图2是根据本发明实施例的遍历过程中使用的多叉树的结构示意图;
图3是根据本发明实施例的倒序遍历过程的流程图;
图4是根据本发明实施例所展示的在网页上生成的族谱树状图的示意图;
图5是根据本发明实施例所展示的纸质族谱的电子图片;
图6是根据本发明实施例的将家谱数据进行可视化呈现的方法的流程图;以及
图7是根据本发明实施例的将家谱数据进行可视化呈现的系统的结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
图1是根据本发明实施例的族谱数据存储过程中经历的多次遍历的流程图。下面结合图1对多次遍历的流程进行详细阐述。本发明提供的方法至少包括六个步骤,分别为输入步骤、第一次遍历步骤、第二次遍历步骤、第三次遍历步骤、第四次遍历步骤以及输出步骤。
步骤一,输入步骤。
在步骤一中,输入二维的成员数组。二维的成员数组中,第一维是辈分,并且第二维是该辈分中的成员。
族谱数据包含族谱中所有的族谱成员以及族谱中记录的最高的辈分和最低的辈分。每个族谱成员数据是一个二维数组。二维数组的第一维是辈分,并且第二维是当前辈分中包含的族谱成员。族谱成员数据包含该成员的成员编号、名字、性别、字号、字派名、辈分、父亲编号数组、母亲编号数组、兄弟编号数组、姐妹编号数组、配偶编号数组、儿子编号数组以及女儿编号数组。
作为示例,这二维的成员数组的表达可为如下的代码形式:
1:[//其中1代表辈分
id:2,name:姓名甲,gender:male,zihao:字号A,zpname:字派名
1,level:1,father:[],mother:[],brother:[],sister:[],spouse:[3],son[1,4],daughter[5]
id:3,name:姓名乙,gender female,zihao:无,zpname:无,father:[],mother:[],brother:[],sister:[],spouse:[2],son:[1,4],daughter[5]
],
2:[//其中2代表辈分
id:1,name:姓名丙,gender:male,zihao:字号B,zpname:无,level:2,father:[2],mother:[3],brother:[4],sister:[5],spouse:[6],son:[7],daughter[9]
id:4,name:姓名丁,gender:male,zihao:字号C,zpname:无,level:2,father:[2],mother:[3],brother:[4],sister:[5],spouse:[],son:[],daughter:[]
id:5,name:姓名戊,gender:female,zihao:无,zpname:无,level:2,father:[2],
mother:[3],brother:[4],sister:[5],spouse:[],son:[],daughter:[]
]
…
]
其中name为姓名,gender为性别(male为男,female为女),zihao为字号,zpname为字派名,level为辈分,father为父亲,mother为目前,brother为兄弟,sister为姐妹,spouse为配偶,son为儿子并且daughter为女儿。
步骤二,第一次遍历步骤(初始遍历)。通过第一次遍历,构建成员编号和成员对象的映射关系。通过形成全局映射关系表,将族谱成员的成员编号和成员对象建立关联。第一次遍历的目的是建立一个成员编号和成员对象的映射关系,通过遍历二维的成员数组,使用哈希表建立成员编号和成员对象的关联,从而得到一个可以通过成员编号获取成员对象的哈希表。
以步骤一中所输入二维的成员数组为例。其中“{姓名}”代表的是这个姓名的人物对象。首先,遍历二维的成员数组是一个两层的循环遍历。第一层循环遍历的是辈分,第二层循环遍历的是该辈分下的成员人物。那么,第一个要遍历的辈分是1。在辈分1的成员人物中,访问的人物是标识符id为2的姓名甲。建立映射关系为map[2]=>{姓名甲}。第二个要访问的人物是id为3的姓名乙。。建立映射关系为map[3]=>{姓名乙}。然后遍历辈分2。在辈分2的成员人物中。访问的人物依次是id为1的姓名丙、id为4的姓名丁、id为5的姓名戊。建立的映射关系为map[1]=>{姓名丙},map[4]=>{姓名丁},map[5]=>{姓名戊}
步骤三,第二次遍历步骤(循环遍历)。通过第二次遍历,对二维的成员数组进行循环遍历,以构建包括所有族谱成员的多叉树。需要说明的是,所构建的多叉树仅是使用方式和理论与数据结构中的多叉树相同,并非严格意义的多叉树结构。所构建的多叉树可以被理解为与多叉树相类似的数据结构。
为了满足多叉树的定义,本发明将配偶关系的两个成员看做是或合并为一个成员。由于步骤一中输入的族谱数据是多个二维的成员数组,而没有构建成员之间的关系,为此在步骤三中通过对族谱数据所包括的多个二维的成员数组进行遍历建立关联,以构建出按照多叉树结构表示的成员关系。
优选地,在构建多叉树的循环遍历步骤中,遍历过程进一步分为两步。第一步:遍历辈分,第二步遍历该辈分中的所有成员。将每个成员与父亲、配偶、排行高的兄(姐)、排行低的弟(妹)以及他的第一个儿(女)的实体数据使用哈希表关联起来。也就是说,可以针对任意一个成员,直接找到他的上述几种关系所对应的成员数据。这里使用了步骤一中构建的哈希表映射。
下面举例说明步骤三是如何操作的。为了表述方便,下面的“父辈”指代当前人物的父亲。下面的“长兄”指代排行比当前人物大一名的哥哥,“次弟”指代排行比当前人物小一名的弟弟,“次妹”指代排行比当前人物小一名的妹妹以及“配偶”指代当前人物的配偶。
以步骤一和步骤二所产生的数据举例来说。首先,访问{姓名甲},可以知道姓名甲的儿子的id为1和4,女儿的id为5,配偶的id为3。根据步骤二中的哈希表映射确定,map[1]=>{姓名丙},map[4]=>{姓名丁},map[5]=>{姓名戊},map[3]=>{姓名乙}。则计算得到{姓名甲}->配偶=>{姓名乙},{姓名甲}->长子=>{姓名丙}。然后访问{姓名乙}。因为姓名乙是配偶,此处略过。然后访问{姓名丙},计算得到{姓名丙}->父辈=>{姓名甲},{姓名丙}->次弟=>{姓名丁}。然后访问{姓名丁},得到{姓名丁}->父辈=>{姓名甲},{姓名丁}->长兄=>{姓名丙},{姓名丁}->次妹=>{姓名戊}。然后访问{姓名戊},得到{姓名戊}->父辈=>{姓名甲},{姓名戊}->长兄=>{姓名丁}。至此,整个多叉树已经整理完毕。
在整个多叉树整理完毕之后,形成多叉树类型的数据结构,如图2所示。图2是根据本发明实施例的遍历过程中使用的多叉树的结构示意图。在多叉树中,将结为配偶的双方看做是一个节点,例如,姓名甲和配偶姓名乙。在第一层级,节点为父亲和配偶。在第二层级,节点包括长子和次子。在第三层级,包括长子的两个儿子(第一层级的两个孙子)和次子的两个儿子(第一层级的另外两个孙子)。图2只是说明了数据结构的表现形式,并没有与前的实例严格吻合。
步骤四,第三次遍历步骤(倒序遍历)。第三次遍历是对多叉树的倒序遍历。通过第三次遍历,初步确定每个成员的位置坐标。位置的坐标系是一个原点在左上角的坐标系。一个成员的位置可以通过坐标系中的横纵坐标来确定。每个成员都有两个位置属性:初始位置(也可以成为基本位置)和子代的修改位置(也可以称为扩展位置)。初始位置决定了当前成员的基本位置,并且子代的修改位置决定了当前成员的子代的位置偏移。在遍历家谱数据时,会根据当前成员的子女和/或兄弟来确定当前成员的初步位置。
图3是根据本发明实施例的倒序遍历过程的流程图。参考图3,示出了遍历过程的流程图。从多叉树结构的最左下方的节点开始遍历,然后向右遍历兄弟姐妹,再向上遍历父母。在此过程中,用一个指针指向当前正在遍历的成员。以此递推,直到遍历到多叉树的最顶端(根节点),整个遍历结束。在整个遍历过程中,每次遍历到某个成员时,都会计算该成员的初步位置。初步位置是由该成员的子女、兄弟姐妹和辈分决定。分为三种情况(子女的优先级大于兄弟姐妹的优先级):
1.当前成员无子女,并且是兄弟姐妹中年龄最大的一个,则当前成员的横坐标为0,纵坐标为辈分所处的纵坐标。
2.当前成员有子女,则当前成员的横坐标为年龄最大的子女的横坐标,纵坐标为辈分所处的纵坐标。
3.当前成员无子女并且有兄弟或姐妹,则当前成员的横坐标为上一个长兄弟姐妹的横坐标加上一个固定值,纵坐标为辈分所处的纵坐标。
如图3所示,方法从步骤301处开始。在步骤302,获取族谱数据中的族谱成员数据。在步骤303,检查这个族谱成员是否有儿(女),如果有,则进行步骤307,根据儿(女)的位置计算当前族谱成员的位置;如果没有,则进行步骤304,确定这个族谱成员是否具有左兄弟(左姐妹),即年龄大于自己的兄弟(姐妹);如果有,则进行步骤306,根据左兄弟(左姐妹)的位置计算当前成员的位置;如果没有,则将横坐标设置为0并且将纵坐标设置为当前辈分*辈分的高度;随后,在步骤308,计算下一个要检查的族谱成员的成员数据;在步骤309,确定是否还有未遍历的成员数据,如果有,则返回步骤302,如果没有,则进行步骤310,结束。
步骤四的遍历使用步骤三得到的多叉树结构。因此,此处以步骤三所生成的数据为例。此时,假设人物绘制的宽度是20,高度是40并且间隔统一为20。遍历时,第一个访问的族谱成员是{姓名丙},因为{姓名丙}无子女,并且没有比他年长的兄弟,符合上述的步骤305。因此,{姓名丙}的初始横坐标=0,并且{姓名丙}的纵坐标=辈分2*(高度40+间隔20)=120。{姓名丙}的子代调整横坐标=0。随后,访问{姓名丁}。姓名丁符合情况304。因此{姓名丁}的初始横坐标={姓名丙}->初始横坐标+宽度20+间隔20=40,{姓名丁}的纵坐标=辈分2*(高度40+间隔20)=120,并且{姓名丁}的自带调整横坐标=0。{姓名戊}和{姓名丁}相同,因此不再叙述。随后,访问的是{姓名甲}。{姓名甲}符合情况303。因此,{姓名甲}的初始横坐标={姓名丙}的初始横坐标,并且{姓名甲}的纵坐标=辈分1*(高度40+间隔20)=60,并且{姓名甲}的子代调整横坐标=0。因为姓名乙属于姓名甲的配偶,因此此处会忽略。
步骤五,第四次遍历步骤(位置遍历)。第四次遍历是对二维的成员数组的循环遍历。在第四次遍历时,一一对比相邻成员的位置是否重叠。如果相邻成员的位置重叠,则进行递归调整。通过第四次遍历,完成族谱绘制过程中对每个成员位置的二次确定。在步骤二的遍历(循环遍历)中,只能确定每个成员的初步位置。但是,这种情况下可能存在特定成员和其他成员的位置有重叠的情况,因此需要二次调整。二次调整也是一个遍历的过程。遍历的数据就是步骤二中得到的具有成员初步位置的多叉树结构。二次调整中,会对相邻的同辈的成员进行两两检查。如果有重叠,则调整他们的共同祖辈的子代的修改位置属性。这次调整也有可能对小范围的子树的重叠造成影响。因此,需要从共同祖辈的位置向下进行检查。这个过程一直重复执行,直到所有的重叠消失。
以步骤四生成的数据为例,本发明检查{姓名丙}和{姓名丁}是否重叠,以及{姓名丁}和{姓名戊}是否重叠。如果存在重叠的情况,则把重叠情况中靠右的人物向右偏移,即调整人物的“子代调整横坐标的属性值”,直到不重叠为止。
步骤六,输出步骤。输出包含所有成员的坐标信息的二维数组。在计算得到每个家谱中成员的位置后,即可使用人物照片、方形、圆形等元素表示当前成员并进行绘制。此外还可以绘制人物的姓名等资料。然后,将人物关系用折线进行连接。绘制的效果图可以参考图4和图5。
图4是根据本发明实施例所展示的在网页上生成的族谱树状图的示意图。根据本发明的族谱数据处理可视化呈现方法处理后所生成的族谱数据显示内容。可以清楚地看到,在图4的显示内容中,将各个辈分的族谱成员以及相同辈分的族谱成员进行了位置设定,以使得每个族谱成员能够被清晰地显示出层级关系、平级关系和配偶关系等。
图5是根据本发明实施例所展示的纸质族谱的电子图片。即,在根据本发明的族谱数据处理可视化呈现方法处理后所生成的族谱数据显示内容后,将显示内容进行纸质材料的输出,例如打印到纸质材料上。
可选地,本发明所提供的方法包括交互步骤,即在绘制出整个族谱的树形图之后,可以通过成员直接的位置、连线关系得到成员之间的血缘关系。也可以通过直接点击图上的族谱成员进行编辑、修改等操作。
图6是根据本发明实施例的将家谱数据进行可视化呈现的方法600的流程图。在步骤601,获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组。2每个二维的成员数组包括辈分数据和族谱成员数据。其中族谱成员数据包括:成员编号、名字、性别、字号、字派名、辈分、父亲编号数组、母亲编号数组、兄弟编号数组、姐妹编号数组、配偶编号数组、儿子编号数组以及女儿编号数组。
在步骤602,对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联。
在步骤603,基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构。基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构包括:基于哈希表对每个二维的成员数组对辈分进行遍历,对于每个当前辈分,遍历当前辈分中的所有族谱成员,将每个族谱成员与父亲、配偶、排行高的兄或姐、排行低的弟或妹以及第一个子女的实体族谱数据使用哈希表进行关联。
在步骤604,对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置。基本位置和扩展位置的坐标系是原点在左上角的坐标系,并且通过坐标系的横纵坐标来确定每个族谱成员的基本位置或扩展位置。每个族谱成员的基本位置用于指示当前族谱成员的初始位置。每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
在步骤605,对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组。
在步骤606,基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现。
在基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息之前还包括:根据每个族谱成员的姓名信息进行检索,以获取每个族谱成员的标识信息,将每个族谱成员的标识信息与族谱成员的坐标信息进行关联。所述标识信息包括:照片、视频、图形元素或标记符号。
图7是根据本发明实施例的将家谱数据进行可视化呈现的系统700的结构示意图。系统700包括:获取装置701、初始遍历装置702、循环遍历装置703、倒序遍历装置704、位置遍历装置705和呈现装置706。
获取装置701,获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组。2每个二维的成员数组包括辈分数据和族谱成员数据。其中族谱成员数据包括:成员编号、名字、性别、字号、字派名、辈分、父亲编号数组、母亲编号数组、兄弟编号数组、姐妹编号数组、配偶编号数组、儿子编号数组以及女儿编号数组。
初始遍历装置702,对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联。
循环遍历装置703,基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构。循环遍历装置703基于哈希表对每个二维的成员数组对辈分进行遍历,对于每个当前辈分,遍历当前辈分中的所有族谱成员,将每个族谱成员与父亲、配偶、排行高的兄或姐、排行低的弟或妹以及第一个子女的实体族谱数据使用哈希表进行关联。
倒序遍历装置704,对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置。基本位置和扩展位置的坐标系是原点在左上角的坐标系,并且通过坐标系的横纵坐标来确定每个族谱成员的基本位置或扩展位置。每个族谱成员的基本位置用于指示当前族谱成员的初始位置。每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
位置遍历装置705,对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组。
呈现装置706,基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现。呈现装置706根据每个族谱成员的姓名信息进行检索,以获取每个族谱成员的标识信息,将每个族谱成员的标识信息与族谱成员的坐标信息进行关联。所述标识信息包括:照片、视频、图形元素或标记符号。
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种将家谱数据进行可视化呈现的方法,其特征在于,所述方法包括:
获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;
对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;
基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;
对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;
对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组;以及
基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现;
其中,每个族谱成员的基本位置用于指示当前族谱成员的初始位置,每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
2.根据权利要求1所述的方法,其特征在于,每个二维的成员数组包括辈分数据和族谱成员数据。
3.根据权利要求2所述的方法,其特征在于,族谱成员数据包括:成员编号、名字、性别、字号、字派名、辈分、父亲编号数组、母亲编号数组、兄弟编号数组、姐妹编号数组、配偶编号数组、儿子编号数组以及女儿编号数组。
4.根据权利要求1所述的方法,其特征在于,基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构包括:基于哈希表对每个二维的成员数组对辈分进行遍历,对于每个当前辈分,遍历当前辈分中的所有族谱成员,将每个族谱成员与父亲、配偶、排行高的兄或姐、排行低的弟或妹以及第一个子女的实体族谱数据使用哈希表进行关联。
5.根据权利要求1所述的方法,其特征在于,所述基本位置和扩展位置的坐标系是原点在左上角的坐标系,并且通过坐标系的横纵坐标来确定每个族谱成员的基本位置或扩展位置。
6.根据权利要求1所述的方法,其特征在于,在基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息之前还包括:根据每个族谱成员的姓名信息进行检索,以获取每个族谱成员的标识信息,将每个族谱成员的标识信息与族谱成员的坐标信息进行关联。
7.根据权利要求1所述的方法,其特征在于,所述标识信息包括:照片、视频、图形元素或标记符号。
8.一种将家谱数据进行可视化呈现的系统,其特征在于,所述系统包括:
获取装置,获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;
初始遍历装置,对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;
循环遍历装置,基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;
倒序遍历装置,对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;
位置遍历装置,对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组;以及
呈现装置,基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现;
其中,每个族谱成员的基本位置用于指示当前族谱成员的初始位置,每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910628685.7A CN110532257B (zh) | 2019-07-12 | 2019-07-12 | 一种将家谱数据进行可视化呈现的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910628685.7A CN110532257B (zh) | 2019-07-12 | 2019-07-12 | 一种将家谱数据进行可视化呈现的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532257A CN110532257A (zh) | 2019-12-03 |
CN110532257B true CN110532257B (zh) | 2022-05-20 |
Family
ID=68659692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910628685.7A Active CN110532257B (zh) | 2019-07-12 | 2019-07-12 | 一种将家谱数据进行可视化呈现的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532257B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114036313B (zh) * | 2021-11-09 | 2022-09-20 | 北京百度网讯科技有限公司 | 一种族谱展示方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682114A (zh) * | 2012-05-11 | 2012-09-19 | 广州家族网信息科技有限公司 | 一种家谱生成方法及系统 |
CN105786931A (zh) * | 2014-12-26 | 2016-07-20 | 北京神州泰岳软件股份有限公司 | 一种树结构资源存储、查询的方法和装置 |
CN107808015A (zh) * | 2017-11-23 | 2018-03-16 | 安徽云匠信息科技有限公司 | 一种家谱亲缘关系查询方法及其装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239802A1 (en) * | 2006-04-07 | 2007-10-11 | Razdow Allen M | System and method for maintaining the genealogy of documents |
-
2019
- 2019-07-12 CN CN201910628685.7A patent/CN110532257B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682114A (zh) * | 2012-05-11 | 2012-09-19 | 广州家族网信息科技有限公司 | 一种家谱生成方法及系统 |
CN105786931A (zh) * | 2014-12-26 | 2016-07-20 | 北京神州泰岳软件股份有限公司 | 一种树结构资源存储、查询的方法和装置 |
CN107808015A (zh) * | 2017-11-23 | 2018-03-16 | 安徽云匠信息科技有限公司 | 一种家谱亲缘关系查询方法及其装置 |
Non-Patent Citations (2)
Title |
---|
关于电子家谱数据采集工作及结构设计实现方案;付昱承等;《西部皮革》;20180815(第15期);全文 * |
家谱成员关系的元图可视化;陈国军等;《计算机工程与科学》;20160715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110532257A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8935602B2 (en) | Hierarchical drag and drop structure editor for web sites | |
US11960512B2 (en) | Identifying and graphically representing multiple parent nodes of a child node | |
US9043698B2 (en) | Method for users to create and edit web page layouts | |
US7051276B1 (en) | View templates for HTML source documents | |
US7149967B2 (en) | Method and system for creating a table version of a document | |
US20090007005A1 (en) | System and Method for Rapid Presentation of Structured Digital Content Items | |
US20060209093A1 (en) | Method and computer-readable medium for generating graphics having a finite number of dynamically sized and positioned shapes | |
JP2010541097A (ja) | 相対位置に基く制御によるページ上のグラフィックスオブジェクトの配置 | |
CN105339931A (zh) | 用于处理数据容器的方法和设备 | |
US20230409613A1 (en) | Identifying Missing Nodes Within a Graphically Represented Family | |
US7278098B1 (en) | Method and apparatus for implementing web pages having smart tables | |
US20040263513A1 (en) | Treemap visualization engine | |
US20150161079A1 (en) | File formats and methods for representing documents | |
US11829393B2 (en) | Graphically representing related record families using a phantom parent node | |
JP2007265031A (ja) | 辞書コンテンツ処理装置、コンテンツ表示システムおよびコンテンツ表示方法 | |
US20190347280A1 (en) | Condensed hierarchical data viewer | |
CN110532257B (zh) | 一种将家谱数据进行可视化呈现的方法及系统 | |
Cruz et al. | A visual approach to multimedia querying and presentation | |
JP5551986B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2024086496A1 (en) | Transformation of hierarchical data structure into a grid pattern | |
JP5881937B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP5298616B2 (ja) | 情報提示装置、情報提示方法および情報提示用プログラム | |
JP2003296237A (ja) | 電子掲示板システム | |
CN115268720A (zh) | 一种页面渲染方法、装置、设备及可读存储介质 | |
JP3032225B2 (ja) | 3次元表示を用いた文書編集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A method and system for visualizing family genealogy data Granted publication date: 20220520 Pledgee: Shanghai Rural Commercial Bank Co.,Ltd. Qingpu sub branch Pledgor: Xinhuo information technology (Shanghai) Co.,Ltd. Registration number: Y2024310000585 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |