  Description Logics (DLs) are a family of knowledge representation formalisms
mainly characterised by constructors to build complex concepts and roles from
atomic ones. Expressive role constructors are important in many applications,
but can be computationally problematical. We present an algorithm that decides
satisfiability of the DL ALC extended with transitive and inverse roles, role
hierarchies, and qualifying number restrictions. Early experiments indicate
that this algorithm is well-suited for implementation. Additionally, we show
that ALC extended with just transitive and inverse roles is still in PSPACE.
Finally, we investigate the limits of decidability for this family of DLs.
