Protégé provides a suite of tools to construct domain models and knowledge-based applications with ontologies. At its core, Protégé implements a rich set of knowledge-modeling structures and actions which support the creation, visualization, and manipulation of ontologies in various representation formats. It can be customized to provide domain-friendly support for creating knowledge models and entering data, and can be extended by way of a plugin architecture and a Java-based API for building knowledge-based tools and applications.