create_ibis
Create a IBIS diagram as PNG image. IBIS (Issue-Based Information System) maps out any decision, discussion, or thought process using just four node types: Questions, Answers (Ideas), Pros, and Cons. Attaching Questions to any node lets you drill into any aspect at any depth.
You provide VGL (Vithanco Graph Language) code using the IBIS notation and the tool renders it to an PNG image.
How to Build an IBIS Diagram
Start with a root Question (used as the graph title).
Add Answers (Ideas) that respond to the question.
Add Pro and Con arguments for each answer.
Attach further Questions to any node to drill deeper.
Keep going until the topic is explored to the depth you need.
VGL Syntax
vgraph <id>: IBIS "<title>" {
<nodes and edges>
}Node Types
Question— a question or issue to explore (purple, question mark icon)Answer— an idea or proposed answer (amber, lightbulb icon)Pro— an argument in favour of an answer (green, thumbs up icon)Con— an argument against an answer (red, thumbs down icon)
node <id>: Question "<label>"
node <id>: Answer "<label>"
node <id>: Pro "<label>"
node <id>: Con "<label>"Edges
Edge types are inferred from node types — just write edge <from> -> <to>.
Valid connections:
Question -> Answer (answering the question)
Answer -> Pro (supporting argument)
Answer -> Con (opposing argument)
Question -> Question (sub-question of a question)
Answer -> Question (answer raises new question)
Pro -> Question (pro raises new question)
Con -> Question (con raises new question)
edge <from_id> -> <to_id>The Drill-Down Mechanism
The power of IBIS is that you can attach a Question to any node type:
Question a Question: "Shouldn't we rather discuss X?"
Question an Answer: "What would we need to implement this?"
Question a Pro: "Is this advantage really significant?"
Question a Con: "Can we mitigate this disadvantage?"
Each sub-question starts its own Answer/Pro/Con branch, allowing unlimited depth.
Complete Example
vgraph techChoice: IBIS "Which database should we use?" {
node q1: Question "Which database should we use?"
node a1: Answer "PostgreSQL"
node a2: Answer "MongoDB"
edge q1 -> a1
edge q1 -> a2
node pro1: Pro "ACID compliance"
node pro2: Pro "Mature ecosystem"
node con1: Con "Schema migrations can be complex"
edge a1 -> pro1
edge a1 -> pro2
edge a1 -> con1
node pro3: Pro "Flexible schema"
node con2: Con "Weaker transaction support"
edge a2 -> pro3
edge a2 -> con2
node q2: Question "How to handle schema migrations?"
edge con1 -> q2
node a3: Answer "Use Flyway or Liquibase"
edge q2 -> a3
node pro4: Pro "Industry-standard tooling"
edge a3 -> pro4
}Rules
ALWAYS start with a root Question — it frames the entire diagram
Follow the structure: Question -> Answer -> Pro/Con
Use Questions to drill down — attach them to any node that needs exploration
Keep labels concise — Questions as questions, Answers as noun phrases, Pros/Cons as short statements
Use meaningful IDs (q1, mainIdea, costCon — not n1, n2, n3)
Each Answer should have at least one Pro or Con to be useful
Avoid orphan nodes — every node must connect to the tree
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| vgl | Yes | Valid VGL code using the IBIS notation. Must start with: vgraph <id>: IBIS "<title>" { ... } |