前言
基于实验室爬取的专利数据搭建了一个基于Neo4j图数据库的可视化小应用,本节先叙述数据来源以及数据结构,到图数据库的搭建。
一、产生初始化数据
数据结构
1.节点
论文:paper_id,authors, name,单位(unit),年份,期刊,关键词,领域,地区
专利:patent_id, name, 申请人(单位),发明人,申请时间,公布时间,领域,类型,地区
项目:project_id,authors, name,单位(unit),立项年份,中文关键词,领域,地区(省份代号),类型
人才:expert_id, 人名,职称,职位,单位,学历,云词,地区,邮箱,电话,毕业院校,领域
单位:单位id,地区,单位名称,单位类型,企业社会统一信用码,省份,市,区
2.关系
论文—->人才(作者)
人才—->论文(发表)
论文—->单位(归属)
专利—->人才(发明人)
人才—->专利(申请)
专利—->单位(申请人)
单位—->专利(申请)
项目—->人才(负责人)
人才—->项目(承担)
单位—->项目(承担)
人才—->单位(工作)
3.总结
数据结构为5种节点以及11种关系。
数据格式
专家表
| node_id: ID | name | title | position | unit | degree | telephone | school | research_field | :LABEL | |
|---|---|---|---|---|---|---|---|---|---|---|
| 757756fe-c2d1-404e-9cb5-7dd987225095 | 兰洪亮 | 国家空域技术重点实验室 | Expert | |||||||
| 75775a62-b236-4068-a22d-a4b74f66d713 | 李树栋 | 国防科技大学 | Expert | |||||||
| 75775c72-ed54-4ae3-828a-0cb981297efd | 曹东 | 中国大唐集团环境技术有限公司 | Expert |
其中node_id:ID和:LABEL是很重要的两个标签。
node_id:ID表示的是记录的唯一标识,每条记录要求唯一,且在关系表中通过ID来关联节点。
:LABEL表示的是表的名称
论文表
| node_id:ID | name | authors | unit | year | journal_name | keywords | subject_code | area_code | :LABEL |
|---|---|---|---|---|---|---|---|---|---|
| 0188eaa1-1a28-4154-b904-e00140bf0da5 | 高斯贝尔GD-6020数字机顶盒维修 | 温海波;张艳;赵文松 | 辽宁省灯塔广电中心 | 2017 | 数码世界 | 电子信息 | 21 | Paper | |
| 0188ecee-fabf-11e6-b478-005056b3f30e | 2015—2016财政年度上半年日本主要粉末冶金企业产品销售呈增长态势 | 孙世杰 | 2016 | 粉末冶金工业 | 机械电子与制造 | 99 | Paper |
专利表
| node_id:ID | name | applicant | inventors | application_date | publication_date | subject_code | area_code | patent_type | :LABEL |
|---|---|---|---|---|---|---|---|---|---|
| 02a8166e-b7a8-11e6-af90-005056b3f30e | 一种公路警示限高杆 | 不公告发明人 | 2013/12/14 | 2014/3/26 | 机械电子与制造 | 37 | 发明专利 | Patent | |
| 02a81712-b7aa-11e6-af90-005056b3f30e | 低层建筑外墙的清洗设备 | 天津悦辰清洗设备科技有限公司 | 杨正海 | 2011/9/8 | 2012/4/25 | 其他 | 12 | 实用新型 | Patent |
项目表
| node_id:ID | name | member | unit | year | keywords_ch | area_code | project_type | :LABEL |
|---|---|---|---|---|---|---|---|---|
| 00002051-f413-4908-a4a9-87b76519b398 | 矢量数学形态学理论及其在高维数据处理中的应用 | 雷涛 | 兰州交通大学 | 2012 | 数学形态学;矢量排序;模糊词典编纂顺序;高维数据;对偶性 | 62 | 国家自然科学基金 | Project |
| 00007cd8-a4da-40b7-a818-52db17a92e16 | TNF-α诱导PDIP1基因转录的调控机制 | 周建林 | 湖南师范大学 | 2005 | PDIP1;TNF-α;转录调控 | 国家自然科学基金 | Project |
单位表
| node_id:ID | unit | area_code | type_code | CreditCode | area_level1 | area_level2 | area_level3 | :LABEL |
|---|---|---|---|---|---|---|---|---|
| 1 | 龙岩学院 | 35 | 高校 | 福建 | Unit | |||
| 2 | 齐齐哈尔高等师范专科学校 | 23 | 高校 | 黑龙江 | Unit |
专家论文表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| c69d90aa-f4f0-4054-bde3-83c6723da0ec | 30257381-fa8a-11e6-b478-005056b3f30e | 发表 |
| 739d8e9d-42ed-492f-9002-b64ef35e058e | 30257381-fa8a-11e6-b478-005056b3f30e | 发表 |
专家专利表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 000000ef-6d13-4eaf-8361-9ff1a0c40f53 | 7fccd160-b7aa-11e6-af90-005056b3f30e | 申请 |
| 00000884-a9f3-4993-8365-f892d43daa8b | 12aa4838-b7ab-11e6-af90-005056b3f30e | 申请 |
专家项目表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| bfdae5fe-0e63-4a8f-890b-c258aa1cfb1f | 944b8083-829a-42c8-87ef-07946de274bc | 承担 |
| bfdae5fe-0e63-4a8f-890b-c258aa1cfb1f | e3959c3a-fb37-47c2-b8a6-8aff716d6e04 | 承担 |
专家单位表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 757756fe-c2d1-404e-9cb5-7dd987225095 | 58816 | 工作 |
| 75775a62-b236-4068-a22d-a4b74f66d713 | 33504 | 工作 |
论文专家表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 30257381-fa8a-11e6-b478-005056b3f30e | c69d90aa-f4f0-4054-bde3-83c6723da0ec | 作者 |
| 30257381-fa8a-11e6-b478-005056b3f30e | 739d8e9d-42ed-492f-9002-b64ef35e058e | 作者 |
论文单位表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 0188f08e-0ca3-11e7-b478-005056b3f30e | 5145 | 归属 |
| 0188f2b5-9868-4261-a28f-04c20bdf27e6 | 2487 | 归属 |
专利专家表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 7fccd160-b7aa-11e6-af90-005056b3f30e | 000000ef-6d13-4eaf-8361-9ff1a0c40f53 | 发明人 |
| 12aa4838-b7ab-11e6-af90-005056b3f30e | 00000884-a9f3-4993-8365-f892d43daa8b | 发明人 |
专利单位表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 02a81712-b7aa-11e6-af90-005056b3f30e | 109130 | 申请人 |
| 02a8193e-b7aa-11e6-af90-005056b3f30e | 109131 | 申请人 |
项目专家表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 944b8083-829a-42c8-87ef-07946de274bc | bfdae5fe-0e63-4a8f-890b-c258aa1cfb1f | 负责人 |
| e3959c3a-fb37-47c2-b8a6-8aff716d6e04 | bfdae5fe-0e63-4a8f-890b-c258aa1cfb1f | 负责人 |
单位专利表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 109130 | 02a81712-b7aa-11e6-af90-005056b3f30e | 申请 |
| 109131 | 02a8193e-b7aa-11e6-af90-005056b3f30e | 申请 |
单位项目表
| :START_ID | :END_ID | :TYPE |
|---|---|---|
| 2559 | 00002051-f413-4908-a4a9-87b76519b398 | 承担 |
| 862 | 00007cd8-a4da-40b7-a818-52db17a92e16 | 承担 |
好了,终于列举完了所有的节点表以及关系表。
导入Neo4j数据库中的数据格式为csv格式的文件,这边我通过python对数据进行处理。主要用到了python中的两个包。一个是MySQLdb,另外一个是csv。
1 | import MySQLdb |
二、数据入库
我这边是将Neo4j安装在linux服务器下,Neo4j的版本为3.3.3版本,可以访问我的github进行下载。安装完neo4j后,进入到neo4j的bin目录,输入如下命令。其中,neo4j_data_new为存放数据的文件夹目录。
GitHub地址: https://github.com/hqf1996/Neo4j3.3.3-.git
1 | [root@amdnode8 bin]# ./neo4j-admin import --database=graph.db --nodes /neo4j_data_new/paper.csv --nodes /neo4j_data_new/patent.csv --nodes /neo4j_data_new/project.csv --nodes /neo4j_data_new/unit.csv --nodes /neo4j_data_new/expert.csv --relationships /neo4j_data_new/UnitToPatent2.csv --relationships /neo4j_data_new/ExpertToUnit2.csv --relationships /neo4j_data_new/PatentToUnit2.csv --relationships /neo4j_data_new/UnitToProject2.csv --relationships /neo4j_data_new/ExpertToProject2.csv --relationships /neo4j_data_new/ProjectToExpert2.csv --relationships /neo4j_data_new/ExpertToPatent2.csv --relationships /neo4j_data_new/PatentToExpert2.csv --relationships /neo4j_data_new/PaperToUnit2.csv --relationships /neo4j_data_new/ExpertToPaper2.csv --relationships /neo4j_data_new/PaperToExpert2.csv |
执行一段时间后,会生成graph.db的数据库文件。此时,重启数据库即可
1 | ./neo4j restart |
此时,访问7474端口就可以查看新创建的图数据库了。

我们试着去写一条查询语句访问一下
