Ditched neo4j for now. Jung is being used instead, which is a Java API, so the graph is stored in memory only. Neo4j could still be useful, but there seemed to be problems combining the java API and cypher queries, as the edge labels created using the API didn't seem to be recognised by Cypher queries.
test