From: <seb...@us...> - 2012-01-04 15:02:01
|
Revision: 3526 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3526&view=rev Author: sebastianwtr Date: 2012-01-04 15:01:50 +0000 (Wed, 04 Jan 2012) Log Message: ----------- [tbsl exploration] writes now into XML-Files Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/SparqlObject.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/queryInformation.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/exploration_main/exploration_main.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/SparqlObject.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/SparqlObject.java 2012-01-04 13:49:40 UTC (rev 3525) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/SparqlObject.java 2012-01-04 15:01:50 UTC (rev 3526) @@ -133,7 +133,7 @@ * "Main" Method of this Class. * */ - public void create_Sparql_query(queryInformation query_struct) throws JWNLException, IOException, SQLException{ + public queryInformation create_Sparql_query(queryInformation query_struct) throws JWNLException, IOException, SQLException{ //create_Sparql_query_new(string); ArrayList<ArrayList<String>> lstquery = new ArrayList<ArrayList<String>>(); @@ -143,9 +143,7 @@ long startIterationTime = System.currentTimeMillis(); System.out.println("The Questionparsing took "+ (endParsingTime-startParsingTime)+ " ms"); ArrayList<String> final_answer = new ArrayList<String>(); - ArrayList<String> final_query = new ArrayList<String>(); Set<String> final_query_hash = new HashSet<String>(); - Set<String> final_answer_hash = new HashSet<String>(); if(lstquery.isEmpty()){ saveNotParsedQuestions(query_struct.getQuery()); @@ -332,7 +330,41 @@ try{ String anfrage=it.next().toString(); answer_tmp=sendServerQuestionRequest(anfrage); - final_answer.add("Begin:\n"+anfrage +"\n"+answer_tmp+" \n End"); + answer_tmp=answer_tmp.replace("\"@en", ""); + answer_tmp=answer_tmp.replace("\"", ""); + + //filter answers! + if(query_struct.isHint()){ + System.out.println("Using hint!"); + /* + * Answertyps: resource, string, boolean, num, date + */ + if(query_struct.getType().contains("boolean")){ + if(answer_tmp.contains("true")||answer_tmp.contains("false")) final_answer.add(answer_tmp); + + } + else if (query_struct.getType().contains("resource")){ + final_answer.add(answer_tmp); + } + else if (query_struct.getType().contains("string")){ + if(!answer_tmp.contains("http")&&!answer_tmp.contains("EmtyAnswer")) { + String[] tmparray = answer_tmp.split("\n"); + for(String z : tmparray)final_answer.add(z); + } + + } + else if (query_struct.getType().contains("num")){ + if(answer_tmp.matches("[0-9]*")) final_answer.add(answer_tmp); + + } + else if (query_struct.getType().contains("date")){ + final_answer.add(answer_tmp); + } + } + else{ + //final_answer.add("Begin:\n"+anfrage +"\n"+answer_tmp+" \n End"); + final_answer.add(answer_tmp); + } } catch (Exception e){ @@ -341,68 +373,9 @@ + query_struct.setResult(final_answer); - BufferedReader in = null; - - String tmp=""; - // Lies Textzeilen aus der Datei in einen Vector: - try { - in = new BufferedReader( - new InputStreamReader( - new FileInputStream( "/tmp/answer" ) ) ); - String s; - while( null != (s = in.readLine()) ) { - tmp+="\n"+s; - } - } catch( FileNotFoundException ex ) { - } catch( Exception ex ) { - System.out.println( ex ); - } finally { - if( in != null ) - try { - in.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - String out=""; - for(String answer : final_answer){ - if(answer!=null){ - //only answered question - if(!answer.contains("Error in searching Wordnet with word") && !answer.contains("EmtyAnswer")&& !answer.contains("Error in getting Properties"))out=out+ "\n"+answer+"\n"; - - /* - //only questions with wordnet error - if(answer.contains("Error in searching Wordnet with word"))out=out+ "\n"+answer+"\n"; - - //only questions with emty answers - if(answer.contains("EmtyAnswer"))out=out+ "\n"+answer+"\n"; -*/ - //only questions with Error in Properties - // if(answer.contains("Error in getting Properties"))out=out+ "\n"+answer+"\n"; - - //out+= "\n"+answer+"\n"; - } - else{ - System.out.println("Answer was null"); - } - - } - System.out.println(query_struct.getQuery()); - out = out.replace("@en","").replace("\"","").replace("^^<http://www.w3.org/2001/XMLSchema#int> ", ""); - System.out.println(out); - - BufferedWriter outfile = new BufferedWriter( - new OutputStreamWriter( - new FileOutputStream( "/tmp/answer" ) ) ); - - outfile.write(tmp+"\n"+query_struct.getQuery()+" :\n"+out); - outfile.close(); - long stopIterationTime = System.currentTimeMillis(); - System.out.println("The Questionparsing took "+ (endParsingTime-startParsingTime)+ " ms"); - System.out.println("The Iteration took "+ (stopIterationTime-startIterationTime)+ " ms"); - System.out.println("All took "+ (stopIterationTime-startParsingTime)+ " ms"); + return query_struct; } private ArrayList<String> newIteration(ArrayList<String> querylist, String query) throws SQLException, Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/queryInformation.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/queryInformation.java 2012-01-04 13:49:40 UTC (rev 3525) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/Sparql/queryInformation.java 2012-01-04 15:01:50 UTC (rev 3526) @@ -1,5 +1,7 @@ package org.dllearner.algorithm.tbsl.exploration.Sparql; +import java.util.ArrayList; + public class queryInformation { // <question id="32" type="boolean" fusion="false" aggregation="false" yago="false"> public final String query; @@ -10,8 +12,18 @@ public final String id; public final String XMLtype; public final boolean hint; + public ArrayList<String> result = new ArrayList<String>(); - public boolean isHint() { + public ArrayList<String> getResult() { + return result; + } + + public void setResult(ArrayList<String> new_result) { + this.result=new_result; + } + + + public boolean isHint() { return hint; } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/exploration_main/exploration_main.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/exploration_main/exploration_main.java 2012-01-04 13:49:40 UTC (rev 3525) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/exploration/exploration_main/exploration_main.java 2012-01-04 15:01:50 UTC (rev 3526) @@ -1,9 +1,11 @@ package org.dllearner.algorithm.tbsl.exploration.exploration_main; import java.io.BufferedReader; +import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; @@ -121,7 +123,12 @@ //get each line and send it to the parser //String query1, String id1, String type1, boolean fusion1, boolean aggregation1, boolean yago1, String XMLtype1 queryInformation newQuery = new queryInformation(s,"0","",false,false,false,"non",false); - sparql.create_Sparql_query(newQuery); + queryInformation result = new queryInformation(s,"0","",false,false,false,"non",false); + result=sparql.create_Sparql_query(newQuery); + ArrayList<String> ergebnis = result.getResult(); + for(String i: ergebnis){ + System.out.println(i); + } } long timeNow = System.currentTimeMillis(); long diff = timeNow-startTime; @@ -138,6 +145,7 @@ //create Structs ArrayList<queryInformation> list_of_structs = new ArrayList<queryInformation>(); + ArrayList<queryInformation> list_of_resultstructs = new ArrayList<queryInformation>(); //if you dont want to use the hints in the questions, use false list_of_structs=generateStruct(line,true); //Start Time measuring @@ -152,12 +160,16 @@ System.out.println("Query: "+s.getQuery()); System.out.println("Type: "+s.getType()); System.out.println("XMLType: "+s.getXMLtype()); - sparql.create_Sparql_query(s); + list_of_resultstructs.add(sparql.create_Sparql_query(s)); } - //sparql.create_Sparql_query(s); - + //Print to Console + System.out.println("\n#############\n Result:"); + for(queryInformation s : list_of_resultstructs){ + System.out.println(s.getResult()); + } + createXML(list_of_resultstructs); long timeNow = System.currentTimeMillis(); long diff = timeNow-startTime; @@ -168,7 +180,12 @@ else if(schleife==true && doing ==true){ long startTime = System.currentTimeMillis(); queryInformation newQuery = new queryInformation(line,"0","",false,false,false,"non",false); - sparql.create_Sparql_query(newQuery); + queryInformation result = new queryInformation(line,"0","",false,false,false,"non",false); + result= sparql.create_Sparql_query(newQuery); + ArrayList<String> ergebnis = result.getResult(); + for(String i: ergebnis){ + System.out.println(i); + } long endTime= System.currentTimeMillis(); System.out.println("\n The complete answering of the Question took "+(endTime-startTime)+" ms"); } @@ -182,6 +199,39 @@ } + private static void createXML(ArrayList<queryInformation> list){ + + + String xmlDocument=""; + int counter=0; + for (queryInformation s : list){ + String tmp; + if(counter==0){ + counter=counter+1; + xmlDocument="<?xml version=\"1.0\" ?><dataset id=\""+s.getXMLtype()+"\">"; + } + tmp="<question id=\""+s.getId()+"\"><string>"+s.getQuery()+"</string><query></query><ANSWERS>"; + for(String i : s.getResult())tmp+="<answer>"+i+"</answer>"; + tmp+="</ANSWERS></question>"; + xmlDocument+=tmp; + + } + xmlDocument+="</dataset>"; + File file; + FileWriter writer; + file = new File("/home/swalter/result.xml"); + try { + writer = new FileWriter(file ,false); + writer.write(xmlDocument); + writer.flush(); + + + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } private static ArrayList<queryInformation> generateStruct(String filename, boolean hint) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |