//
// KEHOME/java/tap/getresource.java
// Sep/8/2003
// usage:
// java getresource kbdata
// genus name
// ...
// CONTROL-Z
// example:
// java getresource http://tap.stanford.edu/data/
// Resource MacPherson
// Athlete Jordan
// CONTROL-Z
import java.io.*;
import java.util.*;
import java.util.regex.*;
import edu.stanford.TAP.Abbrev;
import edu.stanford.TAP.Client;
import edu.stanford.TAP.Resource;
import edu.stanford.TAP.XML;
/**
* read TAP KB location from command line
* create TAP KB client
* read genus-name pair(s) from standard input
* parse to genus, name
* get answer(s) from TAP KB
* sort answer(s)
* print answer(s)
*/
public class getresource
{
public static void main(String argv[])
//----------------------------------//
throws IOException
{
String info = "# INFO: getresource: ";
String error = "# ERROR: getresource: ";
String debug = "no";
String Subflag = "includeSubClasses=yes";
String Superflag = "includeSuperClasses=yes";
String flags = "";
String kbdata = argv[0];
Client tap = new Client(kbdata);
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
String line = "";
for (
int linenumber = 0;
line != null;
++linenumber
) {
System.err.print("gr$ ");
try {
line = in.readLine();
} catch(IOException e) {
return;
}
if (line == null) return;
String[] sentence = Pattern.compile(" ").split(line);
String genus = sentence[0];
String name = sentence[1];
if (debug == "yes") {
System.err.println(info + "kbdata = " + kbdata);
System.err.println(info + "genus = " + genus);
System.err.println(info + "name = " + name);
System.err.println(info + "flags = " + flags);
}
if (genus.equals("?") || name.equals("?"))
{
if (debug == "yes") System.err.println("# qtype = unknown");
System.err.println(error +
"genus <" + genus + "> " +
"name <" + name + "> ");
System.err.println("# usage: genus name");
return;
}
String[] answer = get_resource(tap,genus,name);
int n = answer.length;
if (n == 0) {
System.err.println(" " + info + "count = " + n);
} else {
getdata.print_column(answer);
}
} // end for
return;
} // end main()
/**
* translate Qname to URI
* get answer(s) from TAP KB
* sort answer(s)
*/
public static String[] get_resource(
//--------------------------------//
Client tap,
String genus,
String name
)
{
String info = "# INFO: get_resource: ";
String debug = "no";
String flags = "";
Abbrev.LoadNamespaces("namespaces.txt");
String uriGenus = Qname.GetNameURI(genus);
if (debug == "yes") {
System.out.println(info + " uriGenus = " + uriGenus);
System.out.println(info + " name = " + name);
System.out.println(info + " flags = " + flags);
}
//if () {
//Resource answer = tap.GetResourcesNamed(name);
//} else {
Resource resource = new Resource(uriGenus);
Resource answer = tap.GetResourcesNamed(name,resource);
//}
int n = answer.count();
String[] mkrAnswer = new String[n];
for(int x = 0; x < n; ++x) {
String tapAnswer = answer.item(x).value;
mkrAnswer[x] = XML.SplitNamespace(tapAnswer).tag;
}
Arrays.sort(mkrAnswer);
return mkrAnswer;
} // end get_resource()
} // end class getresource
//