Subject: Re: bug#26807: [PATCH] graph: Add Cypher backend.

From: Roel Janssen <[email-masked]>
Date: Thu, 11 May 2017 14:57:51 +0200

Ludovic Courtès writes:

> Hello!
>
> Roel Janssen <[email-masked]> skribis:
>
>> From 0e9c95ef3473fa7066ccd5991b1c14400aaa7076 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <[email-masked]>
>> Date: Sat, 6 May 2017 23:15:03 +0200
>> Subject: [PATCH] graph: Add Cypher backend.
>>
>> * guix/graph.scm (%cypher-backend): New variable.
>
> If Neo4j is free software and packageable (is it Java?), why not!

Yes, it's Java, so a lot of work to package.

Fortunately, there is also AgensGraph which is similar to the PostgreSQL
package, and it supports openCypher as well.  So I tried it, and the
queries will work with the latest git checkout of AgensGraph.  Their
latest release does not support automatically creating labels for the
nodes and edges, which was fixed in this commit:

https://github.com/bitnine-oss/agensgraph/commit/5eaecc1d429a08165bb964013ab8ee5516a062e7

So I think the output of what my patch produces should be fine for
multiple implementations of openCypher.

> Could you add a few lines in guix.texi under “Invoking guix graph”?
> Maybe give an example invocation of cypher and explain how it differs
> from the other backends (interactive features maybe?).

Would the attached patch be fine for the manual?

Thanks!

Kind regards,
Roel Janssen

>From fe42c8fe8f50f7b58007f0ef8302307342695e07 Mon Sep 17 00:00:00 2001
From: Roel Janssen <[email-masked]>
Date: Thu, 11 May 2017 14:50:09 +0200
Subject: [PATCH] doc: Add documentation about cypher backend for 'guix graph'.

* doc/guix.texi: Add documentation.
---
 doc/guix.texi | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 81aa957c6..a5b787510 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6197,7 +6197,9 @@ provides a visual representation of the DAG.  By default,
 @uref{http://www.graphviz.org/, Graphviz}, so its output can be passed
 directly to the @command{dot} command of Graphviz.  It can also emit an
 HTML page with embedded JavaScript code to display a ``chord diagram''
-in a Web browser, using the @uref{https://d3js.org/, d3.js} library.
+in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or
+emit Cypher queries to construct a graph in a graph database supporting
+the @uref{http://www.opencypher.org/, openCypher} query language.
 The general syntax is:
 
 @example
-- 
2.13.0