From: <lor...@us...> - 2013-05-09 13:41:49
|
Revision: 3968 http://sourceforge.net/p/dl-learner/code/3968 Author: lorenz_b Date: 2013-05-09 13:41:45 +0000 (Thu, 09 May 2013) Log Message: ----------- Refactored pattern eval. Modified Paths: -------------- trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java Modified: trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java 2013-05-09 13:27:03 UTC (rev 3967) +++ trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java 2013-05-09 13:41:45 UTC (rev 3968) @@ -288,6 +288,15 @@ if(accuracy < sampleThreshold){ iter.remove(); } else { + if(axiom.isOfType(AxiomType.EQUIVALENT_CLASSES)){ + Set<OWLSubClassOfAxiom> subClassOfAxioms = ((OWLEquivalentClassesAxiom)axiom).asOWLSubClassOfAxioms(); + for (OWLSubClassOfAxiom subClassOfAxiom : subClassOfAxioms) { + if(!subClassOfAxiom.getSubClass().isAnonymous()){ + axiom = subClassOfAxiom; + break; + } + } + } //check for some trivial axioms if(axiom.isOfType(AxiomType.SUBCLASS_OF)){ OWLClassExpression subClass = ((OWLSubClassOfAxiom)axiom).getSubClass(); @@ -297,11 +306,19 @@ } else if(subClass.equals(superClass)){ iter.remove(); } else if(superClass instanceof OWLObjectIntersectionOf){ - Set<OWLClassExpression> operands = ((OWLObjectIntersectionOf) superClass).getOperands(); - for (OWLClassExpression op : operands) { - if(op.isOWLThing()){ - iter.remove(); - break; + List<OWLClassExpression> operands = ((OWLObjectIntersectionOf) superClass).getOperandsAsList(); + + + if(operands.size() == 1){//how can this happen? + iter.remove(); + } else if(operands.size() > ((OWLObjectIntersectionOf) superClass).getOperands().size()){//duplicates + iter.remove(); + } else { + for (OWLClassExpression op : operands) { + if(op.isOWLThing()){ + iter.remove(); + break; + } } } } else if(superClass.toString().contains("Concept") || superClass.toString().contains("subject")){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |