Representing practical knowledge with ICKMOD — an example

When Néstor Sánchez, developer of Instrumind ThinkComposer (“TC”), made a succinct but important comment on this blog, I decided to represent his ideas and their connections with some thoughts expressed by John Bottoms and with my own thoughts — using Néstor’s TC features … and following ICKMOD, my model for representing practical knowledge.

I didn’t know it would take me several months to do that. My apologies. Family activities have prevented me from devoting time to this blog and the graphic representation. And I wanted to do justice to Néstor’s superb product — which is now Open Source and may be downloaded from

Click on the following image to see a PDF version of the TC knowledgebase I created.


Néstor’s comment

Néstor made the following comment on the post Why can’t we see that we have a problem in

I think the problems you describe cannot be solved directly by we, humans. We need to be empowered by computing to achieve a coherent, collective and always-evolving knowledge “cloud”. I believe that the key is going beyond plain text (or image based) representation of knowledge, and beyond explicit knowledge registration (a la Wikipedia) to a discovery based “relative weighted” KB (e.g. what a ‘Black Hole’ is depend more on Stephen Hawking and Neil DeGrasse Tyson opinions that on those from John Doe) as a practical semantic web. I think big-data AI tools applied over massive sources of diverse info (from scientific papers to Facebook comments) will solve the problem. Then another set of tools, to take advantage of that KB will emerge.

I also used …

I used these sources in developing a partial map of the meaning of these natural-language communications.

How I used ThinkComposer features to create an example

I used ThinkComposer features to create an example of ICKMOD (the Insight-Centric Knowledge Model), my own initial recommendation for a reference model for representing practical knowledge. That model is described in more detail in other posts to this blog.

