user21526: I came across this Opening tree graph question where a very elegant Opening tree as displayed.
 

Is there a way I could make a personal opening book in this format? If yes, then which software should (preferentially free) I use? 
If yes, how do you handle transposition?
If no, is there some there some other efficient way of storing personal opening line ?

Clarification : Maybe by question was misleading but  I was searching for something as a tool to create a opening lines guide by manually entering the moves rather than from a database.

user23100: https://tailuge.github.io/chess-o-tron/public/openings/openingtree.html
and
https://www.openingtree.com/ 
both create something similar from your games on lichess.org. I do not believe they take into account opening names or transpositions. 
You could draw this on paper, or you could use a online drawing software such as Lucidchart or Google Drawings. 

user23158: Given various tell-tale signs, that graph was almost certainly generated with GraphViz.  GraphViz is free, so you can produce similar diagrams yourself by downloading and installing it, or by using an online editor.  If you want to mimic the style in the diagram you posted, start with a template that looks like this:
digraph chess_openings {
    {
        node [shape=point];
    }
    {
        node [shape=box];
    }
}

which creates two groups of nodes: one for positions, which will be shown as points, and one for moves, which will be shown as boxes.
For each of white's moves, you'll have to write code that looks something like this in the second group:
p0 -> p0_1e4 [label="Sicilian"]; p0_1e4 [label="1. e4"]; p0_1e4 -> p1;

which says that "from Position #0 (p0), white can play the Sicilian by moving "1. e4", which will result in Position #1 (p1)".  Similarly, for black's moves, you'll have to write code that looks like this:
p1 -> p1_1c5 [label="Sicilian"]; p1_1c5 [label="1. … c5", style=filled]; p1_1c5 -> p2;

which says that "from Position #1, black can play the Sicilian by moving "1. … c5", which will result in Position #2".  If you have a live preview running, the position numbers will be visible in the diagram as you write the moves.  When you're ready to hide a position, add it to a list in the first group:
p0, p1, p2;

