protected Set<OWLNamedIndividual> getAllNamedIndividuals() { Set<OWLNamedIndividual> result=new HashSet<>(); OWLDataFactory factory=getDataFactory(); for (Individual individual : m_dlOntology.getAllIndividuals()) if (isResultRelevantIndividual(individual)) result.add(factory.getOWLNamedIndividual(IRI.create(individual.getIRI()))); return result; } protected static boolean isResultRelevantIndividual(Individual individual) {
protected Set<OWLNamedIndividual> getAllNamedIndividuals() { Set<OWLNamedIndividual> result=new HashSet<OWLNamedIndividual>(); OWLDataFactory factory=getDataFactory(); for (Individual individual : m_dlOntology.getAllIndividuals()) if (isResultRelevantIndividual(individual)) result.add(factory.getOWLNamedIndividual(IRI.create(individual.getIRI()))); return result; } protected static boolean isResultRelevantIndividual(Individual individual) {
public NodeSet<OWLNamedIndividual> getDifferentIndividuals(OWLNamedIndividual namedIndividual) { checkPreConditions(namedIndividual); if (!m_isConsistent) { Node<OWLNamedIndividual> node=new OWLNamedIndividualNode(getAllNamedIndividuals()); return new OWLNamedIndividualNodeSet(Collections.singleton(node)); } Individual individual=H(namedIndividual); Tableau tableau=getTableau(); Set<Individual> result=new HashSet<Individual>(); for (Individual potentiallyDifferentIndividual : m_dlOntology.getAllIndividuals()) if (isResultRelevantIndividual(potentiallyDifferentIndividual) && !individual.equals(potentiallyDifferentIndividual)) if (!tableau.isSatisfiable(true,true,Collections.singleton(Atom.create(Equality.INSTANCE,individual,potentiallyDifferentIndividual)),null,null,null,null,new ReasoningTaskDescription(true,"is {0} different from {1}",individual,potentiallyDifferentIndividual))) result.add(potentiallyDifferentIndividual); return sortBySameAsIfNecessary(result); } public NodeSet<OWLNamedIndividual> getObjectPropertyValues(OWLNamedIndividual namedIndividual,OWLObjectPropertyExpression propertyExpression) {
@Override public NodeSet<OWLNamedIndividual> getDifferentIndividuals(OWLNamedIndividual namedIndividual) { checkPreConditions(namedIndividual); if (!m_isConsistent.booleanValue()) { Node<OWLNamedIndividual> node=new OWLNamedIndividualNode(getAllNamedIndividuals()); return new OWLNamedIndividualNodeSet(Collections.singleton(node)); } Individual individual=H(namedIndividual); Tableau tableau=getTableau(); Set<Individual> result=new HashSet<>(); for (Individual potentiallyDifferentIndividual : m_dlOntology.getAllIndividuals()) if (isResultRelevantIndividual(potentiallyDifferentIndividual) && !individual.equals(potentiallyDifferentIndividual)) if (!tableau.isSatisfiable(true,true,Collections.singleton(Atom.create(Equality.INSTANCE,individual,potentiallyDifferentIndividual)),null,null,null,null,new ReasoningTaskDescription(true,"is {0} different from {1}",individual,potentiallyDifferentIndividual))) result.add(potentiallyDifferentIndividual); return sortBySameAsIfNecessary(result); } @Override
Tableau tableau=getTableau(queryClassDefinition); for (Individual individual : realizationForNodeConcept) if (isResultRelevantIndividual(individual)) if (!tableau.isSatisfiable(true,true,Collections.singleton(Atom.create(queryConcept,individual)),null,null,null,null,ReasoningTaskDescription.isInstanceOf(individual,classExpression))) result.add(individual);
Tableau tableau=getTableau(queryClassDefinition); for (Individual individual : realizationForNodeConcept) if (isResultRelevantIndividual(individual)) if (!tableau.isSatisfiable(true,true,Collections.singleton(Atom.create(queryConcept,individual)),null,null,null,null,ReasoningTaskDescription.isInstanceOf(individual,classExpression))) result.add(individual);