Software Patents are evil, here's why

I was looking for a reference in ADO.NET Entity Framework documentation (via Google) if a Complex type in an EDM could be part of an association (relationship) like Hibernate supports. I needed this for some tool I'm working on . Google gave me an interesting link, namely to a patent held by MS about relationshipsets in the EDM. It refers to other patents of similar straight-forward concepts, either based on stuff defined by Codd or defined by other O/R mapper frameworks like Hibernate or Toplink long before the filing took place. Why these common concepts are even patentable (as they're discoveries in math-space, so not really inventions) is beyond me.

I think it's great that people get credited for their work, after all they put in the hard effort. The problem with these kind of patents like the example above, is that unless you patent the living daylights out of every line of code and every design you think of (which costs a lot of money), you'll sooner or later find that some company owns a patent of work you perhaps thought of first but you don't file a thousands of dollars costing patent request for every design, so someone else filed a patent.

This is a big risk for software engineers out there. I know Microsoft in general doesn't use patents to bitch on competitors or companies who make stuff they also make. But some other company, e.g. a patent-trolling lawfirm who bought a stack of patents, might. It's good the EU forbid software patents for now and it's likely they'll never be valid here. Let's hope the US patent office is following suit.

Btw, 'Object relational mapping' is patented a lot of different times, often duplicates more or less. Oh, and the answer to my initial question is: no, complex types can't refer to entity types. (Which is expected, having a reference to an entity from a complex type (Value object in DDD) seems rather strange and a true edge case)

4 Comments

  • @phat shantz:

    I'm not ranting because someone else patented something before me. The problem is that there's apparently a fuzzy definition about what's patentable. A discovery of something can't be patented. So if you try to patent something which is a discovery, like a 'relationship' between two elements in a set, you're trying to troll the patent system.

    You forget that there's something called copyright. Copyright is enough to protect software development. The problem with software patents (which is the subject here) is that they often if not every time are simply about a discovery. the problem with patented discoveries is that another person who wants to use that element of truth which was discovered can't do that because s/he would violate a patent.

    It's like you sort a list of elements in your code because someone patented the sort algorithm you want to use. Algorithms are simply math, discoveries, not inventions. The same goes for datastructures.

    Yes, that's a silly example of a stupid patent, but so is a patent about set theory which is simply math.

  • Thanks Frans, an interesting topic as always.

    I'm definitely no attourney, but I would have thought an algorithm might be a good case for a patent? They are well defined and may involve quite a bit of IP via research/creative thinking both its creation and potential implementations, even though maths is at the guts of it.

  • Not having software patents in europe is really a big advantage.


    Why do you think, the need of a reference to an entity from a complex type, is an edge case.

    The most cited examples, e.g. address- or money- types need references to other entities, e.g. country or currency.

    I hardly can imagine an example, where a complextype doesn't need a reference to another entity.

    If you want to persist a fine grained object model using orm you need it.

  • @James: Algorithms are not really inventions, they're discoveries of a way to do things. It's actually the same as with math: you can't patent that a*0=0 for some solution spaces, as it's simply a matter of a discovery.

    Sure, research is put into FINDING these algorithms, but that's not a reason to allow patents. Just because someone puts research in finding some solution to a problem doesn't justify a patent system. In theory, a patent system might work, but in practise it's not the case, because every stupid silly thing is filed for a patent, and if such a patent is granted, it's sometimes sold to patent troll companies, who didn't invent anything, just bought up the patent to squeeze license fees. As soon as that happens, the patent system works counter productive and actually stiffles invention and human progress.

    I'm not convinced that a patent system increases innovation, especially in software, in fact it only increases wealth and market share for big corporations and limits the power of small(er) companies. One of the first hurdles is the price tag of filing a patent, which is very steep. Then, you have to make it worth something so you have to file lawsuits against competitors which violate your patent otherwise why bother filing the patent? This all costs a lot of money small(er) companies don't have.

    @ Gunter: I didn't refer to the Customer 1:n Order relationship, but to the fact that some parts of Customer, e.g. Address, are the full FK side of a relationship. That's particularly rare.

Comments have been disabled for this content.