Partial List Of Software Patents originally by Michael Ernst You can ftp this file from mintaka.lcs.mit.edu:/mitlpf/ai/patent-list. That site is mirrored by jupiter.ee.pitt.edu:pub/patent/patent-list and possibly prep.ai.mit.edu:/pub/lpf/patent-list. The original is rice-chex.ai.mit.edu:/home/fsf/rms/lpf/patent-list. Michael Ernst maintained it until April 1992. It was last updated on Nov 13, 1992. (I often forget to update this line.) This is a list of software patents for which the disclosure statements are in this file folder (i.e., in NE43-427), plus information about all other software patents that I know of. It is a partial list. If you know of patents that I haven't included, or if you have more information about any of these, I would appreciate hearing about it. Except where otherwise noted, the patents are US patents. Its format is number [` = hard copy in the LPF files on 6/17/93 -TimMcN] title filing date granting date assignee or owner inventor notes `UK2,196,764A Hierarchical File System filed 6/29/87 published 5/5/88 inventors B.M. Bruffey, G.S. Sidhu, P.W. Dirks, C.R. McFall assignee Apple Computer `2,552,629 Error detecting and Correcting System filed 1/11/50 granted 5/15/51 inventors R.W. Hamming, B.D.Holbrook `3,775,752 Job Time Recording and Calculating Method and Apparatus filed 6/12/70 granted 11/27/73 inventor J.L. Lorenzo `3,879,722 Interactive input-output computer terminal with automatic relabeling of keyboard On-screen image is projected onto keyboard, which can provide useful information about what keys do what. `4,054,951 Data Expansion Apparatus filed 6/30/76 granted 10/18/77 inventors R.D. JAckson, W.K. Rackl assignee IBM `4,135,240 Protection of data file contents filed 7/9/73 granted 7/16/79 inventor Dennis Ritchie The set uid bit patent. Doug McIlroy says: "AT&T distributed Unix with the understanding that a license fee would be collected if and when the setuid patent issued. When the event finally occurred, the logistical problems of retroactively collecting small fees from hundreds of licensees did not seem worth the effort, so the patent was placed in the public domain." `4,158,837 Information display apparatus filed 5/17/77 granted 6/19/79 inventor James T. Zahorsky assignee IBM abstract: "A display system is shown which has a source of coded information in display mapped format and includes plural devices for decoding and utilizing the information in accordance with its position in that mapped format. In the illustrated embodiment, the source includes a refresh buffer and the utilization devices include an attribute decoder and a character generator. A character row counter controls gating which causes the apparatus to treat bytes of data, having attribute format, truly as attributes or as addresses of members of an extra, graphical character set of the character generator." `4,197,590 Method for dynamically viewing image elements stored in a random access memory array filed 1/19/78 granted 4/8/80 inventors Josef S. Sukonick; Gred J. Tilden assignee NuGraphics, Inc. Includes claims of "XOR feature permits part of the drawing to be moved or 'dragged' into place without erasing other parts of the drawing." Twice upheld in court. [Cadtrak now owns this?] `4,398,249 Process and apparatus for converting a source program into an object program filed Aug 12, 1970 granted Aug 9, 1983 inventors Rene' K. Pardo and Remy Landau This is the natural order spreadsheet recalculation patent recently acquired by Refac, a litigation company. Draws on ideas like forward reasoning. `4,410,958 Displaying a proportionally outlined miniature page filed 12/24/80 granted 10/18/83 inventors Kent R. Demke, Joanne L. Mumola assignee IBM Abstract: "There is disclosed a technique for displaying on a relatively small CRT display, using less than the entire screen, a representation of a full page of text. The full page is represented using character indicators rather than recognizable characters. The full page representation is surrounded by an outline generated using the same character indicators as the formatted text representation rather than known graphic symbols. The outline is proportional to the ultimate hardcopy indicated by the user, and character indicators can be displayed right up to the page outlines." See also 4,455,554. [Have only first page of this patent.] `4,449,182 Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems filed 10/5/81 granted 5/15/84 inventors Barry L. Rubinson, Edward A. Gardner, William A. Grace, Richard F. Lary, and Dale R. Keck assignee Digital Equipment Corporation This patent apparently covers ring buffers. `4,455,554 Proportionality in miniature displays filed 12/30/81 granted 6/19/84 inventor Kent R. Demke assignee IBM Display a full page of text on a CRT by representing every 8x16 character by a character indicator (a 2x4 screen pixel blob); proportionality is maintained (that is, the screen looks like a miniature of the actual printed page) by inserting dummy characters in words with especially wide letters (so "fox", which has no narrow letters might be represented by four character indicators, but "quick" would be represented by five character indicators). See also 4,410,958. `4,456,969 System for automatically hyphenating and verifying the spelling of words in a Multilingual document filed 10/9/81 granted 6/26/84 inventors Aubrey M. Herzik; Sharon S. Hobbs; James T. Repass assignee IBM Abstract: Disclosed is an improved system for verifying the spelling and providing hyphenation points for text words from a plurality of interspersed languages. The control system includes control codes which are inserted in the text to define the language of the text following the control code.The system accepts the control codes and responds by comparing the text following the control code against a storage dictionary of correctly spelled words and hyphenation points for the language associated with the control code. The system provides as an output an indicator of whether the word is correctly spelled or where the proper hyphenation points for the word appears. The system further includes control codes which when detected will cause blocks of data which should not be compared to the storage dictionary to be skipped. `4,458,311 Text processor having an interactive display terminal which alternately functions as a data processing terminal filed 10/9/81 granted 7/3/83 inventors Silous F. Clements, Patrick D. Motola, Dennis M. Ross, Richard O. Simpson, Shirley F. Swift, Michael N. Day assignee IBM The user is permitted to modify the way that a database front end displays information; a single terminal can be used both to enter or change data and to change the way the data is displayed. `4,464,650 Apparatus and method for compressing data signals and restoring the compressed data signals inventors Lempel, Ziv, Cohn, Eastman assignees Sperry Corporation and At&T Bell Laboratories filed 8/10/81 granted 8/7/84 owner Sperry Corporation (now Unisys) Invented 1976, published IEEE Trans Info Theory 1978. This is one of the LZW patents. `4,486,857 Display system for the suppression and regeneration of charaters in a series of fields in a stored record inventor: Paul C. Heckel assignee Quickview Partners filed 10/6/82 granted 12/4/1984 `4,514,818 Video image creation system which simulates a drafting tool filed 12/1/81 granted 4/30/85 `4,551,810 Method and apparatus for designing duct work and for producing patterns for conduit sections in the designed duct work granted 11/5/85 `4,551,635 Circuit for driving the base of a transistor inventor K. Kuroki assignee Fuji Elec. Co., Ltd filed 9/13/82 granted 11/5/85 `4,555,775 Dynamic generation and overlaying of graphic windows for multiple active program storage areas filed 10/7/82 granted 11/26/85 inventor Robert C. Pike owner AT&T Lawsuits of X window vendors threatened, since this covers backing store. jupiter.ee.pitt.edu:/pub/patent/backing-store-letter is text of AT&T's letter. AT&T says, "The `backing store' functionality available in the X Windows System is an implementation of this patented invention, therefore, your company/institution needs a license from AT&T for the use of this patent." The MIT AI Lab implemented this three years before the patent application was filed, but the implementor (Richard Stallman) didn't think it was worthwhile enough to publish a paper on. janson@Athena.MIT.EDU says of Pike's _Transactions on Graphics_ articles on backing store and on the Blit: "a few things jumped out: 1) pike referenced prior art for naive backing store in the form of symbolics' window system 2) he distinguished his methods by virtue of special mechanisms to store the minimal amount of data rather than the entire window contents, and by specifying algorithms to perform graphics operations directly on this specially structured (composite backing store / frame-buffer) `window'." `4,558,302 High speed data compression and decompression apparatus and method filed 6/20/83 granted 12/10/85 assignee Sperry Corporation (now Unisys) inventor Welch Covers the common "compress" algorithm published in IEEE Computer, June 1984. Also see Welch's article in CACM. The text for patent "4,558,302 Dec. 10, 1985 Welch" can be ftped from uunet.uu.net as pub/lzw-patent.Z Independently discovered by Victor Miller and Mark Wegman (see 4,814,746, which is identical and takes precedence because it was filed 19 days earlier). Adds one table initialization and two lines of change to 4,464,650. `4,586,158 Screen management system filed 2/22/83 granted 4/29/86 inventor Richard T. Brandle assignee IBM Maybe covers termcap-style declarations of terminal characteristics. abstract: "A method of providing efficient on-line and interactive application program utilization of an assortment of devices calling for different screen characteristics. An application programmer writes screen definitions for a particular device to be used. These definitions are stored exterior of the application program and are used to define the quantity, order, and placement of the application program's information on the screen. The application program provides services to generate and process each data element which can be presented. These services are used by a mapping system in conjunction with the screen definitions to generate and process a device dependent data stream." `4,602,286 Video processing for composite images filed 1/10/83 granted 7/22/86 `4,612,532 Data compression apparatus and method inventors F.L. Bacon, D.J. Houde assignee Telebyte Corp. filed 5/19/84 granted 9/16/86 `4,622,545 Method and apparatus for image compression and Manipulation inventor William D. Atkinson assignee Apple computer Inc. filed 9/30/82 granted 11/11/86 `4,622,641 Geometric display generator filed 9/13/83 granted 11/11/86 inventor Lawrence K. Stephens assignee IBM Apparently covers all draw and paint programs Abstract: "A user-friendly procedure for the generation and display of geometric figures on a graphics screen uses a cursor placement device such as a joy stick to both define the initial position and size of the geometrical figure. Two specific examples are described: the generation of a circle and the generations of a square or rectangle. In the first example, the cursor is first positioned to point to the center of the circle at which point a small circle is drawn. The circle is expanded in response to the pressing of a designated key by the user until the desired size is attained. In the second example, the pointing by the cursor is to the upper left corner of the square or rectangle, and the square or rectangle is then expanded in response to the user deflecting the joy stick down and to the right." `4,624,462 Electronic card and board game inventor Y. Itkis electronic bingo, keno, et. al. `4,627,015 Text placement on graphics screen filed 5/31/83 granted 12/2/86 inventor Lawrence K. Stephens assignee IBM abstract: "A personal computer having an interactive all points addressable display terminal and a cursor positioning device is provided with a keyboard for inputting alphanumeric character strings not exceeding a predetermined maximum length. Once the desired alphanumeric character string has been input, it can be selected as the current cursor character. As the selected current cursor character, the alphanumeric character string is displayed on the all points addressable display and movable by said cursor positioning device. When the alphanumeric character string is positioned at a desired location on the all points addressable display, it can be fixed in that location by reading the alphanumeric character string into the display buffer." `4,633,416 Video image creation system which simulates a drafting tool filed 7/29/85 granted 12/30/86 inventor I.C. Walker assignee Quantel, Ltd. broad video paint system patent `4,642,764 Method of developing formal identities and program bases in an optimizing compiler filed 8/13/84 granted 2/10/87 assignee IBM Optimizing compiler patent `4,642,765 Optimization of range checking filed 4/15/85 granted 2/10/87 inventors Cocke et. al. assignee IBM `4,646,250 Data Entry Screen filed 10/18/84 granted 2/24/87 assignee IBM inventor John F. Childress Required fields are highlighted until they are filled in; fields incorrectly completed are also highlighted. `4,646,256 Computer and method for the discrete Bracewell Transform filed 3/19/84 granted 2/24/87 assignee The Board of Trustees of the Leland Stanford Junior University inventor Ronald N. Bracewell `4,648,062 Method for providing an on line help facility for interactive information handling systems filed 2/1/85 granted 3/3/87 inventors Steven E. Johnson; John Karat; Thomas M. Ruiz assignee IBM A pop-up window describes valid choices for user input. `4,653,020 Display of multiple data windows in a multi-tasking system filed 10/17/83 granted 3/24/87 inventors Harry Cheselka, Jeffrey S. Lucash, William R. Vincent assignee IBM Apparently covers windowing. `4,656,582 Generating storage reference instructions in an optimizing compiler filed 2/4/85 granted 4/7/87 `4,656,583 Method for improving global common subexpression elimination and code motion in an optimizing compiler filed 8/13/84 granted 4/7/87 owned by IBM `4,667,290 Compilers using a universal intermediate language filed 9/10/84 granted 5/19/87 `4,672,575 Schematic building cursor character filed 5/31/83 granted 6/9/87 inventor Lawrence K. Stephens assignee IBM Abstract: "A personal computer having an interactive all points addressable display thermal and a cursor positioning device is provided with apparatus for facilitating the generation of a graphics display. At least one table of selectable cursor characters is stored in memory, and from this table, any character can be selected to be the cursor character. The selected character is displayed as the cursor and movable to any point on the all points addressable display by the cursor positioning device. Once the current cursor character is at a desired point on the display, it is fixed in that position by reading the position and cursor data into the display buffer of the display terminal." First claim: 1. A computer system for providing an interactive graphics display comprising: - means for providing a table of selectable cursor graphics characters; - means for selecting one of said cursor graphic characters as the current cursor symbol - means for displaying the selected cursor graphic character - means for moving the displayed cursor graphic character on said means for displaying; and -means for fixing an image of the currently displayed cursor graphic character on the said means for displaying at one of more locations to generate a graphic display, said means for moving thereafter being capable of moving the currently displayed cursor graphic character to another location on said means for displaying. `4,674,040 Merging of Documents granted 6/16/87 assignee IBM copies 2 This is the so-called "include file patent". It is cited in Brian Kahin's article, "The Impact of Software Patents," in the Winter 1989 issue of the EDUCOM Review (Vol. 24 No. 4). Abstract: "A method of, an system for, merging a portion of one document into another and providing for current viewing and on line editing. During preparation of a document, a paragraph from another document can be included in the document being prepared by referencing the other document and paragraph. The result of referencing is inclusion of the paragraph, a view of the document being prepared, and a document including the included paragraph which is dynamically editable. If the paragraph is edited, an operator decision is to be made as to whether the other document is to be updated according to the editing." Claim 1 is: "A method for merging a portion of one document into another document, said method comprising: (a) including a reference to said another document to said portion; and (b) causing said portion to be merged with said another document and displayed in merged form." It covers displaying part of one document within the display of another, in response to a kind of cross-reference. This is, of course, a basic idea of hypertext. So many hypertext systems would infringe this patent. `4,687,353 Automatic format, mode control and code conversion for data processing and printing apparatus filed 4/28/86 granted 8/18/87 inventor Peter J. DeGeorge, Roger F. Ross, Donald E. Sims assignee IBM from the abstract: "The invention concerns itself primarily with the handling of left margins and indentation levels for different paragraphs in a document especially when a document under preparation has line lengths of an original document that was prepared concurrently with the storage of the coded signals on the record media." The patent appears to be on printing a document with different indentation than it is stored with; a suggested implementation is tabbing from the left margin before beginning to print each line. `4,714,918 Window view control filed 4/30/84 granted 12/22/87 inventors Barbara A. Karker, Irene H. Herna'ndez assignee IBM abstract: "A method of, and system for, controlling a view f window information upon editing the information. The view is controlled based on mode selection. For normal information input operations, information scrolling is selected. Related existing information adjacent the newly input information will be viewable, but remote information will eventually be scrolled out of the window. For those instances where all existing information is to remain viewable upon input of additional information, border scrolling will result in a varying of the size of the window." `4,714,989 Functionally Structured distributed data processing system filed 10/20/86 granted 12/22/87 inventor Roger E. Billings `4,736,308 Search/retrieval system filed 7/10/85 granted 4/5/88 inventor Paul Heckel assignee Hyperracks Inc. A system allowing parts of multiple cards to be displayed on the screen at the same time. Apple was sued over hypercard on the basis of this patent, but settled. `4,736,866 Transgenic non-human mammals filed 6/22/84 granted 4/12/88 Harvard's mouse patent `4,742,450 Method to share copy on write segment for mapped files filed 2/16/86 granted 5/3/88 `4,744,028 Methods and apparatus for efficient resource allocation filed 4/19/85 granted 5/10/88 inventor Narendra K. Karmarkar assignee AT&T 6~ `4,758,899 Data Compression Control Device filed 11/20/85 granted 7/19/88 inventor T. Tsukiyama assignee Hitachi, Ltd. `4,768,159 Squared-Radix discrete fourier transform filed 7/20/87 granted 8/30/88 inventor Gray et al. Abstract: A radix-N^2 or radix-N^4 discrete fourier transform (DFT) processor having cascaded stages alternately comprising N^2 sample memories and radix-N DFT's. Data is written into and read from the memories in a sequence permitting data to be written into a memory address immediately after the previously stored data is read from the same memory address, therby avoiding the need for double buffered memory. In one embodiment of the invention, two radix-N^2 processors are cascaded to produce a radix-N^4 DFT processor with even greator memory savings `4,777,593 Vector processing apparatus including means for identifying the occurrence of exceptions in the processing of vector elements filed 12/21/84 granted 10/11/88 inventor Yaoko Yoshida assignee Hitachi, Ltd. Abstract: "A vector processing apparatus has a number of pipeline arithmetic units operating concurrently to execute a set of vector instructions dealing with vector elements. Stack registers are provided for each arithmetic unit to hold the vector instruction address, leading vector element position and vector register internal address, so that one of the exceptions that can be detected successively by several arithmetic units during the process of the vector instructions is selected on a priority basis through the comparison of information in the stack of the currently detected exceptions with information of exception detected previously." ``````````` Inventory stopped here 5/17/93 --TimMcN 4,797,847 Discrete Cosine Transformer filed 2/4/87 granted 1/10/89 inventor Pierre Duhamel 4,814,746 Data compression method filed 6/1/83 granted 3/21/89 inventors Victor S. Miller, Mark N. Wegman assignee IBM This was applied for after 4,558,302 (the LZW patent), but their methods are identical. abstract: "Communications between a Host Computing System and a number of remote terminals is enhanced by a data compression method which modifies the data compression method of Lempel and Ziv by addition of new character and new string extensions to improve the compression ratio, and deletion of a least recently used routine to limit the encoding tables to a fixed size to significantly improve data transmission accuracy." Jean-loup Gailly says: - The LZW algorithm used in 'compress'is patented by IBM (4,814,746) and Unisys (4,558,302). It is also used in the V.42bis compression standard (see question 11 on V.42bis below) and in Postscript Level 2. (Unisys sells the license to modem manufacturers for a onetime $25,000 fee.) The IBM patent application was filed three weeks before that of Unisys, but the US patent office failed to recognize that they covered the same algorithm. (The IBM patent is more general, but its claim 7 is exactly LZW.) 4,815,029 In-line dynamic editor for mixed object documents filed 9/23/85 granted 3/21/89 inventors Barbara A. Barker, Irene H. Hernandez, Beverly H. Machart assignee IBM abstract: "A method for the intelligent, in-line, dynamic editing of documents containing mixed object types on a computer work station is disclosed. The mixed object types may be text objects, draw graphics objects, business graphics objects, and tables objects. The editor executes actions on use selected objects and attributes based on internal knowledge of the object type selected rather than by explicit user commands. This procedure provides a simple user interface that makes manipulation of objects and attributes and command execution transparent to the user. 4,856,787 Concurrent game network filed 5/3/88 granted 8/15/89 inventor Boris Itkis assignee Yuri Itkis Obvious slave-master scheme for playing poker, bingo, blackjack, and keno; one computer runs the game, the others have touch-sensitive screens for input. 4,864,501 Word annotation system Filed 10/7/87 Granted 9/5/89 Assignee Houghton Mifflin Company Inventors Henry Kucera, Alwin B. Carus Storing words in a dictionary. 4,864,502 Sentence analyzer Filed 10/7/87 Granted 9/5/89 Inventors Henry Kucera, Alwin B. Carus Assignee Houghton Mifflin Company Parses sentences into parts of speech. 4,864,503 Method of using a created international language as an intermediate pathway in translation between two national languages Filed 2/5/87 Granted 9/5/89 Assignee Toltram, Ltd. Inventor Bruce G. Tolin Use of interpretive steps instead of strict word-for-word translation. Rudy Zalesak says: This patent covers translating texts in one language into Esperanto (or ANY other "simplified" language) and translating that text into some other language. The patent text has to be seen to be believed. Implementation details consist of flow charts with labels like Sen Parse and Verb Conjugations. Nothing in it could be remotely useful to anyone working in natural language translation (unless it had never occurred to them that they had to parse sentences first...) Essentially the owners of the patent (Toltran, Ltd., Barrington Ill.) have a monopoly on an obvious idea that has occurred to anyone who has thought for a few minutes about machine language translation. (And, yes, it had occurred to me also, long before I knew about this patent). The patent text is useful for pointers to earlier patents- US Patent 4,502,128 seems to cover word-by-word translation and look-up of parts of speech, together with rearrangement by target language syntax. 4,456,969 seems to cover spelling checkers for multi- lingual documents. Just stating the idea seems enough to implement it: most readers of this post could make a prototype "multi-lingual spelling checker" in a few days, given a few machine-readable language dictionaries. Someone might object that "it's more complicated than that"; real spelling checkers have all kinds of refinements. But the patent owners didn't have to make a GOOD spelling checker either! 4,876,541 Stem [sic] for dynamically compressing and decompressing electronic data filed 10/15/87 granted 10/24/89 inventor James A. Storer assignee Data Compression Corporation LZW-based, with "all-prefixes" addition. Encoder and decoder include dictionaries which may be modified (new strings added and infrequently used ones removed). The abstract never uses the word "algorithm" without prepending a modifying "novel". James Woods says (and Dan Bernstein confirms) that this was independently discovered by Dan Bernstein of NYU a year later, and by Nigel Horspool of the Univertity of Vicotria; Horspool published in DCC '91. 4,893,256 Interactive video composition and presentation systems filed 4/4/85 granted 1/9/90 inventors Charles T. Rusherford, Nancy S. Frank assignee IBM Abstract: A method for specifying and execting independent, multi-media tasks along a synchronizing time-line, preferably in the form of a spreadsheet matrix with the event elements making up the rows and the time periods the columns. The media include various pieces of hardware such as touch screens, voice synthesizers, viedeo disk players, and the like. In designing a presentation, the author types into the matrix indications of which piece of hardware will be operating and for what specified period of time during the presentation. This information is also accessible to all other events in the presentation thereby allowing complex multi-media presentations to be designed by a user who is relatively unsophisticated in using computers. Includes 400 pages of source code. 4,914,590 Natural language understanding system filed 5/18/88 granted 4/3/90 inventor Loatman et al. [Copy appears to be incomplete] 4,928,243 Method and system for printing graphics and text from vector-based computer aided source information granted 5/22/90 inventors William L. Hodges, Patrick J. Cheek assignee Preco Industries, Inc. Abstract: A method and conversion system are provided for enabling a laser printer or the like to produce drawings including graphics and text from imput supplied by a computer aided design (CAD) system which allows text font style to be selected as desired and whihch produces curved lines as smooth curves. The preferred apparatus and method convert entity descriptions supplied by the CAD system in vector notation into signal representation of entitity descriptions in device notation whereby the output device uses the signals to create an entity image according to the type of entity such as an arc, text, or the like, and accoring to corresponding plotting data defining the paramaeters of th e entity. The system and method also allow the user to enter signals representative of the desired font sttyle of the text characters, gray scale levels, and reverse image if desired while also creating curved line images as smooth curves rather than as a series of straight short line segments. 4,943,909 Computational Origami filed 7/8/87 granted 7/24/90 inventor Alan Huang assignee AT&T Bell laboratories 4,956,809 Method for canonical ordering of binary data for portable operating systems filed 12/29/88 granted 9/11/90 assignee Mark Williams Co, Chicago, Ill. inventors Johann George, Trevor J. Thompson, David G. Conroy, Frederick H. Tudor Covers using a single standard byte ordering (say, big-endian or little-endian) for transfer of data between machines whose normal byte ordering is different. Paul Eggert says: This patent, on network byte ordering, covers any file header that tells you the endianness of the file. 4,995,075 Apparatus and method for encoding telephone ringing signals filed 9/5/89 granted 2/19/91 inventor Angiolillo-Bent et al. Abstract: An encode telephone signaling apparatus and method provides pleasant, realitively distinguishable personalized call destination information and distinctive call origin information signals within an audible ringing pattern. The ring pattern or envelope is partioned into two segments. the first segment provides call destination and identifying which party should answer the call, the second segment contains information such as, for example, whether the call is an inside (intercom) an outside call (central office) or a priority call. Within the first segment call destination information is encoded in a melodic contour pattern. Within the second segment, cal origin information is encoded by varying the number of pulses obtained from a single frequency audio signal which is syncopated to the melodic contour pattern provided by different audio frequencies in the first segment. 5,000,188 Physiological age measuring apparatus filed 11/28/1989 granted 3/19/91 assignee Colin electronics Co, Ltd. [sic] inventor Osamu Kojima Matches heartbeat against a set of stored heartbeats and reports age as the stored one that is most like the subject's. Included in the League files for humor value. 5,001,628 filed 9/1/89 granted 3/19/91 inventor Johnson et al. assignee IBM. 5,001,654 filed 1/13/89 granted 3/19/91 Inventors Winiger et al. 5,012,231 Method and apparaus [sic] for cursor motion having variable response filed 10/20/88 granted 4/30/91 assignee Glemics, Inc., Berkeley, California inventor Lee Felsenstein Abstract: A method and apparatus for controlling the movement of cursor indicia on display screens is disclosed in which the parameters of the equations of motion used to translate signals originating from positioning actuators into movement of the cursor may e varied. Factors such as the rate of change of the actuation signal, position of the cursor on the display screen, voluntary control input from the operator, and conditions determined by application software may be used to vary these parameters. 5,031,134 System for evaluating multiple integrals filed 3/27/90 granted 7/9/91 inventors Wilfred Kaplan, Frederick B. Sleator assignee The University of Michigan Abstract: "A system for computing multiple integrals employs an algorithm which selects a plurality of predetermined parameters, corresponding to selectable levels of accuracy of an approximation at the solution. The parameter values are selected and stored, along with a smoothing index, which may be zero. An arithmetic logic unit, which can perform a variety of functions under control of an instruction decoder, forms a plurality of functions in the form of unique polynomials, under predetermined conditions, such that a value can be determined for the multiple integral. The parameters are selected in response to a judgment on the part of the user of a required minimum level of accuracy in the context of the increases in computing time which would be required to achieve higher levels of accuracy." =========================================================================== These are data compression patents and they are stored in a separate drawer: 3,914,586 DATA COMPRESSION METHOD AND APPARATUS Filed: 10/25/73 10/21/75 General Motors Corporation, Detroit MI Duane E. McIntosh, Santa Ynez CA Data compression apparatus is disclosed is operable in either a bit pair coding mode of a word coding mode depending on the degree of redundancy of the data to be encoded. 4,087,788 DATA COMPRESSION SYSTEM Filed: 1/14/77 5/2/78 NCR Canada LTD - NCR Canada Ltee, Mississauga CA Brian J. Johannesson, Waterloo CA A data compression system is disclosed in which the left hand boundary of a character is developed in the form of a sequence of Freeman direction codes, the codes being stored in digital form within a processor. 4,170,832 Interative Learning Machine Brian Kahin says: "Broad patent claims covering abstract processes are not limited to software, or even to computer hardware. Consider patent no. 4,170,832, granted in 1979 for an "interactive learning machine". The patent discloses a clumsy-looking combined videotape deck and television with a set of push buttons. The patent includes a process claim for a procedure commonly used in interactive video: showing an introductory video segment, presenting the viewer with a limited number of choices, regsitering the viewers decision, and then revealing the likely outcome of that decision. Ths disclosed machine, which was never marketed, contributes nothing to the public domain: it simply reveals one person's way of implementing a basic instructional technique." 4,464,650 APPARATUS AND METHOD FOR COMPRESSING DATA SIGNALS AND RESTORING THE COMPRESSED DATA SIGNALS Filed: 8/10/81 8/7/84 Sperry Corporation, New York NY Willard I. Eastman, Lexingon MA Abraham Lempel; Jacob Ziv, both of Haifa, Israel; Martin Cohn, Arlington MA A compressor parses the input data stream into segments where each segment comprises a prefix and the next symbol in the data stream following the prefix. 4,560,976 DATA COMPRESSION Filed: 6/5/84 12/24/85 Codex Corporation, Mansfield MA Steven G. Finn, Framingham, MA A stream of source characters, which occur with varying relative frequencies, is encoded into a compressed stream of codewords, each having one, two or three subwords, by ranking the source characters by their current frequency of appearance, encoding the source characters having ranks no higher than a first number as one subword codewords, source characters having ranks higher than the first number but no higher than a second number as two subword codewords, and the remaining source characters as three subword codewords. 4,586,027 METHOD AND SYSTEM FOR DATA COMPRESSION AND RESTORATION Filed: 8/7/84 4/29/86 Hitachi, Ltd., Tokyo, Japan Tokuhiro Tsukiyama, Kanagawa Yoshie Kondo, Odawara Katsuharu Kakuse, Hadano Shinpei Saba, Hiratsuka Syoji Ozaki, Kanagawa Kunihiro Itoh, Odawara Method of data compression and restoration wherein an input data string including repetitive data more in number than the specified value is transformed into a data string having a format including the first region where noncompressed data are placed, the second region including a datum representative of a data string section which has undergone the compression process and information indicative of the number of repetitive data, i.e. the length of the data string section and control information inserted at the front and back of the first region indicative of the number of data included in the first region, said transformed data string being recorded on the recording medium, and, for data reproduction, the first and second regions are identified on the basis of the control information read out on the recording medium so that the compressed data string section is transformed back to the original data string in the form of repetitive data. See also 4,872,009. [Jean-loup Gailly says: This patent covers run length encoding in its most primitive form: a length byte followed by the repeated byte.] 4,667,649 DATA RECEIVEING APPARATUS Filed: 4/18/84 6/30/87 Canon Kabushiki Kaisha, Tokyo Japan Kosuke Kunishi, Tokyo Hiroyuki Mikada, Yokohama Tsunehiro Watanabe, Tokyo The present invention provides a data receiving apparatus constituted in such a manner that the received data is converted into a binary code and this binary code data is encoded and this encoded data is stored in a memory, whereby a large quantity of data can be stored in a memory of a small capacity. 4,682,150 DATA COMPRESSION METHOD AND APPARATUS NCR Corporation, Dayton OH GeneR. Mathes, Zanesville OH Robert L. Protheroe, Cambridge OH A system and apparatus for compressing redundant and nonredundant binary data generated as part of an operation of a time and attendance terminal in which the data represents the time an employee is present during working hours. 4,730,899 OPTICAL SIGNAL READING DEVICE Filed: 10/4/483 3/15/88 Mitsubishi Denki Kabushiki Kaisha, Tokyo, Japan Kenjiro Kime Kazuo Okada Mitsushige Kondon, all of Nagaokakyo, Japan An optical signal reading device comprising a laser light source, an objective slidable in the direction of the optical axis which is at right angles to the disc surface of a disclike record carrier, a light detector for receiving the reflected light coming from the disc surface via the objective and a beam splitter comprised of a single optical part disposed between the light source, light detector and objective. 4,809,158 Sorting method and apparatus granted 1989 inventors P. B. McCauley notes Reference [8] in the paper: Peter M. McIlroy, Keith Bostic and M. Douglas McIlroy. Engineering Radix Sort. Computing Systems, Vol. 6, No. 1, pp. 5-27. USENIX Association, Berkeley, CA. 4,809,359 SYSTEM FOR EXTENDING THE EFFECTIVE OPERATIONAL RANGE OF AN INFRARED REMOTE CONTROL SYSTEM Filed: 12/24/86 2/28/89 Devan T. Dockery, Rt. 8 Box 14, Defuniak Springs FL 32433 A system for extending the effective operational range of an infrared remote control system of the type having a remote control unit with an infrared transmitter and a controlled device having an infrared receiver. 4,814,746 DATA COMPRESSION METHOD Filed: 8/11/86 3/21/89 International Business Machines Corporation, Armonk NY Victor S. Miller, Peekskill Mark N. Wegman, New York Communications between a Host Computing System and a number of remote terminals is enhanced by a data compression method which modifies the data compression method of Lempel and Ziv by addition of new character and new string extensions to improve the compression ratio, and deletion of a least recently used routine to limit the encoding tables to a fixed size to significantly improve data transmission efficiency. 4,853,696 CODE CONVERTER FOR DATA COMPRESSION/DECOMPRESSION Filed: 4/13/87 8/1/89 University of Central Florida, Orlando FL Amar Mukherjee, Maitland FL A code converter has a network of logic circuits connected in reverse binary tree fashion with logic paths between leaf nodes and a common root node. 4,872,009 METHOD AND APPARATUS FOR DATA COMPRESSION AND RESTORATION Filed: 12/7/87 10/3/89 Hitachi,Ltd.; Hitachi Computer Peripherals Co., both of Tokyo Japan Tokuhiro Tsukiyama Hiroshi Yashiki, both of Kanagawa Osamu Hirose, Odawara A method of data compression for recording data on a recording medium such as magnetic tape, a method of data resoration for data which has been compressed for recording, and an apparatus of data compression and restoration prescribe the data to be compressed based on type or value and encode the compression object data, thereby reducing the number of bits necessary to indicate the compression object data. Claim 1 starts: A method of transforming an input data string comprising a plurality of data bytes, said plurality including portions of a plurality of consecutive data bytes identical to one another, wherein said data bytes may be of a plurality of types, each type representing different information, said method comprising the steps of: [...] See also 4,586,027. [Jean-loup Gailly says: This patent covers the 'invention' of limiting the run length to 16 bytes and thus the encoding of the length on 4 bits.] 4,876,541 SYSTEM FOR DYNAMICALLY COMPRESSING AND DECOMPRESSING ELECTRONIC DATA Filed: 10/15/87 10/24/89 Data Compression Corporation, Lexington MA James A. Storer, Lincoln MA A data compression system for encoding and decoding textual data, including an encoder for encoding the data and for a decoder for decoding the encoded data. 4,906,991 TEXTUAL SUBSTITUTION DATA COMPRESSION WITH FINITE LENGTH SEARCH WINDOWS Filed: 3/29/88 3/6/90 Xerox Corporation, Stamford CT Edward R. Fiala Daniel H. Greene, both of Sunnyvale CA In accordance with the present invention, source data is encoded by literal codewords of varying length value with or without the encoding of copy codewords of varying length and displacement value. Jean-loup Gailly says: Fiala and Greene have a patent (4,906,991) on the algorithms they published in Comm.ACM, April 89. The patent covers the algorithms used in lharc, lha and zoo. It is very similar to the Eastman-Lempel-Ziv patent 4,464,650 (LZ77 with a trie data structure) but much more general. (There are 244 specific claims in the Eastman patent, only 7 in the Fiala patent.) 4,955,066 COMPRESSING AND DECOMPRESSING TEXT FILES Filed: 10/13/89 9/4/90 Microsoft Corporation, Redmond WA Leo A. Notenboom, Woodinville WA A method of compressing a text file in digital form is disclosed. 4,961,139 DATA BASE MANAGEMENT SYSTEM FOR REAL TIME APPLICATIONS Filed: 6/30/88 10/2/90 Hewlett-Packard Company, Palo Alto CA Le Thieu ong, Fremont CA Cynthia Givens Ching Chao Liu, both of Sunnyvale Michael J. Wright, Los Gatos Feyzi Fatehi, Sunnyvale A real time database provides the predictable, high speed data access required for online applications, while providing flexible searching capabilities. 5,001,478 METHOD OF ENCODING COMPRESSSED DATA Filed: 12/28/89 3/19/91 International Business Machines Corporation, Armonk NY Michael E. Nagy, Tampa FL A method of encoding compressed data for transmission or storage. 5,049,881 APPARATUS AND METHOD FOR VERY HIGH DATA RATE COMPRESSION INCORPORATING LOSSLESS DATA COMPRESSION AND EXPANSION UTILIZING A HASHING TECHNIQUE Filed: 6/18/90 9/17/91 Intersecting Concepts, Inc., Agoura Hills CA Dean K. Gibson, Harbor City Mark D. Graybill, Agoura Hills A method and apparatus for compressing digital data that is represented as a sequence of characters drawn from an alphabet. 5,051,745 STRING SEARCHER AND COMPRESSOR USING SAME Filed: 8/21/90 9/24/91 PKWare Inc., Brown Deer WI Philip W. Katz, Glendale WI Methods and apparatus for string searching and data compression. 5,140,321 DATA COMPRESSION/DECOMPRESSION METHOD AND APPARATUS Filed: 9/4/91 8/18/92 Prime Computer, Inc., Framingham MA Robert K. Jung, Norwood MA A method and apparatus for compressing digital data uses data which has been previously compressed as a dictionary of substrings which may be replaced in an input data stream. Jean-loup Gailly says: Robert Jung, author of 'arj', has recently been granted patent 5,140,321 for one variation of LZ77 with hashing. This patent covers the LZRW3-A algorithm, also previously discovered by Ross Williams. LZRW3-A was posted on comp.compression on July 15, 1991. The patent was filed two months later on Sept 4, 1991. (The US patent system allows this because of the 'invention date' rule.) =========================================================================== We don't have copies of the following patent disclosures. Patent disclosures can be acquired by sending $3.00 per patent to Patent and Trademark Office Washington, D.C. 20231 We don't have a copy of: 2,552,629 Rudy Zalesak says: This patent covered Hamming codes for error correction as implemented in electric switching circuits; the Bell System was forced to make it available for royalty free licensing in 1956 as a result of an antitrust case. Details can be found in "From Error-correcting Codes Through Sphere Packings to Simple Groups" by Thomas M. Thompson, 1983, The Mathematical Association of America ISBN 0-88385-023-0. Hamming didn't publish his 1948 work until 1950 because of the company's interest in the patents. A quote (p. 27) is pertinent: "Hamming was skeptical about securing a patent. 'I didn't believe that you could patent a bunch of mathematical formulas. I said they couldn't. They said, "watch us". They were right. And since then I have known that I have a very weak understanding of patent laws because, regularly, things that you shouldn't be able to patent- it's outrageous- you can patent.' " 3,380,029 Sorting System granted 4/23/68 assignee Applied Data Research, Inc. inventor Martin Goetz Earliest US software patent? 3,405,457 owned by the University of Illinois The PLATO patent, now expired. One of its claims covered the use of a single computer to serve the independent needs of multiple interactive users. That is, it covered all timesharing systems. 3,999,050 Electronic Diary granted 12/21/76 assignee Pitroda Excerpt from abstract: An electronic diary having combined clock-calendar means and diary storage means is provided wherein a random access memory is employed in a diary mode of operation for the storage and readout of preselected daily schedule and message events keyed for visual display in response to equal time comparisons with real time of day TOD as generated by clock calendar means. Richard D. Goldstein, Esq says, "The claims appear to be equally as broad." 4,200,770 Cryptographic Apparatus and Method filed 9/6/77 granted 4/29/80 inventors M. E. Hellman, B. W. Diffie, R. C. Merkle assignee Stanford University Exponential, and all other forms of, secret key exchange. This is the "Diffie-Hellman" patent. Public Key partners has exclusive sublicensing rights. Abstract: The cryptographic system transmits a computationally secure cryptogram over an insecure communication channel without prearrangement of a cipher key. A secure cipher key is generated by the conversers from transformation of exchanged transformed signals. The conversers each posses a secret signal and exchange an initial transformation of the secret signal with the other converser. The received transformation of the other converser's secret signal is again transformed with the receiving converser's secret signal to generate a secure cipher key. The transformations use non-secret operations that are easily performed but extremely difficult to invert. It is infeasible for an eavesdropper to invert the initial transformation to obtain either converser's secret signal, or duplicate the latter transformation to obtain the secure cipher key. 4,218,582 Public Key Cryptographic Apparatus and Method filed 10/6/77 granted 8/19/80 inventors Hellman, Merkle assignee The Board of Trustees of the Leland Stanford Junior University Knapsack, and all other forms of, public key cryptography. This is the "Hellman-Merkle" patent. Public Key partners has exclusive sublicensing rights. Abstract: Coding and decoding system for data transmission over unprotected lines. The decoding system unit which has two inputs, one receiving the coded message and the second the authentication signal and has an output transmitting the inverse of the message coding transformation. The message is represented as a vector X having 'n' dimensions X1 being equal to 0 or 1. The authentication is represented by the vector n dimensions whose components are such that a1 = logba' i mod m for i - 1,2,....n where a alpha m are whole numbers. The coding transformation cannot be determined in the absence of the authentication signal. 4,398,246 Word Processing System Employing a Plurality of General Purpose Processor Circuits filed 1980-08-12 granted 1983-08-09 assignee Pitney Bowes Inc. Irlam says: A collection of possibly diskless computers connected in a network so as to share resources. (I am having some difficulty understanding exactly what is claimed - I think the system is limited to performing word processing and one of the computers must have a single line display, but I am not certain). 4,405,829 Cryptographic Communications System and Method filed 12/14/77 granted 9/20/83 inventors Ronald L. Rivest, A. Shamir, L. M. Adleman assignee Massachusetts Institute of Technology The RSA public key cryptosystem, and any communication system that evaluates a polynomial modulo a prime number. This is the "RSA" patent. Public Key partners has exclusive sublicensing rights. Abstract: The system includes a communications channel coupled to at least one terminal having an encoding device and to at least one terminal having a decoding device. A message-to-be-transferred is enciphered to ciphertext at the encoding terminal by encoding the message as number M in a predetermined set. That number is then raised to a first predetermined power (associated with the intended receiver) and finally computed. The remainder or residue, C, is computed when the exponentiated number is divided by the product of two predetermined prime numbers (associated with the intended receiver). The residue C is the ciphertext. The ciphertext is deciphered to the original message at the decoding terminal in a similar manner by raising the ciphertext to a second predetermined power (associated with the intended receiver). The residue, M', is computed when the exponentiated ciphertext is divided by the product of the two predetermined prime numbers associated with the intended receiver. The residue M' corresponds to the original encoded message M. 4,424,414 Exponential Cryptographic Apparatus and Method filed 5/1/78 granted 1/3/84 inventors Hellman, Pohlig assignee Board of Trustees of the Leland Stanford Junior University A conventional cryptosystem that performs modular exponentiation. Not as important as the other 3 cryptography patents (Diffie-Hellman, Hellman-Merkle, and RSA). This is the "Hellman-Pohlig" patent. Public Key partners has exclusive sublicensing rights. 4,434,753 Register Allocation System Using Recursive Queueing During Source Code Compilation granted Mar 6, 1984 inventor J. Rizzi assignee International Business Machines Corporation 4,455,025 Owned by FortuNet -- relates to 4,856,787 and coputer game networks. 4,456,969 Rudy Zalesak says: Seems to cover spelling checkers for multi- lingual documents. 4,458,311 "text and numeric processing on same screen" 4,486,857 granted 12/84 inventor Paul Heckel Hyperracks Inc. A file system of more than one card, each with multiple fields, where all the fields can be scrolled independently. Apple was sued over this and settled, licensing it. 4,502,128 Rudy Zalesak says: Seems to cover word-by-word translation and look-up of parts of speech, together with rearrangement by target language syntax. 4,555,771 Data Processing System for Data Base Management of Matrix Type Data filed 1982-03-26 (originally filed 1979-08-27) granted 1985-11-26 assignee Fujitsu Irlam says: A technique for managing a database with more than one index. ??? 4,555,772 filed 5/31/83 assignee IBM Supposedly "multiple cursors for multiple windows, using an XOR-writing technique" 4,567,574 Optimizing COBOL Object Code Instruction Path Length with respect to PERFORM Statements granted Jan 28, 1986 inventor H. Saade, W. Tindall assignee International Business Machines Corporation 4,571,678 Register allocation and spilling via graph coloring filed 11/5/82 granted 2/18/86. Owned by IBM. Inventor is Gregory Chaitin from Yorktown Heights, NY. It's one of a group of 16 or so patents filed by IBM as result of their 801/PL.8 development. They also mention things like global common subexpression elimination and optimization of array bounds checking. John R. Levine says: Covers the compiler technique of allocating registers by graph coloring, with a spill algorithm to handle cases where the original graph is not colorable. Chaitin had already published a coloring algorithm, but the patented spill modification is needed to make it practical. 4,611,277 filed 15 Sep 83 granted 9 Sep 86 inventors Kemppainen et al. assignee BankAmerica [or is that Bank of America?] John R. Levine says: It is 200 pages long, consisting mostly of a long Basic program. The patent is for the rather obvious idea of having a microcomputer call up a mainframe and download cash management or bank account data, something a friend of mine did at about the same time for someone else as a quick hack. Luckily, BofA seems not inclined to enforce this one. The patent claims are so broadly worded that they look to me like they cover any use of a microcomputer to download data from a mainframe: 1. A communications system comprising: a user terminal including a microcomputer, a mainframe computer connected to said microcomputer, said user terminal further including communication software control means for controlling the transfer of data directly between said microcomputer and said mainframe computer, said sofware control means including means for controlling the transfer of said data in an unattended mode. 2. A system as in claim 1 wherein said software control means include means for controlling the transfer of said data in an automatic mode. 3. A system as in claim 1 wherein said software control means include means for controlling the transfer of said data in a manual mode. 4. A system as in claim 1 wherein said software control means include means for controlling the transfer of said data in a terminal emulation mode. (Claims 5-9 relating to cash management applications of the same things) 4,624,462 Owned by FortuNet -- relates to 4,856,787 and coputer game networks. 4,646,256 Computer and Method for Solving the Discrete Bracewell Transformation granted 1987 Stanford University inventor Ronald N. Bracewell Can be used in many fields to more quickly analyze data by computers. 4,648,044 Technowledge Inc. Supposedly on "basic AI techniques" 4,648,067 Footnote management for display and printing granted 3/3/87 4,648,071 Designation of footnotes and footnote reference granted 3/3/87 4,656,582 Generating Storage Reference Instructions in an Optimizing Compiler granted Apr 7, 1987 inventor G. Chaitin, M. Hopkins, P. Markstein, H. Warren, Jr. assignee International Business Machines Corporation 4,656,583 Method for Improving Global Common Subexpression Elimination and Code Motion in an Optimizing Compiler granted April 7, 1987 inventor M. Auslander, J. Cocke, P. Markstein assignee International Business Machines Corporation 4,656,602 Method of control placement of image of document to be printed on paper in an interactive text processing system granted 4/7/87 4,674,042 Editing business charts granted 6/16/87 4,701,745 Data compression system filed March 3, 1986 granted January 20, 1987 assignee FERRANTI PLC GB inventor John R. Waterworth Abstract: A DATA COMPRESSION SYSTEM INCLUDES AN INPUT STORE (1) FOR RECEIVING AND STORING A PLURALITY OF BYTES OF DATA FROM AN OUTSIDE SOURCE. DATA PROCESSING MEANS FOR PROCESSING SUCCESSIVE BYTES OF DATA FROM THE INPUT STORE INCLUDES CIRCUIT MEANS (21-25) OPERABLE TO CHECK WHETHER A SEQUENCE OF BYTES IS IDENTICAL WITH A SEQUENCE OF BYTES ALREADY PROCESSED, OUTPUT MEANS (27) OPERABLE TO APPLY TO A TRANSFER MEDIUM (12) EACH BYTE OF DATA NOT FORMING PART OF SUCH AN IDENTICAL SEQUENCE, AND AN ENCODER (26) RESPONSIVE TO THE IDENTIFICATION OF SUCH A SEQUENCE TO APPLY TO THE TRANSFER MEANS (12) AN IDENTIFICATION SIGNAL WHICH IDENTIFIES BOTH THE LOCATION IN THE INPUT STORE OF THE PREVIOUS OCCURRENCE OF THE SEQUENCE OF BYTES AND THE NUMBER OF BYTES IN THE SEQUENCE. See also 5,016,009. Stac filed a patent infringement suit against Microsoft (late January, 1993). 4,701,848 System for effectively paralleling computer terminal devices granted 10/20/87 assignee Clyde, Inc. inventor Robert A. Clyde Bruce Orchard says: This describes how in VMS to make the output destined for one terminal to appear on two terminals and to make the input from two terminals appear to have come from one terminal. The existence of this patent came to light when Clyde asked DECUS to remove the WATCH program from the DECUS program library. Clyde ultimately backed down. 4,710,872 Method for Vectorizing and Executing on an SIMD Machine Outer Loops in the Presence of Recurrent Inner Loops granted Dec 1, 1987 inventor R.G. Scarborough assignee International Business Machines Corporation 4,714,989 Functionally structured distributed database processing system filed 10/20/86 granted 12/22/87 inventor Roger E. Billings This is the "file server patent". It covers a central database server (used like a file server) connected to user stations via a network. The American Academy of Science (to whom it was given in return for a fraction of the proceeds) sued Novell and Bank America for (respectively) writing and using a distributed database system that ran on a local area network. We have the first page. 4,718,008 filed 16 Jan 88 granted 5 Jan 88 inventors Chang et al. assignee IBM John R. Levine says: The method used to handle page faults in critical sections by backing out the critical section code. References patent 4,730,249. 4,730,249 filed 16 Jan 86 granted 8 Mar 88 inventors O'Quin II et al. assignee IBM John R. Levine says: The method used for handling virtual memory segments in AIX on the IBM RT PC, involving a software implementation of two-level pagable page tables. Hard to say how obvious it is, though the implementation is somewhat specific to the reverse map MMU used in the RT PC and RS/6000. 4,740,904 Line Following System and Process filed 11/1/85 granted 4/26/88 inventor John Nagle Covers "auto-tracing" of raster images into vector images. Licensed to Autodesk, Inc. 4,742,447 filed 16 Jan 86 issued 3 May 88 inventors Duvall et al. assignee IBM John R. Levine says: The method for handling mapped files in the two level Unix/VRM operating system on the RT. (Uses the name Unix in the claims.) Written broadly enough that the SVR4 disk I/O system might infringe, though since AT&T and IBM have cross-licenses it hardly matters. 4,744,028 Method and Apparatus for Efficient Resource Allocation granted 1988 Bell Laboratories inventor Narendra K. Karmarkar Can help airlines schedule planes and crews more efficiently. Is this the linear programming patent? 4,752,877 4,722,055 4,642,768 Patents on a computer system that calculates the amount required for one year at a particular college, informing parents how much to deposit to guarantee that a year's tuition, some years down the road, will be covered. Upheld in court. 4,768,159 Squared Radix Discrete Fourier Transform granted 1988 owner TRW Computer system similar to the Discrete Cosine Transform (see 4,797,847). 4,773,007 Compiler Code Optimization Method for a Source Program Having a First and Second Array Definition and Use Statements in a Loop granted Sep 20, 1988 inventor Y. Kanada, K. Isida assignee Hitachi, Ltd. 4,782,444 Compilation Using Two-Colored Pebbling Register Allocation Method Such That Spill Code Amount is Invariant With Basic Block's Textual Ordering granted Nov 1, 1988 inventor A. Munshi, K. Schimpf assignee International Business Machines Corporation 4,783,761 Spelling Check Dictionary with Early Error Signal granted 8 Nov 1988 filed 26 Dec 1985 assignee Smith Corona Corporation, Cortland, New York inventors Gray, R. William, Ithaca, New York; Adams, Donald T., Homer, New York; Duncan, IV, Howard C., Marathon, New York Early check for misspelling: an error signal is emitted "upon the earliest determination that an input character does not conform to that of any word listed in the dictionary". Patent text is online. 4,797,729 System Incorporating an Error-tolerant Picture Compression Algorithm owner Eastman Kodak Can minimize distortions when pictures are stored in computers. 4,797,847 Discrete Cosine Transform granted 1989 inventor Pierre Duhamel of France Can help send electronic signals more rapidly and store video data more compactly. 4,807,182 Apparatus and Method for Comparing Data Groups dated Feb 21, 1989 inventor Cary L. Queen owned by Advanced Software, Inc. of Sunnyvale, California. Patent on comparing text blocks by comparing hash codes and for displaying the differing sections in two windows on one CRT ("or other suitable device"). This covers the diff program. 4,821,181 Method for Converting a Source Program of High Level Language Statement into Object Program for a Vector Processor granted Apr 11, 1989 inventor K. Iwasawa, Y. Tanaka assignee Hitachi, Ltd. 4,823,108 An Improved Display System and Memory Architecture and Method granted 4/18/89 Quarterdeck Office Systems, Inc. Someone (Kahin?) says: An improved system for displaying images in "windows" on a computer screen. Dandekar (who claims the patent was grated June 1989) says: Quarterdeck patents the multitasking DESQview environment specific process -- a method of dealing with ill-behaved software that circumvents the operating system for its displays, allowing it to work properly in a multitasking environment. 4,833,606 Compiling Method for Vectorizing Multiple DO-Loops in Source Program granted May 23, 1989 inventor K. Iwasawa, Y. Tanaka assignee Hitachi, Ltd. 4,885,684 Method for Compiling a Master Task Definition Data Set for Defining the Logical Data Flow of a Distributed Processing Network granted Dec 5, 1989 inventor E. Austin, J. Robertson assignee International Business Machines Corporation 4,891,503 filed 29 Mar 88 issued 2 Jan 90 inventor Tmomas Jewell assignee Gascard, Inc. John R. Levine says: A distributed credit card authorization scheme that caches part of the "deny" file in the terminals to speed up transactions. Looks pretty obvious to me to anyone who knows anything about caches. 4,908,861 Data Authentication Using Modification Detection Codes Based on a Public One Way Encryption Function inventors D. Coppersmith, S. Pilpel, C. H. Meyer, S. M. Matyas, M. M. Hyden, J. Oseas, B. Brachti, and M. Schilling assignee IBM granted March 13, 1990 4,914,590 granted April 3, 1990 assignee Planning Research Corporation (PRC) This is a patent on a NLP (natural language processing) technique. It is written so generally as to apply to any parsing technique that uses a lexicon, a grammar, and a canonical semantic representation that encodes case (modal) information. (Since natural languages use case, and the case is semantically significant (cf. modal logic), this isn't a significant restriction.) The claim in question is so general that, were it not explicitly limited to "natural language text," it would appear to apply to all compilers of any sort. So in effect, the entire act of parsing a natural language, at least as it is practiced today, does appear to be barred by this patent. 4,916,610 Multilanguage software integration through preprocessing granted 10 April 1990 assignee Racal Data Communications Inc., Sunrise, Florida ABSTRACT: A method of assuring consistency of constants in a multilanguage software system, includes generating a first set of code written in a first language using a plurality of symbolic constants to represent a corresponding plurality of actual constants. A second set of code is written in a second language using the plurality of symbolic constants to represent the corresponding plurality of actual constants. A common header file is generated which contains information which relates the plurality of symbolic constants to the corresponding plurality of actual constants. The header is included within the first and second sets of code. The symbolic constants in the first and second sets of code are replaced with their corresponding actual constants during a preprocessing step. Any constructs which are not a part of the first language are stripped from the second set of code including the header file. Any constructs which are not a part of the second language are stripped from the first set of code including the header. The resulting files have their symbolic constants consistently replaced by constants which are defined in the header so that changes need only be made in the header file to assure consistency in the several languages. 4,918,722 Control of Electronic Information Delivery filed May 11, 1988 granted Apr 17, 1990 assignee Brooktrout Technology, Inc Stuart Lynne says: Abstract: Delivery of binary encoded character data and facsimile encoded data to a specified recipient is controlled rapidy, simply and with versatility, by e.g., DTMF commands sent by a user. This patent purports cover use of DTMF (touch tones) to control a remote system to send facsimilies. E.g. phone into a voice retrieval system, select a document and enter a fax phone number to have it faxed to you. Or upload a fax and have it forwarded to a specified phone number. [Steve Elias , former Brooktrout employee, says: the latter "upload fax thang" is NOT covered by this patent.] The patent was filed in May 1988. I have in my possesion a brochure from Telecom Canada dated Jan. 1988, describing their fax forwarding service. Specifically you dial into one of their fax numbers, identify yourself with a code and PIN, select a command, optional arguements (such as phone numbers to forward to) and then upload a fax. It then redirects your fax to the numbers specified. [Their target market at the time was to save you money when sending faxes to oversea's numbers.] The Telecom service was fielded and running in January of 1988. Given the length of time for a common carrier to develop and institute a service of this type (and get government approval etc) it would seem that we have amply evidence of prior art to invalidate this patent that was in place well in advance of filing. [Steve Elias says: the Telecom Canada thang you mention here covers uploading faxes and redirecting them. the Brooktrout patent does NOT cover such functionality. i believe that a Japanese company owns a patent which covers the upload/redirect fax thang.] [Michael A. Shiels says: It looks from the text as if they want to patent any remote retrieval of faxes which can definantly hurt anyone doing software for FaxBack type services or business people trying to retrieve faxes while on the road etc. This patent is being fought by a group called the 'Fax Response Industry Asoociation (FRIA)' Dialogic Corp in Parsippany NJ GammaLink Inc Ibex Technologies Inc. AudioFax FaxBack Inc.] 4,931,783 Owned by Apple. Appears to cover Macintosh "tear-off" menus. Abstract: The method generates and displays the menu bar having the command option. A cursor is positioned on the display using a cursor control. The manipulation of the cursor results in a corresponding movement of the cursor on the display. The menu window is displayed by selecting command option. The command option is selected by the user's control of a signal generator being coupled computer controlled display system. The menu window is removed from the menu bar while the menu window is displayed by manipulating the cursor control so as to move the cursor across the border the menu window may be removed from the menu bar. 4,939,354 Dynamically variable machine readable binary code and method for reading and producing thereof waters@nddsun1.sps.mot.com says: The startup company Datacode International Inc exists to market this patent. THe patent covers a new form of marking code, somewhat like the UPC barcodes on retail products. The invention includes the format of the code, as well as the software used to generate and read the code. No hardware involved in the "novelty of the device" - all standard "off the shelf" stuff. At least one company that would not exist without what I at least class as a software patent. 4,935,877 Genetic Programming Algorithm ftp.cc.utexas.edu:pub/genetic-programming/ 4,943,869 Compression Method for Dot Image Data filed 1988-05-04 granted 1990-07-24 assignee Fuji Photo Film Co. Lossy and lossless image compression schemes. 4,943,909 inventor Alan Huang assignee AT&T A method, based on origami, of allocating processors to parts of a problem (say, an aerodynamic analysis). 4,955,066 Filed: 1989-10-13 Granted: 1990-09-04 Inventor: Notenboom, L.A. Owner: Microsoft Title: Compressing and Decompressing Text Files [Noted in signon screen of Word 5.5 and on the outside of the MS-DOS 5.0 Upgrade.] Jean-loup Gailly says: a method of data compression using run-length encoding, 'key phrase' and huffmann coding. Abstract: A method of compressing a text file in digital form is diclosed. A full text file having characters formed into phrases is provided by an author. The characters are digitially represented by bytes. A first pass compression is sequentially followed by a second pass compression of the text which has previously been compressed. A third or fourth level of compression is serially performed on the compressed text. For example, in a first pass, the text is run-length compressed. In a second pass, the compressed text is further compressed with key phrase compression. In a third pass, the compressed text is further compressed with Huffman compression. The compressed text is stored in a text file having a Huffman decode tree, a key phrase table, and a topic index. The data is decompressed in a single pass and provided one line at a time as an output. Sequential compressing of the text minimizes the storage space required for the file. Decompressing of the text is performed in a single pass. As a complete line is decompressed, it is output rapidly, providing full text to the user. 4,956,791 Merging Pattern-Matching Networks Including Retes filed 1988-11-14 granted 1990-09-11 assignee IBM Technique for merging pattern recognition networks without the need to recompile the entire resulting network. 4,956,806 Method and Apparatus for Editing Source Files of Differing Data Formats Using an Edit Tracking File filed 1988-07-12 granted 1990-09-11 assignee IBM Storing the edits applied to one sound or image file and subsequently applying them to a second file. 4,965,724 Compiler System Using Reordering of Microoperations to Eliminate Interlocked Instructions for Pipelined Processing of Assembler Source Program granted Oct 23, 1990 inventor I. Utsumi, Y. Mori assignee Oki Electric Industry, Ltd. 4,975,950 System and Method of Protecting Integrity of Computer Data and Software inventor Stephen A. Lentz filed November 3, 1988 David.M.Chess says: It basically patents the idea of having a virus-checker get control before the operating system, and not allowing boot if it finds a virus. One sample PC implementation is code in an additional ROM module (on a "virus protector board") that would get control during boot (like the hard disk BIOS, the EGA BIOS, and so on), and load and test "the system files" (not clear if he means the boot records, or things like IBMBIO, IBMDOS, COMMAND.COM), and not allow boot if a virus was found (how it tells isn't spelled out). This is just one sample implementation; the actual claims are quite broad, and seem to cover anything that gets control between the "program for controlling said central processing unit" and the "program for interfacing said storage memory with said system", by which he presumably means ROM-like things and operating-system-like things. 4,979,832 Dynamic Substitution Combiner and Extractor granted Dec. 25, 1990 inventor Terry Ritter 4,995,075 Rudy Zalesak says: An article in the November 1991 <> magazine states that two psychologists at AT&T Bell Labs have a technique for using musical tunes to individualize phone rings. The article mentions a "patent on the software"; just what might be covered is not clear. It is hard to believe that pairing a stored employee phone ID with a given musical tune would involve a novel technique. Most of the work (taking two years, although it doesn't say that this project was their only occupation during that time) seems to have involved testing out various ringing styles on volunteers. For example they discovered that people became aggravated at "rings" that called their name! 5,001,478 Method of Encoding Compressed Data filed 1989-12-28 granted 1991-03-19 inventor Michael E. Nagy assignee IBM 1. A method of encoding a compressed data stream made up of a sequence of literal references, lexicon references and history references, which comprises the steps of: assigning to each literal reference a literal identifier; assigning to each history reference a history identifier; assigning to each lexicon reference a lexicon identifier; and emitting a data stream with said identifiers assigned to said references. Gordon Irlam says: The invention can probably be best understood by considering the decompressor. It consists of a history buffer, and a lexicon buffer, both of which are initially empty. The history buffer contains the last n symbols emitted. Whenever a history buffer reference is to be output the string so referenced is subsequently moved to the lexicon buffer for future reference. Thus the history buffer keeps track of strings that may be repeated on a very short term basis, while the lexicon buffer stores items for a longer time. Furthermore a history reference involves specifying both the offset and length within the history buffer, whereas a lexicon reference simply specifies a number denoting the string. Both buffers have a finite size. I don't know all that much about compression, but this seems to me to be fairly general, and a quite trivial thing that is being patented. It also seems that the compressor would not be all that efficient (at least in the preferred embodyment, which amongst other things doesn't appear to attempt to encode the lexicon references on the basis of their frequency of occurrence). Presumably speed is the main objective. It sounds to me like the sought of thing a student might come up with given one lecture on data compression, and then asked to write a compression program. Jean-loup Gailly says: This patent covers the idea of combining a history buffer (the LZ77 technique) and a lexicon (as in LZ78). The concept of history buffer is definitely not new, this is the LZ family of algorithms. The concept of lexicon is not new either, there are many papers published on this. The US patent office probably considered that just combining two old ideas in one algorithm was patentable. 5,001,752 Public-key data-time notary facility - uses microprocessor based hardware platform that performs public key crypotgraphic operations to obtain trusted time stamping 3/19/91 This info from an EPO application Abstract: US The time notarization apparatus uses a secure, microprocessor based hardware; platform which performs public key cryptographic operations to obtain trusted time stamping with a minimum of intervention by third parties. The hardware platform is encapsulated in a secure fashion so that the device`s timestamping mechanism may not be readily tampered with or altered. The hardware platform includes at least one digital clock and a stable, secure storage device to record the private half of a public/private key pair. Coupled to both the digital clock and the storage device is a data processing device which per forms public key signature operations in a secure and tamper-proof manner. Only the processin device has access to the secure storage device and its associated private key. The hardware platform also includes input/output means which receives a digital message which is to be digitally signed and timestamped and whcih outputs the resulting timestamped signature generated by the device. The hardware platform also includes a power source, (e.g., an on-board battery) to ensure the asccuracy of the device`s digital clock and the security of storage data prior to installation or in case of a power failure. ADVANTAGE - Eliminate digital rotary accessibility problems. 5,016,009 Data compression apparatus and method filed January 13, 1993 granted May 14, 1991 assignee Stac Inc inventors George Glen A (US); Ivey Glen E (US); Whiting Douglas L (US) Abstract: An apparatus and method for converting an input data character stream into a variable length encoded data stream in a data compression system. The data compression system includes a history array means. The history array means has a plurality of entries and each entry of the history array means is for storing a portion of the input data stream. The method for converting the input data character stream includes the following steps. Performing a search in a history array means for the longest data string which matches the input data string. If the matching data string is found within the history buffer means, the next step includes encoding the longest matching data string found by appending to the encoded data stream a tag indicating the longest matching data string was found and a string substitution code. If the matching data string is not found within the history array means, the next step includes encoding the first character of the input data string by appending to the encoded data stream a raw data tag indicating that no matching data string was found and the first character of the input data string. See also 4,701,745. Stac filed a patent infringement suit against Microsoft (late January, 1993). 5,022,080 Electronic notarisation method for transmitted document - ensuring document has not been altered subsequent to particular date and time associated with document 6/4/91 Inventors Durst, R T; Hunter, K D Abstract: The method involves providing a unit of data and generating a second unit of data from the first unit of data, the second unit of data being expressive of an information content of the first unit of data. The method further involves generating a time indication for specifying a point in time, the time indication being generated by another party. A time generator is secured and cannot be altered or changed by the first party. The second unit of data is encrypted and a third unit of data. The first unit of data is validated to ensure that the first unit of data has not been modified since the specified point in time. ADVANTAGE - Ensures that both date of creation or last date of alteration and contents of document have not been altered. 5,031,134 inventors Wilfred Kaplan and Frederick B. Sleator Modified Monte Carlo technique for calculating volume. Reported by Edmund L. Andrews in "Patents" column of New York Times, July 26, 1991. 5,036,535 Carl M. Kadie says: Note in clari.nb.telecom says that Unifi Communications has gotten patent number 5,036,535 for its "PhoneServer software technology". "The patent covers both a concept and its implementation in software. PhoneServer lets telecommunications managers use Unix or Windows 3.0 based computers on their own premises to program and control call routing in the public network." "'The patent covers both the concept of what we have done as well as the implementation, and the concept is a big part of the patent,' Bob Pokress of the company told Newsbytes." Here is the end of the note: "(Dana Blankenhorn/19910812/Press Contact: Unifi, Bob Pokress, 508/663-7570)" 5,046,020 Distributed parallel processing network wherein the connection weights are generated using stiff differential equations granted Sep. 3, 1991 inventor: David L. Filkin Assignee: E. I. du Pont de Nemours and Company Abstract: A parallel distributed processing network of the back propagation type is disclosed in which the weights of connection between processing elements in the various layers of the network are determined in accordance with the set of steady solutions of the stiff differential equations governing the relationship between the layers of the network. 5,049,881 Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique inventors Dean K. Gibson, Mark D. Graybill assignee Intersecting Concepts, Inc. filed 6/18/90 granted 9/17/91 A related patent is Phil Katz, 5,051,745. Terry Ritter says: This covers LZRW compression algorithms. Ross Williams also invented this series of algorithms in 1989, and has logs and listings of this work; he openly published in April 1991. Gibson and Graybill's date of invention is not known. Abstract: A method and apparatus for compressing digital data that is represented as a sequence of characters drawn from an alphabet. An input data block is processed into an output data block composed of sections of variable length. Unlike most prior art methods which emphasize the creation of a dictionary comprised of a tree with nodes or a set of strings, the present invention creates its own pointers from the sequence characters previously processed and emphasizes the highest priority on maximizing the data rate-compression factor product. The use of previously input data acting as the dictionary combined with the use of a hashing algorithm to find candidates for string matches and the absence of a traditional string matching table and associated search time allows the compressor to very quickly process the input data block. Therefore, the result is a high data rate-compression factor product achieved due to the absence of any string storage table and matches being tested only against one string. Exemplary Claim: 1. A compression method for compressing a stream of input data into a compressed stream of output data based on a minimum number of characters in each input data subblock to be compressed, said compression method comprising the steps of: a. initializing a hash table and initializing an SRC pointer; b. processing input data in the order in which the characters in the data appear and hashing input data subblocks of the minimum compression size selected; c. maintaining a hash table which contains at each entry, an SRC pointer which points to a previous subblock which hashed to this hash table entry, such that the possibility of any string of data previously occurring in the input block may be tested by hashing the current subblock to a hash table entry, obtaining the previous SRC pointer contained in that entry, and comparing the two strings of data; d. if the two strings of data match on at least the size of the subblock, then generating a backwards pointer to the previous occurrence of the same string of data and thereby compressing the second occurrence of the string of data; e. if the two strings of data do not match, then storing the string of data as incompressible data; and f. continuing steps b. through e. until the entire input data has been processed. Jean-loup Gailly says: - The Gibson & Graybill patent 5,049,881 covers the LZRW1 algorithm previously discovered by Ross Williams. (See item 5 of the comp.compression FAQ for the ftp site with all LZRW derivatives). Claims 4 and 12 are very general and could be interpreted as applying to any LZ algorithm using hashing (including all variants of LZ78): 4. A compression method for compressing a stream of input data into a compressed stream of output data based on a minimum number of characters in each input data string to be compressed, said compression method comprising the creation of a hash table, hashing each occurrence of a string of input data and subsequently searching for identical strings of input data and if such an identical string of input data is located whose string size is at least equal to the minimum compression size selected, compressing the second and all subsequent occurrences of such identical string of data, if a string of data is located which does not match to a previously compressed string of data, storing such data as uncompressed data, and for each input strings after each hash is used to find a possible previous match location of the string, the location of the string is stored in the hash table, thereby using the previously processed data to act as a compression dictionary. Claim 12 is identical, with 'method' replaced with 'apparatus'. Since the 'minimal compression size' can be as small as 2, the claim could cover any dictionary technique of the LZ family. However the text of the patent and the other claims make clear that the patent should cover the LZRW1 algorithm only. The following papers, published before the patent was filed, describe applications of hashing to LZ77 compression: Brent, R.P. "A Linear Algorithm for Data Compression", Australian Computer Journal, Vol.19, No.2 (May 1987), p.64. Bell, T. "Longest match string searching for Ziv-Lempel compression" Res. Rept. 6/89, Dept. of Computer Science, Univ. of Canterbury, New Zealand (Feb 89). 5,051,745 String searcher, and compressor using same filed 8/21/90 granted 9/24/91 inventor Phillip W. Katz (author of pkzip) Jean-loup Gailly says: covers the idea of using a sorted hash table to search strings, and data compressors of the LZ77 family using such a hash table, but the claims only apply to sorted hash tables, and when the hash table is substantially smaller than the window size. ABSTRACT: Methods and apparatus for string searching and data compression. In the string search method and apparatus pointers to the string to be searched are indexed via a hashing function and organized according to the hashing values of the string elements pointed to. The hashing function is also run on the string desired to be found, and the resulting hashing value is used to access the index. If the resulting hashing value is not in the index, it is known that the target string does not appear in the string being searched. Otherwise the index is used to determine the pointers which correspond to the target hashing value, these pointers pointing to likely candidates for matching the target string. The pointers are then used to sequentially compare each of the locations in the string being searched to the target string, to determine whether each location contains a match to the target string. In the method and apparatus for compressing a stream of data symbols, a fixed length search window, comprising a predetermined contiguous portion of the symbol stream, is selected as the string to be searched by the string searcher. If a string to be compressed is found in the symbol stream, a code is output designating the location within the search window of the matching string and the length of the matching string. 5,054,086 Binary system for generating sound filed May 16, 1989 inventor Steven L. Witzel assignee RealSound RealSond address is: 4910 Amelia Earhart Drive Salt Lake City, Utah 84116 (801) 359-2900 5,083,262 Language bindings for graphics functions to enable one application program to be used in different processing environments Gregory Aharonian says: Word of warning to anyone wanting to use graphics binding libraries like X, PHIGS, PEX, GKS, etc. 5,136,686 Genetic Programming Algorithm ftp.cc.utexas.edu:pub/genetic-programming/ 5,148,513 Genetic Programming Algorithm ftp.cc.utexas.edu:pub/genetic-programming/ 5,155,484 Fast data compressor with direct lookup table indexing into history buffer FILED: Sep. 13, 1991 GRANTED: Oct. 13, 1992 INVENTOR: Chambers, IV, Lloyd L., Menlo Park, California ASSIGNEE: Salient Software, Inc., Palo Alto, California (02) Creating a split screen with a hotkey. Fritz Henglein (henglein@diku.dk) reports perhaps the earliest software patent, a German patent on stack implementations of programming languages: Bauer, F. and Samelson, K., "Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschine zur Ausuebung des Verfahrens". Deutsche Patentauslegeschrift 1 094 019. Anm. (*) March 30, 1957. Bek. (**) Dec. 1, 1960 (*) filed (**) granted ("announced") Gilbert Hyatt's microprocessor patent filed 12/28/70 granted 8/30/90 Hayes Microcomputer Products Inc.'s patent on a program to switch its modems from transmit mode to receive mode. It won $10 million damages from three infringing manufacturers who'd reverse-engineered via clean-room techniques. The patent is on the use of "+++", sent with a particular timing that was supposed to be unlikely when those characters were just part of the text being transmitted by modem. (That is, sometimes "+++" is just text passed through, and sometimes it's a command sequence.) Any modem that recognizes this command sequence, or uses a similar strategy, is in violation. James A. Woods (jaw@riacs.edu (or ames!jaw)) says: I am investigating, possibly for a case history to be recycled to USENET, the particulars of data compression patents. I am aware of the following patents: IBM's Miller-Wegman LZ variant, those of Telcor and ACT [losing candidates for the British Telecom modem standard], James A. Storer's work on limited lookahead as explicated in his text "Data Compression (methods and theory)", Computer Science Press, 1988, and the various patents pending associated with the Fiala and Greene CACM article of April, 1989 on textual substitution methods. If you have any lore, send it this way. Matt Vea's patent on setting and unsetting a bit in an idle loop to see whether the CPU is working or idle. (Applied for 2/86, received before 10/90.) Nix Thompson says: I believe there is a also a patent owned by GE on the "marching cubes" method of implicit surface rendering. I think Stellar got sued for using it in their AVS scientific visualization system, but I don't know how the suit came out. The method was also invented at Brown University before the patent was filed, but not published. Patent on expanding abbreviations with space character, filed 1984, granted 1988. XyQuest, Inc. was forced to remove this feature from XyWrite; it had been added in June 1987. Emacs has had this feature since the 1970s. Paul Krause says that Systems Research and Applications Program has been threatened over a patent on NLP (Natural Language Parsing); SRA's company attorney says that NLP patents are being granted at the rate of about 200 per year. Dave Goldblatt is looking for prior art (pre- 10/5/81) to defeat a patent on the ring buffer. Specifically, the patent is on the idea of using two circular buffers in commonly addressable memory to queue pointers to messages (also in shared memory) between two processors. One buffer contains messages going in one direction, and the other buffer contains messages going in the other. The allegedly inventive feature is having one of the processors tell the other processor the size of the ring buffers. Terence Kelleher says: Another modem company, Bizcomp, held a patent on a mechanism that allowed use of the same serial data wire for both control characters and data (not transmit vs. receive). The patent was not specific to software. In fact, the Bizcomp mechanism as described in the patent was TTL hardware. The patent was on the use of the line for both data and control codes, and not on the actual mechanism that switched them. While researching, we found a prior patent that described a similar mechanism, issued sometime in the early 60's to Western Union, where they used a control code to switch teletype's interpretation from data to control. In addition, we felt that the use of ESC to prefix control commands for terminals amounted to the same use. Philip Resnik says: [There may be a patent on] a learning-related algorithm known as classifier systems, invented by John Holland of the University of Michigan and described in the books _Induction_ and (I believe) in _Adaptation in Natural and Artificial Systems_. One component of classifier systems is a class of optimization techniques known as genetic algorithms; stories that Holland was/might be patenting classifier systems stirred up a lot of discussion among some people working on genetic algorithms, in mid-1987 or so. Philip Resnik says: Unless I'm mistaken, J. K. Baker of DRAGON Systems (Cambridge, MA) has patented a speech recognition algorithm or algorithms. Adam J Richter says: I read about Farallon's behavior in a old issue of Bay Area _Computer Currents_ about two years ago. The article was a profile of a bunch of different companies. The article talked about Farallon having patents that made it impossible for anyone to build devices that could talk on PhoneNet, and described the patents as being quite dubious. The article also said that nobody was challenging the patents because Farallon was willing to "license the technology" cheaply. Bellcore has applied for a patent on its active message system. Nathaniel Borenstein says: The patent isn't actually on active messaging per se. The patent is on security aspects of active messaging, as embodied in the ATOMICMAIL language. With AMS/Ness, for example, you can send around a program that deletes all the recipients files, and the only safeguard is that the user is first asked "do you trust the user you got this from?" -- as if the mail couldn't just be a forgery anyway! Unlike previous active messaging systems, ATOMICMAIL makes active messaging safe enough to consider using it for real. Xerox's Ethernet patent. Rudy Zalesak says: A patent (pending) for a method of looking up Kanji (Japanese characters) is announced in an ad for a Mac Japanese-to-English dictionary and translation aid called KanjiSama. (SANBI Software Company, 3594 Crowell Ave., Riverside CA 92504, (714) 352-0276). The ad states: "Includes a completely new kanji lookup mode based on the Kanji Alphanumeric Code (Kanc), developed by SANBI Software (Patent Pending)." Traditional lookup methods (also supported) are by stroke count and radical (small parts of a character). The stroke count method is the most common in Western dictionaries. I am not aware of a public standard called Kanc; I don't know whether or not it is an invention of SANBI. The claims of course cannot be clear from an ad, but as stated it seems to be a technique that could be carried out in a dictionary and would certainly not be patentable in that form. Just what aspect of such a technique could be innovative? Presumably the actual lookup must use a standard technique such as hashing, so the novelty must lie in the ascii-to-Kanji correspondence. This arguably is not a software invention, so if my guesses about the patent are correct and the patent is granted, this would represent an extension of software patents into patents on information transformation in general. Pamela Samuelson's article in ACM Comm. on software patents already worried about this possibility. George Battrick says: Document ISO/IEC JTC1/SC24 N756 refers to an IBM patent on "Language Bindings for Graphical Functions ... " as being "issued 1-21-92". Our search in the "Dialog" database for "LANGUAGE()BINDING" has drawn a blank, so perhaps we have the wrong keywords, or got the year wrong, or something. Can anyone provide a proper reference? I'd like to know what exactly is being/has been patented here. The article "Decoding A VCR Controller Code" in the July 1992 Cryptologia mentions that "Gemstar claims copyright and patent protection on the PlusCode numbers and software to create them." Gemstar has pending applications in Japan, Europe, Canada, Brazil, and Australia. Those applications all claim priority from a U.S. patent application number 289,369 filed December 23, 1988. As of 11/92, none of these seem to have been granted yet. Thus, while the U.S. application is secret, anybody who wants to can see the published applications in Japan, Europe, Canada, Brazil, and Australia. - IBM holds a patent on the Q-coder implementation of arithmetic coding. The arithmetic coding option of the JPEG standard requires use of the patented algorithm. No JPEG-compatible method is possible without infringing the patent, because what IBM actually claims rights to is the underlying probability model (the heart of an arithmetic coder). (See the JPEG FAQ for details.) - Bacon has patented (4,612,532) some from of Markov modeling. =========================================================================== Foreign patents: British Patent 2,166,627 This appears to cover pull-down menus Abstract: A computer controlled display system having a display wherein a plurality of command options are displayed along a menu bar and sub-command items corresponding to each option are displayed once said option has been selected, and including a cursor control means for selectively positioning a cursor on said display, comprising: first display means coupled to said computer for generating and displaying said menu bar comprising said plurality of command options; signal generation means coupled to said cursor control means for signalling said computer of an option choice once said cursor is positioned over a first predetermined area on said display corresponding to an option to be selected; said first display means generating and displaying said sub-command items corresponding to said selected option; signal modification means coupled to said signal generation means for latering said signal to said computer once said cursor is positioned over a second predetermined area corresponding to a sub-command item to be selected; whereby an option and a sub-command item is selected and executed by said computer. Carl Oppedahl <0001811496@mcimail.com> says: What's interesting about this is it claims priority from a U.S. Patent application, no. 399,704 filed July 19, 1982. Generally U.S. patent applications are kept secret, but when Apple applied in Great Britain they chose to disclose the existence of the U.S. application. =========================================================================== ARTIFICIAL INTELLIGENCE PATENTS FROM 1989 Titles as they appear in the Patent Office Gazette Gregory Aharonian Source Translation & Optimization ASSOCIATIVE PROCESSING . Set associative memory . Adaptive associative-processing optical computing architectures . Associative memory system with spatial light modulator and feedback for adjustable thresholding and enhancement BRAIN . Non-invasive method and apparatus for modulating brain signals through an external magnetic or electric field to reduce pain . Method and apparatus for translating the EEG into music to induce and control various psychological and physiological states and to control a musical instrument . Electrical connection device . Topographical mapping of brain functionality from neuropsychological test results . Hearing device DECISION SYSTEMS . Method of detecting boundary structures in a video signal . Voice synthesis utilizing multi-level filter excitation . Real-time scheduling system . Fluid distribution to multiple users through distributed intelligence sub-centers . Automated production release system . Expert system for processing errors in a multiplex communications system . Speech recognition system . Automatic classification of images . Document processing system deciding apparatus provided with selection functions . Failing resource manager in a multiplex communication system . Interactive statistical system and method for predicting expert decisions . Decision and implementation system for medical imaging . Automated production dispatch system with feedback control . Image discrimination with continuous tone area thinning EXPERT SYSTEMS . Coalescing changes in pattern-directed, rule-based artificial intelligence production systems . Interactive transector device commercial and military grade . Editor for expert system . Parser for natural language text . Expert system shell for building photofinishing diagnostic systems . Expert system with three classes of rules . Knowledge system with improved request processing . Expert system for processing errors in a multiplex communications system . Failing resource manager in a multiplex communication system . Interactive statistical system and method for predicting expert decisions . Expert vehicle control system . Data-driven, functional expert system shell . Domain independent shell for building a diagnostic expert system . System and method for network configuration FUZZY LOGIC . Powder weighing mixer and method thereof . Fuzzy logic computers and circuits . Method of and apparatus for measuring liquid . Auto-tuning controller using fuzzy reasoning to obtain optimum control parameters . Fuzzy logic semifinished integrated circuit IMAGE ANALYSIS . Digital image analysis system . Full page graphics image display data reduction . Self referencing ambiguity free holography . Method and method and apparatus for control of light intensity for image analysis . Apparatus and method for electronic analysis of test objects . System and method for determining orientation of planes of imaging . Method and apparatus for contextual data enhancement . Vision system for distinguishing touching parts . DC artifact removal in magnetic resonance imaging . Motion analysis tool and method therefor . Method for enhancement of ultrasonic image data INFERENCE . Accompaniment line principal tone determination system . Expert system with three classes of rules . Powder weighing mixer and method thereof . Using infrared imaging to monitor and control welding . Fuzzy logic computers and circuits . Method of and apparatus for measuring liquid . Data-driven, functional expert system shell . Reasoning system for reasoning with uncertainty . Inference system . Method for controlling operation of a blast furnace KNOWLEDGE REPRESENTATION . Automated defect recognition system . Autonomous resource management system with recorded evaluations of system performance with scheduler control including knowledge learning function . Expert system shell for building photofinishing diagnostic systems . Knowledge system with improved request processing . Document filing system with knowledge-base network of concept interconnected by generic, subsumption, and superclass relations . Knowledge-based system having plural processors . Method for controlling operation of a blast furnace LANGUAGE . Data base management system extending structure . Stroke typing system . Electronic dictionary . Parser for natural language text . Symbolic language data processing system . Speech synchronized animation . Remote language translating device . Method of operating a computer system to provide customed I/O information including language translation . Collocational grammar system . System of encoding chinese characters according to their patterns and accompanying keyboard for electronic computer . Multiple language telephone answering machine . Interactive speech recognition apparatus . Method of using a created international language as an intermediate pathway in translation between two national languages . Translation system allowing user designation of postpositional words . Shorthand notation and transcribing method LEARNING . N-dimensional coulomb neural network which provides for cumulative learning of internal representations . Optimum fast textural feature extractor . Air/fuel mixture ratio control system for internal combustion engine with feature of learning correction coefficient including altitude dependent factor . Autonomous resource management system with recorded evaluations of system performance with scheduler control including knowledge learning function . Character reading method . Neural network system for adaptive sensory-motor coordination of multijoint robots for single postures . Electronic learning control apparatus for internal combustion engine . Electronically-controlled, adaptive automatic transmission system . Neuromorphic learning networks . Electronic air-fuel ratio control apparatus in internal combustion engine . Air-fuel ratio control system for an automotive engine . Fuel injection system of an internal combustion engine . Method of controlling fuel in an engine . Engine idling speed controlling system NEURAL NETWORKS . N-dimensional coulomb neural network which provides for cumulative learning of internal representations . Solitary wave circuit for neural network emulation . Spike transmission for neural networks . Parallel neural network for a full binary adder . Digital adaptive receiver employing maximum-likelihood sequence estimation with neural networks . Neural network system for adaptive sensory-motor coordination of multijoint robots for single postures . Devices for neural signal transmission . Neural network model in pattern recognition using probabilistic contextual information . Neural networks . Programmable ferroelectric polymer neural network . Switched neural networks . Neural network with dynamic refresh capability PATTERN RECOGNITION . Radar detection of hazardous small scale weather disturbances . Method and apparatus for tracking, mapping and recognition of spatial patterns . Pattern recognition apparatus using oscillating memory circuits . Character reading method . System for continuous speech recognition through transition networks . Communications network routing and management system . Speech recognition system which avoids ambiguity when matching frequency spectra by employing an additional verbal feature . Speech recognition system . Pattern recognizing device . Optical character reader with skew recognition . Neural network model in pattern recognition using probabilistic contextual information . Error detection circuit . Apparatus and method for recognizing speech . Pattern recognition method . Voice recognizing telephone . Speech recognition arrangement with preselection . Image recognition audience measurement system and method ROBOTICS . Rotary to linear motion robot arm . Automated phasing device for phasing wheel attachment bolts and methods utilizing same . Electric control apparatus for industrial robot . Nuclear fuel pellet collating system and method . Method for positioning a robotic work system . Robot vision cooling/protection system . Industrial playback robot having a teaching mode . Robot for tire building machine and method of operation . Industrial robot . Velocity control apparatus . Deburring robot . Digital robot control having an improved pulse width modulator . Deadbeat control of disk drive actuator . Method for positioning a tool of a multi-joint robot . Parallel gripper . Apparatus for mastering a robot . Industrial laser robot system . Welding system for hollow thin walled members . Distributed proximity sensor system having embedded light emitters and detectors . Movable accomodation or container in which is arranged apparatus for automatic milking of an animal . Robotic product server and system . Robotic system . Fluid distribution to multiple users through distributed intelligence sub-centers . Object collision detection method and apparatus . Control system for an industrial robot . Apparatus and method for mounting window glasses on automobile . Polishing robot and polishing method using the same . Failsafe brake for a multi-wheel vehicle with motor controlled steering . Industrial robot control device . Portable robot with automatic set-up . Method for controlling operation of industrial robot . Visual navigation system for a mobile robot having capabilities of regenerating of hidden images . Variable compliance device . Robot positioner and seal arrangement for a closed chamber . Melt indexer system with robot operation . Automatic tool changer for workpiece processing machines . Locus interpolation device . Neural network system for adaptive sensory-motor coordination of multijoint robots for single postures . Paint-coating brush . Vehicle automatic fueling assembly . Apparatus for inspecting wafers . Robot system for forming a structural component of a preimpreganted fiber reinforced tape . Three-dimensional measuring robot . Robot arm with an assembly flange for tools . Wafer centration device . Stepping motor control . Ultrasonic scanning system . Dextrous spherical robot wrist . Robot gripper passively locked . Method for determining points in space guiding the movement of a robot arm . Three-dimensional position sensor and three-dimensional position setting system . Method and apparatus for assembling an instrument panel in an automobile . Apparatus for dealing with cables in industrial robots . Method for assembling associated components . Novel automatic tool changer . Robot apparatus . Position and velocity feedback system for a digital robot control . Circuit location sensor for component placement apparatus . Vision system for distinguishing touching parts . Manipulator with rod mechanism . Digital robot control providing pulse width modulation for a brushless DC drive . Magnetically levitated fine motion robot wrist with programmable compliance . Locomotion-command method for mobile robots . Apparatus for installing bearings on engine components . Support for a gripper for an industrial robot . Robot control apparatus for controlling a manipulator through a robot arm having a plurality of axes . Device for forecasting breakage cables in an industrial robot . Method and apparatus for reconstructing three-dimensional surfaces from two-dimensional images . Drill inspection and sorting method and apparatus . Method and apparatus for applying sealing material to automotive vehicle bodies . Laser beam robot for cutting and welding . Method and apparatus for controlling a welding robot forming a nonuniform weld satisfying predetermined criteria related to an interspace between elements being welded . Water jet trim head simulator . Coupling method and apparatus for use with robotic devices and the like . Communication interface for multi-microprocessor servo control in a multi-axis robot control system . Industrial robot device including a robot and a processing machine . Multiprocessor position/velocity servo control for multiaxis digital robot control system . Apparatus for cleaning a textile machine comprising a plurality of operating positions . Robot articulation joint . Gripper head . Industrial robot adjustment device . Gas laser device . Equipment for automatic personalizing of credit cards . Drilling derrick device . Support for a gripper . Multiprocessor torque servo control for multiaxis digital robot control system . Method for coordinated control of motion devices . Multiaxis robot control having improved energy monitoring system for protecting robots against joint motor overload . Display unit for controlling pattern printing . Automated cartridge system . Lifting hand for a punch press tool changer . Passive actuator to maintain a constant normal cutting force during robotic deburring . Clutch for robot or like . Offset mechanical gripper . Method and apparatus for the injection molding of circuit boards . Resistance spot welding gun and transformer assembly . Sonic positioning device . Arm structure for an industrial robot . Overload protector for a robot arm . Method and apparatus for adaptive force and position control of manipulators . Robotic hand with shape determination capabilities . Robotic workcell control system having improved input/output interfacing for better workcell operation . Robotic vision system . Robotic ultrasonic cleaning and spraying device for ships' hulls . Riveting process and apparatus . Method and system for loading wafers . Robotic accessible wafer shipper assembly . Gripper device . Dual port alignment assembly station for attaching components to circuit boards . Robotic airbrush apparatus . Robotic crawling device . Mechanical fingers for dexterity and grasping . Wrist mechanism for robotic manipulations . Robotic pipe crawling device . Double-ended termination and routing arrangement for an automated wiring system . Water cooled semi-automatic welding gun . Article vending machine employing unique robotic arm and the robotic arms employed therein . Robotic gripper head . Gripping device . Sealant flow control for robotic applications RULE BASED SYSTEMS . Speech synthesis system by rule using phonemes as systhesis units . System and method for preprocessing and transmitting echo waveform information . Coalescing changes in pattern-directed, rule-based artificial intelligence production systems . Diagnostic configuration management for a data processing system . Computer speech system . Using infrared imaging to monitor and control welding . Fiber optic solder joint inspection system . Document processing system deciding apparatus provided with selection functions . Method of starting thermal power plant . Automated production dispatch system with feedback control . Domain independent shell for building a diagnostic expert system . Processing method and processor for machine translation . Auto-tuning controller using fuzzy reasoning to obtain optimum control parameters . Speech synthesis system of rule-synthesis type . Reasoning system for reasoning with uncertainty SPEECH RECOGNITION AND GENERATION . Digital speech interpolation system and speech detector . Noise compensation in speech recognition apparatus . Industrial playback robot having a teaching mode in which teaching data are given by speech . Method and apparatus of rejecting false hypotheses in automatic speech recognizer systems . Speech synthesis system by rule using phonemes as systhesis units . Digital speech coder having improved vector excitation source . Automatic validation of telephone account numbers . Speech coding transmission equipment . Voice synthesis utilizing multi-level filter excitation . Computer speech system . System for continuous speech recognition through transition networks . Speech synchronized animation . Processing of acoustic waveforms . Apparatus for speech recognition . Synthesized speech-facilitated product . Speech recognition system which avoids ambiguity when matching frequency spectra by employing an additional verbal feature . Speech recognition system . Method for extracting formant frequencies . Synthesizing word baseforms used in speech recognition . Speech recognition system . Parallel processing pitch detector . Speech recognition system . Speech recognition system with an accurate recognition function . ASCII LPC-10 conversion . Method for entering digit sequences by voice command . Vector excitation speech or audio coder for transmission or storage . Sub-band speech analyzing and synthesizing device . Apparatus and method for recognizing speech . Apparatus for extracting features from a speech signal . Interactive speech recognition apparatus . Method for performing time-scale modification of speech information or speech signals . Method of recognizing a control command in a system, and interactive system for carrying out the method . Speech synthesis system of rule-synthesis type . Binary autocorrelation processor . Speech recognition arrangement with preselection . Method of evaluating speech THEOREM PROVING . Digital circuit design verification VISION . Robot vision cooling/protection system . Robotic vision system . Computer vision system with improved object orientation technique . Machine vision system for position sensing . Method and apparatus for automatically inspecting and classifying different objects . Method and apparatus for the perception of computer-generated imagery . Method and apparatus for differentiating a planar textured surface from a surrounding background . Vision system for distinguishing touching parts . Workstation for a vision-impaired user with interface for selectively feeding display data from a bus or a connected computer . Dual port alignment assembly station for attaching components to circuit boards . Machine vision process and apparatus for reading a plurality of separated figures =========================================================================== 5,229,768 dated Jul 20, 1993. The assignee is Traveling Software, and the "inventor" is Kasman E. Thomas. It covers a compression-via-hashing algorithm which was actually developed by Raita and Teuhola of the University of Turku, Finland. Invalid: ??? The "prior art" is that R&T published this very algorithm in the Proc. of the ACM, SIGIR 1987, in an article entitled, "Predictive Text Compression by Hashing". 5,297,284 PATENT NUMBER = 5297284 TITLE = Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language ISSUE DATE = 03-22-94 INVENTOR = Jones; David T. INVENTOR = O'Riordan; Martin J. INVENTOR = Zbikowski; Mark J. ASSIGNEE = Microsoft Corporation CLASS=395/700 TYPE= 395 CROSS REFERENCE CLASS=364/DIG.1 364/255.1 364/255.8 364/261.4 364/DIG.2 364/938.3 364/955 364/955.6 ABSTRACT : A method for a computer compiler for an object-oriented programming language for implementing virtual functions and virtual base classes is provided. In preferred embodiments of the present invention, the data structure layout of an object includes a virtual function table pointer, a virtual base table pointer, occurrences of each non-virtual base class, the data members of the class, and occurrences of each virtual base class. If a class introduces a virtual function member and the class has a non-virtual base class with a virtual function table pointer, then the class shares the virtual function table pointer of the non-virtual base class that is first visited in a depth-first, left-to-right traversal of the inheritance tree. In preferred embodiments of the present invention, each instance of a given class shares a set of virtual function tables and virtual base tables for that class. In preferred embodiments, adjusters are used when a function member in a derived class overrides a function member that is defined in more than one base class, and when a derived class has a base class that overrides a function member in a virtual base class of that class and the derived class itself does not override the function member. Paper copies of the following patents are available in NE43-427. 4054951 4197590 4612532 4809350 4935877 5136686 5148513 5150473 5159687 5179378 Full info on above patents to be added soon...