From: <ji...@us...> - 2011-03-16 11:39:02
|
Revision: 2723 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2723&view=rev Author: jialva Date: 2011-03-16 11:38:50 +0000 (Wed, 16 Mar 2011) Log Message: ----------- changes for the DL-Learner fuzzy extension Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/core/ComponentManager.java trunk/components-core/src/main/java/org/dllearner/core/configurators/ComponentFactory.java trunk/components-core/src/main/java/org/dllearner/reasoning/ReasonerType.java trunk/components-core/src/main/resources/components.ini trunk/interfaces/src/main/java/org/dllearner/cli/ConfMapper.java Added Paths: ----------- trunk/components-core/src/main/java/META-INF/ trunk/components-core/src/main/java/META-INF/MANIFEST.MF trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/ trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyOEHeuristicRuntime.java trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyOENode.java trunk/components-core/src/main/java/org/dllearner/core/configurators/FuzzyCELOEConfigurator.java trunk/components-core/src/main/java/org/dllearner/core/configurators/FuzzyOWLAPIReasonerConfigurator.java trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/ trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyOWLAPIReasoner.java trunk/components-core/src/main/resources/FuzzyDL/ trunk/components-core/src/main/resources/FuzzyDL/CONFIG trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/ trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbc.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbc.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbc.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbc.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbcSolver.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbcSolver.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbcSolver.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCbcSolver.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCgl.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCgl.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCgl.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCgl.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libClp.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libClp.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libClp.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libClp.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCoinUtils.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCoinUtils.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCoinUtils.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libCoinUtils.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libMilpSolver.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsi.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsi.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsi.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsi.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiCbc.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiCbc.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiCbc.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiCbc.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiClp.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiClp.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiClp.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiClp.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiVol.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiVol.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiVol.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libOsiVol.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libVol.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libVol.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libVol.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib32/libVol.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/ trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbc.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbc.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbc.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbc.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbcSolver.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbcSolver.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbcSolver.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCbcSolver.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCgl.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCgl.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCgl.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCgl.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libClp.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libClp.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libClp.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libClp.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCoinUtils.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCoinUtils.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCoinUtils.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libCoinUtils.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libMilpSolver.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsi.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsi.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsi.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsi.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiCbc.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiCbc.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiCbc.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiCbc.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiClp.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiClp.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiClp.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiClp.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiVol.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiVol.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiVol.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libOsiVol.la trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libVol.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libVol.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libVol.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLib64/libVol.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/ trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/cbc_addlibs.txt trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/cgl_addlibs.txt trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/clp_addlibs.txt trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/coinutils_addlibs.txt trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCbc.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCbc.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCbc.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCbc.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCgl.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCgl.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCgl.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCgl.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libClp.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libClp.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libClp.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libClp.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCoinUtils.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCoinUtils.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCoinUtils.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libCoinUtils.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsi.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsi.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsi.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsi.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiCbc.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiCbc.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiCbc.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiCbc.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiClp.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiClp.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiClp.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiClp.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiVol.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiVol.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiVol.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libOsiVol.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libVol.0.0.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libVol.0.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libVol.dylib trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/libVol.la trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/osi_addlibs.txt trunk/components-core/src/main/resources/FuzzyDL/CbcLibppc/vol_addlibs.txt trunk/components-core/src/main/resources/FuzzyDL/FuzzyDL.jar trunk/components-core/src/main/resources/FuzzyDL/README.txt trunk/components-core/src/main/resources/FuzzyDL/doc/ trunk/components-core/src/main/resources/FuzzyDL/doc/fuzzyDLlibrary.pdf trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/allclasses-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/allclasses-noframe.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/constant-values.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/deprecated-list.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Assertion.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/AtomicAssertion.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/BnpQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/ClassicalSolver.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Concept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/ConcreteFeature.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/ConfigReader.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/CreatedIndividual.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/CrispConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/DatatypeReasoner.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/DefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Degree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/DegreeExpression.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/DegreeNumeric.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/DegreeVariable.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/DomainAxiom.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/FeatureFunction.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/FuzzyConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/FuzzyLogic.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/GeneralConceptInclusion.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Individual.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/InstanceQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/KnowledgeBase.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Label.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/LeftConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/LinearModifier.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/LinearlyModifiedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/LomDefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/LukasiewiczSolver.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MaxInstanceQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MaxQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MaxRelatedQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MaxSatisfiableQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MaxSubsumesQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MinInstanceQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MinQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MinRelatedQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MinSatisfiableQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MinSubsumesQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/ModifiedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Modifier.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/MomDefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/NegativeRelation.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/PrimitiveConceptDefinition.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Query.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/RangeAxiom.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Reasoner.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/RelatedQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Relation.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/RepresentativeIndividual.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/Restriction.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/RightConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/RoleParentWithDegree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/SatisfiableQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/SomDefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/SubsumptionQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/TrapezoidalConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/TriangularConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/TriangularFuzzyNumber.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/TriangularModifier.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/TriangularlyModifiedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/WeightedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/WeightedSumConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/ZadehSolver.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Assertion.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/AtomicAssertion.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/BnpQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/ClassicalSolver.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Concept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/ConcreteFeature.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/ConfigReader.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/CreatedIndividual.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/CrispConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/DatatypeReasoner.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/DefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Degree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/DegreeExpression.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/DegreeNumeric.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/DegreeVariable.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/DomainAxiom.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/FeatureFunction.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/FuzzyConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/FuzzyLogic.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/GeneralConceptInclusion.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Individual.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/InstanceQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/KnowledgeBase.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Label.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/LeftConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/LinearModifier.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/LinearlyModifiedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/LomDefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/LukasiewiczSolver.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MaxInstanceQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MaxQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MaxRelatedQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MaxSatisfiableQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MaxSubsumesQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MinInstanceQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MinQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MinRelatedQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MinSatisfiableQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MinSubsumesQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/ModifiedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Modifier.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/MomDefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/NegativeRelation.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/PrimitiveConceptDefinition.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Query.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/RangeAxiom.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Reasoner.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/RelatedQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Relation.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/RepresentativeIndividual.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/Restriction.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/RightConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/RoleParentWithDegree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/SatisfiableQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/SomDefuzzifyQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/SubsumptionQuery.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/TrapezoidalConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/TriangularConcreteConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/TriangularFuzzyNumber.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/TriangularModifier.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/TriangularlyModifiedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/WeightedConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/WeightedSumConcept.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/class-use/ZadehSolver.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/FuzzyOntologyException.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/class-use/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/class-use/FuzzyOntologyException.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/package-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/package-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/package-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/exception/package-use.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/Digraph.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/DirectedCycleFinder.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/class-use/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/class-use/Digraph.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/class-use/DirectedCycleFinder.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/package-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/package-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/package-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/graph/package-use.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/BinaryBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/Bound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/Expression.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/FreeBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/Inequation.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/IntBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/MILPHelper.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/ShowVariablesHelper.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/Solution.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/Term.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/UpperBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/Variable.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/BinaryBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/Bound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/Expression.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/FreeBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/Inequation.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/IntBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/MILPHelper.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/ShowVariablesHelper.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/Solution.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/Term.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/UpperBound.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/class-use/Variable.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/package-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/package-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/package-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/milp/package-use.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/package-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/package-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/package-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/package-use.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/ParseException.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/Parser.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/ParserConstants.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/ParserTokenManager.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/SimpleCharStream.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/Token.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/TokenMgrError.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/ParseException.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/Parser.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/ParserConstants.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/ParserTokenManager.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/SimpleCharStream.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/Token.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/class-use/TokenMgrError.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/package-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/package-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/package-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/parser/package-use.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/Util.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/class-use/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/class-use/Util.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/package-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/package-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/package-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/fuzzydl/util/package-use.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/help-doc.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-1.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-10.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-11.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-12.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-13.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-14.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-15.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-16.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-17.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-18.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-19.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-2.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-20.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-21.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-22.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-23.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-24.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-25.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-26.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-3.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-4.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-5.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-6.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-7.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-8.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index-files/index-9.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/index.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/overview-frame.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/overview-summary.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/overview-tree.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/package-list trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/resources/ trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/resources/inherit.gif trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/serialized-form.html trunk/components-core/src/main/resources/FuzzyDL/doc/javadoc/stylesheet.css trunk/components-core/src/main/resources/FuzzyDL/doc/syntax.pdf trunk/components-core/src/main/resources/FuzzyDL/examples/ trunk/components-core/src/main/resources/FuzzyDL/examples/input/ trunk/components-core/src/main/resources/FuzzyDL/examples/input/catalog-v001.xml trunk/components-core/src/main/resources/FuzzyDL/examples/input/fuzzyFoodItems_v1.owl trunk/components-core/src/main/resources/FuzzyDL/examples/input/matchmaking.owl.owl trunk/components-core/src/main/resources/FuzzyDL/examples/input/multiCriteria.owl.owl trunk/components-core/src/main/resources/FuzzyDL/examples/matchmaking1.txt trunk/components-core/src/main/resources/FuzzyDL/examples/matchmaking2.txt trunk/components-core/src/main/resources/FuzzyDL/examples/output/ trunk/components-core/src/main/resources/FuzzyDL/examples/output/auxFuzzyKBfileName.fuzzyDL.txt trunk/components-core/src/main/resources/FuzzyDL/examples/output/auxFuzzyKBfileName_manuallyModified.fuzzyDL.txt trunk/components-core/src/main/resources/FuzzyDL/examples/output/fuzzyFoodItems.fuzzyDL.txt trunk/components-core/src/main/resources/FuzzyDL/examples/output/fuzzyFoodItems.fuzzyDL_manuallyModified.txt trunk/components-core/src/main/resources/FuzzyDL/examples/output/kk.fuzzyDL.txt trunk/components-core/src/main/resources/FuzzyDL/examples/output/matchmaking.fuzzyDL.txt trunk/components-core/src/main/resources/FuzzyDL/examples/shoppingAssistantExample_Josue.txt trunk/components-core/src/main/resources/FuzzyDL/examples/shoppingAssistantExample_Josue2.txt trunk/components-core/src/main/resources/FuzzyDL/examples/test.txt trunk/components-core/src/main/resources/FuzzyDL/examples/test2.txt trunk/components-core/src/main/resources/FuzzyDL/examples/test2Josue.txt trunk/components-core/src/main/resources/FuzzyDL/examples/testJosue.txt trunk/components-core/src/main/resources/FuzzyDL/examples/young.txt trunk/components-core/src/main/resources/FuzzyDL/fuzzyDLcbc trunk/components-core/src/main/resources/FuzzyDL/lib/ trunk/components-core/src/main/resources/FuzzyDL/lib/JavaCBC.jar trunk/components-core/src/main/resources/FuzzyDL/lib/colt.jar trunk/components-core/src/main/resources/FuzzyDL/libMilpSolver.32bits.dylib trunk/components-core/src/main/resources/FuzzyDL/libMilpSolver.64bits.dylib trunk/components-core/src/main/resources/FuzzyDL/matchmaking1.txt trunk/components-core/src/main/resources/FuzzyDL/matchmaking2.txt trunk/components-core/src/main/resources/FuzzyDL/shoppingAssistantExample_Josue.txt trunk/components-core/src/main/resources/FuzzyDL/test.txt trunk/components-core/src/main/resources/FuzzyDL/test2.txt trunk/components-core/src/main/resources/FuzzyDL/test2Josue.txt trunk/components-core/src/main/resources/FuzzyDL/testJosue.txt trunk/components-core/src/main/resources/FuzzyDL/young.txt Added: trunk/components-core/src/main/java/META-INF/MANIFEST.MF =================================================================== --- trunk/components-core/src/main/java/META-INF/MANIFEST.MF (rev 0) +++ trunk/components-core/src/main/java/META-INF/MANIFEST.MF 2011-03-16 11:38:50 UTC (rev 2723) @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + Added: trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java (rev 0) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java 2011-03-16 11:38:50 UTC (rev 2723) @@ -0,0 +1,795 @@ +/** + * Copyright (C) 2007-2009, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.algorithms.fuzzydll; + +import java.io.File; +import java.text.DecimalFormat; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.core.ComponentInitException; +import org.dllearner.core.EvaluatedDescription; +import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblem; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.configurators.FuzzyCELOEConfigurator; +import org.dllearner.core.options.BooleanConfigOption; +import org.dllearner.core.options.CommonConfigOptions; +import org.dllearner.core.options.ConfigOption; +import org.dllearner.core.options.DoubleConfigOption; +import org.dllearner.core.options.StringConfigOption; +import org.dllearner.core.owl.ClassHierarchy; +import org.dllearner.core.owl.Description; +import org.dllearner.core.owl.Individual; +import org.dllearner.core.owl.Intersection; +import org.dllearner.core.owl.NamedClass; +import org.dllearner.core.owl.Restriction; +import org.dllearner.core.owl.Thing; +import org.dllearner.learningproblems.ClassLearningProblem; +import org.dllearner.learningproblems.PosNegLP; +import org.dllearner.learningproblems.PosNegLPStandard; +import org.dllearner.learningproblems.PosOnlyLP; +import org.dllearner.refinementoperators.OperatorInverter; +import org.dllearner.refinementoperators.RefinementOperator; +import org.dllearner.refinementoperators.RhoDRDown; +import org.dllearner.utilities.Files; +import org.dllearner.utilities.Helper; +import org.dllearner.utilities.owl.ConceptComparator; +import org.dllearner.utilities.owl.ConceptTransformation; +import org.dllearner.utilities.owl.DescriptionMinimizer; +import org.dllearner.utilities.owl.EvaluatedDescriptionSet; +import org.dllearner.utilities.owl.PropertyContext; + +import com.jamonapi.Monitor; +import com.jamonapi.MonitorFactory; + +/** + * The CELOE (Class Expression Learner for Ontology Engineering) algorithm. + * It adapts and extends the standard supervised learning algorithm for the + * ontology engineering use case. + * + * @author Jens Lehmann + * + */ +public class FuzzyCELOE extends LearningAlgorithm { + + private static Logger logger = Logger.getLogger(FuzzyCELOE.class); + private FuzzyCELOEConfigurator configurator; + + private boolean isRunning = false; + private boolean stop = false; + +// private OEHeuristicStable heuristicStable = new OEHeuristicStable(); +// private OEHeuristicRuntime heuristicRuntime = new OEHeuristicRuntime(); + + private RefinementOperator operator; + private DescriptionMinimizer minimizer; + + // all nodes in the search tree (used for selecting most promising node) + private TreeSet<FuzzyOENode> nodes; + private FuzzyOEHeuristicRuntime heuristic; // = new OEHeuristicRuntime(); + // root of search tree + private FuzzyOENode startNode; + // the class with which we start the refinement process + private Description startClass; + + // all descriptions in the search tree plus those which were too weak (for fast redundancy check) + private TreeSet<Description> descriptions; + + private EvaluatedDescriptionSet bestEvaluatedDescriptions; + + // if true, then each solution is evaluated exactly instead of approximately + // private boolean exactBestDescriptionEvaluation = false; + private boolean singleSuggestionMode; + private Description bestDescription; + private double bestAccuracy = Double.MIN_VALUE; + + private NamedClass classToDescribe; + // examples are either 1.) instances of the class to describe 2.) positive examples + // 3.) union of pos.+neg. examples depending on the learning problem at hand + private Set<Individual> examples; + + // CELOE was originally created for learning classes in ontologies, but also + // works for other learning problem types + private boolean isClassLearningProblem; + private boolean isEquivalenceProblem; + + private long nanoStartTime; + + // important parameters + private double noise; + private double maxDepth; + private boolean filterFollowsFromKB; + + // less important parameters + // forces that one solution cannot be subexpression of another expression; this option is useful to get diversity + // but it can also suppress quite useful expressions + private boolean forceMutualDifference = false; + + // utility variables + private String baseURI; + private Map<String, String> prefixes; + private DecimalFormat dfPercent = new DecimalFormat("0.00%"); + private ConceptComparator descriptionComparator = new ConceptComparator(); + + // statistical variables + private int expressionTests = 0; + private int minHorizExp = 0; + private int maxHorizExp = 0; + + @Override + public FuzzyCELOEConfigurator getConfigurator() { + return configurator; + } + + public FuzzyCELOE(LearningProblem problem, ReasonerComponent reasoner) { + super(problem, reasoner); + configurator = new FuzzyCELOEConfigurator(this); + } + + public static Collection<Class<? extends LearningProblem>> supportedLearningProblems() { + Collection<Class<? extends LearningProblem>> problems = new LinkedList<Class<? extends LearningProblem>>(); + problems.add(LearningProblem.class); + return problems; + } + + public static Collection<ConfigOption<?>> createConfigOptions() { + Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + options.add(CommonConfigOptions.useAllConstructor()); + options.add(CommonConfigOptions.useExistsConstructor()); + options.add(CommonConfigOptions.useHasValueConstructor()); + options.add(CommonConfigOptions.useDataHasValueConstructor()); + options.add(CommonConfigOptions.valueFreqencyThreshold()); + options.add(CommonConfigOptions.useCardinalityRestrictions()); + options.add(CommonConfigOptions.cardinalityLimit()); + // by default, we do not use negation (should be configurable in GUI) + options.add(CommonConfigOptions.useNegation(false)); + options.add(CommonConfigOptions.useBooleanDatatypes()); + options.add(CommonConfigOptions.useDoubleDatatypes()); + options.add(CommonConfigOptions.maxExecutionTimeInSeconds(10)); + options.add(CommonConfigOptions.getNoisePercentage()); + options.add(CommonConfigOptions.getTerminateOnNoiseReached(false)); + options.add(CommonConfigOptions.getMaxDepth(7)); + options.add(CommonConfigOptions.maxNrOfResults(10)); + options.add(CommonConfigOptions.maxClassDescriptionTests()); + options.add(new BooleanConfigOption("singleSuggestionMode", "Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.", false)); + options.add(CommonConfigOptions.getInstanceBasedDisjoints()); + options.add(new BooleanConfigOption("filterDescriptionsFollowingFromKB", "If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions.", false)); + options.add(new BooleanConfigOption("reuseExistingDescription", "If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base.", false)); + options.add(new BooleanConfigOption("writeSearchTree", "specifies whether to write a search tree", false)); + options.add(new StringConfigOption("searchTreeFile","file to use for the search tree", "log/searchTree.txt")); + options.add(new BooleanConfigOption("replaceSearchTree","specifies whether to replace the search tree in the log file after each run or append the new search tree", false)); + options.add(new DoubleConfigOption("expansionPenaltyFactor","heuristic penalty per syntactic construct used (lower = finds more complex expression, but might miss simple ones)", 0.1)); + return options; + } + + public static String getName() { + return "fuzzy CELOE"; + } + + @Override + public void init() throws ComponentInitException { + // copy class hierarchy and modify it such that each class is only + // reachable via a single path + ClassHierarchy classHierarchy = reasoner.getClassHierarchy().clone(); + classHierarchy.thinOutSubsumptionHierarchy(); + + heuristic = new FuzzyOEHeuristicRuntime(configurator); + + minimizer = new DescriptionMinimizer(reasoner); + + startClass = Thing.instance; + + singleSuggestionMode = configurator.getSingleSuggestionMode(); + + // create refinement operator + operator = new RhoDRDown(reasoner, classHierarchy, startClass, configurator); + baseURI = reasoner.getBaseURI(); + prefixes = reasoner.getPrefixes(); + if(configurator.getWriteSearchTree()) { + Files.clearFile(new File(configurator.getSearchTreeFile())); + } + + bestEvaluatedDescriptions = new EvaluatedDescriptionSet(configurator.getMaxNrOfResults()); + + isClassLearningProblem = (learningProblem instanceof ClassLearningProblem); + + // we put important parameters in class variables + noise = configurator.getNoisePercentage()/100d; +// System.out.println("noise " + noise); + maxDepth = configurator.getMaxDepth(); + // (filterFollowsFromKB is automatically set to false if the problem + // is not a class learning problem + filterFollowsFromKB = configurator.getFilterDescriptionsFollowingFromKB() + && isClassLearningProblem; + + // actions specific to ontology engineering + if(isClassLearningProblem) { + ClassLearningProblem problem = (ClassLearningProblem) learningProblem; + classToDescribe = problem.getClassToDescribe(); + isEquivalenceProblem = problem.isEquivalenceProblem(); + + examples = reasoner.getIndividuals(classToDescribe); + + // start class: intersection of super classes for definitions (since it needs to + // capture all instances), but owl:Thing for learning subclasses (since it is + // superfluous to add super classes in this case) + if(isEquivalenceProblem) { + Set<Description> existingDefinitions = reasoner.getAssertedDefinitions(classToDescribe); + if(configurator.getReuseExistingDescription() && (existingDefinitions.size() > 0)) { + // the existing definition is reused, which in the simplest case means to + // use it as a start class or, if it is already too specific, generalise it + + // pick the longest existing definition as candidate + Description existingDefinition = null; + int highestLength = 0; + for(Description exDef : existingDefinitions) { + if(exDef.getLength() > highestLength) { + existingDefinition = exDef; + highestLength = exDef.getLength(); + } + } + + LinkedList<Description> startClassCandidates = new LinkedList<Description>(); + startClassCandidates.add(existingDefinition); + ((RhoDRDown)operator).setDropDisjuncts(true); + RefinementOperator upwardOperator = new OperatorInverter(operator); + + // use upward refinement until we find an appropriate start class + boolean startClassFound = false; + Description candidate; + do { + candidate = startClassCandidates.pollFirst(); + if(((ClassLearningProblem)learningProblem).getRecall(candidate)<1.0) { + // add upward refinements to list + Set<Description> refinements = upwardOperator.refine(candidate, candidate.getLength()); +// System.out.println("ref: " + refinements); + LinkedList<Description> refinementList = new LinkedList<Description>(refinements); +// Collections.reverse(refinementList); +// System.out.println("list: " + refinementList); + startClassCandidates.addAll(refinementList); +// System.out.println("candidates: " + startClassCandidates); + } else { + startClassFound = true; + } + } while(!startClassFound); + startClass = candidate; + + if(startClass.equals(existingDefinition)) { + logger.info("Reusing existing description " + startClass.toManchesterSyntaxString(baseURI, prefixes) + " as start class for learning algorithm."); + } else { + logger.info("Generalised existing description " + existingDefinition.toManchesterSyntaxString(baseURI, prefixes) + " to " + startClass.toManchesterSyntaxString(baseURI, prefixes) + ", which is used as start class for the learning algorithm."); + } + +// System.out.println("start class: " + startClass); +// System.out.println("existing def: " + existingDefinition); +// System.out.println(reasoner.getIndividuals(existingDefinition)); + + ((RhoDRDown)operator).setDropDisjuncts(false); + + } else { + Set<Description> superClasses = reasoner.getClassHierarchy().getSuperClasses(classToDescribe); + if(superClasses.size() > 1) { + startClass = new Intersection(new LinkedList<Description>(superClasses)); + } else if(superClasses.size() == 1){ + startClass = (Description) superClasses.toArray()[0]; + } else { + startClass = Thing.instance; + logger.warn(classToDescribe + " is equivalent to owl:Thing. Usually, it is not " + + "sensible to learn a description in this case."); + } + } + } + } else if(learningProblem instanceof PosOnlyLP) { + examples = ((PosOnlyLP)learningProblem).getPositiveExamples(); + } else if(learningProblem instanceof PosNegLP) { + examples = Helper.union(((PosNegLP)learningProblem).getPositiveExamples(),((PosNegLP)learningProblem).getNegativeExamples()); + } + } + + @Override + public Description getCurrentlyBestDescription() { + EvaluatedDescription ed = getCurrentlyBestEvaluatedDescription(); + return ed == null ? null : ed.getDescription(); + } + + @Override + public List<Description> getCurrentlyBestDescriptions() { + return bestEvaluatedDescriptions.toDescriptionList(); + } + + @Override + public EvaluatedDescription getCurrentlyBestEvaluatedDescription() { + return bestEvaluatedDescriptions.getBest(); + } + + @Override + public TreeSet<? extends EvaluatedDescription> getCurrentlyBestEvaluatedDescriptions() { + return bestEvaluatedDescriptions.getSet(); + } + + public double getCurrentlyBestAccuracy() { + return bestEvaluatedDescriptions.getBest().getAccuracy(); + } + + @Override + public void start() { +// System.out.println(configurator.getMaxExecutionTimeInSeconds()); + + stop = false; + isRunning = true; + reset(); + nanoStartTime = System.nanoTime(); + + // highest accuracy so far + double highestAccuracy = 0.0; + FuzzyOENode nextNode; + + addNode(startClass, null); + + int loop = 0; + while (!terminationCriteriaSatisfied()) { +// System.out.println("loop " + loop); + + if(!singleSuggestionMode && bestEvaluatedDescriptions.getBestAccuracy() > highestAccuracy) { + highestAccuracy = bestEvaluatedDescriptions.getBestAccuracy(); + logger.info("more accurate (" + dfPercent.format(highestAccuracy) + ") class expression found: " + descriptionToString(bestEvaluatedDescriptions.getBest().getDescription())); + } + + // chose best node according to heuristics + nextNode = getNextNodeToExpand(); + int horizExp = nextNode.getHorizontalExpansion(); + + // apply operator + Monitor mon = MonitorFactory.start("refineNode"); + TreeSet<Description> refinements = refineNode(nextNode); + mon.stop(); + +// System.out.println("next node: " + nextNode); +// for(Description refinement : refinements) { +// System.out.println("refinement: " + refinement); +// } + + while(refinements.size() != 0) { + // pick element from set + Description refinement = refinements.pollFirst(); + int length = refinement.getLength(); + + // we ignore all refinements with lower length and too high depth + // (this also avoids duplicate node children) + if(length > horizExp && refinement.getDepth() <= maxDepth) { + +// System.out.println("potentially adding " + refinement + " to search tree as child of " + nextNode + " " + new Date()); + Monitor mon2 = MonitorFactory.start("addNode"); + addNode(refinement, nextNode); + mon2.stop(); + // adding nodes is potentially computationally expensive, so we have + // to check whether max time is exceeded + if(terminationCriteriaSatisfied()) { + break; + } +// System.out.println("addNode finished" + " " + new Date()); + } + +// System.out.println(" refinement queue length: " + refinements.size()); + } + + updateMinMaxHorizExp(nextNode); + + // writing the search tree (if configured) + if (configurator.getWriteSearchTree()) { + String treeString = "best node: " + bestEvaluatedDescriptions.getBest() + "\n"; + if (refinements.size() > 1) { + treeString += "all expanded nodes:\n"; + for (Description n : refinements) { + treeString += " " + n + "\n"; + } + } + treeString += startNode.toTreeString(baseURI); + treeString += "\n"; + + if (configurator.getReplaceSearchTree()) + Files.createFile(new File(configurator.getSearchTreeFile()), treeString); + else + Files.appendFile(new File(configurator.getSearchTreeFile()), treeString); + } + +// System.out.println(loop); + loop++; + } + + if (stop) { + logger.info("Algorithm stopped ("+expressionTests+" descriptions tested). " + nodes.size() + " nodes in the search tree.\n"); + } else { + logger.info("Algorithm terminated successfully ("+expressionTests+" descriptions tested). " + nodes.size() + " nodes in the search tree.\n"); + } + + if(singleSuggestionMode) { + bestEvaluatedDescriptions.add(bestDescription, bestAccuracy, learningProblem); + } + + // print solution(s) + logger.info("solutions:\n" + getSolutionString()); + +// System.out.println(startNode.toTreeString(baseURI)); + + isRunning = false; +// System.out.println("isRunning: " + isRunning); + } + + private FuzzyOENode getNextNodeToExpand() { + // we expand the best node of those, which have not achieved 100% accuracy + // already and have a horizontal expansion equal to their length + // (rationale: further extension is likely to add irrelevant syntactical constructs) + Iterator<FuzzyOENode> it = nodes.descendingIterator(); + while(it.hasNext()) { + FuzzyOENode node = it.next(); + if(node.getAccuracy() < 1.0 || node.getHorizontalExpansion() < node.getDescription().getLength()) { + return node; + } + } + + // this should practically never be called, since for any reasonable learning + // task, we will always have at least one node with less than 100% accuracy + return nodes.last(); + } + + // expand node horizontically + private TreeSet<Description> refineNode(FuzzyOENode node) { + // we have to remove and add the node since its heuristic evaluation changes through the expansion + // (you *must not* include any criteria in the heuristic which are modified outside of this method, + // otherwise you may see rarely occurring but critical false ordering in the nodes set) + nodes.remove(node); +// System.out.println("refining: " + node); + int horizExp = node.getHorizontalExpansion(); + TreeSet<Description> refinements = (TreeSet<Description>) operator.refine(node.getDescription(), horizExp+1); + node.incHorizontalExpansion(); + node.setRefinementCount(refinements.size()); + nodes.add(node); + return refinements; + } + + // add node to search tree if it is not too weak + // returns true if node was added and false otherwise + private boolean addNode(Description description, FuzzyOENode parentNode) { + +// System.out.println(description); + + // redundancy check (return if redundant) + boolean nonRedundant = descriptions.add(description); + if(!nonRedundant) { + return false; + } + + // check whether the description is allowed + if(!isDescriptionAllowed(description, parentNode)) { + return false; + } + +// System.out.println("Test " + new Date()); + // quality of description (return if too weak) + do... [truncated message content] |