You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by harshal patni <pa...@gmail.com> on 2013/05/21 08:49:06 UTC

Concept Mapper in code

Hello Everyone,
                   I am currently writing ConceptMapper in code (not using
XML files). Basically I am definitely AnalysisEngineDescriptions and
TypeSystem Description in java code. I create the following 2 parameters
using "ConfigurationParameter" class.

   1. AttributeList
   2. FeatureList

The problem is both these should be arrays. But ConfigurationParameter only
provide the  following types (String, Boolean, Integer, Float). When I pass
these values as string it fails and throws a java.lang.ClassCastException
error. COz it expects an array vs a String.  How should I solve this issue?
Below is the AnalysisEngineDescription code.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

primitiveDesc = new AnalysisEngineDescription_impl();

 primitiveDesc.setPrimitive(true);

 primitiveDesc.getMetaData().setName("Concept Mapper Offset Tokenizer");

 primitiveDesc.setAnnotatorImplementationName(
"org.apache.uima.conceptMapper.ConceptMapper");



 ConfigurationParameter p1 = new ConfigurationParameter_impl();

 p1.setName("AttributeList");

 p1.setDescription("Attribute List");

 p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the problem

 ConfigurationParameter p2 = new ConfigurationParameter_impl();

 p2.setName("FeatureList");

 p2.setDescription("Feature List");

 p2.setType(ConfigurationParameter.TYPE_STRING);


primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
new ConfigurationParameter[] { p1,p2 });


primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
new NameValuePair[] { new NameValuePair_impl("AttributeList", "canonical"),
new NameValuePair_impl("FeatureList", "DictCanon") });

       TypeSystemDescription typeSystem = new TypeSystemDescription_impl();

     dicTerm(typeSystem);

     conceptMapperTokenizer(typeSystem);

     baseTokenizer(typeSystem);

     primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Also how should I pass the dictionary file in code?


Thanks,

Harshal

Re: Concept Mapper in code

Posted by Marshall Schor <ms...@schor.com>.
I made a little test case.  To isolate things to just how array-valued
parameters are programmatically set and accessed, I used a dummy annotator from
the uimaj-examples project called the "RoomNumberAnnotator" - the version I used
has no "initialize" of its own (so it didn't do anything in its initialize method).

Then I did the following "driver" code, modelled after your code, except I only
did one parameter - the string array valued p1:

   public static void main(String[] args) throws ResourceInitializationException {

    AnalysisEngineDescription_impl primitiveDesc = new
AnalysisEngineDescription_impl();
 
    primitiveDesc.setPrimitive(true);
 
    primitiveDesc.getMetaData().setName("test of setting string array parameters");
 
   
primitiveDesc.setAnnotatorImplementationName("org.apache.uima.tutorial.ex1.RoomNumberAnnotator");
 
    ConfigurationParameter p1 = new ConfigurationParameter_impl();
   
    p1.setMultiValued(true);  // needed to have this parameter take an array of
values
 
    p1.setName("AttributeList");
 
    p1.setDescription("Attribute List");
 
    p1.setType(ConfigurationParameter.TYPE_STRING); // This specifies the type
of each element of the array
   
   
primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
        new ConfigurationParameter[] { p1 });

    // This sets the configuration parameter to a value which is an array of
Strings, "v1" and "v2"
   
primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
       new NameValuePair[] {
           new NameValuePair_impl("AttributeList", new String[] {"v1", "v2"})} );

    TypeSystemDescription typeSystem = new TypeSystemDescription_impl();

    primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
   
    // For testing - make an UIMA Analysis Engine from this specification
    AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(primitiveDesc);
   
    // Get the UIMA Context from where we can try getting the configuration
parameter settings
    UimaContext context = ae.getUimaContext();
   
    // Get the configured value
    Object v = context.getConfigParameterValue("AttributeList");
   
    System.out.format("Type of object returned is %s, object is %s%n",
v.getClass(), v) ;
   
    // print out the individual strings in the array
    String[] av = (String[]) v;
   
    System.out.format("The two values are %s and %s%n", av[0], av[1]);
  }

I ran this and it printed out:

Type of object returned is class [Ljava.lang.String;, object is
[Ljava.lang.String;@45a36ab6
The two values are v1 and v2.

No errors were thrown.

Hope that example helps.

-Marshall

On 5/22/2013 11:08 AM, harshal patni wrote:
> Yes I did! When I do that it throws the following error -
> It throws a cast error stating Type String cannot be converted to String
> array.
>
> Harshal
>
>
> On Wed, May 22, 2013 at 8:03 PM, Marshall Schor <ms...@schor.com> wrote:
>
>> did you have the multi-values setting turned on in the parameter
>> specification?
>>
>>
>> On 5/22/2013 10:15 AM, harshal patni wrote:
>>> Hi Marshall,
>>>                 Thank you for your response. Yes I tried setting and
>> array
>>> as a second argument of NameValuePair_Impl. However it throws an error
>>> since the setType() has only 4 options (String, Boolean, Float,
>> Integer). I
>>> had to set it to string forcibly, coz if I dont UIMA by default sets it
>> to
>>> NULL which again causes an error.
>>>
>>> Harshal
>>>
>>>
>>> On Wed, May 22, 2013 at 7:33 PM, Marshall Schor <ms...@schor.com> wrote:
>>>
>>>> most likely this is a problem in building the parameter setting.
>>>>
>>>> I did one of these using the Eclipse editor for UIMA XML files, and
>> looked
>>>> at
>>>> what it generated as the setting:
>>>>
>>>>     <configurationParameterSettings>
>>>>       <nameValuePair>
>>>>         <name>astringarray</name>
>>>>         <value>
>>>>           <array>
>>>>             <string>x1</string>
>>>>             <string>x2</string>
>>>>           </array>
>>>>         </value>
>>>>       </nameValuePair>
>>>>     </configurationParameterSettings>
>>>>
>>>> Have you tried creating NameValuePair_impl instances, with arrays as the
>>>> 2nd
>>>> argument (i.e., the "value")?
>>>>
>>>> for instance:
>>>>    ... new NameValuePair_impl("AttributeList", new String[] {"value1",
>>>> "value2",
>>>> ...}) ...
>>>>
>>>> -Marshall
>>>>
>>>>
>>>> On 5/21/2013 11:34 PM, harshal patni wrote:
>>>>> Hello Himanshu,
>>>>>                        I tried setting the setMultivalues(true). The
>>>>> problem is the following -
>>>>> I use setType (String). I need to do this coz else it takes it as null.
>>>> But
>>>>> as soon as we setType(String) it throws a cast error saying string
>> cannot
>>>>> be cast to a String array. If you look at the source code of
>>>> conceptMapper
>>>>> it tried to cast in code.
>>>>>
>>>>> Hope that makes sense..
>>>>> Any idea how this could be resolved?
>>>>> Please also add code snippet to make it easier to understand.
>>>>>
>>>>> Thanks,
>>>>> Harshal
>>>>>
>>>>>
>>>>> On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
>>>>> himanshu.gahlot86@gmail.com> wrote:
>>>>>
>>>>>> Use setMultiValued()<
>>>>>>
>> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
>>>>>>> .
>>>>>> So, p1.setMultiValued() should make this config param accept multiple
>>>>>> String values.
>>>>>>
>>>>>> Himanshu
>>>>>>
>>>>>>
>>>>>> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
>>>>>> <re...@epfl.ch>wrote:
>>>>>>
>>>>>>> Hi Harshal,
>>>>>>> Have you tried UimaFit? I think it would be a better option, if you
>> do
>>>>>> not
>>>>>>> want to use XML descriptors.
>>>>>>> Hope that helps, Renaud
>>>>>>>
>>>>>>>
>>>>>>> On Tue, May 21, 2013 at 8:49 AM, harshal patni <
>>>> patni.harshal@gmail.com
>>>>>>>> wrote:
>>>>>>>> Hello Everyone,
>>>>>>>>                    I am currently writing ConceptMapper in code (not
>>>>>>> using
>>>>>>>> XML files). Basically I am definitely AnalysisEngineDescriptions and
>>>>>>>> TypeSystem Description in java code. I create the following 2
>>>>>> parameters
>>>>>>>> using "ConfigurationParameter" class.
>>>>>>>>
>>>>>>>>    1. AttributeList
>>>>>>>>    2. FeatureList
>>>>>>>>
>>>>>>>> The problem is both these should be arrays. But
>> ConfigurationParameter
>>>>>>> only
>>>>>>>> provide the  following types (String, Boolean, Integer, Float).
>> When I
>>>>>>> pass
>>>>>>>> these values as string it fails and throws a
>>>>>> java.lang.ClassCastException
>>>>>>>> error. COz it expects an array vs a String.  How should I solve this
>>>>>>> issue?
>>>>>>>> Below is the AnalysisEngineDescription code.
>>>>>>>>
>>>>>>>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>>>>>> primitiveDesc = new AnalysisEngineDescription_impl();
>>>>>>>>
>>>>>>>>  primitiveDesc.setPrimitive(true);
>>>>>>>>
>>>>>>>>  primitiveDesc.getMetaData().setName("Concept Mapper Offset
>>>>>> Tokenizer");
>>>>>>>>  primitiveDesc.setAnnotatorImplementationName(
>>>>>>>> "org.apache.uima.conceptMapper.ConceptMapper");
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  ConfigurationParameter p1 = new ConfigurationParameter_impl();
>>>>>>>>
>>>>>>>>  p1.setName("AttributeList");
>>>>>>>>
>>>>>>>>  p1.setDescription("Attribute List");
>>>>>>>>
>>>>>>>>  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the
>>>> problem
>>>>>>>>  ConfigurationParameter p2 = new ConfigurationParameter_impl();
>>>>>>>>
>>>>>>>>  p2.setName("FeatureList");
>>>>>>>>
>>>>>>>>  p2.setDescription("Feature List");
>>>>>>>>
>>>>>>>>  p2.setType(ConfigurationParameter.TYPE_STRING);
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
>>>>>>>> new ConfigurationParameter[] { p1,p2 });
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
>>>>>>>> new NameValuePair[] { new NameValuePair_impl("AttributeList",
>>>>>>> "canonical"),
>>>>>>>> new NameValuePair_impl("FeatureList", "DictCanon") });
>>>>>>>>
>>>>>>>>        TypeSystemDescription typeSystem = new
>>>>>>> TypeSystemDescription_impl();
>>>>>>>>      dicTerm(typeSystem);
>>>>>>>>
>>>>>>>>      conceptMapperTokenizer(typeSystem);
>>>>>>>>
>>>>>>>>      baseTokenizer(typeSystem);
>>>>>>>>
>>>>>>>>
>>>>>>  primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>>>>>> Also how should I pass the dictionary file in code?
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> Harshal
>>>>>>>>
>>>>>>> --
>>>>>>> Renaud Richardet
>>>>>>> Blue Brain Project  PhD candidate
>>>>>>> EPFL  Station 15
>>>>>>> CH-1015 Lausanne
>>>>>>> phone: +41-78-675-9501
>>>>>>> http://people.epfl.ch/renaud.richardet
>>>>>>>
>>
>


Re: Concept Mapper in code

Posted by Richard Eckart de Castilho <ri...@gmail.com>.
A stack-trace would be helpful.

-- Richard

Am 22.05.2013 um 17:08 schrieb harshal patni <pa...@gmail.com>:

> Yes I did! When I do that it throws the following error -
> It throws a cast error stating Type String cannot be converted to String
> array.
> 
> Harshal
> 
> 
> On Wed, May 22, 2013 at 8:03 PM, Marshall Schor <ms...@schor.com> wrote:
> 
>> did you have the multi-values setting turned on in the parameter
>> specification?
>> 
>> 
>> On 5/22/2013 10:15 AM, harshal patni wrote:
>>> Hi Marshall,
>>>                Thank you for your response. Yes I tried setting and
>> array
>>> as a second argument of NameValuePair_Impl. However it throws an error
>>> since the setType() has only 4 options (String, Boolean, Float,
>> Integer). I
>>> had to set it to string forcibly, coz if I dont UIMA by default sets it
>> to
>>> NULL which again causes an error.
>>> 
>>> Harshal
>>> 
>>> 
>>> On Wed, May 22, 2013 at 7:33 PM, Marshall Schor <ms...@schor.com> wrote:
>>> 
>>>> most likely this is a problem in building the parameter setting.
>>>> 
>>>> I did one of these using the Eclipse editor for UIMA XML files, and
>> looked
>>>> at
>>>> what it generated as the setting:
>>>> 
>>>>    <configurationParameterSettings>
>>>>      <nameValuePair>
>>>>        <name>astringarray</name>
>>>>        <value>
>>>>          <array>
>>>>            <string>x1</string>
>>>>            <string>x2</string>
>>>>          </array>
>>>>        </value>
>>>>      </nameValuePair>
>>>>    </configurationParameterSettings>
>>>> 
>>>> Have you tried creating NameValuePair_impl instances, with arrays as the
>>>> 2nd
>>>> argument (i.e., the "value")?
>>>> 
>>>> for instance:
>>>>   ... new NameValuePair_impl("AttributeList", new String[] {"value1",
>>>> "value2",
>>>> ...}) ...
>>>> 
>>>> -Marshall
>>>> 
>>>> 
>>>> On 5/21/2013 11:34 PM, harshal patni wrote:
>>>>> Hello Himanshu,
>>>>>                       I tried setting the setMultivalues(true). The
>>>>> problem is the following -
>>>>> I use setType (String). I need to do this coz else it takes it as null.
>>>> But
>>>>> as soon as we setType(String) it throws a cast error saying string
>> cannot
>>>>> be cast to a String array. If you look at the source code of
>>>> conceptMapper
>>>>> it tried to cast in code.
>>>>> 
>>>>> Hope that makes sense..
>>>>> Any idea how this could be resolved?
>>>>> Please also add code snippet to make it easier to understand.
>>>>> 
>>>>> Thanks,
>>>>> Harshal
>>>>> 
>>>>> 
>>>>> On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
>>>>> himanshu.gahlot86@gmail.com> wrote:
>>>>> 
>>>>>> Use setMultiValued()<
>>>>>> 
>>>> 
>> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
>>>>>>> .
>>>>>> So, p1.setMultiValued() should make this config param accept multiple
>>>>>> String values.
>>>>>> 
>>>>>> Himanshu
>>>>>> 
>>>>>> 
>>>>>> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
>>>>>> <re...@epfl.ch>wrote:
>>>>>> 
>>>>>>> Hi Harshal,
>>>>>>> Have you tried UimaFit? I think it would be a better option, if you
>> do
>>>>>> not
>>>>>>> want to use XML descriptors.
>>>>>>> Hope that helps, Renaud
>>>>>>> 
>>>>>>> 
>>>>>>> On Tue, May 21, 2013 at 8:49 AM, harshal patni <
>>>> patni.harshal@gmail.com
>>>>>>>> wrote:
>>>>>>>> Hello Everyone,
>>>>>>>>                   I am currently writing ConceptMapper in code (not
>>>>>>> using
>>>>>>>> XML files). Basically I am definitely AnalysisEngineDescriptions and
>>>>>>>> TypeSystem Description in java code. I create the following 2
>>>>>> parameters
>>>>>>>> using "ConfigurationParameter" class.
>>>>>>>> 
>>>>>>>>   1. AttributeList
>>>>>>>>   2. FeatureList
>>>>>>>> 
>>>>>>>> The problem is both these should be arrays. But
>> ConfigurationParameter
>>>>>>> only
>>>>>>>> provide the  following types (String, Boolean, Integer, Float).
>> When I
>>>>>>> pass
>>>>>>>> these values as string it fails and throws a
>>>>>> java.lang.ClassCastException
>>>>>>>> error. COz it expects an array vs a String.  How should I solve this
>>>>>>> issue?
>>>>>>>> Below is the AnalysisEngineDescription code.
>>>>>>>> 
>>>>>>>> 
>>>> 
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>>>>>> primitiveDesc = new AnalysisEngineDescription_impl();
>>>>>>>> 
>>>>>>>> primitiveDesc.setPrimitive(true);
>>>>>>>> 
>>>>>>>> primitiveDesc.getMetaData().setName("Concept Mapper Offset
>>>>>> Tokenizer");
>>>>>>>> primitiveDesc.setAnnotatorImplementationName(
>>>>>>>> "org.apache.uima.conceptMapper.ConceptMapper");
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> ConfigurationParameter p1 = new ConfigurationParameter_impl();
>>>>>>>> 
>>>>>>>> p1.setName("AttributeList");
>>>>>>>> 
>>>>>>>> p1.setDescription("Attribute List");
>>>>>>>> 
>>>>>>>> p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the
>>>> problem
>>>>>>>> ConfigurationParameter p2 = new ConfigurationParameter_impl();
>>>>>>>> 
>>>>>>>> p2.setName("FeatureList");
>>>>>>>> 
>>>>>>>> p2.setDescription("Feature List");
>>>>>>>> 
>>>>>>>> p2.setType(ConfigurationParameter.TYPE_STRING);
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>> 
>> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
>>>>>>>> new ConfigurationParameter[] { p1,p2 });
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>> 
>> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
>>>>>>>> new NameValuePair[] { new NameValuePair_impl("AttributeList",
>>>>>>> "canonical"),
>>>>>>>> new NameValuePair_impl("FeatureList", "DictCanon") });
>>>>>>>> 
>>>>>>>>       TypeSystemDescription typeSystem = new
>>>>>>> TypeSystemDescription_impl();
>>>>>>>>     dicTerm(typeSystem);
>>>>>>>> 
>>>>>>>>     conceptMapperTokenizer(typeSystem);
>>>>>>>> 
>>>>>>>>     baseTokenizer(typeSystem);
>>>>>>>> 
>>>>>>>> 
>>>>>> primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
>>>>>>>> 
>>>> 
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>>>>>> Also how should I pass the dictionary file in code?
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> 
>>>>>>>> Harshal
>>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Renaud Richardet
>>>>>>> Blue Brain Project  PhD candidate
>>>>>>> EPFL  Station 15
>>>>>>> CH-1015 Lausanne
>>>>>>> phone: +41-78-675-9501
>>>>>>> http://people.epfl.ch/renaud.richardet
>>>>>>> 
>> 
>> 
> 
> 
> -- 
> 
> *Harshal Patni** | *Data Architect | Zynx Health ™
> 
> 10880 Wilshire Boulevard, Suite 300 | Los Angeles, CA, 90024
> 
> Mobile : 937-760-6639| hpatni@zynx.com
> <at...@zynx.com>
> 
> <http://www.linkedin.com/in/harshalpatni> |
> <http://knoesis.wright.edu/researchers/harshal/>
> 
> www.zynxhealth.com <http://www.zynx.com/>
> 
> “*Most Interesting Vendor” 2010*
> - Healthcare Informatics


Re: Concept Mapper in code

Posted by harshal patni <pa...@gmail.com>.
Yes I did! When I do that it throws the following error -
It throws a cast error stating Type String cannot be converted to String
array.

Harshal


On Wed, May 22, 2013 at 8:03 PM, Marshall Schor <ms...@schor.com> wrote:

> did you have the multi-values setting turned on in the parameter
> specification?
>
>
> On 5/22/2013 10:15 AM, harshal patni wrote:
> > Hi Marshall,
> >                 Thank you for your response. Yes I tried setting and
> array
> > as a second argument of NameValuePair_Impl. However it throws an error
> > since the setType() has only 4 options (String, Boolean, Float,
> Integer). I
> > had to set it to string forcibly, coz if I dont UIMA by default sets it
> to
> > NULL which again causes an error.
> >
> > Harshal
> >
> >
> > On Wed, May 22, 2013 at 7:33 PM, Marshall Schor <ms...@schor.com> wrote:
> >
> >> most likely this is a problem in building the parameter setting.
> >>
> >> I did one of these using the Eclipse editor for UIMA XML files, and
> looked
> >> at
> >> what it generated as the setting:
> >>
> >>     <configurationParameterSettings>
> >>       <nameValuePair>
> >>         <name>astringarray</name>
> >>         <value>
> >>           <array>
> >>             <string>x1</string>
> >>             <string>x2</string>
> >>           </array>
> >>         </value>
> >>       </nameValuePair>
> >>     </configurationParameterSettings>
> >>
> >> Have you tried creating NameValuePair_impl instances, with arrays as the
> >> 2nd
> >> argument (i.e., the "value")?
> >>
> >> for instance:
> >>    ... new NameValuePair_impl("AttributeList", new String[] {"value1",
> >> "value2",
> >> ...}) ...
> >>
> >> -Marshall
> >>
> >>
> >> On 5/21/2013 11:34 PM, harshal patni wrote:
> >>> Hello Himanshu,
> >>>                        I tried setting the setMultivalues(true). The
> >>> problem is the following -
> >>> I use setType (String). I need to do this coz else it takes it as null.
> >> But
> >>> as soon as we setType(String) it throws a cast error saying string
> cannot
> >>> be cast to a String array. If you look at the source code of
> >> conceptMapper
> >>> it tried to cast in code.
> >>>
> >>> Hope that makes sense..
> >>> Any idea how this could be resolved?
> >>> Please also add code snippet to make it easier to understand.
> >>>
> >>> Thanks,
> >>> Harshal
> >>>
> >>>
> >>> On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
> >>> himanshu.gahlot86@gmail.com> wrote:
> >>>
> >>>> Use setMultiValued()<
> >>>>
> >>
> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
> >>>>> .
> >>>> So, p1.setMultiValued() should make this config param accept multiple
> >>>> String values.
> >>>>
> >>>> Himanshu
> >>>>
> >>>>
> >>>> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
> >>>> <re...@epfl.ch>wrote:
> >>>>
> >>>>> Hi Harshal,
> >>>>> Have you tried UimaFit? I think it would be a better option, if you
> do
> >>>> not
> >>>>> want to use XML descriptors.
> >>>>> Hope that helps, Renaud
> >>>>>
> >>>>>
> >>>>> On Tue, May 21, 2013 at 8:49 AM, harshal patni <
> >> patni.harshal@gmail.com
> >>>>>> wrote:
> >>>>>> Hello Everyone,
> >>>>>>                    I am currently writing ConceptMapper in code (not
> >>>>> using
> >>>>>> XML files). Basically I am definitely AnalysisEngineDescriptions and
> >>>>>> TypeSystem Description in java code. I create the following 2
> >>>> parameters
> >>>>>> using "ConfigurationParameter" class.
> >>>>>>
> >>>>>>    1. AttributeList
> >>>>>>    2. FeatureList
> >>>>>>
> >>>>>> The problem is both these should be arrays. But
> ConfigurationParameter
> >>>>> only
> >>>>>> provide the  following types (String, Boolean, Integer, Float).
> When I
> >>>>> pass
> >>>>>> these values as string it fails and throws a
> >>>> java.lang.ClassCastException
> >>>>>> error. COz it expects an array vs a String.  How should I solve this
> >>>>> issue?
> >>>>>> Below is the AnalysisEngineDescription code.
> >>>>>>
> >>>>>>
> >>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >>>>>> primitiveDesc = new AnalysisEngineDescription_impl();
> >>>>>>
> >>>>>>  primitiveDesc.setPrimitive(true);
> >>>>>>
> >>>>>>  primitiveDesc.getMetaData().setName("Concept Mapper Offset
> >>>> Tokenizer");
> >>>>>>  primitiveDesc.setAnnotatorImplementationName(
> >>>>>> "org.apache.uima.conceptMapper.ConceptMapper");
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>  ConfigurationParameter p1 = new ConfigurationParameter_impl();
> >>>>>>
> >>>>>>  p1.setName("AttributeList");
> >>>>>>
> >>>>>>  p1.setDescription("Attribute List");
> >>>>>>
> >>>>>>  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the
> >> problem
> >>>>>>  ConfigurationParameter p2 = new ConfigurationParameter_impl();
> >>>>>>
> >>>>>>  p2.setName("FeatureList");
> >>>>>>
> >>>>>>  p2.setDescription("Feature List");
> >>>>>>
> >>>>>>  p2.setType(ConfigurationParameter.TYPE_STRING);
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>
> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
> >>>>>> new ConfigurationParameter[] { p1,p2 });
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>
> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
> >>>>>> new NameValuePair[] { new NameValuePair_impl("AttributeList",
> >>>>> "canonical"),
> >>>>>> new NameValuePair_impl("FeatureList", "DictCanon") });
> >>>>>>
> >>>>>>        TypeSystemDescription typeSystem = new
> >>>>> TypeSystemDescription_impl();
> >>>>>>      dicTerm(typeSystem);
> >>>>>>
> >>>>>>      conceptMapperTokenizer(typeSystem);
> >>>>>>
> >>>>>>      baseTokenizer(typeSystem);
> >>>>>>
> >>>>>>
> >>>>  primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
> >>>>>>
> >>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >>>>>> Also how should I pass the dictionary file in code?
> >>>>>>
> >>>>>>
> >>>>>> Thanks,
> >>>>>>
> >>>>>> Harshal
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> Renaud Richardet
> >>>>> Blue Brain Project  PhD candidate
> >>>>> EPFL  Station 15
> >>>>> CH-1015 Lausanne
> >>>>> phone: +41-78-675-9501
> >>>>> http://people.epfl.ch/renaud.richardet
> >>>>>
>
>


-- 

*Harshal Patni** | *Data Architect | Zynx Health ™

10880 Wilshire Boulevard, Suite 300 | Los Angeles, CA, 90024

Mobile : 937-760-6639| hpatni@zynx.com
<at...@zynx.com>

<http://www.linkedin.com/in/harshalpatni> |
<http://knoesis.wright.edu/researchers/harshal/>

www.zynxhealth.com <http://www.zynx.com/>

“*Most Interesting Vendor” 2010*
- Healthcare Informatics

Re: Concept Mapper in code

Posted by Marshall Schor <ms...@schor.com>.
did you have the multi-values setting turned on in the parameter specification?


On 5/22/2013 10:15 AM, harshal patni wrote:
> Hi Marshall,
>                 Thank you for your response. Yes I tried setting and array
> as a second argument of NameValuePair_Impl. However it throws an error
> since the setType() has only 4 options (String, Boolean, Float, Integer). I
> had to set it to string forcibly, coz if I dont UIMA by default sets it to
> NULL which again causes an error.
>
> Harshal
>
>
> On Wed, May 22, 2013 at 7:33 PM, Marshall Schor <ms...@schor.com> wrote:
>
>> most likely this is a problem in building the parameter setting.
>>
>> I did one of these using the Eclipse editor for UIMA XML files, and looked
>> at
>> what it generated as the setting:
>>
>>     <configurationParameterSettings>
>>       <nameValuePair>
>>         <name>astringarray</name>
>>         <value>
>>           <array>
>>             <string>x1</string>
>>             <string>x2</string>
>>           </array>
>>         </value>
>>       </nameValuePair>
>>     </configurationParameterSettings>
>>
>> Have you tried creating NameValuePair_impl instances, with arrays as the
>> 2nd
>> argument (i.e., the "value")?
>>
>> for instance:
>>    ... new NameValuePair_impl("AttributeList", new String[] {"value1",
>> "value2",
>> ...}) ...
>>
>> -Marshall
>>
>>
>> On 5/21/2013 11:34 PM, harshal patni wrote:
>>> Hello Himanshu,
>>>                        I tried setting the setMultivalues(true). The
>>> problem is the following -
>>> I use setType (String). I need to do this coz else it takes it as null.
>> But
>>> as soon as we setType(String) it throws a cast error saying string cannot
>>> be cast to a String array. If you look at the source code of
>> conceptMapper
>>> it tried to cast in code.
>>>
>>> Hope that makes sense..
>>> Any idea how this could be resolved?
>>> Please also add code snippet to make it easier to understand.
>>>
>>> Thanks,
>>> Harshal
>>>
>>>
>>> On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
>>> himanshu.gahlot86@gmail.com> wrote:
>>>
>>>> Use setMultiValued()<
>>>>
>> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
>>>>> .
>>>> So, p1.setMultiValued() should make this config param accept multiple
>>>> String values.
>>>>
>>>> Himanshu
>>>>
>>>>
>>>> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
>>>> <re...@epfl.ch>wrote:
>>>>
>>>>> Hi Harshal,
>>>>> Have you tried UimaFit? I think it would be a better option, if you do
>>>> not
>>>>> want to use XML descriptors.
>>>>> Hope that helps, Renaud
>>>>>
>>>>>
>>>>> On Tue, May 21, 2013 at 8:49 AM, harshal patni <
>> patni.harshal@gmail.com
>>>>>> wrote:
>>>>>> Hello Everyone,
>>>>>>                    I am currently writing ConceptMapper in code (not
>>>>> using
>>>>>> XML files). Basically I am definitely AnalysisEngineDescriptions and
>>>>>> TypeSystem Description in java code. I create the following 2
>>>> parameters
>>>>>> using "ConfigurationParameter" class.
>>>>>>
>>>>>>    1. AttributeList
>>>>>>    2. FeatureList
>>>>>>
>>>>>> The problem is both these should be arrays. But ConfigurationParameter
>>>>> only
>>>>>> provide the  following types (String, Boolean, Integer, Float). When I
>>>>> pass
>>>>>> these values as string it fails and throws a
>>>> java.lang.ClassCastException
>>>>>> error. COz it expects an array vs a String.  How should I solve this
>>>>> issue?
>>>>>> Below is the AnalysisEngineDescription code.
>>>>>>
>>>>>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>>>> primitiveDesc = new AnalysisEngineDescription_impl();
>>>>>>
>>>>>>  primitiveDesc.setPrimitive(true);
>>>>>>
>>>>>>  primitiveDesc.getMetaData().setName("Concept Mapper Offset
>>>> Tokenizer");
>>>>>>  primitiveDesc.setAnnotatorImplementationName(
>>>>>> "org.apache.uima.conceptMapper.ConceptMapper");
>>>>>>
>>>>>>
>>>>>>
>>>>>>  ConfigurationParameter p1 = new ConfigurationParameter_impl();
>>>>>>
>>>>>>  p1.setName("AttributeList");
>>>>>>
>>>>>>  p1.setDescription("Attribute List");
>>>>>>
>>>>>>  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the
>> problem
>>>>>>  ConfigurationParameter p2 = new ConfigurationParameter_impl();
>>>>>>
>>>>>>  p2.setName("FeatureList");
>>>>>>
>>>>>>  p2.setDescription("Feature List");
>>>>>>
>>>>>>  p2.setType(ConfigurationParameter.TYPE_STRING);
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
>>>>>> new ConfigurationParameter[] { p1,p2 });
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
>>>>>> new NameValuePair[] { new NameValuePair_impl("AttributeList",
>>>>> "canonical"),
>>>>>> new NameValuePair_impl("FeatureList", "DictCanon") });
>>>>>>
>>>>>>        TypeSystemDescription typeSystem = new
>>>>> TypeSystemDescription_impl();
>>>>>>      dicTerm(typeSystem);
>>>>>>
>>>>>>      conceptMapperTokenizer(typeSystem);
>>>>>>
>>>>>>      baseTokenizer(typeSystem);
>>>>>>
>>>>>>
>>>>  primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
>>>>>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>>>> Also how should I pass the dictionary file in code?
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Harshal
>>>>>>
>>>>>
>>>>> --
>>>>> Renaud Richardet
>>>>> Blue Brain Project  PhD candidate
>>>>> EPFL  Station 15
>>>>> CH-1015 Lausanne
>>>>> phone: +41-78-675-9501
>>>>> http://people.epfl.ch/renaud.richardet
>>>>>


