知识图谱:Neo4j数据库的基本使用——创建张学良的关系谱

这篇具有很好参考价值的文章主要介绍了知识图谱:Neo4j数据库的基本使用——创建张学良的关系谱。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、知识图谱及Neo4j数据库介绍

        知识图谱(Knowledge Graph)是人工智能的重要分支技术,它在2012年由谷歌提出,是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体—关系—实体”三元组,以及实体及其相关属性—值对,实体间通过关系相互联结,构成网状的知识结构。

        Neo4j 是一种开源的、基于 Graph 数据库的工具,具有简单的图形用户界面 (GUI) 和命令行界面 (CLI)

noe4j数据库是知识库么,neo4j,数据库,知识图谱

 图1 neo4j

二、知识图谱制作

首先需要启动neo4j:在cmd内输入neo4j.bat console即可启动neo4j 进入7474端口节即可进入neo4j

noe4j数据库是知识库么,neo4j,数据库,知识图谱图2 启动neo4j 

创建节点

create (n:person{name:"张学良"})

noe4j数据库是知识库么,neo4j,数据库,知识图谱

图3 创建张学良节点

        其中create是创建操作,n没有具体意义,只代表某个标签。Person是label标签名,代表节点类型;花括号{}代表节点的属性,属性可以为name,age等等。这条语句的含义就是创建一个标签为Person的节点,该节点具有一个name属性,值是张学良。还可以给该节点定义其他属性,通常一个label包含若干个属性。单击table可以看到。

noe4j数据库是知识库么,neo4j,数据库,知识图谱

图4 查看张学良节点

create (zcg:relatives {name:"赵春桂"}),
(yfz:relatives {name:"于凤至"}),
(gry:relatives {name:"谷瑞玉"}),
(zyd:relatives {name:"赵一荻"}),
(zlying:relatives {name:"张闾瑛"}),
(zlx:relatives {name:"张闾珣"}),
(zlyv:relatives {name:"张闾玗"}),
(zlq:relatives {name:"张闾琪"}),
(zll:relatives {name:"张闾琳"}),
(zxj:relatives {name:"张学浚"}),
(zxm:relatives {name:"张学铭"}),
(zxs:relatives {name:"张学思"}),
(zxsh:relatives {name:"张学栓"}),
(zjx:relatives {name:"张居信"}),
(zzl:relatives {name:"张作霖"}),
(zxc:relatives {name:"张学曾"}),
(zxch:relatives {name:"张学成"})

noe4j数据库是知识库么,neo4j,数据库,知识图谱

图5 创建其他人物节点

由Neo4j 数据库中的关系型数据库创建的图形数据库模型,其中包含一些人物及其亲戚关系。每个节点 (人) 都包含一个名称属性,而每个边 (关系) 都包含一个属性,用于描述两个节点之间的关系。

在这个模型中,人物赵春桂、于凤至、谷瑞玉、赵一荻、张闾瑛、张闾珣、张闾玗、张闾琪、张闾琳、张学浚、张学铭、张学思、张学栓、张居信、张作霖、张学曾和张学成都有自己的亲戚关系。这些亲戚关系是通过边连接这些节点的,例如,赵春桂和张闾琳是亲戚关系,因为赵春桂是张闾琳的祖母。

创建张学良属性节点

create (sexm:property{property:"男"}),
(sexw:property{property:"女"}),
(alias:property{property:"双喜、小六子、张汉卿、张少帅"}),
(nationality:property{property:"中国"}),
(nation:property{property:"汉"}),
(Birthdate:property{property:"1901年6月3日(辛丑年)"}),
(dateOfDeath:property{property:"2001年10月14日(辛巳年)"}),(graduateInstitution:property{property:"东北陆军讲武堂"}),
(job:property{property:"军人"}),
(birthplace:property{property:"辽宁省鞍山市台安县"}),
(militaryRank:property{property:"国民党陆军一级上将"})

noe4j数据库是知识库么,neo4j,数据库,知识图谱

图6 创建属性节点

创建节点 (person) 节点表示人物。

给节点添加属性 (property),其中 sexm 表示节点为男性,sexw 表示节点为女性,alias 表示节点的别名,nationality 表示节点的国籍,nation 表示节点的民族,Birthdate 表示节点的生日,dateOfDeath 表示节点的死亡日期,graduateInstitution 表示节点的毕业院校,job 表示节点的职业,birthplace 表示节点的出生地,militaryRank 表示节点的军衔。

在节点上创建属性值 (value)。例如,在节点 nationality 上创建了一个属性值 "中国"。

创建关联 (relation)。例如,在节点 nationality 上创建了一个关联 "belongTo" 给节点 nation。

创建节点间的关系

//建立节点之间的关系
match(n:person),(sexm:property) where n.name="张学良" and sexm.property="男" create(n)-[r:sex]- >(sexm);

