• Like
  • Save
EPiServer Module Technical Overview
Upcoming SlideShare
Loading in...5
×
 

EPiServer Module Technical Overview

on

  • 1,992 views

This presentation presents the rationale for chosing the Networked Planet TMCore EPiServer Module to better organize and manage content in an EPiServer website.

This presentation presents the rationale for chosing the Networked Planet TMCore EPiServer Module to better organize and manage content in an EPiServer website.

Statistics

Views

Total Views
1,992
Views on SlideShare
1,991
Embed Views
1

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • This presentation provides a technical overview of the TMCore EPiServer Module.
  • In this first section we’ll define the problems that site designers encounter when designing sites within EPiServer.
  • A good navigation model for a site is critical to the success of a site. It doesn’t matter how great the information on the site is, if users cannot find it then it’s as if it doesn’t exist. Many sites organize their content with respect to the editors convenience, security or random organization; forgetting that it’s the users who are the most important.Broken links are the bane of any site. There’s several programs out there that will crawl sites and report back broken links; however the truth is that these links should never have been there in the first place.When a new piece of content is published on a site, there are most likely going to be related bits of content that it makes sense to link to. Currently, editors have to be aware of the rest of the content on the site and manually create new links from the old content to the new. This, of course, involves publishing new versions of the old content, when it has in fact, not changed.Finally, manual classification solutions require the editor to use a separate application to classify content against a schema. These systems typically fail in practice because Editors are either unwilling or forget to use the third party systems for classification. If it isn’t obvious, they won’t use it…… unless you have a very big stick.
  • The first part of this presentation explains the concepts of topic maps and how they are used to map on to real-world information.
  • The concept of attributing metadata to content, or tagging, has been around for many years.A simple example is the film “La Dolce Vita”, directed by Federico Fellini. Shown on the slide is how “La Dolce Vita” may be tagged with the “Federico Fellini”.Similarly we may tag another film “The Magic of Fellini” with the same tag. That way when a user views the page about Federico Fellini, it may tell them “the following items are tagged with Federico Fellini: La Dolce Vita, and The Magic of Fellini.”This is useful, but limited. Any reader that is a fan of film will know that “The Magic of Fellini” was not directed by Fellini, but was a biographical work. It was directed by Carmen Piccini.Now “The Magic of Fellini” has two tags: Federico Fellini and Carmen Piccini. However, what is missing is why or how items of content have been tagged in the way they have.This is where topic maps are useful. Instead of tagging content directly, we create topics for each of the content and the tags.
  • The slide shows how topics that represent both our content and our concepts. Connecting topics are semantically rich relationships that reveal the type of content or concept we are looking at as well as the types of relationships each topic has to other content and concepts.We can now say that: “La Dolce Vita” was directed by “Federico Fellini” “The Magic of Fellini” was directed by “Carmen Piccini” “The Magic of Fellini” is about “Federico Fellini”There is one more piece to add to this: bi-directionality, or more prosaically the concept of “only say it once.” All semantic relationships apply in both directions. If I say that “La Dolce Vita” was directed by “Federico Fellini”, I am also in effect saying “Frederico Fellini” directed “La Dolce Vita”. This may seem incredibly trivial but the web as it exists today is based on links that jump in one direction only. Just because I link to a page on another website, doesn’t mean that that website has a link back to my page – and so it is with tags. The usefulness of this concept is being realized in a very minor way through the concept of trackbacks on blogging entries.With the ability to examine a semantically rich relationship and know what kind of relationship it is and be able to traverse it in either direction, we know have the ability to hop around the network of concepts and content finding all kinds of related information. This proves to be of enormous value for organisations seeking to present a lot of information:Firstly a network of semantic relationships means that you can build a site that makes no supposition about where a user starts from, but can still guide them over a network of well-defined relationship links to the right kind of content.Secondly an editor can focus on simply describing the relationships between the content piece they are adding and the concepts that exist in the domain model. The semantic relationships can then be used to ensure that the content appears in the right places on the site and that “See also” links are automatically updated to take account of this new piece of content.
  • Associations between topics in topic maps are controlled by a schema, which is itself composed of topics with associations.Each association consists of one or more roles (typically associations are binary, that is there are two roles). Each role has constraints that define:The type of topics that can play the role, e.g. topics of type Person can play the role of Skilled Person.A topic that “defines” the role. For example a topic of type Person plays the role of Skilled Person.Multiple topic types can play a role, there is also the concept of topic type inheritance to allow multiple types of topic to play a particular role.
  • Topic Maps take an object oriented approach to schema organization.Topics may be designated as being able to type other topics (this is done by making the topic an instance of the “topic type” topic).Topic types may subclass each other as shown in the example above. The inheritance relationships are modelled simply using associations between the topics which are then interpreted by topic map engines and the EPiServer Module.The schema topics (topics that denote topic type, association type, role type and so on) are defined by the Networked Planet Constraint Language (NPCL), which expresses these schema constructs entirely in terms of topic maps themselves. In the final stages of ratification is Topic Map Constraint Language (TMCL) which is largely based on NPCL. Graham Moore, one of the founders of Networked Planet is the editor of the TMCL specification.
  • The usefulness of subclasses becomes obvious when considering that constraints places upon topics are also inherited.This means that the recoding of almost identical association constraints is not required between subclasses.
  • For each page type in EPiServer, the administrator configures the type of topic that should be created for each page type. When the page is created in EPiServer, the CreatedPage event in EPiServer causes a topic to be created of the correct type.
  • Pages are associated together by creating associations between the topics representing the pages.It is important to note that associations may be created between any topics, not just those that represent pages. This allows editors to classify their content against topics such as:Predefined taxonomies (e.g. Government classifications).Topics representing pages in other EPiServer sites.Topics representing pages in 3rd party software, such as SharePoint items.Purely conceptual topics representing useful tags or classifications for the business.
  • Many of the constructs in Topic Maps can be scoped.Scoping topics are used to annotate names, occurrences and associations to apply a context.The TMCore EPiServer module uses scopes on associations to indicate three types of association:An association made by an editor that has not been published - UNPUBLISHED scope.An association that has been deleted by an editor, but has not been published – DELETED scope.An association that is published – no scope.This was editors can work within the traditional EPiServer model of “until I publish, it is not visible to the end user.”
  • As described in the problem statement, editors will tire quickly of any manual classification mechanism that isn’t intuitive and easy to use. Creating a separate application, or using an existing application for editing the topic map, such as TMCore, is simply not acceptable.
  • To address these requirements, the TMCore EPiServer Module provides a plug-in for the EPiServer Edit Mode application.It appears as a new tab within Edit Mode, only shown for pages which have topic representation.
  • The content classification interface is totally data-driven from the topic map, making it easy to add new association types to topics providing a totally flexible system.
  • An API is no good unless it is simple. The module provides utility classes which make it extremely easy to bind data to the existing repeater-style controls in ASP.NET, as well as develop your own controls.

