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. 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

