// first add the ABox assertions to make sure none is ignored
kb.addPropertyValue( p, a, b );
kb.addPropertyValue( q, a, b );
// add the subproperty axiom later
kb.addSubProperty( p, q );
kb.addInverseProperty( p, invP );
kb.addInverseProperty( q, invQ );
// force b to be merged to one of c or d
kb.addType( b, or( value( c ), value( d ) ) );