The Intellectual Property Oxymoron

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

Moderator: Ras

wgarvin
Posts: 838
Joined: Thu Jul 05, 2007 5:03 pm
Location: British Columbia, Canada

Re: The Intellectual Property Oxymoron

Post by wgarvin »

garybelton wrote:It's simple, if you were to put a few lines into Crafty's main.c saying "In Crafty I use idea X invented by programmer Y" for +every+ chess idea you used that is not your own, then you would no longer be a plagiarist. But I would still have a problem with all of the other chess programming plagiarists who do not do the same. Once you and all the other accusers are squeaky-clean non-plagiarists, then I will take you more seriously.
Meanwhile, why should anyone take you seriously? You're attacking a straw-man and complaining about programmers re-using ideas thought up by programmers. Guess what, that has been done by all programmers since the dawn of time. Nobody owns *ideas* and there's no harm in reusing them. It's completely the norm in chess programming and all other kinds of programming.

Of course with copyright laws, if you go and copy or derive from someone else's *code* then thats a different story, and you might expose yourself to some liability there.

Rajlich has been shown to have copied the entire eval from Fruit 2.1, and in an earlier version, large chunks of Crafty. This is not acceptable conduct for a professional programmer, nor for a competitor in the WCCC. Bob Hyatt has not done anything like that, as anyone can verify by reading the source code to Crafty. You are seriously trying to argue that there is no ethical difference between Rajlich, and the many other chess programmers who haven't copied their competitors' code?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: The Intellectual Property Oxymoron

Post by bob »

garybelton wrote:I can see that in your mind you believe that you are not kicking, but that you are explaining the facts. That is because you are unaware of how you come across sometimes, but I have seen that before in compiler guys, as I mentioned it's an evolutionary bias that makes them very effective programmers.

The main thing that I find offensive with you here is there are basic chess ideas in Crafty that you have not attributed (in main.c or anywhere else) to the originators of those ideas, and yet you claim Crafty to be 100% your own original work, so by definition this act of non-attribution makes you a plagiarist. Yet, you are quite happy to take the moral high ground with another chess programming plagiarist.
I know of no methodology where one attributes "ideas". Because ideas are very abstract in their nature. And who is to say that my understanding of your idea is exactly what you had in mind, and was not modified as I thought about it?

Source code, on the other hand, is an issue, because when you write something in your own words, you hold the copyright for that work. And if others copy and claim it as your original work, that is a problem. Or in the case of the ICGA, if you copy someone else's source and don't include them as an author, you are violating their rules if you use that program to participate.

I read papers all the time, and I do not see citations for basic ideas. For example, we write in C, should we cite Dennis Ritchie? I run under Unix, so should the places in my program where I do unix-specitic things cite Ken Thompson?

Nobody does that. There's not an AI student on the planet that has not seen a reference to Shannon's minimax paper "How to program a computer to play chess." And everyone knows that "minimax" was Shannon's idea, just as alpha/beta was Newell/Simon/Shaw's. We use that as a basic building block for any tree searching application, and simply by mentioning minimax or alpha/beta, that is ample identification for where that idea came from. But when you copy lines of code or text, it is different in many ways.

Someone tells you how to build a house. Do you owe then any royalty for their explanation? Did you do it exactly as they envisioned? Ideas are necessarily vague. Implementations are much more concrete.



It's simple, if you were to put a few lines into Crafty's main.c saying "In Crafty I use idea X invented by programmer Y" for +every+ chess idea you used that is not your own, then you would no longer be a plagiarist. But I would still have a problem with all of the other chess programming plagiarists who do not do the same. Once you and all the other accusers are squeaky-clean non-plagiarists, then I will take you more seriously.

Here is one simple example:

Code: Select all

~/crafty-23.4$ grep -i shannon *
~/crafty-23.4$ 
How many more are there?

Until then, perhaps this proverb will make you and the other chess programming accusers see where I am coming from ... "people who live in glass houses should not throw stones".

Just to prove that there was something in that directory:

Code: Select all

