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)