Crafty accused of copying Fruit PST

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Curious !

Post by bob »

Sven Schüle wrote:
Dirt wrote:
Desperado wrote:I agree with you fully that formulars are not copyrightable, and i add
that reversed engineered ideas,formulas are a matter of interpretation, opinion.
It is not possible to give 100% centainty that what someone interprets is inteded to be the point.
Even if an individual formula isn't copyrightable, if you use 100 formulas and 99 are the same as in another program, that probably is a violation.
If it were as you say, then where would be the borderline? At 50? 10? 90? Why is using one non-copyrightable item no violation but using N+1 non-copyrightable items a copyright violation for some N?

Sounds wrong to me.

Sven
Wrong, but is according to standard copyright law. A single chess game can not be copyrighted. A collection of chess games that you put together, and which takes some effort to put together is copyrightable. Fischer's 100 greatest games can be copyrighted. Bob's 100 greatest games can be copyrighted. I am aware of no "minimum number of games required." Whether one would actually challenge over "Bob's 2 greatest games" is an issue that might not be very clear.

Copyright is less about the "characters" and more about "the effort to arrange the characters into something interesting." It is the "effort" that is being protected, not the characters themselves.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: protection of ideas and formulas?

Post by bob »

Sven Schüle wrote:
bob wrote:I do not believe that many evaluation terms become a "simple formula." I suspect you are using the term "formula" to mean "defined implementation."
No, this is completely wrong. My term "formula" describes a conceptual definition of the way how an evaluation term (criterion, feature) shall be calculated, independent from data structures and concrete values. Again you are proving that you do not understand what I write.
On the contrary, it proves you do not understand what YOU write. A formula is NOT a "conceptual definition". It is an exact expression of a mathematical idea that can only be implemented in one way, if it is something that can not be copyrighted. Example: Sort is _NOT_ a formula. "Pick the best capture" is not a formula. There are hundreds of ways to do the latter, which means that "formula" is completely subject to the copyright law.

That's the problem in the current discussion. You are mis-using the legal term formula as discussed in copyright law. It is, simply, an expression that can only be implemented practically using one fixed approach. If there are multiple ways to implement it, it does not fit into the "can't be copyrighted formula" discussion at all. Mark has given examples of this.

bob wrote:I have given several examples of a pretty precise evaluation term one might want to use, yet there are MANY different ways that can be implemented.
You haven't. Please don't try changing things that were written. I gave an example "knight mobility" and a formula to calculate it, and you provided a verbal description of four possible implementations (referring to concrete data structures leaves the "formula" level) from which two were unrelated to the formula that I had defined. That was not anywhere near being precise :-) And it was also not "giving examples of an evaluation term" but "giving examples of implementations for the evaluation term I had defined, two of which were wrong".
That was the point. If you use a "formula" where there is more than one way to implement it, copyright law applies explicitly to the way it was implemented. Your examples are so vague that there are dozens of ways to address each point, which means each program you write would be copyrighted doing those things. And if someone does one of them differently, that does not necessarily make it not a copyright violation, because the "overall process" you used to evaluate passed pawns is, itself, copyrightable since there are multiple ways to do it. So you can't do the same things in the same order using the same numbers, and just change the way one piece is implemented, and then claim "this is not a copy of your code because of this one small change." You won't win that case...

bob wrote:Even with a mathematical formula, there is often more than one way of implementing it. For example, direct computation; a monte-carlo simulation; an approximation that is much faster to compute...
We are not in the general space of mathematical formulas, I am talking about formulas to calculate evaluation terms. "Monte carlo" is off-topic there. Don't try to obfuscate the topic. If you have a bitboard engine and decide to evaluate knight mobility by assigning a bonus linear in the number of pseudo-legal knight moves then the efficient implementation of that IS straightforward. Same for many other eval criteria.
But "linear in the number..." is not the only way one can do mobility. So you don't get to say "this is they way I did mine, and it does not violate your copyright just because our knight evaluations are identical everywhere else except for this little detail. If a concept has multiple ways to implement it, then it is subject to copyright when it is implemented. And surrounding code that uses it can be copyrighted and a copier can't use the argument "I did everything like you, same things, same order, except for "this" piece. And there the court would likely rule "correct, that tiny piece is your original work and since there are other ways to implement it, you own the copyright on that. But ALL the code around it that matches the other program is a violation of HIS copyright and you are guilty of infringement...