~/crafty-23.4$ grep -i hyatt *
annotate.c:      "<LINK rev="made" href=\http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.talkchess.com/forum/"hyatt@cis.uab.edu"></HEAD>\n");
main.c: *  Crafty, copyright 1996-2010 by Robert M. Hyatt, Ph.D., Associate Professor *
main.c: *     Robert Hyatt, University of Alabama at Birmingham.                      *
speak:my $soundpath = "/home/hyatt/crafty/sound";
~/crafty-23.4$ 
All I see is plagiarists accusing a plagiariser.

I should say that I contend that unattributed idea copying is equivalent to unattributed code copying but I think you know that already.
I believe _you_ believe that. I do not believe that either the legal system, nor very many of the rest of us believe that using ideas is plagiarism, while most of us do realize that copying source and purporting it to be our own original work certainly is.
garybelton
Posts: 175
Joined: Fri Dec 11, 2009 9:08 pm

Re: The Intellectual Property Oxymoron

Post by garybelton »

I believe _you_ believe that. I do not believe that either the legal system, nor very many of the rest of us believe that using ideas is plagiarism, while most of us do realize that copying source and purporting it to be our own original work certainly is.
I think the legal aspects of the value of ideas vs code will change.

I would hope the UAB has some industry link-ups in the US so that you get guidance on the types of graduates that IT companies are looking for. Coding skills are no longer deemed high value, if you are churning out just coders they will have to move to the BRIC countries to get jobs. If you look at annual earnings of algorithm guys vs. coders it is something like 10:1. This reflects the fact that ideas are far more valuable than code.

Plagiarism has a clear definition, if you missed it, this is from Wikipedia:

"Plagiarism is defined in dictionaries as the "wrongful appropriation," "close imitation," or "purloining and publication" of another author's "language, thoughts, ideas, or expressions," and the representation of them as one's own original work".

It is very clear that this admittedly a very common practice in chess programming, but despite yours and Wylie's protestations it is still plagiarism. I'll keep an eye on Crafty's main.c to see if that gets fixed.
garybelton
Posts: 175
Joined: Fri Dec 11, 2009 9:08 pm

Re: The Intellectual Property Oxymoron

Post by garybelton »

You are seriously trying to argue that there is no ethical difference between Rajlich, and the many other chess programmers who haven't copied their competitors' code?
My argument is that they have copied his algorithms, and you'll see in my post to Bob below, are market rate worth ten times more than code. Are you seriously trying to contend that they did not copy his ideas?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: The Intellectual Property Oxymoron

Post by bob »

garybelton wrote:
I believe _you_ believe that. I do not believe that either the legal system, nor very many of the rest of us believe that using ideas is plagiarism, while most of us do realize that copying source and purporting it to be our own original work certainly is.
I think the legal aspects of the value of ideas vs code will change.

I would hope the UAB has some industry link-ups in the US so that you get guidance on the types of graduates that IT companies are looking for. Coding skills are no longer deemed high value, if you are churning out just coders they will have to move to the BRIC countries to get jobs. If you look at annual earnings of algorithm guys vs. coders it is something like 10:1. This reflects the fact that ideas are far more valuable than code.
Sorry, but that has not been true, ever, at least that I have seen. Programmers are still in high demand. The most common job today for programmers is in Java because of web development. That demand has increased, not dropped off.

We do not, however, produce "IT" graduates. We produce "computer science" graduates. There is a difference, a significant one.

Plagiarism has a clear definition, if you missed it, this is from Wikipedia:

"Plagiarism is defined in dictionaries as the "wrongful appropriation," "close imitation," or "purloining and publication" of another author's "language, thoughts, ideas, or expressions," and the representation of them as one's own original work".
As I have already mentioned, multiple times, this definition, plus applicable copyright law and patent law had to evolve for computer software. And they have. One does not discuss copyright for works of fiction or such, and copyright of computer software in the same sentence, because they are different. The patent office rarely approves patents for algorithms (aka clearly specified ideas) for computers. They generally suggest copyright. And there have been examples of EEProm content being copyrighted and successfully defended in court.

The more correct issue here is copying someone's original work and then claiming that is your original creation. That is certainly wrong. Copyright law or by ICGA rule 2...


