Well, since I made my post about the arguments surrounding Mono, Peter Galli of Microsoft has announced that Microsoft will be applying the Community Promise to the ECMA 334 and ECMA 335 specs. But what does this mean?
Get ready for a long post….
The Microsoft Community Promise states:
Microsoft Community Promise
Published: September 12, 2007 | Updated: February 12, 2009
First, what is a promise. The definition from Dictionary.com is ‘a declaration that something will or will not be done, given, etc., by one’. This is the first issue, how do you define ‘Microsoft’ as one? It’s an enormous company, and like any company that size, the staff including management constantly changes. The question is does this promise bind Microsoft forever, or just until the next management change?
Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation, to the extent it conforms to one of the Covered Specifications, and is compliant with all of the required parts of the mandatory provisions of that specification (“Covered Implementation”), subject to the following:
Sounds good so far. You can:
make – to bring into existence by shaping or changing material, combining parts, etc.
use – to employ for some purpose; put into service; make use of
sell – to transfer (goods) to or render (services) for another in exchange for money; dispose of to a purchaser for a price
import – to bring in (merchandise, commodities, workers, etc.) from a foreign country for use, sale, processing, reexport, or services
distributing – to divide and give out in shares; deal out; allot.
And that they do this if the product matches the specification, and includes ALL of the required parts. What if you redesign the application so that it doesn’t require a part that Microsoft thinks isn’t required? Easy. You aren’t covered.
This is a personal promise directly from Microsoft to you, and you acknowledge as a condition of benefiting from it that no Microsoft rights are received from suppliers, distributors, or otherwise in connection with this promise. If you file, maintain, or voluntarily participate in a patent infringement lawsuit against a Microsoft implementation of any Covered Specification, then this personal promise does not apply with respect to any Covered Implementation made or used by you. To clarify, “Microsoft Necessary Claims” are those claims of Microsoft-owned or Microsoft-controlled patents that are necessary to implement the required portions (which also include the required elements of optional portions) of the Covered Specification that are described in detail and not those merely referenced in the Covered Specification.
There are several issues here:
1) This is a personal promise. The word personal has a specific meaning, and that pertains to a person. Microsoft’s Community Promise does not apply to a corporation, partnership, charity, or any organisation of of any sort.
2) Then we run into a problem, the words ‘you acknowledge‘. You is clear. Acknowledge means ‘to admit to be real or true; recognize the existence, truth, or fact of’. This implies communication. Since you are not communicating with Microsoft by either vocal speech, or written speech, or even a web form, you are unable to acknowledge to Microsoft that you’ve benefited.
3) If you take part in a lawsuit which involves patents the promise is void. In simple terms if you attack Microsoft using patents, they’ll strike back, and considering the number of patent litigation suits that Microsoft has lost recently, I can’t blame them for including this exclusion. In fact I would think they were crazy if they didn’t include it.
4) Then it gets into a definition of what is covered, and patents are covered, however it doesn’t mention whether it applies to patents that have been invalidated through appeal to the patent board, or whether it applies to patents that have been invalidated in a court of law, or whether it would apply to patents that were legal in one country, but not legal in the country where the action had taken place.
This promise by Microsoft is not an assurance that either (i) any of Microsoft’s issued patent claims covers a Covered Implementation or are enforceable, or (ii) a Covered Implementation would not infringe patents or other intellectual property rights of any third party. No other rights except those expressly stated in this promise shall be deemed granted, waived or received by implication, exhaustion, estoppel, or otherwise.
In this portion they mention that Microsoft’s patents may not cover your implementation, or may not be enforceable. That’s great. If either is true, why is Microsoft making the Promise?
Then they say, ‘No other rights except those expressly stated in this promise shall be deemed granted, waived or received by implication, exhaustion, estoppel, or otherwise.’ The problem is that so far, it’s far from clear what rights Microsoft is granting.
Microsoft then goes into a bit of detail on what the words and phrases mean.
Covered Specifications (the Promise as set forth above applies individually to each of the following specifications)
This promise applies to the identified version of the following specifications. New versions of previously covered specifications will be separately considered for addition to the list and are covered only if specifically listed. In connection with the specifications listed below, this Promise also applies to the required elements of optional portions of such specifications.
Specifications covered as of this date are:
1) HealthVault Service Specification
2) C# Language Specification – Ecma-334, 4th Edition and ISO/IEC 23270:2006
3) Common Language Infrastructure (CLI) – Ecma-335, 4th Edition and ISO/IEC 23271:2006
4) UI Automation v1.0
There are other specifications with special terms.
Covered Specifications with Special Terms (the special terms as set forth on the individual download page for each listed specification apply)
For the applicable terms, please see the official Microsoft download page for the listed specifications.
1) XPS Specification v1.0
2) VBA Language Specification
Microsoft has also published an FAQ
Frequently Asked Questions
The Microsoft Community Promise is a simple and clear way to assure that the broadest audience of developers and customers working with commercial or open source software can implement specifications through a simplified method of sharing of technical assets, while recognizing the legitimacy of intellectual property.
‘Intellectual Property’ is in invalid concept. Copyright, Trademark, and Patent are valid concepts. By using the term ‘Intellectual Property’ Microsoft is attempting to obscure the issue as to exactly what is covered. It has to be one or more of Copyright, Trademark, and Patent, however by not specifying which Microsoft leaves developers with no knowledge of what exactly they will be covered for, if anything.
We listened to feedback from community representatives who made positive comments regarding the acceptability of this approach.
Um, which community? Names would be useful.
COMMUNITY PROMISE GENERAL
Q: Why did Microsoft take this approach?
A: It was a simple, clear way, after looking at many different licensing approaches, to reassure a broad audience of developers and customers that the specifications could be used for free, easily, now and forever.
The problem is that it is neither simple nor clear, with the exception of one word, which should have been included in the main section – forever. Since this is in the FAQ, instead of the promise, we can’t be certain that the word actually applies.
Q: How does the Community Promise work? Do I have to do anything in order to get the benefit of this CP?
A: No one needs to sign anything or even reference anything. Anyone is free to implement the specifications as they wish and do not need to make any mention of or reference to Microsoft. Anyone can use or implement these specifications with their technology, code, solution, etc. You must agree to the terms in order to benefit from the promise; however, you do not need to sign a license agreement, or otherwise communicate your agreement to Microsoft.
Again, why is this not in the main section? Since it’s in the FAQ it’s useless.
Q: What is covered and what is not covered by the Community Promise?
A: The CP covers each individual specification designated on the public list posted at /interop/cp/. (Some specifications include special terms; these are noted.) The CP applies to anyone who is building software and or hardware to implement one or more of those specifications. The CP does not apply to any work that you do beyond the scope of the covered specifications.
Q: How is the Community Promise (CP) different from the Open Specification Promise (OSP)?
A: The CP requires that implementations conform to all of required parts of the mandatory portions of the specification. Also, in specified cases (such as where the specifications have uses that exceed those needed to achieve the interoperability needs for which the release under the CP is being made), the CP may have special terms concerning what kinds of implementations are covered.
You must comply to ALL of the required parts of the mandatory parts of the specification. If you don’t, because you either don’t need to, or because you were able to design an implementation that doesn’t require the entirety of the specification, you can’t covered. This is a slap in the face to innovation.
Q: If a listed specification has been approved by a standards organization, what patent rights is Microsoft providing?
A: We are providing assurances regarding necessary claims consistent with the scope of our commitments in that organization.
So if Microsoft has a patent that technically is outside the scope of the organization, but which is infringed by your project, even if your project is an implementation that is covered, Microsoft can sue you.
Q: What if I don’t implement the entire specification? Will I still get the protections under the CP?
A: The CP applies only if the implementation conforms fully to required portions of the specification. Partial implementations are not covered.
No partial implementations. No Innovation.
Q: The specification I am interested in has some required portions and some optional portions. Does the CP apply to both?
A: Yes, the Promise also applies to the required elements of optional portions of such specifications.
Again, why does it not say this in the main part of the promise? Anything included in the FAQ isn’t technically part of the promise. It may not be legally binding.
Q: Does this CP apply to all versions of the specification, including future revisions?
A: The Community Promise applies to all existing versions of the specifications designated on the public list posted at /interop/cp/, unless otherwise noted with respect to a particular specification.
Now this is the most interesting set of weasel words I have ever seen! A simple yes or no would have given a clear answer. Instead we get something that is open to several interpretations. After reading it several times, the only answer I can give is ‘MAYBE”.
Q: Why doesn’t the CP apply to things that are merely referenced in the specification?
A: It is a common practice that technology licenses focus on the specifics of what is detailed in the specifications and exclude what are frequently called “enabling technologies.” If we included patent claims to the enabling technology, then as an extreme example, it could be argued that one needs computer and operating system patents to implement almost any information technology specification. No such broad patent licenses to referenced technologies are ever given for specific industry standards.
This is not true. See IBM Contributes 500 U.S. Patents to Open Source.
Q: Is this CP sub-licensable?
A: There is no need for sublicensing. This promise is directly applicable to you and everyone else who wants to use it. Accordingly, your distributees, customers and vendors can directly take advantage of this same promise, and have the exact same protection that you have.
The way this is worded, this may not be compatible with the GPL or BSD licenses.
Q: Is this Community Promise legally binding on Microsoft and will it be available in the future to me and to others?
A: Yes, the CP is legally binding upon Microsoft. The CP is a unilateral promise from Microsoft and in these circumstances unilateral promises may be enforced against the party making such a promise. Because the CP states that the promise is irrevocable, it may not be withdrawn by Microsoft. The CP is, and will be, available to everyone now and in the future for the specifications to which it applies. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.
It doesn’t say this in the main body. Saying this in the FAQ doesn’t make it so.
Q: Is the Community Promise intended to apply to open source developers and users of open source developed software?
A: Yes. The CP applies directly to all persons or entities that make, use, sell, offer for sale, imports and/or distributes an implementation of a Covered Specification. It is intended to enable open source implementations. Because open source software licenses can vary you may want to consult with your legal counsel to understand your particular legal environment.
Some really good advice. SEE YOUR LAWYER!
Q: Why does Microsoft obtain patents that apply to specifications to which the Community Promise apply? Is that something that others do too?
A: Microsoft invests a significant amount of resources in research and development efforts. Like any other company that commits such resources to creating new technologies, Microsoft seeks to protect its investment by obtaining patents on the resulting innovations. At a minimum, patents have value in defending Microsoft with regard to patent infringement claims made by others. Many patent owners use their patents defensively to protect themselves against third-party law suits when they make their patents available under reasonable and non-discriminatory (RAND or RAND-Z) terms and conditions (including promises like the CP).
This of course brings another question into view. Is software patentable? There are various interpretations of the law on this point by different lawyers, most of which disagree. Until the Supreme Court rules on Bilski no one knows for sure.
Q: What is the difference between copyrights and patent rights and why doesn’t the Community Promise include copyrights?
A: Patents protect the creation or improvement of a novel and useful method, device, process, or material. By contrast, copyrights protect a particular expression or implementation of an invention but not the underlying invention itself. For example, copyright protects the intellectual property rights associated with owning or distributing a copy of the specification as a document. In the particular case of the CP, copyrights in the Covered Specifications are made available by the publisher of the particular specification. When specifications are published by standards setting organizations, those organizations provide the copyright license. When Microsoft is the publisher of the Covered Specification, a copyright license is provided either as a part of text of the Covered Specification itself, or in a separate document. Copyrights in the Covered Specifications are not provided through the CP because, in the instances where the standards organization owns the copyright in the Covered Specifications, Microsoft does not have the ability to provide such rights.
Copyrights and patents are different beasts. If you don’t know what the difference is, I suggest you check the articles on Wikipedia, and remember that the laws vary from country to country.
Q: Is this Promise consistent with open source licensing, namely the GPL? And can anyone implement the specifications without any concerns about Microsoft patents?
A: The Community Promise is a simple and clear way to assure that the broadest audience of developers and customers working with commercial or open source software can implement the covered specifications. We leave it to those implementing these technologies to understand the legal environments in which they operate. This includes people operating in a GPL environment. Because the General Public License (GPL) is not universally interpreted the same way by everyone, we can’t give anyone a legal opinion about how our language relates to the GPL or other OSS licenses, but based on feedback from the open source community we believe that a broad audience of developers can implement the specifications.
In simple terms, see your lawyer.
Q: I am a developer/distributor/user of software that is licensed under the GPL, does the Community Promise apply to me?
A: Absolutely, yes. The CP applies to developers, distributors, and users of Covered Implementations without regard to the development model that created such implementations, or the type of copyright licenses under which they are distributed, or the business model of distributors/implementers. The CP provides the assurance that Microsoft will not assert its Necessary Claims against anyone who make, use, sell, offer for sale, import, or distribute any Covered Implementation under any type of development or distribution model, including the GPL. As stated in the CP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.
Again, this would have been better to have been included in the main body rather than the FAQ.
So why didn’t Microsoft’s lawyers include this in the main body? Microsoft’s lawyers aren’t stupid (I know one of them, she’s a really smart lady). So why did they write it in this confused way?
I don’t know. It doesn’t make any sense.