A class with necessary and sufficient property.
Ontology(<http://nomagic.com/ontology/example-case/case-20>
      Declaration(
             Class(:CarManufacturer)
      )
      Declaration(
             Class(:Manufacturer)
      )
      Declaration(
             Class(:SteeringWheelManufacturer)
      )
      Declaration(
             Class(:WindshieldManufacturer)
      )
      Declaration(
             ObjectProperty(:hasContractWith)
      )
      AnnotationAssertion(rdfs:label :CarManufacturer "Car Manufacturer"@en)
      EquivalentClasses(
             :CarManufacturer
             ObjectIntersectionOf(
                     ObjectMinCardinality(1 :hasContractWith :SteeringWheelManufacturer)
                     ObjectSomeValuesFrom(:hasContractWith :SteeringWheelManufacturer)
             )
      )
      EquivalentClasses(
             :CarManufacturer 
             ObjectIntersectionOf(
                       ObjectMinCardinality(1 :hasContractWith :WindshieldManufacturer) 
                       ObjectSomeValuesFrom(:hasContractWith :WindshieldManufacturer)
             )
      )
      SubClassOf(:CarManufacturer :Manufacturer)
      AnnotationAssertion(rdfs:label :Manufacturer "Manufacturer"@en)
      AnnotationAssertion(rdfs:label :SteeringWheelManufacturer "Steering Wheel Manufacturer"@en)
      SubClassOf(:SteeringWheelManufacturer :Manufacturer)
      AnnotationAssertion(rdfs:label :WindshieldManufacturer "Windshield Manufacturer"@en)
      SubClassOf(:WindshieldManufacturer :Manufacturer)


AnnotationAssertion(rdfs:label
:hasContractWith "has contract with"@en)


ObjectPropertyDomain(:hasContractWith
:Manufacturer)


ObjectPropertyRange(:hasContractWith
:Manufacturer)


)