Readers need to understand the following:

  1. It’s best to start by taking a look at Néstor’s ThinkComposer at
  2. Where I reference Instrumind ThinkComposer terminology, I will prepend [TC] to the terms to indicate that there may be differences between Néstor’s terminology and my own. For example, [TC] Concept does not correlate well with my use of the term Concept.
  3. Although ThinkComposer has several limitations that make it less than perfect for my needs, I am an unabashed and unapologetic fan of Néstor’s brainchild. I dearly hope that some individual or group will take over the development and support of this toolset. But in the future I will use TC and several other tools to provide examples.
  4. I will provide the knowledgebase in this blog as downloads in two forms: (a) as a PDF file generated by ThinkComposer and (b) as a downloadable instance of ThinkComposer itself. You will need to download the ThinkComposer Windows application from in order to view and navigate my small “knowledgebase.” I have used ThinkComposer under Windows 8 and Windows 10. You will want a large screen.
    NOTE: Néstor questioned my use of the term knowledgebase, observing: “From my software developer point of view, the term ‘knowledge base’ is like too big for what TC does. For me (and other developers) a ‘base’ is a like a large server-based data repository with GBs or TBs of data (like Wikipedia). I cannot talk about other tools, but TC’s Compositions are documents (which can be very large), but still are not a centralized shareable source and target of knowledge.”
  5. The choices I made in applying ThinkComposer to this knowledge-representation task are entirely my own. Except accidentally, my choices do not reflect Néstor’s thinking or his recommendations for using his product. In fact, he will probably be horrified at how I used ThinkComposer. And in some cases I have used features of TC poorly. I will give Néstor an opportunity to comment on everything I say in this post, because I do not want to misrepresent his product.
    NOTE: Néstor did reply, “I took a look at your work and I’ve seen a good use of TC features. Congratulations!” But I remind readers that the way in which I used TC is likely to be very different from how others are likely to use TC.
  6. ThinkComposer is a very flexible toolset, not a limited-purpose “concept-mapping” or “mind-mapping” application. You may choose to build rich, detailed representations taking full advantage of the features provided by TC or very simple applications.
  7. ThinkComposer is not specifically designed as a knowledge representation language. (See, for example, KM: The Knowledge Machine.) Such languages are typically used for the construction of a formal, computer-supported ontology — “a formal naming and definition of the types, properties, and interrelationships of the entities that really or fundamentally exist for a particular domain of discourse.” (Source:
    Ontology [information science] In this blog — unless otherwise stated — I use the term knowledge representation in a different and broader sense: Explicit descriptions of the meaning of humans communications about business and practical realities. Although the many brilliant folks in KR (Knowledge Representation) — some of whom I quote in this blog — the domain of KR does not “own” knowledge representation in my sense of the term.
  8. I spent quite a few hours implementing a ThinkComposer Domain for ICKMOD — my own model for representation of practical knowledge — as a set of definitions of objects and relationships that could be re-used for similar requirements. If you want others to use TC Domains that you develop, you will need to provide that TC Domain and at least some documentation.
  9. After you invest time in creating a ThinkComposer Domain, it’s relatively easy to create and edit new instances (applications) of that Domain. In ThinkComposer, these new instances are called Compositions.
  10. ThinkComposer — like Tufts VUE (Visual Understanding Environment), Ron C. de Weijze’s Constructive Recollection Philosophy Application, and many other applications for representing knowledge — does not provide “dynamic navigation” of knowledgebases — that is, you can’t traverse relationships among nodes dynamically,  with connected nodes rearranging themselves around the node currently in focus.
  11. By contrast, TheBrain, Inforapid Knowledgbase Builder, and other applications provide “dynamic navigation” — making it possible to browse through very large knowledgebases with little effort. But these more “dynamic” tools are typically poor at visual representation of complex relationships among nodes. They do not leverage the full representational possibilities of 2-D workspaces.
  12. My distinction between (a) tools that provide rich but static representations of knowledge (including ThinkComposer) and (b) tools that provide dynamic navigation is not a criticism of either type of tool. The first type of tool tends to be better for creation and viewing of small or “local” networks of typed relationships among typed nodes; the second tends to be better for navigating through large knowledgebases. I wish there were tools that provided both static and dynamic modes. Perhaps there are, but I have not found them yet. (By default, TheBrain uses a dynamic approach, butit also provides a more static “Expanded View” mode. That is helpful at times, but I find the Expanded View in Version 8 (and earlier) awkward and very limiting. However … a recent announcement [26-Oct-2016] of version 9 Beta from the Brain folks includes the following description of a new feature: “Mind Map View to augment visualization and analysis” That sounds very promising!)
  13. I started my representation of this brief imagined exchange of meaning between Néstor, John Bottoms, and myself by making extensive use of [TC] Compositions — which permit extensive hiding of detail — and I created several workarounds to make my TC knowledgebase correlate as closely as possible with ICKMOD — my take on a model for representing practical knowledge.
    • Although the initial version of my “map” might have been appropriate for large knowledgebases, I decided that it would be too confusing and distracting for readers taking a first look at such an application of Nestor’s toolset.
    • So I switched to a different approach that presents almost everything in one 2-D space. While this simplified representation is also a disservice to the richness of TC features, it is less likely to misrepresent basic TC features.
  14. In a computer-supported representation of “knowledge,” objects and relationships should have metadata — for example, authorship, date of modification — that is persistent and accessible to all participants. In my simple TC example, I have not taken advantage of the rich set of ThinkComposer features that allow users to define such metadata.
  15. In static representations of knowledge — including those supported by ThinkComposer — I tend to use the vertical direction to indicate assembly of smaller semantic units into larger, more complex semantic units (Concepts > Facts > Insights > Arguments > …). I generally use left-to-right to indicate progression, syntax, or sequence (among objects of the same type) or “associative links/relationships” among objects of different types, but I’m probably not consistent in those habits. IMHO, this left-to-right form of organization is a Western European bias. I plead guilty. I am also biased toward the subject-verb-object order of English.
  16. A simple but important decision: I changed the background color of the TC workspace from white to beige. I believe that such a color is much easier on the eyes than a stark white screen — just as books printed on ivory stock are easier on the eyes than books printed on glossy white stock.
  17. The [semantic] type of objects (TC Concepts) in my example is shown just above the body of the graphic object. (This feature can be turned on or off in ThinkComposer.) The type of TC Relationships can also be displayed or hidden. I chose to hide them.
  18. I have introduced a limited set of icons to make types of objects more easily distinguishable. My choices are highly subjective. I tend to set the maximum number of usable icons in “knowledge representation” applications at about 15. Icons are helpful, I believe, but they are arbitrary. And they are only useful if (a) you have a guide to their meaning and (b) you apply them consistently. The light bulb representing “Insight” is a widely-used cliché, but it works for my purposes.
  19. If a knowledgebase is relevant, it evolves. In this case, you are seeing only a snapshot in time. I may try to provide updated versions in the future.
  20. Although I have blamed my schedule for the delay in crafting this response and the small TC knowledgebase, I did spend a lot of time examining the large repertoire of features provided by TC and the thinking behind them. That was time well spent, because it made me question and/or refine some very basic aspects of modeling practical knowledge.

I have used TheBrain (a cross-platform commercial product) for most of my work … and I will continue to do so for at least a while. TheBrain has excellent dynamic navigation features and other significant plusses, but it is not as well suited for rich “local” representations of practical knowledge. I find organizing Insights, Facts, and Observations in typed relationships to be particularly difficult in TheBrain. In fact, there is no single tool for representing knowledge that meets my expectations.

© Copyright 2017 Philip C. Murray


This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *