Imagine the simplest of knots. It is a loop of rope with one end of the rope stuck through it.
Imagine the guy who did this for the very first time... What did he think back then? "Wow! How cool!" ... or "Wow! How can I make a living out of this!" ?!
Well, picture yourself a world without knots. One day someone comes up with this ingenious idea that you can make a little squiggle in the rope and tightening it. It becomes a knot.
The invention spreads like wildfire. Pretty soon, there's a whole knot-making industry. People are hired based on knot-making traits such as the ability to think abstractly. The best knotters can even think up new knots in their head. You are one of these.
One day, a customer comes up to you and says: "I want a new knot!" He tells you that it will be used to connect three ropes: 5mm polyester, 25mm polypropylene and 0.3mm silk thread. It should support 750 kilos between the polyester and polypropylene, but the silk only needs 15 kilos. The knot must not use more than 2 metres of rope, and no more than 3 metres of silk. It has to weigh less than 500 grams, and not be bigger than a fist.
You roll your eyes at the vague specifications, before you recall a knot you designed for a different customer a few months ago. The customer accepts your quote, and you go to work, designing a new knot to fit the specifications.
At your desk, you look up the tensile strenght, cutting resistance (with respect to the 0.3mm silk thread) and so on... When you finish, you hand over the finished plans for the knot to the customer. You might already have a working prototype too, but the customer needs to make his own knots in the right way, so you've made a manual describing it all, how to use it, etc.
The customer gets his knot.
A few years later, a mr Atsushu Momoi sues you for infringing on his knot patent which he invented back in 1976 (patent no. 3995898). Your knot is unfortunately the same knot that was used to tie together some fishing nets. Although the application of the knot has changed, the knot itself is the same.
Another customer comes up to you, and asks for a knot. This time, you calculate that you have to spend at least three months checking that this new knot doesn't infringe on any patents. The customer "takes his business elsewhere."
Anyone can tie a knot. Indeed, knots tie themselves on several occasions. Yet there is knot theory, knot tying notation, Wikipedia has a List of knots (although I expect these to be in the public domain and free of patents).
Yet a knot is nothing more than a piece of string wrapped around itself in loops and blighs; tying it in a new way is apparently considered an invention by the patent office.
It is the same with software patents. Software is more than just knots, although the term spaghetti code often crops up in software engineering circles. Software has a standardized notation: Flow charts, and the Unified Modeling Language (or UML) are often used to describe the software's algorithms and design respectively. Lines of Code correspond to the actual thread of rope: If I sit down and design a "Hello World" using UML, the actual implementation in Java or C# is as hands-on as threading rope. The end product; the compiled little executable is the actual knot.
Of course, my executable can be reproduced indefinetly, while my knot can only be used in the original implementation. If I want to give a knot to someone else, I have to tie another one.
The ability to patent knots as inventions is as silly as the ability to patent software or algorithms as inventions. Software isn't invented, it is crafted using logic and wit. Using the same logic, most seasoned software engineers will be able to come up with the same design.