I. Introduction of Elements
[0060] FIG. 1 is an environmental diagram of a data analysis system and method (collectively the “system”) 100 . The system 100 provides a highly configurable and yet highly automated mechanism to analyze data.
[0061] A. Physical Data Source
[0062] A physical data source 102 can be potentially any object, measurement, or phenomenon in the physical world outside the system 100 . The physical data source 102 can be the transmission system of a truck, a Petri dish filled with bacteria, unemployment numbers in the state of Michigan, a combustion engine, resistance in a wind tunnel, the radioactivity of a substance, the luminosity of a light source, earth quake frequency and/or severity, or any other characteristic that can be measured or represented in a quantitative manner. The system 100 does not require a physical data source 102 in order to function. Data can be imported to the system 100 from an extended chain of sources. Data can also be created by the system 100 itself. In some embodiments, the analysis of the system 100 is performed on simulated data, and such data has no physical data source 102 . In some embodiments, data may be associated with a data type (a type of characteristic described by the numerical value) such as velocity, force, luminosity, revenue, or other attribute, even though the data was not captured from a physical data source 102 . Pure numerical data without any data type attributes can also be processed by the system 100 .
[0063] B. Sensor
[0064] A sensor 104 is potentially any device capable of capturing measurable characteristics from the physical data source 102 . Sensors 104 can be cameras, motion detectors, radar, infrared beams, Geiger counters, and any other device capable of being used to generate data relating to the physical data source 102 . Just as the system 100 does not require the existence of a physical data source 102 , the existence of the sensor 104 is similarly optional. The system 100 can incorporate many different sensors 104 and many different combinations of sensors 104 .
[0065] C. Channels and Data Types
[0066] A sensor 104 can capture data relating to the physical data source 102 through one or more channels 106 . Channels 106 are any potentially any type of characteristic that is captured from the physical data source 102 through the sensor 104 . Force, speed, position, torque, acceleration, kinetic energy, luminosity, heat, friction, blood pressure, lifespan, gestation period, revenues, IQ, and any other type of measurement can be a channel 106 incorporated into the system 100 . Some channels 106 are directly measured by the sensor 104 (“direct channels” 106 ), while other channels 106 are derived from other channels 106 (“derived channels” 106 ). Kinetic energy is an example of a derived channel 106 , because kinetic energy is calculated from the values of mass and velocity.
[0067] The system 100 can accommodate a wide variety of different channels 106 . Embodiments of the system 100 that do not involve sensors 104 or physical data sources 102 will not involve channels. Other embodiments could utilize a far greater number of channels 106 . In an embodiment of the system 100 used for transmission systems, the channels of force, speed, position, and torque are the preferred channels 106 .
[0068] Channels 106 are not a required element for the functioning of the system 100 . In a one channel 106 embodiment, it may not matter to the system 100 what type of data the channel 106 represents. In a pure statistical embodiment, there is no channel 106 and the numbers are processed as numbers without any association or relationship to a type of measurement. However, channels 106 can be helpful in an analysis because channels 106 can have relationships with each other. For example, position, velocity, and acceleration are related measures.
[0069] A single sensor 104 can capture sensor data across multiple different channels 106 in a substantially simultaneous manner. Thus, the different channels 106 may have relationships with each other. For example, a force channel and a toque channel may relate to the same physical data source 102 over the same increments in time.
[0070] Channels 106 correspond to data types. Embodiments of the system 100 that do not involve physical data sources 102 or sensors 106 can process data associated with various data types instead of channels 106 . Force, speed, position, torque, acceleration, kinetic energy, luminosity, heat, friction, blood pressure, lifespan, gestation period, revenues, IQ, and any other type of measurement can be a data type associate with a numerical value that is processed by the system 100 . In some embodiments of the system 100 , data need not be associated with a channel 106 or data type.
[0071] D. Data Collection Component
[0072] A data collection component 107 is typically a grouping of the sensor 104 capturing data relating to the physical data source 102 through one or more channels 106 . In some embodiments, the data collection component 107 is a simulation component that generates data from a model of a physical data source 102 , but not an actually existing physical data source 102 . Some embodiments of the system 100 do not have a data collection component 107 .
[0073] E. Data Storage Component
[0074] A data storage component 108 is the aggregation of all data storage mechanisms that can provide data to the system 100 . The data storage component 108 can be organized in many different ways. Databases, flat files, object-oriented programming objects, arrays, other types of data structures, and potentially any mechanism or method for storing data can be the data storage component 108 or part of the data storage component 108 . The data storage component 108 can reside on CD-ROMs, floppy disks, hard drives, web servers, proxy servers, or potentially any other type of information technology mechanism.
[0075] There are typically two types of data stored by the system 100 . One type is template data. Template data can also be referred to as pattern data or baseline data. The other type of data is analysis data. Analysis data can also be referred to as sample data, test data, or simply “data.” In many embodiments, the distinction between analysis data and template data is a purely contextual or situational distinction. Template data can be analysis data from a previous analysis. Once analysis data has been analyzed, it can serve as template data for future analysis. Thus, there need not be a physical distinction between analysis data and template data, or between an analysis data storage 109 component and a template data storage 114 component. Any data that is to be searched in a particular context is data that resides in the analysis data storage 109 component.
[0076] If the data collection component 107 is part of the system 100 , it is desirable that the data storage component 108 have an effective way to receive the data of the data collection component 107 . A wide variety of different configurations are possible.
[0077] F. Analysis Data Storage
[0078] Analysis data is the data stored in an analysis data storage 109 component. Physically, the analysis data storage 109 component can vary as widely as the data storage component 18 . Analysis data is the data being analyzed by the system 100 . Analysis data can also be referred to as test data, actual data, physical data, sample data, or simply “data.” The system 100 analyzes analysis data using template data, described below.
[0079] G. Analysis Data Files
[0080] The analysis data storage 109 is made up of one or more files 110 . Files 110 can also be referred to as analysis data files, actual data files, test data files, physical data files, or sample data files. In preferred embodiments, files 110 may be incorporated into a hierarchy of folders and directories. In preferred embodiments, files 110 are in pre-defined and user-desired formats set by the administrator of the system 100 . The uniform formatting of files 110 enhances the opportunity to facilitate the automated processing of the system 100 .
[0081] H. Analysis Data Points
[0082] Each file 110 can be made up of one or more data points 112 . Data points 112 can also be referred to as analysis data points, actual data points, test data points, physical data points, or sample data points. Data points 112 have a numerical value associated with each data point. In a preferred embodiment, data points 112 are also affiliated with at least one channel 106 or data type. A single data file 110 can have data points 112 associated with multiple different channels 106 or multiple different data types.
[0083] I. Template Data Storage
[0084] A template data storage 114 component can have as many different physical, logical, and functional variations as the analysis data storage 109 component or the aggregate data storage component 109 . The template data storage 114 component can also be referred to as a pattern data storage 114 component or an event data storage 114 component. In some embodiments, template data storage 114 is a subset of analysis data storage 109 .
[0085] J. Template Data File
[0086] The template data storage 114 is made up of one or more template files 116 . Template data files 116 can also be referred to as template files, template files, event files, even data files, pattern files, and pattern data files. In preferred embodiments, template files 116 are incorporated into a hierarchy of folders and directories. In a preferred embodiment, template files 116 are created and stored in a pre-defined and user-desired format set by the administrator of the system 100 . Adherence to standardized formatting facilitates the opportunity for system 100 automation.
[0087] The distinction between an analysis data file 110 and a template data 116 is purely contextual in many embodiments. Template data files 116 can be analysis data from a previous analysis. Once analysis data has been analyzed, it can serve as template data for future analysis. Thus, there need not be a physical distinction between analysis data files 110 and template data files 116 . In a preferred embodiment, all data in the data storage component 108 is equally accessible and stored in a non-segregated manner. In some contexts, template data files 120 are simply a subset of data files 110 .
[0088] K. Template Data Points
[0089] Each template file 116 can be made up of one or more template data points 120 . Template data points 120 can also be referred to as pattern data points 120 or event data points 120 . Template data points 120 have a numerical value associated with each data point. In a preferred embodiment, data points 120 are also affiliated with at least one channel 106 or data type. A single template data file 120 can have template data points 120 associated with multiple different channels 106 or multiple data types.
[0090] The distinction between analysis data point 112 and a template data points 120 is in many embodiments, a purely contextual or situational distinction. Template data points 120 can be analysis data points 112 from a previous analysis. Once analysis data has been analyzed, it can serve as template data for future analysis. Thus, there need not be a physical distinction between analysis data points 112 and template data points 120 . In a preferred embodiment, all data in the data storage component 108 is equally accessible and stored in a non-segregated manner. In some contexts, template data points 120 are simply a subset of data points 112 and can be referred to as data points 112 .
[0091] Template data points 120 and analysis data points 112 can be and represent time domain data points. Time domain data points can be used to analyze data over time. This can be useful in many different embodiments of the system 100 , including vehicle transmission embodiments where the time domain data relates to a shift in the gears of the transmission of the vehicle.
[0092] L. Events
[0093] An event 118 is a pattern of template data points 120 . Thus, events 118 can also be referred to as patterns 118 . Patterns 118 can have as few as one template data point 112 , or as many template data points 120 as desired. The number of template data points 120 in a pattern 118 can have repercussions with respect to fit sensitivity. Thus, it can be desirable to use different sized patterns 118 in different contexts. Patterns 118 are preferably defined by a user 122 (e.g. patterns 118 are preferably user-defined). A pattern size adjustment heuristic described in greater detail below can be used to adjust for differences in pattern size.
[0094] The system 100 can perform a wide variety of different search and correlation heuristics. In a preferred embodiment, the system 100 calculates a correlation or fit between one or more patterns 118 and the analysis data points 112 . Patterns 118 can be created from past analysis data points 112 , patterns 118 can be derived from data captured from physical data sources 102 , or patterns 118 can be made up by the user 122 without any relationship to a physical data source 102 . Patterns 118 can include template data points 120 relating to multiple channels 106 . A single template file 116 can have multiple patterns 118 .
[0095] M. Computer System
[0096] The data storage component 108 interfaces with a computer system 128 . The computer system 128 can be a wide variety of different information technology devices and/or networks. Desktop computers, laptop computers, work stations, local area networks (LANs), wide area networks (WAN), servers, web pages, main frame computers, mini computers, and other devices can serve as computer systems 128 for the system 128 . In some embodiments of the system 100 , the computer system 128 and an interface device 124 are the same device. The computer system 128 houses much if not all of the programming logic needed to support the functionality of the system. The computer system 128 may directly house the data storage component 108 , or may merely interface with the data storage component 108 . The computer system 128 can include a wide variety of ancillary, supplemental, or related information technology devices.
[0097] N. Interface Device
[0098] An interface device 124 is any device capable of communicating with the computer system 128 . Personal digital assistants (PDAs), cell phones, satellite pagers, standard telephones with a computer system 129 employing voice recognition technologies, desktop computers, laptop computers, work stations, local area networks (LANs), wide area networks (WAN), servers, web pages, main frame computers, mini computers, and other devices can serve as interface devices 124 for the system 100 . In some embodiments, the computer system 129 and the interface device 124 are the same device.
[0099] O. User
[0100] A user 122 is typically a human being interacting with the system 100 . In some embodiments, the user 122 can be an expert system, a robot, a neural network, or a computer employing artificial intelligence (collectively “intelligence technologies”). Users 122 interact with the system 100 by interacting with the computer system 128 . Users 128 interact with the computer system 128 by interacting with the interface device 124 . The interactions between the user 122 and the interface device 124 take the form of interface characteristics 126 . In preferred embodiments, a skill level is associated with each user 122 . The system 100 preferably utilizes skill level information in enabling or disabling the functionality of the system 100 . Other embodiments may incorporate less sophisticated interfaces for users 122 .
[0101] P. Interface Characteristics
[0102] An interface characteristic 126 is any action by the user 122 using the interface device 124 or any output of the interface device 124 made available to the user 122 . Interface characteristics 126 can be either input characteristics or output characteristics.
[0103] Input characteristics are actions (or omissions) by the user 122 with respect to the interface device 124 . Typed text, a click of the mouse, a selection in a drop down list box, the pressing of a button, the selection of a menu item, the scanning in of a document, speech into a voice recognition technology, or the failure of a user 122 to provide any input are each examples of input characteristics.
[0104] Output characteristics are any actions of changes by the system 100 that are accessible or observable through the interface device 124 . Sounds; visual changes to the screen; printed reports; the recording of data on a CD, floppy drive, or other portable device; or any other form of output is one or more output characteristics.
[0105] The types of interface characteristics 126 that can be used by the system 100 are limited only by the types of characteristics 126 that can be processed by the interface device 124 .
[0106] Q. Search Tool
[0107] The computer system 128 uses a search tool 130 to find the desirable any desirable data points 112 (both analysis and template), data files 110 (both analysis and template), and events 118 . The system can incorporate a wide variety of different search tools 130 . The types of search tools 130 that can be used will depend on the types of files 110 and the architecture of the data storage component 108 . The search tool 130 performs an efficient search heuristic In some embodiments, the search tool 130 can be used to perform a marker sort heuristic used to sort a marker 134 used to mark the location of the pattern 118 within the analysis data storage 109 component. The search tool 130 can also be used to search as well as sort markers 134 .
[0108] The process of searching and the functionality of the search tool 130 is discussed in greater detail below. The search tool 128 can include the searching functionality found in file management systems. Files 110 can be searched on the basis of title, date of last update, author, a description, a subset of data within the file, or some form of meta data relating to the file 110 . The search tool 130 can also include the functionality of identifying events 118 in the file 110 . Thus, the search tool 130 can perform a variety of pattern searching heuristics, and can include a correlation tool 132 . In a preferred embodiment of the search tool 130 , only the N % of pattern fits are included in the search result. Although N can be any number from 0 through 100, a number such as 10 can be an effective way to focus on the key data.
[0109] R. Correlation Tool
[0110] The computer system 128 can use a correlation tool 132 to compare events 118 to the library of data points 112 making up the analysis data storage 109 component. The correlation tool 132 can perform a correlation-based pattern matching heuristic. Different variations or modifications of correlation heuristics can be incorporated into the system 100 .
[0111] The fit sensitivity of such correlations can be adjusted on the basis of the size of the pattern. A fit sensitivity adjustment heuristic can perform such adjustments automatically. The correlation tool 132 can generate various confidence values associated with the identification of a correlation between an event 118 and data points 112 within the analysis data storage 109 component. The correlation tool 132 can also perform a target value weighing heuristic and an overall confidence value heuristic. Confidence values for each pattern match can be combined into an overall confidence value. Moreover, the confidence values of the correlation tool 132 can be compared to user-defined or system-defined minimum confidence thresholds. Determinations with insufficient confidence can be modified by the system 100 , or flagged for approval by the user 122 . Particular matches and even entire files 110 can be ignored when there is insufficient confidence to merit subsequent analysis.
[0112] The process of correlating data points 112 with events 118 and other statistical processing are discussed in greater detail below.
[0113] S. Markers and Marker Locations
[0114] A marker 134 is an identifying label that the system 100 places within the location of a data file 110 that possess data points 112 that correlate with a particular pattern 118 . A single marker 134 can cover many data points 112 and those data points 112 can relate to more than one channel 106 of information. In a preferred embodiment, multiple markers 134 are used in tandem and the confidence values associated with marker placement are optimized in the aggregate, for all of the markers 134 . Otherwise, the system 100 could make undesirable tradeoffs with respect to the placement of particular markers 134 .
[0115] Markers 134 can be used to trigger certain types of automated analysis. Markers 134 can encapsulate information relating to the marker 134 , as well as data points 112 at the identified marker location. Thus, in a preferred embodiment, markers 134 “know” what type of markers 134 they are, and they “know” certain characteristics of the underlying pattern 118 , such as the number and types of channels 106 . A fit adjustment heuristic can be used to that large numbers of markers 134 do not reduce the sensitivity because one marker 134 has a bad fit.
[0116] The process of setting markers 134 , sorting markers 134 , and performing analysis on the basis of markers 134 is discussed in greater detail below.
[0117] T. Analysis
[0118] Once marker 134 are in their marker locations, various forms of analysis 136 can be created by the system 100 . Analysis 136 can be created through both manual and automated means. The different types of analysis that can be performed are discussed in greater detail below.
[0119] U. Notes
[0120] Some embodiments of the system 100 provide users 122 with the ability to document a note 138 directly into the system 100 such that the note 138 documents markers 134 , files 110 , or particular activities and/or configurations. Notes 138 are described in greater detail below.
[0121] V. Reports
[0122] The system 100 can be configured to create a wide variety of different reports 140 . Some reports 140 are standardized, while others customized, while still others are ad-hoc one time only reports. Reports 140 are discussed in greater detail below.
[0123] W. Pattern Array
[0124] In order to compare analysis data points 112 with template data points 120 , many embodiments of the system 100 will load the template data points 120 into a pattern array 142 (it can also be referred to as an event array) to facilitate processing. Pattern arrays 142 are discussed in greater detail below.
[0125] X. Data Array
[0126] In order to compare analysis data points 112 with template data points 120 , many embodiments of the system 100 will load the analysis data points 112 into an analysis array 144 (it can also be referred to as a data array, an actual data array, a physical data array, a test data array, a fit array, or a sample event array) to facilitate processing. Data arrays 144 are discussed in greater detail below.
[0127] Y. Confidence Value
[0128] A confidence value 146 can be associated with any correlation calculation, marker location, or even aggregate marker locations associate with a file 110 or folder. A minimum confidence threshold can be used to automatically eliminate markers and even entire files with aggregate confidence values 146 that are lower than the applicable minimum confidence threshold. In other embodiments, the comparison of threshold value to confidence value 146 can be used to trigger other activities, such as the seeking of user 122 approval, the ability of users 122 to manually move the markers 134 , or other processing options. The various minimum confidence thresholds can be user-defined, or set by the system 100 . The minimum confidence threshold can also be part of a marker configuration, as described below.
III. System-Level Processing
[0141] The system 100 is highly configurable, and can incorporate a wide variety of different process flows for automatically identifying events 118 in one or more data files 110 .
[0142] A. Process Flow 1
[0143] FIG. 3 is a flow chart illustrating one example of the process flow that can be implemented by the system 100 .
[0144] At 160 , a user 122 defines an event 118 using template data points 120 . Template data points 120 can be imported from a file or a network. Template data points 120 can be inputted by the user 122 through the interface device 124 . Template data points 120 can be analysis data points 112 from a prior analysis. Events 118 can include a wide variety of different data types and channels 106 . Events 118 can also be organized into sequences or configurations of events 118 that correspond to the marker sequences or configurations 152 discussed above.
[0145] At 162 , the user 122 accesses the analysis data storage 109 component to identify potential matches of one or more events 118 . Various tools and heuristics can be used by the system 100 to access files 110 . In some embodiments, after file is accessed, the relevant data points 112 are loaded onto a data array 144 and template data points 120 into a pattern array 142 . The data array 144 and pattern array 142 can be used to calculate a correlation value between the analysis data points 112 and template data points 120 . The analysis data points 112 selected by the user 122 can be associated to many different channels 106 and data types, or can be defined as pure numbers not associated with any type of data type.
[0146] At 164 , the one or more events 118 in the data file 110 are located. This step can be performed in a fully automated manner. In some embodiments involving minimum confidence values or other threshold values, certain contexts can be flagged for the purpose of manual intervention by the user 122 .
[0147] Markers 134 can be placed at the appropriate locations within the file 110 or files 110 containing the data points 110 . Numerous heuristics discussed above and below can be incorporated into the step at 164 . A weighting heuristic can incorporate particular adjustment weights to the pattern matching process. Events 118 in the time domain can be scaled automatically and without human intervention, to match the time scale of the analysis data points 112 , or vice versa. Various marker sort heuristics can be used to evaluate the fit of the markers 134 with the analysis data 112 , on a marker by marker basis as well as an overall aggregate basis. Confidence values 146 can also be calculated on a marker-by-marker or on an aggregate basis. A fit sensitivity heuristic can be used to adjust the fit sensitivity for the number of data points 112 associated with the event 118 . Various analysis heuristics can be automatically invoked at particular marker 134 locations. Such analysis heuristics can differentiate markers 134 on the basis of the characteristics of the marker configuration 152 . Other examples of relevant heuristics are described both above and below.
[0148] It may be desirable for a user to exclude certain data points 112 or certain template data points 120 for the step at 164 . For such embodiments, an excluded array can loaded with the points to be excluded. Treating the excluded array as a matrix in linear algebra, linear algebra calculations could be used to remove the excluded array from the data array 144 and/or pattern array 142 .
[0149] The processing at 160 , 162 , and 164 can take place in several different modes of operation. In a preferred embodiment, the processing mode can be either manual, automatic, or batch. These modes are described in greater detail below. Different processing rules can be associated with different operational modes. System 100 processing can also include the setting of a user skill level. In some embodiments, the user skill level can be associated with their login ID. In other embodiments, skill level can be self-selected. In still other embodiments, the system 100 can base skill level on the user's experience with the system 100 . Alternative embodiments may involve the objective evaluation of the user's skill by the system 100 .
[0150] B. Process Flow 2
[0151] FIG. 4 is a flowchart illustrating one example of a process flow that includes the placement of markers 134 at marker locations. In a preferred embodiment, multiple markers 134 are placed automatically by the system 100 without human intervention after the event 118 is selected and a determination to place markers is made.
[0152] At 166 , analysis data points 110 are accessed. In some embodiments, this step is performed after the step of event definition at 108 . The search tool 130 can be used to select the directories, folders, and files 110 to be accessed within the analysis data storage 109 component. In some embodiments, the analysis data points 112 are loaded onto the data array 144 .
[0153] At 168 , one or more events 118 are either selected and/or defined on the system 100 . In some embodiments, the marker configuration 152 is also received by the interface device 124 at 166 . The type of pattern matching heuristic can preferably be selected at 168 , if the user 122 is free to choose one of multiple approaches. Pattern data points 120 can be loaded into the pattern array 142 for the purposes of comparing the data to the analysis data points 112 in the data array 144 . If desirable, the user 122 can be given the option of allowing the system 100 to adjust the subsequent pattern matching heuristic for the size of the pattern 118 . A fit sensitivity value for use in a fit sensitivity heuristic can be incorporated into the marker configuration 152 .
[0154] At 170 , the system 100 determines whether the data points 112 subject to the search, match the event 118 or multiple events 118 defined at 168 . A wide variety of pattern matching heuristics can be used at 170 . In a preferred embodiment, some type of correlation heuristic is used. With multiple event 118 embodiments, all events 118 are preferably at least tentatively identified at 170 . Each event identification can be associated with a confidence value 146 calculated by the system 100 . An overall confidence value 146 can be calculated for determining the reliability of the aggregate event 118 identifications. The various confidence values 146 can be compared to threshold values set by the users 122 or by the system 100 . The template data and analysis data being compare at 170 need not possess the same number or types of channels 106 , although identical channels 106 can be desirable in certain circumstances. Thus, the number of channels 106 in the analysis data points 112 may be only two, while nine channels 106 existing within the definition of the event 118 . In some embodiments of the system 100 , the user 122 can set an “always rematch” flag to yes. In such embodiments, if the “always rematch” flag is set to yes, the system 100 can automatically trigger the pattern recognition to invoke the process at step 170 , and continue with the processing in FIG. 4 .
[0155] At 172 , the system 100 optimizes the placement of markers 134 at the tentatively identified marker locations. An optimization heuristic can be used to optimize the overall fit of the various markers 134 . Different weights can be attributed to different factors involved in the optimization process.
[0156] At 174 , the markers 134 are actually placed at the final optimized marker locations. The system 100 can generate various analysis 136 and reports 140 using the data encapsulated at the marker locations. The analysis 136 can manual processes defined by the user 122 . Analysis 136 can also be generated automatically in accordance with pre-defined processing rules incorporated into the system 100 . Such processing can take into consideration the specific characteristics of the marker configuration 152 and the data points 112 encapsulated in the identified event 118 .
IV. Subsystem-Level View
[0157] FIG. 5 is a block diagram illustrating an example of a subsystem-level view of the system 100 . As shown in the diagram, each subsystem can directly interact with any other subsystem.
[0158] A. Interface Subsystem
[0159] An interface subsystem 200 is responsible for interactions between the user 122 and the system 100 . A wide variety of interface devices 124 can be used to perform the functions of the interface subsystem 200 . In preferred embodiments, the interface subsystem 200 includes a user-friendly graphical user interface that can be exercised through a platform-independent browser over the Internet. The interface subsystem 200 can also be referred to as an input subsystem, because the interface subsystem 200 is responsible for capturing all input characteristics.
[0160] The interface subsystem 200 can capture a wide variety of input characteristics, as identified above. The interface subsystem 200 can be used to create and define events 118 by selecting already existing data points 112 (including template data points 120 ), or by simply entering in new data points and data characteristics. Data can be downloaded or imported from other sources, using the interface subsystem 200 . Any activity that is guided, controlled, influenced, accessible, or viewable by the user 122 occurs through the interface subsystem 200 . Events 118 can include multiple data points 120 which span multiple channels 106 and multiple data types across multiple files 110 .
[0161] In some embodiments, users 122 are classified as beginners, intermediate users, or advanced users. Such classifications can use the selection of the user 122 to determine skill level in some embodiments. In other embodiments, skill level can be associated with log-in information, while in other embodiments, skill level could be objectively determined through experience with the system 100 . In all embodiments, the skill level determination will be based on one or more input characteristics. The skill level indicator can be used as the basis for enabling and/or disabling certain functionality and menu options.
[0162] The interface subsystem 200 can invoke other subsystems such that those other subsystems function automatically and without human intervention.
[0163] B. Data Subsystem
[0164] A data subsystem 202 is the subsystem than includes the data storage component 108 and the data collection component 107 . Thus, the data subsystem 202 can include a potentially voluminous number of data files 110 , data points 112 , template files 116 , template data points 120 , and events 118 . Multiple data collection components 107 , with each data collection component 107 involving multiple sensors 104 , channels 106 , and physical data sources 102 , can be incorporated into the data subsystem 202 . The data subsystem 202 can also be referred to as a content subsystem, because the data subsystem 202 includes all of the data content of the system 100 .
[0165] In a preferred embodiment, all files 110 (including template files 116 ) are in some type of pre-defined format. Such pre-defined formats can be user-created. Events 118 within the data subsystem 202 can have as few as one template data point 120 and as many as hundreds or even thousands of template data points 120 depending the type of data and the power of the computer system 128 . Events 118 can relate to and be defined in accordance with many different channels 106 because the various template data points 120 associated with and making up the event 118 can be associated with different channels 106 .
[0166] Various markers 134 can be placed in various marker locations within the data subsystem 202 . However, an analysis subsystem 204 can control the determinations of marker locations and the calculations and processing based on those locations.
[0167] C. Analysis Subsystem
[0168] An analysis subsystem 204 is responsible for: performing any search heuristics; performing correlation heuristics; identifying matches between the event 118 and the analysis data; determining where markers 134 should be placed; and performing processing utilizing the markers 134 and marker locations.
[0169] The analysis subsystem 204 searches the data subsystem to search for matches, e.g. analysis data points 112 indicative of an event 118 . Markers 134 can be placed on such locations of analysis data points 112 , so that additional calculations and processing can be automatically invoked without human intervention.
[0170] Marker locations can be identified by performing a correlation-based matching heuristic, or other types of correlation heuristics. In a preferred embodiment, a confidence value 146 is associated with each marker 134 . In some embodiments, an aggregate confidence value can be associated with a file 110 or even a folder.
[0171] In order to compare data points 110 and evaluate or even find matches (e.g. matches are “events” 118 in the analysis data), the analysis subsystem 204 can load the pattern or event data points 120 into the pattern array 142 and load the analysis data points 112 into the analysis data array 144 . The analysis subsystem 204 can correlate data points 112 relating to multiple channels 106 in finding and evaluating matches.
[0172] Comparing and correlating the data can be easier when the data is stored in arrays. Only subsets of the analysis data and template data should be loaded into arrays at any one time. Typically, no more than a single analysis file 110 and a single template file 116 should be loaded into arrays. The correlation functionality of the analysis subsystem 204 can be performed by a correlation module discussed in greater detail below.
[0173] D. Pattern Subsystem
[0174] FIG. 6 illustrates an example of a subsystem view exemplifying a different example of a subsystem-level configuration. A pattern subsystem 203 can be incorporated into the system 100 . The pattern subsystem 203 is responsible for storing all template data points 120 , events 118 , template data files 116 , and the template data storage 114 component. As discussed above, events 118 can be defined from input characteristics. In some embodiments, the pattern subsystem 203 can be responsible for the configuring and invoking of the various pattern matching heuristics that can be incorporated into the system 100 . In other embodiments, a search subsystem 205 is responsible for performing pattern matching, and the pattern subsystem 203 is limited to the creation, modification, and analysis of the events 118 .
[0175] E. Search Subsystem
[0176] A search subsystem 205 can be used to perform any of the functions of the search tool 130 discussed above. The search subsystem 205 can be used to identify files 110 in the data storage component 109 that are desired for pattern matching. A search result can be based on a wide variety of search criteria, including a correlation with the template data points 120 in the event 118 . Pattern matching can also be performed by the search subsystem 205 . The search subsystem 205 can identify multiple locations in one or more data files 110 indicative of events 118 across multiple data channels 106 or data types.
V. Module-Level View
[0177] FIG. 7 is a block diagram illustrating an example of a module-level view of the system 100 . As is indicated in the diagram, any module can directly interact with any other module making up the system 100 . The system 100 need not possess each of these modules to function. In many embodiments, system functionality can be aggregated together in a lesser number of modules. For example, the functionality of the analysis module, patterns module, and correlations module could be combined into a single analysis module.
[0178] A. Data Collection Module
[0179] A data collection module 206 is part of the data subsystem 202 , and includes the data collection component 107 , if such a component exists for the particular system 100 . The data collection module 206 can include many different types of sensors 104 , with each sensor 104 capable of capturing a wide variety of different sensor data through a wide variety of different channels 106 . The data collection module 206 can be responsible for generating data points 112 and data files 110 from sensor data. Each data point 112 can be associated with at least one channel 106 .
[0180] In various vehicle transmission embodiments of the system 100 , the sensor data can be transmission shift data from multiple shifts captured in a simultaneous or substantially simultaneous manner. Sensor data originating from different transmission can also be included.
[0181] Data collection is described in greater detail above and below.
[0182] B. Pattern Module
[0183] A pattern module 208 can be responsible for creating, modifying, and storing events 118 (e.g. patterns of template data points 120 ). Input characteristics received through the interface subsystem 200 can be sent to the pattern module 208 in order to create, define, modify, or delete events 118 . The pattern module 208 can be used to populate the pattern array 142 with template data points 120 .
[0184] Pattern 118 processing is described in greater detail below.
[0185] C. Search Module
[0186] A search module 210 can include various tools for navigating the data storage component 108 , identifying particular files 110 , and for identifying patterns 118 in particular files 110 . The search module 210 can include both search tools 130 and correlation tools 132 .
[0187] 1. Search Tools
[0188] Search tools 130 in the search module 210 can be used to navigate through the data subsystem 202 using various search criteria and other methodologies. A single search result can include more than one file 110 , and even more than one folder. The scope of the search can be configured by the search module 210 . For example, the search could be limited to a particular folder or directory, or the search could include the entire data storage component 108 . The search tools 130 of the search m odule 210 can perform various file management functions within the data storage component 108 . Search tool 130 functionality is described both above and below.
[0189] 2. Correlation Tools
[0190] In some embodiments, various correlation tools 132 within the search module 210 can perform various correlation heuristics to identify events 118 in analysis data. In some embodiments, the search module 210 loads the data array 144 , and compare the data array 144 with the template data array 142 . In such embodiments, the search module 210 also generates the applicable confidence values 146 .
[0191] In a vehicle transmission embodiment, the search criteria or data types of the correlation tools 132 can include a shift time, an engagement bump, and a shift impulse, as well as other characteristics relating to transmission performance. Correlation tool 132 functionality is described both above and below.
[0192] D. Marker Module
[0193] A marker module 212 can be used to place, monitor, modify, sort, and move markers 134 . The marker module 212 can place a marker 134 at a marker location within the analysis data storage 109 component. In some embodiments, the calculation of the confidence value 146 is performed by the marker module 212 . The results of a marker sort heuristic can be used by the analysis subsystem 204 to perform the analysis calculations generated by that subsystem.
[0194] In a preferred embodiment, the marker module 212 includes a marker interface (part of the interface subsystem 200 ) which can be used by users 122 to accept or reject marker locations. Markers 134 can also be manually moved by users 122 . Different weight adjustments can be applied to different characteristics in evaluating the desirability of a particular marker 134 placement.
[0195] Marker 134 functionality is described in greater detail below.
[0196] E. Analysis Module
[0197] An analysis module 214 can be used to perform correlation calculations, generate confidence values 146 , and generate subsequent calculations and processing at marker locations. The primary responsibility of the analysis module 214 is to perform analysis calculations at marker locations. Those calculations are performed using the characteristics of the data points 112 at those marker locations.
[0198] A reporting tool within the analysis module 214 can be used to automatically generate certain types of reports based on the characteristics of the marker 134 , such as the channels 106 . In a preferred embodiment, the reports of the report tool are highly configurable and highly automated, allowing for manual intervention as desired by the user 122 .
[0199] The analysis module 214 can include a “track changes” tool for determining that all the data files 110 meet one or more selected criteria. The analysis module 214 can be configured to automatically load information from first data file 110 included in the search results. The software would then compare these items with the settings in each new data file. If a difference occurred, a warning message would be displayed. In Auto or Batch modes, the file would be rejected from the analysis. Other modules within the system 100 could be used to house the track changes utility tool.
[0200] Analysis 136 functionality is described in greater detail below.
[0201] F. Correlation Module
[0202] A correlation module 216 can be used to exclusively isolate the performance of correlation heuristics to a single module. The various correlation heuristics can be performed between pattern arrays 142 and data arrays