A system to automatically gather attribute data about elements such as
networks, network interface cards, operating systems, device types,
installed software, processes in execution, financial data, etc. in an
organization or a designated subset of the organization. Fingerprint
files are used, each fingerprint file corresponding to an element of a
specific type and each containing a list of attributes that will be found
if that element exists in the system. Each fingerprint contains or points
to one or more collection instructions which control a data collector
process to attempt to gather attribute data. Each fingerprint contains or
points to rules that are used to analyze the attribute data gathered to
calculate the probability that the element exists. The rules can be fired
sequentially, in if-then-else fashion or can be incorporated in a script
in loops and with mathematical manipulations, tests and branching for
more sophisticated analysis. Fingerprints can be turned on and off by
configuration data and can be used in a logical order to do discovery
without any prior knowledge of the systems being analyzed. A refresh
schedule and collection calendar control how often the fingerprints are
used in some embodiments, and collected data is stored with time stamps
to enable analysis of changes in the data over time.