Unleash the Potential of Power Platform With a Center of Excellence
Business innovation often comes from within. Discover how to empower innovation from non-traditional developers with the Microsoft Power Platform.
Lately there has been no shortage of great discussions in the groups I associate with on LinkedIn. The one that caught my eye for this blog was a discussion post in LinkedIn’s Semantic Technologies Group -> https://www.linkedin.com/groups/What-CMS-would-you-recommend-138726.S.5797983861472251904
So it starts with a simple question –“What CMS would you recommend?” in the context of being a Semantic CMS. Since I live and breathe Sitecore, in any other context I wouldn’t hesitate with my answer, but in the Semantic CMS context I wanted to dig a little deeper.
Definition of Semantic Web and Semantic CMS
So let’s start with a bit of background at a very high level. Let’s identify what we mean by Semantic Web and what a Semantic CMS is. When we talk about Semantic Web we are in the context of an end state of a web of data that can be utilized by machines. We focus more on data and standards around that data more than anything else.
This web of data is a work in progress with standards being continually developed by the World Wide Web Consortium (W3C). Essentially the Semantic Web consists of ontologies, taxonomies, rules, common querying languages, data interchanges to expose data. This is a bit different from the document based web that we know and love today. The subject of Semantic Web is far a greater subject to go into and to try to fit details into this blog would be unsatisfactory. I highly recommend learning more about Semantic Web.
A Semantic CMS is an extended CMS as we know it today. A Semantic CMS needs to include semantic functionalities that include the storage and processing of data from semantic services as well as an engine to process reasoning and knowledge relation of that data. In a Semantic CMS we are decoupling data from the typical page/document approach commonly used in many CMS products.
Sitecore Architecture versus Proposed SCMS Architecture
A proposed architecture for a Semantic CMS (SCMS) is as follows:
Here is the Sitecore high level open architecture:
Granted these diagrams are not an apples to apples comparison, but the overall high level concepts are there.
What Sitecore Provides Today
By the diagrams you can conclude that Sitecore clearly contains everything and more on the content side of the SCMS stack as well as the presentation capabilities. Sitecore already decouples data from presentation through use of layouts and sub layouts that can be applied to different templates of data. Those templates we speak of are our taxonomy and ontology representations within Sitecore. This model allows different presentation elements to be applied to the same data.
Sitecore 7 provides the ability to tag data content as well as setup facets for data content. Search has been greatly improved from pervious versions. This provides a great way to expand metadata within Sitecore to develop better data relationships to be able to query. Search is versatile enough to accommodate different search providers and tokenized search. A full list of search functionality can be viewed here -> http://www.sitecore.net/Community/Technical-Blogs/Sitecore-7-Development-Team/Posts/2013/04/Search-and-Indexing-Feature-List.aspx.
Because Sitecore is extensible through the .NET stack, we can hook in oData, which is a web protocol to query and update data. Alex Shyba from Sitecore has provided us Autohaus (https://github.com/Sitecore/autohaus) as an example of what you can do to build a compatible oData service.  This begins the ability to easily connect to other data integration points.
What Is Still Needed?
Sitecore at this point doesn’t have a knowledge and reasoning engine built-in (maybe in the future?). It has tools mentioned above as well as the Rules Engine to get us to a point closer to semantic utopia.
In fact while the .NET based semantic engines are getting better and more are being developed – I have not fallen in love with any of them quite yet. I still prefer some of the tools and engines outside of the .NET stack to play with.
That doesn’t mean there isn’t an opportunity for an engine to be built and integrated. Since Sitecore is extensible, there is really no reason that an engine could not be integrated allowing the association of different data interchanges while adhering to W3C protocols and standards. The abilities to autonomously process multiple sources of data based on interactive behavior will be beneficial.
I don’t mean to trivialize this type of effort making it sound like all we have to do is build and plug in. This effort is a huge undertaking with a lot of use cases to be built to and issues to be resolved. Especially to be able to be used with a mature product like Sitecore.
Based on the SCMS offerings out on the market now – I think Sitecore from a CMS meets and exceeds in many different aspects. Semantic technologies is still not widely embraced but is getting more traction day by day and I really believe the improvements in Sitecore 7 brings developers and customers closer to that data autonomy.
I do believe semantic technologies is where developers providing solutions will be heading from a data consumption approach, a web of data versus a document/page based model. We already see with SOA architectures, mashups, and enterprise data integration efforts in regards to analytics tracking to existing corporate data that we are well underway.
To answer that original question from the LinkedIn discussion – I would recommend Sitecore 7 as it is a great solid CMS with the ability to extend into semantic technologies.