Skip to content

Commit

Permalink
allowing loading multiple KGs and step towards loading multiple multi…
Browse files Browse the repository at this point in the history
…ple text spotters

Creating ExplanationExtractorDemo
  • Loading branch information
gadelrab committed May 11, 2019
1 parent 676aabc commit 6f5da10
Show file tree
Hide file tree
Showing 8 changed files with 209 additions and 190 deletions.
226 changes: 113 additions & 113 deletions QueryRewriting/src/main/java/config/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,14 @@ public class Configuration extends org.deri.iris.Configuration {
private static final String FACTS_FORMAT = "factsFormat";
private static final String PARTIAL_BINDING_TYPE = "partialBindingType";
private static final String SUSPECTS_FROM_KG = "suspectsFromKG";
public static final String FACT_SPOTTING_CONF = "factSpotting.config";
private static final String FACT_SPOTTING_CONF = "factSpotting.config";
private static final String EVALUATION_METHOD = "evalMethod";
private static final String MAX_EXPLANATIONS="maxExplanations";
private static final String MAX_RULE_NESTING="maxRuleNesting";
private static final String KGS_DIR="kgsDir";





private static Configuration instance;
Expand All @@ -43,6 +47,10 @@ public class Configuration extends org.deri.iris.Configuration {
*/
private static boolean externalConfFile=false;
private static ClassLoader classLoader;
/**
* FactSpotting Method
*/
FactSpotterFactory.SpottingMethod spottingMethod= FactSpotterFactory.SpottingMethod.NONE;
/**
* Extra configurations
*/
Expand All @@ -52,83 +60,11 @@ public class Configuration extends org.deri.iris.Configuration {
private int maxExplanations=10;
private int maxRuleNesting =3;
private ClassLoader spottingConfFileClassLoader;
;

public void setExtraProp(Properties extraProp) {
this.extraProperties = extraProp;
}

public boolean isSuspectsFromKG() {
return suspectsFromKG;
}

public void setSuspectsFromKG(boolean suspectsFromKG) {
this.suspectsFromKG = suspectsFromKG;
}

public void setSpottingConfFile(String spottingConfFile,ClassLoader classLoader) {
setSpottingConfFile(spottingConfFile);
setSpottingConfFileClassLoader(classLoader);
}

public void setSpottingConfFile(String spottingConfFile) {
this.spottingConfFile = spottingConfFile;

}


public void setSpottingConfFileClassLoader(ClassLoader spottingConfFileClassLoader) {
this.spottingConfFileClassLoader = spottingConfFileClassLoader;
}

public String getSpottingConfFile() {
return spottingConfFile;
}

public ClassLoader getSpottingConfFileClassLoader(){
return spottingConfFileClassLoader;
}

public void setEvaluationMethod(Enums.EvalMethod evaluationMethod) {
this.evaluationMethod = evaluationMethod;
}

public Enums.EvalMethod getEvaluationMethod() {
return evaluationMethod;
}

public int getMaxExplanations() {
return maxExplanations;
}

public int getMaxRuleNesting() {
return maxRuleNesting;
}

public void setMaxExplanations(int maxExplanations) {
this.maxExplanations = maxExplanations;
}

public void setMaxRuleNesting(int maxRuleNesting) {
this.maxRuleNesting = maxRuleNesting;
}


public enum PartialBindingType {GREEDY,TEXT,NONE}

public enum FactsFormat {RDF, IRIS;}

//public enum TextCheckingMode{GROUNDED, PARTIAL, NONE, KG_BIND;}
/**
* FactSpotting Method
*/
FactSpotterFactory.SpottingMethod spottingMethod= FactSpotterFactory.SpottingMethod.NONE;

private String kgsDirectory;
/**
* Files containing rules
*/
private List<String> rulesFiles;

/**
* Files containing facts
*/
Expand All @@ -137,24 +73,20 @@ public enum FactsFormat {RDF, IRIS;}
* Files containing queries
*/
private List<String> queriesFiles;

/**
* The format of the input fact, either RDF triples or IRIS facts
*/
private FactsFormat factsFormat;

/**
* The allowed facts to check, either fully grounded or partially
*/
private PartialBindingType partialBindingType;

/**
* suspected in the KG so remove them from KG
*/
private boolean suspectsFromKG=false;



public Configuration(){
super();
super.evaluationStrategyFactory=new ExtendedSLDNFEvaluationStrategyFactory();
Expand All @@ -175,7 +107,7 @@ public static Configuration fromFile(String filename, boolean inResources,ClassL
return fromStream(input);

// try {
// configuration file loaded in resources
// configuration file loaded in resources
// if (inResources) {
// input = Configuration.class.getClassLoader().getResourceAsStream(filename);
//
Expand Down Expand Up @@ -214,19 +146,19 @@ public static Configuration fromFile(String filename, boolean inResources,ClassL
public static InputStream loadFile(String filename, boolean inResources, ClassLoader classLoader) {
InputStream input = null;
if (inResources)
input = Configuration.class.getClassLoader().getResourceAsStream(filename);
else
if(classLoader!=null)
input=classLoader.getResourceAsStream(filename);
else
// configuration file form user
{
try {
input = new FileInputStream(filename);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
input = Configuration.class.getClassLoader().getResourceAsStream(filename);
else
if(classLoader!=null)
input=classLoader.getResourceAsStream(filename);
else
// configuration file form user
{
try {
input = new FileInputStream(filename);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}


return input;
Expand All @@ -247,6 +179,7 @@ public static Configuration fromStream(InputStream input) {

//get the property value
conf.setSpottingMethod(FactSpotterFactory.SpottingMethod.valueOf(prop.getProperty(SPOTTING_METHOD, "NONE")));
conf.setKgsDirectory(prop.getProperty(SPOTTING_METHOD, "kgs"));
conf.setRulesFiles(asList(prop.getProperty(RULES_FILES, "")));
conf.setFactsFiles(asList(prop.getProperty(FACTS_FILES, "")));
conf.setQueriesFiles(asList(prop.getProperty(QUERIES_FILES, "")));
Expand All @@ -271,7 +204,6 @@ public static Configuration fromStream(InputStream input) {
return conf;
}


public static Configuration fromFile(String filename) {
return fromFile(filename,!externalConfFile,classLoader);
}
Expand All @@ -283,9 +215,6 @@ public synchronized static Configuration getInstance() {
return instance;
}




public synchronized static boolean setConfigurationFile(String file,ClassLoader remoteClassLoader){
if(file==null||confFileAlreadySet)
return false;
Expand All @@ -300,19 +229,86 @@ public synchronized static boolean setConfigurationFile(String file,ClassLoader
}
}

public static String getConfigurationFile() {
return configurationFile;
}

public void setSpottingMethod(FactSpotterFactory.SpottingMethod spottingMethod) {
this.spottingMethod = spottingMethod;
public String getKgsDirectory() {
return kgsDirectory;
}

public void setRulesFiles(List<String> rulesFiles) {
this.rulesFiles = rulesFiles;
public void setKgsDirectory(String kgsDirectory) {
this.kgsDirectory = kgsDirectory;
}

public void setExtraProp(Properties extraProp) {
this.extraProperties = extraProp;
}

//public enum TextCheckingMode{GROUNDED, PARTIAL, NONE, KG_BIND;}

public boolean isSuspectsFromKG() {
return suspectsFromKG;
}

public void setSuspectsFromKG(boolean suspectsFromKG) {
this.suspectsFromKG = suspectsFromKG;
}

public void setSpottingConfFile(String spottingConfFile,ClassLoader classLoader) {
setSpottingConfFile(spottingConfFile);
setSpottingConfFileClassLoader(classLoader);
}

public String getSpottingConfFile() {
return spottingConfFile;
}

public void setSpottingConfFile(String spottingConfFile) {
this.spottingConfFile = spottingConfFile;

}

public ClassLoader getSpottingConfFileClassLoader(){
return spottingConfFileClassLoader;
}

public void setSpottingConfFileClassLoader(ClassLoader spottingConfFileClassLoader) {
this.spottingConfFileClassLoader = spottingConfFileClassLoader;
}

public Enums.EvalMethod getEvaluationMethod() {
return evaluationMethod;
}

public void setEvaluationMethod(Enums.EvalMethod evaluationMethod) {
this.evaluationMethod = evaluationMethod;
}

public int getMaxExplanations() {
return maxExplanations;
}

public void setMaxExplanations(int maxExplanations) {
this.maxExplanations = maxExplanations;
}

public int getMaxRuleNesting() {
return maxRuleNesting;
}

public void setMaxRuleNesting(int maxRuleNesting) {
this.maxRuleNesting = maxRuleNesting;
}

public List<String> getRulesFiles() {
return rulesFiles;
}

public void setRulesFiles(List<String> rulesFiles) {
this.rulesFiles = rulesFiles;
}

public List<String> getFactsFiles() {
return factsFiles;
}
Expand All @@ -321,34 +317,38 @@ public void setFactsFiles(List<String> factsFiles) {
this.factsFiles = factsFiles;
}

public void setQueriesFiles(List<String> queriesFiles) {
this.queriesFiles = queriesFiles;
public FactsFormat getFactsFormat() {
return factsFormat;
}

public void setFactsFormat(FactsFormat factsFormat) {
this.factsFormat = factsFormat;
}

public FactsFormat getFactsFormat() {
return factsFormat;
}

public FactSpotterFactory.SpottingMethod getSpottingMethod() {
return spottingMethod;
}

public void setSpottingMethod(FactSpotterFactory.SpottingMethod spottingMethod) {
this.spottingMethod = spottingMethod;
}

public List<String> getQueriesFiles() {
return queriesFiles;
}

public void setPartialBindingType(PartialBindingType partialBindingType) {
this.partialBindingType = partialBindingType;
public void setQueriesFiles(List<String> queriesFiles) {
this.queriesFiles = queriesFiles;
}

public PartialBindingType getPartialBindingType() {
return partialBindingType;
}

public void setPartialBindingType(PartialBindingType partialBindingType) {
this.partialBindingType = partialBindingType;
}

public boolean hasProperty(String prop){
return extraProperties.contains(prop);
}
Expand All @@ -357,11 +357,6 @@ public Object getProperty(String prop){
return extraProperties.getProperty(prop,null);
}

public static String getConfigurationFile() {
return configurationFile;
}


@Override
public String toString() {
return "Configuration{" +'\n'+
Expand All @@ -379,4 +374,9 @@ public String toString() {
", suspectsFromKG=" + suspectsFromKG +'\n'+
'}';
}

public enum PartialBindingType {GREEDY,TEXT,NONE}


public enum FactsFormat {RDF, IRIS;}
}
17 changes: 12 additions & 5 deletions QueryRewriting/src/main/java/extendedsldnf/EvaluatorFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,27 @@ public EvaluatorFactory(Configuration config) {

public RecSLDEvaluator getEvaluator(List<IExtendedFacts> facts, List<ITextConnector> uncertainResources,List<IRule> rules) {
// return getEvaluator(config.getEvaluationMethod(),facts,rules,new FactSpottingConnector(config),config.getPartialBindingType(),config.isSuspectsFromKG() );
return getEvaluator(config.getEvaluationMethod(),facts,rules,uncertainResources,config.getPartialBindingType(),config.isSuspectsFromKG() );
return getEvaluator(config.getEvaluationMethod(),facts,rules,uncertainResources,config.getPartialBindingType(),config.isSuspectsFromKG(), config.getMaxExplanations(), config.getMaxRuleNesting() );

}

public RecSLDEvaluator getEvaluator(Enums.EvalMethod evalMethod, List<IExtendedFacts> facts, List<IRule> rules, List<ITextConnector> factSpottingConnectors, Configuration.PartialBindingType partialBindingType, boolean suspectsFromKG) {

public RecSLDEvaluator getEvaluator(List<IExtendedFacts> facts, List<ITextConnector> uncertainResources,List<IRule> rules, int maxExplanations, int maxRules) {
// return getEvaluator(config.getEvaluationMethod(),facts,rules,new FactSpottingConnector(config),config.getPartialBindingType(),config.isSuspectsFromKG() );
return getEvaluator(config.getEvaluationMethod(),facts,rules,uncertainResources,config.getPartialBindingType(),config.isSuspectsFromKG(), maxExplanations,maxRules );

}

public RecSLDEvaluator getEvaluator(Enums.EvalMethod evalMethod, List<IExtendedFacts> facts, List<IRule> rules, List<ITextConnector> factSpottingConnectors, Configuration.PartialBindingType partialBindingType, boolean suspectsFromKG, int maxExplanations, int maxRules){
switch (evalMethod){

case SLD_ITR:
return new ItrSLDEvaluator(facts, rules,factSpottingConnectors,partialBindingType,suspectsFromKG, AbstractQueriesPool.ComparisionMethod.DFS,config.getMaxExplanations(),config.getMaxRuleNesting() );
return new ItrSLDEvaluator(facts, rules,factSpottingConnectors,partialBindingType,suspectsFromKG, AbstractQueriesPool.ComparisionMethod.DFS,maxExplanations,maxRules);
case HEURISTIC:
return new ItrSLDEvaluator(facts, rules,factSpottingConnectors,partialBindingType,suspectsFromKG, AbstractQueriesPool.ComparisionMethod.HEURISTIC,config.getMaxExplanations(),config.getMaxRuleNesting() );
return new ItrSLDEvaluator(facts, rules,factSpottingConnectors,partialBindingType,suspectsFromKG, AbstractQueriesPool.ComparisionMethod.HEURISTIC,maxExplanations,maxRules );
case SLD:
default:
return new RecSLDEvaluator(facts, rules,factSpottingConnectors,partialBindingType,suspectsFromKG,config.getMaxExplanations(),config.getMaxRuleNesting() );
return new RecSLDEvaluator(facts, rules,factSpottingConnectors,partialBindingType,suspectsFromKG,maxExplanations,maxRules );

}

Expand Down
Loading

0 comments on commit 6f5da10

Please sign in to comment.