public class DefaultMiningAssistant extends MiningAssistant
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<javatools.datatypes.Pair<javatools.datatypes.ByteString,java.lang.Boolean>,java.lang.Long> |
hardQueries
Store counts for hard queries
|
allowConstants, avoidUnboundTypeAtoms, bodyExcludedRelations, bodyTargetRelations, confidenceMetric, countAlwaysOnSubject, enabledConfidenceUpperBounds, enabledFunctionalityHeuristic, enablePerfectRules, enableQueryRewriting, enforceConstants, exploitMaxLengthOption, headCardinalities, headExcludedRelations, kb, kbSchema, maxDepth, minPcaConfidence, minStdConfidence, recursivityLimit, subPropertyString, totalObjectCount, totalSubjectCount, typeString, verbose| Constructor and Description |
|---|
DefaultMiningAssistant(KB dataSource) |
| Modifier and Type | Method and Description |
|---|---|
void |
calculateConfidenceMetrics(Rule candidate)
It computes the standard and the PCA confidence of a given rule.
|
protected long |
computeBodySize(javatools.datatypes.ByteString var1,
javatools.datatypes.ByteString var2,
Rule query)
Returns the number of distinct bindings of the given variables in the body of the rule.
|
double |
computeCardinality(Rule rule)
It computes the number of positive examples (cardinality) of the given rule
based on the evidence in the database.
|
protected double |
computePcaBodySize(javatools.datatypes.ByteString var1,
javatools.datatypes.ByteString var2,
Rule query,
java.util.List<javatools.datatypes.ByteString[]> antecedent,
javatools.datatypes.ByteString[] existentialTriple,
int nonExistentialPosition)
Returns the denominator of the PCA confidence expression for the antecedent of a rule.
|
double |
computePCAConfidence(Rule rule)
It computes the PCA confidence of the given rule based on the evidence in database.
|
double |
computeStandardConfidence(Rule candidate)
It computes the standard confidence of the given rule based on the evidence in database.
|
protected boolean |
containsHardCase(Rule query,
javatools.datatypes.ByteString[] newEdge)
It determines whether the rule contains an expensive query patterns of the forms
#(x, y) : r(z, x) r(z, y) or #(x, y) : r(y, z) r(x, z).
|
void |
getClosingAtoms(Rule rule,
double minSupportThreshold,
java.util.Collection<Rule> output)
Returns all candidates obtained by adding a closing edge (an edge with two existing variables).
|
protected void |
getDanglingAtoms(Rule query,
javatools.datatypes.ByteString[] edge,
double minSupportThreshold,
java.util.Collection<Rule> output)
It adds to the output all the rules resulting from adding dangling atom instantiation of "edge"
to the query.
|
void |
getDanglingAtoms(Rule query,
double minCardinality,
java.util.Collection<Rule> output)
Returns all candidates obtained by adding a new triple pattern to the query
|
java.lang.String |
getDescription()
Brief description of the MiningAssistant capabilities.
|
void |
getInitialAtoms(double minSupportThreshold,
java.util.Collection<Rule> output)
Returns a list of one-atom queries using the relations from the KB
|
void |
getInitialAtomsFromSeeds(java.util.Collection<javatools.datatypes.ByteString> relations,
double minCardinality,
java.util.Collection<Rule> output)
Returns a list of one-atom queries using the head relations provided in the collection relations.
|
protected void |
getInstantiatedAtoms(Rule query,
Rule parentQuery,
int bindingTriplePos,
int danglingPosition,
double minSupportThreshold,
java.util.Collection<Rule> output)
Application of the "Add instantiated atom" operator.
|
long |
getTotalCount(Rule query) |
static void |
main(java.lang.String[] args) |
protected Rule |
rewriteProjectionQuery(Rule query,
int bindingTriplePos,
int bindingVarPos)
It identifies redundant patterns in queries and rewrites them accordingly
so that they become less expensive to evaluate.
|
buildInitialQueries, calculateConfidenceApproximationFor3Atoms, calculateConfidenceApproximationForGeneralCase, calculateConfidenceBoundsAndApproximations, canAddInstantiatedAtoms, findCountingVariable, getBodyExcludedRelations, getBodyTargetRelations, getConfidenceMetric, getFactsCount, getHeadCardinality, getHeadExcludedRelations, getInstantiatedAtoms, getKb, getKbSchema, getMaxDepth, getMinConfidence, getPcaConfidenceThreshold, getRecursivityLimit, getRelationCardinality, getRelationCardinality, getSubClasses, getTotalCount, getTotalObjectCount, getTotalSubjectCount, isAvoidUnboundTypeAtoms, isEnabledConfidenceUpperBounds, isEnabledFunctionalityHeuristic, isEnablePerfectRules, isEnableQueryRewriting, isEnforceConstants, isExploitMaxLengthOption, isVerbose, registerHeadRelation, setAllowConstants, setAvoidUnboundTypeAtoms, setBodyExcludedRelations, setConfidenceMetric, setCountAlwaysOnSubject, setEnabledConfidenceUpperBounds, setEnabledFunctionalityHeuristic, setEnablePerfectRules, setEnableQueryRewriting, setEnforceConstants, setExploitMaxLengthOption, setHeadExcludedRelations, setKbSchema, setMaxDepth, setPcaConfidenceThreshold, setRecursivityLimit, setStdConfidenceThreshold, setTargetBodyRelations, setVerbose, testConfidenceThresholds, testLengthprotected java.util.Map<javatools.datatypes.Pair<javatools.datatypes.ByteString,java.lang.Boolean>,java.lang.Long> hardQueries
public DefaultMiningAssistant(KB dataSource)
public long getTotalCount(Rule query)
getTotalCount in class MiningAssistantpublic java.lang.String getDescription()
MiningAssistantgetDescription in class MiningAssistantpublic void getInitialAtomsFromSeeds(java.util.Collection<javatools.datatypes.ByteString> relations,
double minCardinality,
java.util.Collection<Rule> output)
MiningAssistantgetInitialAtomsFromSeeds in class MiningAssistantminCardinality - Only relations of size bigger or equal than this value will be considered.output - The results of the method are added directly to this collection.public void getInitialAtoms(double minSupportThreshold,
java.util.Collection<Rule> output)
MiningAssistantgetInitialAtoms in class MiningAssistantminSupportThreshold - Only relations of size bigger or equal than this value will
be considered.public void getClosingAtoms(Rule rule, double minSupportThreshold, java.util.Collection<Rule> output)
getClosingAtoms in class MiningAssistantrule - minSupportThreshold - output - public void getDanglingAtoms(Rule query, double minCardinality, java.util.Collection<Rule> output)
getDanglingAtoms in class MiningAssistantquery - and will therefore predict too many new facts with scarce evidence,minCardinality - output - protected void getDanglingAtoms(Rule query, javatools.datatypes.ByteString[] edge, double minSupportThreshold, java.util.Collection<Rule> output)
query - edge - minSupportThreshold - Minimum support threshold.output - protected boolean containsHardCase(Rule query, javatools.datatypes.ByteString[] newEdge)
query - newEdge - protected void getInstantiatedAtoms(Rule query, Rule parentQuery, int bindingTriplePos, int danglingPosition, double minSupportThreshold, java.util.Collection<Rule> output)
getInstantiatedAtoms in class MiningAssistantquery - parentQuery - bindingTriplePos - danglingPosition - minSupportThreshold - output - protected Rule rewriteProjectionQuery(Rule query, int bindingTriplePos, int bindingVarPos)
query - bindingTriplePos - bindingVarPos - protected long computeBodySize(javatools.datatypes.ByteString var1,
javatools.datatypes.ByteString var2,
Rule query)
var1 - var2 - query - protected double computePcaBodySize(javatools.datatypes.ByteString var1,
javatools.datatypes.ByteString var2,
Rule query,
java.util.List<javatools.datatypes.ByteString[]> antecedent,
javatools.datatypes.ByteString[] existentialTriple,
int nonExistentialPosition)
var1 - var2 - query - antecedent - existentialTriple - nonExistentialPosition - public double computeCardinality(Rule rule)
MiningAssistantcomputeCardinality in class MiningAssistantpublic double computePCAConfidence(Rule rule)
MiningAssistantcomputePCAConfidence in class MiningAssistantpublic double computeStandardConfidence(Rule candidate)
MiningAssistantcomputeStandardConfidence in class MiningAssistantpublic void calculateConfidenceMetrics(Rule candidate)
MiningAssistantcalculateConfidenceMetrics in class MiningAssistantpublic static void main(java.lang.String[] args)
throws java.io.IOException
java.io.IOException