Your argument seems to be "If I can break an evaluation down into a group of simple ideas" I can get around copyright because the simple ideas can not be copyrighted. Correct so far as it goes, just like a single PGN game can not be copyrighted. But a collection of simple ideas arranged in a specific way or used in a specific way can be copyrighted just as surely as a collection of PGN games can be copyrighted. And a PGN collection can definitely be copyrighted.

But even if it were not, the key point is that it shall be considered legal to use a formula like "assign a bonus linear in the number of pseudo-legal knight moves" without being accused of code copying if the implementation of that formula looks similar to the implementation of the same formula in another program.
A single "only-way-to-implement" idea can't be copyrighted. But a COLLECTION of such ideas absolutely can. Again, the PGN example is the easiest to understand.
bob wrote:In your analysis above, your definition of "formula" is way off base, IMHO. For example:

Formula = "assign constant high bonus if the condition is true"

That's not a formula. It has the "if the condition is true" part which can be implemented in many different ways.
It is a formula, even though it does not include the description how to detect the condition "enemy king is outside the 'pawn square'", or "friendly king sufficiently guards the passer". But you can be really, really sure that that missing part is so heavily dependent on the board representation that we do not need to consider it for a "code copying" discussion. When talking about "formulas" I am focussing on the calculation of the evaluation itself, not so much on detection of precisely defined conditions on the board. That could even be code in a totally different part of the program, like a Board class (in C++) where things like "king is outside pawn square" are handled independent from their application in the evaluation function. Such a low-level function is in the same league as a piece of code that tells you whether a given square is empty, just with some more lines of code.
About all I can say is that your understanding (or misunderstanding) of copyright law is keeping this conversation from reaching a rational conclusion. First step is to study and understand the single PGN vs collection of PGN issue, because that IS case law and already decided by the courts. Once you get that, you see why your basic argument is flawed. Because you think you can take a bunch of tiny uncopyrightable "ideas" and fuse them into a large uncopyrightable procedure. And that's wrong. That "procedure" is subject to copyright law if you spent any intellectual effort putting it together whatsoever.
bob wrote:that's why I don't accept your definition and explanation here. And a program might not assign "constant high bonus". It could be a dynamic but high bonus where the "dynamic part" requires additional computation to produce. Etc.
Irrelevant here. I defined the formula as "assign a constant high bonus", not a dynamic one. Again, don't obfuscate.
bob wrote:If you abstract far enough, you can say a chess program is a function F, with an input position P, such that best_move = F(P). And since that is a formula, the entire thing can't be copyrighted. The copyright standard and later opinions refer to this as "chicanery" because the implementation details have been torn away leaving only the idea "find the best chess move in a given position P". that doesn't meet any legal standard anywhere...
Obfuscating again. I am talking precisely about positional evaluation, not about fantasy formulas like F(P). Keep on topic, please.


As a result, you have provided zero convincing arguments but almost 100% attempts of changing the topic, or not wanting to understand. That is annoying and disappointing.

Sven
Perhaps you won't be so disappointed once you _really_ understand copyright law. I get to attend a presentation on this stuff every 5-10 years. It is beyond boring, but it sinks in over time...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: protection of ideas and formulas?

Post by bob »

rbarreira wrote:
Sven Schüle wrote: As a result, you have provided zero convincing arguments but almost 100% attempts of changing the topic, or not wanting to understand. That is annoying and disappointing.
^ Actually it is quite normal from what I've seen...
If you could actually follow the discussion, it might be different. So far, none of the arguments made in this thread match copyright law, and that is the issue.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty accused of copying Fruit PST

Post by bob »

