<html>
	<head>
		<title>OpenAI GUI-ToDo</title>
	
	
<style type="text/css">
<!-- 
		  BODY { 
		     font-family: Lucida, helvetica, arial; 
		     font-size: small;
			  background-color: white;
			  color: #003;
		  } 
		  TD { 
		     font-family: Lucida, helvetica, arial; 
		     font-size: small;
			  color: #003;
		  } 

		  .FORM { 
		     font-family: Lucida, helvetica, arial; 
		     font-size: small;
			  color: #003;
		  } 

		  A { 
		     text-decoration: none; 
		  }

		  A:LINK, A:VISITED, A:ACTIVE {
		     color: #5fb57a;
		  }
		  A:VISITED {
		     color: #039;
		  }
		  A:ACTIVE {
		     color: #d5ae83;
		  }
		  TT {
		     font-family: lucidatypewriter, courier, fixed; 
			  color: #900;
			  font-size: small;
			  font-weight: bold;
 		  }
		  .counter {
		     font-family: Lucida,  helvetica, arial; 
			  color: #999;
			  font-size: x-small;
 		  }
		  h1 {
			  color: #000;
			  font-size: large;
			  font-weight: bold;
 		  }
		  h2 {
			  color: #000;
			  font-size: medium;
			  font-weight: bold;
 		  }
		  .poll {
			  color: #000;
			  font-size: 10pt;
 		  }
		  .gray {
			  color: #999;
 		  }
		  .red {
			  color: #a00;
 		  }
		  .small {
			  font-size: 8pt;
		  }


		  -->
		  </style>
	</head>
	
<body  bgcolor=white topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">	
	
	<H1>Todo for the OpenAI Integrated Development Environment (IDE)</H1>
	
	<H2>What we've got so far</H2>
	
	<p>
	Currently the GUI Subproject has the following features:
	</p>
	<table border=1>
		<tr bgcolor=#aaaaaa>
			<td > Feature </td> <td> Percent done </td>
		</tr>
		<tr>
			<td>
			Basic editing functions for a neuralnet. <br>
			(Create Network, add/remove layers and neurons, change weights)
			</td> 
			<td> 90% </td>
		</tr>
		<tr>
			<td>
			Scrolling for the network topology pane 
			</td> 
			<td> done </td>
		</tr>
		<tr>
			<td>
			Zooming for the network topology pane <br>
			</td> 
			<td> done </td>
		</tr>
		<tr>
			<td> Graphic plotter <br>
			(Errorgraph)
			</td> <td> 80% </td>
		</tr>
		<tr>
			<td> Loading/saving data <br>
			 (neuralnet, TrainingSets, workspace)
			 </td> <td> 80% </td>
		</tr>
		<tr>
			<td> Editing TrainingData <br>
			(Table Editor for float-values)
			</td> <td> 80% </td>
		</tr>
		<tr>
			<td>Propertysystem <br>
			(Allows to display/change livevalues of 
			the GUI- and dataobjects) 
			</td> <td> 75% </td>
		</tr>
		<tr>
			<td> Run a neuralnet <br>
			(training, running, errorgraph)
			</td> <td> 50% </td>
		</tr>
		<tr>
			<td> Integration of a script-language <br>
			(currently BeanShell, Scripteditor)
			</td> <td> 50% </td>
		</tr>
			
	</table>
	
	<H2> How can u help us? </H2>
	
	<p>
		As you see above, there is still a lot of work to do, to get a
		<i>basic</i> version of the IDE done. In the following list you'll
		see what we need and whats the priority of the tasks:
	</p>
	
	<p>
		If you think you can do one of these tasks, write a mail to <a
		href="mailto:tweber@users.sourceforge.net">Thomas Weber</a>
	
	<p></p>    
	
	<h4>Tasks to be finished to get the first version on the road</h4>
	
	<table border=1>
		<tr bgcolor=#aaaaaa>
			<td > Feature </td> <td> Priority (9=max) </td>
		</tr>
		<tr>
			<td>
			Basic preferences/settings dialog <br>
			Should be a table-like editor, easy to configure and extend. 
			</td> 
			<td> 3 </td>
		</tr>
	</table>
	
	<H2> Show me the future ! </H2>
	
	<p>
	After the first public release of the IDE, we want to extend it step by step.
	Some advanced features will be needed then. 
	<b>Feel free to recommend ways to achieve some
	of these longterm goals... </b>
	Maybe you know some out-of-the-box API's we could use here, also.
	</p>
	
	<h4>Advanced features for future releases</h4>
	
	<p>
	You should take a look into the actual version of the <a href="proposal/proposal.htm">proposal for
	OpenAI core services</a>, also.
	</p>
	
	<ul>
		<li> <b> Generic PlugIn API </b> <br>
		The GUI should be extendable via PlugIns. PlugIns should
		be recognized at startup of the application and they have to be dynamically 
		loaded and integrated. PlugIns can be compiled independent of the mainapplication.
	<br> 
	<br>
		Possible PlugIn types:
		<ul>
			<li>
				TrainingData-Editors. <br>
				Different editors to view/edit trainingdata. i.e.: Bitmapeditor, Binaryeditor
			</li>
			<li>
				Filters/converters for TrainingData. <br>
				PlugIns to load/save different types of
				data. i.e.: Spreadsheet-files, plain ascii,
				csv, SQL-Databases
			</li>
		</ul>
		 <br> <br>
		<li> 
		<b> Scriptintegration </b> 
		<br>
			In the first version there will be a menu to call
			scripts.  Later, it would be handy to bind scripts to toolbars
			and context menus. The user should be able to write and
			integrate scripts so we'll need toolbar and menueditors
			as well as a framework thats able to do the binding. The
			framework should be abstract and not fixed to BeanShell. Maybe
			we could add other scripting engines also (i.e. Jython, Jruby). To
			achieve 'typesafe' bindings (i.e. for context menus) we need a
			way to use descriptors for each script (prefered: a XML-file
			to describe a scripts input/output and usage).
		</li>
		 <br> <br>
	
		
		<li> <b> Other networks/AI types </b> <br>
		
		The goal of OpenAI is to develope a common base for all kind
		of AI-tools. To achieve this, the GUI must have a
		lowlevel-PlugIn mechanism, also. I dont think we can have a
		whole network-type (including visualisation and editing)
		compiled into a single PlugIn. What we need here is a
		module-API. 
		<br> 
		Possible Modules:
		<ul>
			<li>NeuralNet. The hardcoded neuralnet should be changed
			to a module, later</li>
			<li> Other neuralnet-types </li>
			<li> Genetic Algorithm Development and visualisation (tough one) </li>
			<li> Controller for thornhalo's agent-framework </li>
			<li> Whatever you want :-) </li>
				
		</ul>
		</li>
	<br>
	</ul>
	<hr>
	<p align=right>Last changed: T.Weber 05/02/02</p>
	
</body>
