本文将通过两个具体实例,演示如何在图数据库 Neo4j中构建结构化的节点数据。我们将分别创建以“姚明”和“知识图谱”为核心实体的两个节点簇,展示从根节点创建到子节点关联的完整过程。
实例一:构建“姚明”实体节点簇 (根节点ID: 30000)
本节点簇旨在构建一个描述“姚明”实体的结构化数据,包含其基本信息与多个别名。
1. 创建根节点
首先,我们创建代表“姚明”本人的根节点,标签为YAOMING,并为其赋予初始属性。
CREATE (root:YAOMING {id: 30000, name: '姚明[亚洲篮球联合会主席、中国篮球协会主席]', categary: '百科'});
2. 创建并关联子节点
接下来,我们为根节点创建7个子节点,分别代表外文名、别名、国籍和民族等信息,并使用HAS_CHILD关系将它们连接起来。
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494936:YAOMING {id: 1599811494936, name: 'YaoMing', categary: '外文名'})
CREATE (root)-[:HAS_CHILD]->(child1599811494936);
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494937:YAOMING {id: 1599811494937, name: '明王', categary: '别名'})
CREATE (root)-[:HAS_CHILD]->(child1599811494937);
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494938:YAOMING {id: 1599811494938, name: '移动长城', categary: '别名'})
CREATE (root)-[:HAS_CHILD]->(child1599811494938);
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494939:YAOMING {id: 1599811494939, name: '小巨人', categary: '别名'})
CREATE (root)-[:HAS_CHILD]->(child1599811494939);
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494930:YAOMING {id: 1599811494930, name: '大姚', categary: '别名'})
CREATE (root)-[:HAS_CHILD]->(child1599811494930);
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494931:YAOMING {id: 1599811494931, name: '中国', categary: '国籍'})
CREATE (root)-[:HAS_CHILD]->(child1599811494931);
MATCH (root:YAOMING {id: 30000})
CREATE (child1599811494932:YAOMING {id: 1599811494932, name: '汉族', categary: '民族'})
CREATE (root)-[:HAS_CHILD]->(child1599811494932);
执行完成后,生成的节点簇结构如下图所示:

实例二:构建“知识图谱”实体节点簇 (根节点ID: 40000)
本节点簇用于构建“知识图谱”这一概念实体,是构建更复杂知识图谱的基础单元。
1. 创建根节点
创建代表“知识图谱”概念的根节点,标签为KnowledgeGraph。
CREATE (root:KnowledgeGraph {id: 40000, name: '知识图谱', categary: '百科'});
2. 创建并关联子节点
为根节点创建4个子节点,描述其中文名、外文名、别称及应用领域。
MATCH (root:KnowledgeGraph {id: 40000})
CREATE (child1599813559392:KnowledgeGraph {id: 1599813559392, name: '知识图谱', categary: '中文名'})
CREATE (root)-[:HAS_CHILD]->(child1599813559392);
MATCH (root:KnowledgeGraph {id: 40000})
CREATE (child1599813559393:KnowledgeGraph {id: 1599813559393, name: 'KnowledgeGraph/Vault', categary: '外文名'})
CREATE (root)-[:HAS_CHILD]->(child1599813559393);
MATCH (root:KnowledgeGraph {id: 40000})
CREATE (child1599813559394:KnowledgeGraph {id: 1599813559394, name: '科学知识图谱', categary: '也称'})
CREATE (root)-[:HAS_CHILD]->(child1599813559394);
MATCH (root:KnowledgeGraph {id: 40000})
CREATE (child1599813559395:KnowledgeGraph {id: 1599813559395, name: '理论与方法与计量学引文分析', categary: '应用'})
CREATE (root)-[:HAS_CHILD]->(child1599813559395);
该节点簇的最终结构如下:

总结
通过以上两个步骤清晰的实例,我们演示了在Neo4j中创建实体及其关联属性的基本方法。这种以根节点为中心、关联各类属性子节点的模式,是构建基础知识图谱数据的有效实践。后续可以在此基础上,继续扩展更多实体(如ID为50000的节点簇)并建立实体间的丰富关系,逐步形成完整的图数据网络。