now after seeing all of this go down can anyone beat Vas

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

Moderator: Ras

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

Re: now after seeing all of this go down can anyone beat Vas

Post by michiguel »

BubbaTough wrote:
lkaufman wrote:
These are hard questions, but we should still provide guidelines, even though there will always be disagreement about what they mean. My own view is that you can do anything you want with private beta versions, the only ones that matter are those entered in tournaments or released to the public. I don't object to using someone else's numbers as "seed" numbers, as long as the end result is not obviously derived from those numbers. As for PST and material values, I would say that material values are too few to put restrictions on, but PST that are either nearly identical to another program or would be if you add and/or multiply by a constant should not be allowed. The bottom line (in my view) is this: if it is obvious to a knowledgeable observer that you could not have come up with the values you used without having seen those in another program you have made a derivative of that program. Of course this leaves room for interpretation but so do most laws.
I would be fine with these rules...but if someone else came along and stated a different set, I would probably be fine with those. Perhaps it would be good if the community created 3 sets of guidelines, mild, moderate and strict. Tournaments and rating lists could state which they were adapting. That way, if the author of a chess engine like sloppy wants grab some eval values from elsewhere (with acknowledgement) the author can do so without shame and persecution by just sticking with the mild settings, while folks that care strongly that every line is completely original can stick to the strict guidelines and participate in environments where others feel the same way.

It would be impossible to cover everything, but a few examples would be easy enough to generalize from. This certainly would not do anything to stop cheating, but it would encourage an environment where honest programmers can participate in the hobby without fear of persecution for making choices others deem invalid.

-Sam
IMHO, it does not matter if a given set of numbers is the same to other engine. What it matters, it is how those were obtained. Two people could converge using similar or different methods. That is ok. What I do not believe is ok, is deception. Numbers do not mean much if they are not put in context.

Of course, I am not providing any solution. I am just saying what kind of philosophy should be behind this, IMHO.

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

Re: now after seeing all of this go down can anyone beat Vas

Post by michiguel »

Dirt wrote:
lkaufman wrote:The bottom line (in my view) is this: if it is obvious to a knowledgeable observer that you could not have come up with the values you used without having seen those in another program you have made a derivative of that program. Of course this leaves room for interpretation but so do most laws.
That's pretty much how I view copyright law. Whether using equations to generate values for piece square tables that approximate yours would be a violation, though, I don't know.
IMHO, it really depends. If that equation is a polynomial of 64 parameters (an exaggeration) to initialize a table, that is wrong. I would be basically finding a way to express numbers in a different and stupid way (hiding a similarity). I would be certainly trying to deceive. But, if observing certain numbers allow me to see a pattern that could be crystallized into a concept and that concept leads to an equation, then I would be making an intellectual contribution.

Miguel
User avatar
hgm
Posts: 28353
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: now after seeing all of this go down can anyone beat Vas

Post by hgm »

lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I think this is a crucial point, and I think the current stance of the ICGA is that such use of other program's eval parameters is NOT allowed.

No one owns 1-3-3-5-9 for piece values. But it could be argued that Larry owns the 1-3.25-3.25(+0.50)-5.00-9.50 values. I certainly consider myself as owning the 8.75 and 9.00 values for Archbishop and Chancellor. :wink:

But this is a tricky point. For one, dodging the the rule by setting N=3.26 in stead of 3.25 would have no measurable effect. It is to be expected that there are some ultimate Chess truths in the parameters, and it would be ridiculous to allow only the first to point out these thruths to use the correct values, and force everyone else to use values that have been established to be incorrect. (And how much should they then deviate from the known but owned optimum values to be considered acceptable? 1 centi-Pawn? 20?)

It is clear that Larry's values represent months, if not years of hard research, and that any Chess programmer getting them from the web and putting them in its program gets a big boost fo almost zero effort. (This is even more true for those who use my N, B, A and C value in a Capablanca program, where there no 'classical' values are known, and the classical values of 8x8 Chess suck.)

I think the guideline should be this: Larry's values have been published by him on the web, outside the context of any particular Chess engine. This makes it acceptable for any engine to use them. But use of parameters that have only been published as part of the source of a particular Chess engine should be considered cloning.
Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

