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

Reply via email to