Hello,
I am still struggling with very basic things trying to use Neo4j and the Graph Data Science Package.
I have a Neo4j databased containing amongst other things people nodes. Following Neo4j graph database designs best practices, in the database the Person->Person relationship although undirected is represented by just 1 directed relationship and queried as undirected (e.g. (a)-[:KNOWS]->(b)).
Now when I project the database into a GDS graph using native projection, I set the relationship orientation to UNDIRECTED. Once I compute all the metrics I need, I export the graph with the GDS gds.graph.export()
procedure, create a Database out of it and use the APOC procedure apoc.export.graphml.all()
procedure to save that as a GML file.
Now, when the graph is exported, each UNDIRECTED relationships is converted automatically into 2 directed relationships (would be nice to have some control here...). (e.g. (a)-[:KNOWS]->(b) and (b)-[:KNOWS]->(a))
But it gets worse. When I want to reimport the GML file into a database, and project it into a GDS graph, if I project it as UNDIRECTED, I get double relationships! Because both (a)-[:KNOWS]->(b) and (b)-[:KNOWS]->(a) are each converted into an UNDIRECTED relationship!
If I project as NATURAL, then I can't use the algorithm requiring UNDIRECTED relationships.
I can't find a clean way to do this, which seems like a common use case.
Any help would be appreciated. Thank you in advance
Neo4j Desktop: 1.5.7
Neo4j DBMS: 5.4.0
APOC version: 5.4.1
GDS version: 2.3.1
Python Neo4j client: 5.4.0
Python GDS client: 1.6