#<HTML>
#<XMP>
# KEHOME/bin/PutData
# Apr/27/2003

# PutData triple
#   triple ::=
#	subject predicate object
# Example
#   PutData Roger_L._Costello type Person

. systype.env

subject="$1"
predicate="$2"
object="$3"
flags=""
share="C:/Documents and Settings/All Users/Documents"
tapfile="$KEHOME/xml/tap.rdf"

# setup Sun Java and Stanford TAP environment
#============================================#

case "$systype" in
Linux)  
	export TAP_HOME="/home/tap";
	export CLASSPATH=".:../../tap.jar:../../edu/stanford/TAP/" ;
	export JAVA_HOME="/usr/java/j2sdk1.4.1_01";
	export PATH="$JAVA_HOME/bin:$PATH";;
Interix)
	export TAP_HOME="/home/tap";
	export CLASSPATH=".;../../tap.jar;../../edu/stanford/TAP/" ;
	export JAVA_HOME="/home/java";
	export PATH="$JAVA_HOME/bin:$PATH";;
WinXP)
	export TAP_HOME="C:/home/tap";
	export CLASSPATH=".;../../tap.jar;../../edu/stanford/TAP/" ;
	export JAVA_HOME="C:/home/java";
	export PATH="$JAVA_HOME/bin;$PATH";;
Win98)
	export TAP_HOME="C:/home/tap";
	export CLASSPATH=".;../../tap.jar;../../edu/stanford/TAP/" ;
	export JAVA_HOME="C:/home/java";
	export PATH="$JAVA_HOME/bin;$PATH";;
esac

cd "$TAP_HOME/Java/examples/tutorial"

# build the Java program
#=======================#
cat <<EOF  >mkrPutData.java
import edu.stanford.TAP.Abbrev;
import edu.stanford.TAP.Client;
import edu.stanford.TAP.Resource;
import edu.stanford.TAP.XML;
import edu.stanford.TAP.KB;

import edu.stanford.TAP.KB_MemHash;
import edu.stanford.TAP.Import_Guess;
import edu.stanford.TAP.Export_RDF;
import edu.stanford.TAP.Export_MCF;
import java.io.*;

public class mkrPutData
{

    // put the path to the kb you want to modify here. or pass it in.
    public static final String kbFile = "$tapfile";

    public static void main(String argv[])
    {

	KB kb = new KB_MemHash();
	Import_Guess.LoadFile(kb, kbFile);
	kb.Assert("$subject", "$predicate", "$object");
	FileOutputStream out = null;
	try {
            out = new FileOutputStream(kbFile);
	}
	catch(FileNotFoundException e) {
            System.err.println("Couldn't open output file " + kbFile);
            return;
	}
	if(kbFile.endsWith(".rdf")) {
            Export_RDF.DoSerialize(out, kb);
	}
	else if(kbFile.endsWith(".mcf")) {
            Export_MCF.DoSerialize(out, kb);
	}

    }
}
EOF

# compile & execute Java program
#===============================#
case "$systype" in 
Linux)
	javac mkrPutData.java;
	java  mkrPutData;;
Interix)
	javac.exe mkrPutData.java;
	java.exe  mkrPutData;;
WinXP)
	javac.exe mkrPutData.java;
	java.exe  mkrPutData;;
Win98)
	javac.exe mkrPutData.java;
	java.exe  mkrPutData;;
esac
#</XMP>
#</HTML>
