Hi Anca, On Thu, Oct 15, 2009 at 9:07 PM, Anca Luca <[email protected]> wrote:
> Hi Guillaume, > > Guillaume Lerouge wrote: > > Hi Anca, > > > > On Wed, Oct 14, 2009 at 10:03 PM, Anca Luca <[email protected] > >wrote: > > > >> Hello devs, > >> > >> The current state of the annotation feature in the sandbox can be > described > >> by > >> the following: > >> * 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. > >> > > > > I'm not sure I understand this one well. What exactly do you mean by > > "different types of annotations"? From what I understand right now, this > > means the following: > > > > 1. I select text and choose to annotate it > > 2. I select custom properties for my annotation (let's say additional > > "city" & "country" fields) > > 3. I fill in those fields and save the annotation > > 4. My annotation is saved with those custom fields > > > > If this is correct, I'm a bit afraid this will bring un-needed complexity > > both to the UI and the backend implementation. From what I understood so > far > > it looks a bit like having the XClass editor each time ones creates a new > > annotation -> isn't that overkill? > > > > An alternative solution I was thinking about was to use only 1 field with > a > > semantic syntax & autosuggest (something like: @city:Paris > @country:France). > > Is that a possible option? Or maybe it doesn't make sense in the context > or > > your work? > > > > Yet another option would be to offer a number of already configured types > to > > select from in a list when adding a new annotation. > > Not exactly. > The idea was that an admin or a wiki programmer could configure the > annotation > application (such as setting an XWiki class as the annotation type) and > then > whenever a user adds an annotation, he will get, in the annotation > "bubble", a > form to edit an object from that class. Right now, to do that, you'd need > to > write a few java components & rewrite the js client. The idea is to have > that > easily configurable, "scriptable" from the wiki. > Ok, thanks for the clarification :-) Sounds good to me since it's not too complex for users but at the same time addresses Scribo's needs (if I understood those correctly). > >> * 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. > >> > > > > Sounds good. > > > > 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 > >> > > > > Do you plan on using GWT to achieve this? If not, what's the best way to > > code it in a cross-browser, maintainable way? Using one of the JS library > > already embedded in XWiki such as Prototype I guess? > > I don't have a plan. > Good luck. > >> - 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. > >> > > > > Plugin or component? (maybe this is the same thing under a different > name) > > Application with server side code, I don't know exactly how this would be > called. > > > > > *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.) > >> > > > > My personal point of view is that being able to annotate any part of a > XWiki > > document is more important than being able to configure the type of > > annotation to add. Is there a hard requirement on the order from the > Scribo > > research project on this? > > No, it's not atm afaik, although Scribo could be implemented like that > (Scribo > annotations are structured, not only a piece of text, even if > "serializable" as > a text). > > Actually this point is supposed to be an iteration in both directions (not > only > about typed annotations leaving behind the second requirement), and for the > annotation target I specified > > >> and one should easily set a field in a > >> structured document which would support annotations. > Ok. Sounds good given your above explanation about annotation definition in a XClass. Guillaume > >> * 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 > >> > > > > I guess that will depend on its quality by this time. I think it would be > a > > great addition to XE's default feature set. > > > > *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? > >> > > > > I think this can become a key differentiating feature of XWiki since I'm > not > > aware of any wiki that has them implemented yet. MS Word's annotation > system > > is widely used and I think XWiki annotation would resonate positively > with > > XWiki users coming from such text editors. > > > > 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), > >> > > > > :-) > > Thanks, > Anca > > > > > Guillaume > > > > > >> 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 > -- Guillaume Lerouge Product Manager - XWiki SAS Skype: wikibc Twitter: glerouge http://guillaumelerouge.com/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

