On Dalke

Code, algorithms, languages, construction...
Post Reply
User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 28, 2012 1:44 am

Algorithms, indeed, do fall under patent protection. If an algorithm has a patent, it cannot be used without permission.

I doubt if Fabian or Robert have patented any of their algorithms, but I am certainly ready to be corrected on that.

As a suggested exercise, examine the C and Assembly language versions of the string operations I put here in a previous post in this thread.

You will see that the compiler has removed all the syntactic sugar from the code and left only the bare algorithm behind as assembly languge. Examine the C code carefully. I happen to know that these versions were produced independently by various authors at the same time. You can see by looking at the C code, that the code is not identical. While it is similar, this is certainly due to the task at hand (there are only so many ways that you can accomplish that simple string task). However, upon running the compiler against the C code, the syntactic sugar is squeezed out, leaving the bare assembly language algorithm behind. I think you will see upon examination of the assembly language that the assembly language produced is for all intents and purposes identical.

It is important to understand that the algorithm is not protected by a copyright -- only the implementation. This is, of course, exactly as it should be.

I think you will also find that other people's alpha beta implementations, their LRM implementations, their null move implementations, etc. closely resemble one another when viewed from the level of the generated assembly language. A close inspection will reveal, for basically almost any pair of programs that implement these things, "semantic equivalence" which means that the programs are performing the same steps. Of course, that is *exactly* what an algorithm is.

So, the logical step is to throw out every result from every ICGA contest that has ever been held. In addition, a press release should be sent to various publications, informing one and all that all persons who have ever entered an ICGA event are both liars and cheaters.

It is clear to me that many so-called computer scientists have no idea what an algorithm is. The *EXACT* steps of an algorithm are *NOT* protected by copyright. It is only the actual implementation that is protected. It is not like a story book where specific plot details cannot be identical.

Keep in mind that none of this is any sort of proof that Vas is innocent. It is only a demonstration that what the evidence *proves* is that Vas has done what everyone else has done. That is to say, he has used the algorithms of other programs in his program. This is, of course, a very good idea because it is stupid to reinvent the wheel every time you build a car.

I do not discount the possiblity that Vas has done something bad. He may well have. However, the evidence presented is entirely unconvincing to me.

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: On Dalke

Post by syzygy » Tue Feb 28, 2012 3:40 am

User923005 wrote:It is clear to me that many so-called computer scientists have no idea what an algorithm is. The *EXACT* steps of an algorithm are *NOT* protected by copyright. It is only the actual implementation that is protected. It is not like a story book where specific plot details cannot be identical.
If I try to make sense of your arguments, it seems to be your position that there cannot be copyright on compiled code (maybe apart from any included data such as text and graphics).

Or alternatively, that there can be copyright on compiled code, but that it is theoretically impossible to legally determine whether it was infringed.

Both positions are patently false.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 28, 2012 4:10 am

syzygy wrote:
User923005 wrote:It is clear to me that many so-called computer scientists have no idea what an algorithm is. The *EXACT* steps of an algorithm are *NOT* protected by copyright. It is only the actual implementation that is protected. It is not like a story book where specific plot details cannot be identical.
If I try to make sense of your arguments, it seems to be your position that there cannot be copyright on compiled code (maybe apart from any included data such as text and graphics).

Or alternatively, that there can be copyright on compiled code, but that it is theoretically impossible to legally determine whether it was infringed.

Both positions are patently false.
I hold no such position in either case. These are what is know as "straw man" arguments.
I will enjoy beating them to smithereens with you!

Take that! Pow! Sock! Kazowie!
The poor straw man has been defeated.
Let's sing a sad dirge for Mr. Strawman. His days are over.

However, I believe that binary output has every bit as valid a copyright as textual format.
And I believe that it is possible to determine that infringement has taken place from binary code. For instance, if some huge portions of the binary were literally identical that would likely be useful to demonstrate infringement. Since the program in question (Rybka) is a bitboard program and since the original program (Fruit) is not a bitboard program I think that such a method will be highly unlikely to prove successful. Hence, source code examination would probably be required.

It is possible that the existing information would be enough to get a subpoena for Vas' source code.

What I believe is very simple and I have stated it clearly, but perhaps I should say it again:
What has been demonstrated by the evidence against Vas has not been the theft of source code. It has been demonstrated that Vas has definitely used algorithms from Fruit in Rybka. Whether or not he has done something illegal or immoral is not at all clear from the evidence supplied. At least not to me. Other people seem to be thoroughly convinced of wrongdoing, and I find that very puzzling.

User avatar
lmader
Posts: 70
Joined: Thu Jun 10, 2010 3:22 am

Re: On Dalke

Post by lmader » Tue Feb 28, 2012 4:21 pm

User923005 wrote:What I believe is very simple and I have stated it clearly, but perhaps I should say it again:
What has been demonstrated by the evidence against Vas has not been the theft of source code. It has been demonstrated that Vas has definitely used algorithms from Fruit in Rybka. Whether or not he has done something illegal or immoral is not at all clear from the evidence supplied. At least not to me. Other people seem to be thoroughly convinced of wrongdoing, and I find that very puzzling.
I understand that you remain unconvinced that copyright and/or software license infringement has been shown.