Re: Concept Mapper in code

Posted by harshal patni <pa...@gmail.com>.
Hi Marshall,
                Thank you for your response. Yes I tried setting and array
as a second argument of NameValuePair_Impl. However it throws an error
since the setType() has only 4 options (String, Boolean, Float, Integer). I
had to set it to string forcibly, coz if I dont UIMA by default sets it to
NULL which again causes an error.

Harshal


On Wed, May 22, 2013 at 7:33 PM, Marshall Schor <ms...@schor.com> wrote:

> most likely this is a problem in building the parameter setting.
>
> I did one of these using the Eclipse editor for UIMA XML files, and looked
> at
> what it generated as the setting:
>
>     <configurationParameterSettings>
>       <nameValuePair>
>         <name>astringarray</name>
>         <value>
>           <array>
>             <string>x1</string>
>             <string>x2</string>
>           </array>
>         </value>
>       </nameValuePair>
>     </configurationParameterSettings>
>
> Have you tried creating NameValuePair_impl instances, with arrays as the
> 2nd
> argument (i.e., the "value")?
>
> for instance:
>    ... new NameValuePair_impl("AttributeList", new String[] {"value1",
> "value2",
> ...}) ...
>
> -Marshall
>
>
> On 5/21/2013 11:34 PM, harshal patni wrote:
> > Hello Himanshu,
> >                        I tried setting the setMultivalues(true). The
> > problem is the following -
> > I use setType (String). I need to do this coz else it takes it as null.
> But
> > as soon as we setType(String) it throws a cast error saying string cannot
> > be cast to a String array. If you look at the source code of
> conceptMapper
> > it tried to cast in code.
> >
> > Hope that makes sense..
> > Any idea how this could be resolved?
> > Please also add code snippet to make it easier to understand.
> >
> > Thanks,
> > Harshal
> >
> >
> > On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
> > himanshu.gahlot86@gmail.com> wrote:
> >
> >> Use setMultiValued()<
> >>
> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
> >>> .
> >> So, p1.setMultiValued() should make this config param accept multiple
> >> String values.
> >>
> >> Himanshu
> >>
> >>
> >> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
> >> <re...@epfl.ch>wrote:
> >>
> >>> Hi Harshal,
> >>> Have you tried UimaFit? I think it would be a better option, if you do
> >> not
> >>> want to use XML descriptors.
> >>> Hope that helps, Renaud
> >>>
> >>>
> >>> On Tue, May 21, 2013 at 8:49 AM, harshal patni <
> patni.harshal@gmail.com
> >>>> wrote:
> >>>> Hello Everyone,
> >>>>                    I am currently writing ConceptMapper in code (not
> >>> using
> >>>> XML files). Basically I am definitely AnalysisEngineDescriptions and
> >>>> TypeSystem Description in java code. I create the following 2
> >> parameters
> >>>> using "ConfigurationParameter" class.
> >>>>
> >>>>    1. AttributeList
> >>>>    2. FeatureList
> >>>>
> >>>> The problem is both these should be arrays. But ConfigurationParameter
> >>> only
> >>>> provide the  following types (String, Boolean, Integer, Float). When I
> >>> pass
> >>>> these values as string it fails and throws a
> >> java.lang.ClassCastException
> >>>> error. COz it expects an array vs a String.  How should I solve this
> >>> issue?
> >>>> Below is the AnalysisEngineDescription code.
> >>>>
> >>>>
> >>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >>>> primitiveDesc = new AnalysisEngineDescription_impl();
> >>>>
> >>>>  primitiveDesc.setPrimitive(true);
> >>>>
> >>>>  primitiveDesc.getMetaData().setName("Concept Mapper Offset
> >> Tokenizer");
> >>>>  primitiveDesc.setAnnotatorImplementationName(
> >>>> "org.apache.uima.conceptMapper.ConceptMapper");
> >>>>
> >>>>
> >>>>
> >>>>  ConfigurationParameter p1 = new ConfigurationParameter_impl();
> >>>>
> >>>>  p1.setName("AttributeList");
> >>>>
> >>>>  p1.setDescription("Attribute List");
> >>>>
> >>>>  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the
> problem
> >>>>
> >>>>  ConfigurationParameter p2 = new ConfigurationParameter_impl();
> >>>>
> >>>>  p2.setName("FeatureList");
> >>>>
> >>>>  p2.setDescription("Feature List");
> >>>>
> >>>>  p2.setType(ConfigurationParameter.TYPE_STRING);
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
> >>>> new ConfigurationParameter[] { p1,p2 });
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
> >>>> new NameValuePair[] { new NameValuePair_impl("AttributeList",
> >>> "canonical"),
> >>>> new NameValuePair_impl("FeatureList", "DictCanon") });
> >>>>
> >>>>        TypeSystemDescription typeSystem = new
> >>> TypeSystemDescription_impl();
> >>>>      dicTerm(typeSystem);
> >>>>
> >>>>      conceptMapperTokenizer(typeSystem);
> >>>>
> >>>>      baseTokenizer(typeSystem);
> >>>>
> >>>>
> >>  primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
> >>>>
> >>>>
> >>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >>>> Also how should I pass the dictionary file in code?
> >>>>
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Harshal
> >>>>
> >>>
> >>>
> >>> --
> >>> Renaud Richardet
> >>> Blue Brain Project  PhD candidate
> >>> EPFL  Station 15
> >>> CH-1015 Lausanne
> >>> phone: +41-78-675-9501
> >>> http://people.epfl.ch/renaud.richardet
> >>>
>

