On Tuesday 05 Aug 2008 11:27, Saurabh Nanda wrote:
JTD, thanks for taking out some time to write that mail, but I'm afraid to say that I couldn't understand a word of the following paragraph (which I is the crux of your argument). Could you please try explaining it with a different approach?
Err i am trying...to describe the blurring of lines between physical devices and software and the dangers of creating laws based on present perceptions.
Consider a VHDL file that describes a PCI /AGP/USB/other device.
VHDL is a Hardware Descriptive Language very similar to ANSI C. http://en.wikipedia.org/wiki/VHDL http://en.wikipedia.org/wiki/Hardware_description_language
HDLs are used to describe and model hardware systems. The code is just like any other code. Running the code thru a compiler - logic synthesiser - produces a circuit diagram and a fusemap. You can use the circuit diagram and build hardware that will work just like you described in the HDL code. Or you can use the fuse map to blow / reconfigure an FPGA to create the circuit or send it to a fabhouse to create a custom ASIC.
(the above para is a gross simplification but suits us for now)
One can easily patent the resultant ASIC. So by extending the logic backward one can patent the Parent HDL code. However while patenting the ASIC one is patenting one single specific implementation of the circuit. If the HDL code were patented, One could reduce any code (even highily disimilar code which produces very different physical hardware, but capable of producing identical end results) to show that it is similiar to the patented code. Modern ASICs allow creation of FPGA + ASIC + Microprocessor + RAM blocks in a device. Add a driver which programs the FPGA and downloads an API so that it's functionality is exposed for use. Now patent the whole lot by extending the HDL-patent case a little more. It is after all a sort of software tied to specific machine limited hardware which makes a useless piece of silicon do something unique. Examples of such hardware in widespread use was in the previous mail.
From this point it is very easy to get rid of the hardware requirement completely and patent the HDL code ( description of specific hardware) + driver (software with machine limitation which downloads microcode for execution there bundled with application (more software with machine limitation). If you wanted to seperate this blob into HDL, microcode and application you would most likely be contaminated. Now just build your PC with gizmos in the previous mail examples and you have a completely un reverse engineerable combo of what? - non generic hardware?, software?, driver?. Since the API now exists within the patented blob reverse engineering will screw you up, unless you have an army of lawyers.
In short "specific hardware" is extremely generic until the software gets in whence it morphs into "special adoption or modification of its hardware or organization ".
In the above i have restricted myself to silicon. But the same could apply to full machines - robots -. What a robot does is totally dependent on the software. You could make it do flips or eye surgery.
What you should aim at is complete ban on patents for any software / process / method irrespective of it being tied to specific hardware, including the results of code being morphed into machine readable binaries, either for execution on, or modification of internal elements in FPGA / ASIC / General or special purpose machines, irrespective of it's method of storage or accessseaability
There are similiar parallels in the bioinformatics and pharma industry. Essentially it's capitalism gone beserk with patents being used to continue obsolete business practices. But that is another story.