Monday, September 23, 2024

Back to "School": Learning the Basics of Protege, Python, and Cypher

 A few years back, I inherited a substantial collection of vinyl records that accumulated over two generations and two sides of the family.  The result is a very eclectic collection that goes from field recordings of birds of Kenya to early career Johnny Cash and lots of Edith Piaf. I have a simple record player and once in a while over the past few years, I have played some of my favorite records.  About a month or so ago, having some free time, I decided to catalog the collection using my favorite tool, TiddlyWiki.  In the process, I learned quickly how to leverage some of the functionalities I had previously neglected in TiddlyWiki.  I had always used the tagging function but I had not used the metadata fields.

I now have a complete catalog with close to 700 records and this turns out to be an interesting data set for learning purposes because:  

a) I can save the TiddlyWiki as a CSV file with all the metadata.

b) I am at the point in my exploration of Python where I can understand basic instructions and use Python in Excel to manipulate the data, including (perhaps) the less structured data (all the album titles and song titles). 

I was getting bored with Python exercises that use meaningless data.  Hopefully using my own dataset will be a little more exciting.  Using the TiddlyWiki Records Catalog will also lead to some data cleaning issues.  For example, I'm not sure I can easily extract a list of songs even though I've "captured" all the data in the text section of each record. 

At times, when I am struggling to understand what I am doing with Python, I ask myself why I am trying to learn Python in the first place since I don't plan to become a programmer. I am reminded of my long-term goal: I need a better, broad understanding of data management and associated tools to be able to converse intelligently around the technical aspects of knowledge graphs.  As a result, I am learning the basics of Protege to understand ontology design, the basics of Python, the basics of Cypher to understand graph querying, etc.. 

Monday, August 26, 2024

Evolution of my Concept Mapping Practice

I started mapping using Inspiration, then relatively quickly turned to CmapTools. More recently I have explored the mapping functionalities associated with TiddlyMap.  The tools and their specific functionalities have played a key role in the development of my practice around mapping, and my evolving needs have played a key role in how I sometimes push the tools well beyond their original purpose.  I pushed CmapTools to become a gigantic map of maps, well beyond a sustainable system.  I am using TiddlyMap to mimic the capabilities of a knowledge graph.

In developing my mapping practice, I also acquired a few bad habits. Perhaps they were useful adaptation rather than just bad habits but now I am reconsidering my approach.

Examining even just the collection of maps that I have made public on my site, it is clear that I have used concept mapping mostly as a personal thinking tool. When I have used mapping within organizations, including at NASA and Chemonics, I had to either establish a clear framework (especially at NASA) so that the maps could be easily readable and usable. The NASA mapping approach was presented as early as 2016 at the APQC KM conference.

The connecting words are key to concept maps. They make the maps more readable and clarify the meaning of the connection.  These connecting words become the "predicate" in the world of ontologies and Knowledge Graphs. There is a subject (one node representing a concept), an object (another node representing a concept), and a predicate (connecting words) articulating the relationship between the two nodes.

In my early concept mapping practice, I either omitted the connecting words or used a few key words repetitively (and, such as, including). 

Most of the maps I created at NASA were not really concept maps because the nodes were not individual concepts but rather entire phrases. The unit of analysis for a node was at the higher level of "complete thought" and not individual concept. I called them knowledge maps or KMAPs, and eventually insight maps on my own website.  This allowed me to put much more content on a map than what is possible by identifying and mapping the connections between individual concepts. 

The connecting words and the way concepts are connected becomes more and more important as we move towards more "readable" maps or graphs. In a simple map, the connecting line and arrow may be relatively easy to interpret but that is not always the case and something more standardized is needed at scale. In particular, if we want these types of maps to be machine readable, then a formal ontology with very well defined "predicates" or connecting words becomes essential.  Ontology tools/software also become essential to manage larger ontologies.

