Is it legal to write software to convert data from a proprietary format? I have created a piece of software that converts a proprietary format from the database blob of a large, well known commercial software company into the equivalent open source data type. The large commercial software company states the following on their copyright and trademarks page "This work is protected under United States copyright law and other international copyright treaties and conventions." and links to the DMCA. I was able to create the software because most details of the format were published in a post on their support forums and the rest I reverse-engineered. I now wish to open-source my software so others can use it. My question has two parts: Can I open-source this at all without getting sued? Can I refer to the trademarked product the file format came from in my software and documentation? (I'm assuming I can't use it in the name of my software) I'm in the UK. The large software company is in the US.
The words "proprietary format" are important. Are you sure the format is proprietary? If it is, then it's likely protected in which case they might have grounds to sue (but that does not mean they would definetly win). If the format is not proprietary, and so long as you don't share data which is proprietary then I believe you fine. I'm not a lawyer - but I cite GIF files as an example. They were still protected by the US and some other countries until at least the late 90s and there were various threats to open source linux companies who shared code that used the file format. I'm not aware of anything other than threats and never heard of any company being sued, let alone winning or losing. Another example that comes to mind is the RedHat ISO format. My understanding is RedHat could not stop anyone from sharing open source, but they could prevent folks from sharing the format they assembled and shared the open source. Again, I am not sure if it was ever tested in any court of law anywhere.
If you want to implement this or a similar feature, you'd look up the patents, and either get a license (unlikely that Microsoft would give you a license), or figure out how to implement the feature without violating the patent. An example how a company I worked for worked around a patent: In order to compress data. in the best possible way, the idea was to try eight different methods to compress the data and pick the best compressed data. There was a patent for that (even though to me, this was quite obvious). Workaround: The software tried eight different methods and reported a number from 1 to 8 indicating which method gave the best result (unlike the patent, which actually gave the best result). Then the data was compressed once using the best method. No patent violation. You'd probably want a patent lawyer to check if your idea how to implement the feature violates the patent or not, and how to get around it. It takes a specific mindset that you and I don't have. And even good lawyers who are not patent lawyers might not be able to help you there. Commercial vs. open source/free software makes no difference, except that Microsoft might not bother suing you if there is no money to be made. Unless the intent is to prevent you from implementing the feature, in which case the would sue companies without money as well.
For cases where this occurred within the United States, with works created on or after January 1, 1978: (the OP has since clarified that their scenario occurred elsewhere) By default, the author (the actual creator) of a work is the owner of the copyright. However, this is not the case if the work is a &quot;work made for hire&quot; for an employer. In that case, the company is considered the author of the work, and owns the copyright. From US Copyright Office Circular 09: If a work is made for hire, an employer is considered the author even if an employee actually created the work. The employer can be a firm, an organization, or an individual. Works are considered to be made for hire in two situations, as described by that circular (emphasis added): a) a work prepared by an employee within the scope of his or her employment or b) a work specially ordered or commissioned...if the parties expressly agree in a written instrument signed by them that the work shall be considered a work made for hire. If no written agreement was signed and no employment relationship existed, then ownership of the copyright to the software would go to the person who wrote it, and they would be able to do anything that a copyright holder could do with a work, including using it however they want or selling it. Do note that this would only apply to software or changes made by the person in this situation. They could not, for example, sell or distribute any other piece of the software written by other people without the copyright holder's permission, even if these pieces are necessary to use the software that this person created.
What you're talking about is called black-box reverse engineering. It can be done, and as long as you are meticulous in your record keeping the fact that it has been done should be an appropriate defence against copyright infringement. But that doesn't help against patent claims - while in copyright cases the fact that code has or has not been directly copied is critical, in patent cases it its irrelevant: if you use a patented method, it's a violation. You therefore will need to be careful about any patents that may have been issued to the original author, as well as avoiding copying.
Your GPL example detracts from the question: see this recent answer. Setting aside GPL-specific conditions, the legal underpinning of software licensing is copyright law, whereby copying source code or an executable is only allowed with the permission of the copyright holder. There are two partial exceptions: "fair use" (generally not relevant to software), and a specific statutory permission to copy software in particular ways (making a backup, plus the act of executing software which requires copying from disk to memory). The latter permission only applies if you have legally acquired a copy of the software. Which explains why nobody sells copies of software, they sell a license to use software (a subtle, legalistic distinction, which is essential to modern software qua business). The terms of the license say what you may and may not do: if you violate the terms, you do not have permission to copy the software, and are liable for copyright infringement. One limit on the terms is that they cannot take away a right that you already have by copyright law (e.g. "fair use" cannot be negated by a license term). Another limit is that the terms have to be consistent with contract law, hence the license cannot include a human centipede obligation – or, "all your stuff belong to us". When a contract is ambiguous, the ambiguity is construed against the writer, and that is also so with software licenses. Also like the situation with contracts, the terms have to be legal, that is, cannot deny some right or requirement encoded in law. There is a legal requirement that disclaimers have to be "prominent", and that holds of license terms. As for "tricking" a person, that's not supposed to happen, with a proper license. If you put stuff out there and say nothing, nobody has been given permission to copy the item. You can make it available to a specific named person, but that is limited to one person, thus a license includes language allowing anyone to copy, but also requiring that the license be retained with any subsequent copies. Hence B copies from A, and sees the license; B may share with C (assuming a decent license) but must include that or substantially equivalent license; and so on. A problem arises if B redistributes without original license, substituting a bogus license. When C copies, that copying is not done with the permission (implied or express) of A, and C could be open to legal consequences. B is also clearly open to consequences, since re-distribution with the self-perpetuating license is a violation of the terms of A's condition grant of permission. Ignorance of the true ownership of copyright is no excuse, and there is no general innocent-infringement exception to copyright law in the US. However, the part of copyright law that talks about remedies for infringement, 17 USC 504(b)(2) lessens the burden on the innocent infringer: In a case where the infringer sustains the burden of proving, and the court finds, that such infringer was not aware and had no reason to believe that his or her acts constituted an infringement of copyright, the court in its discretion may reduce the award of statutory damages to a sum of not less than $200. Still, not zero. I don't see how adding some NOPs would make it impossible to prove that you have a copy of someone else's IP. Perhaps it's not a trivial, but still quite possible.
As @amon stated in a comment, copyright requires creativity. If the author of a tool wants to claim copyright on the output of that tool, then that output must contain something that required the creativity of the tool author. For a tool that just re-indents its input, the output is created from the input with a mechanical, non-creative, transformation and the output does not contain any creative content that wasn't already present in the input. For that reason, authors of such tools can't claim any copyright on the output. For a tool like bison, which was mentioned in the comments, the output contains a measurable amount of creative content that was not present in the input, but which was provided by the authors of bison. For that reason, the authors of 'bison' do have a copyright claim on the output of the tool (for which they give a broad permission to use). So, the basic question becomes, how much of the (creative) content of the output can be traced back to the tool itself and not to the input that the tool processed. For linters/formatters, that is likely to be very little. For code generators, it can be anywhere between very little and all of the output. The license restrictions on the code produced by the tool itself are by default the same as the license restrictions on the source of the tool, but the tool author can choose to apply any other license to the tool code that ends up in the output. If the output of the tool is, at least in part, dependent on an input file, then the authors of the input file also have a copyright claim on the tool output (as their creative work influenced the output), so the tool author can not claim exclusive ownership. The usual situation is that for tools that don't add creative content to the output, the author explicitly states that the don't have any copyright claims on the output. For tools that do add creative content, that content might be released under very permissive conditions (like, "you can use the output as a whole for any purpose, but you can only separate out the code that comes from the tool's codebase if you adhere to the &lt;X> license")
Fair use is a four-factor test. Whether the use is commercial is part of just one of the four factors. Fair use is determined on a case by case basis, and it would be rather silly to assume that everything a user could post would be covered by fair use. Rather than just rely on the possibility of fair use, you may want to utilize the DMCA protections. Doing so can protect you from copyright liability for the user-generated content. You will have to register a DMCA agent, and expeditiously respond to takedown notices and counternotices.
You are correct that facts in general are not protected by copyright, and most raw data are facts. However, a collection of data may be protected by copyright as to its selection and organization. A use which copies such selection might possibly be copyright infringement. If data constitutes a trade secret it may be protected as such, and &quot;improper&quot; access might be unlawful. This would not apply to publicly available data or collections of data. If, to access a data set, one must sign or agree to a contract, that contract may limit the use of such data. Again, this would not apply to most publicly available data.