Abstract:
A method and system for knowledge management are disclosed. A plurality of profiles of entities are identified wherein the profiles comprise a shared characteristic. The contents of the plurality of profiles are added to a generated aggregate profile.

Description:
FIELD OF THE INVENTION 
     The present invention pertains generally to the field of knowledge management. More particularly, the present invention relates to a general purpose expertise engine capable of integration with other enterprise software technologies. 
     BACKGROUND OF THE INVENTION 
     Many large companies face high product development expenditures due to inefficient awareness of existing expertise and sharing of that expertise and knowledge within the company. For example, a company may have several thousand employees spread over numerous of countries conducting research and development projects in different offices. Results developed during one research and development project in a company&#39;s office in Munich, for example, may be invaluable to another research and development project that is taking place in a company&#39;s office in New York. However, inefficient information management may cause the office in New York to unnecessarily spend thousands of dollars pursuing the same result already being sought by the team of co-workers in Munich. 
     The process of “capturing” knowledge in large organizations usually centers on a publishing model in which the burden falls on individual people to create documents about what they know. The process of creating documents is not only time consuming, but produces an unsatisfactory result, for several fundamental reasons. First, it is virtually impossible to capture the complete context and details of any project or business issue into a document. Information that is omitted may not have seemed important to the author, but it could be extremely valuable to someone else within the company. Second, there is a delay between the time at which business activities occur and the time at which a person can summarize those activities into a document, causing delays in availability of the latest development breakthroughs and/or the most current project statuses. In addition, not all of the information necessarily can be shared publicly. Due to the sensitive nature of some information, the originator of that information may wish to share it only with a certain set of people and/or under specific circumstances. This type of information rarely gets published, and an opportunity to gain further value from the information is often completely lost. 
     SUMMARY OF THE INVENTION 
     The present invention includes a method and system for knowledge management. In one embodiment, the method comprises identifying a plurality of profiles of entities, the profiles comprise a shared characteristic. The method also comprises generating an aggregate profile comprising contents of the plurality of profiles. 
     Other features of the present invention will be apparent from the following discussion. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which: 
         FIG. 1  illustrates a system architecture according to one embodiment of the present invention; 
         FIG. 2  illustrates components of an expertise services platform according to one embodiment of the present invention; 
         FIG. 3  is a high level flow diagram of profile generation process according to one embodiment of the present invention; 
         FIG. 4  is a flow diagram of a process of submitting content to be profiled to an expertise services platform according to one embodiment of the present invention; 
         FIG. 5  is a flow diagram of a term extraction process according to one embodiment of the present invention; 
         FIG. 6  illustrates a format of a lexicon table according to one embodiment of the present invention; 
         FIG. 7  illustrates a display of an expertise search result according to one embodiment of the present invention; and 
         FIG. 8  illustrates an account structure according to one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     A method and apparatus for knowledge management are described. Note that in this description, references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the present invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those skilled in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein. 
     The present invention discloses a method and system for expertise management in an environment of a business entity. Knowledge profiles of entities are generated in order to automatically characterize individual people, groups or abstract sources of information. 
     It will be appreciated that the term “business entity” as used herein refers to a business entity, that utilizes services of the system of the present invention. The term “host application” as used herein refers to a software application that directly interacts with the system of the present invention. The term “client&#39;s system” as used herein refers to a computer system environment of the business entity. The term “user” as used herein refers to a user of a device, such as a handheld device, a personal computer, a workstation, etc., that provides the user with access to the features of the system of the present invention. 
     Introduction to Related Technology 
     One embodiment of the present invention utilizes Internet Message Access Protocol (IMAP). The IMAP is a protocol for retrieving email messages. It provides a method of accessing electronic mail or bulletin boards that are kept on a mail server allowing a client to access information as if it was stored locally. An IMAP server provides a message store for an incoming email message until users logon and download the message. Messages can be archived in folders, mailboxes can be shared, and the user may access multiple mail servers. IMAP provides integration with Multipurpose Internet Mail Extensions (MIME), which is a method utilized for transmitting non-text files via Internet email, that allows the users to read headers of the email messages without accepting the attached files or waiting for the attachments to download. 
     The invention utilizes Simple Mail Transfer Protocol (SMTP). SMTP is a standard mail TCP/IP protocol on the Internet that defines the message format and the message transfer agent, which stores and forwards email messages. 
     The present invention makes use of a servlets. Servlets can be Java applications, applets, which run on a Web server or application server and provide server-side processing, typically to access a database. A servlet is a Java-based alternative to Common Gateway Interface (CGI) scripts, interface programs, usually written in C or PERL, that enable an Internet server to run external programs to perform a specific function. A difference between servlets and CGI scripts is that a Java servlet is persistent, whereas a CGI script is not. This means that once it is started, the servlet stays in memory and can fulfill multiple requests. In contrast, a CGI script disappears once it has fulfilled a request. 
     The present invention also uses Java Database Connectivity (JDBC), which allows Java applications to access a database via an SQL language queries. Since Java Interpreters, i.e. Java Virtual Machines, are available for all major client platforms, JDBC allows generation of a platform independent database application. 
     In addition, another component of the present invention is JavaMail, which allows Java Applications to access an e-mail server. The invention also utilizes Simple Object Access Protocol (SOAP), which is a message-based protocol based on Extensible Markup Language (XML) for accessing services on the Web. Another component utilized by the inventions is .NET, a framework for web-based services and component software developed by Microsoft, Inc. of Redmond, Wash. 
     The invention also utilizes Application Program Interface (API). API is a language and message format used by an application program to communicate with an operating system or some other control program. APIs are implemented by writing function calls in the application program, which provide a linkage to a required subroutine for execution. 
     Exemplary Architecture 
     As a component of a host application, an expertise services platform provides a way to create, access and maintain profiles of entities, that automatically characterize individual people, groups, or abstract sources of information. 
       FIG. 1  illustrates an exemplary architecture of a client&#39;s system incorporating an expertise services platform  100 . The expertise services platform  100  may be invoked by any of a variety of applications provided by the client system. For example, the expertise services platform may be invoked by a project management and resource allocation application  105  to allow employees of a business entity to make informative management and resource allocation decisions. The expertise services platform  100  may also be invoked by a call center ticket routing application  110  in order to allow the client&#39;s system to intelligently route an incoming call to the best expert qualified to service the call. An Expertise Assessment and Training Management application  115  may be another application of the client&#39;s system invoking the expertise services platform  100  in order to properly assess the expertise in the business entity and also to identify proper training management forces for a particular training task. Workgroup collaboration application  120  may also utilize services provided by the expertise services platform  100  in order, for example, to determine which individuals should be included in a particular collaboration, based on their expertise. A corporate portal may also invoke the expertise services platform  100  in order to allow employees to search or browse available expertise in the organization. In one embodiment the applications communicate with the expertise services platform  100  via XML over HTTP. Expertise services platform  100  obtains data from variety of data storages, such as document management system  125 , client&#39;s file system  130 , email server  135 , discussion group server  140  and other data storages  140 , utilizing Transmission Control Protocol/Internet Protocol (TCP/IP), SMTP/IMAP and Lightweight Directory Access Protocol (LDAP) protocols, for example. 
       FIG. 2  illustrates components of the expertise services platform  100  according to one embodiment of the present invention. The expertise services platform  100  may be implemented as a Java application supporting XML and be implemented using a Java Virtual Machine. It will be appreciated that the present invention is not limited to XML; other well known methods and techniques may be used. In addition, different components of the expertise services platform  100  may be implemented using different Java Virtual Machines in order to distribute processing load across multiple platforms and allow parallel execution of the expertise services. As shown in  FIG. 2 , the expertise services platform  100  comprises a set of API routines  202 , which allow the host application to invoke features of the expertise services platform  100  described in detail below. As shown in  FIG. 2 , the expertise services platform  100  also includes a profiler  205  that performs term extraction operations to construct profiles for profile objects. The extracted terms are temporarily stored in a term database  235  prior to adding the extracted terms to corresponding profiles stored in a profile database  225 . Documents that are processed by the profiler  205  in order to perform term extraction operations are converted to a predetermined format by a converter  214  that is part of the expertise services platform  100  and stored in an associated text database  240 . At a predetermined time or interval, a profile transfer module  210  updates the profile database  225  with the latest information, i.e. terms generated by the profiler  205 . The profile database  225  may contain a historical list of indexed terms with importance rankings for each term. A confidence update module  220  calculates each term&#39;s ranking or confidence value, in order to ensure that each profile reflects the overall expertise of the profile owner. In one embodiment the expertise services platform  100  comprises a search engine  245  that provides a user with a search result. The operations of each of the components of the expertise services platform  100  are described in detail below. 
     Profile Creation 
     In one embodiment of the invention a profile is created for every account in the client&#39;s system.  FIG. 3  illustrates a diagram of a high level profile generation process. At  300  of  FIG. 3  an account is generated to define an entity. An entity may be any object such as a person, group of individuals, department, external third-party, defined resource, etc. Each account comprises optional account properties information defining additional information to be associated with an account and sets of terms with various access restrictions states that are collectively dubbed a profile for the particular account. Account properties may contain an entity&#39;s contact information, such as email address, phone number, name, department, etc. In one embodiment, an account may comprise several profiles of different entities. In addition, one entity may comprise several accounts. At  310  a profile for the account is generated. In one embodiment creation of a profile for the account comprises an expertise discovery process and a profiling process. As part of the expertise discovery process, the profiler  205  processes text associated with the entity. 
       FIG. 4  illustrates a process of submitting the associated text to the expertise services platform  100  in order for the profiler  205  to process the submitted information. At  400  the host application identifies the associated text that may need to be processed by the expertise services platform  100 . In one embodiment the associated text may be an email message generated by the entity, an email message received by the entity, a document generated by the entity and identified by the entity as a text that may be processed by the expertise services platform  100 , or an HTML document accessed by the entity or created by the entity. It will be appreciated that the associated text may be any of a variety of other types of information associated with the entity, such that the present invention is not limited to the information types listed above. 
     At  405  the content to be profiled is formatted as an email message by the host application. The profiling content may be included either in the body of the generated email message or as a MIME attachment attached to the generated email. At  410  a properties document containing the profiling properties associated with the entity and extracted from the entity&#39;s account is created and attached to the email message. In one embodiment the properties document is an XML document. At  415  the host application places the generated email message in a storage bin, utilizing an appropriate protocol, for example, SMTP or IMAP. In one embodiment the generated email messages may be placed in the storage bin via API routines, which are described later. In one embodiment the associated text storage bin is an IMAP storage bin. It will be appreciated that the storage bin does not have to be IMAP type and may be any type of a storage bin to store the generated email message to be processed by the expertise services platform  100 . 
     The profiler  205 , upon receiving the associated text, determines to which profile the extracted terms belong by utilizing information in the attached properties document. The profiling properties extracted from the attachment also provide the expertise services platform  100  with information such as to which term set the extracted terms belong, how heavily these terms should be weighted in the profile, etc. The profiler  205  profiles all of the text or document within the email, with the exception of the attachment used for profiling properties. Once the profiling is complete, the document may be deleted from the storage bin. 
     It will be appreciated that the host application may provide the associated text to the expertise services platform  100  utilizing any of a variety of other techniques well known in the art, such that the present invention is not limited to the technique described above. 
     Term Extraction 
     In one embodiment of the present invention, upon retrieving the associated text from the storage bin and placing it in the associated text storage bin  240 , the profiler  205  directs the converter  215  to determine whether the format conversion is necessary.  FIG. 5  shows a term extraction process. At  500  of  FIG. 5  the converter  215  determines the format of the associated text stored in the associated text storage bin  240 . If the associated text corresponds to a format from a set of predetermined formats able to be processed by the profiler  205 , the converter notifies the profiler that the associated text is ready to be processed. If the associated text does not correspond to the format recognizable by the profiler  205 , the converter  215  converts the associated text and provides the profiler  205  with the associated text converted into a format recognizable by the profiler  205 . In one embodiment, the profiler  205  recognizes ASCII text and HTML formats. It will be noted that the profiler  205  may be configured to recognize a variety of other formats, such that the present invention is not limited to the formats listed above. In addition, the profiler  205  may support all of the formats that the converter  215  can recognize and convert from, thus eliminating the need for the converter. At  505  the profiler  205  extracts information from the attachment included in the email comprising associated text in order to determine the profile to which the associated text belongs. In addition, the attachment may contain information such as identification of a term set to which the extracted terms belong, identification of the weighting of the associated text and of the extracted terms. 
     At  510  the profiler  205  extracts terms from the associated information stored in the associated text storage bin  240 . The terms are extracted in the form of, for example, grammar terms, noun phrases, word collections or single words. Upon extraction of the terms, the terms are placed in the term database  235  prior to the profiler  205  determining which terms are to be added to the entity&#39;s profile. The profiler  205  determines to which profile the terms belong by processing information in the attachment. During term extraction the profiler  205  may determine the total number of words comprising the associated text, the density of recurring words within the document, the length of each term, i.e., the number of words that constitute the term, the part of the speech that each word within the document constitutes, and a word type, e.g. whether the terms is a lexicon term specific to the business entity&#39;s environment. The profiler  205  has access to a database of lexicon terms (not shown), which may identify both universal lexicon terms and environment lexicon terms specific to an environment within which the expertise services platform is being employed. Upon extraction of the terms, the profiler  205  determines the relevance of each extracted term in order to determine whether the term is relevant and needs to be added to the entity profile, by comparing the extracted terms to the terms in the universal lexicon terms and environment lexicon terms. In one embodiment, the confidence update module  220  assigns a value to each term based on a set of predetermined thresholds, such as the number of occurrences of a term in the associated text, the length of the term, a part of speech indication, etc. Upon the confidence update module  220  assigning the value to each term, the profiler  205  determines if the value is higher than a predetermined threshold, in which case the term is added to the entity&#39;s profile. Techniques for determining the relevance of a term in a document are well known in the art and do not require any further explanation. In one embodiment upon extraction of the terms and identification of the terms matching the universal lexicon terms and/or environment lexicon terms, the profiler  205  determines the term sets to which the extracted terms belong. 
     A profile of the entity may comprise several term sets, for example a private term set, a public term set, a set comprising terms corresponding to a particular field of the lexicon, a fixed term set comprising terms with the highest value assigned by the confidence update module, etc. Upon retrieving information from the attachment comprising profiling information, the profiler  205  may identify the term set to which the extracted terms belong. For example, the profiling attachment may specify that the terms extracted from the associated text should be associated with the public term set. Hence, the profiler  205  places the extracted terms from the associated text into the public term set of a profile. In one embodiment a term set may comprise subsets relating to different fields of expertise. For example, the public term set may comprise a networking subset including terms relating to the network technology. Upon extracting terms from the associated text and comparing the terms to the universal lexicon terms and/or environment lexicon terms, the profiler  205  may determine the subterm sets to which the terms may belong. 
       FIG. 6  illustrates a format of a table, which may be utilized to store universal lexicon terms or environment lexicon terms. As illustrated the table may include a term field  610  for storing terms present in the lexicon term set. The table may also include a subset field  615  that may store subsets of a term set to which the particular term belongs. For example, the field  615  may include a “networking” subset for a term “router” stored in the field  610 . Continuing with this example, when the profiler  205  extracts information from the profile attachment and determines that the extracted terms should belong to the public term set, the profiler  205  continues extracting terms from the associated text and storing them in the term database  235 . Upon extraction of a “router” term, the profiler  205  accesses the universal lexicon terms and/or environment lexicon terms in order to determine the subset to which the extracted term “router” belongs. 
     Upon identification of the extracted terms to be added to the entity&#39;s profile and determination of term sets to which the extracted terms should be added, the profile transfer  210  transfers the terms from the term database  235  to the profile database  225 . In one embodiment the profile transfer  210  determines whether the profile of the entity already contains all the term sets and all the subsets to which the extracted terms belong. Continuing with the example above, upon determining that the “router” term belongs to the networking subset, the profile transfer  210  determines whether the profile of the entity already contains a networking subset. If the profile already includes a networking subset, the profile transfer  210  adds the extracted term to the subset. The profile transfer  210  creates the networking subset and inserts the extracted term to the newly created subset. The host application may specify the allowed terms sets within a particular profile. For example, the host application may not authorize presence of term sets in profiles, in which case the expertise profile transfer places the terms in a “default” term set. 
     In one embodiment the profile database  225  comprises historical information about each profile in the expertise services platform  100 , such as the list of all the terms with confidence levels for each term. Upon transferring the extracted terms to the profile database  225 , the profile transfer  210  transfers the latest added terms to the search database  230  in order to provide users with the latest information about the expertise in the client&#39;s environment. 
     In one embodiment, at predetermined time periods the confidence update module  220  determines whether the confidence levels of any terms need to be changed and whether any terms need to be removed from the profile due to the non-usage of these terms during a predetermined time interval. The confidence module update  220 , upon recalculating the confidence levels, updates the profile database  225  and invokes the profile transfer module  210  to reflect the latest changes in the search database  230 . 
     In one embodiment of the present invention, the profiler  205  may create an aggregate profile of a group of individuals, such as a corporate department, a news group, etc. For example, the profiler  205  may generate an aggregate profile for a sales department of the business entity. The host application may direct the expertise service platform  100  to generate an aggregate profile for a particular department. Continuing with the above example, the host application may direct the expertise services platform  100  to generate the aggregate profile for the sales department. The profiler  205  accesses the profile database  225  and determines which profiles belong to entities from the sales department by examining an appropriate field of the account property information. Each individual profile that belongs to an entity from the sales department is added to the aggregate profile for the sales department. In one embodiment the aggregate profiles are of the same format as individual profiles described above; that is, the aggregate profiles have term sets comprising collection of terms of the individual profiles used to generate the aggregate profile. In one embodiment an aggregate profile is a snapshot of individual profiles representing a group of entities at a specific point in time. In another embodiment the aggregate profile comprises the most current terms sets and is updated by the profile transfer module  225  in a manner described above with respect to individual profiles. It will be appreciated that an aggregate profile may include individual profiles sharing any similar characteristics and the present invention is not limited to an exemplary characteristic presented above. 
     Expertise Searching 
     In one embodiment of the present invention, the host application provides the user, e.g., an employee of the business entity, with an interface in order for the user to specify a type of expertise that the user requires. The user may utilize keywords to specify the required expertise. The user may also provide the system with a specific question or direct the system to search by context by providing a block of text. Upon submitting a query the host application forwards the query to the expertise services platform  100 . In one embodiment the query is forwarded to the expertise services platform in a manner described above, by compiling the query into an email message format and submitting it to the expertise services platform  100 . Upon receiving the email message with the query, the search engine  245  extracts the terms from the query and searches the search database  230  for profiles that contain matching terms in the public subset of the profiles. In one embodiment, the search engine  245  identifies profiles that comprise matching terms in the private subsets and prompts the entities of the profiles for authorization to utilize the information in the search result generated for the received query. 
     In one embodiment the user are provided with a list of people who were identified as experts in the area to which the user&#39;s query related.  FIG. 7  illustrates an interface displaying a search result presented to a user whose query involved the keyword ‘ion channel’. As illustrated in  FIG. 7 , the user is provided with a list of experts that were identified by the expertise services platform along with the strength of their expertise. The user is also presented with an option to automatically contact an expert from the list via email. In one embodiment, upon clicking on the name presented in the experts list, the user may be presented with information about the selected expert, such as title, department, contact information, a list of profile terms that matched the terms in the query, etc. 
     Expertise Services Platform API 
     In one embodiment of the invention the host application communicates with the expertise services platform  100  utilizing a variety of API routines  202 . For example, the client&#39;s system administrator may utilize administration API routines in order to configure the properties that define how a host application may interact with the expertise services platform  100 . The administration API routines may also allow registration of applications that are able to communicate with the expertise services platform  100 . For example, a corporation may desire to enable several applications to interact with the expertise services platform  100 , such as a workgroup collaboration application, a project management and resource allocation application, a call center ticket routing application, etc. In one embodiment the API routines  202  may provide the client with the ability to create and manage databases used by the expertise services platform  100 . In addition, the client&#39;s system administrator may utilize administration API routines to manage servers that comprise expertise services platform  100  components. 
     In one embodiment of the invention the host application utilizes account management API routines in order to provide the expertise services platform  100  with access permissions on each profile associated with an account, to create, manage, modify and delete accounts for which profiles are created and maintained by the expertise services platform  100 . The host application, in one embodiment, utilizes the account management API routines to create log in and log out methods and to create different administrator-type accounts. Account management API routines may also allow the host application to manage contact information tied to an account. 
     In one embodiment accounts are defined by a collection of XML terms.  FIG. 8  illustrates an XML structure defining an account. The account structure allows the developers of the client system to specify which accounts have profiles in the expertise services platform, which profiles have login and password, the types of administration rights granted, etc. 
     In one embodiment the host application utilizes expertise profiling API routines in order to submit content to be profiled to the expertise services platform  100 . In addition, the host application may utilize the profiling API routines to provide the expertise services platform  100  with the relevance weighting to be set for the terms in an incoming message. 
     In one embodiment of the invention, the expertise services platform  100  provides the developers of the client&#39;s system with search API routines that allow the host application to configure the expertise services platform  100  to support features such as performing a search for an expert utilizing one or more keywords or a block of text, including matching terms and their confidence levels along with the profiles of the found experts when presenting a user with search results, displaying the position of words extracted in the original query text and specifying how the terms link to the terms within the matching profiles. The search API routines may also allow the client&#39;s system developers to specify a limit on the number of experts to be included in the search results based on the strength of the match. In addition the client&#39;s system developers may specify the information to be included in search results such as name, e.g. first and last name, of an entity who was identified as an expert in the requested information field, contact information, e.g. department/organization name, job title, address, phone number, email, matched terms with strength of match, etc. 
     Profile management API routines allow the client&#39;s system developers to configure the expertise services platform  100  to allow account owners to retrieve one or more term sets within their profiles. The account owners may also be allowed to move terms from one term set to another. The developers of the client&#39;s system may utilize the profile management API routines to instruct the expertise services platform  100  to place particular terms into specific term sets at the time the terms are added to a profile. The profile management API routines also allow the developers of the client&#39;s system to configure the expertise services platform  100  to export the profiles in order to allow applications other than the host application to access profiles of the entity. In one embodiment the privacy levels set by the owning account are retained and terms that are located in the private term sets are not exported. In one embodiment an exported profile consists of a data structure containing all the terms and their associated attributes in the specified account profile. Attributes include the publication status, e.g., privacy level, confidence metric, etc. In one embodiment the internal metrics utilized by the expertise services platform  100  to generate confidence levels of the terms are not included in the data structure. The data structure may be an XML formatted data structure. 
     In one embodiment the developers of the client&#39;s system perform expertise assessment via expertise assessment API routines. For example, the developers can create aggregate profiles, consolidating a collection of individual profiles for searching, organizational evaluation or for historical tracking over time. Aggregates may be created for any logical group of entities. In one embodiment, there may be a minimum number of profiles that need to be selected in order to generate an aggregate profile. In one embodiment, the developers may invoke an API function in order to instruct the expertise services platform to perform a search on the profiles and suggest profiles to be included in an aggregate profile. For example, the developers may instruct the expertise services platform to suggest profiles to be included in the Sales Department aggregate profile. The developers may also direct the expertise services platform to suggest aggregate profiles for every department. 
     In one embodiment the developers of the client&#39;s system perform term clustering by accessing the term clustering API. For example, the developers can create easy-to-read “snapshots” that quickly summarize the expertise represented by a single profile or within a set of profiles, such as all profiles within the Sales department. Term clusters are created by dynamically clustering together terms that relate to a specific area of expertise. These groupings are based on the strongest words in a profile or set of profiles (a word&#39;s strength is derived from the confidence of the terms that contain it.) Terms that contain these words are then dynamically grouped together. 
     The reporting API routines provide developers of the client&#39;s system with ability to obtain statistical information about the expertise services platform  100 . In one embodiment the expertise services platform  100  provides details of the status and permissions of specified accounts such as whether the account is active, whether there is an associated profile, etc. In one embodiment the login activity is provided to the developers of the system when a reporting API function is invoked. The login activity report may comprise a total number of accounts that have logged in and those that have not logged in during a specified time period. In one embodiment the expertise services platform  100  returns the status report for a particular account specified by the developers. The expertise services platform  100  may also provide a term summary including a number of terms contained in every term set of a specified profile with identification of a status of each term, i.e. active or inactive. In one embodiment active terms are the ones that were utilized during a predetermined time period, for example last two months. In one embodiment, the expertise services platform  100  provides statistics on terms within term sets over the entire population of the profiles within the database. 
     Document summary API routines provide statistics on the types of documents that have been submitted into expertise services platform  100  to form the profiles. In one embodiment the types of documents include an archive document, which is a file such as a text document, a spreadsheet or presentation submitted directly into the expertise services platform  100 ; an email document which is an e-mail message sent to the profiler; an email attachment document which is the document that was included as an attachment to an email; unknown document which is a document that was not recognized by the expertise services platform  100  and was not profiled; discarded document which is a document that was not profiled because the document did not meet the minimum or maximum size criteria, or the document could not be read because id did not contain text-based content or was password-protected. 
     The expertise services platform may also provide the developers of the client&#39;s system with information about database status when a particular API function is invoked. The information may include the size of the database and the size of every object in the database. The information may also include unique words in the database, terms stored in the profiles, email addresses extracted during profiling, total profiled documents, etc. 
     It will be recognized that many of the features and techniques described above may be implemented in software. Likewise, hardwired circuitry may be used in place of software, or in combination with software, to implement the features described herein. Thus, the present invention is not limited to any specific combination of hardware circuitry and software, nor to any particular source of software. Moreover, components of the invention may reside on a processing system including a processor and a storage medium, such as a personal computer server-class computer, workstation, etc. Processing systems such as this are well known in the art and do not require any further explanation. The memory can store instructions and/or data to implement the process described above. 
     Thus, a method and apparatus for field of knowledge management have been described. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense.