Newsgroups: ba.general,misc.legal.computing,comp.software-eng Path: gmd.de!dearn!frmop11.cnusc.fr!univ-lyon1.fr!vishnu.jussieu.fr! zaphod.crihan.fr!pipex!uunet!world!srctran From: srct...@world.std.com (Gregory Aharonian) Subject: Bay Area software patents by companies and law firms Message-ID: <CCw4Mz.Jwn@world.std.com> Organization: The World Public Access UNIX, Brookline, MA Date: Sun, 5 Sep 1993 17:01:47 GMT Lines: 562 BAY AREA SOFTWARE PATENT ACTIVITIES Greg Aharonian Source Translation & Optimization P.O. Box 404 Belmont, MA 02178 617-489-3727 srct...@world.std.com This file lists software patents awarded to Bay Area companies, organized by the law firm that aided the company in patent prosecution. The following Bay Area patent law firms were involved with more than a few software patents over the last ten years, and are included below. This list should not be taken to be complete, representative or meaningful. ARNOLD, WHITE & DURKEE BLAKELY SOKOLOFF TAYLOR & ZAFMAN BURNS, DOANE, SWECKER & MATHIS FENWICK & WEST FLEHR, HOHBACH, TEST, ALBRITTON & HERBERT FLIESLER, DUBB, MEYER & LOVEJOY LIMBACH & LIMBACH SKJERVEN, MORRILL, MACPHERSON, FRANKLIN & FRIEL TOWNSEND AND TOWNSEND KHOURIE AND CREW ============================================================================== FIRM: ARNOLD, WHITE & DURKEE Architecture for composing computational modules uniformly across diverse developmental frameworks Cimflex Teknowledge Corporation, Palo Alto Knowledge based tutor Teknowledge, Inc., Palo Alto Basic expert system tool Tecknowledge, Inc., Palo Alto Knowledge based processor for application programs using conventional data processing capabilities Teknowledge, Inc., Palo Alto FIRM: BLAKELY SOKOLOFF TAYLOR & ZAFMAN Method for incremental rename propagation between hierarchical file name space Sun Microsystems, Inc., Mountain View Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor Maxtor Corporation, San Jose System for selectively aborting operation or waiting to load required data based upon user response to non-availability of network load device Microsystems, Inc., Mountain View Method for selectively transferring data instructions to a cache memory Sun Microsystems, Inc., Mountain View Apparatus and method of monitoring the status of a local area network Synoptics Communications, Inc., Santa Clara Apparatus and method for a space saving translation lookaside buffer for content addressable memory Sun Microsystems, Inc., Mountain View Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants Action Technologies, Inc., Alameda Synchronized journaling system Sun Microsystems, Inc., Mountain View Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches Sun Microsystems, Inc., Mountain View Method and apparatus for structuring and managing human communications by explicitly defining the types of communications permitted between participants Action Technologies, Inc., Alameda Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline Echelon Corporation, Palo Alto Method and apparatus for cost-based heuristic instruction scheduling Sun Microsystems, Inc., Mountain View Method and apparatus for the naming of database component files to avoid duplication of files Sun Microsystems, Inc., Mountain View Method for apparatus for implementing a class hierarchy of objects in a hierarchical file system Sun Microsystems, Inc., Mountain View Method and apparatus for current window cache with switchable address and out cache registers Sun Microsystems, Inc., Mountain View Transparent system interrupt Intel Corporation, Santa Clara Apparatus for determining relative position of a cache memory in a cache memory array Intel Corporation, Santa Clara Ring interconnect system architecture Apple Computer, Inc., Cupertino User extensible testing system Sun Microsystems, Inc., Mountain View Method and apparatus for providing assistance with respect to the development, selection and evaluation of ideas and concepts Fisher Idea Systems, Irvine Local area network device startup process Apple Computer, Inc., Cupertino Method for loading an operating system through a network Sun Microsystems, Inc., Mountain View Apparatus and method for licensing software on a network of computers Sun Microsystems, Inc., Mountain View Method and apparatus for searching database component files to retrieve information from modified files Sun Microsystems, Inc., Mountain View Method and apparatus for the context switching of devices Sun Microsystems, Inc., Mountain View MIDI to RS 232 interface Sun Microsystems, Inc., Mountain View User extensible, language sensitive database system Sun Microsystems, Inc., Mountain View Input/output section for an intelligent cell which provides sensing, bidirectional communications and control Echelon Corporation, Palo Alto Locking mechanism for the prevention of race conditions Sun Microsystems, Inc., Mountain View Method and apparatus for benchmarking the working set of window-based computer systems Sun Microsystems, Inc., Mountain View Apparatus and method for improved caching in a computer system Apple Computer, Inc., Cupertino Method and apparatus for the synchronization of devices Sun Microsystems, Inc., Mountain View Method and apparatus for the flow control of devices Sun Microsystems, Inc., Mountain View Hierarchical file system to provide cataloging and retrieval of data Apple Computer, Inc., Cupertino Computer system for automatically reconfigurating memory space to avoid overlaps of memory reserved for expansion slots Apple Computer, Inc., Cupertino Memory management unit with overlapping control for accessing main memory of a digital computer Apple Computer, Inc., Cupertino Method and apparatus for determining available memory size Apple Computer, Inc., Cupertino Multiple processor accelerator for logic simulation Daisy Systems Corporation, Mountain View Digital computer for implementing event driven simulation algorithm Daisy Systems Corporation, Mountain View Memory access system Sun Microsystems, Inc., Mountain View Higher order language-directed computer Rational, Santa Clara Digital computer for implementing event driven simulation algorithm Daisy Systems Corporation, Mountain View Set association memory system Rational, Mountain View Compiler for evaluating Boolean expressions Pertron Controls, Corporation, Chatsworth Local area network with carrier sense collision avoidance Apple Computer, Inc., Cupertino FIRM: BURNS, DOANE, SWECKER & MATHIS Automated method of inserting pipeline stages in a data path element to achieve a specified operating frequency VLSI Technology, Inc., San Jose Integrated circuit placement method using netlist and predetermined ordering constraints to produce a human readable integrated circuit schematic diagram VLSI Technology, Inc., San Jose FIRM: FENWICK & WEST Apparatus and method for serial port interfacing Mediasonic Inc., Fremont Target recognition using string-to-string matching Ford Aerospace & Communications Corporation, Newport Beach Apparatus and method for reconstructing data Varian Associates, Inc., Palo Alto, CA Tomographic apparatus and method for reconstructing planar slices from non-absorbed and non-scattered radiation Varian Associates, Inc., Palo Alto, CA Removal of spectral artifacts and utilization of spectral effects in computerized tomography Varian Associates, Inc., Palo Alto, CA Bus interface synchronization control system Acer Incorporated, Taipei, Taiwan Bus structure and method for compiling pixel data with priorities Radius Inc., San Jose Method for encoding color images Radius Inc., San Jose Expandable printer buffer system Acer Incorporated, Hsin Chu, Taiwan System and method for making staff schedules as a function of available resources as well as employee skill level, availability and priority Mrs. Fields, Inc., Park City, UT Image data accelerated processing apparatus and method Radius Inc., San Jose Systolic array image processing system HNC, Inc., San Diego Method and means for managing citations in documents Commsoft, Inc., Windsor Method for encrypting transmitted data using a unique key Tandem Computers Incorporated, San Jose Distributed multiprocess transaction processing system and method Tolerant Systems, Inc., San Jose Display system and method for constructing and editing a hierarchical arrangement of information Banner Blue Software Incorporated, Newark File access security method and means Atalla Corporation, San Jose Method and means for securing the distribution of encoding keys Atalla Technovations, Sunnyvale FIRM: FLEHR, HOHBACH, TEST, ALBRITTON & HERBERT Expanded cache memory system Vitelic Corporation, San Jose Multimedia interface and method for computer system Electric Power Research Institute, Palo Alto Software development system and method using expanding outline interface Gupta Technologies, Inc., Menlo Park Relational database management system and method for storing, retrieving and modifying directed graph data structures Xidak, Inc., Palo Alto Method for operating a real-time expert system in a graphical programming environment Integrated Systems, Inc., Santa Clara Event-controlled LCC stimulation VLSI Technology, Inc., San Jose Method for specifying and controlling the invocation of a computer program EDA Systems, Inc., Santa Clara Method for optimizing utilization of a cache memory VLSI Technology, Inc., San Jose System for controlling instrument using a levels data structure and concurrently running compiler task and operator task Finnigan Corporation, San Jose Virtual bit map processor Stanford University Multimedia interface and method for computer system Electric Power Research Institute, Palo Alto Process distribution and sharing system for multiple processor computer system Counterpoint Computers, Inc., San Jose Methods and apparatus for controlling access to information processed a multi-user-accessible digital computer Enigma Logic, Inc., Concord Adaptive data compression system Adaptive Computer Technologies, Santa Clara Process control interface system for designer and operator Prometrix Corporation, Santa Clara Interactive software training system Interactive Research Corporation, Santa Clara FIRM: FLIESLER, DUBB, MEYER & LOVEJOY Apparatus and method for controlling the transfer of digital information between service processors memories in a computer Amdahl Corporation, Sunnyvale Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line Amdahl Corporation, Sunnyvale Intelligent system for processing and storing articles Asyst Technologies, Inc., Milpitas Parallel I/O network file server architecture Auspex Systems, Inc., Santa Clara Data processing system with logical processing facility supporting a plurality of system control programs for production operation Amdahl Corporation, Sunnyvale Intelligent waxer carrier Asyst Technologies, Inc., Milpitas Measuring utilization of processor shared by multiple system control programs Amdahl Corporation, Sunnyvale Method and apparatus for updating system software for a plurality of data processing units in a communication network Network Equipment Technologies, Inc., Redwood City Cross-path optimization in multi-task processing Wiltron Company, Morgan Hill Customization of a system control program in response to initialization of a computer system Amdahl Corporation, Sunnyvale Processing systems with intelligent article tracking Asyst Technologies, Inc., Milpitas Error recovery scheme for destaging cache data in a multi-memory system Amdahl Corporation, Sunnyvale Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system Amdahl Corporation, Sunnyvale Multilevel bootstrap apparatus Scientific Micro Systems, Inc., Mountain View FIRM: LIMBACH & LIMBACH Kiosk apparatus and method for point of preview and for compilation of market data Intouch Group, Inc., San Francisco Method of generating and accessing a database independent of its structure and syntax Teknekron Communications Systems, Inc., Berkeley Multi-channel peripheral interface using selectively flaggable channel register sets for concurrent write in response to any selected channel register write instruction National Semiconductor Corporation, Santa Clara Method of programming a task, having a plurality of processes, created by a plurality of different programmers, for operation by a computer Teknekron Communications Systems, Inc., Berkeley Memory management in packet data mode systems National Semiconductor Corporation, Santa Clara Distributed routing unit for fully-automated flexible manufacturing system National Semiconductor Corporation, Santa Clara Transaction system with off-line risk assessment Visa International Service Association, San Mateo Portable financial transaction card capable of authorizing a transaction in foreign currencies VISA International Service Association, San Mateo Transaction system with off-line risk assessment Visa International Service Association, San Mateo FIRM: SKJERVEN, MORRILL, MACPHERSON, FRANKLIN & FRIEL Method and apparatus for data transfer between source and destination modules Alantec, Inc., Fremont Method for controlling execution of host computer application programs through a second computer by establishing relevant parameters having variable time of occurrence and context Mitem Corporation, San Jose Computer-based method and system for product development Advanced Micro Devices, Inc., Sunnyvale Sound editing system using visually displayed control line for altering specified characteristic of adjacent segment of stored waveform Macromedia, Inc., San Francisco Programmable expandable controller with flexible I/O Advanced Micro Devices, Inc., Sunnyvale Sound editing system using control line for altering specified characteristic of adjacent segment of the stored waveform Macromedia, Inc., San Francisco Application address display window mapper for a sharable MS-DOS processor Athenix Corporation, Sunnyvale Expert control system for real time management of automated factory equipment DEL Partners L.P., Palo Alto Method for increasing effective addresable data processing system memory space Cirrus Logic, Inc., Milpitas Compensating time delay in filtering signals of multi-dimensional reconfigurable array processors LSI Logic Corporation, Milpitas FIRM: TOWNSEND AND TOWNSEND KHOURIE AND CREW Translation lookaside buffer shutdown scheme Silicon Graphics, Inc., Mountain View Two-level translation look-aside buffer using partial addresses for enhanced speed Silicon Graphics, Inc., Mountin View Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags Nexgen Microsystems, San Jose Resource management in a multiple resource system Micro Technology, Inc., Sunnyvale Apparatus and method for controlling data flow between a computer and memory devices Micro Technology, Inc., Sunnyvale Method and apparatus for automatic categorization of applicants from resumes Resumix, Inc., Santa Clara System for modifying relocatable object code files to monitor accesses to dynamically allocated memory Pure Software Inc., Sunnyvale Buffering system for dynamically providing data to multiple storage elements Micro Technology, Inc., Sunnyvale Queue system with uninterrupted transfer of data through intermediate locations to selected queue location Tandem Computers Incorporated, Cupertino Distributed text editing system with remote terminal transmits successive audit messages each identifying individual editing operation Tandem Computers Incorporated, Cupertino Shipment system including processing of document images Teknekron Transportation Systems, Berkeley Method and apparatus for computer understanding and manipulation of minimally formatted text documents Resumix, Inc., Santa Clara Data storage format for addressable or sequential memory media Dantz Development Corporation, Berkeley Failure-tolerant mass storage system SF2 Corporation, Sunnyvale System for cache space allocation using selective addressing Tandem Computers Incorporated, Cupertino Solid state disk drive emulation GRiD Systems Corporation, Fremont Geometric inference engine Ashlar, Inc., Sunnyvale Method for prioritizing data in financial information system Pillar Corporation, Foster City Computer system for minimizing body dysfunctions induced by jet travel or shift work Kinetic Software, Inc., Woodside Electronic book educational publishing method using buried reference materials and alternate learning levels Learning Insights, Ltd., San Jose Knowledge engineering tool Tesseract Corporation, San Francisco Automated investment fund accounting system Tesseract Corporation, San Francisco Method for integrating a knowledge-based system with an arbitrary database system IntelliCorp, Inc., Mountain View Method for representing a directed acyclic graph of worlds using an assumption-based truth maintenance system IntelliCorp, Inc., Mountain View Version management tool Tandem Computers Incorporated, Cupertino System for measuring program execution by replacing an executable instruction with interrupt causing instruction Tandem Computers Incorporated, Cupertino Data-driven, functional expert system shell Syntelligence, Sunnyvale State machine checker Tandem Computers Incorporated, Cupertino Page mapping system Elxsi, San Jose Method for multiprocessor communications Tandem Computers Incorporated, Cupertino Method and apparatus for building knowledge-based systems Intellicorp Corporation, Mountain View -- ************************************************************************** Greg Aharonian srct...@world.std.com Source Translation & Optimization 617-489-3727 P.O. Box 404, Belmont, MA 02178
Path: gmd.de!dearn!frmop11.cnusc.fr!univ-lyon1.fr!ghost.dsi.unimi.it!batcomputer! caen!spool.mu.edu!darwin.sura.net!udel!news.intercon.com!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Date: 5 Sep 1993 21:24:43 -0400 Organization: PANIX Public Access Internet and Unix, NYC Lines: 88 Message-ID: <26e3gr$ii0@panix.com> References: <CCw4Mz.Jwn@world.std.com> NNTP-Posting-Host: panix.com In <CCw4Mz....@world.std.com> srct...@world.std.com (Gregory Aharonian) writes: > BAY AREA SOFTWARE PATENT ACTIVITIES > Greg Aharonian > Source Translation & Optimization > P.O. Box 404 > Belmont, MA 02178 > 617-489-3727 > srct...@world.std.com > This file lists software patents awarded to Bay Area companies, organized >by the law firm that aided the company in patent prosecution. The following >Bay Area patent law firms were involved with more than a few software patents >over the last ten years, and are included below. This list should not be >taken to be complete, representative or meaningful. > ARNOLD, WHITE & DURKEE > BLAKELY SOKOLOFF TAYLOR & ZAFMAN > BURNS, DOANE, SWECKER & MATHIS > FENWICK & WEST > FLEHR, HOHBACH, TEST, ALBRITTON & HERBERT > FLIESLER, DUBB, MEYER & LOVEJOY > LIMBACH & LIMBACH > SKJERVEN, MORRILL, MACPHERSON, FRANKLIN & FRIEL > TOWNSEND AND TOWNSEND KHOURIE AND CREW This is a meaningful list, despite the bashfulness of the poster. For the would-be patent applicant who wants to know which firms are active in the area this would be helpful. There are several things to think about, if you are a software inventor, and when the poster said the list should not be taken to be complete, representative or meaningful, he may have meant some or all or none of these things: One has to worry about conflicts. If one's invention is in software area A (neural net cell axon designs, say) one would not want to be represented by a patent law firm that already represents someone else as to their things in area A. One has to worry about the particular individual patent lawyer who is good at the type of patent one needs. If you know only that firm X has done patents in your general area, you have not done enough home work. Call up the clients of that firm, and ask who is smart at that firm in your area. Then make sure you get that particular lawyer on your file, rather than being shunted off to some other lawyer who is not the one you want. Now a few comments on the "most patents in a particular area" list. Again, I am sure the poster's disclaimer should be kept in mind. Some clients file first in foreign countries (perhaps that's where they are located) and only later in the US. The US patent firm that does that work did not write the patent application, but worked from an application written elsewhere. So if all you know is a firm has filed lots of applications in your area, you would want to check further to see if the firm was merely US-filing applications written elsewhere. Assuming you are looking for a firm that has written lots of applications in your area. It is incredibly difficult for a company to find a good patent lawyer in their area. Thus it is not surprising if some companies go simply to patent firms they have heard of before, or to patent firms that have prosecuted lots of patents. That could contribute in some small way to the above listings. It's a bit like the "halo effect" that is assumed to go on in homes that are filling out Nielson diaries that are used to find out how many households are watching each show. People get sheepish if they forget for a few days to write down what they are watching, then go back and fill in the most popular shows out of laziness. A strategy I recommend for use in picking a patent firm: put your technical types in the same room with the candidate patent lawyer. Let them tell you which candidate is the most on-the-ball. And ask to see sample patents *written by that person*. And call up the companies listed in those patents to see what they think. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Newsgroups: ba.general,misc.legal.computing,comp.software-eng Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!europa.eng.gtefsd.com! uunet!elroy.jpl.nasa.gov!decwrl!netcomsv!netcom.com!nagle From: na...@netcom.com (John Nagle) Subject: Re: Bay Area software patents by companies and law firms Message-ID: <nagleCCyyLr.Iy5@netcom.com> Organization: NETCOM On-line Communication Services (408 241-9760 guest) References: <CCw4Mz.Jwn@world.std.com> <26e3gr$ii0@panix.com> Date: Tue, 7 Sep 1993 05:44:15 GMT Lines: 9 In <CCw4Mz....@world.std.com> srct...@world.std.com (Gregory Aharonian) writes: > This file lists software patents awarded to Bay Area companies, organized >by the law firm that aided the company in patent prosecution. He missed me. #4,740,904, Nagle, "Line Following System and Process". John Nagle
Path: gmd.de!newsserver.jvnc.net!udel!news.intercon.com!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Date: 7 Sep 1993 12:17:15 -0400 Organization: PANIX Public Access Internet and Unix, NYC Lines: 38 Message-ID: <26ic6b$p55@panix.com> References: <CCw4Mz.Jwn@world.std.com> <26e3gr$ii0@panix.com> <nagleCCyyLr.Iy5@netcom.com> NNTP-Posting-Host: panix.com In <nagleCCyyLr....@netcom.com> na...@netcom.com (John Nagle) writes: >In <CCw4Mz....@world.std.com> srct...@world.std.com (Gregory Aharonian) writes: >> This file lists software patents awarded to Bay Area companies, organized >>by the law firm that aided the company in patent prosecution. > He missed me. > #4,740,904, Nagle, "Line Following System and Process". > John Nagle Your patent, according to Dialog file 653, lists an "attorney, agent or firm" of Michael J. Hughes. I believe Mr. Aharonian's listing was ranked according to the most prolific "attorneys, agents or firms" and that Mr. Hughes had handled fewer patents than the firms that topped Mr. Aharonian's list. This should not be surprising. Some patent firms have twenty or more lawyers, and generate one or two patents a week for an annual total in the hundreds. That would move them to the top of Mr. Aharonian's ranking. They typically list the firm name, not the individual attorneys, on the front page of the patent, so the entire firm's output comes out in one line in Mr. Aharonian's ranking. My firm, with two attorneys, would never show up near the top in a ranking such as Mr. Aharonian's. I don't mean by this to criticize Mr. Aharonian's listing. Only to mention factors that the reader might take into account when interpreting it. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Newsgroups: ba.general,misc.legal.computing,comp.software-eng Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!math.ohio-state.edu! cs.utexas.edu!uunet!chronos.synopsys.com!news.synopsys.com!jbuck From: jb...@synopsys.com (Joe Buck) Subject: Re: Bay Area software patents by companies and law firms Message-ID: <1993Sep7.174704.18811@Synopsys.Com> Keywords: n Sender: use...@Synopsys.Com Organization: Synopsys, Inc. References: <CCw4Mz.Jwn@world.std.com> Date: Tue, 7 Sep 1993 17:47:04 GMT Lines: 13 srct...@world.std.com (Gregory Aharonian) writes: > This file lists software patents awarded to Bay Area companies, organized >by the law firm that aided the company in patent prosecution. Many of the patents on the list do not appear to be software patents at all (although many clearly are). Quite a few of them, at least from their titles, appear to refer to things that are implemented entirely in hardware (having to do with organization of caches, translation lookaside buffers, floating point execution units and pipelines, etc). This list is a useful resource, but needs some cleaning up. -- -- Joe Buck jb...@synopsys.com Posting from but not speaking for Synopsys, Inc
Path: gmd.de!rrz.uni-koeln.de!unidui!math.fu-berlin.de!xlink.net! howland.reston.ans.net!usc!rutgers!cmcl2!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Keywords: n Message-ID: <26iorc$m8f@panix.com> Date: 7 Sep 93 19:53:16 GMT References: <CCw4Mz.Jwn@world.std.com> <1993Sep7.174704.18811@Synopsys.Com> Organization: PANIX Public Access Internet and Unix, NYC Lines: 41 NNTP-Posting-Host: panix.com In <1993Sep7.174704.18...@Synopsys.Com> jb...@synopsys.com (Joe Buck) writes: >srct...@world.std.com (Gregory Aharonian) writes: >> This file lists software patents awarded to Bay Area companies, organized >>by the law firm that aided the company in patent prosecution. >Many of the patents on the list do not appear to be software patents at >all (although many clearly are). Quite a few of them, at least from >their titles, appear to refer to things that are implemented entirely >in hardware (having to do with organization of caches, translation >lookaside buffers, floating point execution units and pipelines, etc). >This list is a useful resource, but needs some cleaning up. This goes back, I suppose, to the neverending semantic question "what is a software patent". Some readers may recall a rather heated thread on comp.patents two years ago about this. Part of the problem is, software is by definition not patentable. Therefore, on some definitions a software patent is an oxymoron -- they just don't exist. But the League for Programming Freedom, to name one interested party, has a definition for software patent such that some software patents do exist. And, in their view, should not have been granted. Poor stupid me, though, I have read and reread their postings and cannot discern what exactly would be the rule the Patent Office would use to decide whether or not to grant a patent, if it were to choose not to grant the patents LPF says should not be granted. One definition I find helpful is, a patent that claims an invention which, to practice, requires only off-the-shelf hardware plus software. On that definition a hardware-resident invention, such as an improved floating point execution unit, would not be a software patent. I suspect this means I agree with the poster. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Path: gmd.de!xlink.net!howland.reston.ans.net!agate!ucbvax!silverton.berkeley.edu!djb From: d...@silverton.berkeley.edu (D. J. Bernstein) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Message-ID: <8019.Sep722.14.0493@silverton.berkeley.edu> Date: 7 Sep 93 22:14:04 GMT References: <CCw4Mz.Jwn@world.std.com> <1993Sep7.174704.18811@Synopsys.Com> <26iorc$m8f@panix.com> Organization: IR Lines: 29 In article <26iorc$...@panix.com> opped...@panix.com (Carl Oppedahl) writes: > Part of the problem is, software is by definition not patentable. Carl, did you mean to say ``a mathematical algorithm'' rather than ``software''? The phrase ``mathematical algorithm'' is a legal term with a precise definition (to wit: ``algorithm for the solution of a mathematical problem'') and a set of doctrines which explain that a mathematical algorithm per se is not patentable subject matter. The phrase ``software'' has not been given any such precise definition, and to my knowledge no court has ever stated that software is not patentable. > Poor > stupid me, though, I have read and reread their postings and cannot > discern what exactly would be the rule the Patent Office would use > to decide whether or not to grant a patent, if it were to choose not > to grant the patents LPF says should not be granted. Funny, when I read ``Against Software Patents,'' I saw a quite specific rule: ``For the purpose of this legislation, software should be defined by the characteristics that make software patents especially harmful: Software is built from ideal infallible mathematical components, whose outputs are not affected by the components they feed into. ... Software can be easily and cheaply copied.'' ---Dan
Path: gmd.de!Germany.EU.net!mcsun!uknet!pipex!uunet!spool.mu.edu!darwin.sura.net! udel!news.intercon.com!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Date: 8 Sep 1993 00:21:15 -0400 Organization: PANIX Public Access Internet and Unix, NYC Lines: 70 Message-ID: <26jmjr$9dg@panix.com> References: <CCw4Mz.Jwn@world.std.com> <1993Sep7.174704.18811@Synopsys.Com> <26iorc$m8f@panix.com> <8019.Sep722.14.0493@silverton.berkeley.edu> NNTP-Posting-Host: panix.com In <8019.Sep722.14.0...@silverton.berkeley.edu> d...@silverton.berkeley.edu (D. J. Bernstein) writes: >In article <26iorc$...@panix.com> opped...@panix.com (Carl Oppedahl) writes: >> Part of the problem is, software is by definition not patentable. >Carl, did you mean to say ``a mathematical algorithm'' rather than >``software''? >The phrase ``mathematical algorithm'' is a legal term with a precise >definition (to wit: ``algorithm for the solution of a mathematical >problem'') and a set of doctrines which explain that a mathematical >algorithm per se is not patentable subject matter. >The phrase ``software'' has not been given any such precise definition, >and to my knowledge no court has ever stated that software is not >patentable. What matters here is not any court, but the Patent Office. It does not grant patent claims of the form "A computer program comprising ...". Actually, it happened once but will not happen again. The Arrythmia case (by the Federal Circuit) says that software is not patentable. >> Poor >> stupid me, though, I have read and reread their postings and cannot >> discern what exactly would be the rule the Patent Office would use >> to decide whether or not to grant a patent, if it were to choose not >> to grant the patents LPF says should not be granted. >Funny, when I read ``Against Software Patents,'' I saw a quite specific >rule: ``For the purpose of this legislation, software should be defined >by the characteristics that make software patents especially harmful: >Software is built from ideal infallible mathematical components, whose >outputs are not affected by the components they feed into. ... Software >can be easily and cheaply copied.'' Hmmm ... on the one hand you say that "software" has no precise definition, on the other you say that LPF has defined it. I feel the quoted language from ASP does not count as a "rule" that the Patent Office could use to decide whether or not to grant a patent. I think the ASP language is in fact quite fuzzy. There are many non-software items, including most digital logic gates and most op amps, where the physical design goal is that the outputs are not affected by the components they feed into. Does ASP mean that apparatus made of digital logic gates and/or op amps should be unpatentable? Many things that most people would consider patentable without question -- mousetraps, whistles ... count as "easily and cheaply copied". An artisan with a modest workshop could easily and cheaply copy many otherwise-patentable things made of wood and metal. If the ASP standard is to be taken at face value, the standard for patentability would apparently shift like sand as the years pass. A category of item (cassette players, say) would be within the category of things that could be patented, until the fateful day when someone comes up with a device that "easily" and "cheaply" copies cassette players. In the world of Star Trek, a replicator would presumably render all things unpatentable, since they would be "easily" and "cheaply" copied. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!agate!ucbvax! silverton.berkeley.edu!djb From: d...@silverton.berkeley.edu (D. J. Bernstein) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Message-ID: <8798.Sep817.56.0293@silverton.berkeley.edu> Date: 8 Sep 93 17:56:02 GMT References: <CCw4Mz.Jwn@world.std.com> <26iorc$m8f@panix.com> <8019.Sep722.14.0493@silverton.berkeley.edu> <26jmjr$9dg@panix.com> Organization: IR Lines: 39 In article <26jmjr$...@panix.com> opped...@panix.com (Carl Oppedahl) writes: > The Arrythmia case (by the Federal Circuit) says that software is not > patentable. Where? Please give an exact quote, including the context. I think you're misreading the opinion. > >> Poor > >> stupid me, though, I have read and reread their postings and cannot > >> discern what exactly would be the rule the Patent Office would use > >> to decide whether or not to grant a patent, if it were to choose not > >> to grant the patents LPF says should not be granted. > >Funny, when I read ``Against Software Patents,'' I saw a quite specific > >rule: ``For the purpose of this legislation, software should be defined > >by the characteristics that make software patents especially harmful: > >Software is built from ideal infallible mathematical components, whose > >outputs are not affected by the components they feed into. ... Software > >can be easily and cheaply copied.'' > Hmmm ... on the one hand you say that "software" has no precise > definition, on the other you say that LPF has defined it. Software has not been given a precise definition BY THE COURTS. That doesn't stop public-interest groups from giving definitions. > I feel the quoted language from ASP does not count as a "rule" that > the Patent Office could use to decide whether or not to grant a patent. Why doesn't it ``count as a "rule"''? It looks like a rule to me. You object that some of the phrases are ambiguous; but the fact that the line between software and non-software may be fuzzy doesn't mean that it doesn't exist. Every doctrine, every regulation, every statute is ambiguous at heart. > Many things that most people would consider patentable without question -- > mousetraps, whistles ... count as "easily and cheaply copied". But they fail to satisfy the other criterion. ---Dan
Path: gmd.de!newsserver.jvnc.net!rutgers!uwm.edu!math.ohio-state.edu!usc! elroy.jpl.nasa.gov!ucla-cs!twinsun!eggert From: egg...@twinsun.com (Paul Eggert) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Keywords: n Message-ID: <CD1x8o.n1M@twinsun.com> Date: 8 Sep 93 20:07:35 GMT References: <CCw4Mz.Jwn@world.std.com> <1993Sep7.174704.18811@Synopsys.Com> <26iorc$m8f@panix.com> Sender: use...@twinsun.com Organization: Twin Sun Inc, El Segundo, CA, USA Lines: 83 Nntp-Posting-Host: spot opped...@panix.com (Carl Oppedahl) writes: >But the League for Programming Freedom, to name one interested party, >has a definition for software patent such that some software patents >do exist. And, in their view, should not have been granted. Poor >stupid me, though, I have read and reread their postings and cannot >discern what exactly would be the rule the Patent Office would use ... A common attitude of patent lawyers is that software developers are a confused bunch, who don't all agree on exactly what constitutes a software patent, and who don't understand the law as well as the patent lawyers do. The implication is that it's better to ignore software developers and devise the rules the way that patent lawyers like them, which naturally is to make as much software patentable as possible. This hostile attitude by patent lawyers greatly hinders progress towards solutions to the real problems we currently have with software patents. Instead of jeering at the LPF's definition of software patents, wouldn't it be more productive to improve on it? For reference, here's the relevent section of ``Against Software Patents''. This section sounds clear to me, but then I'm a software practitioner, and it would be helpful to have a patent lawyer's reaction to it. If there's something that is unclear here, then bringing the ambiguity out into the open would improve the quality of the debate. ----- One Way to Eliminate Software Patents We recommend the passage of a law to exclude software from the domain of patents. That is to say that, no matter what patents might exist, they would not cover implementations in software; only implementations in the form of hard-to-design hardware would be covered. An advantage of this method is that it would not be necessary to classify patent applications into hardware and software when examining them. Many have asked how to define software for this purpose---where the line should be drawn. For the purpose of this legislation, software should be defined by the characteristics that make software patents especially harmful: * Software is built from ideal infallible mathematical components, whose outputs are not affected by the components they feed into. Ideal mathematical components are defined by abstract rules, so that failure of a component is by definition impossible. The behavior of any system built of these components is likewise defined by the consequences of applying the rules step by step to the components. * Software can be easily and cheaply copied. Following this criterion, a program to compute prime numbers is a piece of software. A mechanical device designed specifically to perform the same computation is not software, since mechanical components have friction, can interfere with each other's motion, can fail, and must be assembled physically to form a working machine. Any piece of software needs a hardware platform in order to run. The software operates the features of the hardware in some combination, under a plan. Our proposal is that combining the features in this way can never create infringement. If the hardware alone does not infringe a patent, then using it in a particular fashion under control of a program should not infringe either. In effect, a program is an extension of the programmer's mind, acting as a proxy for the programmer to control the hardware. Usually the hardware is a general purpose computer, which implies no particular application. Such hardware cannot infringe any patents except those covering the construction of computers. Our proposal means that, when a user runs such a program on a general purpose computer, no patents other than those should apply. The traditional distinction between hardware and software involves a complex of characteristics that used to go hand in hand. Some newer technologies, such as gate arrays and silicon compilers, blur the distinction because they combine characteristics associated with hardware with others associated with software. However, most of these technologies can be classified unambiguously for patent purposes, either as software or as hardware, using the criteria above. A few gray areas may remain, but these are comparatively small, and need not be an obstacle to solving the problems patents pose for ordinary software development. They will eventually be treated as hardware, as software, or as something in between.
Path: gmd.de!newsserver.jvnc.net!rutgers!gatech!howland.reston.ans.net!usc! ucla-cs!twinsun!eggert From: egg...@twinsun.com (Paul Eggert) Newsgroups: ba.general,misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Message-ID: <CD1xr9.n3L@twinsun.com> Date: 8 Sep 93 20:18:44 GMT References: <CCw4Mz.Jwn@world.std.com> <1993Sep7.174704.18811@Synopsys.Com> <26iorc$m8f@panix.com> <8019.Sep722.14.0493@silverton.berkeley.edu> <26jmjr$9dg@panix.com> Sender: use...@twinsun.com Organization: Twin Sun Inc, El Segundo, CA, USA Lines: 23 Nntp-Posting-Host: spot opped...@panix.com (Carl Oppedahl) writes: I feel the quoted language from ASP does not count as a "rule" that the Patent Office could use to decide whether or not to grant a patent. The ``Against Software Patents'' proposal doesn't affect the rules that the Patent Office uses -- it affects only the rules for what is considered to infringe a patent. Does ASP mean that apparatus made of digital logic gates and/or op amps should be unpatentable? Of course not. One must take all the characteristics together to decide whether something is software. For example, software is easily copied, but this does not mean that everything that is easily copied must be software. The LPF's proposal is fairly clear about this. Hmmm ... on the one hand you say that "software" has no precise definition, on the other you say that LPF has defined it. The ``one hand'' was what the courts have said, and the ``other hand'' is what the League for Programming Freedom proposes. So there's no contradiction in what Bernstein wrote.
Path: gmd.de!newsserver.jvnc.net!yale.edu!cmcl2!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Date: 9 Sep 1993 12:34:12 -0400 Organization: PANIX Public Access Internet and Unix, NYC Lines: 64 Message-ID: <26nlu4$dgj@panix.com> References: <26iorc$m8f@panix.com> <8019.Sep722.14.0493@silverton.berkeley.edu> <26jmjr$9dg@panix.com> <mcgregorCD0zuG.MyM@netcom.com> <CD2G74.o3@twinsun.com> NNTP-Posting-Host: panix.com In <CD2G74...@twinsun.com> egg...@twinsun.com (Paul Eggert) writes: >mcgre...@netcom.com (Scott L. McGregor) writes: [in a previous posting I had a working definition of "software patent" namely, a patent claiming a system composed of off-the-shelf hardware plus novel software.] > if the definition of off-the-shelf hardware is included, > patentability would change over time, [because]... what > constitutes off-the-shelf computer hardware changes with time. >That is a problem with Oppedahl's definition of software patents >(which is much broader than the LPF's), but it is not a problem with >the LPF's definition, which talks about software running on >``general-purpose computers'', not on ``off-the-shelf hardware''. But what some readers may have missed is this -- I have no gripe with the present Patent Office threshold for what is or is not patentable subject matter. So it really doesn't matter what my working definition of "software patent" might be, or whether there is a "problem" with it. And for the purposes I use the term, mostly in trying to make a rough guess what skills will be needed to write the patent application or to understand it, it is a virtue, not a problem, that my definition has a moving horizon based on what is "off-the-shelf" hardware. The only people who have a "problem" are those who are suggesting a change is needed in the Patent Office threshold for what is or is not patentable subject matter, if their proposed definition for what is to be unpatentable turns out to be sloppy or fuzzy or meaningless. I have said this many times. If you are going to be helpful here you (and if you are one of those who seeks a change) you are going to have to propose a standard by which the Patent Office would sort patent applications into two piles, patentable subject matter and unpatentable (that is, they choose to follow your views on this). Criteria such as "is it easily copied" are unhelpful. This leads to anomalies like an invention that is patentable in 1993 but not in 1994, only because a new kind of copier came on the scene. Criteria such as "is there friction or noise in it" are unhelpful. The proponent is essentially trying to say that only analog devices, with signal-to-noise ratios and coefficients of friction, are patentable subject matter. The proponent is essentially trying to say that anything digitized (with schmitt triggers on the inputs, for example) that is largely noise-immune falls in the supposedly unpatentable subject matter area. The plain fact, which many try to ignore, is that a black box with inputs and outputs, when connected with and interacting with the world in some useful way, is patentable subject matter. It is intellectually irrelevant whether the stuff in the black box is a processor running a stored program or a thousand op amps and resistors. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Newsgroups: misc.legal.computing,comp.software-eng Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!usc!elroy.jpl.nasa.gov! ucla-cs!twinsun!eggert From: egg...@twinsun.com (Paul Eggert) Subject: Re: Bay Area software patents by companies and law firms Message-ID: <CD4o02.5Hv@twinsun.com> Sender: use...@twinsun.com Nntp-Posting-Host: spot Organization: Twin Sun Inc, El Segundo, CA, USA References: <26iorc$m8f@panix.com> <8019.Sep722.14.0493@silverton.berkeley.edu> <26jmjr$9dg@panix.com> <mcgregorCD0zuG.MyM@netcom.com> <CD2G74.o3@twinsun.com> <26nlu4$dgj@panix.com> Date: Fri, 10 Sep 1993 07:40:47 GMT Lines: 47 Carl Oppedahl writes: you are going to have to propose a standard by which the Patent Office would sort patent applications into two piles, patentable subject matter and unpatentable I don't see why this is necessary. For example, the LPF's proposal doesn't make the patent office sort applications into two piles. It merely exempts software (as narrowly defined by the LPF) from the scope of patent infringement suits. Criteria such as "is it easily copied" are unhelpful. That is just one criterion that the LPF gives for software, and it's not even the most important one. Just because something is easily duplicated does not mean it is software. In the past, new kinds of copiers have not materially affected the issue of whether software is software. This won't change any time soon. The proponent is essentially trying to say that only analog devices, with signal-to-noise ratios and coefficients of friction, are patentable subject matter. The LPF's proposal says nothing of the sort. Digital devices must also deal with signal-to-noise ratios and the like, and the LPF's proposal would allow them to be patented. The plain fact, which many try to ignore, is that a black box with inputs and outputs, when connected with and interacting with the world in some useful way, is patentable subject matter. That is an extreme let's-patent-everything-in-sight position. It is not a ``plain fact''. Many such black boxes are not patentable subject matter. For example, surgical methods are not patentable. If I wanted to reply in kind, I would say something like ``The plain fact, which many try to ignore, is that mathematics is not patentable subject matter; and software consists of mathematical objects.'' The controversy about software patents comes from this collision between worlds, one with patents, the other with freedom. We could argue about this till the cows come home, and I believe I hear them mooing already. But the bottom line is that we should grant patents in a field only if they promote progress. If software patents are hindering progress, we should stop wasting millions of dollars handing them out. We've got better things to do. Legal theories about black boxes and mathematics are secondary.
Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!wupost!csus.edu! netcom.com!netcomsv!ulogic!hartman From: hart...@ulogic.UUCP (Richard M. Hartman) Newsgroups: misc.legal.computing,comp.software-eng Subject: Re: Bay Area software patents by companies and law firms Message-ID: <2247@ulogic.UUCP> Date: 13 Sep 93 22:18:38 GMT References: <CD2G74.o3@twinsun.com> <26nlu4$dgj@panix.com> <CD4o02.5Hv@twinsun.com> Followup-To: misc.legal.computing Organization: negligable Lines: 37 In article <CD4o02....@twinsun.com> egg...@twinsun.com (Paul Eggert) writes: >But the bottom line is that we should grant patents in a field only if >they promote progress. If software patents are hindering progress, we >should stop wasting millions of dollars handing them out. We've got >better things to do. Legal theories about black boxes and mathematics >are secondary. I think you have the purpose of patents sideways, if not backwards. The purpose is to simultaneously promote progress WHILE ENSURING that the innovators benefit from their works. In almost every case a patented item or process could be developed better by a large corporation with (essentially) unlimited resources. If we were to follow your statement to it's extreme then we should never grant ANY patent, because they hinder these corporations from making progress by requiring that these insignificant gnats actually be PAID for their efforts. That said, I think the case against software patents is more to be found in the review and granting process. Conditions that would normally invalidate some other sort of patent, such as prior art or obviousness are consistantly overlooked by the patent office when reviewing software patents. Without being familiar with the patent office's procedures I would surmise that since these people are essentially laywers and not software engineers they are just plain not aware of what prior art (speficially not-patented but wide spread practices) might already exist, or what may or may not be obvious to someone with a background and training that did not come from a law school. -Richard Hartman hart...@ulogic.COM =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= "Fosters! It's Australian for beer, mate!"
Newsgroups: misc.legal.computing Path: gmd.de!newsserver.jvnc.net!yale.edu!nigel.msen.com!sdd.hp.com! vixen.cso.uiuc.edu!uwm.edu!cs.utexas.edu!uunet!ftpbox!mothost!schbbs! node_142cf.aieg.mot.com!user From: rcr...@email.mot.com (Mike Waters) Subject: Re: Bay Area software patents by companies and law firms Organization: Motorola IPD Date: Tue, 14 Sep 1993 09:14:56 -0700 Message-ID: <rcrw90-140993091456@node_142cf.aieg.mot.com> Followup-To: misc.legal.computing References: <CD2G74.o3@twinsun.com> <26nlu4$dgj@panix.com> <CD4o02.5Hv@twinsun.com> <2247@ulogic.UUCP> Sender: n...@schbbs.mot.com (Net News) Nntp-Posting-Host: 129.188.192.7 Lines: 49 In article <2...@ulogic.UUCP>, hart...@ulogic.UUCP (Richard M. Hartman) wrote: > That said, I think the case against software patents is more to be > found in the review and granting process. Conditions that would > normally invalidate some other sort of patent, such as prior art > or obviousness are consistantly overlooked by the patent office > when reviewing software patents. I would agree that the prior art in software cases is very poorly organized and hard to search. I think the USPTO would agree with this too! The solution, however, is not to forbid software patents but to organize the body of software knowledge in much the same way as other fields have been - circuit design comes to mind. In areas where patents have been a signioficant factor for a long time the prior art by necssity is very well organized and easy to search. I know of no reason whht this will not happen with software as time goes on. > Without being familiar with the > patent office's procedures I would surmise that since these people > are essentially laywers and not software engineers they are just > plain not aware of what prior art (speficially not-patented but > wide spread practices) might already exist, or what may or may not > be obvious to someone with a background and training that did not > come from a law school. As one who deals daily with USPTO examiners I would agree that they have "blind spots" in their expertise when compared to the average software engineer. On the whole, however, their technical knowledge is very good and I have always found examiners willing to learn new technology. Most seem to look at this as a significant benefit from their jobs. The USPTO does not require a law degree to be an examiner, and most examiners are not lawyers. The requirement is primarily one of technical expertise in an area, all of the examiners I have talked to have technical degrees in an appropriate subject area. At one time the USPTO would not accept a Computer Science degree either for registration as an agent or as an examiner, this is no longer true. For registration (the area I know best :-) they look at individual course content since there are so called CS degrees which actually have nothing to do with computing technology. Otherwise they are accepted just like any other degree. In short, no one deneys that there are problems with software patents, the dispute is whether the LPF "solution" is needed or even if it would help anything. -- Mike Waters rcr...@email.mot.com AA...@KC7Y.PHX.AZ.US.NA
Path: gmd.de!newsserver.jvnc.net!darwin.sura.net!howland.reston.ans.net! usenet.ins.cwru.edu!agate!ucbvax!silverton.berkeley.edu!djb From: d...@silverton.berkeley.edu (D. J. Bernstein) Newsgroups: misc.legal.computing Subject: Re: Bay Area software patents by companies and law firms Message-ID: <19331.Sep1507.02.2793@silverton.berkeley.edu> Date: 15 Sep 93 07:02:27 GMT References: <CD2G74.o3@twinsun.com> <CD4o02.5Hv@twinsun.com> <2247@ulogic.UUCP> <rcrw90-140993091456@node_142cf.aieg.mot.com> Organization: IR Lines: 15 In article <rcrw90-140993091456@node_142cf.aieg.mot.com> rcr...@email.mot.com (Mike Waters) writes: > I would agree that the prior art in software cases is very poorly organized > and hard to search. I think the USPTO would agree with this too! The > solution, however, is not to forbid software patents but to organize the > body of software knowledge in much the same way as other fields have been - But of course the problem of software patents extends much deeper than the USPTO's mere failure to comprehend existing literature. Surely you will agree that there is already a body of prior art which could not be any better organized by the USPTO---namely, its very own patents! Yet the USPTO grants software patents which are entirely anticipated by _previous software patents_. How could any database of knowledge solve this problem? ---Dan
Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!europa.eng.gtefsd.com! darwin.sura.net!news.udel.edu!udel!news.intercon.com!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: misc.legal.computing Subject: Re: Bay Area software patents by companies and law firms Date: 15 Sep 1993 21:03:28 -0400 Organization: PANIX Public Access Internet and Unix, NYC Lines: 16 Message-ID: <278e10$84e@panix.com> References: <CD2G74.o3@twinsun.com> <CD4o02.5Hv@twinsun.com> <2247@ulogic.UUCP> <rcrw90-140993091456@node_142cf.aieg.mot.com> <19331.Sep1507.02.2793@silverton.berkeley.edu> NNTP-Posting-Host: panix.com In <19331.Sep1507.02.2...@silverton.berkeley.edu> d...@silverton.berkeley.edu (D. J. Bernstein) writes: >Yet >the USPTO grants software patents which are entirely anticipated by >_previous software patents_. Your statement suggests this has happened at least twice. Can you give an example or two of this? For each example, it would be helpful to have the patent numbers involved. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Path: gmd.de!newsserver.jvnc.net!darwin.sura.net!europa.eng.gtefsd.com!uunet! mcsun!julienas!chorus!octave.chorus.fr!jloup From: jl...@chorus.fr (Jean-loup Gailly) Newsgroups: misc.legal.computing Subject: Re: Bay Area software patents by companies and law firms Message-ID: <5112@chorus.chorus.fr> Date: 16 Sep 93 08:23:53 GMT References: <CD2G74.o3@twinsun.com> <CD4o02.5Hv@twinsun.com> <2247@ulogic.UUCP> <rcrw90-140993091456@node_142cf.aieg.mot.com> <19331.Sep1507.02.2793@silverton.berkeley.edu> <278e10$84e@panix.com> Sender: n...@chorus.chorus.fr Reply-To: jl...@chorus.fr (Jean-loup Gailly) Lines: 26 Dan Bernstein <d...@silverton.berkeley.edu> wrote: > Yet the USPTO grants software patents which are entirely anticipated by > _previous software patents_. Carl Oppedahl <opped...@panix.com> replied: > Your statement suggests this has happened at least twice. Can you give > an example or two of this? For each example, it would be helpful to > have the patent numbers involved. Two examples in the domain of data compression: - The LZW algorithm used in 'compress' is patented by IBM (4,814,746) and Unisys (4,558,302). The IBM patent application was first filed three weeks before that of Unisys. The IBM patent is more general, but its claim 7 is exactly LZW. - The LZRW1 algorithm is patented by Waterworth (4,701,745) and Gibson & Graybill (5,049,881). (It was later independently reinvented by Ross Williams who gave his name to the algorithm.) The G&G patent contains more claims but the basic algorithm is exactly the same as in the Waterworth patent. Jean-loup Gailly jl...@chorus.fr
Path: gmd.de!newsserver.jvnc.net!udel!news.intercon.com!panix!not-for-mail From: opped...@panix.com (Carl Oppedahl) Newsgroups: misc.legal.computing Subject: Re: Bay Area software patents by companies and law firms Date: 16 Sep 1993 22:00:56 -0400 Organization: PANIX Public Access Internet and Unix, NYC Lines: 559 Message-ID: <27b5oo$s0n@panix.com> References: <CD2G74.o3@twinsun.com> <CD4o02.5Hv@twinsun.com> <2247@ulogic.UUCP> <rcrw90-140993091456@node_142cf.aieg.mot.com> <19331.Sep1507.02.2793@silverton.berkeley.edu> <278e10$84e@panix.com> <5112@chorus.chorus.fr> NNTP-Posting-Host: panix.com In <5...@chorus.chorus.fr> jl...@chorus.fr (Jean-loup Gailly) writes: >Dan Bernstein <d...@silverton.berkeley.edu> wrote: >> Yet the USPTO grants software patents which are entirely anticipated by >> _previous software patents_. >Carl Oppedahl <opped...@panix.com> replied: >> Your statement suggests this has happened at least twice. Can you give >> an example or two of this? For each example, it would be helpful to >> have the patent numbers involved. >Two examples in the domain of data compression: >- The LZW algorithm used in 'compress' is patented by IBM (4,814,746) > and Unisys (4,558,302). The IBM patent application was first filed > three weeks before that of Unisys. The IBM patent is more general, > but its claim 7 is exactly LZW. >- The LZRW1 algorithm is patented by Waterworth (4,701,745) and Gibson > & Graybill (5,049,881). (It was later independently reinvented by Ross > Williams who gave his name to the algorithm.) The G&G patent contains > more claims but the basic algorithm is exactly the same as in the > Waterworth patent. I don't see where the statement by Jean-Loup Gailly provides support for the statement of Dan Bernstein. Let's look again at what Mr. Bernstein said. Assertion (by Mr. Bernstein): On at least two occasions, the U.S. Patent Office has granted a software patent that is anticipated by a previous software patent. Now, to say that a patent is "anticipated" is to say that its _claims_ are anticipated -- that each of its claims appear in something in the prior art. So, to be specific, if the patent has eighteen claims, then everything in each of the eighteen claims would have to appear in something in the prior art. It is important, here, to appreciate the enormous difference between what a patent _discloses_ and what it claims. You could have patent 1 which discloses doing A and B and C, and that claims doing A and B and C. You could have a later patent 2 that discloses doing A and B and C, and goes on to say you could follow that by doing D, and which claims doing A and B and C and D. In this situation it would be incorrect to say that patent 2 is anticipated by patent 1. The reason is simple -- you can look and look in patent 1 and you will not find it disclosed that you can do A and B and C and D. Turning now to the example given by M. Gailly. Gailly cites the pair of patents 4,558,302 and 4,814,746. Apparently it is suggested that one of the patents "anticipates" or "entirely anticipates" the other. The time sequence for anticipation is simple -- to anticipate, a reference has to be older than the thing it anticipates. Since patent number 4.558,302 issued in 1985, and patent number 4,814,746 issued in 1989, it appears that Gailly is saying that '746 is "anticipated" by '302. And recall this means Gailly is saying that for _each_ claim of '746, it is the case that everything in the claim is found in '302. The '746 patent has eighteen claims. I looked and there is lots and lots in those claims that does not appear in '302. It looks to me as though this, the first of Gailly's examples, fails. Perhaps what Gailly is saying is that if you read the '746 patent (the specification rather than the claims) you will find LZW disclosed, and that the same is true of the '302 patent. If so, the statement is true but trivial, and gives no support to Mr. Bernstein's statement. It happens all the time, as in the ABC example above, that two patents can be found to overlap in the sense of both disclosing some particular thing. And if this happens, it does not mean that the same thing has been patented twice. Nor does it mean that the older of the patents anticipates the newer of the two. There is another problem with what Gailly says. It is said that the application of the IBM patent ('746) "was first filed three weeks before that of Unisys" ('302). But by my reading the time sequence is this: June 20, 1983 --- '302 application filed. December 10, 1985 --- '302 patent issued. August 11, 1986 --- '746 application filed. March 21, 1989 --- '746 patent issued. So the two applications were filed about three years apart, not three weeks. Turning now to the second of Gailly's assertions. Gailly gives a pair of patents: 4,701,745 and 5,049,881. If this pair is to provide support for Mr. Bernstein's claims, then it would have to be the case that the '881 patent is "anticipated" by the '745 patent. The time sequence here is: March 6, 1985 --- British application filed that will lead to '745. March 3, 1986 --- US application filed. October 20, 1987 --- '745 patent issued. June 18, 1990 --- '881 application filed. September 17, 1991 --- '881 patent issued. I have looked and looked at the fifteen claims of the '881 patent, and cannot find one of them, let alone all of them, in the '745 patent. Perhaps here, too, Gailly's statement is merely that both patents disclose some of the same things -- in which case again it can be trivially true and yet would not provide support for Mr. Bernstein's statement. In case it may be of interest to the reader, I have reproduced below the eighteen claims of the '746 patent (so that one may see what would have to be in the '302 patent if the '746 were to be "completely anticipated" by the '302) and the fifteen claims of the '881 patent. PATENT NO.: 4,814,746 1. A method for data compression of individual sequences or strings of symbols arranged in a data stream, comprising the steps of: initializing a dictionary consisting of a set of strings with an index for each of said strings and including all possible strings of length l; setting a current input position at the beginning of said data stream and repeating the following steps until the data stream to be compressed is exhausted; determining a longest string S in said dictionary which matches a current string in the data stream starting from the current input position; generating an identifier I for S consisting of an encoding of the index associated with said longest matched string S; advancing the current input position to immediately after said current string in the data stream; modifying said dictionary based on the preceding longest matched string S, the immediately succeeding symbols in the next string in the data stream, and the sequence of previously matched strings; transmitting I to a utilization device; and decoding I at said utilization device to recover said string S. 2. A method for data compression of individual sequences or strings of characters in a data stream comprising the steps of: initializing a set of strings into a dictionary consisting of n strings each with an identifier and including all possible strings of length l; setting a current input position at the beginning of said data stream; determining the longest string S in the dictionary which matches the current string of characters of the data stream starting at the current input position; finding the identifier I for S; transmitting I to a utilization device; decoding I at said utilization device to recover said string S; adding a new string S' to said dictionary where S' comprises a concatenation of a previous string match and said current string match; generating and assigning an identifier I' to string S'; advancing the current input position to a next character in said stream following the current matched string; and repeating the above determining, finding, transmitting, decoding, adding, generating and assigning, and advancing steps for a next string until the data stream to be compressed is exhausted. 3. A method according to claim 2, further comprising the step of: deleting a least recently used string from said dictionary to create an empty slot for said new string S', if no empty slot is found when modifying said dictionary. 4. A method for creating a dynamic dictionary of fixed size to be used in achieving data compression of individual sequences or strings of symbols in a data stream, comprising the steps of: initializing a set of strings to consist of n sequences of symbols including all possible strings of length l; providing a dictionary of fixed size in storage containing said initialized set of strings each with an identifier; determining a longest string S of the set which matches a current string of the data stream to be compressed; testing said dictionary of fixed size in storage containing said set of strings for an empty slot to store a new matched string; deleting a least recently used string from said dictionary, if no empty slot is found, to create an empty slot; and assigning a slot identifier j to said empty slot found or created from the above steps of testing and deleting to identify a new matched string stored therein. 5. A method for data compression of individual sequences in a data stream, comprising the steps of: initializing a set of strings to consist of n sequences; determining a longest string S of the set which matches a current string; generating an identifier I for S; transmitting I to a utilization device; testing a dictionary in storage containing said set of strings for an empty slot; deleting a least recently used string from said dictionary if no empty slot is found to create an empty slot; assigning slot identifier j to said empty slot found or created from the above steps of testing and deleting; adding a new string S' to said set where S' comprises a concatenation of a previous string match and said current string match; assigning an identifier k to string S'; advancing the input position to a next character in said stream; outputting an identifier m to indicate a match; and repeating the above steps for a next string. 6. A method according to claim 1, wherein said modifying step comprises the steps of: adding a new string S' to said set, where S' comprises a concatenation of a previous string match and said current string match; and assigning an identifier I' to said string S'. 7. A method according to claim 1, wherein said modifying step comprises the steps of: adding a new string S' to said set, where S' comprises a concatenation of said current string match and an immediately succeeding symbol in said data stream; and assigning an identifier I' to said string S'. 8. A method according to claim 1, further comprising the step of: testing a dictionary of fixed size in storage containing said set of strings for an empty slot to store said new string S'. 9. A method according to claim 8, further comprising the step of: deleting a least recently used string from said dictionary to create an empty slot, if no empty slot is found. 10. A system for data compression of individual sequences or strings of symbols arranged in a data stream, comprising: means for initializing a dictionary consisting of a set of strings with an index for each of said strings and including all possible strings of length l; means for setting a current input position at the beginning of said data stream; means for determining the longest string S in said dictionary which matches a current string in the data stream starting from the current input position; means for generating an identifier I for S consisting of an encoding of the index associated with said longest matched string S; means for advancing the current input position to immediately after said current string in the data stream; means for modifying said dictionary based on the preceeding longest matched string S, the immediately succeeding symbols in the next string in the data stream, and the sequence of previously matched strings; means for transmitting I to a utilization device; means for decoding I at said utilization device to recover said string S; and means for repeatedly activating said determining, generating, advancing, modifying, transmitting, and decoding means until the data stream to be compressed is exhausted. 11. A system as in claim 10, wherein said modifying means comprises: means for adding a new string S' to said set, where S' comprises a concatenation of a previous string match and said current string match; and means for assigning an identifier I' to string S'. 12. A system as in claim 10, wherein said modifying means comprises: means for adding a new string S' to said set, where S' comprises a concatenation of said current string match and an immediately succeeding symbol in said data stream; and means for assigning an identifier I' to string S'. 13. A system according to claim 10, further comprising: means for storing a dictionary of fixed size containing said set of strings; and means for testing said dictionary for an empty slot to store said new string S'. 14. A system according to claim 13, further comprising: means for deleting a least recently used string from said dictionary to create an empty slot, if no empty slot is found. 15. A system for data compression of individual sequences or strings of characters in a data stream, comprising: means for initializing a set of strings into a dictionary consisting of n strings each with an identifier and including all possible strings of length l; means for setting a current input position at the beginning of said data stream; means for determining the longest string S in the dictionary which matches the current string of characters of the data stream starting at the current input position; means for finding the identifier I for S; means for transmitting I to a utilization device; means for decoding I at said utilization device to recover said string S; means for adding a new string S' to said dictionary, where S' comprises a concatenation of said current string match and at least one of a previous string match and an immediately succeeding character in said data stream; means for generating and assigning an identifier I' to string S'; means for advancing the current input position to a next character in said stream following the current matched string; means for repeatedly actuating said determining, finding, transmitting, decoding, adding, generating and assigning, and advancing means to operate on a next string until the data stream to be compressed is exhausted. 16. A system according to claim 15, further comprising: means for deleting a least recently used string from said dictionary to create an empty slot for said new string S', if no empty slot is found when adding said new string to said dictionary. 17. A system for creating a dynamic dictionary of fixed size to be used in achieving data compression of individual sequences or strings of symbols in a data stream, comprising: means for initializing a set of strings to consist of n sequences of symbols including all possible strings of length l; means for determining a longest string S of the set which matches a current string of the data stream to be compressed; means for storing a dictionary of fixed size containing said intialized set of strings each with an identifier; means for testing said dictionary for an empty slot to store a new matched string; means for deleting a least recently used string from said dictionary, if no empty slot is found, to create an empty slot; and means for assigning a slot identifier j to said empty slot found or created following the operation of said testing and deleting means to identify a new matched string stored therein. 18. A system for data compression of individual sequences or strings in a data stream, comprising: means for initializing a set of strings to consist of n sequences; means for determining a longest string S of the set which matches a current string to be compressed; means for generating an identifier I for S; means for transmitting I to a utilization device; storage means comprising a dictionary containing said set of strings; means for testing said dictionary in storage for an empty slot; means for deleting a least recently used string from said dictionary, if no empty slot is found, to create an empty slot; means for assigning slot identifier j to said empty slot found or created by said testing and deleting means; means for adding a new string S' to said set where S' comprises a concatenation of a previous string match and said current string match; means for assigning an identifier k to said string S'; means for advancing the input position to a next character in said stream; means for outputting an identifier m to indicate a match; and means for repeatedly actuating said foregoing means for a next string. PATENT NO.: 5,049,881 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. 2. The method in accordance with claim 1 wherein said backwards pointer is encoded with a variable number of bits and storing the backwards pointer to the most recent occurrence of a string, thereby creating a short backwards distance to repeated strings. 3. A method for expanding the stream of compressed data which has been compressed in accordance with claim 1 back into the original stream of data, the expansion method comprising the steps of: a. determining for each segment of the compressed input data, whether it comprises incompressible data or is a back pointer reference; b. if the input data segment comprises incompressible data, copying the input data segment to the output data stream; c. if the input data segment comprises a back pointer reference, computing the location of the previously expanded data referred to, and copying that previously expanded data to the output stream; and d. continuing steps a. through c. until the entire compressed input data has been processed. 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 string after each hash is used to find a possible previous match location for 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. 5. A method for expanding the stream of compressed data which has been compressed in accordance with claim 4 back into the original stream of data, the expansion method comprising sequentially analyzing each string of compressed data and if the string contains incompressible data then duplication of the string, and if the string references previously expanded data then duplication of the previously expanded data and repeating the steps until the entire compressed input data stream has been expanded back to the original data. 6. 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. creating an identifier header having a count value for data to follow and marking the identifier header with a code to designate whether incompressible or compressible data follows; b. reading input data in the order in which the input data appears and hashing subblocks and comparing them to previous subblocks with the same hash until a match to a previous subblock occurs which is a match on a string up to the maximum count value in the identifier header, and then generating a backwards pointer to designate the second occurrence of a character string equal to a previous identical string of characters of at least minimum match size and thereby compressing the second occurrence of the string; and c. continuing generating identifier headers and data until the entire input data stream has been processed. 7. The method in accordance with claim 6 wherein said backwards pointer is encoded with a variable number of bits and storing the backwards pointer to the most recent occurrence of a string, thereby creating a short backwards distance to repeated strings. 8. The method in accordance with claim 6 further comprising a method for expanding the stream of compressed data back into the original stream of data, the expansion method comprising the steps of: a. evaluating each section sequentially and determining if it contains incompressible data or a backwards pointer immediately following the identifier header; b. if incompressible data is found, then the count value from the identifier header determines the amount of data to be copied from the input stream; c. if a backwards pointer is found, then the count value from the identifier header determines the amount of data to be copied from the previously expanded data referred to by the backwards pointer; and d. repeating steps a. through c. until the entire compressed input stream has been expanded back to the original data. 9. In a data compression method, having defined at least one variable length compression match output token which includes a count field containing a maximum count value and an incompressible data indicator field which together form an identification header, a backwards pointer to a previously encountered data field, and a size of backwards pointer field, having further defined at least one variable length incompressible data output token which consists of the identification header followed by incompressible data of length specified by the count field, and having further defined a subblock size of a minimum length for performing hash computations that cannot result in the compressed data being larger than the uncompressed data, a method for compressing input data into compressed output data, said compression method comprising the steps of: a. initializing a hash table, a source pointer and a destination pointer; b. initializing a count value and initializing and storing an identification header at the location of the destination pointer and then incrementing the destination pointer; c. reading input subblocks pointed to by the source pointer, and computing hash values for the subblocks in the order in which they appear, and comparing the string located by the previous entry for this hash value to determine potential matches and unconditionally replacing the hash table entry with the current source pointer; d. if a hash match does not occur, the data character pointed to by the source pointer is copied to the data area pointed to by the destination pointer, and the source pointer, destination pointer, and count value are incremented such that if the count value then is equal to the maximum count value, the maximum count value is stored in the current identification header and processing resumes with step b.; e. if a hash match occurs, the match length of the data pointed to by the current hash table value and the data pointed to by the prior identical hash table value is determined; f. if the match length so computed is less than the minimum match length, step d. is performed as if no hash value match had occurred; g. if the match length so computed is equal to or greater than the minimum match length, the current identification header is updated with the count value to complete a prior packet of uncompressible data and an output match token is then stored at the location pointed to by the destination point consisting of a count field containing the match count, a raw data indicator field indicating that a backwards pointer follows, and a variable length backwards pointer that points to the most recent previous occurrence of the matching data and then the source pointer is incremented by the match count and the destination pointer is incremented by the output match size; and h. repeating steps b. through g. until the source data has been processed. 10. A compression apparatus 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 apparatus comprising: a. means for initializing a hash table and means for initializing an SRC pointer; b. means for processing input data in the order in which the characters in the data appear and means for hashing input data subblocks of the minimum compression size selected; c. means for 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, means for obtaining the previous SRC pointer contained in that entry, and means for comparing the two strings of data; d. if the two strings of data match on at least the size of the subblock, then means for 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; and e. if the two strings of data do not match, then means for storing the string of data as incompressible data. 11. Means for expanding the stream of compressed data which has been compressed in accordance with claim 10 back into the original stream of data, the expansion means comprising: a. means for determining for each segment of the compressed input data, whether it comprises incompressible data or is a back pointer reference; b. if the input data segment comprises incompressible data, means for copying the input data segment to the output data stream; and c. if the input data segment comprises a back pointer reference, means for computing the location of the previously expanded data referred to, and copying that previously expanded data to the output stream. 12. A compression apparatus 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 apparatus comprising the creation of a hash table, means for 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, means for 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, means for storing such data as uncompressed data, and for each input string after each hash is used to find a possible previous match location for the string, means for storing the location of the string in the hash table, thereby using the previously processed data to act as a compression dictionary. 13. An apparatus for expanding the stream of compressed data which has been compressed in accordance with claim 12 back into the original stream of data, the expansion apparatus comprising means for sequentially analyzing each string of compressed data and if the string contains incompressible data then means for duplication of the string, and if the string references previously expanded data then means for duplication of the previously expanded data. 14. A compression apparatus 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 apparatus comprising: a. means for creating an identifier header having a count value for data to follow and means for marking the identifier header with a code to designate whether incompressible or compressible data follows; and b. means for reading input data in the order in which the input data appears and means for hashing subblocks and comparing them to previous subblocks with the same hash until a match to a previous subblock occurs which is a match on a string up to the maximum count value in the identifier header, and then means for generating a backwards pointer to designate the second occurrence of a character string equal to a previous identical string of characters of at least minimum match size and thereby compressing the second occurrence of the string. 15. The apparatus in accordance with claim 14 further comprising an apparatus for expanding the stream of compressed data back into the original stream of data, the expansion apparatus comprising: a. means for evaluating each section sequentially and determining if it contains incompressible data or a backwards pointer immediately following the identifier header; b. if incompressible data is found, then using means for copying data from the input stream according to the count value in the identifier header; and c. if a backwards pointer is found, then using means for copying data from the previously expanded data referred to by the backwards pointer according to the count value in the identifier header. -- Carl Oppedahl AA2KW (patent lawyer) 1992 Commerce Street #309 Yorktown Heights, NY 10598-4412 voice 212-777-1330
Path: gmd.de!newsserver.jvnc.net!howland.reston.ans.net!europa.eng.gtefsd.com! uunet!mcsun!julienas!chorus!octave.chorus.fr!jloup From: jl...@chorus.fr (Jean-loup Gailly) Newsgroups: misc.legal.computing Subject: Re: Bay Area software patents by companies and law firms Message-ID: <5151@chorus.chorus.fr> Date: 20 Sep 93 11:52:47 GMT References: <CD2G74.o3@twinsun.com> <CD4o02.5Hv@twinsun.com> <2247@ulogic.UUCP> <rcrw90-140993091456@node_142cf.aieg.mot.com> <19331.Sep1507.02.2793@silverton.berkeley.edu> <278e10$84e@panix.com> <5112@chorus.chorus.fr> <27b5oo$s0n@panix.com> Sender: n...@chorus.chorus.fr Reply-To: jl...@chorus.fr (Jean-loup Gailly) Lines: 23 Enough has been said on LZW (4,558,302) and MW (4,814,746). Carl Oppedahl has put in my mouth words I did not say ("Gailly is saying that for _each_ claim of '746, it is the case that everything in the claim is found in '302") but I think that the debate does not benefit from being continued at this level. However, I cannot let one of Carl Oppedahl's assertions remain unchallenged: > I have looked and looked at the fifteen claims of the '881 patent, and > cannot find one of them, let alone all of them, in the '745 patent. I assert that Gibson & Graybill 5,049,881 does not contain any invention which is not already disclosed (I mean disclosed, not claimed) in Waterworth 4,701,745, and consequently that the claims of '881 should not have been granted because they fail the novelty requirement. You assert that '881 does in fact contain novelty in all of its claims. I won't ask you to substantiate your assertion for all claims, but could you do it just for claim 12 of '881? What is the novel and non-obvious invention in this claim? Jean-loup Gailly jl...@chorus.fr