hristo wrote:bob wrote:hristo wrote:
Copyright, in its general form, is by no means constrained to "written material" only and this applies to computer software. The fact that your source code is translated into a binary representation doesn't remove the copyrights you held on the original code.
I hope I never implied otherwise. That would be identical to translating a book from English to German, for example. And it would be a copyright violation. But browsing through a book, to learn how the author delivers the story, and then using that is _not_ a copyright violation.
For an example, Clive Cussler starts his books in a time-travel back to the distant past, where some natural history event (A boat sinks, a bomber crashes at sea, etc) is carefully explained, adding some key detail that will be critical to plot development later. Then he time-shifts back to the present, and somehow works that ancient event into the tale to give the NUMA guys a way to thwart some global terror plan. Absolutely nothing would prevent me from using that same sort of "twist" to write my own books. You can't copyright a "style", just the actual document itself.
That was my point with computer software. You naturally hold the copyright on the source you write, and on any translation made from it which would include the executable. [...]
That was the point I was making. And disassembling a program to see how it works does not violate anything.
Copying the thing and claiming it as your own won't fly. But disassembling, learning how the thing works, and then using that to write your own is perfectly safe...
I guess we are in agreement then, on this particular topic.
Disassembling a binary executable is not, strictly speaking, illegal, however what you do with the dissembled code can be.
If there is a proof that the disassembled code was used in a product then there is as strong chance of copyright infringement case. There are many ways to prove (or assert) that such an action has taken place and in the case of Rybka vs Strelka the evidence is such that as an expert witness (or advisor) I would have only one option -- Strelka misappropriated code from Rybka. (I believe that if the source code for Strelka 1.0 is released then even more evidence for this 'theft' would be available. If you go to court this would be one of the issues, btw -- history, progression of the development cycle)
Aside from the above, the more pertinent question is the one that
Gerd Isenberg posed at the beginning of this thread. It is clearly not illegal to learn and use someone else's ideas, for the purposes that you see fit -- even if those ideas were obtained in an immoral and dishonest fashion.
However, if you use Rybka's ideas in your own software while completely disregarding the means by which those ideas were obtained and disseminated then you must also understand that others would use your ideas (or education) for purposes that might run contrary to what you believe is 'right' and 'just'.
If you want others to follow your moral standards and use your ideas in a way that is consistent with your intent, then you must extend this same courtesy to the ideas represented in Rybka -- for those ideas were surely not intended to be made public knowledge.
However, if the benefit from using Rybka's ideas is sufficient you will likely use them within your own product and for your own interests, even though you, personally, had nothing to do with their invention. As time passes you might feel obliged to help others understand those 'stolen' ideas and then demand that you are given something back in return ... I don't know.
If all of us were university professors we wouldn't be required, by the simple rules of life, to be able to create and actually sell our products -- fortunately, some of us have to create real products that consumers want to buy in a very competitive market and this necessity puts pressure on innovation and advancement. In the realm of chess software this is readily obvious -- regardless of how much I like Glaurung. (In fact, I would pay money for the privilege of using Glauring)
bob wrote:
There are many criteria that come into play, and I certainly don't understand or know all of them, when deciding on a copyright infringement, but I'm certain that "literal copying of source code" is not a requirement in the case of software.
Additionally, parts of your program can be protected by the very nature of their creation, for instance a table of values (or small poem) is embedded in your application. If this table cannot be easily derived from first principles and if the infringing party cannot show how this table was derived then you have an infringement. (considering that they couldn't have copied this table of values from somewhere else, it doesn't matter how easy it is to create the table if the can be created...
Now you are hitting on the essence of why we don't allow copyright to apply to a "program" in general, but specifically to its source and translated derivatives.
What set of values can't be produced by trial and error, when we are talking about any table that might appear in a chess program? It is easy enough to write a simple algorithm that can produce any set of parameters you want, totally by brute force... So it all goes back to proving that I stole your source or executable and used it in whole or in part, and that has proven to be _very_ difficult in all the copyright infringement cases I have followed over the years...
Unless you can show the 'simple algorithm that you used to discover the table' you are going to be toast. This is not a matter of speculation or hand-waving -- you have the table and I have the table, but you came up with that table first, I admitted to have looked at your table and then I
cannot show a way to derive it - case closed.
bob wrote:
That's the problem, in a nutshell. Here is my trivial program to find the values for a table of 32 different numbers:
Code: Select all
for (n1=lower; n1 < upper; n1++)
t]0] = n1;
for (n2=lower2; n2<upper2; n2++)
t[1] = n2;
....
....
{output t[[*] and test, save best}
In fact, we discover a lot of eval values for crafty in exactly that way. And it will work for anything, given enough time. And that is why numbers can't be patented or copyrighted, nor series of numbers, etc...
For example, the large table of "magic" numbers I use. Came from Pradu. They appear in several programs. And we all could have come up with the same numbers ourselves, just like we _could_ generate our own tablebases, but the effort would be wasted since it has already been done once.
You can lose your 'copyright' by failing to enforce it ... or there might be no copyright material to start with. It is a matter of expression and it is not very simple ... which was my point.
bob wrote:
If the infringing party admits to have disassembled your work and then literal or non-literal, as a result of translation (and consequent obfuscation), parts of the original are found in the derivative then you have very good chance of winning. (Notice that nowhere in this process one has to argue or defend the concept of 'idea')
The disassembly and finding duplication won't stand up.
There are a large number of different C/C++ code segments that can produce identical code when fed thru a good compiler.
For example:
a <= 8;
a = a * 256;
a = a * exp(2, 8);
and so forth. Proving that a group of assembly instructions is unique would be impossible. In fact, if you were to disassemble most bitboard based programs, you would probably find significant matches "just because that is the way things are done". And it would not prove copying at all. I think that would be a hopeless thing to prove with reasonable confidence.
All you are after is to show that your original work was used inappropriately. This is, usually, much easier to do when your work contains identifiable unique parts.
However, that is the sticky point as I mentioned. For example, old versions of Crafty used rotated bitmaps, with large tables of constants to generate moves.
If someone copied those, I would have no chance to get relief under copyright law because the numbers are not unique (no number on a computer is ever unique) since they can be generated by an algorithm, which can never be copyrighted or patented...
This is intermingling two concepts, IMO.
Your source code is just a bunch of numbers that can be derived through a random number generator -- this in no way impedes your copyrights and so I'm not sure what your point is.
Regards,
Hristo
p.s.
The appreciation for your work and your contributions with respect to computer chess is not in question. However, your perceived (expressed) attitude towards 'injustice' and 'abuse' is what makes me respond in the way that I do.
(Why is it that we still don't have the blueprints of Deeper-blue, or Hydra, or the source code of Hiarcs, or ...? It is because those people have worked very hard to get where they are (were) and they deserve to have possession of their own work. With your attitude, soon enough there will be only rental-software ... that runs on a server and outside of your control -- good days.)