|Publication number||US6502084 B1|
|Application number||US 09/337,934|
|Publication date||31 Dec 2002|
|Filing date||22 Jun 1999|
|Priority date||22 Jun 1999|
|Publication number||09337934, 337934, US 6502084 B1, US 6502084B1, US-B1-6502084, US6502084 B1, US6502084B1|
|Inventors||Ira Boleyn, James S. Hoelle|
|Original Assignee||General Electric Company|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (14), Non-Patent Citations (3), Referenced by (6), Classifications (7), Legal Events (6)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The invention relates generally to a method of processing stored data, e.g., text type data, and, more particularly, to a method of knowledge extraction, transfer and use of such stored data.
When generating documents and drawings repeatedly that are directed to a common subject, such as for example an engineering drawing. Certain types of errors commonly reoccur. Checklists have been used to detect reoccurring errors in many applications, such as in engineering drawings. These checklists are workable when they are kept to a reasonable length, whereby only the most common reoccurring errors are detected by use of such a checklist. However, many types of errors do not occur often enough to be included in the checklist, whereby such errors are often missed.
Such errors include, but are not limited to, the result of an improper entry into the computer system, i.e., human error. It would be advantageous to utilize the processing power of the computer to analyze and provide correction for such errors, particularly in such electronically stored documents and drawings that are of the type that are repeatedly generated.
In an exemplary embodiment of the invention a method of knowledge extraction, transfer and use of stored data is provided. With electronic data files, e.g., documents and drawings, the items in the documents and on the drawings are associative and dependent. More specifically, there are groups of items that are always seen together, and these groups are dependent on the document or drawing type. Using known computer program techniques, such as are available with, e.g., “per15” programming language, it is possible to extract knowledge (rules) from groups of documents or drawings and apply the extracted rules to a new document or drawing without the need to reprogram. In an exemplary embodiment of the invention, a method (program) of checking a data file in a computer system comprises: providing a knowledge base (similar correct files) for a data file type, the data file (being checked) being of the data file type; applying the knowledge base to the data file; and; providing output data indicative of a result of the applying the knowledge base to the data file.
The program can learn what is correct, from groups of similar documents or drawings and apply that knowledge to new documents or drawings. The Program can also tailor or target, tests and outputs without a programmer. In addition to such rules extraction and use, the program can be made to be robust, portable, user friendly, versatile and may be used as a stand alone or embedded in another program.
FIG. 1 is a flowchart of a method for knowledge extraction, transfer and use of stored data in an exemplary embodiment of the invention; and
FIG. 2 is a text string (rule) that defines the values, dependencies and actions for a check in an exemplary embodiment of the invention.
Referring to FIG. 1, a flow diagram of a program for knowledge extraction, transfer and use of stored data is generally shown. The program is initiated at block 10 and then proceeds to block 12 where a user identifies, e.g., a document file to be checked. The document file identified contains all of the data to which a knowledge base will be applied. Although this exemplary embodiment describes the data file as a document file, it is within the scope of the present invention that such data file comprise a drawing file or any other such data file.
The knowledge base is applied to the file at block 14 to generate a list of concerns (errors), a checklist, and a list of items that checked correctly. There are eight files involved in this checking process. These are the file to be checked, two knowledge files (‘gtestlin’ which contains global rules and ‘ltestline’ which contains local rules), and five output files (‘error.txt’ which contains error data 16; check.txt′ which contains a data list 18 of the items that were checked and were ok t+c+, or t−c−, ‘checklist.txt’ which contains a data list 20 of the items that were errors or had warnings issued or there was a concern when the test was ok, an output file (which is the file being check) 22 and statistical data file 24). The output data may then be printed or otherwise displayed (block 25), such being well known in computer systems. The output data may also be used to optionally automatically correct the document file (block 30). Local knowledge is generated (block 26) by the user and may be altered by the user at any time. Global knowledge is generated (block 28) by the program. The global knowledge is not accessible to all users and may be changed only by the program and designated users. A query is made at block 32 to determine if the document file was error free. If document file was not error free then hold the document for a period of time, e.g., 6 months, then delete the file (block 34). If the document file was error free then include in organized data files at block 36, to be utilized in generating global knowledge (block 28). The program is terminated (or ends) a block 38.
A ‘test’ is a comparisons of lines in a target file (i.e., the file to be checked) to a test value ($filter). A test result is positive for t+d + or t−d− and negative for t+d− or t−d+, wherein “t” values represent what is in the file and “d” values represent what is desired. “t+” means that the value is present in the target file. “t−” means that the value is not present in the target file. “d+” means that the desired value should be present in the target file. “d−” means that the desired value should not be present in the target file.
The local knowledge (array @ltest local rules data) is added to the global knowledge (array @gltest global rules data). The total knowledge is copied to an array (@test target lines). The temporary storage is examined. Knowledge rules marked as deleted and blank lines are removed. A ‘rule’ is a text string that defines the values, dependencies and actions for a check (a piece of intelligence). The program of the present invention utilizes known computer program techniques, e.g., the “per15” programming language. An exemplary line (FIG. 2) includes variables, such as, $ttype, $invchild, $filter, $modfyr, $testpos, $testneg, $testinfo, $errmes, $chkmes, $checklmes, $checklsw, $testinfo, and $linest.
$ttype is a test type second dimension array $tests wherein:
‘text’ means test is text based, positive is presence of $filter value;
‘var’ means test is variable based, $filter contains array number for predefined value in @ extract;
‘count’ means test is based on a count of the number of lines containing the value in $filter; and
‘sub’ means execute an external program if the trigger conditions are met path and name of the routine are located in the $errormes variable.
$invchild is an invert child second dimension array @tests wherein:
‘i’ means invert the run status of dependent tests, the check positive and check negative values of dependent test are inverted, and run becomes err and err becomes run (an ‘action run’ (run) means to continue; err (error) means the situation is an error, and errors are t+d− and t−d+), when used, dependent tests are now independent of the trigger value in $filter; and
‘n’ means do not invert dependent tests, when used this letter causes all dependent tests to be removed.
$filter is a filter value second dimension array $tests wherein it is numeric for var test type and alphanumeric for all others. All “perl” programmning regular expression and values are valid in this test type, certain characters are prohibited, e.g., # and %.
$modfyer is a modifier second dimension array $tests wherein:
‘i’ means ignore case, this modifier is used to ignore case on text comparisons; and
‘n’ means do not ignore case, an exact match is required
$testpos is a test positive second dimension array $tests wherein:
‘run’ means the desired outcome is positive; and
‘err’ means the desired outcome is negative.
$testneg is a test negative second dimension array $tests wherein:
‘run’ means if the test is negative print no error message and continue; and
‘err’ means if the test outcome is negative then print an error message.
$testinfo is a dependency second dimension array $tests wherein ‘number’ means the number of tests that this test is dependent on, a “0” means no tests precede this one, etc.
$testinfo is a sequence information second dimension array $tests wherein a number 000-999 used internally for sequencing. $errmes is an error message seed, second dimension array $tests wherein ‘null’ means do not print an error message, this applies even if the test returns a negative, all other result in the error message being printed if the test returns any negative t+d− or t−d+. A ‘seed’ is a text value that becomes part of an output message, the seed text is preceded by the line number of the rules file and the drawing number or the target file ID (identification). The text in this variable has text added to it by the program and is printed in the error file. This text also becomes the seed for the tally file line when an error is detected.
$chkmes is a check message seed second dimension array $tests wherein ‘null’ means do not print a check message, all other values prints a check message if the test returns a positive t+d+ or t−d−. The text in this variable has text added to it by the program and is printed in the check file.
Schecklmes is a checklist message seed second dimension array $tests wherein the text in this variable becomes part of the checklist message. The text becomes part of the checklist whenever the $errmes value is not null and an error or warn is indicated, (t+d−, t−d+). The line value precedes the message and the check identifiers are appended to the message seed.
Checklist is a message switch second dimension array $tests wherein the value in this variable determines whether a checklist message is printed when the test is positive and desired value is positive or the test is negative and the desired value is negative.
$linest is a line status wherein:
‘d’ means deleted line;
‘m’ means modified line; and
‘n’ means null, no modifications.
This value is set when a line is deleted or modified. The value is used by a teacher to alter new lines, when a change is made to the experiences database. The ‘teacher’ is a component of the program that extracts rules and values from the experience data base.
If a line (or as referred to herein a ‘rule’) applies, then that rule, and all dependent rules are applied. If the rule does not apply, then the rule, and all dependent rules are removed. Rules that don't apply and dependent rules are quickly removed. The rules are applied one by one until all of the rules have been applied. If a rule cannot be applied or is confusing, then the program removes that rule, prints it in the error file with a special message and continues.
The program extracts rules based on a directory structure. When the program is installed a directory structure is constructed. This structure is organized from root to file. The root directory contains one each of all of the files in the sub directories. The sub directories contain examples of files with a similar attribute. For example, the root directory might contain “automobiles”. The next level of sub directories might contain groups organized by the country of origin of such automobiles. The next group in a sub directory would contain groups of automobiles made in that country by each manufacturer. The file that contains information on a particular manufacture would be present in all three levels. The rules extractor goes through the directories starting with automobiles. The program looks for commonality, and when it finds attributes that are common, it sets a rule and makes a record. At each successive level the program looks for more common points. When it finds them it subtracts the common items for the previous directories and sets the rules base to the remainder. The rules base is stored in a special file in that directory. The program uses the most often occurring common trait as the trigger for that dependency. A ‘trigger’ is a single test value that has several dependencies. A ‘dependency’ describes tests that are contingent on the results of a previous test.
The learning feature also incorporates the ability to recognize new groups of dependent items. The program takes the new example and compares it against the knowledge base. If the new example cannot be accounted for with the known rules and dependencies, then the program looks for a new dependency. If attributes can be found. Then the dependency is catalogued and stored, if not operator intervention is requested.
In addition to the above. The program can be fed a known incorrect document and it will determine what is not there, or what is there, that is not supposed to be there, and construct rules accordingly.
When the knowledge is extracted from the files the program looks at the existing knowledge. Rules that were added deleted or modified are carried over or deleted as necessary, the old rules are archived and then replaced by the new knowledge set.
The present invention can be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. The present invention can also be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
While the invention has been described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4783752||6 Mar 1986||8 Nov 1988||Teknowledge, Inc.||Knowledge based processor for application programs using conventional data processing capabilities|
|US4891766||15 Jun 1989||2 Jan 1990||International Business Machines Corporation||Editor for expert system|
|US4939668||24 Aug 1987||3 Jul 1990||International Business Machines Corp.||System for designing intercommunications networks|
|US5402524||22 Dec 1992||28 Mar 1995||Mitsubishi Denki Kabushiki Kaisha||Case-based knowledge source for artificial intelligence software shell|
|US5412756||22 Dec 1992||2 May 1995||Mitsubishi Denki Kabushiki Kaisha||Artificial intelligence software shell for plant operation simulation|
|US5418888||4 Jun 1992||23 May 1995||Alden; John L.||System for revelance criteria management of actions and values in a rete network|
|US5450545||23 Jul 1992||12 Sep 1995||International Business Machines Corporation||Generation of rules-based computer programs using data entry screens|
|US5488714 *||25 Aug 1993||30 Jan 1996||Unisys Corporation||Computer program analyzer for adapting computer programs to different architectures|
|US5537590||5 Aug 1993||16 Jul 1996||Amado; Armando||Apparatus for applying analysis rules to data sets in a relational database to generate a database of diagnostic records linked to the data sets|
|US5574828||28 Apr 1994||12 Nov 1996||Tmrc||Expert system for generating guideline-based information tools|
|US5701400||8 Mar 1995||23 Dec 1997||Amado; Carlos Armando||Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data|
|US5793933 *||17 Jul 1997||11 Aug 1998||Kabushiki Kaisha Toshiba||Computer-implemented system and method for constructing a system|
|US5899985 *||5 Sep 1995||4 May 1999||Kabushiki Kaisha Toshiba||Inference method and inference system|
|US5940817||14 Feb 1992||17 Aug 1999||Hitachi, Ltd.||Problem solving method and system|
|1||Learning Information Extraction Rules for Semi-structured and Free Text, Stephen Soderland; (1999) Machine Learning, pps. 1-44.|
|2||Learning to Extract Symbolic Knowledge from the World Wide3 Wed, Mark Craven; Dayne Freitag; Andrew McCallum; Tom Mitchell; Kamal Nigam; Choon Yang Quek; (1998) Proceeding of AAAI-98, Conf. of American Artificial Intelligence, pps. 1-17.|
|3||Relational Learning of Pattern-Match Rules for Information Extraction, Mary Elaine Califf and Raymond J. Mooney (1997) AAAI Spring Symposium on Applying Machine Learning to Discourse Preocessing, pps. 1-6.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US6993518 *||24 May 2001||31 Jan 2006||International Business Machines Corporation||Method and system for systematically diagnosing data problems in a database|
|US7752608||6 Jul 2010||The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration||Systems, methods and apparatus for verification of knowledge-based systems|
|US20030033289 *||24 May 2001||13 Feb 2003||Brinker Brian L.||Method and system for systematically diagnosing data problems in a database|
|US20100161640 *||22 Dec 2008||24 Jun 2010||Nbc Universal, Inc., A New Corporation||System and method for computerized searching with a community perspective|
|US20100161641 *||22 Dec 2008||24 Jun 2010||NBC Universal, Inc., a New York Corporation||System and method for computerized searching with a community perspective|
|US20100299342 *||22 May 2009||25 Nov 2010||Nbc Universal, Inc.||System and method for modification in computerized searching|
|U.S. Classification||706/45, 706/47, 706/46, 706/48|
|4 Aug 1999||AS||Assignment|
Owner name: GENERAL ELECTRIC COMPANY, NEW YORK
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BOLEYN, IRA;HOELLE, JAMES S.;REEL/FRAME:010143/0200;SIGNING DATES FROM 19990727 TO 19990728
|27 Mar 2006||FPAY||Fee payment|
Year of fee payment: 4
|30 Jun 2010||FPAY||Fee payment|
Year of fee payment: 8
|8 Aug 2014||REMI||Maintenance fee reminder mailed|
|31 Dec 2014||LAPS||Lapse for failure to pay maintenance fees|
|17 Feb 2015||FP||Expired due to failure to pay maintenance fee|
Effective date: 20141231