I thought it would be interesting to take some of my old maps and see if they can be made more readable with greater attention to the connecting words and a more granular approach to concepts. It's also possible that what I was trying to express with those early maps isn't meant for a real concept map.

The first map I ever posted when I was still using Inspiration as a mapping tool, can easily be improved and turned into a proper concept map or even a knowledge graph. I have now recreated that early map using a more formal mapping technique inspired by ontologies, with specific classes of concepts (visually distinct on the map with different colors) and well-defined, consistent connecting words.  See Map #34 in the Insight Maps collection (and below). 

The original map included the movies' release year in parenthesis.  This type of data can be added as an annotation in the map, visible when hovering over each movie node.  Other properties could be added, including a link to the IMDb record for example.  In the related ontology, the "releasedYear" could simply be a property of the movie class.  

Not every map requires a formal ontology, but understanding ontologies and learning more about knowledge graph is helping me to refine my mapping practice. 






The Concept Mapping label provides access to some related posts over the years.  

Monday, August 12, 2024

Enhancing Project Management & Learning through Knowledge Graphs

 I would like to test a set of interconnected ideas. 

1. Transforming Theory of Change into a Knowledge Graph
A project's Theory of Change (ToC) can be transformed into a Knowledge Graph.  A Theory of Change has a number of key entities: Activities, Results, Assumptions.  Each can be characterized in some detail with indicators, properties, etc.. and there are clear relationships.  An activity "contributes to" a result.  An assumption can "influence" an activity.   The ToC is a hypothesis based on past evidence from similar or related projects. 

The challenge here may be to ensure that the ToC's complexity doesn't lead to an overly complicated Knowledge Graph.  It will also be important to consider how to represent uncertainties and evolving assumptions over time within the Knowledge Graph.

2. Accumulating Data to Confirm or Adjust the ToC
As the project is implemented, data accumulates that will either confirm the ToC or require some adjustments. That's what adaptive management should be about.  The data can combine structured, quantitative data based on predetermined indicators, AND unstructured data from learning activities such as After-Action-Reviews, interviews, stories, etc.  All this data can be added to the Knowledge Graph. 

The challenge here will be in consistently capturing and integrating unstructured data in a way that it's meaningfully represented within the Knowledge Graph.  NLP tools may be necessary. Would they be effective?  In addition, as the graph grows in complexity with new data, will it remain manageable?

3. Integrating KGs across Projects for Organizational Learning
Across an organization, tools like Propel that create a structure for knowledge capture could lend themselves well to integration with a Knowledge Graph to aggregate data across projects AND enable more sophisticated analysis. A set of project-based Knowledge Graphs developed based on their individual ToCs (as in steps 1 and 2 above) can be connected into a bigger Knowledge Graph.  At first, this expansion could be focused on a particular sector with a "Grand Sector Theory of Change" with regional as well as country-specific adaptations and tailored assumptions based on context. 

Challenges might include a) interoperability between different project Knowledge Graphs, particularly if they were developed independently or using different methodologies; b) the requirement for a unified ontology or framework for creating these graphs; c) associated governance and data-sharing protocols to enable integration without compromising data integrity or security.

4.  Portfolio-level Analysis
Expanding the scope further, a donor could look at an entire portfolio of projects within a comprehensive knowledge graph, combine insights from the graph with meta-analysis like evidence-mapping reviews to help generate better RFPs. That would still require extensive country/local knowledge.

Challenges might include scalability issues, particularly in ensuring that the Knowledge Graph remains up-to-date and relevant across a broad portfolio.  The need for documenting extensive local knowledge is also a potential bottleneck.

5. Local Knowledge Mapping and Knowledge Graphs
Therefore, local knowledge mapping and knowledge graphs would need to be further developed for and by local SMEs to provide leverage for local organizations to impact project designs and project implementations.  

