On 10/16/2009 10:13 AM, Vincent Massol wrote: > > 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.
Of course we're using components, annotation feature is all based on that as we speak. "Plugin" was a general way of referring an XWiki application with a wiki part (a .xar) and one (or several) server side parts (written as components of course). Thanks, Anca > > 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 _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