Below is a transcription of the graph in your question.  You can play with the code here.
digraph chess_openings {
    {
        node [shape=point];
        p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42;
    }
    {
        node [shape=box];
        p0 -> p0_1e4 [label="Sicilian"]; p0_1e4 [label="1. e4"]; p0_1e4 -> p1;
        p1 -> p1_1c5 [label="Sicilian"]; p1_1c5 [label="1. … c5", style=filled]; p1_1c5 -> p2;
        p2 -> p2_2Nf3 [label="Open Sicilian"]; p2_2Nf3 [label="2. Nf3"]; p2_2Nf3 -> p3;
        p3 -> p3_2d6 [label="Mainline"]; p3_2d6 [label="2. … d6", style=filled]; p3_2d6 -> p4;
        p4 -> p4_3d4 [label="Mainline"]; p4_3d4 [label="3. d4"]; p4_3d4 -> p5;
        p5 -> p5_3cxd4 [label="Mainline"]; p5_3cxd4 [label="3. … cxd4", style=filled]; p5_3cxd4 -> p6;
        p6 -> p6_4Nxd4 [label="Mainline"]; p6_4Nxd4 [label="4. Nxd4"]; p6_4Nxd4 -> p7;
        p7 -> p7_4Nf6 [label="Mainline"]; p7_4Nf6 [label="4. … Nf6", style=filled]; p7_4Nf6 -> p8;
        p8 -> p8_5Nc3 [label="Mainline"]; p8_5Nc3 [label="5. Nc3"]; p8_5Nc3 -> p9;
        p9 -> p9_5e6 [label="Scheveningen"]; p9_5e6 [label="5. … e6", style=filled]; p9_5e6 -> p10;
        p10 -> p10_6Be2 [label="Scheveningen"]; p10_6Be2 [label="6. Be2"]; p10_6Be2 -> p11;
        p11 -> p11_6a6 [label="Scheveningen"]; p11_6a6 [label="6. … a6", style=filled]; p11_6a6 -> p12;
        p9 -> p9_5a6 [label="Najdorf"]; p9_5a6 [label="5. … a6", style=filled]; p9_5a6 -> p13;
        p13 -> p13_6Be2 [label="Najdorf"]; p13_6Be2 [label="6. Be2"]; p13_6Be2 -> p14;
        p14 -> p14_6e6 [label="Najdorf → Scheveningen"]; p14_6e6 [label="6. … e6", style=filled]; p14_6e6 -> p12;
        p9 -> p9_5g6 [label="Dragon"]; p9_5g6 [label="5. … g6", style=filled]; p9_5g6 -> p15;
        p15 -> p15_6Be3 [label="Yugoslav"]; p15_6Be3 [label="6. Be3"]; p15_6Be3 -> p16;
        p15 -> p15_6Be2 [label="Dragon"]; p15_6Be2 [label="6. Be2"]; p15_6Be2 -> p17;
        p9 -> p9_5Nc6 [label="Classical"]; p9_5Nc6 [label="5. … Nc6", style=filled]; p9_5Nc6 -> p18;
        p18 -> p18_6Be2 [label="Classical"]; p18_6Be2 [label="6. Be2"]; p18_6Be2 -> p19;
        p3 -> p3_2Nc6 [label="Kalashnikov"]; p3_2Nc6 [label="2. … Nc6", style=filled]; p3_2Nc6 -> p20;
        p20 -> p20_3d4 [label="Kalashnikov"]; p20_3d4 [label="3. d4"]; p20_3d4 -> p21;
        p21 -> p21_3cxd4 [label="Kalashnikov"]; p21_3cxd4 [label="3. … cxd4", style=filled]; p21_3cxd4 -> p22;
        p22 -> p22_4Nxd4 [label="Kalashnikov"]; p22_4Nxd4 [label="4. Nxd4"]; p22_4Nxd4 -> p23;
        p23 -> p23_4g6 [label="Sveshnikov → Accelerated Dragon"]; p23_4g6 [label="4. … g6", style=filled]; p23_4g6 -> p24;
        p24 -> p24_5Nc3 [label="Accelerated Dragon"]; p24_5Nc3 [label="5. Nc3"]; p24_5Nc3 -> p25;
        p25 -> p25_5Bg7 [label="Accelerated Dragon"]; p25_5Bg7 [label="5. … Bg7", style=filled]; p25_5Bg7 -> p26;
        p26 -> p26_6Be3 [label="Accelerated Dragon"]; p26_6Be3 [label="6. Be3"]; p26_6Be3 -> p27;
        p23 -> p23_4e5 [label="Kalashnikov"]; p23_4e5 [label="4. … e5", style=filled]; p23_4e5 -> p28;
        p23 -> p23_4Nf6 [label="Sveshnikov"]; p23_4Nf6 [label="4. … Nf6", style=filled]; p23_4Nf6 -> p29;
        p29 -> p29_5Nc3 [label="Sveshnikov"]; p29_5Nc3 [label="5. Nc3"]; p29_5Nc3 -> p30;
        p30 -> p30_5d6 [label="Sveshnikov → Classic"]; p30_5d6 [label="5. … d6", style=filled]; p30_5d6 -> p18;
        p30 -> p30_5e6 [label="Sveshnikov → Four Knights"]; p30_5e6 [label="5. … e6", style=filled]; p30_5e6 -> p31;
        p23 -> p23_4e6 [label="Sveshnikov → Taimanov"]; p23_4e6 [label="4. … e6", style=filled]; p23_4e6 -> p32;
        p32 -> p32_5Nc3 [label="Taimanov"]; p32_5Nc3 [label="5. Nc3"]; p32_5Nc3 -> p33;
        p33 -> p33_5Nf6 [label="Taimanov → Four Knights"]; p33_5Nf6 [label="5. … Nf6", style=filled]; p33_5Nf6 -> p31;
        p33 -> p33_5a6 [label="Taimanov"]; p33_5a6 [label="5. … a6", style=filled]; p33_5a6 -> p34;
        p3 -> p3_2e6 [label="Four Knights"]; p3_2e6 [label="2. … e6", style=filled]; p3_2e6 -> p35;
        p35 -> p35_3d4 [label="Four Knights"]; p35_3d4 [label="3. d4"]; p35_3d4 -> p36;
        p36 -> p36_3cxd4 [label="Four Knights"]; p36_3cxd4 [label="3. … cxd4", style=filled]; p36_3cxd4 -> p37;
        p37 -> p37_4Nxd4 [label="Four Knights"]; p37_4Nxd4 [label="4. Nxd4"]; p37_4Nxd4 -> p38;
        p38 -> p38_4Nf6 [label="Four Knights"]; p38_4Nf6 [label="4. … Nf6", style=filled]; p38_4Nf6 -> p39;
        p39 -> p39_5Nc3 [label="Four Knights"]; p39_5Nc3 [label="5. Nc3"]; p39_5Nc3 -> p40;
        p40 -> p40_5Nc6 [label="Four Knights"]; p40_5Nc6 [label="5. … Nc6", style=filled]; p40_5Nc6 -> p31;
        p38 -> p38_4Nc6 [label="Taimanov"]; p38_4Nc6 [label="4. … Nc6", style=filled]; p38_4Nc6 -> p32;
        p38 -> p38_4a6 [label="Kan"]; p38_4a6 [label="4. … a6", style=filled]; p38_4a6 -> p41;
        p41 -> p41_5Nc3 [label="Kan"]; p41_5Nc3 [label="5. Nc3"]; p41_5Nc3 -> p42;
        p42 -> p42_5Nc6 [label="Kan → Taimanov"]; p42_5Nc6 [label="5. … Nc6", style=filled]; p42_5Nc6 -> p34;
    }
}

This is what the output looks like:


21526: <p>I came across this <a href="https://chess.stackexchange.com/questions/4136/opening-tree-graph">Opening tree graph</a> question where a very elegant Opening tree as displayed.
 <img src="https://2.bp.blogspot.com/-cNVCvQNxkkQ/UNZONkCry7I/AAAAAAAAAZs/p21dAAXLXGE/s1600/sicilian.png" alt="text"></p>

<ol>
<li>Is there a way I could make a personal opening book in this format? If yes, then which software should (preferentially free) I use? </li>
<li>If yes, how do you handle transposition?</li>
<li>If no, is there some there some other efficient way of storing personal opening line ?</li>
</ol>

<p><strong>Clarification :</strong> Maybe by question was misleading but  I was searching for something as a tool to create a opening lines guide by manually entering the moves rather than from a database.</p>
 23100: <p><a href="https://tailuge.github.io/chess-o-tron/public/openings/openingtree.html" rel="nofollow noreferrer">https://tailuge.github.io/chess-o-tron/public/openings/openingtree.html</a>
and
<a href="https://www.openingtree.com/" rel="nofollow noreferrer">https://www.openingtree.com/</a> 
both create something similar from your games on lichess.org. I do not believe they take into account opening names or transpositions. </p>

<p>You could draw this on paper, or you could use a online drawing software such as Lucidchart or Google Drawings. </p>
 23158: <p>Given various tell-tale signs, that graph was almost certainly generated with <a href="http://www.graphviz.org/" rel="nofollow noreferrer">GraphViz</a>.  GraphViz is free, so you can produce similar diagrams yourself by <a href="http://www.graphviz.org/download/" rel="nofollow noreferrer">downloading and installing it</a>, or by using <a href="https://dreampuf.github.io/GraphvizOnline/" rel="nofollow noreferrer">an online editor</a>.  If you want to mimic the style in the diagram you posted, start with a template that looks like this:</p>

<pre><code>digraph chess_openings {
    {
        node [shape=point];
    }
    {
        node [shape=box];
    }
}
</code></pre>

<p>which creates two groups of nodes: one for positions, which will be shown as points, and one for moves, which will be shown as boxes.</p>

<p>For each of white's moves, you'll have to write code that looks something like this in the second group:</p>

<pre><code>p0 -&gt; p0_1e4 [label="Sicilian"]; p0_1e4 [label="1. e4"]; p0_1e4 -&gt; p1;
</code></pre>

<p>which says that "from Position #0 (<code>p0</code>), white can play the Sicilian by moving "1. e4", which will result in Position #1 (<code>p1</code>)".  Similarly, for black's moves, you'll have to write code that looks like this:</p>

<pre><code>p1 -&gt; p1_1c5 [label="Sicilian"]; p1_1c5 [label="1. … c5", style=filled]; p1_1c5 -&gt; p2;
</code></pre>

<p>which says that "from Position #1, black can play the Sicilian by moving "1. … c5", which will result in Position #2".  If you have a live preview running, the position numbers will be visible in the diagram as you write the moves.  When you're ready to hide a position, add it to a list in the first group:</p>

<pre><code>p0, p1, p2;
</code></pre>

