!--a11y-->
Concepts
of Enterprise Knowledge Management 
The basic purpose of Knowledge Management (KM) is to enable central, uniform management of content that is located in distributed, heterogeneous repositories. When a repository is integrated in Knowledge Management, its content can be processed and manipulated with services. User-centric services offer functions to access, edit and publish content. System-oriented services enable, for example, administration, monitoring and processing of data.
From a developer’s perspective, Knowledge Management consists of the repository framework layer, the Knowledge Management layer and extensions. The figure shows the layers with their extensions.

This layer contains the fundamental components of Knowledge Management. It provides the runtime environment for applications and an infrastructure for integrating extensions. Although extensions are not part of the framework, but additions to the framework, some play such a central role that they are considered to be core extensions. Such extensions, which are closely related to the framework, are called framework extensions.
This layer is built on top of the repository framework. It extends the framework with services to handle resources and provides the flexible UI framework for rendering resources. For end users, the layer is visible as the KM application that supports tasks related to documents like accessing, creating, approving and publishing documents.
The services implemented for the layer are primarily user-centric. A service that plays a particularly important role is the index management service. It performs search and classification operations within repositories, using the functions provided by the TREX engine.
A further prominent feature of the layer is the flexible UI framework. This enables the navigation through hierarchies in repositories to be rendered in many different ways. It is referred to as a framework because it enables the integration of extensions like collection and resource renderers.
As already mentioned, the repository framework provides an infrastructure for building extensions. Extensions can be developed either to enhance the framework or to enhance applications. Those that enhance the framework, like repository managers and system-centric services, are framework extensions. Those that enhance the Knowledge Management or other applications are application extensions. Examples of application extensions are user-centric services like subscriptions, content-exchange, and state management. Examples of framework extensions are repository managers and system-centric functions like scheduling, caching and generation of URLs. In the figure above, the colors indicate whether extensions are primarily associated with the framework or applications.
Extensions that can be built and plugged into the framework fulfill different purposes. The most common extensions are:
· Repository Managers map the objects that are stored in backend systems to framework resources. When objects are exposed as framework resources, they can be accessed and manipulated centrally in a uniform manner. For example, a file system repository manager connects to a folder in the file system and exposes the files and folders it contains as resources.
· Repository Filters manipulate resources while they are being passed through the framework. For example, a property filter adds metadata to a resource when it is saved.
· Repository services provide capabilities for handling resources that are stored in a specific repository type. For example, the application properties service stores additional data for resources in a database table.
· Global services provide further capabilities for resources that stored in all repository types. For example, the relation service offers functions for the relationships between resources like resource A is attached to resource B.
·
Semantic objects offer a mechanism to cast resources as other
objects.
For example, a resource that is also a team room can be cast as a TeamRoomobject

The repository framework includes default implementations of different types of repository managers and services.
TREX is a standalone engine that provides search and classification functions. The knowledge management index management service is based on TREX. It uses the functions exposed by TREX to implement search and classification operations for resources that are accessible within the framework. TREX itself has no public API and can therefore only be accessed via the APIs of the index management service.