It is very clear that this admittedly a very common practice in chess programming, but despite yours and Wylie's protestations it is still plagiarism. I'll keep an eye on Crafty's main.c to see if that gets fixed.
It won't, because the citations would be longer than the program if I go all the way back to all the citations needed for the operating system, the compiler, the optimizer, the pre-processor, the file system, data compression, sorting, parsing, C library, etc.

Nobody does that, it is a ridiculous idea...

For example, do you know who came up with "quick sort"??? Quick-sort the algorithm, not quick-sort the implementation in the C library? What about "heap sort"? Who did it? Is it different? What about the C library implementation with an unspecified comparison mechanism that the user has to supply, who came up with that idea? Nobody cites ideas.
garybelton
Posts: 175
Joined: Fri Dec 11, 2009 9:08 pm

Re: The Intellectual Property Oxymoron

Post by garybelton »

The most common job today for programmers
This is part of the problem, Java is so easy. Compare the salary of a US Java programmer to one in the BRIC countries and you'll soon see this won't end nicely for the west.
We do not, however, produce "IT" graduates. We produce "computer science" graduates. There is a difference, a significant one.
Not in the UK. Cultural differences.
It won't, because the citations would be longer than the program
Just the chess ideas will do please (OS and sort etc are not relevant), I thought I made that clear.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: The Intellectual Property Oxymoron

Post by bob »

garybelton wrote:
You are seriously trying to argue that there is no ethical difference between Rajlich, and the many other chess programmers who haven't copied their competitors' code?
My argument is that they have copied his algorithms, and you'll see in my post to Bob below, are market rate worth ten times more than code. Are you seriously trying to contend that they did not copy his ideas?
Copy whose ideas? Vas'? He has not published any "ideas". If you mean via the reverse-engineering of Strelka, ip* and robo*, at least one programmer, to date, has not copied one single idea from that family. Yet.

However, I read "Chess Skill in Man and Machine" in the 70's and then took the idea of a full-width search from them, as did many. And the idea of hashing from Greenblatt, producing the hash signature from Zobrist, minimax from shannon, alpha/beta from newell/simon/shaw, killer moves from slate, iterated search from slate, time management from myself. Reductions from <unknown> (unknown since it is not generally agreed who did them first. Bruce Moreland experimented with them around 1996, I did after his comments. Shredder used them around that time. Tord used them. Fruit had them. Bitboards? Slate? Donskoy? both used them at the same time, starting around 1973 or 4. What about Samuel's checker program? What about rotated bitboards? Magic move generation (Pradu). There are lots of ideas, and we have not talked about the underlying ideas we use from libraries, operating systems and compilers...

makes no sense to talk about ideas...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: The Intellectual Property Oxymoron

Post by bob »

garybelton wrote:
The most common job today for programmers
This is part of the problem, Java is so easy. Compare the salary of a US Java programmer to one in the BRIC countries and you'll soon see this won't end nicely for the west.
We do not, however, produce "IT" graduates. We produce "computer science" graduates. There is a difference, a significant one.
Not in the UK. Cultural differences.
It won't, because the citations would be longer than the program
Just the chess ideas will do please (OS and sort etc are not relevant), I thought I made that clear.
Why is that? If I put the search function into a library, then can that be ignored? what about move generation? Etc. That's why ideas are not cited in any technical journal I am aware of, only prior papers are cited, clearly and explicitly too.
garybelton
Posts: 175
Joined: Fri Dec 11, 2009 9:08 pm

Re: The Intellectual Property Oxymoron

Post by garybelton »

Here is the whole tree CI grep'd for idea:

Code: Select all

