[computer-go] Collaboration project. Once again

Mark Boon tesujisoftware at gmail.com
Wed Aug 2 06:16:55 PDT 2006


OK, here I go again. Slowly I start to get more time to do some  
actual work at my computer. My office is still not ready yet and I'm  
limited to 19Kbs-26Kbs dial-up internet, but those things will change  
in the weeks to come. It's hard to concentrate on work when doing it  
in the living-room with the little one crawling around. I'm getting a  
little frustrated with my inability to do work for a much longer  
period than I had planned, but I'll get there eventually.

I've also had little time to pursue capitalizing on my mobile version  
of Goliath. I've had a few tentative contacts, but nothing  
substantial materialized yet. So far the best option seems to be to  
sell Goliath outright, including source-code in C and Java and any  
intellectual property related to it. It would make a powerful move- 
generator  for any Go program, but I think its main worth would be as  
a commercial application for mobile devices. I discussed this  
possibility with a former business relationship, but I don't think  
I'm getting anywhere with them. I feel it should be easy to find a  
buyer somewhere in the Far East, but at the moment I don't feel like  
making trips there for this purpose. The reason I find this  
possibility tempting is that if I make a decent chunk of change on it  
it would be more than enough to fund the project I'm currently  
thinking of. The project I'll describe shortly. In the meantime, if  
anyone would know of a party that would be interested in such a deal  
I'd very much appreciate to hear it. I offer a 10% finder's fee to  
anyone who brings me in contact with someone I close a deal with. 10%  
of what I expect to be at least a six-figure amount should be  
worthwhile for some to check their address-book?

My previous call for interest in a collaborative project has  
sollicited a few responses. I think I can fairly say these were in  
two categories: people with limited time freely offering their help  
and people who are interested in exchanging ideas but who want to  
pursue their own commercial project privately. Each group comes with  
its own limitations with respect to collaboration. So I had to think  
clearly for myself what I actually wanted to do and what I wanted to  
accomplish with my project.

In the long run I think it only makes sense if my work results in a  
new playing program. Such a program would have considerable  
commercial value, but if I want to commercialize it it will be hard  
to set up a good collaborative environment. But a playing program is  
many years away, so commercialization is not an immediate concern of  
mine, nor is finances. In spirit I very much like the idea of a GNU  
Go project. But there are a few things that stand in the way of me  
joining that project. A small reason is the C language. A bigger  
reason is that I don't want to butt into that project knowing the  
stubborn, opiniated, know-all smart-ass I can be and piss everyone  
off that is currently involved in it. The biggest reason however is  
the GNU license. Maybe someone with an academic position can afford  
to work on a non-profit project for a long time, but generally I  
think smart individuals should be able to profit financially from  
their work and their clever ideas if you want to keep them involved  
for years to come.

So what it boils down to is I want to do a completely free open- 
source project. Free in the sense that anyody is free to take from it  
and use any which way they see fit, whether it's for commercial  
purposes or not. The only way it's not free is that initially I'll be  
the only one deciding what will go into the project. But I'm sure  
over time that will change too when others start to contribute  
substantially. So what is it I'm planning to do?

What I'm planning to make as an open-source project is a position- 
evaluation framework. There are many important parts in a Go program.  
But central to it all, and the most differential, is the evaluation  
module. Every accomplished programmer can make a good PN-search,  
alpha-beta search, pattern-matcher, joseki library and more such  
things. But the hard part is doing evaluation. Whether it's  
evaluation of a life-and-death position or the evaluation of a board- 
score. This is the area where I think current playing programs are  
still severely lacking and where a lot of playing strength can be  
gained. It's also an area where today much more is possible than one  
or two decades ago using today's computing power.  Yet I think there  
are few projects or programs that really focus on this area. I think  
GNU Go may be the only exception to that, anyone please correct me if  
I'm wrong here.

I'm calling it a 'framework' because it's going to be designed so  
that it will be very easy for others to slot in their own modules  
that will enhance the evaluation. At least I hope it will be easy, as  
that way I think I can attract people to try out their own ideas and  
add them into the project. Also the purpose of the evaluation isn't  
going to be completely fixed beforehand. By building in enough  
modularization and flexibility I hope to accomplish a situation where  
it will be easy to mix and match modules into evaluating for a  
specific purpose. The two obvious ones are evaluating a board- 
position to compute a score or positional value and evaluating the  
status of groups. But hopefully, as the project progresses, different  
purposes will be found later.

I don't have completely worked out yet how I'm going to realize this  
project in practical terms. I'm still in the thinking stage and would  
very much like to see input fom others and see if there's any  
interest in such a project.

Expect more posts about this in the weeks to come. My hands are  
itching to finally get started on something.

	Mark Boon





More information about the computer-go mailing list