本发明涉及一种直观展现企业关系图谱的设计方法及系统。
背景技术:
随着企业数据量的不断积累,以及对企业间的数据分析,我们已经得到了企业关系型数据。但是,面临的问题是如何将这些关系型数据更好的、更直观的展示给我们的用户,让他们可以更快速的把握企业的股东、重要人员,以及企业对外投资的公司。
由于很多大型企业的关联关系不仅涉及的股东和投资数量众多,而且其中的关系也是错综复杂。如果只是涉及的数据量多的情况,我们还可以使用树形图、家谱图的方式去清晰的展示企业关系。但是因为企业关系相对复杂,因为有些情况下企业下层的对外投资公司又是该企业的股东,这样的情况上述的图形变现方式就不适用了。
技术实现要素:
本发明的目的就是为了解决上述问题,提供一种直观展现企业关系图谱的设计方法及系统,它具有使系统用户可以快速了解企业关系,把握公司的发展趋势,更好的为今后的商务合作做好正确的决策的优点。
为了实现上述目的,本发明采用如下技术方案:
一种直观展现企业关系图谱的设计方法,包括如下步骤:
步骤(1):使用网络爬虫算法从国家企业信用信息公示系统中抓取待查询企业的企业主要信息,将企业主要信息保存到企业主要信息数据库中;所述企业主要信息包括:企业名称、自然人股东、企业股东及对外投资公司;
步骤(2):从企业主要信息数据库中提取自然人股东、企业股东和对外投资公司;将企业、自然人股东、企业股东和对外投资公司作为节点存入图形数据库中;同时指定直接关系数据,将所述直接关系数据定义为第一层企业关系数据;将第一层企业关系数据存入图形数据库中;
步骤(3):利用步骤(2)中的企业股东和对外投资公司分别作为关键词,再次使用网络爬虫算法从国家企业信用信息公示系统中抓取企业主要信息,将企业主要信息保存到企业主要信息数据库中;
步骤(4):从企业主要信息数据库中提取自然人股东、企业股东和对外投资公司;将企业、自然人股东、企业股东和对外投资公司作为节点存入图形数据库中;同时指定直接关系数据,将所述直接关系数据定义为第二层企业关系数据;将第二层企业关系数据存入图形数据库中;
步骤(5):递归步骤(3)-(4),直到最后一层企业关系数据中没有股东或对外投资公司;
步骤(6):依据图形数据库生成企业关系图谱。
所述步骤(2)的直接关系数据包括:企业与自然人股东之间的股东关系、企业与企业股东之间的股东企业关系、企业与对外投资公司之间的对外投资关系。
所述步骤(6)的步骤为:
步骤(601):从图形数据库中提取出待查询企业的第一层企业关系数据,取待查询企业的公司id和公司名称name,将公司id和公司名称name封装为企业节点,存放在节点数组中,并在节点数组中添加股东和对外投资两个辅助节点;所述辅助节点的属性包括id和名称。
将第一层企业关系数据中的企业与自然人股东之间的股东关系、企业与企业股东之间的股东企业关系和企业与对外投资公司之间的对外投资关系存储到连线数组中,关系以来源source、目标target对应节点数组中各节点的id;
步骤(602):在网页内添加画布svg,并设置画布svg的大小,取得画布svg的中心点像素坐标(x,y);将中心点像素坐标(x,y)作为待查询企业的坐标;辅助节点股东的坐标为(x-l*10%,y),辅助节点对外投资的坐标为(x+l*10%,y);l表示画布像素长度;
步骤(603):将画布范围、节点数组和连线数组传入力导向布局中,同时指定连线长度和节点之间相互作用力的强度;利用力导向布局计算出节点数组中各个节点的像素坐标,所述力导向布局会将各节点坐标值自动添加到节点数组和连线数组中;
循环遍历节点数组,得到各个节点的坐标,在画布的相应坐标位置绘制节点;循环遍历连线数组,获取source和target的坐标,利用数据可视化工具d3的对角线生成器生成贝塞尔曲线,将source和target对应的节点连接起来,并在target坐标位置绘制箭头方向标记,曲线的中点坐标处填充上相应的关系名称,第一层企业关系图绘制完成;
步骤(604):设置股东增加层级按钮和股东减少层级按钮;设置对外投资公司的增加层级按钮和对外投资公司的减少层级按钮;在股东增加层级按钮和股东减少层级按钮之间设置第一小标签显示股东当前层级;在对外投资公司的增加层级按钮和对外投资公司的减少层级按钮之间设置第二小标签显示对外投资公司的当前层级;
设置股东增加层级按钮、股东减少层级按钮、对外投资公司的增加层级按钮和对外投资公司的减少层级按钮的处理函数;
步骤(605):利用ajax从图形数据库中读取第二层企业关系数据对应的股东或者对外投资公司,将读取的结果更新到节点数组中;将第二层企业关系数据对应的关系更新到连线数组中;重复步骤(602)-(603);将第二层企业关系数据绘制到画布上。
所述增加层级按钮的处理函数是从节点数组和连线数组中增加相应层次的数据,并将相应的节点和连线添加到画布中去。
所述减少层级按钮的处理函数是从节点数组和连线数组中移除相应层次的数据,并将相应的节点和连线从图中移除出去。
设置节点的处理函数,利用ajax从企业主要信息数据库中查出待查询公司的主要信息,并通过弹出窗口的方式展示待查询公司的主要信息。
所述步骤(601)在节点数组中添加股东和对外投资两个辅助节点,例[{id:0,name:"小米科技有限责任公司"},{id:1,name:"股东"},{id:2,name:"对外投资"},{id:3,name:"雷军"},{id:4,name:"小米信用管理有限公司"}]。
所述步骤(601)关系以来源source、目标target对应节点数组中各节点的id,例如[{source:1,target:0},{source:0,target:2},{source:3,target:0},{source:2,target:4}]。
一种直观展现企业关系图谱的设计系统,其特征是,包括:
第一抓取模块:使用网络爬虫算法从国家企业信用信息公示系统中抓取待查询企业的企业主要信息,将企业主要信息保存到企业主要信息数据库中;所述企业主要信息包括:企业名称、自然人股东、企业股东及对外投资公司;
图形数据库搭建模块:从企业主要信息数据库中提取自然人股东、企业股东和对外投资公司;将企业、自然人股东、企业股东和对外投资公司作为节点存入图形数据库中;同时指定直接关系数据,将所述直接关系数据定义为第一层企业关系数据;将第一层企业关系数据存入图形数据库中;
第二抓取模块:利用企业股东和对外投资公司分别作为关键词,再次使用网络爬虫算法从国家企业信用信息公示系统中抓取企业主要信息,将企业主要信息保存到企业主要信息数据库中;
图形数据库完善模块:从企业主要信息数据库中提取自然人股东、企业股东和对外投资公司;将企业、自然人股东、企业股东和对外投资公司作为节点存入图形数据库中;同时指定直接关系数据,将所述直接关系数据定义为第二层企业关系数据;将第二层企业关系数据存入图形数据库中;
递归模块:递归第二抓取模块和图像数据库完善模块的工作,直到最后一层企业关系数据中没有股东或对外投资公司;
企业关系图谱生成模块:依据图形数据库生成企业关系图谱。
本发明的有益效果:
1可以展示所查看企业相关的所有的股东和对外投资关系,而非只展示与该企业直接相关的股东和对外投资公司的关系;
2通过这种分层结构组织股东和对外投资数据,并分层展示企业关系,不仅可以节省一次传输所有数据所带来的网络延迟,并且能通过层级的增减更好更清晰的展示更多更复杂的企业关系数据,提升用户体验。
3能够从图中直接查看企业的主要信息,方便用户获取股东和对外投资公司的详情,提升用户体验。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,一种直观展现企业关系图谱的设计方法,包括如下步骤:
步骤(1):使用网络爬虫算法从国家企业信用信息公示系统中抓取待查询企业的企业主要信息,将企业主要信息保存到企业主要信息数据库中;所述企业主要信息包括:企业名称、自然人股东、企业股东及对外投资公司;
步骤(2):从企业主要信息数据库中提取自然人股东、企业股东和对外投资公司;将企业、自然人股东、企业股东和对外投资公司作为节点存入图形数据库中;同时指定直接关系数据,将所述直接关系数据定义为第一层企业关系数据;将第一层企业关系数据存入图形数据库中;
步骤(3):利用步骤(2)中的企业股东和对外投资公司分别作为关键词,再次使用网络爬虫算法从国家企业信用信息公示系统中抓取企业主要信息,将企业主要信息保存到企业主要信息数据库中;
步骤(4):从企业主要信息数据库中提取自然人股东、企业股东和对外投资公司;将企业、自然人股东、企业股东和对外投资公司作为节点存入图形数据库中;同时指定直接关系数据,将所述直接关系数据定义为第二层企业关系数据;将第二层企业关系数据存入图形数据库中;
步骤(5):递归步骤(3)-(4),直到最后一层企业关系数据中没有股东或对外投资公司;
步骤(6):依据图形数据库生成企业关系图谱。
所述步骤(2)的直接关系数据包括:企业与自然人股东之间的股东关系、企业与企业股东之间的股东企业关系、企业与对外投资公司之间的对外投资关系。
所述步骤(6)的步骤为:
步骤(601):从图形数据库中提取出待查询企业的第一层企业关系数据,取待查询企业的公司id和公司名称name,将公司id和公司名称name封装为企业节点,存放在节点数组中,并在节点数组中添加股东和对外投资两个辅助节点;例[{id:0,name:"小米科技有限责任公司"},{id:1,name:"股东"},{id:2,name:"对外投资"},{id:3,name:"雷军"},{id:4,name:"小米信用管理有限公司"}]。所述辅助节点的属性包括id和名称。
将第一层企业关系数据中的企业与自然人股东之间的股东关系、企业与企业股东之间的股东企业关系和企业与对外投资公司之间的对外投资关系存储到连线数组中,关系以来源source、目标target对应节点数组中各节点的id;例如[{source:1,target:0},{source:0,target:2},{source:3,target:0},{source:2,target:4}]。
步骤(602):在网页内添加画布svg,并设置画布svg的大小,取得画布svg的中心点像素坐标(x,y);将中心点像素坐标(x,y)作为待查询企业的坐标;辅助节点股东的坐标为(x-l*10%,y),辅助节点对外投资的坐标为(x+l*10%,y);l表示画布像素长度;
步骤(603):将画布范围、节点数组和连线数组传入力导向布局中,同时指定连线长度和节点之间相互作用力的强度;利用力导向布局计算出节点数组中各个节点的像素坐标,所述力导向布局会将各节点坐标值自动添加到节点数组和连线数组中;
循环遍历节点数组,得到各个节点的坐标,在画布的相应坐标位置绘制节点;循环遍历连线数组,获取source和target的坐标,利用数据可视化工具d3的对角线生成器生成贝塞尔曲线,将source和target对应的节点连接起来,并在target坐标位置绘制箭头方向标记,曲线的中点坐标处填充上相应的关系名称,第一层企业关系图绘制完成;
步骤(604):设置股东增加层级按钮和股东减少层级按钮;设置对外投资公司的增加层级按钮和对外投资公司的减少层级按钮;在股东增加层级按钮和股东减少层级按钮之间设置第一小标签显示股东当前层级;在对外投资公司的增加层级按钮和对外投资公司的减少层级按钮之间设置第二小标签显示对外投资公司的当前层级;
设置股东增加层级按钮、股东减少层级按钮、对外投资公司的增加层级按钮和对外投资公司的减少层级按钮的处理函数;设置节点的处理函数,利用ajax从企业主要信息数据库中查出待查询公司的主要信息,并通过弹出窗口的方式展示待查询公司的主要信息。
所述增加层级按钮的处理函数是从节点数组和连线数组中增加相应层次的数据,并将相应的节点和连线添加到画布中去。
所述减少层级按钮的处理函数是从节点数组和连线数组中移除相应层次的数据,并将相应的节点和连线从图中移除出去。
步骤(605):利用ajax从图形数据库中读取第二层企业关系数据对应的股东或者对外投资公司,将读取的结果更新到节点数组中;将第二层企业关系数据对应的关系更新到连线数组中;重复步骤(602)-(603);将第二层企业关系数据绘制到画布上。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。