~/crafty-23.4$ grep -i idea *
attacks.c: *   to detect, but for sliding pieces, we use a bitboard trick.  The idea is  *
crafty.hlp:you enter the correct move.  The idea is that if the opponent screws up,
epdglue.c: idea is that the host program may have some special requirements for
epdglue.c: one of the available EPD glue command tokens.  The idea is that EPD action
evaluate.c: *   dragging the score toward draw.  This is the idea of a *
hash.c: *        score for this node.  We have no idea about which move is best in    *
hash.c: *     you think about it, this is a bad idea.  If the      *
hash.c: *     you think about it, this is a bad idea.  If the      *
main.c: *           pawns, the idea being that if the fail-high move happens in a     *
main.c: *    5.6    Improved move ordering by using the old "killer move" idea.  An   *
main.c: *           check" idea.  If there's only one legal move when in check, we    *
main.c: *           effect more global ideas.  This type of optimization will come at *
main.c: *    9.8    The first change was to borrow a time-allocation idea from Cray   *
main.c: *           blow out cache.  This idea was borrowed from Cray Blitz, which    *
main.c: *           idea of storing static evaluations there became worthless and was *
main.c: *           Going back to a very old Crafty idea, king tropism is now tied to *
main.c: *           below alpha.  It's a "modest futility" idea that doesn't give up  *
main.c: *           closeness to the kings, so that other positional ideas don't get  *
main.c: *           king safety.  There are two saved values so we have an idea of    *
main.c: *           evaluation shows that the program is getting "weary".  The idea   *
main.c: *           of the "tropism" code.  The basic idea is that white's "tropism"  *
main.c: *           when Bruce Moreland and I played with the idea of reducing the    *
main.c: *           be below some threshold before a reduction can happen.  The idea  *
main.c: *           showed that the LMR idea produced better results without the      *
main.c: *           that implemented ideas suggested by IM Larry Kaufman, but careful *
main.c: *           "lockless hash table" idea is back in.  It was removed because    *
main.c: *           search results so that it has some idea of whether this was a     *
main.c: *           argument paramenter using the same name is a bad idea.)  In this  *
main.c: *           generation idea".  This completely eliminates the computational   *
main.c: *           ideas.  But reducing by 2 plies after the at least 2 moves are    *
main.c: *           idea stores the PV for an EXACT hash entry in a separate hash     *
next.c: *   ordering idea.  Unsafe evasion moves are sorted using  *
search.c: *   Now for the forward-pruning stuff.  The idea here is   *
search.c: *   based on the old FUTILITY idea, where if the current   *
search.c: *   This is a useful idea in today's 20+ ply searches, as  *
search.c: *   The other special-case is a result of the PVS idea and *
search.c: *   Now for the forward-pruning stuff.  The idea here is   *
search.c: *   based on the old FUTILITY idea, where if the current   *
thread.c: *   basic idea is that whenever we notice that one (or more) threads are      *
utility.c:static DWORD(WINAPI * pSetThreadIdealProcessor) (HANDLE, DWORD);
utility.c:      pSetThreadIdealProcessor =
utility.c:          (void *) GetProcAddress(hModule, "SetThreadIdealProcessor");
utility.c:            pSetThreadIdealProcessor(GetCurrentThread(), MAXIMUM_PROCESSORS);
utility.c:        printf("Current ideal CPU is %u\n", dwCPU);
utility.c:        pSetThreadIdealProcessor(GetCurrentThread(), dwCPU);
~/crafty-23.4$ 
The only person I see referenced for ideas, rather than yourself is Larry kaufman. A discussion with Brucemo is mentioned. I guess I am looking for attributions of the common chess algos like LMR etc. Maybe no-one knows?
K I Hyams
Posts: 3585
Joined: Fri Mar 31, 2006 11:21 pm

Re: The Intellectual Property Oxymoron

Post by K I Hyams »

garybelton wrote:
The most common job today for programmers
This is part of the problem, Java is so easy. Compare the salary of a US Java programmer to one in the BRIC countries and you'll soon see this won't end nicely for the west.
We do not, however, produce "IT" graduates. We produce "computer science" graduates. There is a difference, a significant one.
Not in the UK. Cultural differences.
It won't, because the citations would be longer than the program
Just the chess ideas will do please (OS and sort etc are not relevant), I thought I made that clear.
garybelton wrote:I seem to be having a little trouble getting through to you, but that's ok, I am used to compiler guys. They are generally very single minded, presumably due to some evolutionary bias, that makes it very difficult for them to see any side of an argument except their own. Makes them damn good compiler guys though. Let me try an analogy, as they usually work with my compiler guys.
There seems to be a strange mismatch between the level at which you imply that you work and your degree of understanding/knowledge of the work that those whom you appear to patronise actually do.

Do all of your “compiler guys” cite the sources of their ideas along with the work that they submit? Your behaviour on this site implies that the issue bothers you, have you discussed it with your "compiler guys", either with or without analogies?