Re: now after seeing all of this go down can anyone beat Vas

Post by Dirt »

hgm wrote:No one owns 1-3-3-5-9 for piece values. But it could be argued that Larry owns the 1-3.25-3.25(+0.50)-5.00-9.50 values. I certainly consider myself as owning the 8.75 and 9.00 values for Archbishop and Chancellor. :wink:

But this is a tricky point. For one, dodging the the rule by setting N=3.26 in stead of 3.25 would have no measurable effect. It is to be expected that there are some ultimate Chess truths in the parameters, and it would be ridiculous to allow only the first to point out these truths to use the correct values, and force everyone else to use values that have been established to be incorrect. (And how much should they then deviate from the known but owned optimum values to be considered acceptable? 1 centi-Pawn? 20?)

It is clear that Larry's values represent months, if not years of hard research, and that any Chess programmer getting them from the web and putting them in its program gets a big boost fo almost zero effort. (This is even more true for those who use my N, B, A and C value in a Capablanca program, where there no 'classical' values are known, and the classical values of 8x8 Chess suck.)

I think the guideline should be this: Larry's values have been published by him on the web, outside the context of any particular Chess engine. This makes it acceptable for any engine to use them. But use of parameters that have only been published as part of the source of a particular Chess engine should be considered cloning.
The more necessary something is for making a good chess engine the less copyrightable it will be. If the values in Larry's piece square tables are optimal, and anyone going to the work of finding them will come up with exactly the same numbers, then they cannot be copyrighted. If only the approximate numbers can be determined then copying Larry's exact numbers would probably violate copyright, but adding some variation to the values would probably make them ok. Only if there are a huge amount of sets of numbers that will give an equivalent Elo rating to a program would copyright apply to the approximate numbers he uses.

I don't see the effort involved as important.
Cubeman
Posts: 644
Joined: Fri Feb 02, 2007 3:11 am
Location: New Zealand

Re: now after seeing all of this go down can anyone beat Vas

Post by Cubeman »

I just hope that piece square values don't become copyright, chess has limited ways to be currently calculated so it is only natural that eventually optimal values for pieces will be discovered, I agree that Larry has done some immense research to obtain these magical numbers and should be proud of his achievement.But to not allow anyone else to use these numbers or close proximations is too restrictive.Otherwise a person could publish many engines with various values for all these possible numbers and claim that no one else can use these numbers, so every other up and coming chess engine developer is left with crap values to use.Any decision would involve marking a line in the sand which is an absurd way to deal with the problem.Carry on down this track and eventually no-one will be interested in creating a new chess engine with all these complicated rules and permissions to obtain.
User avatar
Desperado
Posts: 879
Joined: Mon Dec 15, 2008 11:45 am

Re: now after seeing all of this go down can anyone beat Vas

Post by Desperado »

what do you think will happen (Larry,Bob) ?
original: valuePawn = 90 , pst[768]

modified: valuePawn =110 , pst[768]
modified: valuePawn = 90 , pst[768]_all_+1
imho only values will be worthless (to copy),
even tuned for years, they keep strongly related to hundreds
of other values in a programm.

it is not important if you change _1_ or _768_ values.
in the given example the correlation within the piece square
table is kept of course, but global ratio is changing more drastically
when only changing the pawnValue.And as already mentioned, there
are hundreds of other features the pst is correlated with.
If i change the pawnValue, even search-control mechanisms will(may) behave
differently but keep untouched by pst-values.


So, Larry i think you forget that _your_ values were improved within a testing frame
(Rybka-Frame first) where the correlations are tuned at the same time.

Ok, if a engine will use the values when it is build up from scratch, correlations
belonging to those values will automatically be part of testing, so the values keep working.

But just copy/paste them into a working system will fail
((especially) when the engine is well tuned already),i am pretty sure.

The reason is finally simple. Values alone are worth nothing.

(ok, pst tables are already including correlations in itself, but keep depending
on "global" correlations too.)

Just my thoughts at first glance

