code: @Override
      public NodeSet<OWLClass> getTypes(OWLNamedIndividual ind, boolean direct)
              throws InconsistentOntologyException, FreshEntitiesException,
              ReasonerInterruptedException, TimeOutException {
          throw new ReasonerInternalException("getTypes not implemented");
      }
docs: Gets the named classes which are (potentially direct) types of the
  specified named individual. The classes are returned as a
  {@link NodeSet}.
  
  @param ind
  The individual whose types are to be retrieved.
  @param direct
  Specifies if the direct types should be retrieved (
  <code>true</code>), or if all types should be retrieved (
  <code>false</code>).
  @return If <code>direct</code> is <code>true</code>, a
  <code>NodeSet</code> containing named classes such that for each
  named class <code>C</code> in the node set, the set of reasoner
  axioms entails <code>DirectClassAssertion(C, ind)</code>. </p> If
  <code>direct</code> is <code>false</code>, a <code>NodeSet</code>
  containing named classes such that for each named class
  <code>C</code> in the node set, the set of reasoner axioms
  entails <code>ClassAssertion(C, ind)</code>. </p>
  
  @throws InconsistentOntologyException
  if the imports closure of the root ontology is inconsistent
  @throws FreshEntitiesException
  if the signature of the individual is not contained within
  the signature of the imports closure of the root ontology and
  the undeclared entity policy of this reasoner is set to
  {@link FreshEntityPolicy#DISALLOW}.
  @throws ReasonerInterruptedException
  if the reasoning process was interrupted for any particular
  reason (for example if reasoning was cancelled by a client
  process)
  @throws TimeOutException
  if the reasoner timed out during a basic reasoning operation.
  See {@link #getTimeOut()}.