Michel wrote:Has it been sorted out now which commit introduced the tainted PST in Crafty?
None. The Bishop PST was produced by code that was inserted in Crafty. It is clearly not a copy of Fruit code and initially had no back rank penalty nor diagonal bonus. The cluster testing was done changing the "increment" (the rate the penalties increase/decrease by rank or file, and then the "offset" which determines whether PST values go from 0 to 20 or -20 to 0 or -10 to 10. Once that was tuned, I removed a development penalty that was done in executable code and added the penalty to the back rank of the PST and then tuned the value with a few cluster test runs. Finally we tried the "fruity" bonus on the main diagonal (which worked) and I also tested a 1/2 bonus for the two adjacent diagonals (h1-a8 is one main diag, the adjacent ones were g1-a7 and h2-b8. That did not work.

This was tested in (I believe) version 22.2R71. I don't remember the exact Rxx number but I think that is right. The actual code was posted on the Rybka forum where this topic originated. All the other PST values in Crafty look nothing like fruit PSTs at all and one is implemented completely differently (Crafty has 3 king PST tables fruit has 1) and one is completely missing (Crafty has no rook PST values at all)...

I think that discussion died a deserved and speedy death...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Crafty accused of copying Fruit PST

Post by bob »

michiguel wrote:
bob wrote:
FWCC wrote:Well now Bob knows how Vas feels,what goes around comes around,hmmm maybe that explains the 1000 post on the Rybka Forum it's called GUILT?


FWCC
No, because I know I didn't copy any code. Vas knows he did. Unless you want to join the "I have no grasp of statistical probability" fraternity and continue to believe that he didn't copy Crafty in early versions, and fruit in later versions. Having one similar PST with the rest being wildly different doesn't mean much.
It is unbelievable how you are dealing with this. I was telling you that the probabilities you were using to say "it is impossible to match 64 numbers blah blah" were bogus. You challenged me to find a match in Crafty (you would be the worst attorney in the history of the universe) and... I did! and now, you completely change your speech to say that one is ok, but more is not. You are completely dismissing the fact that none of these things are independent while you call me (indirectly) part of the fraternity who have no grasp of statistical probability. At the same time, as I told you in the rybka forum, you are misrepresenting how similar the R1 tables to Fruit. Not all of them are a "match".

Miguel

I even produced the code I had saved with the version where we added B PSTs after having removed them a few versions previously. The rest of the PSTs in Crafty are wildly different from fruit, from having 6 for kings with grossly different values than either of the two fruit tables, to not having a rook pst at all, to again grossly different pawn PST square values. Not a thing was copied. Something that can't be said for Rybka unless you don't believe in probability theory at all.. and believe you can flip a penny 100 times on a flat surface and have it land on its edge every time... never a head or tail. I mean it _could_ happen, as the probability of that is not zero. So want to bet on it happening?
It is amazing how you want to twist facts. I NEVER said that just one identical PST would be convincing. Quite the opposite, and this can be found several times if you just look, I said "a single PST would be suspicious. 10 PSTs is _way_ more than suspicious. And I STILL stand by that statement. Just so happens my bishop PST is quite simple. The others didn't match very closely at all. Contrast that to fruit/rybka...
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Curious !

Post by Adam Hair »

Sven Schüle wrote:
Dirt wrote:
Desperado wrote:I agree with you fully that formulars are not copyrightable, and i add
that reversed engineered ideas,formulas are a matter of interpretation, opinion.
It is not possible to give 100% centainty that what someone interprets is inteded to be the point.
Even if an individual formula isn't copyrightable, if you use 100 formulas and 99 are the same as in another program, that probably is a violation.
If it were as you say, then where would be the borderline? At 50? 10? 90? Why is using one non-copyrightable item no violation but using N+1 non-copyrightable items a copyright violation for some N?

Sounds wrong to me.

Sven
Hi Sven,

I am trying (and failing) to understand your response above. Let me say that I understand and agree with your concepts of evaluation criteria and evaluation logic - i.e. features and formulas. And, though I am not a programmer, I can see how the choices of evaluation criteria may dictate the formulas used, and also see how the efficient implementation of those formulas may dictate the code used.
Sven Schüle wrote: The bottom line is: it has been stated that the ICGA investigation had provided a proof that Vas had copied evaluation code from Fruit 2.1 into R1beta. But as some engine programmers like Uri, Miguel, myself and some others have pointed out various times in various discussions, what actually happened was only a heavy but legal reuse of ideas and algorithms.

Sven
I have seen stated more than once that Fruit contained little that was new. So, I would think that the reuse of individual ideas (evaluation criteria) and algorithms (formulas) from Fruit is legal. Fabian obviously did that in creating Fruit.

However, do you not think that Fabian created an original work? There are not new ideas in the evaluation, yet his selection of the evaluation criteria is unique, at least among the engines from 2005 whose code can be studied (there has been no compelling evidence presented that shows that engines of a certain strength must substantially share common evaluation criteria and no one has come forth with source code from an engine of equivalent strength from that period to show multiple occurrances of common ideas). It is not unlike works of literature or film, where individual ideas may not be unique (but definitely legal to use) but the collection of those ideas determines a unique work.

The consensus is that Rybka heavily reused ideas from Fruit. The point of contention is whether or not the heavy reuse constitutes plagiarism. From all that I have read, there does reach a point where the substantial overlap of ideas between two works indicates plagiarism. It is not a well-defined point, but it does seem to exist in most jurisdictions around the world. I'm not sure why you do not recognize the existence of such a point
(or, to be more precise, a not-so-well-defined limit, beyond which denotes plagiarism). My question is: Did Vas exceed that limit? And: What is the general consensus of that limit among the authors?

Adam
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Crafty accused of copying Fruit PST

Post by michiguel »

bob wrote:
michiguel wrote:
bob wrote:
FWCC wrote:Well now Bob knows how Vas feels,what goes around comes around,hmmm maybe that explains the 1000 post on the Rybka Forum it's called GUILT?


FWCC
No, because I know I didn't copy any code. Vas knows he did. Unless you want to join the "I have no grasp of statistical probability" fraternity and continue to believe that he didn't copy Crafty in early versions, and fruit in later versions. Having one similar PST with the rest being wildly different doesn't mean much.
It is unbelievable how you are dealing with this. I was telling you that the probabilities you were using to say "it is impossible to match 64 numbers blah blah" were bogus. You challenged me to find a match in Crafty (you would be the worst attorney in the history of the universe) and... I did! and now, you completely change your speech to say that one is ok, but more is not. You are completely dismissing the fact that none of these things are independent while you call me (indirectly) part of the fraternity who have no grasp of statistical probability. At the same time, as I told you in the rybka forum, you are misrepresenting how similar the R1 tables to Fruit. Not all of them are a "match".

Miguel

I even produced the code I had saved with the version where we added B PSTs after having removed them a few versions previously. The rest of the PSTs in Crafty are wildly different from fruit, from having 6 for kings with grossly different values than either of the two fruit tables, to not having a rook pst at all, to again grossly different pawn PST square values. Not a thing was copied. Something that can't be said for Rybka unless you don't believe in probability theory at all.. and believe you can flip a penny 100 times on a flat surface and have it land on its edge every time... never a head or tail. I mean it _could_ happen, as the probability of that is not zero. So want to bet on it happening?
It is amazing how you want to twist facts. I NEVER said that just one identical PST would be convincing. Quite the opposite, and this can be found several times if you just look, I said "a single PST would be suspicious. 10 PSTs is _way_ more than suspicious. And I STILL stand by that statement. Just so happens my bishop PST is quite simple. The others didn't match very closely at all. Contrast that to fruit/rybka...
You were talking about a single table here.
http://rybkaforum.net/cgi-bin/rybkaforu ... 0;hl=table

"What is the probability that you take the knight PST values from every program available, even asking commercial programmers for theirs, and then finding that you can use Fruit's PST initialization code to produce theirs, by just changing 4 constants? I've already tried it for my knight tables (I have not taken the time to try it for others). No such set of constants exist. Others? I am obviously not certain, not having tried for the ones that are available. But for an older gnuchessx program, no such set of constants exist. Others? _highly_ unlikely. So what do you conclude? That Vas looked at the Fruit PSTs and then used the "idea"? Or did he copy the fruit PST initialization and scale the results. And then, as I did a long while back, go to static arrays once I had the basic "pattern" established, so that I could tweak an individual square if I wanted to, something that is harder to do with a run-time initialization."

Here is where you challenged me (you were talking about one)

http://rybkaforum.net/cgi-bin/rybkaforu ... pid=359205
"My challenge is to write code that will produce my knight (or whatever) PST values, AND Fruit's PST values, by changing just a couple of constants. My numbers and Fruit's numbers are not correlated in any sense other than center control, and the "patterns" are not the same."

Did I misunderstand? If I did, you were not very clear.

Miguel
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Crafty accused of copying Fruit PST

Post by Adam Hair »

bob wrote:
michiguel wrote:
bob wrote:
FWCC wrote:Well now Bob knows how Vas feels,what goes around comes around,hmmm maybe that explains the 1000 post on the Rybka Forum it's called GUILT?


FWCC
No, because I know I didn't copy any code. Vas knows he did. Unless you want to join the "I have no grasp of statistical probability" fraternity and continue to believe that he didn't copy Crafty in early versions, and fruit in later versions. Having one similar PST with the rest being wildly different doesn't mean much.
It is unbelievable how you are dealing with this. I was telling you that the probabilities you were using to say "it is impossible to match 64 numbers blah blah" were bogus. You challenged me to find a match in Crafty (you would be the worst attorney in the history of the universe) and... I did! and now, you completely change your speech to say that one is ok, but more is not. You are completely dismissing the fact that none of these things are independent while you call me (indirectly) part of the fraternity who have no grasp of statistical probability. At the same time, as I told you in the rybka forum, you are misrepresenting how similar the R1 tables to Fruit. Not all of them are a "match".

Miguel

I even produced the code I had saved with the version where we added B PSTs after having removed them a few versions previously. The rest of the PSTs in Crafty are wildly different from fruit, from having 6 for kings with grossly different values than either of the two fruit tables, to not having a rook pst at all, to again grossly different pawn PST square values. Not a thing was copied. Something that can't be said for Rybka unless you don't believe in probability theory at all.. and believe you can flip a penny 100 times on a flat surface and have it land on its edge every time... never a head or tail. I mean it _could_ happen, as the probability of that is not zero. So want to bet on it happening?
It is amazing how you want to twist facts. I NEVER said that just one identical PST would be convincing. Quite the opposite, and this can be found several times if you just look, I said "a single PST would be suspicious. 10 PSTs is _way_ more than suspicious. And I STILL stand by that statement. Just so happens my bishop PST is quite simple. The others didn't match very closely at all. Contrast that to fruit/rybka...
Bob,

Miguel hasn't twisted any facts. I believe that he feels that facts have been twisted and his motivation for speaking out is to point out and correct this.

As far as your statement above, I did look to see what had been said in the exchanges between you and Miguel, though I had been reading them all along. And indeed you said that one PST match is suspicious, but 10 matches is way more suspicious. However, when you challenged Miguel to look at Crafty, you said this (and this statement predates the 'one PST ... but 10 PSTs' statement):
Bob wrote:I would say that if you can take a specific piece of source code and it produces Fruit numbers, and then you can modify 2-3-4 constants for each piece type, and produce Rybka numbers, the two sets of numbers are NOT independent. Not by any measure of independence I can think of. I mentioned my numbers, because you so casually try to write new code to exactly produce Rybka's numbers, without using the Fruit code at all. But your target was, by definition, the Rybka numbers. Which _are_ related to the fruit numbers. My challenge is to write code that will produce my knight (or whatever) PST values, AND Fruit's PST values, by changing just a couple of constants. My numbers and Fruit's numbers are not correlated in any sense other than center control, and the "patterns" are not the same.

To suggest that two different programmers wrote two different pieces of code, independently of each other, without having a set of target values to work toward, and end up with the same set of PST values is, without a doubt, one of the most ridiculous statements I have ever read.
Now, you may have meant all PST values, but the "my knight (or whatever)" phrase seems to imply one set of values was sufficient. That none of the sets would match Fruit's values.

You are shrugging off the match with your bishop PSTs as being due to their simplicity. Well, Miguel's contention, as far as I understand, is that Fruit's PSTs are simple and may be easy to duplicate independently. I am not trying to argue that two different authors, working independently, would tend to generate the same PSTs across the board. But Miguel has been pointing out that the probability that you were assigning to such an occurrence was way too low, due to the fact that the individual values are not independent.

Anyway, do not take my statements here to be speaking for Miguel. If he needed somebody to do that for him (and he does not), there are plenty of people better suited than me.

Adam

Oops, Miguel responded before me.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Curious !

Post by Sven »

Adam Hair wrote:
Sven Schüle wrote:
Dirt wrote:
Desperado wrote:I agree with you fully that formulars are not copyrightable, and i add that reversed engineered ideas,formulas are a matter of interpretation, opinion.
It is not possible to give 100% centainty that what someone interprets is inteded to be the point.
Even if an individual formula isn't copyrightable, if you use 100 formulas and 99 are the same as in another program, that probably is a violation.
If it were as you say, then where would be the borderline? At 50? 10? 90? Why is using one non-copyrightable item no violation but using N+1 non-copyrightable items a copyright violation for some N?

Sounds wrong to me.
Hi Sven,

I am trying (and failing) to understand your response above. Let me say that I understand and agree with your concepts of evaluation criteria and evaluation logic - i.e. features and formulas. And, though I am not a programmer, I can see how the choices of evaluation criteria may dictate the formulas used, and also see how the efficient implementation of those formulas may dictate the code used.
Sven Schüle wrote:The bottom line is: it has been stated that the ICGA investigation had provided a proof that Vas had copied evaluation code from Fruit 2.1 into R1beta. But as some engine programmers like Uri, Miguel, myself and some others have pointed out various times in various discussions, what actually happened was only a heavy but legal reuse of ideas and algorithms.
I have seen stated more than once that Fruit contained little that was new. So, I would think that the reuse of individual ideas (evaluation criteria) and algorithms (formulas) from Fruit is legal. Fabian obviously did that in creating Fruit.

However, do you not think that Fabian created an original work? There are not new ideas in the evaluation, yet his selection of the evaluation criteria is unique, at least among the engines from 2005 whose code can be studied (there has been no compelling evidence presented that shows that engines of a certain strength must substantially share common evaluation criteria and no one has come forth with source code from an engine of equivalent strength from that period to show multiple occurrances of common ideas). It is not unlike works of literature or film, where individual ideas may not be unique (but definitely legal to use) but the collection of those ideas determines a unique work.

The consensus is that Rybka heavily reused ideas from Fruit. The point of contention is whether or not the heavy reuse constitutes plagiarism. From all that I have read, there does reach a point where the substantial overlap of ideas between two works indicates plagiarism. It is not a well-defined point, but it does seem to exist in most jurisdictions around the world. I'm not sure why you do not recognize the existence of such a point (or, to be more precise, a not-so-well-defined limit, beyond which denotes plagiarism). My question is: Did Vas exceed that limit? And: What is the general consensus of that limit among the authors?
Hi Adam,

let me first say that I highly appreciate the way you are entering this discussion. It is much more pleasant to talk like this than to exchange tons of misunderstandings and obfuscations of the topic.

I also would like to make clear that this reply to your post is of course not only directed towards you but can serve as a base for a general, civilized discussion in this forum.


I do not agree to defining a heavy overlap of ideas and concepts as "plagiarism" or even "copyright violation". There is only one thing that can be protected in our context (but not necessarily by 100%), and that is code. Giving up that strict rule would bring us into a big, dark cloud, it would mean that it were fully undecidable for an individual author whether he is allowed to use a given concept or not.

My point in this discussion is that a chess engine programmer has the free and unrestricted choice not only about the set of evaluation criteria, like:

Code: Select all

- "knight mobility",
- "rook on 7th rank",
- "unstoppable passed pawn",
- "trapped bishop",
but also about the concepts how to assign values for each of these criteria (I call it "formulas" although not with a mathematical meaning, as opposed to what Bob writes who constantly misunderstands me), like these:

Code: Select all

- "assign bonus linear in number of pseudo-legal knight moves",

- "assign bonus to a rook on the 7th rank when the enemy king is on the 8th rank, or there is an enemy pawn on the 7th rank",

- "assign constant high bonus if A has a passed pawn that can't be prevented by B from promoting because B has only king+pawns left and either the king of B is outside the pawn square of the passed pawn or the king of A sufficiently guards his passed pawn to enforce promotion",

- "assign a penalty to a bishop that is trapped by a pawn configuration that matches one of these patterns, or any of its symmetric variants: wBa7/bPb6, wBb8/bPc7, wBa6/bPb5".
Here is my proof, kind of a "proof by contradiction" (although not exactly formal):

If my thesis (a programmer has the unrestricted choices that I described above) were not true then any engine that uses any single one of the concepts above in exactly the same way would already violate copyright. Only one match would already blow it up. Virtually all chess engines in the world would be illegal. Since that would obviously be a nonsensical application of rules (a law that makes all entities illegal is nonsense) it can be considered as impossible that my thesis above is false.

Given that, I can finally answer your question whether I think that Vas has exceeded the limit regarding the amount of reuse of concepts. From my side it is a clear "no", for the following reasons (focussing on the evaluation which is clearly the main part of the accusations):

1) There has been no clear definition in the past what "contains code derived from code of another program" should mean other than copying and (possibly) adapting foreign code without substantial changes, and still there is none today. Therefore the only level of orientation for programmers is the "code reuse" level, no rule excludes reuse of logical concepts.

2) I already explained my opinion that reusing N+1 concepts cannot be "forbidden" if reusing N concepts is "allowed". It can be either fully allowed or fully forbidden. Defining an arbitrary threshold is not comprehensible for anyone. As an example to emphasize this, take the summarizing table "Accumulation of scores" on page 53 of Mark Watkins' "EVAL_COMP.pdf" report. Why should it make sense to say that a "feature overlap" of about 41%-44% between evaluation functions of two engines (Crafty-Pepito, RESP-EX5b, Phalanx-Pepito) is "allowed" but about 74% (Fruit2.1-R1beta) "exceeds the limit"? How should a programmer know that the value of this "limit" has arbitrarily been set to something >44% but <74%, and more important: how should he/she measure it for his program?