<p>Below is a transcription of the graph in your question.  You can play with the code <a href="https://dreampuf.github.io/GraphvizOnline/#digraph%20chess_openings%20%7B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20node%20%5Bshape%3Dpoint%5D%3B%0A%20%20%20%20%20%20%20%20p0%2C%20p1%2C%20p2%2C%20p3%2C%20p4%2C%20p5%2C%20p6%2C%20p7%2C%20p8%2C%20p9%2C%20p10%2C%20p11%2C%20p12%2C%20p13%2C%20p14%2C%20p15%2C%20p16%2C%20p17%2C%20p18%2C%20p19%2C%20p20%2C%20p21%2C%20p22%2C%20p23%2C%20p24%2C%20p25%2C%20p26%2C%20p27%2C%20p28%2C%20p29%2C%20p30%2C%20p31%2C%20p32%2C%20p33%2C%20p34%2C%20p35%2C%20p36%2C%20p37%2C%20p38%2C%20p39%2C%20p40%2C%20p41%2C%20p42%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20node%20%5Bshape%3Dbox%5D%3B%0A%20%20%20%20%20%20%20%20p0%20-%3E%20p0_1e4%20%5Blabel%3D%22Sicilian%22%5D%3B%20p0_1e4%20%5Blabel%3D%221.%20e4%22%5D%3B%20p0_1e4%20-%3E%20p1%3B%0A%20%20%20%20%20%20%20%20p1%20-%3E%20p1_1c5%20%5Blabel%3D%22Sicilian%22%5D%3B%20p1_1c5%20%5Blabel%3D%221.%20%E2%80%A6%20c5%22%2C%20style%3Dfilled%5D%3B%20p1_1c5%20-%3E%20p2%3B%0A%20%20%20%20%20%20%20%20p2%20-%3E%20p2_2Nf3%20%5Blabel%3D%22Open%20Sicilian%22%5D%3B%20p2_2Nf3%20%5Blabel%3D%222.%20Nf3%22%5D%3B%20p2_2Nf3%20-%3E%20p3%3B%0A%20%20%20%20%20%20%20%20p3%20-%3E%20p3_2d6%20%5Blabel%3D%22Mainline%22%5D%3B%20p3_2d6%20%5Blabel%3D%222.%20%E2%80%A6%20d6%22%2C%20style%3Dfilled%5D%3B%20p3_2d6%20-%3E%20p4%3B%0A%20%20%20%20%20%20%20%20p4%20-%3E%20p4_3d4%20%5Blabel%3D%22Mainline%22%5D%3B%20p4_3d4%20%5Blabel%3D%223.%20d4%22%5D%3B%20p4_3d4%20-%3E%20p5%3B%0A%20%20%20%20%20%20%20%20p5%20-%3E%20p5_3cxd4%20%5Blabel%3D%22Mainline%22%5D%3B%20p5_3cxd4%20%5Blabel%3D%223.%20%E2%80%A6%20cxd4%22%2C%20style%3Dfilled%5D%3B%20p5_3cxd4%20-%3E%20p6%3B%0A%20%20%20%20%20%20%20%20p6%20-%3E%20p6_4Nxd4%20%5Blabel%3D%22Mainline%22%5D%3B%20p6_4Nxd4%20%5Blabel%3D%224.%20Nxd4%22%5D%3B%20p6_4Nxd4%20-%3E%20p7%3B%0A%20%20%20%20%20%20%20%20p7%20-%3E%20p7_4Nf6%20%5Blabel%3D%22Mainline%22%5D%3B%20p7_4Nf6%20%5Blabel%3D%224.%20%E2%80%A6%20Nf6%22%2C%20style%3Dfilled%5D%3B%20p7_4Nf6%20-%3E%20p8%3B%0A%20%20%20%20%20%20%20%20p8%20-%3E%20p8_5Nc3%20%5Blabel%3D%22Mainline%22%5D%3B%20p8_5Nc3%20%5Blabel%3D%225.%20Nc3%22%5D%3B%20p8_5Nc3%20-%3E%20p9%3B%0A%20%20%20%20%20%20%20%20p9%20-%3E%20p9_5e6%20%5Blabel%3D%22Scheveningen%22%5D%3B%20p9_5e6%20%5Blabel%3D%225.%20%E2%80%A6%20e6%22%2C%20style%3Dfilled%5D%3B%20p9_5e6%20-%3E%20p10%3B%0A%20%20%20%20%20%20%20%20p10%20-%3E%20p10_6Be2%20%5Blabel%3D%22Scheveningen%22%5D%3B%20p10_6Be2%20%5Blabel%3D%226.%20Be2%22%5D%3B%20p10_6Be2%20-%3E%20p11%3B%0A%20%20%20%20%20%20%20%20p11%20-%3E%20p11_6a6%20%5Blabel%3D%22Scheveningen%22%5D%3B%20p11_6a6%20%5Blabel%3D%226.%20%E2%80%A6%20a6%22%2C%20style%3Dfilled%5D%3B%20p11_6a6%20-%3E%20p12%3B%0A%20%20%20%20%20%20%20%20p9%20-%3E%20p9_5a6%20%5Blabel%3D%22Najdorf%22%5D%3B%20p9_5a6%20%5Blabel%3D%225.%20%E2%80%A6%20a6%22%2C%20style%3Dfilled%5D%3B%20p9_5a6%20-%3E%20p13%3B%0A%20%20%20%20%20%20%20%20p13%20-%3E%20p13_6Be2%20%5Blabel%3D%22Najdorf%22%5D%3B%20p13_6Be2%20%5Blabel%3D%226.%20Be2%22%5D%3B%20p13_6Be2%20-%3E%20p14%3B%0A%20%20%20%20%20%20%20%20p14%20-%3E%20p14_6e6%20%5Blabel%3D%22Najdorf%20%E2%86%92%20Scheveningen%22%5D%3B%20p14_6e6%20%5Blabel%3D%226.%20%E2%80%A6%20e6%22%2C%20style%3Dfilled%5D%3B%20p14_6e6%20-%3E%20p12%3B%0A%20%20%20%20%20%20%20%20p9%20-%3E%20p9_5g6%20%5Blabel%3D%22Dragon%22%5D%3B%20p9_5g6%20%5Blabel%3D%225.%20%E2%80%A6%20g6%22%2C%20style%3Dfilled%5D%3B%20p9_5g6%20-%3E%20p15%3B%0A%20%20%20%20%20%20%20%20p15%20-%3E%20p15_6Be3%20%5Blabel%3D%22Yugoslav%22%5D%3B%20p15_6Be3%20%5Blabel%3D%226.%20Be3%22%5D%3B%20p15_6Be3%20-%3E%20p16%3B%0A%20%20%20%20%20%20%20%20p15%20-%3E%20p15_6Be2%20%5Blabel%3D%22Dragon%22%5D%3B%20p15_6Be2%20%5Blabel%3D%226.%20Be2%22%5D%3B%20p15_6Be2%20-%3E%20p17%3B%0A%20%20%20%20%20%20%20%20p9%20-%3E%20p9_5Nc6%20%5Blabel%3D%22Classical%22%5D%3B%20p9_5Nc6%20%5Blabel%3D%225.%20%E2%80%A6%20Nc6%22%2C%20style%3Dfilled%5D%3B%20p9_5Nc6%20-%3E%20p18%3B%0A%20%20%20%20%20%20%20%20p18%20-%3E%20p18_6Be2%20%5Blabel%3D%22Classical%22%5D%3B%20p18_6Be2%20%5Blabel%3D%226.%20Be2%22%5D%3B%20p18_6Be2%20-%3E%20p19%3B%0A%20%20%20%20%20%20%20%20p3%20-%3E%20p3_2Nc6%20%5Blabel%3D%22Kalashnikov%22%5D%3B%20p3_2Nc6%20%5Blabel%3D%222.%20%E2%80%A6%20Nc6%22%2C%20style%3Dfilled%5D%3B%20p3_2Nc6%20-%3E%20p20%3B%0A%20%20%20%20%20%20%20%20p20%20-%3E%20p20_3d4%20%5Blabel%3D%22Kalashnikov%22%5D%3B%20p20_3d4%20%5Blabel%3D%223.%20d4%22%5D%3B%20p20_3d4%20-%3E%20p21%3B%0A%20%20%20%20%20%20%20%20p21%20-%3E%20p21_3cxd4%20%5Blabel%3D%22Kalashnikov%22%5D%3B%20p21_3cxd4%20%5Blabel%3D%223.%20%E2%80%A6%20cxd4%22%2C%20style%3Dfilled%5D%3B%20p21_3cxd4%20-%3E%20p22%3B%0A%20%20%20%20%20%20%20%20p22%20-%3E%20p22_4Nxd4%20%5Blabel%3D%22Kalashnikov%22%5D%3B%20p22_4Nxd4%20%5Blabel%3D%224.%20Nxd4%22%5D%3B%20p22_4Nxd4%20-%3E%20p23%3B%0A%20%20%20%20%20%20%20%20p23%20-%3E%20p23_4g6%20%5Blabel%3D%22Sveshnikov%20%E2%86%92%20Accelerated%20Dragon%22%5D%3B%20p23_4g6%20%5Blabel%3D%224.%20%E2%80%A6%20g6%22%2C%20style%3Dfilled%5D%3B%20p23_4g6%20-%3E%20p24%3B%0A%20%20%20%20%20%20%20%20p24%20-%3E%20p24_5Nc3%20%5Blabel%3D%22Accelerated%20Dragon%22%5D%3B%20p24_5Nc3%20%5Blabel%3D%225.%20Nc3%22%5D%3B%20p24_5Nc3%20-%3E%20p25%3B%0A%20%20%20%20%20%20%20%20p25%20-%3E%20p25_5Bg7%20%5Blabel%3D%22Accelerated%20Dragon%22%5D%3B%20p25_5Bg7%20%5Blabel%3D%225.%20%E2%80%A6%20Bg7%22%2C%20style%3Dfilled%5D%3B%20p25_5Bg7%20-%3E%20p26%3B%0A%20%20%20%20%20%20%20%20p26%20-%3E%20p26_6Be3%20%5Blabel%3D%22Accelerated%20Dragon%22%5D%3B%20p26_6Be3%20%5Blabel%3D%226.%20Be3%22%5D%3B%20p26_6Be3%20-%3E%20p27%3B%0A%20%20%20%20%20%20%20%20p23%20-%3E%20p23_4e5%20%5Blabel%3D%22Kalashnikov%22%5D%3B%20p23_4e5%20%5Blabel%3D%224.%20%E2%80%A6%20e5%22%2C%20style%3Dfilled%5D%3B%20p23_4e5%20-%3E%20p28%3B%0A%20%20%20%20%20%20%20%20p23%20-%3E%20p23_4Nf6%20%5Blabel%3D%22Sveshnikov%22%5D%3B%20p23_4Nf6%20%5Blabel%3D%224.%20%E2%80%A6%20Nf6%22%2C%20style%3Dfilled%5D%3B%20p23_4Nf6%20-%3E%20p29%3B%0A%20%20%20%20%20%20%20%20p29%20-%3E%20p29_5Nc3%20%5Blabel%3D%22Sveshnikov%22%5D%3B%20p29_5Nc3%20%5Blabel%3D%225.%20Nc3%22%5D%3B%20p29_5Nc3%20-%3E%20p30%3B%0A%20%20%20%20%20%20%20%20p30%20-%3E%20p30_5d6%20%5Blabel%3D%22Sveshnikov%20%E2%86%92%20Classic%22%5D%3B%20p30_5d6%20%5Blabel%3D%225.%20%E2%80%A6%20d6%22%2C%20style%3Dfilled%5D%3B%20p30_5d6%20-%3E%20p18%3B%0A%20%20%20%20%20%20%20%20p30%20-%3E%20p30_5e6%20%5Blabel%3D%22Sveshnikov%20%E2%86%92%20Four%20Knights%22%5D%3B%20p30_5e6%20%5Blabel%3D%225.%20%E2%80%A6%20e6%22%2C%20style%3Dfilled%5D%3B%20p30_5e6%20-%3E%20p31%3B%0A%20%20%20%20%20%20%20%20p23%20-%3E%20p23_4e6%20%5Blabel%3D%22Sveshnikov%20%E2%86%92%20Taimanov%22%5D%3B%20p23_4e6%20%5Blabel%3D%224.%20%E2%80%A6%20e6%22%2C%20style%3Dfilled%5D%3B%20p23_4e6%20-%3E%20p32%3B%0A%20%20%20%20%20%20%20%20p32%20-%3E%20p32_5Nc3%20%5Blabel%3D%22Taimanov%22%5D%3B%20p32_5Nc3%20%5Blabel%3D%225.%20Nc3%22%5D%3B%20p32_5Nc3%20-%3E%20p33%3B%0A%20%20%20%20%20%20%20%20p33%20-%3E%20p33_5Nf6%20%5Blabel%3D%22Taimanov%20%E2%86%92%20Four%20Knights%22%5D%3B%20p33_5Nf6%20%5Blabel%3D%225.%20%E2%80%A6%20Nf6%22%2C%20style%3Dfilled%5D%3B%20p33_5Nf6%20-%3E%20p31%3B%0A%20%20%20%20%20%20%20%20p33%20-%3E%20p33_5a6%20%5Blabel%3D%22Taimanov%22%5D%3B%20p33_5a6%20%5Blabel%3D%225.%20%E2%80%A6%20a6%22%2C%20style%3Dfilled%5D%3B%20p33_5a6%20-%3E%20p34%3B%0A%20%20%20%20%20%20%20%20p3%20-%3E%20p3_2e6%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p3_2e6%20%5Blabel%3D%222.%20%E2%80%A6%20e6%22%2C%20style%3Dfilled%5D%3B%20p3_2e6%20-%3E%20p35%3B%0A%20%20%20%20%20%20%20%20p35%20-%3E%20p35_3d4%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p35_3d4%20%5Blabel%3D%223.%20d4%22%5D%3B%20p35_3d4%20-%3E%20p36%3B%0A%20%20%20%20%20%20%20%20p36%20-%3E%20p36_3cxd4%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p36_3cxd4%20%5Blabel%3D%223.%20%E2%80%A6%20cxd4%22%2C%20style%3Dfilled%5D%3B%20p36_3cxd4%20-%3E%20p37%3B%0A%20%20%20%20%20%20%20%20p37%20-%3E%20p37_4Nxd4%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p37_4Nxd4%20%5Blabel%3D%224.%20Nxd4%22%5D%3B%20p37_4Nxd4%20-%3E%20p38%3B%0A%20%20%20%20%20%20%20%20p38%20-%3E%20p38_4Nf6%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p38_4Nf6%20%5Blabel%3D%224.%20%E2%80%A6%20Nf6%22%2C%20style%3Dfilled%5D%3B%20p38_4Nf6%20-%3E%20p39%3B%0A%20%20%20%20%20%20%20%20p39%20-%3E%20p39_5Nc3%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p39_5Nc3%20%5Blabel%3D%225.%20Nc3%22%5D%3B%20p39_5Nc3%20-%3E%20p40%3B%0A%20%20%20%20%20%20%20%20p40%20-%3E%20p40_5Nc6%20%5Blabel%3D%22Four%20Knights%22%5D%3B%20p40_5Nc6%20%5Blabel%3D%225.%20%E2%80%A6%20Nc6%22%2C%20style%3Dfilled%5D%3B%20p40_5Nc6%20-%3E%20p31%3B%0A%20%20%20%20%20%20%20%20p38%20-%3E%20p38_4Nc6%20%5Blabel%3D%22Taimanov%22%5D%3B%20p38_4Nc6%20%5Blabel%3D%224.%20%E2%80%A6%20Nc6%22%2C%20style%3Dfilled%5D%3B%20p38_4Nc6%20-%3E%20p32%3B%0A%20%20%20%20%20%20%20%20p38%20-%3E%20p38_4a6%20%5Blabel%3D%22Kan%22%5D%3B%20p38_4a6%20%5Blabel%3D%224.%20%E2%80%A6%20a6%22%2C%20style%3Dfilled%5D%3B%20p38_4a6%20-%3E%20p41%3B%0A%20%20%20%20%20%20%20%20p41%20-%3E%20p41_5Nc3%20%5Blabel%3D%22Kan%22%5D%3B%20p41_5Nc3%20%5Blabel%3D%225.%20Nc3%22%5D%3B%20p41_5Nc3%20-%3E%20p42%3B%0A%20%20%20%20%20%20%20%20p42%20-%3E%20p42_5Nc6%20%5Blabel%3D%22Kan%20%E2%86%92%20Taimanov%22%5D%3B%20p42_5Nc6%20%5Blabel%3D%225.%20%E2%80%A6%20Nc6%22%2C%20style%3Dfilled%5D%3B%20p42_5Nc6%20-%3E%20p34%3B%0A%20%20%20%20%7D%0A%7D%0A" rel="nofollow noreferrer">here</a>.</p>

