neo4j 循环
在过去的几周中,我一直在阅读有关技能建设和将技能分解为更易于管理的部分的信息,最近我有机会分解了学习骑自行车所需的技能。
我最初勾画出了技术进步的草图,但很快意识到我已经绘制了一个依赖图,并认为将其放入Neo4j可以简化事情。
我最初的总体目标是“能够在公共公园中骑自行车”:
MERGE (:Goal:Task {name: "Be able to cycle through a public park"})
对于已经学会骑自行车的人来说,这个目标很容易,但是如果我们从头开始,这会有些艰巨,因此我们需要将其分解为可以练习的简单技能。
我们将用于任务分解的迷你算法是:
- 我们现在可以完成给定的任务吗?
- 将任务分解为更简单的内容,然后返回1。
要牢记的一件事是,我们不会在第一时间获得完美的故障,因此我们可能需要对其进行更改。 对于一张纸上绘制的图表来说,这很烦人,但是在Neo4j中,这只是一个更简单的重构。
回到骑自行车。 由于目标尚未实现,因此我们需要将其分解为一些容易的事情。 让我们从一个非常简单的事情开始:
MERGE (task:Task {name: "Take a few steps forward while standing over the bike"})
WITH task
MATCH (goal:Goal:Task {name: "Be able to cycle through a public park"})
MERGE (goal)-[:DEPENDS_ON]->(task)
在第一行中,我们创建新任务,然后将其连接到我们先前创建的目标。