Hello, I'd like to speak to Neo4j

Hello!

I've come to neo4j from a suggestion by a colleague on the visualisation of large graphs.

We're looking to attach the open-source speech understanding tool, Enguage (TM), to neo4j so we can interact with it by voice.
Perhaps such a thing exists already, but doing it with Enguage should be an interesting use-case.
Enguage already has other examples, such as verbal reasoning on Android and data mining Wikipedia.

So, this simply means transforming plain language into Cypher(?) queries (which Enguage can do!) and feeding this into a CLI, if such a thing exists.
If not, one could be 'easily' developed from the HelloWorldExample.java to feed in queries.
Enguage, itself, is written in Java and has hooks for running programs and directly calling Java methods, so there are several options.

I've got the sandbox server up and running, but the HelloWorldExample.java code doesn't seem to fit into it?
I started downloading and installing all the dependencies manually >:-O but there must be an easier way, so I'm reaching out!
Maybe I'm overthinking things - or I've probably missed something "obvious" (it won't be the first time!)

Any help/pointers would be gratefully recieved...

Kind regards,
Martin

If the code converts speech into cypher queries in string form, then you can use the Java driver to execute the queries. You need to interpret the results and give them to the user. The issue here is the results need to be typed. Each ad hoc query will have different return types. This does not seem to be an easy project.

Thanks for the reply.

Receiving different forms of output should be OK, I think. Is it that "count the number of people in the graph" return a number, whereas "what are the names of the people" will return a list? Can these not be turned into a String? If so, this shouldn't be an issue for me: the Enguage function will know what it is expecting. Enguage regards "count the number of people" as a function call, separate from "what are the names of the people", and processing the driver output is different in each case.

Does this help?

Should I be running mvn:test and checking the output from those driver calls? Out of the box, the Aaron Woodley example throws the first [ERROR] :-/

Any pointers would be appreciated, thanks!