CN110532257B - 一种将家谱数据进行可视化呈现的方法及系统 - Google Patents

一种将家谱数据进行可视化呈现的方法及系统 Download PDF

Info

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
Application number
CN201910628685.7A
Other languages
English (en)
Other versions
CN110532257A (zh
Inventor
赵鑫烜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhuo Information Technology Shanghai Co ltd
Original Assignee
Xinhuo Information Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinhuo Information Technology Shanghai Co ltd filed Critical Xinhuo Information Technology Shanghai Co ltd
Priority to CN201910628685.7A priority Critical patent/CN110532257B/zh
Publication of CN110532257A publication Critical patent/CN110532257A/zh
Application granted granted Critical
Publication of CN110532257B publication Critical patent/CN110532257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual 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.一种将家谱数据进行可视化呈现的系统,其特征在于,所述系统包括:
获取装置,获取经过结构化处理的家谱数据,所述经过结构化处理的家谱数据包括多个二维的成员数组;
初始遍历装置,对每个二维的成员数组进行初始遍历,基于成员数组中成员编号和成员对象的映射关系,通过所创建的哈希表将族谱数据中的成员编号和成员对象建立关联;
循环遍历装置,基于哈希表对每个二维的成员数组进行循环遍历,以构成包括家谱数据中所有族谱成员的多叉树结构;
倒序遍历装置,对所述多叉树结构进行倒序遍历,以确定每个族谱成员的基本位置和扩展位置;
位置遍历装置,对二维的成员数组进行位置遍历以对任意两个相邻的族谱成员进行位置检测,当检测到存在位置重叠的情况下对族谱成员的基本位置和/或扩展位置进行递归调整,直到任意两个相邻的族谱成员的基本位置或扩展位置不存在重叠为止,生成包含所有族谱成员的坐标信息的位置数组;以及
呈现装置,基于包含所有族谱成员的坐标信息的位置数组和每个族谱成员的标识信息,对经过结构化处理的家谱数据进行可视化呈现;
其中,每个族谱成员的基本位置用于指示当前族谱成员的初始位置,每个族谱成员的扩展位置用于指示当前族谱成员的子代的位置偏移。
CN201910628685.7A 2019-07-12 2019-07-12 一种将家谱数据进行可视化呈现的方法及系统 Active CN110532257B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036313B (zh) * 2021-11-09 2022-09-20 北京百度网讯科技有限公司 一种族谱展示方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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