Hi Eddie,

sorry, I fixed that error. It was a problem with the path in UIMACPP_HOME.

The error I get is:

Caused by: org.apache.uima.uimacpp.UimacppException: null;
        org.apache.uima.uimacpp.InternalTafException:
Error number  : 1005
Recoverable   : No
Error         : : typeSystemInit() Error getting Type objects
 (1005)
at org.apache.uima.uimacpp.UimacppEngine.throwJTafException(UimacppEngine.java:499) at org.apache.uima.uimacpp.UimacppEngine.initialize(UimacppEngine.java:262) at org.apache.uima.uimacpp.UimacppEngine.createJTafTAE(UimacppEngine.java:226) at org.apache.uima.uimacpp.UimacppAnalysisComponent.initialize(UimacppAnalysisComponent.java:152)
        ... 23 more


As I told you in a previous mail, I implemented the component in C++, created the proper descriptor file for a C++ component. Then, I created a UIMA Java Eclipse project, and I generated the Type System Definition by clicking on JCasGen button in Type System tab of the Component Descriptor. Next, I generated the pear from this Eclipse Java project, installed it and run the pipeline with the C++ component together with other Java UIMA components.

Regards,
David

El 12/08/2010 10:23, David García escribió:
   Hi Eddie,

you were right. Now the C++ component is being used by the UIMA pipeline.

Now, when I launch the UIMA pipeline, I still get a
ResourceInitializationException. The message reads:

java.lang.UnsatisfiedLinkError: no uima in java.library.path

Eventually, I have tested the component by implementing it in Java and
reducing its functionality, in order to check if the descriptor was
causing this error.
In Java it works right, but, I got this very same error when, adapting
the descriptor file to Java, I forgot to change tag
<frameworkImplementation>org.apache.uima.cpp</frameworkImplementation>
to
<annotatorImplementationName>org.barcelonamedia.uima.DeSRAnnotator</annotatorImplementationName>


Regards,
David

El 10/08/2010 13:51, Eddie Epstein escribió:
Hi David,

The LD_LIBRARY_PATH should only include directories, not specific
files. Try removing DeSR.so from the path.

Eddie


On Tue, Aug 10, 2010 at 5:37 AM, David García
<david.garc...@barcelonamedia.org>   wrote:
   Hi,

testing the C++ UIMA annotator I implemented in a UIMA pipeline with other
Java UIMA components, I got following error, caused by a
ResourceInitializationException:


Caused by: org.apache.uima.uimacpp.UimacppException: null;
         org.apache.uima.uimacpp.InternalTafException:
Error number  : 2001
Recoverable   : No
Error         : Error loading annotator 'DeSR'.
'/usr/local/share/uima/pipelines/DeSR/installed_pears/DeSR/DeSR.so:
undefined symbol: _ZTVN4Tanl14MorphExtractorE'
    While      : Error loading annotator '???'. '???'
   (2001)
         at
org.apache.uima.uimacpp.UimacppEngine.throwJTafException(UimacppEngine.java:499)
         at
org.apache.uima.uimacpp.UimacppEngine.initialize(UimacppEngine.java:262)
         at
org.apache.uima.uimacpp.UimacppEngine.createJTafTAE(UimacppEngine.java:226)
         at
org.apache.uima.uimacpp.UimacppAnalysisComponent.initialize(UimacppAnalysisComponent.java:152)


I have setted all the environment variables required by UIMA SDK:

export UIMACPP_HOME=/home/d/uimacpp/uimacpp
export PATH=$PATH:$UIMACPP_HOME/bin
export LD_LIBRARY_PATH=$UIMACPP_HOME/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/share/uima/pipelines/DeSR/installed_pears/DeSR/DeSR.so


It seems the UIMA pipeline can't load the C++ component. Am I doing anything
wrong?


Regards,
David

El 06/08/2010 13:24, Eddie Epstein escribió:
Hi David,

A C++ annotator is intended to be fully interoperable with those
written in Java. That is, it can access feature structures found in
the CAS and create new FS in the CAS. The type system of the CAS is
the superset of types defined by all annotators, including any C++
components.

So yes, you can use eclipse and integrate both java and c++ components.

Regards,
Eddie

On Fri, Aug 6, 2010 at 3:35 AM, David García
<david.garc...@barcelonamedia.org>    wrote:
   Hi Eddie,

this C++ UIMA annotator needs previous Java UIMA annotators annotations,
as
this C++ UIMA annotator needs them to work with.
But this types are implemented by means of Java classes, as these
previous
UIMA annotators are implemented in Java.
So my question is whether once I have developed this C++ UIMA annotator,
generated the dynamic library, and composed the pipeline will work.

Moreover, this C++ UIMA annotator has its own type, which should be
implemented, and I neither know if this implementation could be done in
Java
or should be in C++.

My idea is to develop the annotator in C++, and afterwards, generate its
own
type automatically from its descriptor in an Eclipse UIMA Java project.
Is
this correct?


David

