protected boolean containsFreshEntities(OWLObject... objects) { for (OWLObject object : objects) { if (!(object instanceof OWLEntity) || !((OWLEntity)object).isBuiltIn()) { if (object.dataPropertiesInSignature() .anyMatch(dp->!isDefined(dp) && notInternal(dp))) return true; if (object.objectPropertiesInSignature() .anyMatch(op->!isDefined(op) && notInternal(op))) return true; if (object.individualsInSignature() .anyMatch(i->!isDefined(i) && notInternal(i))) return true; if (object.classesInSignature() .anyMatch(c->!isDefined(c) && notInternal(c))) return true; } } return false; }
protected void throwFreshEntityExceptionIfNecessary(OWLObject... objects) { if (m_configuration.freshEntityPolicy==FreshEntityPolicy.DISALLOW) { Set<OWLEntity> undeclaredEntities=new HashSet<>(); for (OWLObject object : objects) { if (!(object instanceof OWLEntity) || !((OWLEntity)object).isBuiltIn()) { object.dataPropertiesInSignature() .filter(dp->!isDefined(dp) && notInternal(dp)) .forEach(undeclaredEntities::add); object.objectPropertiesInSignature() .filter(op->!isDefined(op) && notInternal(op)) .forEach(undeclaredEntities::add); object.individualsInSignature() .filter(i->!isDefined(i) && notInternal(i)) .forEach(undeclaredEntities::add); object.classesInSignature() .filter(c->!isDefined(c) && notInternal(c)) .forEach(undeclaredEntities::add); } } if (!undeclaredEntities.isEmpty()) throw new FreshEntitiesException(undeclaredEntities); } }
@Override public void run(Reasoner hermit,StatusOutput status,PrintWriter output,boolean ignoreOntologyPrefixes) { status.log(2,"Checking satisfiability of '"+conceptName+"'"); Prefixes prefixes=hermit.getPrefixes(); String conceptUri=prefixes.canBeExpanded(conceptName) ? prefixes.expandAbbreviatedIRI(conceptName) : conceptName; if (conceptUri.startsWith("<") && conceptUri.endsWith(">")) conceptUri=conceptUri.substring(1,conceptUri.length()-1); OWLClass owlClass=OWLManager.createOWLOntologyManager().getOWLDataFactory().getOWLClass(IRI.create(conceptUri)); if (!hermit.isDefined(owlClass)) { status.log(0,"Warning: class '"+conceptUri+"' was not declared in the ontology."); } boolean result=hermit.isSatisfiable(owlClass); output.println(conceptName+(result ? " is satisfiable." : " is not satisfiable.")); output.flush(); } }
protected void throwFreshEntityExceptionIfNecessary(OWLObject... objects) { if (m_configuration.freshEntityPolicy==FreshEntityPolicy.DISALLOW) { Set<OWLEntity> undeclaredEntities=new HashSet<OWLEntity>(); for (OWLObject object : objects) { if (!(object instanceof OWLEntity) || !((OWLEntity)object).isBuiltIn()) { for (OWLDataProperty dp : object.getDataPropertiesInSignature()) if (!isDefined(dp) && !Prefixes.isInternalIRI(dp.getIRI().toString())) undeclaredEntities.add(dp); for (OWLObjectProperty op : object.getObjectPropertiesInSignature()) if (!isDefined(op) && !Prefixes.isInternalIRI(op.getIRI().toString())) undeclaredEntities.add(op); for (OWLNamedIndividual individual : object.getIndividualsInSignature()) if (!isDefined(individual) && !Prefixes.isInternalIRI(individual.getIRI().toString())) undeclaredEntities.add(individual); for (OWLClass owlClass : object.getClassesInSignature()) if (!isDefined(owlClass) && !Prefixes.isInternalIRI(owlClass.getIRI().toString())) undeclaredEntities.add(owlClass); } } if (!undeclaredEntities.isEmpty()) throw new FreshEntitiesException(undeclaredEntities); } } protected boolean containsFreshEntities(OWLObject... objects) {
protected boolean containsFreshEntities(OWLObject... objects) { for (OWLObject object : objects) { if (!(object instanceof OWLEntity) || !((OWLEntity)object).isBuiltIn()) { for (OWLDataProperty dp : object.getDataPropertiesInSignature()) if (!isDefined(dp) && !Prefixes.isInternalIRI(dp.getIRI().toString())) return true; for (OWLObjectProperty op : object.getObjectPropertiesInSignature()) if (!isDefined(op) && !Prefixes.isInternalIRI(op.getIRI().toString())) return true; for (OWLNamedIndividual individual : object.getIndividualsInSignature()) if (!isDefined(individual) && !Prefixes.isInternalIRI(individual.getIRI().toString())) return true; for (OWLClass owlClass : object.getClassesInSignature()) if (!isDefined(owlClass) && !Prefixes.isInternalIRI(owlClass.getIRI().toString())) return true; } } return false; }
conceptUri = conceptUri.substring(1, conceptUri.length() - 1); OWLClass owlClass = OWLManager.getOWLDataFactory().getOWLClass(IRI.create(conceptUri)); if (!hermit.isDefined(owlClass)) { status.log(0, "Warning: class '" + conceptUri + "' was not declared in the ontology.");
@Override public void run(Reasoner hermit,StatusOutput status,PrintWriter output,boolean ignoreOntologyPrefixes) { status.log(2,"Finding equivalents of '"+conceptName+"'"); Prefixes prefixes=hermit.getPrefixes(); String conceptUri=prefixes.canBeExpanded(conceptName) ? prefixes.expandAbbreviatedIRI(conceptName) : conceptName; if (conceptUri.startsWith("<") && conceptUri.endsWith(">")) conceptUri=conceptUri.substring(1,conceptUri.length()-1); OWLClass owlClass=OWLManager.createOWLOntologyManager().getOWLDataFactory().getOWLClass(IRI.create(conceptUri)); if (!hermit.isDefined(owlClass)) { status.log(0,"Warning: class '"+conceptName+"' was not declared in the ontology."); } Node<OWLClass> classes=hermit.getEquivalentClasses(owlClass); if (ignoreOntologyPrefixes) output.println("Classes equivalent to '"+conceptName+"':"); else output.println("Classes equivalent to '"+prefixes.abbreviateIRI(conceptName)+"':"); for (OWLClass classInSet : classes) if (ignoreOntologyPrefixes) { String iri=classInSet.getIRI().toString(); if (prefixes.canBeExpanded(iri)) output.println("\t"+prefixes.expandAbbreviatedIRI(iri)); else output.println("\t"+iri); } else output.println("\t"+prefixes.abbreviateIRI(classInSet.getIRI().toString())); output.flush(); } }
public NodeSet<OWLClass> getTypes(OWLNamedIndividual namedIndividual,boolean direct) { checkPreConditions(namedIndividual); Set<HierarchyNode<AtomicConcept>> result; if (!isDefined(namedIndividual)) { classifyClasses(); result=new HashSet<HierarchyNode<AtomicConcept>>(); result.add(m_atomicConceptHierarchy.getTopNode()); } else { if (direct) classifyClasses(); initialiseClassInstanceManager(); if (direct) m_instanceManager.setToClassifiedConceptHierarchy(m_atomicConceptHierarchy); result=m_instanceManager.getTypes(H(namedIndividual),direct); } return atomicConceptHierarchyNodesToNodeSet(result); } public boolean hasType(OWLNamedIndividual namedIndividual,OWLClassExpression type,boolean direct) {
conceptUri=conceptUri.substring(1,conceptUri.length()-1); OWLClass owlClass=OWLManager.createOWLOntologyManager().getOWLDataFactory().getOWLClass(IRI.create(conceptUri)); if (!hermit.isDefined(owlClass)) { status.log(0,"Warning: class '"+conceptUri+"' was not declared in the ontology.");
@Override public NodeSet<OWLClass> getTypes(OWLNamedIndividual namedIndividual,boolean direct) { checkPreConditions(namedIndividual); Set<HierarchyNode<AtomicConcept>> result; if (!isDefined(namedIndividual)) { classifyClasses(); result=new HashSet<>(); result.add(m_atomicConceptHierarchy.getTopNode()); } else { if (direct) classifyClasses(); initialiseClassInstanceManager(); if (direct) m_instanceManager.setToClassifiedConceptHierarchy(m_atomicConceptHierarchy); result=m_instanceManager.getTypes(H(namedIndividual),direct); } return atomicConceptHierarchyNodesToNodeSet(result); } /**
if (!isDefined(individual)) return false; OWLClassExpression classExpression=classAssertion.getClassExpression(); if (classExpression instanceof OWLClass) { if (!(isDefined((OWLClass)classExpression) || Prefixes.isInternalIRI(((OWLClass)classExpression).getIRI().toString()))) return false; } else if (classExpression instanceof OWLObjectHasSelf) { OWLObjectProperty namedOP=((OWLObjectHasSelf)classExpression).getProperty().getNamedProperty(); if (!(isDefined(namedOP) || Prefixes.isInternalIRI(namedOP.getIRI().toString()))) return false; } else if (classExpression instanceof OWLObjectHasValue) { OWLObjectProperty namedOP=hasValue.getProperty().getNamedProperty(); OWLIndividual filler=hasValue.getFiller(); if (!(isDefined(namedOP) || Prefixes.isInternalIRI(namedOP.getIRI().toString())) || !isDefined(filler)) return false; } else if (classExpression instanceof OWLObjectComplementOf) { if (negated instanceof OWLClass) { OWLClass cls=(OWLClass)negated; if (!(isDefined(cls) || Prefixes.isInternalIRI(cls.getIRI().toString()))) return false; } else if (negated instanceof OWLObjectHasSelf) { OWLObjectHasSelf hasSelf=(OWLObjectHasSelf)negated; OWLObjectProperty namedOP=hasSelf.getProperty().getNamedProperty(); if (!(isDefined(namedOP) || Prefixes.isInternalIRI(namedOP.getIRI().toString()))) return false; } else if (negated instanceof OWLObjectHasValue) {
if (!isDefined(individual)) return false; OWLClassExpression classExpression=classAssertion.getClassExpression(); if (classExpression instanceof OWLClass) { if (!(isDefined((OWLClass)classExpression) || Prefixes.isInternalIRI(((OWLClass)classExpression).getIRI().toString()))) return false; } else if (classExpression instanceof OWLObjectHasSelf) { OWLObjectProperty namedOP=((OWLObjectHasSelf)classExpression).getProperty().getNamedProperty(); if (!(isDefined(namedOP) || Prefixes.isInternalIRI(namedOP.getIRI().toString()))) return false; } else if (classExpression instanceof OWLObjectHasValue) { OWLObjectProperty namedOP=hasValue.getProperty().getNamedProperty(); OWLIndividual filler=hasValue.getValue(); if (!(isDefined(namedOP) || Prefixes.isInternalIRI(namedOP.getIRI().toString())) || !isDefined(filler)) return false; } else if (classExpression instanceof OWLObjectComplementOf) { if (negated instanceof OWLClass) { OWLClass cls=(OWLClass)negated; if (!(isDefined(cls) || Prefixes.isInternalIRI(cls.getIRI().toString()))) return false; } else if (negated instanceof OWLObjectHasSelf) { OWLObjectHasSelf hasSelf=(OWLObjectHasSelf)negated; OWLObjectProperty namedOP=hasSelf.getProperty().getNamedProperty(); if (!(isDefined(namedOP) || Prefixes.isInternalIRI(namedOP.getIRI().toString()))) return false; } else if (negated instanceof OWLObjectHasValue) {
if (!m_isConsistent.booleanValue()) return true; if (!isDefined(namedIndividual)) return getEquivalentClasses(type).contains(df.getOWLThing()); else {
public boolean hasType(OWLNamedIndividual namedIndividual,OWLClassExpression type,boolean direct) { checkPreConditions(namedIndividual,type); if (!m_isConsistent) return true; if (!isDefined(namedIndividual)) return getEquivalentClasses(type).contains(m_rootOntology.getOWLOntologyManager().getOWLDataFactory().getOWLThing()); else { if (type instanceof OWLClass) { if (direct) classifyClasses(); initialiseClassInstanceManager(); if (direct) m_instanceManager.setToClassifiedConceptHierarchy(m_atomicConceptHierarchy); return m_instanceManager.hasType(H(namedIndividual),H((OWLClass)type),direct); } else { OWLDataFactory factory=getDataFactory(); OWLAxiom negatedAssertionAxiom=factory.getOWLClassAssertionAxiom(type.getObjectComplementOf(),namedIndividual); Tableau tableau=getTableau(negatedAssertionAxiom); boolean result=tableau.isSatisfiable(true,true,null,null,null,null,null,ReasoningTaskDescription.isInstanceOf(namedIndividual,type)); tableau.clearAdditionalDLOntology(); return !result; } } } public NodeSet<OWLNamedIndividual> getInstances(OWLClassExpression classExpression,boolean direct) {