Abstract:
A method and system for finding, accessing, connecting, and sharing information in the context of business activities. Authorized users may search and view information content from managed or unmanaged data repositories maintained at various locations. Users may connect and share this information to their business process (e.g., projects, products, and processes) without losing referential integrity. A virtual repository unifies information from multiple sources. On demand, information may be automatically managed and converted into structured information used to execute business processes.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit of U.S. Provisional Application No. 60/565,495, filed Apr. 26, 2004, entitled METHOD AND SYSTEM FOR ACCESSING AND MANAGING INFORMATION, which application is incorporated herein in its entirety. 
    
    
     FIELD OF THE INVENTION 
     This application relates generally to computers, and more particularly to accessing and managing information. 
     BACKGROUND 
     The widespread availability of computers and software applications has given organizations a powerful tool with which to create and access information. Within one organization, computers may be used by marketing, sales, accounting, management, maintenance, manufacturing, engineering, research, and other branches of the organization. Within one branch of an organization (e.g., marketing), users may predominately use one set of applications such as word processors, spreadsheets, presentation applications, and the like. Within another branch of the organization (e.g., engineering), users may predominately use other applications such as CAD programs, modeling programs, mathematical programs, and the like. Some applications, such as word processors, spreadsheets, and the like, may find widespread use throughout an entire organization. With these applications, users may generate and access a tremendous amount of information. 
     The information generated by users in the various branches of an organization may be stored in many locations. For example, some users may store some information on the hard drive of their personal computers. Other users may store information on a server that is accessible by users in their group. Many users may store information in a variety of locations, including local hard drives, peer hard drives, and local and distant servers. Within one company, there may be thousands of computers and hundreds of servers, each having a portion of the company&#39;s intellectual property. 
     Some information may be stored in managed storage solutions that automatically keep track of revisions to stored objects and may enforce a business process. Other information may be stored in unmanaged storage where users keep track of revisions to objects by file names, text within each stored item, meta-data, and the like and use ad-hoc business processes. The method for identifying revisions may vary from branch to branch, location to location, or even from user to user. 
     With the wealth of information available from so many sources in disparate locations, finding and accessing all the information that is relevant to a particular project, process, product, or the like often taxes even the most organized organizations. In addition, organizations are severely challenged with bringing unmanaged information under managed control in an easy manner. What is needed, then, is a method and system to easily find, access, connect, and share information. Ideally, the method and system would provide an easy way bring unmanaged information under management by the system as needed. 
     SUMMARY 
     Briefly, the present invention provides a method and system for finding, accessing, connecting, and sharing information in the context of business activities. Authorized users may search and view information content from managed or unmanaged data repositories maintained at various locations. Users may connect and share this information to their business process (e.g., projects, products, and processes) without losing referential integrity. A virtual repository unifies information from multiple sources. On demand, information may be automatically managed and converted into structured information used to execute business processes. 
     In one aspect of the invention, information within files such as text, notes, attributes, properties, and product assembly structures may be searched without relying on predefined meta-data. Distributed software agents may scan relevant files and data stored on different network drives across multiple locations to deliver fast and up-to-date search results. 
     In another aspect of the invention, a common interface such as a Web browser with plug-in viewers or otherwise is provided to allow easy access and viewing of information contained in many types of file formats such as CAD drawings, office productivity suites, enterprise systems such as enterprise resource planning (ERP), product lifecycle management (PLM), and the like. In another aspect of the invention, both managed and unmanaged information may be accessed and viewed from a single interface and connected to the business process by means of persistent handles. The persistent handles may reference pre-defined indexes, which may be updated upon demand or just-in-time as needed. Information that is deleted or moved may be pruned or re-indexed. In another aspect of the invention, with a simple selection, information accessed through the search engine may be connected to the business process and unmanaged information may be turned into information that is managed by the system. Such unmanaged information may become managed almost instantly with automatic assignment of revision control identity and population of relevant meta-data tags. 
     In another aspect of the invention, the system may not allow information that is already managed by a system external to the system to be managed by the system. 
     Other advantages will become apparent from the following detailed description when taken in conjunction with the drawings, in which: 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1-3  are block diagrams representing a UML class diagram showing classes and relationships between a product lifecycle management system, a search engine, and a repository in accordance with various aspects of the invention; 
         FIG. 4  is block diagram representing a UML class diagram that shows exemplary PLM business objects in accordance with various aspects of the invention; and 
         FIG. 5  is a UML activity diagram in accordance with various aspects of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanied drawings, which form a part hereof, and which are shown by way of illustration, specific exemplary embodiments of which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments can be utilized, and other changes can be made, without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims. 
     Unified modeling language (UML) class and activity diagrams are used to assist in describing various aspects of the invention. UML syntax is described in UML Distilled: A Brief Guide to the Standard Object Modeling Language by Martin Fowler, Addison-Wesley, Boston, Mass., 2004, which is hereby incorporated by reference. 
       FIGS. 1-3  are block diagrams representing a UML class diagram showing classes and relationships between a product lifecycle management (PLM) system, a search engine, and a repository in accordance with various aspects of the invention. Turning to  FIG. 2 , a user may use a PLM system  200  to manage product lifecycle information. Product lifecycle management systems may manage product information throughout various phases of the product lifecycle. Product information may include, for example, information associated with requirements, design, system engineering, manufacturing, process, project management, production, service, corresponding processes, in-service, end-of-life, and the like. 
     Information in PLM systems may be represented as PLM business objects P 1  together with relationships between the PLM business objects through PLM business object structures P 2  as shown in the UML class diagram in  FIG. 2 .  FIGS. 1-3  show a PLM system  200 , a repository  100 , and a search engine  300  together with relationships between and within these elements. A PLM business object P 1  represents information and process that is of importance to the business in the context of executing and planning functions for one or more product life phases and, as such, encompasses both the information and the process definition. For example, a PLM business object P 1  may include a scanned paper document, an electronic file, a record in a database, an information structure that represents information about products, processes, or projects, and the like. The PLM business object structure P 2  captures relationships between different PLM business objects P 1 . An example of such relationships is described in further detail in conjunction with  FIG. 4 . 
     Turning to  FIG. 1 , a repository  100  is a data store or application system residing anywhere that is accessible by a computer, including, for example, a network reachable file system, laptop hard drive, workstation file system, a PLM system, and the like. A virtual repository comprises the sum of all repositories accessible by the search engine. A repository item R 1  is an item that is stored within a repository and may represent an item in the real world. Examples of repository items may include parts, files, processes, geometry, systems, and the like. A repository item R 1  may be a managed repository item R 2  or an unmanaged repository item R 3 . A managed repository item R 2  is a repository item that is controlled. A repository item that is controlled may only be changed or accessed according to well-defined business rules that the business and users must follow. Programmatically, the repository  100  (or a computer associated therewith) ensures that the access and business rules are followed. An example of the managed repository item R 2  is an enterprise resource system, a PLM system (e.g., the PLM system  200  of  FIG. 2 ), and the like, where users are required to follow specific rules to access and change information and execute business processes. 
     The unmanaged repository item R 3  may represent a repository item where formal business rules may not be in place relative to how changes are made and access is controlled. An example of an unmanaged repository item is a file system directory that is accessible to various users in the network. In this case, users may add, delete, and change files without any specific business-related rules imposed by the repository. 
     Turning to  FIG. 3 , a search engine  300  is any application that is used to search one or more repositories for information. The search engine  300  may search on externally available information (e.g., file name, size, and the like) and/or information internal to or associated with the file (e.g., meta-data, content, and the like) using pre-processed indexes or by dynamically querying the repositories. A user or application may request that the search engine  300  search the one or more repositories by providing the search engine  300  with a query. 
     One or more search engine items S 1  may be stored within the search engine  300 . A search engine item S 1  may maintain a dependent relationship to a repository item (e.g., repository item R 1  of  FIG. 1 ), either through a persistent query or a persistent index. Thus the search engine item S 1  may be a search engine item query S 2  or a search engine item index S 3 . The search engine item query S 2  manages a predefined query that is to be executed against one or more repositories. An exemplary search engine item query may be a structured query language (SQL) query to retrieve all part information in a repository where the part number is ‘123’. A search engine item index S 3  may manage a persistent index of the repository item such as its meta-data, product structure, and associated content including files. Search engine item indexes may be extracted from the source repository based on one or more specialized computer programs that understand the internal structure of the repository item being indexed and generate a search engine item index with one or more attribute-values. A search engine item index&#39;s item attribute-value S 4  may comprise a list of attributes and values for the indexed item. The values may include text, numbers, images, product-structure, neutral files to facilitate viewing by applications other than the authoring application, and the like. An exemplary search engine item index&#39;s item attribute-value S 4  may comprise a list of tuples for a part number and its textual value, the part name and its textual value, the part&#39;s description and its textual value, the part&#39;s product structure and its product structure value, and the part&#39;s image and its image value. 
     Turning again to  FIG. 2 , each PLM business object P 1  may be an unmanaged PLM business object P 3  or a managed PLM business object P 4 . Unmanaged PLM business objects P 3  typically represent repository items that are external to the PLM system  200 . Managed PLM business objects P 4  represent PLM business objects that are managed by the PLM system  200  as discussed in more detail in conjunction with  FIG. 4 . 
     A persistent item reference P 5  is a type of unmanaged PLM business object P 3 . Specifically, a persistent item reference P 5  maintains a relationship between the PLM system  200 &#39;s PLM business object P 1  and the search engine&#39;s search engine item (e.g., search engine  300 &#39;s of  FIG. 3  search engine item S 1 ). A persistent item reference P 5  represents a connection between items in the PLM system  200  and items in the search engine (e.g., search engine  300  of  FIG. 3 ). An exemplary persistent item reference data structure may comprise a tuple with a reference to a search engine item (e.g., search engine item S 1  of  FIG. 3 ) and a reference to a PLM business object P 1 . Another exemplary persistent item reference data structure may comprise a tuple with a reference to a search engine query (e.g., search engine item query S 2  of  FIG. 3 ) and a reference to a PLM business object P 3  that implicitly relates the PLM business object to one or more search engine items. 
       FIG. 4  is block diagram representing a UML class diagram that shows exemplary PLM business objects in accordance with various aspects of the invention. For example, PLM business objects may include information associated with a company, projects, processes, parts, systems, modules, and the like. The PLM business object structure is shown in UML syntax as lines between various PLM business objects. For example, a project may serve as a context for work that is performed to realize specific objectives and may involve multiple parties that collaborate, share, and organize information. Projects typically organize information through a folder hierarchy structure. A process comprises a set of operations used to facilitate the management and/or execution of business activities. Processes may include, for example, one or more action items, change processes, purchase orders, requests for quote, work orders, and the like. Product information may be represented by PLM business objects such as parts, part specifications, hierarchically structured bills of material (BOMs). Documents may be related through PLM business object structure. It is noteworthy that since a PLM business object (e.g., PLM Business Object P 1  of  FIG. 2 ) may be stored as a managed repository item in a repository accessible via the search engine (e.g., Repository R 1  of  FIG. 1 ), the PLM business object may be automatically decomposed into finer-grain search engine items (through search indexing), and these decomposed items may be referenced by products, processes and projects as noted earlier. That is, the product information may be one or more configurations of a requirements decomposition, a system decomposition, a physical part decomposition, a process and service plan decomposition that are related through a network of traceability relationships, associated specifications, and documentation spread across a virtual repository. An exemplary managed PLM document may reveal a hierarchical structure of requirements through a search indexing process (e.g., Search Engine Item Index S 3  of  FIG. 3 ) which may be allocated to projects, products, or processes. 
       FIG. 5  is a UML activity diagram in accordance with various aspects of the invention. At block  1 , a user logs into a PLM system and makes a connection to a business context. In doing so, the user establishes a business context. The user may establish a business context by selecting, for example, a specific product, process, project, or company. 
     At block  2 , within this context, the user may search for a search engine item (e.g., S 1  of  FIG. 3 ), which references a repository item (e.g., R 1  of  FIG. 1 ) located in a given repository, based on the user&#39;s access rights. Note that a search engine item (e.g., S 1  of  FIG. 3 ) may be a search engine query item (e.g., S 2  of  FIG. 3 ) or a search engine item index (e.g., S 3  of  FIG. 3 ). The search engine system performs a search against existing search engine items and presents the user with one or more results. The user may then browse the details of the returned search engine items (e.g., meta-data, product structure, and the contents of any associated files). The user may then decide to terminate the process or proceed to block  3 . 
     At block  3 , the user may then select one of more search engine items (e.g., S 1  of  FIG. 3 ) and establish a persistent item reference (e.g., P 5  of  FIG. 2 ) to the specific context (e.g. product, process, project, company, or the like) by invoking a method. Subsequently, the persistent item reference is maintained in the PLM system as another PLM business object. The user may then share this information with others by sending, for example, an e-mail. The e-mail may include a link that refers the recipient of the e-mail to the specific context. 
     When the method to connect a search engine item to a specific context (e.g., project, process, product, or company) is invoked, a persistent item reference is created corresponding to the search engine item. An exemplary data structure embodying a persistent item reference may include a tuple having a reference to the search engine item record and a reference to the PLM context. 
     Once the connection is made, users can send an e-mail to other parties defined in the system with a link to the PLM business object (e.g., P 1  of  FIG. 2 ) context. This allows each individual of the other parties to navigate and browse the information associated with the PLM business objects in the system (e.g., project, process, documents, products, and persistent item reference). Through this process users may also have where-used visibility allowing them to easily understand all the PLM references (e.g., P 5  of  FIG. 2 ) to a search item index (e.g., R 1  of  FIG. 3 ). The user may then decide to terminate the process or proceed to block  4 . 
     At block  4 , search engine items that correspond to unmanaged repository item (e.g., R 3  of  FIG. 1 ) are managed as needed. At sub block  4 . 1 , the user may convert a search engine item directly, or by referencing the persistent item reference in the PLM system to a PLM business object by invoking a convert method. The convert method may extract the information from the search engine item index in the search engine or query it from the repository item and convert it to a PLM business object. The convert method may also populate the managed item with the appropriate meta-data, product structure, and files based on a conversion map. One exemplary conversion map is an XML document which defines how a search engine item and its attributes and structure map to a PLM business object and its attributes and structure. A portion of such an exemplary XML document may include the following: 
     &lt;PLM-attribute&gt;
         &lt;PLM-attribute name=“document:description”&gt;   &lt;searchengine-attribute name=“document:comments”/&gt;       

     &lt;/PLM-attribute&gt; 
     This portion of an exemplary XML document includes a mapping that maps the searchengine item-attribute document:comments into the PLM business object-attribute document:description. It will be understood that additional or different mappings May be made without departing from the spirit or scope of the invention. 
     As another example, the user may review the search engine item index of a CAD model file with attributes such as parts and product structure and manage it by invoking a method that populates PLM business objects such as parts, part specification, and bill of material structures (noted in  FIG. 4 ) in the PLM system. A product structure represents relationships between different parts such as an assembly, its components and sub-assemblies, associated drawings, and the like. 
     In another example, the user may convert all the items within a project, or export data corresponding to the project for management into another PLM system. 
     At sub-block  4 . 2 , upon conversion, the search engine item index associated with the persistent item reference (or the repository item associated with the search engine item query) is transformed to resolve to the newly converted PLM business object. In addition, the repository item associated with the pre-transformed search engine item may optionally be deleted. Future requests for the converted PLM business object may then be referred to a repository managed by the PLM system. The search engine item index may be transformed to maintain overall referential integrity of the combined system. 
     After the search engine item index is transformed, a user querying for the newly converted search engine item will be presented with a result that resolves to the newly converted and managed PLM business object. A user querying the PLM system will also be presented with the same, and connections to existing PLM business objects may be preserved. 
     After the search engine item index is transformed, the user may continue to work with the repository item as before, thereby effectively managing the item in place. Actions on the original repository are synchronized with the PLM repository. This has the added benefit of minimizing process change while attaining the benefits of information management. 
     As can be seen from the foregoing detailed description, there is provided an improved method and system for accessing and managing information. While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention. 
     It is further noted that, in one example, the methods recited herein (including querying a search engine and obtaining therefrom an identifier that identifies a search engine query; associating the identifier with an unmanaged business object via a tuple stored by a component arranged to manage and make accessible product information via business objects, wherein an unmanaged business object&#39;s revisions are not automatically stored; and converting an unmanaged item included in the search engine query to a managed business object upon demand, wherein a managed business object&#39;s revisions are automatically stored) are carried out as a result of a computing system executing computer-executable instructions from a tangible computer-readable medium.