On Oct 15, 2009, at 9:08 PM, Anca Luca wrote: > Vincent Massol wrote: >> On Oct 14, 2009, at 10:03 PM, Anca Luca wrote: >> >>> Hello devs, >>> >>> The current state of the annotation feature in the sandbox can be >>> described by >>> the follwing: >>> * there is a single type of annotation which can be added, using a >>> specific >>> javascript client backed by a rest service. Such an annotation >>> contains an >>> annotation text, the annotated content and its position and this >>> type is highly >>> coupled in the plugin implementation >>> * the backing annotation storage is based on components, currently >>> with an XWiki >>> objects implementation but a different service can be easily created >>> (there is >>> one implemented for Scribo annotations stored in RDF) >>> * for the moment, only xwiki documents and feed entries fetched by >>> the >>> feedreader plugin can be used as targets for annotations (the >>> annotated >>> documents), with the restriction that the content of the document is >>> *not* >>> generated using scripting. A component can be implemented for a new >>> type of >>> document but the current UI (the javascript client) is *specific to >>> xwiki documents* >>> * the javascript client (UI) is only in the state of a prototype: >>> while proving >>> that it works, it is not robust enough and the user experience is >>> poor >>> * annotation creation algorithm seems to perform well in practice, >>> but we should >>> put it to more real-world test (by releasing). >>> >>> Some *requirements* in terms of functionality, in order to make this >>> an >>> extensible and flexible feature, would be to: >>> * be able to have different types of annotations (one to be able to >>> easily >>> specify fields for the annotations to add), with storage as xwiki >>> objects. This >>> needs to be flexible at all levels: UI and storage backend, >>> preferably using >>> xwiki scripting (no jars on the server side, or java coding) so that >>> it can be >>> easily customized. Also, the annotation UI should be thought of as >>> easy to >>> customize and create whatever forms and actions in a light manner. >>> * be able to annotate any type of document (object inside such a >>> document), >>> namely all or any number of text fields in such an object. >>> Preferably this >>> should also be doable only using xwiki scripting or configuration. >>> >>> I would like to propose the following road to perfect this feature: >>> *Version 1.0* (somewhere in the timeframe of XE 2.1 RCs) >>> The aim would be to take feature out of sandbox preserving its >>> current features: >>> allowing to add a specific type of annotation saved as XWiki object >>> on a >>> regular, non scripted XWiki Document. We should: >>> - format, improve comments, generally clean up the current code >>> sandbox to match >>> XWiki coding styles >>> - refactor packages and components to remove some dependencies >>> issues and >>> increase flexibility >>> - simplify flow, stripping out all code which is not strictly needed >>> by the >>> targeted functionality (such as the Feed entry handling code), and >>> make it >>> easily implementable by a component in a distinct jar (so that the >>> Scribo >>> requirements currently implemented can be preserved) >>> - finish the javascript client: robust user interaction, intuitive >>> interface, >>> cleaned up integration with XE >>> - ensure quality assurance process by a well setup battery of tests, >>> unit and >>> functional >>> At this point I propose to have the annotation feature as an >>> installable plugin >>> but not included by default in XE, unless after a few bugfixing >>> cycles. >> >> Sounds good. What do you miss to make it use the "new" architecture >> fully? > > Hi Vincent, > I don't think I fully understand what you mean. Can you rephrase, > please?
I meant using components and not plugins. Thanks -Vincent > > Thanks, > Anca > >> >> Thanks >> -Vincent >> >>> *Version 1.1* (somwhere in the timeframe of XE 2.2, at the beginning >>> of next year) >>> * first iteration on the 2 desired features. At this point one >>> should be able to >>> configure the type of annotation to add, UI should be accomodate >>> this type, >>> backing XWiki storage should be easy to integrate with any >>> annotation storage >>> service (for Scribo requirements), and one should easily set a field >>> in a >>> structured document which would support annotations. (Note that this >>> might >>> require heavy rewrite / refactor of the 1.0 version. We could decide >>> to skip it >>> and go straight to this version, but it would take longer.) >>> * integration of Scribo requirements can be met at this point by >>> setting the >>> configurations according to the Scribo annotation type and target >>> requirements. >>> At this point, if we find appropriate, we could make the decision of >>> including >>> the annotation feature in XE by default >>> >>> *Version 1.2* (future) >>> * finish the 2 requirements, integration with Scribo would be done >>> in the same >>> manner, by specific configuration and storage backend specific >>> implementation. >>> >>> What do you think? >>> >>> For the moment I will focus on version 1's tasks while finding a >>> good >>> architecture to achieve the desired requirements, converting, where >>> necessary, >>> the direction of the development towards that goal. >>> >>> Thanks (for reading this very long mail), >>> Anca _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

