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.

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

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

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

Reply via email to