【问题标题】:Tools for editing graph data and generating Cypher用于编辑图形数据和生成 Cypher 的工具
【发布时间】:2014-11-29 21:17:45
【问题描述】:

假设我正在为乐队成员建模。这是添加一些数据的示例:

CREATE
    (a:Band {name: "Metallica"}),

    (b1:Person {name: "James Hetfield"}),
    (b1)-[:JOINED {date: 1981}]->(a),
    (b1)-[:LEFT]->(a),

    (b2:Person {name: "Lars Ulrich"}),
    (b2)-[:JOINED {date: 1981}]->(a),
    (b2)-[:LEFT]->(a),

    (b3:Person {name: "Dave Mustaine"}),
    (b3)-[:JOINED {date: 1981}]->(a),
    (b3)-[:LEFT {date: 1983}]->(a),

    (b4:Person {name: "Ron McGovney"}),
    (b4)-[:JOINED {date: 1982}]->(a),
    (b4)-[:LEFT {date: 1983}]->(a),

    (b5:Person {name: "Cliff Burton"}),
    (b5)-[:JOINED {date: 1982}]->(a),
    (b5)-[:LEFT {date: 1986}]->(a),

    (b6:Person {name: "Kirk Hammett"}),
    (b6)-[:JOINED {date: 1983}]->(a),
    (b6)-[:LEFT]->(a),

    (b7:Person {name: "Jason Newsted"}),
    (b7)-[:JOINED {date: 1986}]->(a),
    (b7)-[:LEFT {date: 2001}]->(a),

    (b8:Person {name: "Robert Trujillo"}),
    (b8)-[:JOINED {date: 2003}]->(a)
    (b8)-[:LEFT]->(a)

我一直在使用 Microsoft Access 来存储节点和关系数据,而不是手动编辑 Cypher 代码。

节点:

节点标签表:

节点与另一个表中的标签相关联:

关系:

可以使用子表单编辑关系属性:

有关系统的一些说明可在here 获得。

要将数据导入 Neo4j,我可以导出为 XML 并使用 PowerShell 生成等效的 Cypher。

在许多情况下,在 Access 表单中编辑数据比在原始 Cypher 中更方便。

当然,我不是唯一一个超越手动编辑 Cypher 代码来构建图形数据的人。

我的问题是,有没有专门为 Neo4j 编辑图形数据而设计的工具?

【问题讨论】:

    标签: ms-access neo4j cypher graph-databases


    【解决方案1】:

    另一个选项是 Structr (https://structr.org)。它使用 Neo4j 作为嵌入式数据库,并具有内置的数据编辑 UI:

    我推荐最新的快照 (2),它支持在同一个数据库存储上启动额外的 Neo4j 服务器,这样您就可以同时使用 Neo4j 和所有相关工具。

    要使用数据编辑,您首先需要使用可视化模式编辑器创建模式或数据模型。

    编辑关系属性有点棘手,但在 (3) 中描述了如何使其成为可能。

    (免责声明:我是 Struct 项目的发起人。)

    【讨论】:

      【解决方案2】:

      是的,这点非常好。将它作为浏览器的一部分来编辑/添加节点和关系数据会很酷。

      我想知道 Excel + 宏或 GDoc + AppScript 是否也可以工作。

      您还可以将它们导出为 CSV 并使用 load-csv 创建您的数据。

      LOAD CSV WITH HEADERS FROM "nodes.csv" as csv
      WHERE csv.label = "Person"
      CREATE (:Person {name:csv.name});
      
      
      LOAD CSV WITH HEADERS FROM "rels.csv" as csv
      WHERE csv.label = 'JOINED'
      MATCH (a:Person {name:csv.A})
      MATCH (b:Band {name:csv.B})
      CREATE (a)-[:JOINED]->(b);
      

      Rik Van Bruggen 有很多其他将数据导入 Neo4j 的方法,请参阅:http://blog.bruggen.com(例如“电子表格”方法)。

      【讨论】:

        【解决方案3】:

        一个选项是SylvaDB。您可以直观地创建数据架构,然后通过拖放构建查询。可视化生成的网络,运行一些指标,甚至按计划生成报告并将结果发送到您的电子邮件。唯一需要注意的是,导入工具仍处于起步阶段。

        • 图表的主仪表板

        • PageRank 和好友的分析工具。

        • 带有过滤功能的基本数据列表。

        • 架构。

        • 可视化查询编辑器。

        【讨论】:

        • 席尔瓦似乎停止了发展。它似乎只适用于 neo4j 1.9。
        • 是的。不幸的是,新功能的开发现在已经停止。但是代码库足够模块化,可以轻松地为新版本的 Neo4j 创建适配器。
        【解决方案4】:

        参考https://stackoverflow.com/a/42910609/10189759

        似乎 Linxurious , Neoclipse , Structr 有效

        但是相当过时且难以安装

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-15
          • 2014-10-07
          相关资源
          最近更新 更多