此文档主要介绍 三体 demo的使用方法。
Demo背景基于三体1、三体2、三体3的故事背景进行设计。
根据三体故事的设定,我们设计了4类点和6类边,点包括“人物”、“组织”、“计划”、“时间线”,边包括“人物-人物关系”、“人物-计划关系”、“人物-组织关系”、“组织-计划关系”、“组织-组织关系”。 根据剧情准备了对应Schema的数据,准备了一些query,提出一些关于剧情的问题。
前置条件:TuGraph已安装。
- 手动导入
- 数据存放目录:https://github.com/TuGraph-family/tugraph-db-demo
- 根据数据存放目录对应修改import.json里面的DATA_PATH。具体可以参考数据导入
- 启动TuGraph服务后,访问${HOST_IP}:7070,打开web页面,确认数据是否导入成功。
- 自动创建
- 点击
新建图项目
,选择三体数据,填写图项目配置,系统会自动完成三体场景图项目创建。
- 点击
参考TuGraph文档,在TuGraph的Web页面前端输入Cypher进行查询。
三体一剧情中,一开始全世界各地发生了大量科学家自杀事件,引起了警方重视,查案过程根据人物关系线索一步步排查,就如上面的图所示,随着线索越来越多,背后的真相逐步浮出水面。史强和汪淼发现大多数人都和叶文洁有着直接或者间接的联系,并派汪淼卧底,最终发现叶文洁的最终统帅身份。在图中也可以看出,叶文洁顶点周围有很多边关系(一度或二度邻居很多)。
MATCH (n)-[e:person_person]-(m) RETURN n,e,m
三体中的各种计划比较多,有的时候可能会被绕晕,这时候我们可以通过图的邻居顶点查询来查看该计划的相关人物和组织等。如"面壁计划"中,我们可以看到有四位人物与之相关,这四位也是被世人所寄予厚望的“面壁者”。
MATCH (p:plan {name: "面壁计划"})-[e]-(neighbor:person)
RETURN neighbor,p,e
我们往往希望知道两个人物之间的共同关联的人物都有谁,这样就能很快的掌握这两个人物之间的关系,在大数据量的情况下,使用cypher进行图关系分析就很方便!
MATCH (a:person {name: "叶文洁"})-[e1:person_person]->(n)<-[e2:person_person]-(b:person {name: "汪淼"})
RETURN a,b,n,e1,e2
随着剧情推进,我们逐步了解了"叶文洁"身上的多个标签,那么我们也可以将这些标签更新至“叶文洁”节点上:
MATCH (p:person {name: "叶文洁"})
SET p.introduce = "清华大学教授、ETO精神领袖、首位和三体人交流的人"
RETURN p
后续我们了解到了罗辑、程心等等人物和PIA、星环集团等组织,希望把这些作为节点添加至图中:
CREATE (a:person {introduce: "物理学教授", name: "bbb"})
RETURN a