SharePoint Tagging Exposed

I'm sure all of you have seen the new tagging feature of SharePoint.  This particular feature is a part of the User Profile Service Application AND Metadata Service Applications.  If you don't have one of these created, then you simply won't get the ability to do tagging.  If you do however, you can tag things as a generic "I Like It" or something more specific like "Awesome".  I have had a few different questions asked of me over the past few months and here I'll answer them all:

#1 If a user tags something, will other users see the tag?

ANSWER: Depends!  There is a checkbox when you attempt to tag an item.  If you check it, it will save the tag specifically for you and no one else.  If you do not check the box, then when some goes to tag the same item, you will see a suggested tag list made up of all tags that have been placed on that item.

#2 If a user tags something, will they see that tag indexed in a search for the item?

ANSWER: No, I have not gotten SharePoint or FAST Search to index the tags 🙁  This can certainly be setup with a custom iFilter or extend point in FAST Search content processing pipeline, but it doesn't look to be out of the box.

#3 As an administrator, how can I search on all the tags that have been created?

Tags are saved as Metadata terms in the Managed Metadata Service Application that is assigned to the web application you are working with.  You can simply view all the terms under the "System->Keywords" group of your MMS service application.   You can also run the following query on your MMS database to get a listing of the tags and who "tagged" it:

 SELECT
      [ObjectUniqueId]
      ,[ObjectId]
      ,[Label]
      ,[Owner]
      ,[CreatedTime]
      ,[LastModifiedTime]

  FROM [ECMChangeLog] ecl, ECMTerm t, ECMTermLabel etl
  where
  ChangeType = 1
  and
  ecl.ObjectUniqueId = t.UniqueId
  and
  ecl.ObjectId = etl.TermId 

#4 How do I query  what has been tagged?

ANSWER: All items that have been tagged are not stored in MMS, but instead in the UserProfileServicesApplication_SocialDB_* database and in the SocialTags table.  A simple query of that table will give you what you are looking for.  Other helpful tables include:

  • SocialTagCloud_Everyone
  • SocialTagCloug_EveryoneByUrlBase
  • SocialTags
  • SocialTags_ChangeLog

#5 Are tags filtered (as in bad words like *bleep*)?

ANSWER: No, and ForeFront doesn't filter them either (reference this post).

#6 Can tags be filtered?

ANSWER:  To answer this question, one must analyze the architecture of the tagging system.  Since all the tag keywords are stored with MMS, the question then becomes, can I filter MMS?  Looking at the structure of the MMS tables, we have:

  • ECMTerm
  • ECMTermDescription
  • ECMTermLabel
  • ECMTermProperty
  • ECMTermSet
  • ECMTermSetMembership

The value for the term is actually stored in the ECMTermLabel property table.  Check out my new product that does SharePoint Social Filtering : http://www.sharepointfilter.com

#7 What does the "Tag Cloud" web part do?

Being that SharePoint doesn't have any filtering…this web part can cause some pretty nasty HR problems.  As long as your users are doing what they are suppose to be doing, then this simply queries all the tags in the Metadata store and displays them.

Enjoy!
Chris