Designing SharePoint Composite Applications -
     Taxonomy (managed metadata)


Ramona Maxwell’s study notes, ©2011 All rights reserved

Customizable metadata takes the SP2010 infrastructure and turns it into a custom vertical solution for a specific industry. Like so many terms in computer science this one is a borrowed analogy, since the classifications you will create aren't necessarily going to refer to biology – they will describe whatever may be distinctive in the organization you are creating the SP2010 environment for. The content to be delineated is described in the SharePoint documentation is Enterprise Managed Metadata [EMM]. Creating a taxonomic structure of metadata unique to your organization is a simple SP2010 development task, especially if you are familiar with the concept of committed transactions in database development. The taxonomic store is a straightforward hierarchical structure and its location is at the SharePoint.Metadata.Taxonomy namespace.

The taxonomical structure is made up of Groups, TermSets and Terms and while I've listed Groups as plural it is the base container for an entire collection of metadata. It is the hardworking single parent of up to a thousand TermSets. Each TermSet can contain up to 30,000 individual terms. Terms can be duplicated in various TermSets, just like your Aunt or Uncle can give your cousin your name if they want – you still can identify yourself and them by the owning TermSet parent. Terms can parent sub-terms up to seven levels deep. A possible illustration that comes to mind is an auto parts supplier, perhaps having groups base categories such as Cars and Trucks, using the Truck group as and example creating a TermSet for each manufacturer of Trucks and then within the Manufacturer TermSet the many thousands of terms that describe the parts of that manufacturer's trucks. Many terms would be duplicated under several manufacturers – but others would be unique to that brand.

You can further think of the taxonomic classifications as lookup tables to constrain the values in the SharePoint site columns, remembering that the SharePoint columns are based on an underlying SQL Server database makes this comparison sensible. SP201 has a new column type, managed metadata, that allows you to constrain its values to those within a specified TermSet. Terms can also have labels and descriptions, the labels serve as synonymous search terms. TermSets can either be local, that is specific to a certain site collection and accessible only within it or an administrator may create a global Group and TermSet that can be accessed by many sites if they are granted permission to it. Also TermSets can be built through user contributions, i.e. 'folksonomy' or remain fixed to a given taxonomical store for tighter control over terminology and consistency.

The first reference I read was a brief description of how to instantiate a Group, TermSet and Terms manually within Visual Studio (a good starting point for this topic is to search MSDN for “Metadata and Taxonomy Programming Model). Similar to a SQL transaction, an update to the TermStore of new taxonomy items commits only if all of the statements inside of it are successful. You don't always need to venture out to Visual Studio to work with EMM though, and when we leave the VS2010 tutorial the designations change accordingly from 'TermStore' to 'Term Store', and so on. The Term Store Management Tool, which is part of the Managed Metadata application, can be accessed either from Central Administration or from within a site collection's Site Settings menu.

TermSets can be imported and exported via CSV lists, but that brought to mind the question 'what about XML?' since that so nicely fits a simple hierarchy and is a rather universal tool for moving data around. Better minds have thought of this and I found some sites with tools people had written on their own to import their classifications using XML, but so far I do not see that it's a feature built into SP2010.

Return to www.sqlsolver.com