Michael
tomgdrums
Posts: 736
Joined: Wed Dec 02, 2009 9:48 am

Re: now after seeing all of this go down can anyone beat Vas

Post by tomgdrums »

hgm wrote:
lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I think this is a crucial point, and I think the current stance of the ICGA is that such use of other program's eval parameters is NOT allowed.

No one owns 1-3-3-5-9 for piece values. But it could be argued that Larry owns the 1-3.25-3.25(+0.50)-5.00-9.50 values. I certainly consider myself as owning the 8.75 and 9.00 values for Archbishop and Chancellor. :wink:

But this is a tricky point. For one, dodging the the rule by setting N=3.26 in stead of 3.25 would have no measurable effect. It is to be expected that there are some ultimate Chess truths in the parameters, and it would be ridiculous to allow only the first to point out these thruths to use the correct values, and force everyone else to use values that have been established to be incorrect. (And how much should they then deviate from the known but owned optimum values to be considered acceptable? 1 centi-Pawn? 20?)

It is clear that Larry's values represent months, if not years of hard research, and that any Chess programmer getting them from the web and putting them in its program gets a big boost fo almost zero effort. (This is even more true for those who use my N, B, A and C value in a Capablanca program, where there no 'classical' values are known, and the classical values of 8x8 Chess suck.)

I think the guideline should be this: Larry's values have been published by him on the web, outside the context of any particular Chess engine. This makes it acceptable for any engine to use them. But use of parameters that have only been published as part of the source of a particular Chess engine should be considered cloning.

+1

That is a very sensible solution regarding parameters.
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: now after seeing all of this go down can anyone beat Vas

Post by BubbaTough »

tomgdrums wrote:
hgm wrote:
lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I think this is a crucial point, and I think the current stance of the ICGA is that such use of other program's eval parameters is NOT allowed.

No one owns 1-3-3-5-9 for piece values. But it could be argued that Larry owns the 1-3.25-3.25(+0.50)-5.00-9.50 values. I certainly consider myself as owning the 8.75 and 9.00 values for Archbishop and Chancellor. :wink:

But this is a tricky point. For one, dodging the the rule by setting N=3.26 in stead of 3.25 would have no measurable effect. It is to be expected that there are some ultimate Chess truths in the parameters, and it would be ridiculous to allow only the first to point out these thruths to use the correct values, and force everyone else to use values that have been established to be incorrect. (And how much should they then deviate from the known but owned optimum values to be considered acceptable? 1 centi-Pawn? 20?)

It is clear that Larry's values represent months, if not years of hard research, and that any Chess programmer getting them from the web and putting them in its program gets a big boost fo almost zero effort. (This is even more true for those who use my N, B, A and C value in a Capablanca program, where there no 'classical' values are known, and the classical values of 8x8 Chess suck.)

I think the guideline should be this: Larry's values have been published by him on the web, outside the context of any particular Chess engine. This makes it acceptable for any engine to use them. But use of parameters that have only been published as part of the source of a particular Chess engine should be considered cloning.

+1

That is a very sensible solution regarding parameters.
OK, a little thought experiment. I will make up some values for various things. I will not look at any source, it will just be off the cuff, like if a friend asked me for a simple eval for his new engine. I suspect at least some of these values have been used by other engines, and yet it would be ridiculous to claim I should not be allowed to use them.

Pawn 100
Knight 350
Bishop 360
Rook 550
Queen 1100

Bishop Pair 30

Knight mobility 3
Bishop mobility 5
rook mobility 2
queen mobility 1

Rook on 7th 20
double pawn 5
isolated pawn 15
backward 10
double isolated 40
rook behind passed pawn 10

passed pawn based on distance from queening 0,100,60,40,20,10,10,0


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

Re: now after seeing all of this go down can anyone beat Vas

Post by bob »

BubbaTough wrote:
bob wrote:
BubbaTough wrote:
lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I absolutely agree this is a key question, and a question that has not been answered. The problem is, for me anyway, its a bit of a gray area. Outlawing anyone from using similar numbers to another program in any area is a bit silly (as you imply with your LMR example) but having all identical numbers throughout a program feels wrong too. I think there is a gray area here. For example, if Critter uses PST numbers from another source, but all other aspects are completely original, is this outlawed? Is the answer different for different tournaments and ratings lists? Its a confusing area. The appropriate line may seem obvious to some, but I suspect that "obvious" line is in a different place for a lot of different people, each one having a reasonable perspective.

