Skip to content

Commit

Permalink
[AMIE] Options changes:
Browse files Browse the repository at this point in the history
lazy is now the default mining assistant,
using mins without minhc modify the pruning metric used
NEW: noSkyline disable the skyline pruning (output)
  • Loading branch information
Jonathan Lajus committed Jul 1, 2020
1 parent 553a844 commit a2beeca
Show file tree
Hide file tree
Showing 3 changed files with 302 additions and 269 deletions.
Binary file modified amie-dev.jar
Binary file not shown.
35 changes: 27 additions & 8 deletions mining/src/main/java/amie/mining/AMIE.java
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ public static AMIE getInstance(String[] args)
* ******************************
*/
int nProcessors = Runtime.getRuntime().availableProcessors();
String bias = "default"; // Counting support on the two head variables.
String bias = "lazy"; // Counting support on the two head variables.
Metric metric = Metric.HeadCoverage; // Metric used to prune the search space.
VariableOrder variableOrder = new FunctionalOrder();
MiningAssistant mineAssistant = null;
Expand Down Expand Up @@ -819,6 +819,10 @@ public static AMIE getInstance(String[] args)
+ "and to optimize the query")
.create("noKbExistsDetection");

Option noSkylineOp = OptionBuilder.withArgName("noSkyline")
.withDescription("Disable Skyline pruning of results")
.create("noSkyline");

Option variableOrderOp = OptionBuilder.withArgName("variableOrder")
.withDescription("Define the order of the variable in counting query among: app, fun (default), ifun")
.hasArg()
Expand Down Expand Up @@ -883,6 +887,7 @@ public static AMIE getInstance(String[] args)
options.addOption(noHeuristicsOp);
options.addOption(noKbRewrite);
options.addOption(noKbExistsDetection);
options.addOption(noSkylineOp);
options.addOption(variableOrderOp);
options.addOption(extraFileOp);
options.addOption(datalogNotationOpt);
Expand Down Expand Up @@ -939,6 +944,10 @@ public static AMIE getInstance(String[] args)
System.exit(1);
}

if (cli.hasOption("mins") && cli.hasOption("minhc") && !cli.hasOption("pm")) {
System.out.println("Warning: Both -mins and -minhc are set but only the default pruning metric will be used");
}

if (cli.hasOption("mins")) {
String minSupportStr = cli.getOptionValue("mins");
try {
Expand Down Expand Up @@ -975,6 +984,8 @@ public static AMIE getInstance(String[] args)
}
}

minMetricValue = minHeadCover;

if (cli.hasOption("minc")) {
String minConfidenceStr = cli.getOptionValue("minc");
try {
Expand Down Expand Up @@ -1161,24 +1172,31 @@ public static AMIE getInstance(String[] args)
schemaSource.load(schemaFiles);
}

if (cli.hasOption("mins") != cli.hasOption("minhc")) {
if (cli.hasOption("mins")) {
metric = Metric.Support;
minMetricValue = minSup;
if (!cli.hasOption("minis")) { minInitialSup = minSup; }
} else {
metric = Metric.HeadCoverage;
minMetricValue = minHeadCover;
}
}

if (cli.hasOption("pm")) {
switch (cli.getOptionValue("pm")) {
case "support":
metric = Metric.Support;
System.err.println("Using " + metric + " as pruning metric with threshold " + minSup);
minMetricValue = minSup;
minInitialSup = minSup;
if (!cli.hasOption("minis")) { minInitialSup = minSup; }
break;
default:
metric = Metric.HeadCoverage;
System.err.println("Using " + metric + " as pruning metric with threshold " + minHeadCover);
minMetricValue = minHeadCover;
minMetricValue = minHeadCover;
break;
}
} else {
System.out.println("Using " + metric + " as pruning metric with minimum threshold " + minHeadCover);
minMetricValue = minHeadCover;
}
System.out.println("Using " + metric + " as pruning metric with minimum threshold " + minMetricValue);

if (cli.hasOption("bias")) {
bias = cli.getOptionValue("bias");
Expand Down Expand Up @@ -1334,6 +1352,7 @@ public static AMIE getInstance(String[] args)
mineAssistant.setOmmitStdConfidence(ommitStdConfidence);
mineAssistant.setDatalogNotation(datalogOutput);
mineAssistant.setOptimAdaptiveInstantiations(adaptiveInstantiations);
mineAssistant.setUseSkylinePruning(!cli.hasOption("noSkyline"));

System.out.println(mineAssistant.getDescription());

Expand Down
Loading

0 comments on commit a2beeca

Please sign in to comment.