public boolean dia(@NonNull List<@NonNull SWRLBuiltInArgument> arguments) throws SWRLBuiltInException
{
checkNumberOfArgumentsEqualTo(2, arguments.size());
Set<OWLDifferentIndividualsAxiom> axioms = getBuiltInBridge().getOWLOntology()
.getAxioms(AxiomType.DIFFERENT_INDIVIDUALS, 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.NAMED_INDIVIDUAL, SWRLBuiltInArgumentType.NAMED_INDIVIDUAL);
Map<@NonNull Integer, @NonNull SWRLMultiValueVariableBuiltInArgument> outputMultiValueArguments = createOutputMultiValueArguments(
arguments);
for (OWLDifferentIndividualsAxiom axiom : axioms) {
OWLNamedIndividual candidateValue1 = axiom.getIndividualsAsList().get(0).asOWLNamedIndividual();
OWLNamedIndividual candidateValue2 = axiom.getIndividualsAsList().get(1).asOWLNamedIndividual();
if (!noBoundArgumentsMismatch(inputArgumentValues, candidateValue1, candidateValue2)) {
if (outputMultiValueArguments.isEmpty())
return true;
else {
if (outputMultiValueArguments.containsKey(0))
outputMultiValueArguments.get(0).addArgument(createNamedIndividualBuiltInArgument(candidateValue1));
if (outputMultiValueArguments.containsKey(1))
outputMultiValueArguments.get(1).addArgument(createNamedIndividualBuiltInArgument(candidateValue2));
}
}
}
return processResultMultiValueArguments(arguments, outputMultiValueArguments);
}
}