1. 概要

このチュートリアルでは、テキスト入力に基づいて依存関係グラフを生成するために使用できるツールについて学習します。

2. 依存関係グラフ

依存関係グラフは、頂点間に存在する関係を表す有向エッジを持つグラフです。 その典型的な使用法は、ソフトウェア開発のプロセスなどのプロセスの記述で構成されます。 または知識グラフに含まれるものなどの関係

すべての有向グラフと同様に、依存関係グラフは、ラベル付きのボックスまたは円として表されるノードまたは頂点と、それらを必須のトラバーサル方向で接続する矢印で構成されます。

科学文献では、依存関係グラフは、意味関係を表すイベント間の時間的および因果的依存関係、または電子回路内の電流の流れの標準です。 コンピュータサイエンスで作業している場合、依存関係グラフの描画は頻繁に行われるため、私たちの側の簡単なテキストによる指示に基づいて、描画を自動化するツールを使用する必要があります。

これを支援するために、それらのいくつかを、それらのアプリケーションの例とともに見ていきます。 それらを使用すると、依存関係グラフを手動で描画するために費やす時間が大幅に短縮されます。

3. 依存関係グラフを描画するためのツール

3.1. Graphviz

Graphviz は、機械学習決定木のグラフィック表現に頻繁に使用されるため、非常に人気のあるグラフを視覚化するためのソフトウェアです。 その人気は、 Python R Java 、などのほとんどのプログラミング言語でそれを実装するライブラリの存在に由来しています。 X169X]Scala。

Graphvizは、 DOT と呼ばれる簡略化された言語を使用します。これは、プログラマーによって定義されたノードラベルのセットの周りにグラフを作成します。 GraphvizのWebバージョンもあり、ソフトウェアをインストールしなくても、グラフの説明をブラウザーに直接入力できます。 たとえば、次のコードを試すことができます。

graph G {
    rankdir=LR
    "This graph" -- "has" -- "two leaves" -- 1;
    "two leaves" -- 2;
}

この画像を生成します:

3.2. マーメイド

もう1つの同様のツールは、 Mermaid です。これは、2019年の最もエキサイティングなテクノロジーとしてJavaScriptオープンソース賞を最近受賞しました。 Mermaidには、Markdownインタープリターに簡単に統合できるという利点があります。 これは、 Jupyter Notebooks で作業していて、いくつかの依存関係チャートをすばやく描画する必要がある場合に特に便利です。 この言語では、さまざまな形状のノードを定義し、ノードとエッジの両方にラベルを追加できます。

Mermaidを使用するWebページもあり、外出先でアイデアをテストできます。 これは、Mermaidでグラフを作成するためのサンプルコードです。

graph TD
  A[/How to get rich/] --- B([Open a business]);
  B --> C[Buy low];
  C --> D[Sell high];
  D -->|repeat| C
  D --> E([Profit]);

コードは次の図を生成します。

3.3. WebSequenceDiagrams

WebSequenceDiagrams は、ソフトウェアではなくWebサイトであり、依存関係グラフの描画といくつかの追加レイヤーの追加を可能にします。 その無料バージョンでは、グラフを読者にとってより興味深いものにするいくつかの単純な画像とレイアウトを追加できます

その構文は単純であり、上記のツールと同様に、矢印が点在するノードを示すことによってグラフを定義しましょう。 単純なループまたはオプションを追加のレイヤーとしてグラフに追加することもできます。

title Holiday Plans
opt finances
    Stay Home->Travel: If enough money
else documents
    Stay Home->Travel: If has visa
end

上記の切り取りは、次の出力を生成します。

3.4. Nomnoml

もう1つの便利なツールはnomnomlです。これは同様の機能を実行しますが、より「コミック」または漫画風のスタイルを備えています。 角括弧表記を使用し、CSSのようなスタイルに従ってグラフをカスタマイズできます。

その主な利点は、Webベースであるため、インストールが不要であるという事実にあります。 さらに、PNG形式とSVG形式の両方で画像をエクスポートしたり、コードやグラフを再作成するリンクを直接共有したりすることもできます。

[Develop software]->[Publish it]
[Publish it] -> [<actor>User feedback]
[User feedback] -> [Negative feedback]
[Negative feedback] --> [Add features] 
[Add features] --> [Publish it]

出力グラフは次のようになります。

3.5. yUML

yUML は、角括弧言語に基づいてグラフを描画できるWebツールです。 特に興味深いのは、図を非公式で親しみやすい外観にする、だらしないグラフの描画を可能にする機能です。 yUMLを使用すると、グラフに付箋を追加することもできます。これにより、解釈しやすい追加のコメントを提供できます。

[A]<>->[B]
[B]<-[C]
[A]->[C]
[note: This is a sticky note {bg:yellow}]

これは、コードが生成する画像です。

3.6. ラテックス

そして最後に、LaTeXを使用してグラフを表すこともできます。 一方では、その構文は以前のどのツールよりも確かに複雑です。 一方、 LaTeXは、依存関係グラフのすべての要素をカスタマイズするための優れた機能を提供します。

4. 結論

この記事では、依存関係グラフを生成するために使用できるいくつかのツールについて学習しました。