org.dllearner.refinementoperators.fuzzydll
Class FuzzyRhoDRDown

java.lang.Object
  extended by org.dllearner.refinementoperators.RefinementOperatorAdapter
      extended by org.dllearner.refinementoperators.fuzzydll.FuzzyRhoDRDown
All Implemented Interfaces:
RefinementOperator

public class FuzzyRhoDRDown
extends RefinementOperatorAdapter

A downward refinement operator, which makes use of domains and ranges of properties. The operator is currently under development. Its aim is to span a much "cleaner" and smaller search tree compared to RhoDown by omitting many class descriptions, which are obviously too weak, because they violate domain/range restrictions. Furthermore, it makes use of disjoint classes in the knowledge base. TODO Some of the code has moved to Utility in a modified form to make it accessible for implementations of other refinement operators. These utility methods may be completed and carefully integrated back later.

Author:
Jens Lehmann

Field Summary
 long mComputationTimeNs
           
 long topComputationTimeNs
           
 
Constructor Summary
FuzzyRhoDRDown(AbstractReasonerComponent reasoningService)
           
FuzzyRhoDRDown(AbstractReasonerComponent reasoner, ClassHierarchy subHierarchy, Description startClass, RefinementOperatorConfigurator configurator)
           
FuzzyRhoDRDown(AbstractReasonerComponent reasoningService, ClassHierarchy subHierarchy, OCELConfigurator configurator, boolean applyAllFilter, boolean applyExistsFilter, boolean useAllConstructor, boolean useExistsConstructor, boolean useHasValueConstructor, int valueFrequencyThreshold, boolean useCardinalityRestrictions, boolean useNegation, boolean useBooleanDatatypes, boolean useDoubleDatatypes, NamedClass startClass)
           
 
Method Summary
static boolean checkIntersection(Intersection intersection)
           
 SortedSet<Description> getClassCandidates(NamedClass index)
           
 SortedSet<Description> getNegClassCandidates(NamedClass index)
           
 void init()
           
 Set<Description> refine(Description concept)
          Standard refinement operation.
 Set<Description> refine(Description description, int maxLength)
          Optional refinement operation, where the learning algorithm can specify an additional bound on the length of descriptions.
 Set<Description> refine(Description description, int maxLength, List<Description> knownRefinements)
          Optional refinement operation, where the learning algorithm can specify an additional bound on the length of descriptions and a list of known refinements, which do not need to be returned.
 Set<Description> refine(Description description, int maxLength, List<Description> knownRefinements, Description currDomain)
           
 void setDropDisjuncts(boolean dropDisjuncts)
          By default, the operator does not specialize e.g.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mComputationTimeNs

public long mComputationTimeNs

topComputationTimeNs

public long topComputationTimeNs
Constructor Detail

FuzzyRhoDRDown

public FuzzyRhoDRDown(AbstractReasonerComponent reasoningService)

FuzzyRhoDRDown

public FuzzyRhoDRDown(AbstractReasonerComponent reasoner,
                      ClassHierarchy subHierarchy,
                      Description startClass,
                      RefinementOperatorConfigurator configurator)

FuzzyRhoDRDown

public FuzzyRhoDRDown(AbstractReasonerComponent reasoningService,
                      ClassHierarchy subHierarchy,
                      OCELConfigurator configurator,
                      boolean applyAllFilter,
                      boolean applyExistsFilter,
                      boolean useAllConstructor,
                      boolean useExistsConstructor,
                      boolean useHasValueConstructor,
                      int valueFrequencyThreshold,
                      boolean useCardinalityRestrictions,
                      boolean useNegation,
                      boolean useBooleanDatatypes,
                      boolean useDoubleDatatypes,
                      NamedClass startClass)
Method Detail

init

public void init()

refine

public Set<Description> refine(Description concept)
Description copied from interface: RefinementOperator
Standard refinement operation.

Specified by:
refine in interface RefinementOperator
Specified by:
refine in class RefinementOperatorAdapter
Parameters:
concept - The description, which will be refined.
Returns:
A set of refinements.

refine

public Set<Description> refine(Description description,
                               int maxLength)
Description copied from interface: RefinementOperator
Optional refinement operation, where the learning algorithm can specify an additional bound on the length of descriptions.

Specified by:
refine in interface RefinementOperator
Overrides:
refine in class RefinementOperatorAdapter
Parameters:
description - The description, which will be refined.
maxLength - The maximum length of returned description, where length is defined by KBElement.getLength().
Returns:
A set of refinements obeying the above restrictions.

refine

public Set<Description> refine(Description description,
                               int maxLength,
                               List<Description> knownRefinements)
Description copied from interface: RefinementOperator
Optional refinement operation, where the learning algorithm can specify an additional bound on the length of descriptions and a list of known refinements, which do not need to be returned.

Specified by:
refine in interface RefinementOperator
Overrides:
refine in class RefinementOperatorAdapter
Parameters:
description - The description, which will be refined.
maxLength - The maximum length of returned description, where length is defined by KBElement.getLength().
knownRefinements - A collection of known refinements, which do not need to be returned.
Returns:
A set of refinements obeying the above restrictions.

refine

public Set<Description> refine(Description description,
                               int maxLength,
                               List<Description> knownRefinements,
                               Description currDomain)

checkIntersection

public static boolean checkIntersection(Intersection intersection)

setDropDisjuncts

public void setDropDisjuncts(boolean dropDisjuncts)
By default, the operator does not specialize e.g. (A or B) to A, because it only guarantees weak completeness. Under certain circumstances, e.g. refinement of a fixed given concept, it can be useful to allow such refinements, which can be done by passing the parameter true to this method.

Parameters:
dropDisjuncts - Whether to remove disjuncts in refinement process.

getClassCandidates

public SortedSet<Description> getClassCandidates(NamedClass index)

getNegClassCandidates

public SortedSet<Description> getNegClassCandidates(NamedClass index)


SourceForge.net Logo DL-Learner is licenced under the terms of the GNU General Public License.
Copyright © 2007-2011 Jens Lehmann