2012-09-21

Microsoft's Open Specification Promise

12.7.17: news.adds/openware/
Microsoft's Open Specification Promise

Microsoft Open Specification Promise (or OSP),
is a promise by Microsoft, published in September 2006,
to not assert legal rights over certain Microsoft patents
on implementations of an included list of technologies.[1]

The OSP licensing covers any use and any implementations
of an appended list of covered specifications.
It is limited for implementations to the extent that
they conform to those specifications.
This allows for conformance to be partial
and does not require the conformance to be perfect.[2]

Compatibility with open source licensing
The OSP is effectively a patent sublicense to everyone
limited to use with certain formats and required technology
to implement OSP licensed formats.

Open source licenses, in general, deal with
licensing of copyrights of contributors to the software.
GPLv2 is an example of such copyright licensing.
GPLv2 does not grant you 3rd party (patent) rights.

The open source software (OSS) licensing deals with
copyrights on the source code created by the contributors.
Source code based on an OSP licenced format specification
has its own copyrights and is therefore
sublicensable by the contributors themselves.
The OSP is only about patent rights.
It grants additional rights to implementers and users
to the OSS licensing.

Because Microsoft through the OSP grants patent rights to anybody that
implements or uses technology required for OOXML
there is no need for sublicensing of patent rights through the GPL.
OSS users and implementers get the same rights automatically.

An OSS implementer that uses GPL software which
implements an OSP licensed format,
is granted certain copyrights on the software
through his GPL license,
which are granted by the prior software contributors;
and, is allowed to use Microsoft patents
for required format related technology through the OSP license.

Scope limitation
The Software Freedom Law Center, which provides services to
protect and advance free software and open source software,
has warned of problems with the Open Specification Promise
for use in free software / open source software projects.
In a published analysis of the promise it states that[7]
    "...it permits implementation under free software licenses
    so long as the resulting code isn't used freely."[8]
On March 12, 2008 the Software Freedom Law Center warned
over a possible inconsistency with GPL[8]
and in specific the limited scope of the OSP.
This applies specifically to the patent promise scope
being limited to conforming implementations of
covered specifications only.

Effectively when an implementer owns a patent
and builds that patent technology in GPL3 licensed code,
the implementer grants those first party rights patent rights
downline to all re-users of that code.[9]
If you use third party OSP protected patents in GPL3 code,
you cannot sublicense those,
and the OSP scope is limited to required (normative) parts
of the covered specification.
This means that when the code is reused,
the OSP only applies as long as the reuse of that code is
limited to implementing the covered specifications.
If the OSP was not limited in that way,
you could implement all patented technology
in a GPL3 code implementation
after which the code patented technology could be reused freely
for all other possible implementations.
The limitations of a one-sided patent promise
only applying to covered specifications
is also present in the IBM
Interoperability Specifications Pledge (ISP)
and Sun Microsystems' OpenDocument Patent Statement

This means, for example, that use of the
required Sun patented StarOffice-related technology for OpenDocument
should be protected by the Sun Covenant,
but reuse of the code with the patented technology
for non-OpenDocument implementations
is no longer protected by the related Sun covenant.

The OSP similarly can be used to freely implement
any of the covered specifications in OSS
but its scope is limited to the covered specifications
and cannot be used to transfer Microsoft patent rights
to other implementations of non covered specifications
for instance by using the technology in code that has a
patent transferring software license.

For this reason the SFLC has stated:
    "The OSP cannot be relied upon by GPL developers
for their implementations
not because its provisions conflict with GPL,
but because it does not provide the freedom
that the GPL requires."[8]

The SFLC specifically point out:
    new versions of listed specifications
    could be issued at any time by Microsoft,
    and be excluded from the OSP.
    any code resulting from an implementation of
    one of the covered specifications
    could not safely be used outside the very limited field of
    use defined by Microsoft in the OSP.[8]

The Microsoft OSP itself mentions the GPL in two of its FAQs.
In one it says,
    "we can’t give anyone a legal opinion about
    how our language relates to the GPL or other OSS licenses"
In another, it specifically only mentions
the "developers, distributors, and users of Covered Implementations",
so excluding downstream developers, distributors, and users of
code later derived from these "Covered Implementations"[8]
and it specifically does not mention
which version of the GPL is addressed,
leading some commentators to conclude
that the current GPL 3 may be excluded.[10]

    Q: I am a developer/distributor/user of
    software that is licensed under the GPL,
    does the Open Specification Promise apply to me?
    A: Absolutely, yes.

The OSP 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 OSP provides the assurance that Microsoft will not assert
its Necessary Claims against any entities who
make, use, sell, offer for sale, import, or distribute
any Covered Implementation under any type of
development or distribution model, including the GPL.
microsoft and freedomware arguments:
GrayKnowlton 2008`
A disappointing surprise from the SFLC

They say "The OSP cannot be relied upon by GPL developers
not because its provisions conflict with the GPL
but because it does not provide the freedom
that the GPL requires."
They go on to identify that "freedom" being linked to
the OSP being unsafe is because new versions of the specifications
could be excluded from the OSP in the future.

It is unusual for promises like the OSP to
automatically include every spec or all future versions
(IBM's pledge is exactly like ours).
The norm is for new versions to be added to them to be covered.
In the case of Sun's statement
new versions are automatically added only when they
participate in the development of the new version
to the extent that the OASIS IPR rules
would then obligate them to provide patent rights
under the OASIS IPR Policy.
None of these promises include future versions of the specifications
without any qualification.

Let's deal with the points one by one:
Irrevocable only for now
This section points out that the OSP only applies to
listed versions of covered specifications.
True, except that we have already committed to
extending it to ISO/IEC DIS 29500
when it is approved in our filing with ISO/IEC.
For ODF, IBM in their ISP takes the identical approach.
Strange how things that seem appropriate for ODF
are not appropriate for Open XML.

OSP covers specifications not code
Not true. The OSP is a promise to not assert
patents that are necessarily infringed by
implementations of covered specifications.
Like all similar patent non-asserts
(including the Sun and IBM versions for ODF)
the promise covers that part of a product that
implements that specification
(and not other parts that have nothing to do with the specification).
While the Sun covenant is silent about
conformance to the specification,
the OSP allows implementers the freedom to implement
any (or all) parts of a covered specification
and to the extent they do implement those portions
(also known as conform to those parts)
they are covered by the promise for those parts.
Contrast that to the IBM pledge that requires total conformance
and so programming errors or absence of
something required by the spec
(but not by an implementer's product)
means that the promise is totally void for that product.

No consistency with the GPL
Not true. As far as we are concerned
we are happy to extend the OSP to implementers who
distribute their code under any copyright license including the GPL.
The FAQ cited just states what everyone knows and acknowledges,
the GPL is a copyright license that is drafted in a way that
leaves many issues (not just those related to patent rights)
open to many interpretations.
Any particular user or implementer
should read the GPL carefully and make their own judgment about
what it means and requires
in accordance with their own circumstances.
The FAQ states that Microsoft is not in a position
to give blanket advice about the GPL to others.

They missed these two FAQs for some reason...

"Q: Is the Open Specification Promise intended to apply to
open source developers and users of open source developed software?
A: Yes. The OSP 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,
and in fact several parties in the open source community
have specifically stated that the OSP meets their needs.
Moreover there are already a significant number of
implementations of Covered Specifications
that have been created and/or distributed
under a variety of open source licenses
as well as under proprietary software development models.
Because open source software licenses can vary
you may want to consult with your legal counsel
to understand your particular legal environment.
Q: Is this Promise consistent with open source licensing,
namely the GPL? And can anyone implement the specification(s)
without any concerns about Microsoft patents?
A: The Open Specification 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 specification(s).
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 specification(s)."
Bruce Perens 13 Mar 2008 1:58 PM FUD
The fallacy in your analysis is that
SFLC would not like IBM or Sun's patent covenants either.
They oppose software patenting in general,
Moglen has been very clear about that.
The reason that GPL developers find it
legally possible to work with Sun and IBM
is that both companies have contributed directly to the
development of GPL and LGPL code
implementing the same standards
that their covenants cover.
Thus, they are not only bound by their covenants,
but by the GPL language regarding patents,
which unlike the covenants
do adequately protect GPL developers.
While there are differing opinions about the GPL,
it is the same for any license.
If lawyers never disagreed,
there would be no reason for courts.
GPL3, and the two other licenses using its text,
LGPL3 and the Affero GPL3,
became perhaps the most legally scrutinized
licenses in the world during their development.
Most of the major corporations in software
had their lawyers on the GPL3 committees,
as did many organizations like W3C,
and many other interested parties.
Because of the very large and diverse legal team
that participated in its development,
we can put forward the GPL3 family of licenses
as more legally "solid" than, for example,
Microsoft's own licenses.
But GPL2 has done quite well in this regard too
- although we hear of many cases being settled
in favor of the GPL developer by SFLC and others,
no defendant has dared to go to court.
We also have Microsoft's past actions to consider
when we look at its present promises.
Nobody can argue that the company has behaved in a
hostile manner toward Free Software developers,
for example spreading patent FUD about our software
and yet over a period of years refusing to
disclose the particular patents and the code
that Microsoft feels they cover.
The ballot-box stuffing that occurred in ISO
is another example of current reprehensible behavior.
So, of course SFLC should interpret Microsoft's promises
in the worse possible light.
   Bruce Perens
Bruce Perens 13 Mar 2008 3:32 PM
Gray Knowlton wrote:
"Bruce, if you could please post a link on my blog
to action that Microsoft has taken
against people who have developed solutions using Open XML,
my readers would appreciate it.'
"
[. the problem with that is land mining:
you haven't stepped on us ... yet .
]
This is a common rhetorical device.
You propose your own straw-man,
and ask me to knock it down.

Gray Knowlton further wrote:
"If SFLC would be opposed to IBM's
approach to ODF protection,
then their report on ODF would have indicated so.
There is no mention of the IBM promise.
"
I have read the SFLC opinion letter. It is very clear
that their opinion relies on the
Royalty-Free rules of the OASIS ODF standard committee
and Sun and IBM's commitments to comply with those rules
as contributing members of that committee,
not just upon the covenants.
Microsoft did not choose to submit OOXML to a
standards organization that asserts that sort of rule.

But we should not pretend that this is just a legal question.
OOXML is so large that a programmer can not be expected
to learn it in his useful lifetime.
Fully 10 times the size of ODF,
to represent the same documents.
That's just one more reason (and there are others as well)
that Microsoft's sincerity is in question
- the proposed standards document doesn't appear to be
meant to enable competing implementations.
Bruce Perens 13 Mar 2008 3:50 PM
Gray Knowlton wrote:
"IBM in their ISP takes the identical approach."
Actually, that isn't the case.
Only the Microsoft covenant has that.
IBM's covenant does not have any language
excluding later versions.
Sun's covenant explicitly grants rights to later versions.
Jesper Lund Stocholm 14 Mar 2008 5:16 AM
Bruce,
> IBM's covenant does not have any language excluding
> later versions. Only the Microsoft covenant has that.
If you look at the IBM patent pledge guidance
you will find the text:
"How will IBM address additional specifications
or new versions of specifications on the list?
IBM will evaluate new versions or
additional specifications
for inclusion based on their consistency with the
objectives of this pledge
which is to support widespread adoption of
open specifications
that enable software interoperability for our customers,
and may, from time to time, make additional pledges."
This is basically a word-by-word replica
of the intent of the text in Microsoft's OSP.
> Sun's covenant explicitly grants rights to later versions.No it doesn't.
If you insist on nit-picking the wording
you must include the part of Sun's CNS where it says:
... "or of any subsequent version thereof
("OpenDocument Implementation")
in which development Sun participates
to the point of incurring an obligation,
as defined by the rules of OASIS,
to grant (or commit to grant) patent licenses
or make equivalent non-assertion covenants."
Notice the part
"in which development Sun participates".
GrayKnowlton 13 Mar 2008 3:50 PM
The "Nobody can implement Open XML" argument
ends here: silverlight-viewer-for-open-xml
and here: openxmlcommunity.org .
The "Sincerity" discussion ends here:
motivation-and-commitment-to-open-file-formats .
orlando 13 Mar 2008 4:06 PM
ooxmlisdefectivebydesign/
bad-surprise-in-microsoft-office-binary
Bruce Perens 13 Mar 2008 4:15 PM
Gray Knowlton writes:
"Not only do we disagree with the words,
Open XML already has many, many implmenetations
(which include IBM, Google, Novell, Apple and others)
to show for it.
"
It is deceptive to imply that those companies
rely on the OSP.
They have patent cross-licenses with Microsoft.
So much for sincerity.
Bruce Perens 13 Mar 2008 4:58 PM
Gray Knowlton writes:
"as far as I know,
we have no interop agreement with Google.
I could be wrong, but I've never seen one.
"
You are not seriously proposing that Google
is at any risk of patent aggression from Microsoft.
Agreements under NDA may exist, and even if they don't,
Google has a sufficient arsenal of legal talent, capital,
and blocking patents on Microsoft's own activities
that they can enforce a detente, or worse, upon Microsoft.
Your statement, again, was:
"The article says that
  "Microsoft does not provide protection for
  Open XML with the OSP."
Not only do we disagree with the words,
Open XML already has many, many implmenetations
(which include IBM, Google, Novell, Apple and others)
to show for it.
"
It is deceptive to imply that any of those folks
- especially Google - have to rely on the OSP.
GrayKnowlton 13 Mar 2008 8:12 PM
Again, if you're implying that
Google or any other company (big or small)
has to enter into some special agreement
to implement Open XML,
that is inaccurate.
Google had an implmentation of VML in its Maps product
long before the Open XML discussion started anyway.
Read: apis/maps/documentation/overlays .
Fiery Spirited 14 Mar 2008 4:13 AM
>Well, Bruce, I don't think we have a "big rich
>companies" section of the OSP, I think it applies
>equally to big and small companies.
I do totally agree.
The OSP give equal non-existent protection
to small and large companies.
Like already told
the large companies have protection from other sources
so it is a minor problem for them.
You say that Microsoft will extend the OSP
to the updated dis29500
...fairly given, isn't it? Problem is just that
Microsoft have not committed to actually
implement dis29500
or the future versions of that standard
so the OSP covering dis29500 is pointless.
What is needed is:
* Microsoft must promise to implement
the _full_ dis29500,
including upcoming versions, if they should be trusted.
* Microsoft must extend the patent promise
to exclude the right to sell the patents to patent trolls.
As written only Microsoft itself is bound to
not use the patents,
and that is obviously not enough.
* Microsoft must craft a OSP so that
the protection apply to the GPL and open source developers
even if these are used for commercial purposes.
* Microsoft must publish all patents they have
that concern dis29500.
This includes the many patents that
Microsoft have requested
after OOXML approval process begun.
* Microsoft/Ecma should remove the
nonsense requirement that
syntactic compability is enough to claim conformance.
The past behavior of Microsoft
is not the reason people don't
trust Microsoft about OOXML
...it is the current behavior that is the problem.
Reject dis29500 is the only sane conclusion....
Unless Microsoft take the above actions
the following results are very likely:
* The ISO label will be used by Microsoft
to fool people into using Office
since it "supports" an ISO standard
* Office 2007 will never faithfully implement dis29500
so all files produced
will lack interoperability with producers that
don't rely on the Microsoft DLL files.
* Microsoft will sell the patents to patent trolls
to attack competitors.
* Microsoft will use all application-defined points
and undefined points in the standard
to break real compability.
GrayKnowlton 13 Mar 2008 4:27 PM
Stepping back for a minute,
do you see how hard Microsoft is defending
the IPR policy for Open XML?
Could you understand why?
-- it's not because we want to meet the goals of the process
(the ISO process would not have begun without
passing ISO IPR guidelines,
that was addressed a long time ago),
it's because we are keenly interested in
the adoption of Open XML.
Does it make sense for us to propose a standard
then prevent people from implementing it?
-- I don't think so.
Anonymous Coward 13 Mar 2008 6:17 PM
"Does it make sense for us to propose a standard
then prevent people from implementing it? -- I don't think so.
"
In a world where governments and others
are starting to demand standardized document formats,
does it make sense for someone with
near-monopoly situation
to propose a standard then
prevent competitors from implementing it,
maintaining status quo with the cash cow?
Oh, wait..
GrayKnowlton 13 Mar 2008 8:12 PM
. in a world where accountability and compliance
are mandates,
there is little room for games and slight-of-hand.
I'd give the government ageinces a little more credit.
Ray B. 13 Mar 2008 9:47 PM Gray Knowlton said:
"It's not "Trust me." Regarding the ISO process,
ISO is the organization declaring that Open XML
passed their bar for IP requirements.
"
I don't see Open XML passing the bar,
I see it as Microsoft attempting to buy the bar(ECMA),
because if Open XML fails fast track,
Microsoft risks there cash cow to
growing government ISO document requirements.
They can't risk ODF ISO/IEC 26300(approved 2 Years ago)
get any more support!
You keep asking for examples of Microsoft
taking action against somebody's
Open XML implementation,
I say its far to Early,
they are still working on the "Embrace".
Microsoft won't "Exterminate"
until Open XML is an "approved" standard !
This is business as usual for Microsoft,
"Embrace, extend, and exterminate"
Embrace XML on there terms
(Open XML not ODF ISO/IEC 26300 )
Keep adding "custom" Extensions
(With the all powerful "IP")
Exterminate any body who uses there precious "IP"
it won't be tomorrow, or next week ...
Looking at Microsoft's history, and current actions.
They don't look like a company committed to
interoperability/coexistence!
GrayKnowlton 13 Mar 2008 10:03 PM
XML support in Office arrived 8 years ago
(which means code was written 10 years ago).
And while you're out looking for for the
Open XML actions we're taking,
you should dig up the history of
binary format specification licensing
we weren't doing since 2003,
and dig up that long list of actions we've taken
in addressing the thousands of applications
that read and write the binary formats.