match(n:person),(alias:property) where n.name="张学良" and alias.property="双喜、小六子、张汉卿、张少帅" create(n)-[r:alias]- >(alias);

match(n:person),(nationality:property) where n.name="张学良" and nationality.property="中国" create(n)-[r:nationality]- >(nationality);

match(n:person),(nation:property) where n.name="张学良" and nation.property="汉" create(n)-[r:nation]->(nation);

match(n:person),(Birthdate:property) where n.name="张学良" and Birthdate.property="1901年6月3日(辛丑年)" create(n)-[r:Birthdate]->(Birthdate);

match(n:person),(dateOfDeath:property) where n.name="张学良" and dateOfDeath.property="2001年10月14日(辛巳年)" create(n)-[r:dateOfDeath]->(dateOfDeath);

match(n:person),(graduateInstitution:property) where n.name="张学良" and graduateInstitution.property="东北陆军讲武堂" create(n)-[r:graduateInstitution]->(graduateInstitution);

match(n:person),(job:property) where n.name="张学良" and job.property="军人" create(n)-[r:job]->(job);

match(n:person),(birthplace:property) where n.name="张学良" and birthplace.property="辽宁省鞍山市台安县" create(n)-[r:birthplace]->(birthplace);

match(n:person),(militaryRank:property) where n.name="张学良" and militaryRank.property="国民党陆军一级上将" create(n)-[r:militaryRank]->(militaryRank);

//张学良的亲属
match(n:person),(zcg:relatives) where n.name="张学良" and zcg.name="赵春桂" create(n)-[r:mother]- >(zcg);

match(n:person),(yfz:relatives) where n.name="张学良" and yfz.name="于凤至" create(n)-[r:ex_wife]- >(yfz);

match(n:person),(gry:relatives) where n.name="张学良" and gry.name="谷瑞玉" create(n)-[r:ex_wife]- >(gry);

match(n:person),(zyd:relatives) where n.name="张学良" and zyd.name="赵一荻" create(n)-[r:wife]- >(zyd);

match(n:person),(zly:relatives) where n.name="张学良" and zly.name="张闾瑛" create(n)-[r:daughter]- >(zly);

match(n:person),(zlx:relatives) where n.name="张学良" and zlx.name="张闾珣" create(n)-[r:son]- >(zlx);

match(n:person),(zlyv:relatives) where n.name="张学良" and zlyv.name="张闾玗" create(n)-[r:son]- >(zlyv);

match(n:person),(zlq:relatives) where n.name="张学良" and zlq.name="张闾琪" create(n)-[r:son]- >(zlq);

match(n:person),(zll:relatives) where n.name="张学良" and zll.name="张闾琳" create(n)-[r:son]- >(zll);

match(n:person),(zxj:relatives) where n.name="张学良" and zxj.name="张学浚" create(n)-[r:youngerBrother]- >(zxj);

match(n:person),(zxm:relatives) where n.name="张学良" and zxm.name="张学铭" create(n)-[r:youngerBrother]- >(zxm);

match(n:person),(zxs:relatives) where n.name="张学良" and zxs.name="张学思" create(n)-[r:youngerBrother]- >(zxs);

match(n:person),(zxsh:relatives) where n.name="张学良" and zxsh.name="张学栓" create(n)-[r:youngerBrother]- >(zxsh);

match(n:person),(zxc:relatives) where n.name="张学良" and zxc.name="张学曾" create(n)-[r:youngerBrother]- >(zxc);

match(n:person),(zjx:relatives) where n.name="张学良" and zjx.name="张居信" create(n)-[r:grandson]- >(zjx);

match(n:person),(zzl:relatives) where n.name="张学良" and zzl.name="张作霖" create(n)-[r:father]- >(zzl);

match(n:person),(zxch:relatives) where n.name="张学良" and zxch.name="张学成" create(n)-[r:cousin]- >(zxch);



match(zzl:relatives),(n:person) where zzl.name="张作霖" and n.name="张学良" create(zzl)-[r:son]- >(n);

match(zzl:relatives),(sexm:property) where zzl.name="张作霖" and sexm.property="男" create(zzl)-[r:sex]- >(sexm);

match(zzl:relatives),(nation:property) where zzl.name="张作霖" and nation.property="汉"  create(zzl)-[r:nation]- >(nation);

 noe4j数据库是知识库么,neo4j,数据库,知识图谱

图7 最终结果

        以上就为创建neo4j知识图谱的基本应用,适合初学者使用。后续可爬取CSV文件直接导入关系与节点。文章来源地址https://www.toymoban.com/news/detail-766159.html

到了这里,关于知识图谱:Neo4j数据库的基本使用——创建张学良的关系谱的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包