1. Field of the Invention
The Embodiments of the invention relate to a system for identifying and organizing changes or parameter matches in data structures. Specifically, embodiments of the invention relate to a system for traversing a data structure to identify sets of data that have changes or specific matching parameters and for presenting these data sets for selection through a user interface mechanism such as a slider.
2. Background
In the field of supply chain management and product lifecycle management, product development is managed through a series of interrelated data structures. One of these data structures is a bill of materials. A bill of materials can be organized as structured data that is specific to the entity that utilizes that data. For example, a design engineer may generate a structured bill of materials that is organized in a manner that is useful to design engineers. This organization of a product is from a hierarchal point of view. At a design level, the components and sub-components of the product are organized as assemblies and sub-assemblies. Similarly, the data structure of the bill of materials has a hierarchy that matches this with assembly and sub-assembly relationships between entries in the data structure.
In one example, a design bill of materials data structure for an airplane organizes the parts of the airplane into a hierarchy where the airplane as a whole product is at the highest level in the hierarchy and the sub-assemblies of the airplane are the fuselage, wings and engines are at the next lower level of the data structure hierarchy. Further sub-assemblies follow at lower points in the data structure hierarchy. The parts of the body, the parts of the wings and the parts of the engine are in this next level.
In addition, over time many of the components of the product are changed, upgraded or different versions are utilized. Tracking the differences in data structures over time within the same data structures can make it difficult for an individual to try and find specific information and to find all the correlated information. For example, if a user wants to know which fuselage sub-assembly parts were in use at the same time that a particular version of an engine was in use, then the user would have to traverse the data structure to find the engine to determine the version of the engine and look up its time frame then go back to the fuselage sub-assembly and find those parts that have the exact same time frame. This traversal and comparison is slow, time consuming and inefficient for the user.
Embodiments of the invention are illustrated by way of example and not by way of limitation and the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that different references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least “one.”
The computer system 101 can include a data set selection mechanism 103, analytical tools 113, a set of applications 105, a data structure storage unit 109 and similar components. In one embodiment, where the data set selection mechanism implementation is distributed, a remote computer system 131 can include a set of applications 135, analytical tools 133 and data structures 139 and similar components. A ‘set,’ as used herein refers to any whole positive number of items including one item.
A data set selection mechanism component 103 is a utility for providing a user interface element that enables the easy identification and selection of related information referred to herein as a data set or a data slice. This utility can be utilized by any type of application 105 that works with complex data structures 107. The data set selection mechanism 103 traverses the data structure 107 selected or provided by an application 105 to identify a set of data elements where a specified criteria is met. The data structure can be searched for changes to a data element or for data elements with specific values or value ranges. For example, in a data structure for a bill of materials, if one field of the data structure being traversed is a version field related to a part of a product and another parameter or field is time, then the data set selection mechanism may identify all changes over time to different versions of the part of the product (e.g., the dates that a different model of engine was introduced for an aircraft model).
The data set selection mechanism 103 creates a user interface for easily viewing the correlated data for the identified data elements. For example, a data set selection mechanism 103 can generate a slider bar with a defined set of positions corresponding to each of the state changes for the data structure over time. Any combination of two data elements of the data structure can be tied to a single slider bar whereas combinations of more than two can be mapped to multiple slider bars or similar user interface elements. The user interface generated by the data set selection mechanism 103 can be a stand-alone interface or integrated into an application 105.
Further, the data set selection mechanism 103 handles the input of a selection of a particular point. For example, the slider bar element can be use to select any particular point along the slider bar. In response to a selection, the data set selection mechanism retrieves and presents the correlated data graphically or as a data file or data stream to the associated application 105. This output can also be utilized by analytical tools 113 in conjunction with the application 105 or separately from the applications 105. Analytical tools 113 can be any type of program, code, plug-in or similar functions that process the output data for an application 105. The analytical tools 113 can perform any type of data analysis on an entire output or any subset of the data structure 107 presented by the data set selection mechanism 103.
In the distributed implementation, the applications 135 that are utilizing or calling the data set selection mechanism 103 can be remote from the computer system 101. These applications 135 can be on a computer system 131 communicating with the data set selection mechanism 103 over a network 111. Similarly, the analytical tools 133 and data structures 137 with which the data set selection mechanism 103 operates or communicates with can similarly be located on a remote computer system 131. Any number of computer systems can be networked together to provide these distributed services. Any combination of local and remote or distributed components can interface and operate with the data set selection mechanism 103.
Each of the data element changes or matches is mapped or charted onto a user interface element (Block 205). The user interface element may be slider bar or similar user interface element. Each of the changing or matching data elements can be displayed or indicated on the user interface. For example, each of the valid positions for placing the slider on the slider bar may be illustrated as a notch or line on the slider bar. Each of these valid positions corresponds to a changing or matching data element.
The user can then interact with the slider bar or similar user interface element to select a particular validity point or corresponding data set (Block 207). Once the user has selected or confirmed a particular validity point in the user interface mechanism, the data set selection mechanism traverses the data structure again to retrieve all of the data elements that are correlated to the data element that was selected (Block 209). For example, if the data structure is a bill of materials for the design level of an aircraft, then the data slider can be a mapping of the state changes or part changes for the aircraft over time. Each slider position or validity point indicates a date where a change occurred. Selecting the validity point or any point after it, but before the next validity point can be configured to pull all of the data element values that are associated with that date. In this case, all the parts of the aircraft that were in use on the selected date are retrieved. The resulting data is then displayed to the user or passed on to the calling application.
In another embodiment, the gathered data is passed onto an analytical tool that further analyzes the data. For example, the analytical tool can be a filter, visualization tool (e.g., a charting tool), trend analyzer or similar analytical tool. For example, an analytical tool can filter the parts output by the data set selection mechanism to remove all parts that are original parts before being output to the user or calling application (Block 211). The analytical tool can be integrated into the application, can be a stand-alone tool or can be a library function or similar program.
The user can select a specific point, for example, point 313 to obtain a data set of all of the versions that were in use on that date. The data set selection mechanism then extrapolates that data as a separate data structure or data slice 315, which is output to an application or displayed for a user. This is one example application of the data set selection mechanism. The use of the data set selection mechanism with a data structure based on time and part versions is provided by way of example. However, other data elements can be processed in the same manner. For example, a data structure containing information about the size and color of a product could be plotted by the data set selection mechanism by identifying a particular color (e.g., blue) and finding each of the sizes of the product that are available in blue. The slider would then have validity points that identify each size where a color of blue exists. Selection of the validity point would result in retrieval of other data related to the product having the blue color and at the selected size. One skilled in the art would understand that the principles, structures and features described in regard to these example applications can be applied to any combination of criteria and any number of criteria and for any data structure.
In one embodiment, the data set selection mechanism can be implemented as a set of hardware devices. In another embodiment, the system components are implemented in software (for example microcode, assembly language or higher level languages). These software implementations can be stored on a computer-readable medium. A “computer-readable” medium can include any medium that can store information. Examples of the computer-readable medium include a read only memory (ROM), a floppy diskette, a CD Rom, a DVD, a flash memory, a hard drive, an optical disc or similar medium.
In the foregoing specification, the invention has been described with references to specific embodiments. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope that is set forth in the appended claims. The specification and drawings are accordingly to be regarded in illustrative rather than a restrictive sense.