Subject: Re: [bug#30711] [PATCH 1/1] guix: graph: Add Trival Graph Format (TGF) backend.

From: [email-masked] (Ludovic Courtès)
Date: Tue, 06 Mar 2018 11:32:31 +0100

Hi,

Hartmut Goebel <[email-masked]> skribis:

> Am 05.03.2018 um 18:17 schrieb Ludovic Courtès:
>> Can you tell us more about the Trivial Graph Format? 
>
> This is a *very* simple format, see
> https://en.wikipedia.org/wiki/Trivial_Graph_Format. You can only define
> nodes, edges and labels. Edges are always directed. I don't know whether
> it is wide-spread. By chance I used it to import data into yEd
> (non-free, by chance mentioned in the Wikipedia-article), which allows
> to select quite some different graph layouts.
>
> So the first decision should be whether TFG should be included.

I must say I’m skeptical, in large part because the dot format is
already simple enough and implement by a number of graph-processing
tools, not just Graphviz.

> TGF requires all nodes to be defined prior to any of their edges,
> otherwise the edge's Ids will be taken as labels. Thus the export-graph
> needs to be changed to first emit all nodes and then the edges. Due do
> my little guile-knowledge I did not manage to change the code accordingly.

The issue is that the API currently assumes that backends are stateless:
they can just emit a node or an edge anytime we ask them, without prior
knowledge.  That doesn’t work for TGF.

TGF alone may not warrant a change in the backend API, if you ask me
;-), but there may be other things that would require the backend API to
be less stupid.  An ASCII rendering of the graph would need to be
stateful, for instance.

Needs more thought…

Ludo’.