Concept Map of Sci-Fi Authors: A quick intro to ThinkComposer

Learn the basics of ThinkComposer while creating a Concept Map of Science Fiction Authors:

(maximize the player to look in HD when bandwidth is available)

You can download the sample composition from here (Note: Your browser might change the file extension to ‘.zip’, so rename back it to ‘.tcom’ if necessary).

File and Code Generation in ThinkComposer version 1.3

A new version of ThinkComposer (1.3) is available! It can generate text files, either for code generation or custom information export, based on templates using the Liquid markup language. So, the precise knowledge stored in Composition documents can be consumed from external sources. Lets take a look.

Suppose you want to export the information content of the next Composition diagram…


…and your desired generated file, for the ‘Compute Result’ Concept, would look like:

Global-Id: 7b104a91-b464-484a-9419-9d37ee578b9c
Name: Compute Result
Summary: Use the entered Code to calculate the proper result.
 [1] 'Correct' (Correct state.)
 [2] 'Star Gold' (Star Gold award.)
 Descriptor: 'Approved' -- Full compliance with our test cases!
 [1] 'Flow (Idea 10)' FROM 'Is Valid?'('Yes'); .
 [1] 'Flow (Idea 11)' TO 'Show Result'; .

Then, to achieve that formatted result file, you can use the Output-Template editor (accessed thru ‘Domain’ -> ‘Edit Domain’-> ‘Output-Templates’ -> ‘Concept base templates…’) as shown in the next screenshot:


The complete sample output-template is:

%%:FileName={{ TechName }}.txt

Global-Id: {{ GlobalId }}
Name: {{ Name }}
Summary: {{ Summary }}

{%- if Markings.Size > 0 -%}
MARKINGS [{{ Markings.Size }}]:
{%- for Mark in Markings -%}
[{{ forloop.index }}] '{{ Mark.Definitor.Name }}' ({{ Mark.Definitor.Summary }})
{%- if Mark.Descriptor != null -%}
Descriptor: '{{ Mark.Descriptor.Name }}' -- {{ Mark.Descriptor.Summary }}
{%- endif -%}
{%- endfor -%}

{%- endif -%}
{%- if IncomingLinks.Any -%}
INPUTS [{{ IncomingLinks.Size }}]:
{%- for Link in IncomingLinks -%}
[{{ forloop.index }}] '{{ Link.OwnerRelationship.Name }}'{% unless Link.Descriptor == null %}('{{ Link.Descriptor.Name }}'){% endunless -%}
 FROM {% for OriginLink in Link.OwnerRelationship.OriginLinks -%} '{{ OriginLink.AssociatedIdea.Name }}'{% unless OriginLink.Descriptor == null %}('{{ OriginLink.Descriptor.Name }}'){% endunless -%}; {% endfor -%}.
{%- endfor -%}
{%- endif -%}

{%- if OutgoingLinks.Any -%}
OUTPUTS [{{ OutgoingLinks.Size }}]:
{%- for Link in OutgoingLinks -%}
[{{ forloop.index }}] '{{ Link.OwnerRelationship.Name }}'{% unless Link.Descriptor == null %}('{{ Link.Descriptor.Name }}'){% endunless -%}
 TO {% for TargetLink in Link.OwnerRelationship.TargetLinks -%} '{{ TargetLink.AssociatedIdea.Name }}'{% unless TargetLink.Descriptor == null %}('{{ TargetLink.Descriptor.Name }}'){% endunless -%}; {% endfor -%}.
{%- endfor -%}

{%- endif -%}

Output-Templates can be defined, at the Domain level, for:

– Composition: To create a file for the root of the Composition.

– Concepts: Use one template to generate files with the same format from all Concepts.

– Relationships: Same as the prior, but for Relationships.

Plus, the Output-Template can be declared individually per each Idea (Concept or Relationship) Definition, in case you have specialized or more complex ones.

These Output-Templates are stored in the Domain, so you can reuse them in other Compositions.

To generate the files, just select the “Tools” tab and click the “Generate Files…” button. The next window will be shown:


The description of the Output-Templates language and the ThinkComposer Information model can be found in the manual.

Multilevel Concept Maps or Diagrams

A problem while working with 2D graphics, in the style of big concept maps or other kind of diagrams, is that when the matter is complex, they can become a problem to navigate  and edit them like in the next very cluttered map:

This is unavoidable if you need to show (or print) the map as single unit.

However, with the help of software, you can divide the map in hierarchically contained sub-maps, spanning multiple levels. Consider the next diagram, made with ThinkComposer, representing a simple aircraft design as an advanced concept map:

With this multilevel capability you can “compose” (or decompose) your ideas to any extent into a single document. Plus, notice that you can still connect nodes, not within the same view (map/diagram), by using Shortcuts that you can point/click to easily navigate to the original source.

Concept Maps and Mind Maps with Typed Nodes and Relationships

Why most Concept Maps are visually homogeneous and flat? Most have the same basic visual elements: Ellipses for Concepts and Arrows for Relationships, like in the next sample:

I come from the world of software development, where is very common to do analysis and design using heavy typified diagrams (Flow Charts, E-R, UML, etc.). In these diagrams the objects are visually and easily classified on their predefined shapes, line styles, colors and other graphic elements. Then, why not to do the same visual classification in Concept Maps?  Some may argue that by doing this, the map would become distracting or too complex. But as the Mind Mapping school says: Colors, styles and other graphics elements helps the user to remember better and use most of our brains.

So, now consider a typified yet simple Concept Map:

As you can see, all Concepts have a visual style corresponding to a semantic typification, like a rounded gray rectangle with brown border for the planets, yellow background for the stars and so on. Also, the Relationships are stylized, having two types: Facts as blue arrows and Predictions as segmented green arrows.

Also, this already typified Mind Map shows a common simple appearance:

Now, consider the next visually typified and annotated version of the ‘Astronomic’ Concept Map as shown next.

And the corresponding improved Mind Map in the next sample.

Maybe you could think that having so much information in a map is very confusing instead of helpful. As in most cases, it “depends”… if you have dozens or even hundreds of nodes in your map, you will need to be clear, precise and highlight the charactestics of your information elements. The key point is to have the chance, because not all cases just need a high-level overview, there are complex scenarios where you discuss, analyze or design delicate matters and precise details are required.

Having this in mind, I created ThinkComposer with an emphasis on typification and information details presentation as powerful as you want.

Web Environment (or Network) Management sample diagram

The next is an example, created with ThinkComposer, of an informal Web Environment Management diagram.

The symbols and connector types are encapsulated in a user defined Domain, that can be reused for creating new diagrams.

The “Access Perspective” folder content is…

You can download the Domain (containing this diagram as template) from here.