Recap: Getting Started with Neo4j | Webinar Series #2


Hey everyone!

For all of you who weren’t able to make our webinar, Getting Started with Neo4j, we’ve edited the webinar and have a summary of our Q&A session.


Q: Can you go over more complex specific querying in the HTTP console?
A: Michael Hunger hosts a more in-depth exploration of querying with Cypher in this Neo4j Screencast. Also, the Neo4j Manual has a good section on Cypher.
For Gremlin scripting, TinkerPop has a ton of great information on the project website.

Q: How does auto indexer work?
A: The auto-indexer can be configured to add indexing entries based on specific node properties. When a node with an auto-index property is saved, an index entry will be saved for it. For more details, see the Neo4j Manual section on Auto Indexing.

Q: What about SPARQL?
A: SPARQL is a query language specifically for RDF, which is a particular type of graph. You can use Neo4j as an RDF store, and then run SPARQL queries against it using TinkerPop. Davey Suvee has written a nice blog post that does just that.

Q: And where is the GA version?
A: The latest stable version of Neo4j (our GA, or General Availability release) and milestone version (interim development release) are always available from https://neo4j.org/download/.

Q: How do I run webadmin using the High Availability version?
A: Webadmin is always available from any edition of Neo4j – Community, Advanced or Enterprise. In High Availability mode, each data node in the cluster will have a webadmin available for monitoring.

Q: What is the difference between milestone vs stable version?
A: A milestone is an interim release that has been quality tested, but contains features which may still change before a stable release. Milestones occur roughly every two weeks.

Our stable releases are marked as GA for General Availability, and vary between 3 to 4 months of development. Our minor increments (1.4 to 1.5) that are released as GA are scoped for including specific features, while the milestones are really snapshots in time along the way towards that stable release.


Q: Webadmin server needs to start first manually, doesn’t it?
A: There was a time when webadmin was a standalone entity, but now it starts up with the server. When the server is ready to serve data, webadmin is ready to display it.

Q: What about zoom in zoom out, leveling type of graphs?
A: Webadmin isn’t a full featured graph visualization tool, though we will continue to development incremental improvements. We consider it almost more of a debugging tool, to easily explore the details of a graph. For more elaborate graph visualization take a look at something like Gephi.

Q: Do you plan to identify, present the added value complementary product around Neo4j?
A: There is a vibrant ecosystem of tools and libraries built around Neo4j. We will indeed be highlighting the more prominent projects on our website and would also consider special blogs, meetups, or webinars about them. Let us know if there’s something you’d be interested in hearing about.

Q: How do you manage from a graph perspective, node or relationship aggregation, node removal…?
A: Aggregation operations are possible with both Cypher and Gremlin. Again, check out the Neo4j Manual or the Gremlin wiki. Deleting is a single node operation; while you could script it with Gremlin, there isn’t at the moment a “delete all” operation for deleting sets of nodes at once.

Q: Is it possible to specify relationships between relationships? For example, saying that “KNOWS” relationship is like “RECOGNIZES”, so the query returns results from both KNOWS and RECOGNIZES?
A: In Neo4j’s “property graph” model, relationships do have a type, but it isn’t a type system. The “type” of a relationship is really a simple named tag, or label. This is an interesting suggestion and we’ll consider whether to support it in the future.

Q: How hard is it to embed Neo4j in an Android app? I’ve tried quite hard but haven’t had success.
A: There was some recent discussion about this on the mailing list.

Q: How does clustering handle simultaneous writes?
A: Writes are always serialized through the master. So, multiple concurrent transactions compete for a write lock, executing one at a time. More details can be found in the Neo4j Manual section on transactions.

Q: How can we ensure the transactions are in sync with DB if we have graph database on top of oracle DB?
A: Do you mean storing data in Neo4j, with references to data stored in an Oracle DB? Neo4j can be used with an external transaction manager. Chris Gioran has a nice blog post where he explores that. Read about it here: https://bit.ly/ntaU3W

Q: Can you show some examples for multi-relation?
A: Adding multiple relationships is just as easy as adding a single relationship — just keep adding relationships, even of the same type (perhaps differing in properties). As an example within a social domain, consider:

(andreas)-[:KNOWS]->(peter)
(andreas)-[:WORKS-WITH]->(peter)
(andreas)-[:LIKES]->(bacon)



Want to learn more about graph databases? Click below to get your free copy of O’Reilly’s Graph Databases ebook and discover how to use graph technologies for your application today.

Download My Ebook