<pre><code>digraph chess_openings {
    {
        node [shape=point];
        p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42;
    }
    {
        node [shape=box];
        p0 -&gt; p0_1e4 [label="Sicilian"]; p0_1e4 [label="1. e4"]; p0_1e4 -&gt; p1;
        p1 -&gt; p1_1c5 [label="Sicilian"]; p1_1c5 [label="1. … c5", style=filled]; p1_1c5 -&gt; p2;
        p2 -&gt; p2_2Nf3 [label="Open Sicilian"]; p2_2Nf3 [label="2. Nf3"]; p2_2Nf3 -&gt; p3;
        p3 -&gt; p3_2d6 [label="Mainline"]; p3_2d6 [label="2. … d6", style=filled]; p3_2d6 -&gt; p4;
        p4 -&gt; p4_3d4 [label="Mainline"]; p4_3d4 [label="3. d4"]; p4_3d4 -&gt; p5;
        p5 -&gt; p5_3cxd4 [label="Mainline"]; p5_3cxd4 [label="3. … cxd4", style=filled]; p5_3cxd4 -&gt; p6;
        p6 -&gt; p6_4Nxd4 [label="Mainline"]; p6_4Nxd4 [label="4. Nxd4"]; p6_4Nxd4 -&gt; p7;
        p7 -&gt; p7_4Nf6 [label="Mainline"]; p7_4Nf6 [label="4. … Nf6", style=filled]; p7_4Nf6 -&gt; p8;
        p8 -&gt; p8_5Nc3 [label="Mainline"]; p8_5Nc3 [label="5. Nc3"]; p8_5Nc3 -&gt; p9;
        p9 -&gt; p9_5e6 [label="Scheveningen"]; p9_5e6 [label="5. … e6", style=filled]; p9_5e6 -&gt; p10;
        p10 -&gt; p10_6Be2 [label="Scheveningen"]; p10_6Be2 [label="6. Be2"]; p10_6Be2 -&gt; p11;
        p11 -&gt; p11_6a6 [label="Scheveningen"]; p11_6a6 [label="6. … a6", style=filled]; p11_6a6 -&gt; p12;
        p9 -&gt; p9_5a6 [label="Najdorf"]; p9_5a6 [label="5. … a6", style=filled]; p9_5a6 -&gt; p13;
        p13 -&gt; p13_6Be2 [label="Najdorf"]; p13_6Be2 [label="6. Be2"]; p13_6Be2 -&gt; p14;
        p14 -&gt; p14_6e6 [label="Najdorf → Scheveningen"]; p14_6e6 [label="6. … e6", style=filled]; p14_6e6 -&gt; p12;
        p9 -&gt; p9_5g6 [label="Dragon"]; p9_5g6 [label="5. … g6", style=filled]; p9_5g6 -&gt; p15;
        p15 -&gt; p15_6Be3 [label="Yugoslav"]; p15_6Be3 [label="6. Be3"]; p15_6Be3 -&gt; p16;
        p15 -&gt; p15_6Be2 [label="Dragon"]; p15_6Be2 [label="6. Be2"]; p15_6Be2 -&gt; p17;
        p9 -&gt; p9_5Nc6 [label="Classical"]; p9_5Nc6 [label="5. … Nc6", style=filled]; p9_5Nc6 -&gt; p18;
        p18 -&gt; p18_6Be2 [label="Classical"]; p18_6Be2 [label="6. Be2"]; p18_6Be2 -&gt; p19;
        p3 -&gt; p3_2Nc6 [label="Kalashnikov"]; p3_2Nc6 [label="2. … Nc6", style=filled]; p3_2Nc6 -&gt; p20;
        p20 -&gt; p20_3d4 [label="Kalashnikov"]; p20_3d4 [label="3. d4"]; p20_3d4 -&gt; p21;
        p21 -&gt; p21_3cxd4 [label="Kalashnikov"]; p21_3cxd4 [label="3. … cxd4", style=filled]; p21_3cxd4 -&gt; p22;
        p22 -&gt; p22_4Nxd4 [label="Kalashnikov"]; p22_4Nxd4 [label="4. Nxd4"]; p22_4Nxd4 -&gt; p23;
        p23 -&gt; p23_4g6 [label="Sveshnikov → Accelerated Dragon"]; p23_4g6 [label="4. … g6", style=filled]; p23_4g6 -&gt; p24;
        p24 -&gt; p24_5Nc3 [label="Accelerated Dragon"]; p24_5Nc3 [label="5. Nc3"]; p24_5Nc3 -&gt; p25;
        p25 -&gt; p25_5Bg7 [label="Accelerated Dragon"]; p25_5Bg7 [label="5. … Bg7", style=filled]; p25_5Bg7 -&gt; p26;
        p26 -&gt; p26_6Be3 [label="Accelerated Dragon"]; p26_6Be3 [label="6. Be3"]; p26_6Be3 -&gt; p27;
        p23 -&gt; p23_4e5 [label="Kalashnikov"]; p23_4e5 [label="4. … e5", style=filled]; p23_4e5 -&gt; p28;
        p23 -&gt; p23_4Nf6 [label="Sveshnikov"]; p23_4Nf6 [label="4. … Nf6", style=filled]; p23_4Nf6 -&gt; p29;
        p29 -&gt; p29_5Nc3 [label="Sveshnikov"]; p29_5Nc3 [label="5. Nc3"]; p29_5Nc3 -&gt; p30;
        p30 -&gt; p30_5d6 [label="Sveshnikov → Classic"]; p30_5d6 [label="5. … d6", style=filled]; p30_5d6 -&gt; p18;
        p30 -&gt; p30_5e6 [label="Sveshnikov → Four Knights"]; p30_5e6 [label="5. … e6", style=filled]; p30_5e6 -&gt; p31;
        p23 -&gt; p23_4e6 [label="Sveshnikov → Taimanov"]; p23_4e6 [label="4. … e6", style=filled]; p23_4e6 -&gt; p32;
        p32 -&gt; p32_5Nc3 [label="Taimanov"]; p32_5Nc3 [label="5. Nc3"]; p32_5Nc3 -&gt; p33;
        p33 -&gt; p33_5Nf6 [label="Taimanov → Four Knights"]; p33_5Nf6 [label="5. … Nf6", style=filled]; p33_5Nf6 -&gt; p31;
        p33 -&gt; p33_5a6 [label="Taimanov"]; p33_5a6 [label="5. … a6", style=filled]; p33_5a6 -&gt; p34;
        p3 -&gt; p3_2e6 [label="Four Knights"]; p3_2e6 [label="2. … e6", style=filled]; p3_2e6 -&gt; p35;
        p35 -&gt; p35_3d4 [label="Four Knights"]; p35_3d4 [label="3. d4"]; p35_3d4 -&gt; p36;
        p36 -&gt; p36_3cxd4 [label="Four Knights"]; p36_3cxd4 [label="3. … cxd4", style=filled]; p36_3cxd4 -&gt; p37;
        p37 -&gt; p37_4Nxd4 [label="Four Knights"]; p37_4Nxd4 [label="4. Nxd4"]; p37_4Nxd4 -&gt; p38;
        p38 -&gt; p38_4Nf6 [label="Four Knights"]; p38_4Nf6 [label="4. … Nf6", style=filled]; p38_4Nf6 -&gt; p39;
        p39 -&gt; p39_5Nc3 [label="Four Knights"]; p39_5Nc3 [label="5. Nc3"]; p39_5Nc3 -&gt; p40;
        p40 -&gt; p40_5Nc6 [label="Four Knights"]; p40_5Nc6 [label="5. … Nc6", style=filled]; p40_5Nc6 -&gt; p31;
        p38 -&gt; p38_4Nc6 [label="Taimanov"]; p38_4Nc6 [label="4. … Nc6", style=filled]; p38_4Nc6 -&gt; p32;
        p38 -&gt; p38_4a6 [label="Kan"]; p38_4a6 [label="4. … a6", style=filled]; p38_4a6 -&gt; p41;
        p41 -&gt; p41_5Nc3 [label="Kan"]; p41_5Nc3 [label="5. Nc3"]; p41_5Nc3 -&gt; p42;
        p42 -&gt; p42_5Nc6 [label="Kan → Taimanov"]; p42_5Nc6 [label="5. … Nc6", style=filled]; p42_5Nc6 -&gt; p34;
    }
}
</code></pre>

<p>This is what the output looks like:</p>

<p><a href="https://i.stack.imgur.com/5Bg1p.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/5Bg1p.png" alt="enter image description here"></a></p>
