Sunday, 6 December 2009

Managed Metadata in SharePoint 2010 - some notes on the "why"

Having looked at the “what” of SharePoint 2010 Managed Metadata framework in the previous article, before moving on to discuss other ECM enhancements in the next article I want to quickly look at the “why”. One of the reasons I want to do this is because I notice some SharePoint folks, developers in particular, seem to be somewhat “meh” about this 2010 feature in comparison to “sexier” topics.

Metadata is the gateway to so much more than just good search results these days though, and I think developers sometimes overlook this. For a slide in my talk, I came up with 4 categories of functionality and gave some examples of each - I encouraged the audience to keep these examples in the back of their mind as I demonstrated how to use and extend the Managed Metadata framework:

MetadataDrivenFunctionality 

I’m sure there are lots of other examples too. Some are more relevant for collaboration sites e.g. navigating by metadata is huge for large lists/libraries, whereas others, such as the examples I badged as “Alternative navigation”, are becoming more common in publishing sites (e.g. public-facing). I also see more and more WCM sites where landing pages have content generated by complex rules – going beyond say, the Content Query Web Part and more towards generating entire pages with a high-end search engine such as FAST, Endeca or Autonomy. Behind all this is always well-defined metadata, and you need to give authors powerful tools to tag content properly for this to work well.

The “faceted” angle comes in two different flavours too – faceted search is where an actual search query is being performed (i.e. relevance is considered) but facets are used to further refine or filter the resultset, whereas faceted navigation is more analogous to a SQL query with multiple filters in a WHERE clause. Since we’re on the subject and there wasn’t space to cover it in the last article, let’s take a look at what SharePoint Server 2010 now provides in terms of faceted navigation, or in more appropriate SharePoint terminology, navigation by metadata.

Navigation by metadata in a SharePoint Server 2010 list (faceted navigation)

Although the idea of navigating by metadata has been around for a while, the SharePoint 2010 release is the first which has had something in the box for this – this is currently a SharePoint Server deal only though, so SharePoint Foundation users are out of luck (this is the situation in the beta packaging anyway).  There are two navigation concepts which can be used in lists and libraries - “navigation hierarchies” and “key filters”. Navigation hierarchies provide an expandable treeview which effectively allow the user to “drill down” the taxonomy and then select a node in order to filter items in the current view. Key filters offer no such expand/collapse functionality, but do support the same type-ahead or “browse in a picker” experience for a specific field that authors get when tagging items – additionally, more field types can be used as navigators in key filters compared to in a navigation hierarchy.

Both appear under the quick launch navigation:

NavigationControlsInContext_Wide

..and can be used to filter the current view to find the items the user is interested in:

MetadataNavigation

Effectively you’re getting a choice of user experience, although both can be provided only the same list if preferred. Notably, you can filter the list view by combining filters from both navigation types, it isn’t a “one or the other” situation.

When configuring in the list settings, for each you can specify which list fields you wish to use as navigators: 

MetadataNavigationSettingsWide

I think this is a huge win for any SharePoint collaboration environment with reasonably-sized lists/libraries. Although both navigation types are off by default, I can’t think of many reasons why you wouldn’t want to enable this in many places. A cursory look through the SDK didn’t tell me how I might enable the functionality for all lists created from a given template (the list schema XML or SPList class don’t seem to have been extended to allow setting this), but I’m sure it’s possible – some relevant classes can be found the Microsoft.Office.DocumentManagement.MetadataNavigation namespace.

Summary

Although metadata isn’t the most glamorous topic for some folks, it’s the foundation for a huge range of functionality across collaboration and publishing sites, and everything in between. The end goal is never simply to have content tagged, but rather what you’re in a position to do once that’s the case. Consider how the managed metadata framework can help you implement end-user functionality in your site. One example which is now standard functionality in SharePoint Server 2o10 is navigation by metadata within a list or library – "navigation hierarchies” and “key filters” provide highly useful options for finding items in large lists, but a wide range of other possibilities exists too – you don’t need FAST to provide innovative ways to navigate a website.

Next time: other ECM enhancements such as Enterprise Content Types, Content Organizer, Scalability etc.

7 comments:

Josef D Wright said...

Good Substance w/ this Article, Chris! Thanx to @janishall for the RT.

Here's a recent article I put together on Metadata. Thought it's worth sharing : http://tinyurl.com/yk92udh

I have conversations with users everyday on the value of metadata and how it applies to the topix of which you described - Va Bene!

Thanx - J (@josefdwright)

packiyanath said...

Hi, Great explanation. BTW, Have a question. Does the SharePoint Content Deployment Wizard (that you listed in codeplex) support deployment of Managed Metadata and the site collections thats using this meta data across to different servers(Dev/QA/Stage/Prod) or farms? Pls. let me know.

Thanks
Packy

Chris O'Brien said...

@Packy,

No I'm afraid the Content Deployment Wizard does not extend to Managed Metadata. This is because Microsoft did not extend their Content Deployment framework to include this metadata - you'll need to write some different code to import/export or use PowerShell.

It does move site collections (or webs, lists, list items/files) however, since this really is 'content'.

HTH,

Chris.

Anonymous said...

Hi .. Nice Article..

one question , is it possible to create our own custom control which will be same as like Navigation Hierarchy Control we have OOB..and then accoding to the Term selected page content should be updated?

Anonymous said...

Great article.

Has anyone managed to get the key filters working on a slide library.

I have tried and it doesn't display at all!

Anonymous said...

Great Article Chris - Thanks. One quick question, Are there any limitations of the Meta data features in SharePoint Foundation Server 2010? Thanks

Anonymous said...

Can this be viewed by Anonymous users as well?