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.


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


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

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


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

:-)

Guillaume


> Anca
> _______________________________________________
> 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

Reply via email to