Side stepping legal issues for a bit, in a sense it does not matter what the "right" answer is. Just that each public venue, be it tournament or rating list, make it clear what it takes to qualify for participation. Then it is up to the engine authors to determine which line they feel is appropriate for their project, and submit only to that group. If copying PST only is fine for CCRL but not for ICGA, then critter can be on CCRL and not ICGA, no need for anyone to yell or scream about clones. If he wants to then participate in ICGA, he just spends the time tuning his own PST, and viola, he now qualifies. No need for people to dig up old copies and for paranoia to run rampant...clear rules would encourage transparency and honesty (at least, I would hope so).

-Sam
The problem with that is that a chess program is a large project. With tens of thousands of lines of code, perhaps thousands of lines of "values". I don't quite see how to draw a line in the sand to define what is acceptable and what is not. Copying code is clearly not allowable, except for previously accepted exceptions like basic bitboard implementation (direct computation, rotated, or magic), egtb access code, etc. But numbers can be the same. And trying to say no more than N lines, or M numbers or X lines + Y numbers where X + Y < Z where Z is the threshold, looks to be very difficult to do.

I believe this is always going to remain a subjective rule, otherwise it might become as large as the US Tax code, which nobody understands it seems.
Unfortunately you are probably right. I guess that is why the legal system is so messy. Its just hard to use rules to replace common sense, and everyone has different common sense :(.

-Sam
Even worse, some have _none_. :)

The US constitution is intentionally vague in almost every regard, so that common sense can take the place of thousands of pages of specifics. If the framers had decided to spell out every last circumstance they could envision, they would _still_ be working on the first draft.
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: now after seeing all of this go down can anyone beat Vas

Post by Chan Rasjid »

BubbaTough wrote:
tomgdrums wrote:
hgm wrote: ...
But use of parameters that have only been published as part of the source of a particular Chess engine should be considered cloning.
+1

That is a very sensible solution regarding parameters.
OK, a little thought experiment. I will make up some values for various things. I will not look at any source, it will just be off the cuff, like if a friend asked me for a simple eval for his new engine. I suspect at least some of these values have been used by other engines, and yet it would be ridiculous to claim I should not be allowed to use them.

Pawn 100
Knight 350
Bishop 360
Rook 550
Queen 1100

Bishop Pair 30

Knight mobility 3
Bishop mobility 5
rook mobility 2
queen mobility 1

Rook on 7th 20
double pawn 5
isolated pawn 15
backward 10
double isolated 40
rook behind passed pawn 10

passed pawn based on distance from queening 0,100,60,40,20,10,10,0
-Sam
I think Richard Vida wrote in another thread he uses practically "identical" pst values as that of Robbolitto (also Houdini). So it is "cloning" 12 * 64 values - a huge number of parameters by any measure. Why is he so bold? What is he going to tell about originality if Critter enters WCCC? None can hide nowadays.

I think Richard Vida has a strong personal conviction going about doing things. If say Robbolitto/Ippolit is public domain, then there is no issue with copyrights nor the need to open up his source. He could mention in the entry form "Critter uses the identical PST values of Robbolitto." and that solves it. If the people in ICGA know what PST means (and have some brain) it would be allowed. No decent person would want to participate if he is asked to add silly random numbers to make his PST "different". OK, what if those values are from Stockfish? Should the ICGA allow it if he mentions it or will the ICGA make a secret pact with Richard Vida - "We need participants.... don't tell others,... just add some random numbers ...". You decide.

Copying in literary fictional works probably would be decided based on how much of the story is copied. Now if we talk about "derivative" work in a chess engine, we have the figure 12 * 64. Will just a seemingly large figure be sufficient to pronounce cloning by the court? But in the context of the "story of a chess engine", is it too much and holds too great a significance? I don't have an answer.

Rasjid.