Knowledge Management: the science of exploiting both implicit and explicit knowledge

Much of my work involves building software systems for Knowledge Management. Knowledge Management usually deals with explicit data: records in a database, structured text (for example: web pages, PDF files, OpenOffice.org documents), plain text, and human knowledge encoded in production rules ("expert systems"). Knowledge Management systems can also deal with implicit knowledge: what people know but do not necessarily express: work flow habits while working on documents, web browsing habits, etc.

Knowledge Management is a concept - how do we do it?

The first step is to ensure that digital artifacts (explicit knowledge) are simple to create and maintain:

  • Wikis - allowing people to share online documents helps to avoid excessive project email and is easier to index for local search than email. Search applied to enterprise wide email systems tends to yield repetitive results because knowledge is duplicated. The DRY (Don't Repeat Yourself) principle applies to Knowledge Management: using Wikis makes it easier to keep information in one place and up to date.
  • Normalized relational databases (DRY) with well publicized programming APIs that abstract access to data and web interfaces for non-technical users.
  • Use of the OWL Semantic Web Language: expressing data relationships using a class hierarchy, graph based query languages, and Descriptive Logic Reasoners.
  • Maintaining indexed and searchable document repositories.

How do we capture implicit knowledge?

User work flow can be monitored using custom document management systems (or better yet, customized open source systems like Plone) that are customized to capture who reads and edits which documents. Human experts can be identified by keeping statistics on who answers what types of questions on company wide message boards.

Using Artificial Intelligence (AI) for Knowledge Management

There are many AI technologies that can improve the performance of Knowledge Management systems. The most useful technique is arguably Statistical Natural Language Processing (NLP).

Open Source Development

I believe that most Knowledge Management systems will need to be customized heavily and are likely to require custom software development. The use of open source software will reduce your costs and time to completion. Most "competitive advantage" derived from Knowledge Management systems will likely be derived from organization and work flow specific AI that can be added as needed to open source infrastructure.