clauseType=ClauseType.INVERSE_OBJECT_PROPERTY_INCLUSION;
else
clauseType=ClauseType.OBJECT_PROPERTY_INCLUSION;
Atom subRoleAtom=getRoleAtom(inclusion[0],X,Y);
Atom superRoleAtom=getRoleAtom(inclusion[1],X,Y);
DLClause dlClause=DLClause.create(new Atom[] { superRoleAtom },new Atom[] { subRoleAtom },clauseType);
dlClauses.add(dlClause);
}
for (OWLDataPropertyExpression[] inclusion : axioms.m_dataPropertyInclusions) {
Atom subProp=getRoleAtom(inclusion[0],X,Y);
Atom superProp=getRoleAtom(inclusion[1],X,Y);
DLClause dlClause=DLClause.create(new Atom[] { superProp },new Atom[] { subProp },ClauseType.DATA_PROPERTY_INCLUSION);
dlClauses.add(dlClause);
}
for (OWLObjectPropertyExpression objectPropertyExpression : axioms.m_asymmetricObjectProperties) {
Atom roleAtom=getRoleAtom(objectPropertyExpression,X,Y);
Atom inverseRoleAtom=getRoleAtom(objectPropertyExpression,Y,X);
DLClause dlClause=DLClause.create(new Atom[] {},new Atom[] { roleAtom,inverseRoleAtom },ClauseType.ASYMMETRY);
dlClauses.add(dlClause.getSafeVersion());
}
for (OWLObjectPropertyExpression objectPropertyExpression : axioms.m_reflexiveObjectProperties) {
Atom roleAtom=getRoleAtom(objectPropertyExpression,X,X);
DLClause dlClause=DLClause.create(new Atom[] { roleAtom },new Atom[] {},ClauseType.REFLEXIVITY);
dlClauses.add(dlClause.getSafeVersion());
}
for (OWLObjectPropertyExpression objectPropertyExpression : axioms.m_irreflexiveObjectProperties) {
Atom roleAtom=getRoleAtom(objectPropertyExpression,X,X);
DLClause dlClause=DLClause.create(new Atom[] {},new Atom[] { roleAtom },ClauseType.IRREFLEXIVITY);
dlClauses.add(dlClause.getSafeVersion());
}
for (OWLObjectPropertyExpression[] properties : axioms.m_disjointObjectProperties)
for (int i=0;i<properties.length;i++)
for (int j=i+1;j<properties.length;j++) {
Atom atom_i=getRoleAtom(properties[i],X,Y);
Atom atom_j=getRoleAtom(properties[j],X,Y);
DLClause dlClause=DLClause.create(new Atom[] {},new Atom[] { atom_i,atom_j },ClauseType.DISJOINT_OBJECT_PROPERTIES);
dlClauses.add(dlClause.getSafeVersion());
}
if (axioms.m_dataPropertyInclusions.contains(factory.getOWLDataProperty(IRI.create(AtomicRole.BOTTOM_DATA_ROLE.getIRI())))) {
Atom bodyAtom=Atom.create(AtomicRole.BOTTOM_DATA_ROLE,X,Y);
dlClauses.add(DLClause.create(new Atom[] {},new Atom[] { bodyAtom },ClauseType.OTHER).getSafeVersion());
}
for (OWLDataPropertyExpression[] properties : axioms.m_disjointDataProperties)
for (int i=0;i<properties.length;i++)
for (int j=i+1;j<properties.length;j++) {
Atom atom_i=getRoleAtom(properties[i],X,Y);
Atom atom_j=getRoleAtom(properties[j],X,Z);
Atom atom_ij=Atom.create(Inequality.create(),Y,Z);
DLClause dlClause=DLClause.create(new Atom[] { atom_ij },new Atom[] { atom_i,atom_j },ClauseType.DISJOINT_DATA_PROPERTIES);
dlClauses.add(dlClause.getSafeVersion());
}
DataRangeConverter dataRangeConverter=new DataRangeConverter(m_configuration.warningMonitor,axioms.m_definedDatatypesIRIs,allUnknownDatatypeRestrictions,m_configuration.ignoreUnsupportedDatatypes);
NormalizedAxiomClausifier clausifier=new NormalizedAxiomClausifier(dataRangeConverter,positiveFacts,factory,axioms.m_dps2ranges);
for (OWLClassExpression[] inclusion : axioms.m_conceptInclusions) {
for (OWLClassExpression description : inclusion)
description.accept(clausifier);
DLClause dlClause=clausifier.getDLClause();
dlClauses.add(dlClause.getSafeVersion());
}
NormalizedDataRangeAxiomClausifier normalizedDataTangeAxiomClausifier=new NormalizedDataRangeAxiomClausifier(dataRangeConverter,factory,axioms.m_definedDatatypesIRIs);
for (OWLDataRange[] inclusion : axioms.m_dataRangeInclusions) {
for (OWLDataRange description : inclusion)
description.accept(normalizedDataTangeAxiomClausifier);
DLClause dlClause=normalizedDataTangeAxiomClausifier.getDLClause();
dlClauses.add(dlClause.getSafeVersion());
}
for (OWLHasKeyAxiom hasKey : axioms.m_hasKeys)
dlClauses.add(clausifyKey(hasKey).getSafeVersion());
FactClausifier factClausifier=new FactClausifier(dataRangeConverter,positiveFacts,negativeFacts);
for (OWLIndividualAxiom fact : axioms.m_facts)