Re: Concept Mapper in code

Posted by Marshall Schor <ms...@schor.com>.
most likely this is a problem in building the parameter setting.

I did one of these using the Eclipse editor for UIMA XML files, and looked at
what it generated as the setting:

    <configurationParameterSettings>
      <nameValuePair>
        <name>astringarray</name>
        <value>
          <array>
            <string>x1</string>
            <string>x2</string>
          </array>
        </value>
      </nameValuePair>
    </configurationParameterSettings>

Have you tried creating NameValuePair_impl instances, with arrays as the 2nd
argument (i.e., the "value")?

for instance:
   ... new NameValuePair_impl("AttributeList", new String[] {"value1", "value2",
...}) ...

-Marshall
 

On 5/21/2013 11:34 PM, harshal patni wrote:
> Hello Himanshu,
>                        I tried setting the setMultivalues(true). The
> problem is the following -
> I use setType (String). I need to do this coz else it takes it as null. But
> as soon as we setType(String) it throws a cast error saying string cannot
> be cast to a String array. If you look at the source code of conceptMapper
> it tried to cast in code.
>
> Hope that makes sense..
> Any idea how this could be resolved?
> Please also add code snippet to make it easier to understand.
>
> Thanks,
> Harshal
>
>
> On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
> himanshu.gahlot86@gmail.com> wrote:
>
>> Use setMultiValued()<
>> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
>>> .
>> So, p1.setMultiValued() should make this config param accept multiple
>> String values.
>>
>> Himanshu
>>
>>
>> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
>> <re...@epfl.ch>wrote:
>>
>>> Hi Harshal,
>>> Have you tried UimaFit? I think it would be a better option, if you do
>> not
>>> want to use XML descriptors.
>>> Hope that helps, Renaud
>>>
>>>
>>> On Tue, May 21, 2013 at 8:49 AM, harshal patni <patni.harshal@gmail.com
>>>> wrote:
>>>> Hello Everyone,
>>>>                    I am currently writing ConceptMapper in code (not
>>> using
>>>> XML files). Basically I am definitely AnalysisEngineDescriptions and
>>>> TypeSystem Description in java code. I create the following 2
>> parameters
>>>> using "ConfigurationParameter" class.
>>>>
>>>>    1. AttributeList
>>>>    2. FeatureList
>>>>
>>>> The problem is both these should be arrays. But ConfigurationParameter
>>> only
>>>> provide the  following types (String, Boolean, Integer, Float). When I
>>> pass
>>>> these values as string it fails and throws a
>> java.lang.ClassCastException
>>>> error. COz it expects an array vs a String.  How should I solve this
>>> issue?
>>>> Below is the AnalysisEngineDescription code.
>>>>
>>>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>> primitiveDesc = new AnalysisEngineDescription_impl();
>>>>
>>>>  primitiveDesc.setPrimitive(true);
>>>>
>>>>  primitiveDesc.getMetaData().setName("Concept Mapper Offset
>> Tokenizer");
>>>>  primitiveDesc.setAnnotatorImplementationName(
>>>> "org.apache.uima.conceptMapper.ConceptMapper");
>>>>
>>>>
>>>>
>>>>  ConfigurationParameter p1 = new ConfigurationParameter_impl();
>>>>
>>>>  p1.setName("AttributeList");
>>>>
>>>>  p1.setDescription("Attribute List");
>>>>
>>>>  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the problem
>>>>
>>>>  ConfigurationParameter p2 = new ConfigurationParameter_impl();
>>>>
>>>>  p2.setName("FeatureList");
>>>>
>>>>  p2.setDescription("Feature List");
>>>>
>>>>  p2.setType(ConfigurationParameter.TYPE_STRING);
>>>>
>>>>
>>>>
>>>>
>> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
>>>> new ConfigurationParameter[] { p1,p2 });
>>>>
>>>>
>>>>
>>>>
>> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
>>>> new NameValuePair[] { new NameValuePair_impl("AttributeList",
>>> "canonical"),
>>>> new NameValuePair_impl("FeatureList", "DictCanon") });
>>>>
>>>>        TypeSystemDescription typeSystem = new
>>> TypeSystemDescription_impl();
>>>>      dicTerm(typeSystem);
>>>>
>>>>      conceptMapperTokenizer(typeSystem);
>>>>
>>>>      baseTokenizer(typeSystem);
>>>>
>>>>
>>  primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
>>>>
>>>>
>> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>>>> Also how should I pass the dictionary file in code?
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Harshal
>>>>
>>>
>>>
>>> --
>>> Renaud Richardet
>>> Blue Brain Project  PhD candidate
>>> EPFL  Station 15
>>> CH-1015 Lausanne
>>> phone: +41-78-675-9501
>>> http://people.epfl.ch/renaud.richardet
>>>


