#<HTML>
#<XMP>
# KEHOME/bin/GetData
# Aug/10/2003
#set -x

# Usage:
#	GetData question prefix suffix
# question ::=
#	subject predicate inverse
#
# Example:
#	GetData Person subClassOf yes "Person isg"

subject="$1"
predicate="$2"
inverse="$3"	# "inv"|"yes"|"no"
prefix="$4"
suffix="$5"

case "$inverse" in
"")  inverse="no";;
yes) inverse="yes";;
inv) inverse="yes";;
*)   inverse="no";;
esac
flags="inverse=$inverse"
#####flags="$flags,includeSubClasses=yes"
#####flags="$flags,includeSuperClasses=yes"

if [ -n "$prefix" ]
then echo "$prefix" >&2
fi

# setup Sun Java and Stanford TAP environment
#============================================#
#kbdata="http://tap.stanford.edu/data/"    # production
 kbdata="http://panic.stanford.edu/data/"  # test
. systype.env
case "$systype" in
Linux)  
	export TAP_HOME="/home/tap";
	export CLASSPATH=".:../../tap.jar" ;
	export JAVA_HOME="/usr/java/j2sdk1.4.2";
	export PATH="$JAVA_HOME/bin:$PATH";;
Cygwin)
	export TAP_HOME="/home/tap";
	export CLASSPATH=".;../../tap.jar" ;
	export JAVA_HOME="/home/java";
	export PATH="$JAVA_HOME/bin:$PATH";;
Interix)
	export TAP_HOME="/home/tap";
	export CLASSPATH=".;../../tap.jar" ;
	export JAVA_HOME="/home/java";
	export PATH="$JAVA_HOME/bin:$PATH";;
Windows)
	export TAP_HOME="/home/tap";
	export CLASSPATH=".;../../tap.jar" ;
	export JAVA_HOME="/home/java";
	export PATH="$JAVA_HOME/bin;$PATH";;
WinXP)
	export TAP_HOME="C:/home/tap";
	export CLASSPATH=".;../../tap.jar" ;
	export JAVA_HOME="C:/home/java";
	export PATH="$JAVA_HOME/bin;$PATH";;
Win98)
	export TAP_HOME="E:/home/tap";
	export CLASSPATH=".;../../tap.jar" ;
	export JAVA_HOME="F:/home/java";
	export PATH="$JAVA_HOME/bin;$PATH";;
esac

cd "$TAP_HOME/Java/examples/tutorial"

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

public class mkrGetData
{
    public static void main(String argv[])
    {
	String info      = "  # INFO: GetData: ";
	String tapuri    = "http://tap.stanford.edu/data/";
	String kbdata    = "$kbdata";

	String subject   = argv[0];
	String predicate = argv[1];
	String flags     = argv[2];

	if (!Abbrev.IsStandardTag(subject)) {
	    subject = tapuri + subject;
	}
	if (!Abbrev.IsStandardTag(predicate)) {
	    predicate = tapuri + predicate;
	}
	//System.out.println(info + "tapuri = "    + tapuri);
	//System.out.println(info + "kbdata = "    + kbdata);
	//System.out.println(info + "subject = "   + subject);
	//System.out.println(info + "predicate = " + predicate);
	//System.out.println(info + "flags = "     + flags);

	Client tap = new Client(kbdata);
	Resource answer = tap.GetData(subject,predicate,flags);
	System.err.println(info + "count = " + answer.count());
	for(int x = 0; x < answer.count(); ++x) {
	    String tapAnswer = answer.item(x).value;
	    String mkrAnswer = XML.SplitNamespace(tapAnswer).tag;
	    //System.out.println("  " + tapAnswer);
	    System.out.println("  " + mkrAnswer);
	}
    }
}
EOF

# compile & execute Java program
#===============================#
case "$systype" in
Linux)
  javac mkrGetData.java;
  java  mkrGetData "$subject" "$predicate" "$flags" ;;
Cygwin)
  javac mkrGetData.java;
  java  mkrGetData "$subject" "$predicate" "$flags" ;;
Interix)
  javac.exe mkrGetData.java;
  java.exe  mkrGetData "$subject" "$predicate" "$flags" ;;
Windows)
  javac.exe mkrGetData.java;
  java.exe  mkrGetData "$subject" "$predicate" "$flags" ;;
WinXP)
  javac.exe mkrGetData.java;
  java.exe  mkrGetData "$subject" "$predicate" "$flags" ;;
Win98)
  javac.exe mkrGetData.java;
  java.exe  mkrGetData "$subject" "$predicate" "$flags" ;;
esac | sort -f

chmod 777 mkrGetData.java
chmod 777 mkrGetData.class

if [ -n "$suffix" ]
then echo "$suffix" >&2
fi
#</XMP>
#</HTML>
