/// <summary>
 /// Checks if the given childproperty can be set subPropertyOf the given motherproperty;<br/>
 /// Does not accept property chain definitions, for OWL2-DL decidability preservation.
 /// </summary>
 internal static bool CheckSubPropertyOfCompatibility(RDFOntologyPropertyModel propertyModel, RDFOntologyObjectProperty childProperty, RDFOntologyObjectProperty motherProperty)
 => !propertyModel.CheckIsSubPropertyOf(motherProperty, childProperty) &&
 !propertyModel.CheckIsEquivalentPropertyOf(motherProperty, childProperty) &&
 !propertyModel.CheckIsPropertyDisjointWith(motherProperty, childProperty) &&
 //OWL2-DL decidability
 !propertyModel.CheckIsPropertyChain(childProperty) &&
 !propertyModel.CheckIsPropertyChain(motherProperty);
 /// <summary>
 /// Checks if the given childproperty can be set subpropertyof the given motherproperty
 /// </summary>
 internal static Boolean CheckSubPropertyOfCompatibility(RDFOntologyPropertyModel propertyModel,
                                                         RDFOntologyDatatypeProperty childProperty,
                                                         RDFOntologyDatatypeProperty motherProperty)
 {
     return(!propertyModel.CheckIsSubPropertyOf(motherProperty, childProperty) &&
            !propertyModel.CheckIsEquivalentPropertyOf(motherProperty, childProperty));
 }
 /// <summary>
 /// Checks if the given aproperty can be set inverseof the given bproperty
 /// </summary>
 internal static Boolean CheckInverseOfPropertyCompatibility(RDFOntologyPropertyModel propertyModel,
                                                             RDFOntologyObjectProperty aProperty,
                                                             RDFOntologyObjectProperty bProperty)
 {
     return(!propertyModel.CheckIsSubPropertyOf(aProperty, bProperty) &&
            !propertyModel.CheckIsSuperPropertyOf(aProperty, bProperty) &&
            !propertyModel.CheckIsEquivalentPropertyOf(aProperty, bProperty));
 }
 /// <summary>
 /// Checks if the given childproperty can be set subPropertyOf the given motherproperty
 /// </summary>
 internal static bool CheckSubPropertyOfCompatibility(RDFOntologyPropertyModel propertyModel, RDFOntologyDatatypeProperty childProperty, RDFOntologyDatatypeProperty motherProperty)
 => !propertyModel.CheckIsSubPropertyOf(motherProperty, childProperty) &&
 !propertyModel.CheckIsEquivalentPropertyOf(motherProperty, childProperty) &&
 !propertyModel.CheckIsPropertyDisjointWith(motherProperty, childProperty);
 /// <summary>
 /// Checks if the given aProperty can be set inverseOf the given bProperty
 /// </summary>
 internal static bool CheckInverseOfPropertyCompatibility(RDFOntologyPropertyModel propertyModel, RDFOntologyObjectProperty aProperty, RDFOntologyObjectProperty bProperty)
 => !propertyModel.CheckIsSubPropertyOf(aProperty, bProperty) &&
 !propertyModel.CheckIsSuperPropertyOf(aProperty, bProperty) &&
 !propertyModel.CheckIsEquivalentPropertyOf(aProperty, bProperty);
 /// <summary>
 /// Checks if the given aProperty can be set propertyDisjointWith the given bProperty [OWL2]
 /// </summary>
 internal static bool CheckPropertyDisjointWithCompatibility(RDFOntologyPropertyModel propertyModel, RDFOntologyDatatypeProperty aProperty, RDFOntologyDatatypeProperty bProperty)
 => !propertyModel.CheckIsSubPropertyOf(aProperty, bProperty) &&
 !propertyModel.CheckIsSuperPropertyOf(aProperty, bProperty) &&
 !propertyModel.CheckIsEquivalentPropertyOf(aProperty, bProperty);