Hi Anca, On Fri, Oct 16, 2009 at 10:54 AM, Anca Luca <[email protected]>wrote:
> On 10/16/2009 10:44 AM, Guillaume Lerouge wrote: > > 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). > > > > Well, users shouldn't really be aware of the fact that the annotation type > if > flexible, they should get a nice form allowing them to fill in data about > an > annotation. This annotation typing should allow programmers to set up their > wiki-specific types. > > Anca > > > > >>>> * 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. > > The only problem with GWT is that the javascript is not editable right > away: it > goes through compilation (so the source itself is not the "executable" > anymore, > as in standard interpreted languages which js is) whereas a jsx, for > example, is > editable from the wiki. Again, an admin / programmer in a wiki could go in > and > tweak some js without access to the server fs, or a GWT compiler, or > downloading > sources, or etc. > > However, the main advantage of GWT is its cross-browser-ness, the precious > selection API we have and easy development in the more "stable" Java. > Is there a way to have GWT retrieve values for some CSS properties from XObjects? For instance, is the GWT-based UI could retrieve its CSS color codes from a ColorTheme object it would allow you to code in GWT while still giving the wiki admin some control over the annotations' look. Is that doable? Guillaume I don't have a clear opinion about this yet, > WDYT? > > Thanks, > Anca > > > > > > >>>> - 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 > >> > > > > > > > _______________________________________________ > 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

