3
votes

Let's suppose I'm modeling band membership. Here's an example of adding some data:

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)

Instead of editing Cypher code manually, I've been using Microsoft Access to store the node and relationship data.

Nodes:

enter image description here

Table for node labels:

enter image description here

Nodes are associated with labels in another table:

enter image description here

Relationships:

enter image description here

Relationship properties can be edited using subforms:

enter image description here

Some notes about the system are available here.

To get the data into Neo4j, I can export to XML and generate the equivalent Cypher using PowerShell.

Editing the data in Access forms is in many cases more convenient than in raw Cypher.

Surely I'm not the only one who has moved beyond manually editing Cypher code to build graph data.

My question is, are there any tools that are specifically designed to edit graph data for Neo4j?

4

4 Answers

2
votes

Another option is Structr (https://structr.org). It uses Neo4j as embedded database and has a built-in data editing UI:

Structr Data Editing UI

I recommend the latest snapshot (2) which supports starting an additional Neo4j server on the same database store so you can use Neo4j and all related tools simultaneously.

To use the data editing, you first need to create a schema or data model with the visual Schema Editor.

Editing relationship properties is a bit tricky, but in (3) is a description of how to make it possible.

(Disclaimer: I'm the initiator of the Struct project.)

1
votes

Yes, really good point. It would be cool to have this as part of the browser to edit / add node and relationship data.

I wonder if Excel + Macros or GDoc + AppScript would work too.

You can also export them as CSV and use load-csv to create your data.

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 has a lot of other ways of importing data into Neo4j, please see: http://blog.bruggen.com (e.g. the "spreadsheet" method).

1
votes

An option is SylvaDB. You can create your data schema visually, and then build queries by dragging and dropping. Visualize the resulting network, run some metrics, and even generate reports on schedule and have the results sent to your e-mail. The only caveat, the importing tool is still in its infancy.

  • Main dashboard of a graph

Dashboard

  • Analysis tool with PageRank and friends.

Analysis

  • Basic data lists with filtering.

Data

  • Schema.

Schema

  • Visual query editor.

Queries

-1
votes

Referring to https://stackoverflow.com/a/42910609/10189759

seems that Linxurious ,Neoclipse ,Structr works

however quite outdated and difficult to install