jexp / neo4j-shell-tools

A bunch of import/export tools for the neo4j-shell
288 stars 55 forks source link

Error exporting neo4j movies database to graphml #69

Open lukeasrodgers opened 8 years ago

lukeasrodgers commented 8 years ago

I ran through the neo4j movies tutorial with a new installation, and then tried exporting the data to graphml and cypher.

movies.graphml movies.cypher

EDIT dang keyboard shortcuts caused issue to be submitted before I was done

As you can see from the graphml export, the role data for all the acted_in edges is incorrectly exported. The cypher export, on the other hand, worked fine.

Using tools verison 2.2 and neo4j version 2.3.1-community on OSX, java 1.8.0_25

jexp commented 8 years ago

Thanks for the heads-up, I check the export of array properties. That was an issue in other formats too. What would be sensible? Comma separated strings?

lukeasrodgers commented 8 years ago

To be honest, I'm not sure, I'm not very familiar with GraphML. It appears that it is possible from the spec to nest data elements inside data elements, so you could do something like <data key="roles"><data key="role">role1</data><data key="role">role2</data></data>. One possible advantage of that over CSV inside the data element would be it would mitigate the need for escaping commas inside values. EDIT a disadvantage of this would the parser/exporter might have to programmatically depluralize "roles" to "role" which would be error-prone.

For my particular use-case, what would be "most sensible" is whatever would make it easiest for Neo4j to import the data correctly.

thanks

mikernorton commented 7 years ago

Is there any progress on this? I'm still seeing this issue in tools v3.1.0 when used against neo4j-enterprise 3.1.4, Red Hat 7.3 with java version java-1.8.0-openjdk-headless-1.8.0.131-2.b11.el7_3.

Edit: Oops, I see perhaps the proper issue to reference would be Issue #44, would that be correct?

jexp commented 7 years ago

With neo4j-shell being deprecated, I currently focus the effort on the apoc library which can be used both from shell and browser. APOC also has export-graphml functionality that contains the lastest fixes.

Please have a look in the APOC docs