However keep in mind that the ICGA decision was not about that. They did not try to claim a legal violation. Their decision was that Rybka was shown to be a derivative of Fruit, without proper citation or permission of Fruit's author (violation of their rule number 2). Furthermore, they believed the evidence that Rybka was derivative was strong enough that Vas needed to defend it. Vas refused. Thus their decision.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 28, 2012 8:19 pm

lmader wrote:
User923005 wrote:What I believe is very simple and I have stated it clearly, but perhaps I should say it again:
What has been demonstrated by the evidence against Vas has not been the theft of source code. It has been demonstrated that Vas has definitely used algorithms from Fruit in Rybka. Whether or not he has done something illegal or immoral is not at all clear from the evidence supplied. At least not to me. Other people seem to be thoroughly convinced of wrongdoing, and I find that very puzzling.
I understand that you remain unconvinced that copyright and/or software license infringement has been shown.

However keep in mind that the ICGA decision was not about that. They did not try to claim a legal violation. Their decision was that Rybka was shown to be a derivative of Fruit, without proper citation or permission of Fruit's author (violation of their rule number 2). Furthermore, they believed the evidence that Rybka was derivative was strong enough that Vas needed to defend it. Vas refused. Thus their decision.
They showed a few small fragments of high similarity. Of course, the same is true of every other program that uses algorithms from other programs, which is all of them.
If (indeed) Rybka has copied algorithms {and I agree, it has} then, by the letter of the law we might say that Rybka is guilty of violating point 2 of the ICGA agreement. Of course, every program {which is all of them above 2600 Elo} that use LMR and some of the other clever tricks from Fruit and Stockfish are equally guilty. Not to say that Vas is not in some way or other more guilty. But it has not been demonstrated convincingly to me.

The paper that I read said that code was copied. Or perhaps, that is how I interpreted what they said. My contention was that from assembly alone that cannot be demonstrated with any certainty unless there is a spectacular amount of matching. Even with a perfect match it is possible that someone has written their own implementation and the compiler in stripping away the syntactic sugar of high level code has made things seem a lot more similar than they really are (see my previous C code + assembly listing elsethread).

I don't think that the people on the board that convicted Vas were bad people. I think that their intention was to act in fairness and impartiality. However, the constuction of the panel and the findings were unfortunate. If you are going to make a public news release about someone being a cheater, I think that their should not be a shadow of a doubt. I have a whole bathtub full of doubt.

I don't expect everyone to agree with me. In fact, if nobody agrees with me, that is their business. However, I would like everyone to think carefully about the process that was used and the severity of the penalty in connection with the doubtfulness of the evidence and ask themselves, "Should we redesign this awful mess?"

IMO-YMMV

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: On Dalke

Post by syzygy » Tue Feb 28, 2012 9:14 pm

User923005 wrote:I hold no such position in either case. These are what is know as "straw man" arguments.
Mine weren't even arguments, let alone straw man arguments. I was only trying to make sense of your arguments.

You seem to find your string operations example very important:
User923005 wrote:As a suggested exercise, examine the C and Assembly language versions of the string operations I put here in a previous post in this thread.

You will see that the compiler has removed all the syntactic sugar from the code and left only the bare algorithm behind as assembly languge. Examine the C code carefully. I happen to know that these versions were produced independently by various authors at the same time. You can see by looking at the C code, that the code is not identical. While it is similar, this is certainly due to the task at hand (there are only so many ways that you can accomplish that simple string task). However, upon running the compiler against the C code, the syntactic sugar is squeezed out, leaving the bare assembly language algorithm behind. I think you will see upon examination of the assembly language that the assembly language produced is for all intents and purposes identical.

It is important to understand that the algorithm is not protected by a copyright -- only the implementation. This is, of course, exactly as it should be.
So what exactly does this prove then?

I think what you are trying to say is that for this example of yours, there is no "copyrightable" distinction between the object code obtained from compiling the first version and the object code obtained from compiling the second version. I think you are even implying that essentially any source code implementing these string operations will compile to essentially the same object code. Your conclusion seems to be that based on the object code, you can't say anything regarding the originality of the source code. This is because all originality was weeded out by the compiler. The object code corresponds to the algorithm and is unprotectable by copyright.

So far this is all fine and dandy. I do not disagree. I don't think anyone disagrees.

However, what is the point of your examples? I must assume that you are not mentioning them for nothing. Indeed, you seem to be putting great weight on them.

I can make sense of why your are giving these examples if I assume that you consider these examples to be representative of all algorithm / source code / object code relationships, or at least for those related to chess programming. If these examples are indeed representative, that would mean that object code in general is free from the copyright on the source code from which the object code was compiled. However, in general, that is complete nonsense.

The other possibility is that you were NOT trying to imply that the string operation examples were representative. In that case, I can only conclude that you were bringing them forward as a straw man argument.

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: On Dalke

