# KEHOME/bin/PutData
# Apr/8/2003

# PutData triple
# triple ::=
#	subject predicate object

export systype="Windows"
#export systype="Linux"

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

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

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

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
#===============================#
javac mkrPutData.java
java  mkrPutData
