【问题标题】:Neo4J - How best to get a minimal ASCII-art representation of graph?Neo4J - 如何最好地获得图形的最小 ASCII 艺术表示?
【发布时间】:2015-03-07 20:15:43
【问题描述】:

我正在使用 Neo4J Java Traversal API,并围绕我的代码进行了许多测试。

如果我可以在失败的测试中记录图形的 ASCII 艺术表示,那么调试会容易得多。

显然,“记录” Neo4J 图在生产代码中很笨拙,但在测试中很实用,因为图只包含少数节点和关系。

请问如何最好地获得 Neo4J 图形的 ASCII 艺术表示?

【问题讨论】:

标签: neo4j


【解决方案1】:

我查看了各种可视化库,但似乎很少(如果有的话)与简单的嵌入式 ImpermanentDatabase 一起工作。我不想为此依赖外部工具。

我已决定运行即席 Cypher 查询并将结果转储到控制台:

println(new ExecutionEngine(db).execute(
  "match (p:USER)-[r]-(c:USER) return p.screenname, r, c.screenname"
).dumpToString())

【讨论】:

    【解决方案2】:

    那似乎会很痛苦。使用一个为图像文件生成可视图形并在失败时生成/打开该文件的库怎么样?这篇文章似乎有一些用于在 java 中生成图形可视化的好库:

    Java graph library for dynamic visualisation

    【讨论】:

    • 同意这会很痛苦,但图像并不是一个很好的解决方案;他们可能在这种狭隘的情况下工作,但他们当然不能被抓住。
    • 我不了解 ASCII 艺术,但我能想到的最接近的东西可能是 RDF Turtle。它是一种用于表达图形的简单文本紧凑格式(尽管是 RDF,但需要对 neo4j 进行调整)。很难弄清楚一条线上要放多少。如果图是一个有 3 个孩子的树根 X,它应该写成 (X)->(A)、(X)->(B)、(X)->(C) 还是什么?
    猜你喜欢
    • 2013-06-27
    • 2016-07-02
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 2016-10-12
    • 2010-12-14
    • 1970-01-01
    相关资源
    最近更新 更多