370 likes | 497 Views
This case study, led by David Price, explores an instance of annotation management within a large Content Management System (CMS). It delves into the practical applications of annotating XML content, discussing resource and time investment, as well as lessons learned during development. This includes an overview of annotation as metadata, the significance of managing it within versioned environments, and the benefits XML offers for structuring content. The project faced challenges in integrating annotation management with existing workflows but ultimately delivered a successful implementation ahead of schedule and under budget.
E N D
Annotation Management in an XML CMS A Case Study
Who is this guy? • David Price • Consultant for Isogen International, LLC • Technical lead on this project • Experienced in content management system implementation, customization, and tool integration • Focused on implementations and practical applications
Presentation Goals • To describe an instance of annotation management within a large CMS • Demonstrate what can be done with annotating XML, and how • To show what it took us, resource and time-wise, to implement it • To present lessons that were learned in the development process
What is an annotation? • Annotations are a kind of metadata with three distinguishing characteristics: • Fine granularity • Created and viewed outside the normal authoring process • Stored and managed separately from the annotated content
Why manage annotations? • Changing / Versioned content • Access Controls • Speed • Special Applications
What does this have to do with XML? • XML lends itself particularly well to annotation for several reasons: • Structured content • Human-readable, machine parsable • Existing linking technologies • Broad tool set • The system as built exploits these properties
System Requirements • A tool for reviewers to add annotations to content over the web • A tool for authors to read and respond to annotations made by reviewers • Integration of both tools with process workflow
Annotation must work in a versioned environment • Limited time frame and resources
Environment • Documentum 4i / Oracle as a CMS • Arbortext Epic 4.2 as an editor • iPlanet 4 as a web application server • Custom link management solution
Language • Java was decided on as the language of choice for three reasons: • Familiarity with the language • Available APIs and a Java-friendly environment • Availability of Java XML tools
Difficulties In this case, there were only two difficult problems: • Managing the relationship between annotations and content • Integrating annotation management with workflow
Linking == Annotation • Any content that is linkable can be annotated • Annotation has all of the problems associated with link management
<task name=“blah” objectId=“AGXxF192rU”> <step objectId=“G9fc83UIcD13”> <para>Blah! Blah blah blah blha blhab</para> </step> <step objectId=“889GkwlE9”> <para>BLAH! BLAH!</para> </step> </task> Annotation
Architecture & Implementation Annotation Manager Core Annotation Manager GUI Annotation Manager Web
Annotation Manager Core • Handles the creation, deletion, modification, and querying of annotations • Consists of abstract classes, interfaces, and specific implementations • Abstraction of the core was intended to allow multiple back-end implementations, but was only partially successful • Poor integration of workflow damaged the abstraction
Web Interfaces • A set of Java Servlets that allow access to the annotation manager • Provides a web interface to the core components, along with basic access controls • Includes a SAX application to transform XML documents within the system into reviewer-friendly HTML on the fly, including transclusions
Java Interfaces • A Java Swing application with some Epic-specific customizations • Allowed authors to search for and view annotations on the document currently being edited • Did not permit editing of the annotation beyond workflow state changes
Project Timeline • Project began in Mid-September, 2001 • System was substantially complete by mid-October • First client review – 17 October 2001 • Second client review – 9 November 2001 • Code Complete – 19 November 2001 • Installed at the client site one week later
Implementation • Project started in mid September of 2001 • Two core team members, with a third programmer being brought in to write the SAX portion of the web interface
Work was started simultaneously on the Core components and web interfaces. • Once the core interfaces were defined, an initial implementation based on MS Access was built, which was used for testing while the Documentum implementation was still in progress • A significant amount of this time was devoted to learning the APIs needed to access the CMS
Successes • Completed two weeks ahead of schedule • Completed under budget • Customer was satisfied with product and used it for the duration of the project
Failures • Code reusability • User interface look and feel • Extensibility of system • Use of SAX for dynamic rendering of documents • Workflow interaction too rigid
Improvements / Extensions • Refactor code for re-use and multiple databases • Abstract workflow • Use XML for annotation content as well • Improve user interface • Use a more agile development process
Conclusions • Adding a customized annotation solution to a CMS is not necessarily a difficult task • If a linking solution is in place, the main work of an annotation system is done. Creating an annotation system means creating a link manager • More customer interaction is better • Workflow might not be as trivial as it seems
Questions & Contact Info David Price davidp@isogen.com +1 214.954.5107