There are two different aspects of integrating our systems:
We are focusing on creating a Recognition Toolkit first. In conjunction with the toolkit is a geometry package. This package has representations of and operations on basic geometric shapes.
Metin has the most robust low-level recognizers, so the low level recognizers are based on his code. Included (as a start) in this toolkit is recognition functionality for circles, lines, polygons, and complex shapes which are the combination of lines and bezier curves. In the future we may add other basic shapes (arrows, check marks, simple mechanical devices, specific shapes, etc).
The next step is to convert our existing systems to use this toolkit. This will ensure that the toolkit provides sufficient functionality and ease of use.
The step following this is to build a comprehensive sketch system of the sort designed by Luke and Christine, which provides a language in which to describe how semantics can be used to disambiguate ambiguous interpretations.
If something is unclear or wrong/broken please send me (moltmans@ai.mit.edu) a note. There are a few things you need to know to be able to compile, write, and run code in this system:
There is some more general information about setting up Win 2K, Java, emacs, cvs, etc... in the drg-howto
Cygwin: You also have to have CVS_RSH=ssh. Please don't samba mount
the repository (this is when you map a network drive in windows) since
there are some subtle problems with this that will make your life
unhappy.
IMPORTANT: don't modify these files to personalize your environment variables.
For example, if you did not put the
Other variables you may want to change in these scripts are:
cd drg/code/src/edu
If this produces errors there is probably something set incorrectly in
your environment setup (maybe because I have screwed something up).
Feel free to ask me about anything you have trouble with and please
tell me if there is something wrong even if you fix it. If you don't
someone else will have to suffer as well.
java edu.mit.sketch.toolkit.TicTacToe
If this doesn't work one common problem is having an old version of
java in your path. See the note for
You first draw the board and then play with yourself or a friend.
Feel free to write a computer player at your own leisure.
The web copy: Web
Javadocs
Mike Oltmans (moltmans@ai.mit.edu)
cd c:/
cvs -d :ext:fracas.ai.mit.edu:/projects/drg/CVSROOT checkout drg
Set Environment Variables
There are two scripts to help setup your environment. Assuming that
you have put the sources into ~/drg on Linux (or c:\ on Windows) all
you should need to do is:
It is also a good idea to include these lines in your shell's resource
file (i.e. .cshrc or .bashrc).
source drg/scripts/setup_env.csh
. setup_env.sh
drg directory in your
home directory then you will need to change the DRG_DIR variable by
overriding the default location. Create a file in your home directory
(type echo $HOME to find out what it is set to) called
.drg_setup.sh or .drg_setup.csh (according
to your shell). The commands in these files will override the
defaults in setup_env. If you need to change the way the
path or classpath are set in the default script you must set both the
path and classpath in your .drg_setup file and also set the variable:
DRG_DONT_CHANGE_PATH="TRUE".
DRG_DIR
${HOME}/drg or if you
put is somewhere else ${HOME}/code/drg etc... On
windows it should be a windows style path but with forward
facing slashes (`/'). For example:
c:/drg or d:/research/code/drg or
whatever.
DRG_JAVAC
DRG_JAVA_LIB
/jdk/jdk1.3/jre/lib/rt.jar or
c:/jdk1.3/jre/lib/rt.jar or wherever you have it
installed on your system.
JFLAGS
PATH
See the note for DRG_DONT_CHANGE_PATH if you need to change the
path in your local setup.
CLASSPATH
Jar files should be unzipped so that the CLASSPATH does not need to be
updated. To help enforce this the makefiles use a separate CLASSPATH
from that used by the shell. Talk to Mike Oltmans
(moltmans@ai.mit.edu)
if you really need to change it.
Binary libraries should be included in drg/lib if they are
platform independent or in the appropriate platform specific
subdirectory if they are platform dependent.
See the note for DRG_DONT_CHANGE_PATH if you need to change the
path in your local setup.
DRG_DONT_CHANGE_PATH
DRG_DONT_CHANGE_PATH="TRUE". Otherwise you should
set it to nothing.
Run the Makefile
You should now be ready to compile and run the sources (remember to
restart your shell if you changed any of the parameters in the
scripts).
make world
Run TicTacToe
If your environment is set up properly and everything compiled as
expected you should just have to type:PATH on
environment variables for more details.
Developing
Makefiles
Within the DRG system there should be no need to ever write a
makefile. If you need a new one, it can be automagically generated
for you. (Isn't that nice?)
How to use the makefiles
There are several top level targets for each makefile. Each operation
is performed in the current directory and all of the subdirectories
listed in the Makefile. Here are the targets (e.g. make
all):
Creating and Maintaining
To create a makefile in a new directory simply run:
new_drg_makefile. This will create the files "Makefile"
and "files" which are:
In addition there is a Make.default file: For the most part you should
not edit this file. Rather you should set environment variables to do
what you want. In general the variables you are likely to want to
change will be taken from the environment if they exist already.Coding standards and conventions
Variable and class names
Spacing, tabs, and braces
Debug output, error handling, error reporting
Documentation
Packages and API's
The local copy (if you have generated them):
Local Javadocs