Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added resources/Clingo/clingo.exe
Binary file not shown.
30 changes: 24 additions & 6 deletions src/main/KnowledgeExtractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
import helper.KnowledgeObject;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
Expand Down Expand Up @@ -59,13 +61,21 @@ public HashMap<String,ArrayList<KnowledgeObject>> extractKnowledge(File textFile
}

@SuppressWarnings("unchecked")
public void runOnServer(){
HashSet<String> setOfDoneFiles = getSetOfDoneFiles();
public void runOnServer() throws IOException{
String fileNamesFilePath = Configurations.getProperty("knowextfrom");
int counter = 1;
ArrayList<String> kparseFile = Utilities.listFilesForFolder(new File(savedKparsesdirPath), false);
BufferedWriter bw = null;
bw = new BufferedWriter(new FileWriter(fileNamesFilePath, true));
HashSet<String> setOfDoneFiles = getSetOfDoneFiles(fileNamesFilePath);
java.util.Collections.sort(kparseFile);
for(String listFile : kparseFile){
System.out.println(listFile);
if(!setOfDoneFiles.contains(listFile)){
System.out.println("Processing file "+listFile);
bw.write(listFile);
bw.newLine();
bw.flush();

ArrayList<GraphPassingNode> listOfParses = (ArrayList<GraphPassingNode>) Utilities.load(savedKparsesdirPath+listFile);
for(GraphPassingNode gpn : listOfParses){
ArrayList<KnowledgeObject> kObjList;
Expand All @@ -84,21 +94,29 @@ public void runOnServer(){
// e.printStackTrace();
}
}
} else {
System.out.println("skipping file " + listFile);
}
}

bw.close();
}

public HashSet<String> getSetOfDoneFiles(){
public HashSet<String> getSetOfDoneFiles(String fileNamesFilePath) throws IOException{
HashSet<String> result = new HashSet<String>();
String fileNamesFilePath = Configurations.getProperty("knowextfrom");
try(BufferedReader br = new BufferedReader(new FileReader(fileNamesFilePath))){
BufferedReader br = null;
try{
br = new BufferedReader(new FileReader(fileNamesFilePath));
String line = null;
while((line=br.readLine())!=null){
result.add(line);
}
}catch(IOException e){
e.printStackTrace();
}
finally {
br.close();
}
return result;
}

Expand Down
53 changes: 30 additions & 23 deletions src/utils/ClingoExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

Expand Down Expand Up @@ -49,6 +50,7 @@ public Enum_OS getOS() {

public ArrayList<String> callASPusingFilesList(ArrayList<String> listOfFiles) throws InterruptedException{// sentFile, String bkFile, String rulesFile){
String files = "";
String[] cmd;
for(String name : listOfFiles){
files = files + " " + name;
}
Expand All @@ -57,39 +59,44 @@ public ArrayList<String> callASPusingFilesList(ArrayList<String> listOfFiles) th
try {
switch (currentOS) {
case LINUX:
String[] cmd = {
cmd = new String[]{
"/bin/sh",
"-c",
command
};
Process process;
process = Runtime.getRuntime().exec(cmd);
process.waitFor();

BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
while((line=stdInput.readLine())!=null){
Pattern p = Pattern.compile(".*Answer.*");
Matcher m = p.matcher(line);
if(m.find()){
if(result==null){
result=new ArrayList<String>();
}
line=stdInput.readLine();
if(!line.trim().equalsIgnoreCase("")){
result.add(line);
}
}
}
break;
default:
@SuppressWarnings("unused")
String[] cmd2 = {
case WINDOWS:
cmd = new String[]{
"cmd",
"/c",
command
};
break;
default:
throw new IOException("Unknown Operating System");
}

Process process;
process = Runtime.getRuntime().exec(cmd);
if(!process.waitFor(5, TimeUnit.SECONDS)) {
System.err.println("Clingo timed out");
return null;
}

BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
while((line=stdInput.readLine())!=null){
Pattern p = Pattern.compile(".*Answer.*");
Matcher m = p.matcher(line);
if(m.find()){
if(result==null){
result=new ArrayList<String>();
}
line=stdInput.readLine();
if(!line.trim().equalsIgnoreCase("")){
result.add(line);
}
}
}
} catch (IOException e) {
e.printStackTrace();
Expand Down