A method of encoding knowledge is disclosed, which can be used to
automatically detect problems in software application deployments. The
method includes accessing a source of knowledge describing a problem
known to occur in deployments of a particular software application, and
which identifies a plurality of conditions associated with the problem.
An encoded representation of the knowledge source is generated according
to a predefined knowledge encoding methodology. The encoded
representation is adapted to be applied automatically by a computer to
analyze data representing a current state of a monitored deployment of
the software application to detect whether the conditions and the problem
exist therein. In various implementations, the encoded representation of
the knowledge can include queries for deployment information, information
concerning the relative importance of the conditions to a detection of
the problem, and/or logical constructs for computing a confidence value
in the existence of the problem and for determining whether to report the
problem if some of the conditions are not true. The knowledge source can
comprise a text document (such as a knowledge base article), a flowchart
of a diagnostic troubleshooting method, and the like. Also disclosed are
methods of at least partially automating the encoding process.