Re: Concept Mapper in code

Posted by harshal patni <pa...@gmail.com>.
Hello Himanshu,
                       I tried setting the setMultivalues(true). The
problem is the following -
I use setType (String). I need to do this coz else it takes it as null. But
as soon as we setType(String) it throws a cast error saying string cannot
be cast to a String array. If you look at the source code of conceptMapper
it tried to cast in code.

Hope that makes sense..
Any idea how this could be resolved?
Please also add code snippet to make it easier to understand.

Thanks,
Harshal


On Wed, May 22, 2013 at 1:34 AM, Himanshu Gahlot <
himanshu.gahlot86@gmail.com> wrote:

> Use setMultiValued()<
> http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29
> >.
> So, p1.setMultiValued() should make this config param accept multiple
> String values.
>
> Himanshu
>
>
> On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
> <re...@epfl.ch>wrote:
>
> > Hi Harshal,
> > Have you tried UimaFit? I think it would be a better option, if you do
> not
> > want to use XML descriptors.
> > Hope that helps, Renaud
> >
> >
> > On Tue, May 21, 2013 at 8:49 AM, harshal patni <patni.harshal@gmail.com
> > >wrote:
> >
> > > Hello Everyone,
> > >                    I am currently writing ConceptMapper in code (not
> > using
> > > XML files). Basically I am definitely AnalysisEngineDescriptions and
> > > TypeSystem Description in java code. I create the following 2
> parameters
> > > using "ConfigurationParameter" class.
> > >
> > >    1. AttributeList
> > >    2. FeatureList
> > >
> > > The problem is both these should be arrays. But ConfigurationParameter
> > only
> > > provide the  following types (String, Boolean, Integer, Float). When I
> > pass
> > > these values as string it fails and throws a
> java.lang.ClassCastException
> > > error. COz it expects an array vs a String.  How should I solve this
> > issue?
> > > Below is the AnalysisEngineDescription code.
> > >
> > >
> >
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> > >
> > > primitiveDesc = new AnalysisEngineDescription_impl();
> > >
> > >  primitiveDesc.setPrimitive(true);
> > >
> > >  primitiveDesc.getMetaData().setName("Concept Mapper Offset
> Tokenizer");
> > >
> > >  primitiveDesc.setAnnotatorImplementationName(
> > > "org.apache.uima.conceptMapper.ConceptMapper");
> > >
> > >
> > >
> > >  ConfigurationParameter p1 = new ConfigurationParameter_impl();
> > >
> > >  p1.setName("AttributeList");
> > >
> > >  p1.setDescription("Attribute List");
> > >
> > >  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the problem
> > >
> > >  ConfigurationParameter p2 = new ConfigurationParameter_impl();
> > >
> > >  p2.setName("FeatureList");
> > >
> > >  p2.setDescription("Feature List");
> > >
> > >  p2.setType(ConfigurationParameter.TYPE_STRING);
> > >
> > >
> > >
> > >
> >
> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
> > > new ConfigurationParameter[] { p1,p2 });
> > >
> > >
> > >
> > >
> >
> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
> > > new NameValuePair[] { new NameValuePair_impl("AttributeList",
> > "canonical"),
> > > new NameValuePair_impl("FeatureList", "DictCanon") });
> > >
> > >        TypeSystemDescription typeSystem = new
> > TypeSystemDescription_impl();
> > >
> > >      dicTerm(typeSystem);
> > >
> > >      conceptMapperTokenizer(typeSystem);
> > >
> > >      baseTokenizer(typeSystem);
> > >
> > >
>  primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
> > >
> > >
> > >
> >
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> > >
> > > Also how should I pass the dictionary file in code?
> > >
> > >
> > > Thanks,
> > >
> > > Harshal
> > >
> >
> >
> >
> > --
> > Renaud Richardet
> > Blue Brain Project  PhD candidate
> > EPFL  Station 15
> > CH-1015 Lausanne
> > phone: +41-78-675-9501
> > http://people.epfl.ch/renaud.richardet
> >
>