3) Obviously relying on the freedom given by 1) and 2), Vas has used many evaluation concepts that are also used in Fruit (but in some other engines, too), has implemented these concepts in mostly straightforward manner using bitboards for those parts that have to access the board, and has used very different evaluation parameters resulting from heavy tuning, which caused his evaluation function to behave sufficiently different from the one of Fruit.

4) While it is certainly clear that the overall playing strength of Fruit 2.1 was not only a result of a strong evaluation but also of a decent search and of a very clear programming style leading to virtually bug-free code, we must consider the fact that the choice of evaluation criteria and concepts in Fruit 2.1 is "somehow stronger" than it was in most other engines at that time, and that until today there are certainly only few other engines that have defined both a significantly stronger and substantially different set of such eval concepts. That means: removing a substantial part of these concepts will most certainly make an engine weaker. I think we can view this as if we would remove NullMove, LMR, PVS, or KillerHeuristic from the search. The strongest engines will most probably not work well enough without one of these.


What we should not forget is that the real accusations that were brought up are on a very different level than just "heavy reuse of evaluation concepts". Bob and others have stated that it were "proven" that huge amounts of code were copied "literally" from Fruit into Rybka1 beta. With the current discussion I am making another attempt to show that this is plain wrong.

I have given my statements about the "reuse of concepts" issue above, and if the final outcome of our civilized discussion would happen to be that there were indeed a certain limit for such "heavy reuse of concepts" in computer chess which was already present and known years ago (let's say, <= 2005), and which were that limit, and how should an individual author be able to decide whether that limit is exceeded or not in his case, then I might agree to that. Currently everyone will understand that I highly doubt that, though.

Sven
K I Hyams
Posts: 3585
Joined: Fri Mar 31, 2006 11:21 pm

Re: Curious !

Post by K I Hyams »

Sven Schüle wrote:
Dirt wrote:
Desperado wrote:I agree with you fully that formulars are not copyrightable, and i add
that reversed engineered ideas,formulas are a matter of interpretation, opinion.
It is not possible to give 100% centainty that what someone interprets is inteded to be the point.
Even if an individual formula isn't copyrightable, if you use 100 formulas and 99 are the same as in another program, that probably is a violation.
If it were as you say, then where would be the borderline? At 50? 10? 90? Why is using one non-copyrightable item no violation but using N+1 non-copyrightable items a copyright violation for some N?

Sounds wrong to me.

Sven
The concept “beyond reasonable doubt”, the criterion on which legal cases are decided in the UK, is sufficiently robust for a jury to handle in a UK criminal case and the concept of “the balance of probability” is sufficiently robust for a judge to handle in a UK civil case.

You express dissatisfaction at the lack of a “borderline”. While you may find the use of concepts that do not have well defined borders to be “wrong”, the workings of legal systems throughout the world are based on them and both lay people and experts are comfortable implementing the two examples listed in my first paragraph.

The criterion on which the impartial experts on the ICGA committee made their decision is not clear but even if it was neither of those two criteria, my opinion, as one who is comfortable using those two criteria, is that the available written analysis constitutes evidence that far surpasses the balance of probability criterion and is almost certainly sufficiently robust to satisfy a jury that worked on the beyond reasonable doubt principle.

Although it has nothing to do with your point, I will add that the behaviour and comments of Vas Rajlich would be seen by both jury and judge to be additional evidence that damages his case.