Enterprise Metadata Management in SharePoint 2010

The managed metadata service is a service application that enables the use of managed metadata and allows you to share content types across site collections and across Web applications. The service publishes a term store and content types, and the metadata is consumed via the managed metadata connection. A managed metadata service and connection are created when the metadata service application is created.

Enterprise metadata management (EMM) is a set of features introduced in Microsoft SharePoint Server 2010 that enable taxonomists, librarians, and administrators to create and manage terms and sets of terms across the enterprise. Key features include:

A new Managed Metadata Service that provides consistent metadata and shared taxonomies across multiple SharePoint Server sites in the enterprise. 
The Managed Metadata Service is a single term store. Term stores are databases that contain one or more taxonomies. Multiple managed metadata services (term stores) can be associated with a single Web application. 
Taxonomies are hierarchical groupings of metadata, hierarchy, and other elements that provide meaning (such as descriptions, synonyms, and translations). 

The Term Management tool, which provides:

Service management: Access all available term store databases from one location. 
Security groups: Control how users can create, edit, or delete by using SharePoint Server users and groups. 
Term sets: Containers that you can use to organize, group, and share hierarchies of terms. 
The ability to apply metadata in the Web browser, through Microsoft Office 2010 client applications and through third-party custom applications, by using the Taxonomy object model 

Creating the service application requires the administrator to specify the database to be used as the term store. When you create new managed terms, or when users add managed keywords, these terms are stored in the database. Like other service applications, the managed metadata service can be published to provide access to other Web applications. When a service application is published, a URL to the service is created. The administrator of another Web application can create a connection to your service by using this URL.

In addition to sharing metadata, you can also use the managed metadata service to share content types. By creating a new managed metadata service and specifying a site collection as the content type hub, you can share all content types in the site collection's content type gallery. You can create multiple managed metadata service applications. This provides the capability to share multiple term stores and content types from multiple site collections. Each service must specify a different term store during the creation process, and a new database will be created if it does not exist.

Most of the APIs used to develop EMM solutions are in the Microsoft.SharePoint.Taxonomy namespace. This article focuses on some of the most commonly used classes, methods, and properties:

  • TaxonomySession class
  • TermStore class
  • Group class
  • TermSet class
  • Term class
  • CommitAll method
  • IsAvailable property
  • Name property
  • CreateLabel method
  • SetDescription method

The taxonomy system needs to be able to support a complex enterprise. A simple flat list of strings isn't going to be sufficient. To that end, we support the following concepts and behaviors:

  • Terms - A term is the central object in the taxonomy system. It's the concept itself.

  • Labels - Terms have to be known by a bunch of different names. When someone types "check" it should be the same thing as someone that types "cheque".

  • Default Label - It's a whole lot easier if one label is the default. You can find it through any of its synonyms.

  • Termset - A collection of related terms in a hierarchy is a termset.

  • Term Reuse - This is a key point to the system. If you have two termsets "Capitol Cities" and "Locations", the term "London" and all of its synonyms, etc. should be the same in both.

  • Homographs - A homograph is a word that is spelt the same, but has a different meaning.

  • Metadata Management - A given term has a bunch of meaning associated with it. The translations belong to the term in the same way that synonyms do. If a term doesn't have a translation, we use the default language.

  • Groups - Groups in the taxonomy system are simply collections of termsets that share a common security assignment.

  • Merging terms - at times, you might get multiple terms in the system that really are the same thing. They might be in the same termset, or they might be in different termsets. When you merge them, you get a single term with all of the properties, and this new term will be reused in all termsets that the original terms existed.

The connection provides access to the service. When you create a managed metadata service, a connection to the service is automatically created in the same Web application as the service. Web applications can have connections to multiple services. Several properties are specified as part of the connection. Values for each of these properties must be specified as part of configuring the service connection.

Default keyword location specifies that the term store will be used to store new managed keywords. This provides the capability for sharing and managing a common set of keywords across site collections.

Default term set location Specifies where to store term sets when new site columns are created. This provides the capability for sharing and managing a common set of terms across site collections.

Use content types Makes content types associated with this managed metadata service available to users of sites in this Web application.