370 likes | 486 Views
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
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