openoffice-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yi <>
Subject Re:Re: [Call-for-Review] code changes for more powerful smarttag extensions
Date Thu, 14 Mar 2013 12:02:14 GMT
What I mean isthatI would liketo participate in development of this extension

At 2013-03-13 22:33:43,"Jürgen Schmidt" <> wrote:
>On 3/13/13 3:04 PM, 2 wrote:
>> Hi,  this is a wonderful extension, I would like to take a look, how can I get it?
>you can't get the extension at the moment and it would not help you. The
>extension works only with a server backend and/or a valid account.
>And I think the extension is still under development...
>> 在 2013-03-13 21:30:26,"Jürgen Schmidt" <> 写道:
>>> On 2/7/13 5:30 PM, Jürgen Schmidt wrote:
>>>> On 2/7/13 5:08 PM, Kai Labusch wrote:
>>>>> Hi everyone,
>>>>> I'm a colleague of Robert Barbey at Acrolinx and I'm working on the OpenOffice

>>>>> Writer integration of our client-server text-processing solution.
>>>>> Currently, we already have a working writer extension that has been 
>>>>> implemented in java and provides the functionality we need. 
>>>>> For the implementation, we had to modify the AOO sources and add/change
>>>>> API-functions/interfaces.
>>>>> Robert already posted a call-for-review for a modification of the 
>>>>> XSmartTagRecognizer interface ("[Call-for-Review] Extension to 
>>>>> XSmartTagRecognizer interface", 
>>>>> We modified this
>>>>> request according to suggestions of Ariel and Jürgen and submitted a
new patch 
>>>>> request that is also mentioned in this post.
>>>>> During development of our writer extension we stumbled on a number of
>>>>> where we felt the need to modify something within AOO. 
>>>>> The purpose of this post is to provide a summary of these changes and
to ask 
>>>>> for comments and input since there might be better ways to solve the
>>>>> we had without the need to change something within AOO.
>>>>> We splitted all the modifications in five different patch-sets where
>>>>> patch-set contains a number of changes that belong to a common aspect.
>>>>> We submitted the patch-sets via bugzilla and I will refer to them in
this post 
>>>>> later on.
>>>>> First, as a motivation, I would like to describe the most important aspects
>>>>> what our writer extension does:
>>>>> The extension adds a toolbar and menu to the writer application. The
menu and 
>>>>> toolbar have a "check"-button/entry that can be used in order to 
>>>>> simultaneously check the document for different types of issues.
>>>>> Among others, issues can be:
>>>>> - spelling errors
>>>>> - grammar errors
>>>>> - style rules (like "Don't use Future tense", "Don't use passive voice")
>>>>> - reuse (use a different/better phrase that already has been approved
due to 
>>>>> some reason)
>>>>> - terminology (use a different word)
>>>>> - sentence break missing
>>>>> - broken link
>>>>> - sentence too long
>>>>> - wrong capitalization
>>>>> If the user clicks the check-button, the writer extension would extract
>>>>> text of the document and send it to a server application. 
>>>>> The server application performs a linguistic analysis of the document
>>>>> creates a report of all issues that have been identified. 
>>>>> The writer extension then receives the report and marks the issues within
>>>>> writer document. 
>>>>> For each issue, a smarttag is shown where its type is depicted by the
color of 
>>>>> the smarttag line (colors can be configured, for instance: spelling ->
>>>>> grammar -> blue,  style-> green ...). 
>>>>> The extension does not only send the text of the document to the linguistic

>>>>> server but also context information like character-style,  paragraph-style,

>>>>> font-type. The linguistic rules within the server application are context

>>>>> sensitive, i.e., they might behave differently  depending on the context
of a 
>>>>> particular part of the text (for instance different capitalization in
>>>>> Furthermore, they are also  context sensitive with respect to the surrounding

>>>>> text, i.e., it is not sufficient to consider only one or two words (for

>>>>> instance "sentence too long"). The context can be quite large since the
>>>>> can be configured so that certain document structures (entire paragraphs,

>>>>> footnotes, image captions...)  are considered as parenthetic elements
>>>>> are removed from the normal text-flow or completely ignored. Since the
>>>>> of the checking process can depend on the entire document, it is not
>>>>> to perform the check based on a part of the text as it is done in some

>>>>> proofreading APIs.
>>>>> Due to the reasons mentioned above, it is neccessary that the smarttag

>>>>> extension can globally identify and localize a particular part of the
>>>>> within the entire document. Therefore, we felt the need to introduce
a new 
>>>>> interface "XRangeBasedSmartTagRecognizer" that can be optionally implemented

>>>>> in a smarttag extension. The smarttag manager inside AOO would check
if a 
>>>>> smarttag recognizer implements this additional interface. If the interface
>>>>> been implemented, the smarttag manager would call "recognizeTextRange"
>>>>> provides a globally identifiable text range to the recognizer 
>>>>> ( 
>>>>> To enable the marking of text by means of such a text-range, we extended
>>>>> XTextMarkup interface (

>>>>> To make colored smarttags possible, we felt the need to modify SwWrongArea
>>>>> the lcl_DrawWrongListData function within the AOO sources 
>>>>> ( 
>>>>> If the user clicks on a smarttag, he/she gets a context menu that offers

>>>>> actions to improve the document. What these actions are depends on the
>>>>> and context of the marked part of the text. Depending on the type of
issue and 
>>>>> the actual issue itself the number of actions might vary.
>>>>> In order to make this possible, we felt the need to modify the XSmartTagAction

>>>>> interface (
>>>>> If the user applies some action to the document, the action could invalidate

>>>>> other smartags at different locations in the document. For instance,
the begin 
>>>>> and the end of a sentence is marked as a result of a "sentence too long"-
>>>>> issue. If the users chooses the "ignore"-action of the begin-smarttag,
>>>>> corresponding end-smarttag would be removed too. Furthermore, the menu
>>>>> toolbar have buttons/entries to hide/show the smarttags that are related
>>>>> our extension. Therefore, we added a new interface "XMarkingAccess" that
>>>>> implemented by SwXTextCursor and can be used in order to invalidate and

>>>>> repaint/remove/recolor the smartags within a particular text-range 
>>>>> ( 
>>>>> We would like to present our modifications to the community since we
>>>>> that they might add desirable functionality to AOO that enables the 
>>>>> implementation of more powerful smarttag-extensions that could not be
>>>>> before. 
>>>>> Here at Acrolinx, we have set up an AOO build environment for 
>>>>> Windows/Linux/OSX which provides us with a patched AOO that can already
>>>>> used together with our software. In the long run, we would like to integrate

>>>>> our software into a standard version of AOO.
>>>>> I'm looking forward to your comments and criticism.
>>>>> Best regards,
>>>>> Kai Labusch
>>>> just to let you know that I will take a look on it later, it seems I
>>>> will need a few minutes ...
>>>> But I appreciate that you take our concerns serious and reworked on your
>>>> patch. Your extension will be definitely useful.
>>> sorry for the delay but I have taken a look on it now and I am in
>>> general fine with the patch. By the way Kai send me off-list a combined
>>> patch for all issues that I have applied locally and tested.
>>> I found a few things that I had to correct.
>>> - a missing include of XInterface in the new IDL XMarkingAccess.idl, IDL
>>> compile error on Mac, surprising that it worked for you
>>> - checking if xPropertyBag is valid in wrong.hxx because my Java Test
>>> SmartTag insert a null interface for XStringKeyMap
>>> The interface name "XMarkingAccess" and the method name
>>> "invalidateMarkings" sounds somewhat strange but I have to confess that
>>> I don't have a much better name in place. Maybe somebody else has a good
>>> name in mind?
>>> My Test SmartTag implementation worked quite well after I have made 2
>>> minor changes
>>> - adapt the changed method name: commitTextMarkup -> commitStringMarkup
>>> - add new additional parameter XStringKeyMap to method
>>> XSmartTagAction.getActionCount(...)
>>> If nobody raised further concerns or come up with a better name for the
>>> new interface XMarkingAccess I plan to integrate it later this week.
>>> @Kai, I hope we will see more from you and you will make use of the
>>> opportunity to enhance/extend an open source program with general new
>>> features to make use of them later on in your own extension. But others
>>> can benefit from the new enhancements as well. Or you help us to fix
>>> issues that prevent you from using AOO. I think this exactly is the key
>>> of open source and our opportunity to build an eco system around
>>> OpenOffice. It must be possible to add value on top of or to AOO
>>> (proprietary or free) to open further business opportunities. In your
>>> case it is to make AOO ready for enterprises to use your powerful,
>>> professional proof reading software (more than a grammar checker). I
>>> think this is a very nice example and I am looking forward to further
>>> contributions from you.
>>> Once it is integrated I would like to write a blog entry about it
>>> together with you to make this more visible. It is exactly what AOO
>>> needs to grow effectively.
>>> And more general we should blog about all new features, important bug
>>> fixes, etc that somebody brings in the office. We should blog about all
>>> the good things we are doing, the logo contest, the QA, the translation ...
>>> Juergen
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail:
>>> For additional commands, e-mail:
>To unsubscribe, e-mail:
>For additional commands, e-mail:
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message