A method and apparatus for optimizing information-retrieval related system performance
based on users' communication relationships. Users' interactions and relationships
with each other are tracked by a 'relationship analyzer' that queries multiple
heterogeneous information sources, such as e-mail logs, organization charts, calendar
entries, phone logs, etc. A data structure is created for each user reflecting
the intensity of communication relationship with other users, and modified over
time as the data in the information sources change. A relationship group is defined
based on the data structure and preference or importance ratings for each type
of communication relationship that includes each user's group of highest-priority
other users. A derived relationship group may also be defined based on high-priority
users of a user's highest-intensity relationships. The relationship analyzer then
acts as a proxy for user queries, and may modify queries and create persistent
data stores or store the results of queries or sub-queries in order to improve
system performance in a variety of ways: for example, to shorten retrieval time,
to resolve missing or ambiguous results, to prioritize information for downloading
to limited-resource computing devices, or to propagate updated information among
closely related users. A way to derive a relationship group based on subject lines
of communications, or other text-based content of communication-related information,
is also described.