The challenge might be in creating incentives and building capacity for local SMEs to develop and maintain these Knowledge Graphs.  There would be issues related to standardization to ensure that local KGs can interface with broader organizational or donor-level KGs without losing the richness of local insights.  There would also be significant issues related to data ownership.  

This is potentially unrealistic, overly ambitious, crazy, etc.. I wonder if anyone has already started working on step 1 because I often think I've come up with an idea and soon realize it's already been done (or tried).   Turning a Theory of Change into a Knowledge Graph is definitely feasible.  Then we would discover whether that's useful at all, before thinking too much about the more ambitious steps. 

Tuesday, August 06, 2024

Tacit Knowledge Mapping?

A question came up on a messaging channel of the KMGN network:  How would you map tacit knowledge?  The post also referenced CVs as a way to document experience, but I would agree with the person posting that initial question that a CV doesn't scratch the surface of tacit knowledge. 

At best, a CV reflects a series of experiences and since the purpose of a CV is typically to send to potential employers ahead of an interview, the main purpose of a CV Is not to convey tacit knowledge.  A CV reflects experiences but doesn't say much about what the person learned from those experiences, either explicitly or in the form of tacit knowledge.  

I once went to a job interview with a simple concept map instead of a CV.  The map didn't reflect specific jobs or positions but areas I had experience with through these jobs.  More importantly, because it was a form of concept map and not a linear document, I was able to show how the combination of experiences had resulting in a mental map, a framework to connect these different experiences.  I think that in order to map tacit knowledge, we must reflect on our experiences and as a result, make that knowledge explicit.  You end up with something that is no longer tacit since you've "explicited" it through reflection.  That is still probably scratching the surface or barely digging into the underwater part of the tacit/explicit iceberg, but very much worth doing in my opinion. 

This is essentially a form of Personal Knowledge Management and the mapping doesn't necessarily have to be in the form of a concept map.  I just find it very useful because it helps connect things previously not connected in my mind.  

Let's start at the top.  By definition, tacit knowledge is not conscious, so mapping tacit knowledge sounds like an oxymoron.  However, I believe we can strive to make some of our tacit knowledge more explicit in order to map it out and the process of mapping can help make tacit knowledge more explicit.  

Why map it out you might say?  Isn't it enough to make it explicit?  Well, are you making it explicit in a blog or a personal journal that just accumulates content in a sequential way?  Mapping out that "explicited"  knowledge is a way to enable further articulation, further exploration of the connections between insights generated through reflection and analysis.  

I know "explicit" isn't a verb. I should refer to the SECI model and say "externalize" instead.  Before we can externalize or articulate that tacit knowledge, we need to have an idea of what we are looking for. Externalize feels like "extracting" knowledge and I don't like these harsh-sounding words.  

Here is an example of an attempt at externalization:  I have a lot of tacit knowledge around the construction of concept maps.  I have a lot of experience constructing concept maps and when asked how I do it or what constitutes a good concept maps, I find it difficult to answer.  I know a good concept map when I see it. This is also related to the curse of knowledge. I tried, years ago, to articulate (or externalize) that tacit knowledge by creating a couple of courses about concept mapping.  Essentially, I was trying to create the conditions for others to experience the process of constructing concept maps as the way for them to acquire that tacit knowledge themselves.  In trying to articulate that process, I felt the need to specify a number of steps or method, but that was a shortcut and not truly how I personally experience constructing concept maps and I can't go back in time and remember how I initially learned how to construct concept maps. All I was able to do was set up an environment where someone could go on a similar path to learn for themselves and acquire their own tacit knowledge. 