EPiServer Module Technical Overview EPiServer Module Technical Overview Presentation Transcript

  • TMCore EPiServer Module
    Technical Overview
  • Agenda
    Problem Statement
    What Are Topic Maps?
    Topic Maps & EPiServer
  • Problem Statement
  • Problem Statement
    Navigation Issues
    Where am I?
    Where can I go?
    Absent and Broken Links
    Taking old pages down
    Putting new pages up
    Content Change Rippling
    The effect of changing content
    Seamless Editing Environments
    Getting classification done
  • Navigation
    Users have a mental model of the information architecture.
    The model will differ from user to user.
    Need to avoid strict hierarchy navigation
    Provide links to related content via useful semantics
    Group related content
    Simplify the authoring process
    No more hand crafting thousands of manual links
    Improving link management
    No more broken links
    Relevant content automatically added to pages
  • Content Integration
    Topic Maps act as a knowledge hub that integrate heterogeneous content to present a unified view.
    Address specific use-cases:
    How do I show content from two EPiServer instances?
    How do I provide links to content from one server to that in another?
    How can I integrate stock quotes, or content from the archive system in to my site?
  • Augmented Search
    Semantic search by topic and not by full text
    Group search results by their topic classification
    Provide Google Suggest-like topic search
    Perform facet classification and search
  • What are topic maps?
  • From Tags…
    Rome
    FedericoFellini
    La Dolce Vita
    Carmen Piccini
    The Magic of Fellini
  • …to Topics
    Rome
    Setting Of/Set In
    Directed /Directed By
    FedericoFellini
    La Dolce Vita
    Is In /
    Contains
    Subject Of/Is About
    Italy
    Born In /
    Birthplace Of
    Directed /Directed By
    The Magic of Fellini
    Carmen Piccini
  • Associations Between Topics
    Associations between topics have rich semantics.
    Person has Skill
    Association Type
    Roles
    Skilled Person
    Skill
    Person
    Possessed Skill
    Role Playing Type
    Role Defining Type
  • Topic Map Schemas
    Topic Types
    Inheritance
    Document
    Technical Article
    Release Notes
    EPiServer 5
    Release Notes
  • Topic Map Schemas
    Association Constraints are inherited
    Person has Skill
    Skill
    Skilled Person
    Person
    Possessed Skill
    Technical Skill
  • Topic Maps and EPiServer
  • Pages & Topics
    For every page in EPiServer there can exist a topic…
    Topic Type: Person
    Page Type : Person
    Page: Graham Moore
    Topic: Graham Moore
  • Associating Pages
    Topics are connected together to form a graph of interrelated concepts
    All connections are two way and typed
    Graham Moore
    C#
    Java
    Has skill
    Has skill
  • Graham Moore
    C#
    Has skill
    Has skill
    Scoping Associations
    Associations are scoped so that associations are only visible after publication
    Java
    UNPUBLISHED
    Editor View
    User View
    C#
    Java
    C#
  • Classifying EPiServer Content
  • Editor Support
    There are many ways to achieve topic map integration but those that are successful attend to the processand userneedsas much as the technology.
    As well as the controls themselves there is the opportunity to build additional editorial controls that use topic maps as a way for editors to better organise the content they work with.
  • Classification of Content
    Seamless integration with EPiServer Edit Mode
    Dynamically generated UI from topic map schema.
    AJAX driven responsive and performant.
    Intuitive and clear.
  • Classification of Content
    Schema-driven editor provides the editor only with valid choices.
    Information about linked, or potentially linked topics on screen.
  • Building Sites with Topics
  • Development Aids - Overview
    Simple to use API
    Usable from all CLR languages
    Web Services based
    Many examples (demo site is open source)
    ASP.NET Compatibility
    Data bound controls (Repeater, DataList and DataSet)
    Faceted Search & Tag Cloud Web Parts
    Provides hooks for pre- and post- processing of editorial options.
    Apply extra filters or bespoke queries.
  • Development Aids – Documentation
  • Development Aids – Simple API
    Set up a simple ASP.NET Repeater control:
    <asp:repeaterrunat="server" id="OrgUnitLedRepeater">
    <separatortemplate>, </separatortemplate>
    <itemtemplate>
    <a href='<%# DataBinder.Eval(Container.DataItem, "pageLinkURL") %>'>
    <%#DataBinder.Eval(Container.DataItem, "pageName") %></a>
    </itemtemplate>
    </asp:repeater>
    • Use the API to bind all the related topics to the control:
    • According to association type and role played
    BindOneHopToRepeater(
    this.OrgUnitLedRepeater,
    "http://example.org/association/personLeadsUnit",
    "http://example.org/role/leader");