Re: Concept Mapper in code

Posted by Himanshu Gahlot <hi...@gmail.com>.
Use setMultiValued()<http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/api/org/apache/uima/resource/metadata/ConfigurationParameter.html#setMultiValued%28boolean%29>.
So, p1.setMultiValued() should make this config param accept multiple
String values.

Himanshu


On Tue, May 21, 2013 at 1:10 AM, Renaud Richardet
<re...@epfl.ch>wrote:

> Hi Harshal,
> Have you tried UimaFit? I think it would be a better option, if you do not
> want to use XML descriptors.
> Hope that helps, Renaud
>
>
> On Tue, May 21, 2013 at 8:49 AM, harshal patni <patni.harshal@gmail.com
> >wrote:
>
> > Hello Everyone,
> >                    I am currently writing ConceptMapper in code (not
> using
> > XML files). Basically I am definitely AnalysisEngineDescriptions and
> > TypeSystem Description in java code. I create the following 2 parameters
> > using "ConfigurationParameter" class.
> >
> >    1. AttributeList
> >    2. FeatureList
> >
> > The problem is both these should be arrays. But ConfigurationParameter
> only
> > provide the  following types (String, Boolean, Integer, Float). When I
> pass
> > these values as string it fails and throws a java.lang.ClassCastException
> > error. COz it expects an array vs a String.  How should I solve this
> issue?
> > Below is the AnalysisEngineDescription code.
> >
> >
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >
> > primitiveDesc = new AnalysisEngineDescription_impl();
> >
> >  primitiveDesc.setPrimitive(true);
> >
> >  primitiveDesc.getMetaData().setName("Concept Mapper Offset Tokenizer");
> >
> >  primitiveDesc.setAnnotatorImplementationName(
> > "org.apache.uima.conceptMapper.ConceptMapper");
> >
> >
> >
> >  ConfigurationParameter p1 = new ConfigurationParameter_impl();
> >
> >  p1.setName("AttributeList");
> >
> >  p1.setDescription("Attribute List");
> >
> >  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the problem
> >
> >  ConfigurationParameter p2 = new ConfigurationParameter_impl();
> >
> >  p2.setName("FeatureList");
> >
> >  p2.setDescription("Feature List");
> >
> >  p2.setType(ConfigurationParameter.TYPE_STRING);
> >
> >
> >
> >
> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
> > new ConfigurationParameter[] { p1,p2 });
> >
> >
> >
> >
> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
> > new NameValuePair[] { new NameValuePair_impl("AttributeList",
> "canonical"),
> > new NameValuePair_impl("FeatureList", "DictCanon") });
> >
> >        TypeSystemDescription typeSystem = new
> TypeSystemDescription_impl();
> >
> >      dicTerm(typeSystem);
> >
> >      conceptMapperTokenizer(typeSystem);
> >
> >      baseTokenizer(typeSystem);
> >
> >      primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
> >
> >
> >
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >
> > Also how should I pass the dictionary file in code?
> >
> >
> > Thanks,
> >
> > Harshal
> >
>
>
>
> --
> Renaud Richardet
> Blue Brain Project  PhD candidate
> EPFL  Station 15
> CH-1015 Lausanne
> phone: +41-78-675-9501
> http://people.epfl.ch/renaud.richardet
>

Re: Concept Mapper in code

Posted by Renaud Richardet <re...@epfl.ch>.
Hi Harshal,
Have you tried UimaFit? I think it would be a better option, if you do not
want to use XML descriptors.
Hope that helps, Renaud


On Tue, May 21, 2013 at 8:49 AM, harshal patni <pa...@gmail.com>wrote:

> Hello Everyone,
>                    I am currently writing ConceptMapper in code (not using
> XML files). Basically I am definitely AnalysisEngineDescriptions and
> TypeSystem Description in java code. I create the following 2 parameters
> using "ConfigurationParameter" class.
>
>    1. AttributeList
>    2. FeatureList
>
> The problem is both these should be arrays. But ConfigurationParameter only
> provide the  following types (String, Boolean, Integer, Float). When I pass
> these values as string it fails and throws a java.lang.ClassCastException
> error. COz it expects an array vs a String.  How should I solve this issue?
> Below is the AnalysisEngineDescription code.
>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>
> primitiveDesc = new AnalysisEngineDescription_impl();
>
>  primitiveDesc.setPrimitive(true);
>
>  primitiveDesc.getMetaData().setName("Concept Mapper Offset Tokenizer");
>
>  primitiveDesc.setAnnotatorImplementationName(
> "org.apache.uima.conceptMapper.ConceptMapper");
>
>
>
>  ConfigurationParameter p1 = new ConfigurationParameter_impl();
>
>  p1.setName("AttributeList");
>
>  p1.setDescription("Attribute List");
>
>  p1.setType(ConfigurationParameter.TYPE_STRING); // Here is the problem
>
>  ConfigurationParameter p2 = new ConfigurationParameter_impl();
>
>  p2.setName("FeatureList");
>
>  p2.setDescription("Feature List");
>
>  p2.setType(ConfigurationParameter.TYPE_STRING);
>
>
>
> primitiveDesc.getMetaData().getConfigurationParameterDeclarations().setConfigurationParameters(
> new ConfigurationParameter[] { p1,p2 });
>
>
>
> primitiveDesc.getMetaData().getConfigurationParameterSettings().setParameterSettings(
> new NameValuePair[] { new NameValuePair_impl("AttributeList", "canonical"),
> new NameValuePair_impl("FeatureList", "DictCanon") });
>
>        TypeSystemDescription typeSystem = new TypeSystemDescription_impl();
>
>      dicTerm(typeSystem);
>
>      conceptMapperTokenizer(typeSystem);
>
>      baseTokenizer(typeSystem);
>
>      primitiveDesc.getAnalysisEngineMetaData().setTypeSystem(typeSystem);
>
>
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>
> Also how should I pass the dictionary file in code?
>
>
> Thanks,
>
> Harshal
>



-- 
Renaud Richardet
Blue Brain Project  PhD candidate
EPFL  Station 15
CH-1015 Lausanne
phone: +41-78-675-9501
http://people.epfl.ch/renaud.richardet