@Override public void visit(OWLDisjointClassesAxiom axiom) { // tested for memory release[x] Collection<OWLDisjointClassesAxiom> odca= axiom.asPairwiseAxioms(); for (OWLDisjointClassesAxiom pairwiseAxiom : odca) { IRI[] domainRange = new IRI[2]; int index = 0; for (OWLClassExpression aClassEX : pairwiseAxiom.classExpressions().collect(Collectors.toSet())){ OWLClass cls=aClassEX.asOWLClass(); domainRange[index++] = cls.getIRI(); } if (!vowlData.getSearcher().containsDisjoint(domainRange[0], domainRange[1])) { vowlData.getGenerator().generateDisjointProperty(domainRange[0], domainRange[1]); } domainRange=null; } }
public boolean dca(@NonNull List<@NonNull SWRLBuiltInArgument> arguments) throws SWRLBuiltInException { checkNumberOfArgumentsEqualTo(2, arguments.size()); Set<OWLDisjointClassesAxiom> axioms = getBuiltInBridge().getOWLOntology() .getAxioms(AxiomType.DISJOINT_CLASSES, Imports.INCLUDED).stream().flatMap(a -> a.asPairwiseAxioms().stream()) .collect(Collectors.toSet()); if (axioms.isEmpty()) return false; else { Map<@NonNull Integer, @NonNull OWLObject> inputArgumentValues = getInputArgumentValues(arguments, SWRLBuiltInArgumentType.CLASS_EXPRESSION, SWRLBuiltInArgumentType.CLASS_EXPRESSION); Map<@NonNull Integer, @NonNull SWRLMultiValueVariableBuiltInArgument> outputMultiValueArguments = createOutputMultiValueArguments( arguments); for (OWLDisjointClassesAxiom axiom : axioms) { OWLClassExpression candidateValue1 = axiom.getClassExpressionsAsList().get(0); OWLClassExpression candidateValue2 = axiom.getClassExpressionsAsList().get(1); if (!noBoundArgumentsMismatch(inputArgumentValues, candidateValue1, candidateValue2)) { if (outputMultiValueArguments.isEmpty()) return true; // We have a match and there are no unbound arguments - return immediately else { // We have a match so update any unbound arguments with the matched values if (outputMultiValueArguments.containsKey(0)) outputMultiValueArguments.get(0).addArgument(createClassExpressionBuiltInArgument(candidateValue1)); if (outputMultiValueArguments.containsKey(1)) outputMultiValueArguments.get(1).addArgument(createClassExpressionBuiltInArgument(candidateValue2)); } } } return processResultMultiValueArguments(arguments, outputMultiValueArguments); } }
for (OWLDisjointClassesAxiom sdax: dax.asPairwiseAxioms()) { Set<OWLClassExpression> classes = sdax.getClassExpressions(); assert classes.size() == 2 : classes;