Because tacit knowledge is based on first-hand experience, it is unique to the individual.  Granted, every person who knows how to ride a bike acquires tacit knowledge of bicycling, but even that is somewhat unique to the individual experience.  I was passed by a large flock of real cyclists this morning on my morning bike ride.  They were going three times my speed and moving in ways I have never experienced because I don't ride in groups. Their accumulated tacit knowledge around cycling is very different from mine.  As a side note, if they regularly cycle as a team, they will acquire a form of collective intelligence based on their collective tacit knowledge.   There is a lot more to explore around collective intelligence and the ability of people to combine their explicit and explore their respective tacit knowledge through effective collaboration.  In fact, there is probably a lot around effective collaboration that is based on tacit knowledge rather than explicit best practices because it's in the realm of communication and human behavior that we engage in daily without giving it much thought -- unless you're a huge fan of personal knowledge management and you are a strong reflective practitioner.  

Going back to the original question:  How could anyone map their tacit knowledge? Again, you wouldn't map your tacit knowledge but rather externalize knowledge acquired through experience and map it. 

Is it only knowledge acquired through experience?  If I'm combining ideas from other people in new ways, it's not based on my first hand experience, but it's my accumulated experience that allows me to come up with this new way of combining ideas and come up with new insights.  And the more I have reflected upon my experience over time, the more raw and refined materials I have to draw from to articulate / externalize insights based on other people's experiences because I can relate them better to my experiences and create the connections.

So, here are some of the techniques useful to articulate/externalize and then map tacit knowledge:

  • Reflection and journaling, closely linked to learning logs or learning diaries; blogging is also great but has a public dimension that may hinder more personal reflections.
  • Concept mapping, closely related to mind mapping. 
  • Interviews and dialogue, storytelling, very useful to get people to more organically access their tacit knowledge via skilled prompting.
  • Observation and feedback (essentially qualitative methods used in apprenticeships for example).

The first two methods are the ones I use most regularly because they build on each other.  The reflection can be documented with a map and the process of generating a map inevitably leads to new avenues for reflection, (potentially) deepening access to tacit knowledge.  The benefit of a concept map over a more linear narrative is the ability to explicitly and visually show connection across ideas and concepts.  In a real concept map, the connecting words that link distinct concepts are perhaps the most important elements. That's also why relationships are the most important element in knowledge graphs... but that's another fascinating topic. 

Let's get back again to mapping newly externalized knowledge.  I am currently working on a project that seems to address a lot of that.  It's a combination of personal narrative via concept mapping and knowledge graphs.  I don't know where this project is going yet so perhaps I should keep it at that.   I gave myself the title of Knowledge Explorer, so I'm exploring, without a specific destination in mind because I haven't discovered any new territory yet. The new territory seems to be Knowledge Graphs, but I need to revisit old territory (concept maps) to become more insightful about Knowledge Graphs. This conversation is helping in some way to externalize that old territory raw material of experience. 

I can say that a key to reflection and journaling is "know thyself".  That's a starting point for personal knowledge management aimed at accessing tacit knowledge.  There is nothing wrong with personal knowledge management focused on optimal curation of one's readings and resources, but that's scratching the surface in the same way that a repository of documents in an organization is not equivalent to managing knowledge.  

So, my modern version of "know thyself" includes working on self-awareness, some mindful practices (to slow down the brain), values clarification (which helps me to focus on what's most important to me), deepening my reflective practice, exploring personal narratives, acknowledging cognitive biases, known unknowns and unknown unknowns, and setting personal learning goals while exploring my interests.  Given that this is all too cerebral, I'm integrating elements to "know your body" and engaging in a lot of movement because brain and body work together and a moving brain is much more capable than a sitting brain. 

Years of intermittent note-taking -- I can't really call that journaling -- have led to habits and lots of notebooks (physical and virtual) that remind me of who I was and what I was thinking.  This is also an aspect of "knowing oneself" and the evolution of one's mental frameworks but also being reminded of the stable core of who we truly are.  I can safely assume that I've acquired some bad habits along the way.  It would be interesting to try to identify those.  That would fall into the category of acknowledging biases.

Again, how should anyone proceed if they want to try to map their tacit knowledge or more accurately, externalize their tacit knowledge so it can be mapped?

1. Start with simple reflections around a specific project or event.  It can be overwhelming to try to reflect on the entirety of our daily experiences.  Focus is essential.  Think in terms of critical knowledge.   If you're not sure about what to focus on, keep a random journal for a few days or weeks and then review your entries to try to identify a recurring theme.  In fact, you could use a concept map to expose key themes that would then allow you to focus your reflections.   I've posted maps that were based on events or just individual readings. It's nothing fancy.

2. Define a learning agenda to further focus your reflective practice.  At first, it's probably best to identify a relatively narrow set of topics to focus on.  As discussed in another post, I undertook a pretty ambitious learning agenda this year with a broad set of topics.  That was intentional and it's something I can do in my current personal/work life.  It might not be sustainable if I were still working full time and managing a family. So, define a learning agenda that is reasonable and high value for you.  

3. Find ways to share.  Once you're comfortable with your own progress becoming a reflective practitioner, or just comfortable enough sharing, ''find ways to share'' what you are thinking, your insights, your learning process.  This should result in interesting interactions and further learning.  That is not my strength and I know it, which is probably why I just barely push a few posts on my blog and I consider myself "done" with the sharing.   

I also teach so perhaps that's where I end up sharing a lot of tacit knowledge without thinking too much about it, in a more organic way, based on conversations with students and the questions that come up. I may not be mapping that but hopefully some of it is still transferred and some of it is mapped in the student's own notes and mental models. 

Resources to Explore:  This is not an exhaustive list. 

Tacit Knowledge & Personal Knowledge Management

  • The Tacit Dimension, by Michael Polanyi (of course)
  • The Knowledge Creating Company, by Ikujiro Nonaka and Hirotaka Takeuchi (for the SECI model). 
  • The Reflective Practitioner: How Professionals Think in Action, by Donald A. Schon. 
  • Personal Knowledge Management: How to do it, with 25 resources and 10 books on PKM, by Stan Garfield
  • The Fifth Discipline: The Art & Practice of the Learning Organization, by Peter M. Senge.  There is a nice focus on personal mastery and mental models which are crucial for understanding tacit knowledge. 
  • Harold Jarche - Seek, Sense, Share Framework.
  • There are 173 entries tagged as PKM on my old Diigo account.  I have not updated anything recently.   First entry dates from 2009 and a lot of the links are most likely dead.  That's also partly why collecting, storing and tagging links (curating) cannot be the full picture.  
  • There are also a number of posts on this blog that I've tagged as PKM although I clearly have not posted on this topic in a long time or didn't tag. 
Some focused on becoming a better "learner", some more focused on managing information overload.
  • Mindshift:  Break Through Obstacles to Learning and Discover Your Hidden Potential, by Barbara Oakley.  All the books by Barbara Oakley are focused on learning based on neuroscience insights and while targeted at "students" most insights are valuable more broadly to learning at any age, including learning from experience.
  • Building A Second Brain: A Proven Method to Organize Your Digital Life and Unlock Your Creative potential, by Tiago Forte.
  • Thriving on Overload: The Five Powers for Success in a World of Exponential Information, by Ross Dawson. 
  • Riding the Current:  How to Deal with the Daily Deluge of Data, by Madelyn Blair. 

Concept Mapping Resources:

  • Learning, Creating and Using Knowledge:  Concept Maps as Facilitative Tools in Schools and Corporations, by Joseph D. Novak
  • The Mind Map Book, Tony and Barry Buzan
  • Visual Tools for Transforming Information Into Knowledge, by David Hyerle

Some concept mapping resources are more focused on business applications and collaborative mapping:  
  • Applied Concept Mapping: Capturing, Analyzing, and Organizing Knowledge. by Brian M. Moon, Robert R. Hoffman, Joseph D. Novak and Alberto J. Cañas.
  • Visible Thinking: Unlocking Causal Mapping for Practical Business Results, by John M. Bryson, Fran Ackermann, Colin Eden, and Charles B. Finn.