Post by syzygy » Tue Feb 28, 2012 9:18 pm

User923005 wrote:If (indeed) Rybka has copied algorithms {and I agree, it has} then, by the letter of the law we might say that Rybka is guilty of violating point 2 of the ICGA agreement.
Nobody involved in all of this has ever stated that this rule prohibited the copying of ideas. Yet you keep repeating this point. I'll refrain from trying to guess why your are doing this.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Tue Feb 28, 2012 10:38 pm

User923005 wrote:Algorithms, indeed, do fall under patent protection. If an algorithm has a patent, it cannot be used without permission.

I doubt if Fabian or Robert have patented any of their algorithms, but I am certainly ready to be corrected on that.
Computer algorithms can not be patented. Been the case for 30+ years now.

As far as different ways of doing things, the C library changes all the time. Check out the change to strcpy() that broke the 64 bit adobe flash player we all use. Things change regularly.
As a suggested exercise, examine the C and Assembly language versions of the string operations I put here in a previous post in this thread.

You will see that the compiler has removed all the syntactic sugar from the code and left only the bare algorithm behind as assembly languge. Examine the C code carefully. I happen to know that these versions were produced independently by various authors at the same time. You can see by looking at the C code, that the code is not identical. While it is similar, this is certainly due to the task at hand (there are only so many ways that you can accomplish that simple string task). However, upon running the compiler against the C code, the syntactic sugar is squeezed out, leaving the bare assembly language algorithm behind. I think you will see upon examination of the assembly language that the assembly language produced is for all intents and purposes identical.

It is important to understand that the algorithm is not protected by a copyright -- only the implementation. This is, of course, exactly as it should be.

I think you will also find that other people's alpha beta implementations, their LRM implementations, their null move implementations, etc. closely resemble one another when viewed from the level of the generated assembly language. A close inspection will reveal, for basically almost any pair of programs that implement these things, "semantic equivalence" which means that the programs are performing the same steps. Of course, that is *exactly* what an algorithm is.
That's a challenge one can address directly and simply. How about we use (say) Crafty and Fruit? The easiest comparison would be to compile just the search function for both, and then use hexrays to decompile it so that it would be easier for non-asm folks to read. If the asm is "close" the decompiled C should be "close" agreed? You might be in for a HUGE shock, however.

So, the logical step is to throw out every result from every ICGA contest that has ever been held. In addition, a press release should be sent to various publications, informing one and all that all persons who have ever entered an ICGA event are both liars and cheaters.

It is clear to me that many so-called computer scientists have no idea what an algorithm is. The *EXACT* steps of an algorithm are *NOT* protected by copyright. It is only the actual implementation that is protected. It is not like a story book where specific plot details cannot be identical.

Keep in mind that none of this is any sort of proof that Vas is innocent. It is only a demonstration that what the evidence *proves* is that Vas has done what everyone else has done. That is to say, he has used the algorithms of other programs in his program. This is, of course, a very good idea because it is stupid to reinvent the wheel every time you build a car.

I do not discount the possiblity that Vas has done something bad. He may well have. However, the evidence presented is entirely unconvincing to me.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Tue Feb 28, 2012 10:40 pm

syzygy wrote:
User923005 wrote:If (indeed) Rybka has copied algorithms {and I agree, it has} then, by the letter of the law we might say that Rybka is guilty of violating point 2 of the ICGA agreement.
Nobody involved in all of this has ever stated that this rule prohibited the copying of ideas. Yet you keep repeating this point. I'll refrain from trying to guess why your are doing this.

It has been "the method of argument" for several years now...

wgarvin
Posts: 47
Joined: Thu Jul 01, 2010 3:51 pm
Real Name: Wylie Garvin

Re: On Dalke

Post by wgarvin » Tue Feb 28, 2012 11:34 pm

hyatt wrote: Computer algorithms can not be patented. Been the case for 30+ years now.
ARGH! God how I wish that were true, but its NOT. Over 200,000 software patents have been issued in the U.S. and many more are in the queue (total patent backlog >1 million). The practice of patenting software algorithms in the U.S. goes back decades (the first arithmetic coding patent I know of was issued in 1978, before I was born--that one has expired, of course). I've seen estimates of 30,000 issued software patents in Europe, which currently have no legal basis: they patent algorithms by dressing them up in complex legal verbiage. Not all of the patents would be enforcable in court of course, but proving non-infringement is quite difficult. RIM paid hundreds of millions of dollars in settlement money to NTP over a bunch of bogus patents which were rejected later in reexamination, because they couldn't afford to spend 5+ years trying to prove their invalidity in court.

Software patents are a weapon that large companies use to raise costs for their smaller competitors. They serve no useful purpose, and are actively harmful by creating ways you can be sued just by unknowingly implementing someone's patented algorithm. Any large software program probably treads on dozens or hundreds of issued software patents. The U.S. patent system is completely fucked up when it comes to software patents. Unfortunately, too many parasitic organisms have a vested interest in keeping it that way for the situation to be easily fixed, despite the huge harm its doing to U.S. innovation.

Post Reply