El 05/08/2010 14:40, Eddie Epstein escribió:
Hi David,

Capabilities for any annotator should only declare the input types
needed by that annotator and the output types generated by that
annotator. Why would you need types from other annotators?

Eddie

On Thu, Aug 5, 2010 at 6:48 AM, David García
<david.garc...@barcelonamedia.org>      wrote:
   Hi,

I have a doubt regarding UIMA C++ annotator.
I'm developing a C++ annotator to be combined within a UIMA pipeline
with
other Java annotators. The point is this C++ annotator requires, as
input
capabilities, another Java annotator annotations.
My question is whether it is necessary to translate to C++ the input
capability types defined in Java by the ohter Java annotators, as well
as
the C++ annotator types.

My idea is to develop the C++ annotator, generating the dynamic
library,
and
afterwards, create an Eclipse UIMA project by using the proper
descriptor
for the C++ UIMA annotator. Then, in this UIMA project, include the
Java
types required for the C++ UIMA annotator as well as its own types.

Am I wrong, or would it be correct?


David

El 22/07/2010 10:02, David García escribió:
    It was version problem. Now it works.

Thank you Eddie.


David

El 21/07/2010 20:34, Eddie Epstein escribió:
Probably a mismatch between 32 and 64-bit versions.

To confirm, use the "file" command on DaveDetector.o and on
uimacpp/lib/libuima.so

UIMACPP binary packages come in both flavors for Linux, so if this is
the problem, get the other one.

One other solution if your OS is 64-bit and the uimacpp package is
32-bit: modify uimacpp/lib/base.mak to force all compiles to be
32-bit.

Regards,
Eddie

On Wed, Jul 21, 2010 at 4:00 AM, David García
<david.garc...@barcelonamedia.org>         wrote:
    Thanks for your answer Eddie. You are right, the include
of<memory>
must
be setted before "uima/api.hpp" include.

Now when I make the DaveDetector example ( make -f DaveDetector.mak
)
I
get
following error message:


/usr/bin/ld: skipping incompatible
/home/david.garcian/uimacpp/uimacpp/lib/libuima.so when searching
for
-luima
/usr/bin/ld: cannot find -luima
collect2: ld returned 1 exit status
make: *** [DaveDetector.so] Error 1


It says libuima.so is icompatible. Does it have anything to do with
the
version of Linux or gcc?


David

El 19/07/2010 15:13, Eddie Epstein escribió:
If you add the include to DaveDetector.cpp, it must be before
the include of uima/api.hpp. A better way to go would be to
put the include of<memory>           into
lowlevel_internal_indexes.hpp

Eddie


On Mon, Jul 19, 2010 at 3:01 AM, David García
<david.garc...@barcelonamedia.org>           wrote:
    Hi Eddie,

I have tried adding "#include<memory>", but I've got the same
error
message.

I've also tried using gcc version 4.3.4 and I've also got the same
error.

Regards,
David

El 16/07/2010 19:44, Eddie Epstein escribió:
Hi David,

More recent versions of g++ are always getting stricter.
Try adding
#include<memory>
to DaveDetector.cpp.

A goal for uimacpp annotators is that they be portable, meaning
that
the annotator code and any non-standard dependencies could be
packaged
together, and installed anyplace on a target system.
LD_LIBRARY_PATH
is very useful for this.

The alternative is to install uimacpp and it's dependencies in
some
standard system directory, but this would require root access.

Regards,
Eddie

On Thu, Jul 15, 2010 at 8:04 AM, David García
<david.garc...@barcelonamedia.org>             wrote:
    Hi all,

I am trying to use uimacpp, Linux version, but I have got
problems
making
C++ examples.
I follow README instructions, and when I do:

make -f DaveDetector.mak

I get following error:

/uimacpp/include/uima/lowlevel_internal_indexes.hpp: In member
function
‘virtual void




uima::lowlevel::internal::CachedCompositeIndex<T>::clearAndFillCache()’:
/uimacpp/include/uima/lowlevel_internal_indexes.hpp:348: error:
‘auto_ptr’
was not declared in this scope
/uimacpp/include/uima/lowlevel_internal_indexes.hpp:348: error:
expected
primary-expression before ‘>’ token
/uimacpp/include/uima/lowlevel_internal_indexes.hpp:348: error:
there
are
no
arguments to ‘apit’ that depend on a template parameter, so a
declaration
of
‘apit’ must be available
/uimacpp/include/uima/lowlevel_internal_indexes.hpp:348: note:
(if
you
use
‘-fpermissive’, G++ will accept your code, but allowing the use
of
an
undeclared name is deprecated)
/uimacpp/include/uima/lowlevel_internal_indexes.hpp:349: error:
‘apit’
was
not declared in this scope
make: *** [DaveDetector.o] Error 1


I am using gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9).


Am I doing something wrong?
I have also found that it is not a good practise to use
LD_LIBRARY_PATH
env
variable. Is this correct?


Thanks in advanced,

David

Reply via email to