Here are some statistics for version 0.00022:
DECLARATIVE database assertions 22,487 hierarchical (ISA) links 28,818 lexical entry features 126,511 inflection features 99,637 ================================ total 277,453 lexical entries 56,552 verified inflections 33,407 concepts 27,093 ================================ total 117,052 PROCEDURAL lines of C code 71,967
Here is comparison of ThoughtTreasure 0.00022 with WordNet (Miller, 1995b), Cyc (Lenat, 1995), EDR (Yokoi, 1995), and LADL's electronic dictionary (Courtois and Silberztein, 1990):
TT WordNet Cyc EDR LADL ______ _________ _________ _______ _______ languages E,F E E E,J F le 56,552 129,509 600,000 170,000 infl 33,407 600,000 obj 27,093 99,642 39,665 400,000 <le, obj> 53,896 166,000 polysemy 6.8% 17% assertions 51,305 140,475 290,995 code lines 71,967 effort 3 100(WordNet numbers are based on WordNet 1.6 of February 20, 1998. Cyc numbers are based on the Cyc C distribution of April 4, 1997.)
First, uncompress the downloaded file using a shareware decompression utility. You can download many such utilities from http://www.windows95.com.
Second, untar the decompressed file using a shareware tar utility, also available from http://www.windows95.com. Place the ThoughtTreasure distribution in a convenient location on your hard disk such as C:\ThoughtTreasure.
Next, compile ThoughtTreasure. (See "How do I compile ThoughtTreasure under Windows 95/98?")
Now from the Start menu, start an MS-DOS window ([MS-DOS Prompt] under [Programs]).
Click on the [Properties] icon. (In Windows 95/98, if you place the cursor on an icon, its name will be displayed underneath it.)
Click on the [Memory] tab.
Type "65535" after "Total:" under "MS-DOS protected-mode (DPMI) memory."
Click on the [Apply] button.
Exit the MS-DOS window because the changes made do not take effect until a new MS-DOS window is started.
First, bring up a shell and uncompress the downloaded file by typing:
gunzip /tmp/tt.tar.gzif /tmp/tt.tar.gz is where you placed the downloaded file.
(If your system does not have gunzip, download a copy from a GNU archive site. See the list of sites at http://www.cs.pdx.edu/~trent/gnu/sites.html.)
Second, create a new directory for the ThoughtTreasure distribution and untar the decompressed file into the directory:
mkdir tt cd tt tar xvf /tmp/tt.tar
Now compile ThoughtTreasure. (See "How do I compile ThoughtTreasure under Unix?")
Download and install DJGPP version 2.01 or higher from one of the sites listed at http://www.delorie.com/djgpp/. DJGPP is a complete C/C++ development system for PCs that includes ports of many GNU development utilities including the gcc compiler.
A makefile is present in the src directory of the ThoughtTreasure distribution. Edit the makefile for your platform, as explained in the makefile.
Then to compile ThoughtTreasure, type make in the src directory.
Then type make install to install the tt.exe executable into the bin directory.
A makefile is present in the src directory of the ThoughtTreasure distribution. ThoughtTreasure distribution. Edit the makefile for your platform, as explained in the makefile.
Then to compile ThoughtTreasure, type make in the src directory.
Then type make install to install the tt executable into the bin directory.
Make sure ThoughtTreasure is installed and compiled. (See "How do I install ThoughtTreasure under Windows 95/98?" and "How do I compile ThoughtTreasure under Windows 95/98?")
Start an MS-DOS window.
Type:
cd C:\ThoughtTreasure\bin tt
if C:\ThoughtTreasure is where the ThoughtTreasure distribution is installed.
Make sure ThoughtTreasure is installed and compiled. (See "How do I install ThoughtTreasure under Unix?" and "How do I compile ThoughtTreasure under Unix?")
Type:
cd <the location of the ThoughtTreasure distribution> cd bin ./tt
Follow the procedure for downloading, installing, and running ThoughtTreasure under Windows 95/98. Skip the steps dealing with starting and configuring the MS-DOS window. You will have to choose a shorter name for the directory containing the ThoughtTreasure distribution.
The DPMI host CWSDPMI.EXE, provided in the ThoughtTreasure bin directory, can be used to enable ThoughtTreasure to run under DOS. Make sure CWSDPMI.EXE is in the same directory as the tt.exe executable or in a directory listed in the PATH. Consult the DJGPP site at http://www.delorie.com/djgpp/ for further information on running programs compiled with DJGPP (such as ThoughtTreasure).
You can add the ThoughtTreasure bin directory to your PATH, so you can run ThoughtTreasure from any directory simply by typing tt.
Under Windows 95/98, add the ThoughtTreasure bin directory to your PATH in your AUTOEXEC.BAT file and then reboot.
Under Unix, add the ThoughtTreasure bin directory to your PATH in your .profile, .bash_profile, or equivalent (depending on what shell you use), and then log in again.
Use the TTROOT environment variable to tell ThoughtTreasure where to look for its database files.
Under Windows 95/98, type:
set TTROOT=C:\ThoughtTreasureif C:\ThoughtTreasure is where the ThoughtTreasure distribution is installed.
Under Unix, type:
export TTROOT=/u/erik/ttif /u/erik/tt is where the ThoughtTreasure distribution is installed. (This assumes you are using the Korn shell or Bash. The syntax for other shells may be different.)
There are three ways of doing this:
Start ThoughtTreasure and then issue the command server or server -port PORT (where PORT is the desired listen port).
Here are some numbers for version 0.00021, including how much memory is used after loading:
============================ Load time Memory MM:SS MM:SS KB (2) (3) (2) ============================ E+L (1) 00:38 06:57 15,348 E+G 00:42 18,196 E+F+L 00:52 21,132 E+F+G 01:14 28,776 ============================ E = English F = French L = algorithmic morphology G = analogical morphology 1 = default configuration 2 = Red Hat Linux 5.2, 100MHz Pentium, 64 MB RAM 3 = Windows 95, 120MHz Pentium, 48 MB RAM
Version 0.00020 loaded (for E+L) in 01:00 on Solaris 2.4, dual 100 MHz Pentium, 64 MB RAM, and 06:26 on Windows 95, 120 MHz Pentium, 48 MB RAM.
If you don't need all the database files for your application, you can invoke ThoughtTreasure with the -l option, which prevents the loading of inflection and database files. Then you can manually load the needed files according to the following example:
loadbegin loadinf -f db/eninfl.txt loadpolity -f db/geog.txt loadisa -f db/absobj.txt loadisa -f db/attr.txt ... loadend
To have a conversation with ThoughtTreasure, type chateng at the asterisk ("*") prompt. You may then ask it questions such as How are you?, What time is it?, What color is the sky?, and What is a cat?
For a complete list of ThoughtTreasure shell commands, see the ThoughtTreasure quick reference.
ThoughtTreasure writes to standard output and places a number of output files in the current directory, including a log file and other files of the form out*.txt. It places report output in the directory ../report.
We are trying to eliminate all such problems, so please send a bug report to bugs@signiform.com.
sizeof(char) = 1 sizeof(short) = 2 sizeof(int) = 4 sizeof(long) = 4 sizeof(float) = 4 sizeof(double) = 8
This is a known bug in the C compiler (Sequent log call #1035945) and has been fixed in 4.1.3 and above. (according to "Tigran Aivazian" TIGRANA@DSTIUK.CCMAIL.CompuServe.COM)
Short answer: View the files you are interested in with a browser such as Netscape. If you are using Emacs, put (standard-display-8bit 128 255) in your .emacs file.
Long answer: ThoughtTreasure uses the ISO 8859-1 character set, which is used on Unix and the web. Microsoft Windows Latin-1, Code Page 1252 is a superset of ISO 8859-1. However, DOS and many Windows applications use a different character set, which is in turn different from the one used by Macs. The characters whose codes are greater than 127 are the ones that differ across the platforms. These are used for French texts and for ThoughtTreasure features.
If you are on a PC or Mac and wish to view these characters properly, you should use an ISO 8859-1 compatible application such as Netscape Navigator.
When downloading ThoughtTreasure, you might need to tell your downloader not to alter these characters.
The file utilchar.c has utilities to convert between the MS-DOS, Mac, and ISO 8859-1 character sets. Some of the mappings are approximate, since not all characters are available in all character sets.
I was unsuccessful at getting ThoughtTreasure to run on a Macintosh Centris 650 using Mac OS version F1-7.1 and Symantec C++ Version 6.0.1. I ran into problems with bombing inside the library function fopen. I tried a few experiments but was unable to isolate the problem.
If you want to attempt to compile and run ThoughtTreasure on the Mac, you might be able to make use of the procedure I used when trying unsuccessfully to do this:
Download the ThoughtTreasure distribution to your Mac. Make sure you tell your downloader to convert Unix newlines into Mac newlines. Where Unix uses LF, the Mac OS uses CR.
Launch the Think C project manager.
Use [File] [New Project] to create a new Think C project. Name it ThoughtTreasure, and save it in the src directory of the ThoughtTreasure distribution.
Use [Source] [Add Files] to add all the *.c files in the src directory to your project. (Click on [Add All], then [Done].) All the *.c files should now appear in the ThoughtTreasure project window.
Use [Source] [Add Files] to add the ANSI and unix libraries from the Standard Libraries folder of the Think C distribution.
Use [File] [Open] to edit the file tt.h. Add the following line to the top of the file:
#define MACOS
Use [File] [Save] to save the file.
Select [Project] [Build Application] and click on [Update]. Think C should compile all of the *.c files. If there are any compilation errors they will appear in the Compile Errors window. When Think C asks you to save the built ThoughtTreasure application, attempt to save it as tt in the bin directory.
The above step will fail due to "data segment too big". In [Project]-[Set Project Type] select the Far Data option, set the Partition (K) to 35000, and click OK.
The Mac limits segments to 32K. You will need to go to the project window, and create new segments by dragging file names below the Totals line. Create enough new segments and move the files within the segments such that no segment is bigger than 32,768 bytes. This may take a bit of work.
Rerun [Project] [Build Application] and click on [Update].
Run ThoughtTreasure by selecting [Project] [Run].
ThoughtTreasure is bombing for me inside fopen.
An attempt was made at first to free storage that is no longer being used. As the program became more complex, data structures were shared by more and more modules, making it difficult to determine exactly how and when to free storage. Programming time was saved by ignoring the problem and allowing some memory leaks for the time being. Some of the places in the code where storage might need to be freed are marked with the keyword todoFREE. An automatic garbage collector would also solve this problem.
Many programmers improve the efficiency of their code by eliminating redundant checks. For example, representation invariants are enforced in one part of the code and then assumed to be true in another. The opposite was done here: Given the notorious brittleness of AI programs, it was felt that each agent or module should do its best to deal with as many cases as possible and not to break in the face of unexpected input. This leads to somewhat less efficient code, but code that is more robust in the face of program modifications and new inputs. Some of the redundant code (that is, redundant provided other parts of the program have not been changed) is marked in the source with the keyword REDUNDANT.
In addition to the REDUNDANT and todoFREE keywords described above, here are some other keywords used in the code and database:
In the source code, comments are often used to provide typical examples of function inputs and outputs, and values of local variables at various points inside a function. This helps the reader understand exactly what is being processed. (A ThoughtTreasure object variable alone does not say much, since an object can take a variety of forms.) References are also made to specific input cases, to help the reader understand the purpose of a line of code.
See the system requirements.
See the download page.
See the ThoughtTreasure quick reference.
Read the ThoughtTreasure documentation.