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

Reply via email to