public Utility(AbstractReasonerComponent rs, Map<OWLObjectProperty,OWLClassExpression> opDomains, Map<OWLDataProperty,OWLClassExpression> dpDomains, boolean instanceBasedDisjoints) { this.reasoner = rs; this.dpDomains = dpDomains; sh = rs.getClassHierarchy(); // we cache object property domains this.opDomains = opDomains; this.instanceBasedDisjoints = instanceBasedDisjoints; }
public Utility(AbstractReasonerComponent rs, Map<OWLObjectProperty,OWLClassExpression> opDomains, boolean instanceBasedDisjoints) { this.reasoner = rs; sh = rs.getClassHierarchy(); // we cache object property domains this.opDomains = opDomains; this.instanceBasedDisjoints = instanceBasedDisjoints; }
public ELDescriptionTree(AbstractReasonerComponent rs) { this.rs = rs; subsumptionHierarchy = rs.getClassHierarchy(); roleHierarchy = rs.getObjectPropertyHierarchy(); }
public final SortedSet<OWLClassExpression> getEquivalentClasses(OWLClassExpression concept) { return new TreeSet<>(Sets.intersection(getClassHierarchy().getSubClasses(concept), getClassHierarchy().getSuperClasses(concept))); }
@Override public final SortedSet<OWLClassExpression> getSuperClasses(OWLClassExpression concept) { if(precomputeClassHierarchy) { return getClassHierarchy().getSuperClasses(concept, true); } else { try { return getSuperClassesImpl(concept); } catch (ReasoningMethodUnsupportedException e) { e.printStackTrace(); } } return null; }
@Override public final SortedSet<OWLClassExpression> getSubClasses(OWLClassExpression concept) { if(precomputeClassHierarchy) { return getClassHierarchy().getSubClasses(concept, true); } else { try { return getSubClassesImpl(concept); } catch (ReasoningMethodUnsupportedException e) { e.printStackTrace(); } } return null; }
ClassHierarchy hierarchy = (ClassHierarchy) reasoner.getClassHierarchy().cloneAndRestrict(new HashSet<OWLClassExpression>(usedConcepts));
return false; toTest.addAll(reasoner.getClassHierarchy().getSuperClasses(d));
@Override public final boolean isSuperClassOf(OWLClassExpression superClass, OWLClassExpression subClass) { reasoningStartTimeTmp = System.nanoTime(); boolean result = false; if(precomputeClassHierarchy) { if(superClass.isAnonymous() || subClass.isAnonymous()) { try { result = isSuperClassOfImpl(superClass, subClass); } catch (ReasoningMethodUnsupportedException e) { e.printStackTrace(); } } else { return getClassHierarchy().isSubclassOf(subClass, superClass); } } else { try { result = isSuperClassOfImpl(superClass, subClass); } catch (ReasoningMethodUnsupportedException e) { e.printStackTrace(); } } nrOfSubsumptionChecks++; reasoningDurationTmp = System.nanoTime() - reasoningStartTimeTmp; subsumptionReasoningTimeNs += reasoningDurationTmp; overallReasoningTimeNs += reasoningDurationTmp; if(logger.isTraceEnabled()) { logger.trace("reasoner query isSuperClassOf: " + superClass + " " + subClass + " " + result); } return result; }
@Override public void init() throws ComponentInitException { if(classHierarchy == null) { classHierarchy = rs.getClassHierarchy();
@Test public void rhoDRDownTest2() throws ParseException, ComponentInitException { StringRenderer.setRenderer(Rendering.DL_SYNTAX); AbstractReasonerComponent reasoner = TestOntologies.getTestOntology(TestOntology.EPC_OE); baseURI = reasoner.getBaseURI(); RhoDRDown op = new RhoDRDown(); op.setReasoner(reasoner); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy()); op.init(); OWLClassExpression concept = KBParser.parseConcept("(\"http://localhost/aris/sap_model.owl#EPC\" AND EXISTS \"http://localhost/aris/sap_model.owl#hasModelElements\".\"http://localhost/aris/sap_model.owl#Object\")"); Set<OWLClassExpression> results = op.refine(concept,10); for(OWLClassExpression result : results) { System.out.println(result); } int desiredResultSize = 107; if(results.size() != desiredResultSize) { System.out.println(results.size() + " results found, but should be " + desiredResultSize + "."); } assertTrue(results.size()==desiredResultSize); }
Set<OWLClass> usedConcepts = Helper.computeConceptsUsingIgnoreList(reasoner, ignoredConcepts); ClassHierarchy classHierarchy = (ClassHierarchy) reasoner.getClassHierarchy().cloneAndRestrict(new HashSet<OWLClassExpression>(usedConcepts)); classHierarchy.thinOutSubsumptionHierarchy(); RhoDRDown op = new RhoDRDown(); op.setReasoner(reasoner); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy());
op.setReasoner(reasoner); op.setUseSomeOnly(false); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy());
@Test public void rhoDRDownTest5() throws ParseException, LearningProblemUnsupportedException, ComponentInitException { AbstractReasonerComponent reasoner = TestOntologies.getTestOntology(TestOntology.SWORE); RhoDRDown op = new RhoDRDown(); op.setReasoner(reasoner); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy()); op.init(); // Description concept = KBParser.parseConcept("((NOT \"http://ns.softwiki.de/req/Requirement\") OR (ALL \"http://ns.softwiki.de/req/isCreatedBy\".(NOT \"http://ns.softwiki.de/req/Creditor\")))"); OWLClassExpression concept = KBParser.parseConcept("(NOT \"http://ns.softwiki.de/req/Requirement\" OR ALL \"http://ns.softwiki.de/req/isCreatedBy\".NOT \"http://ns.softwiki.de/req/Creditor\")"); System.out.println(concept); Set<OWLClassExpression> refinements = op.refine(concept, 8); for(OWLClassExpression refinement : refinements) { System.out.println(refinement); } }
op.setUseInverse(true); op.setUseHasValueConstructor(true); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy());
op.setUseHasSelf(true); op.setFrequencyThreshold(5); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy());
@Test public void rhoDRDownTest4() throws ParseException, LearningProblemUnsupportedException, ComponentInitException { AbstractReasonerComponent reasoner = TestOntologies.getTestOntology(TestOntology.RHO1); RhoDRDown op = new RhoDRDown(); op.setReasoner(reasoner); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy()); op.init(); OWLClassExpression concept = KBParser.parseConcept("(car AND EXISTS hasOwner.person)"); // Description concept = Thing.instance; Set<OWLClassExpression> refinements = op.refine(concept, 6); for(OWLClassExpression refinement : refinements) { System.out.println(refinement); } }
op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy());
@Test public void invertedOperatorTest() throws ParseException, ComponentInitException { AbstractReasonerComponent reasoner = TestOntologies.getTestOntology(TestOntology.RHO1); RhoDRDown op = new RhoDRDown(); op.setReasoner(reasoner); op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy()); op.setDropDisjuncts(true); op.init(); LengthLimitedRefinementOperator operator = new OperatorInverter(op); OWLClassExpression concept = KBParser.parseConcept("(limo AND EXISTS hasOwner.man)"); Set<OWLClassExpression> refinements = operator.refine(concept, 6); for(OWLClassExpression refinement : refinements) { System.out.println(refinement); } // we should get four upward refinements // (replacing limo => car, man => person, or drop one of the intersects) assertTrue(refinements.size()==4); }
op.setSubHierarchy(reasoner.getClassHierarchy()); op.setObjectPropertyHierarchy(reasoner.getObjectPropertyHierarchy()); op.setDataPropertyHierarchy(reasoner.getDatatypePropertyHierarchy());