However, after my last blog entry, I have had multiple twitter interaction with a twitter user (@DrPantera). And finally I have decided that I have to post something that should serve as general standards education.
I want reproduce every interaction (which, by the way are in Spanish) but just give some general ideas. During our twitter discussion this user said:
- Only Microsoft can implement ISO/IEC 29500.
- It is nonsense standardizing a tool that only one company can implement.
I think both assertions are false. Firstly, I will explain why.
ISO/IEC 29500 defines a set of standard files format. So, it is not appropriate to speak about implementing the ISO/IEC 29500. What somebody can implement is a tool to produce, read, process, render (or whatever) files in such a format.
Anyway, the real argument was that as some parts of the format are protected by patents, only the patent holder (Microsoft in this case) can implement it. I argued, that another company could license the patent. The counterargument is that only licensed companies would implement. That's right, that is how business work.
As the discussion was going on. I thought that instead of speculating the right thing was to go the right source: ISO.
Reading this page about Standards and Patents in the ISO Website was crystal clear:
First: ISO, IEC and ITU have a common patent policy. I am not a lawyer, read it yourself to be sure. However what I interpret in short is that if a deliverable contains provisions depending on a patent there are 3 options: either the patent holder agrees to negotiate licenses free of charge or the patent holder agrees to negotiate licenses with charge or the provisions are removed from the deliverable. In all cases license negotiations need to be on a nondiscriminatory basis on reasonable terms and conditions.
Second: What model applies to ISO/IEC 29500? Well in the same page there is en Excel file with all the current standards and associated patent holders. OK. What doest it says about 29500? There are patent notes at the name of Microsoft and the entry is marked with an "F".
What does the "F" means. Literally: <"F" = Prepared to grant a license free of charge>.
By the way, according to the same sources:
- ISO/IEC 14496-14 (MP4) is related to a patent from Apple (US Patent numbers 6,134,243,6,453,355).
- ISO/IEC 15444-3 (JPEG) is related to a patent from Apple (6,134,243).
- ISO/IEC 32000-1 (PDF) is related to a patent from Adobe Sytems Incorporated
- ISO/IEC 11172 series (MP3) is related to patents from very long list of companies.
- ISO/IEC 14496-10 (MP4) is related to patents from another long lsit of companies.
There is an important point on all this. There are some things that we have been forgetting for a long time in Higher Education of Computer Professionals.
FIRST: An engineer must always be as agonostic as possible. This means that if possible he/she must go to the right sources to get the right information. Moreover, making claims only based on available date is included both in IEEE and ACM code of Ethics.
SECOND: Understanding of standards is essential to any Computer or Software Engineer these days. It is important to understand the technical issues in the standards. But as I have shown this is not enough. It is important also to understand which is are the rules of standards bodies, how different stakeholders are represented (or sometimes underrepresented) in standardization, which are the standardization procedures.
THIRD: A basic knowledge of law is also very important. I have shown here that sometimes national laws may enforce the use of a standard. It is also very important that we as engineers are able to understand the implications of intellectual property and the role of patents (where applicable).
And coming back to our code of ethics, I feel that this post is writteng according to item 10 of IEEE Code of Ethics (to assist colleagues and co-workers in their professional development and to support them in following this code of ethics), and similar provisions in the ACM code of ethics and in the ACM Software Engineering Code of Ethics.
IMPORTANTE NOTICE: If you find that anythin of this post is not true or has any inacurracy, please, contact me and I will correct it inmediately.