Hello Barry,

2011/5/6 Barry Hathaway <bhath...@nycap.rr.com>

> Thanks for creating the case to track the requirement.
> I really don't agree with your comments about using relative paths though.
> The only way to specify the AE's making up an aggregate AE is to use a
> "<import location ...>",
> leaving you to choose either a absolute, relative, or a URL.


this is not true, you can do also <import name="..."> which handles
classpaths and datapaths, have a look here:
http://uima.apache.org/d/uimaj-2.3.1/references.html#ugr.ref.xml.component_descriptor.imports


>  All of these are not that great.
> You are not allowed to use environment variables. The UIMA documentation
> clearly states
> that relative paths are relative with respect to the location of the
> descriptor containing the import.
>

I know that, I meant the relative path to retrieve the main aggregate AE
from Solr not the relative path used in <import location="..> to get the
delegate AEs from the aggregate AE.
I am not proposing to introduce environment variables, I am just saying that
if we want to support relative paths then I think it'd be a nice idea to
choose "where" the relative file URL starts.



> That is the way in which XMLInputSource works.  Solr's
> OverridingParamsAEProvider, in my opinion,
> is clearly broken. If it wants to suck a descriptor out of a jar then it
> MUST call XMLInputSource using
> the signature in with both the descriptor name AND the path to the jar
> containing  are passed in so
> that XMLInputSource knows how to process the descriptor.
>

The XMLInputSource offers a URL based constructor which is useful to serve
both scenarios [1].
I am ok on supporting also filesystem retrieved descriptors; this was not
taken in account in the first implementation since many existing annotators
already deliver descriptors bundled inside the jars/pears but this addition
sounds like a good improvement so, basically, let's do it ;-)
Regards,
Tommaso

[1] :
http://uima.apache.org/d/uimaj-2.3.1/api/org/apache/uima/util/XMLInputSource.html#XMLInputSource(java.net.URL)


>
> Barry
>
>
> On 5/6/2011 8:47 AM, Tommaso Teofili wrote:
>
>> Barry, I understand your need and I agree with you it'd be useful to be
>> able
>> to load AEs also from filesystem, I created SOLR-2501 [1] to track that
>> requirement.
>> Consider that loading AEs from relative paths, as using relative paths in
>> general, is not a good practice since different environments could set the
>> relative path "start" at different points in the filesystem; I think a
>> good
>> solution would be using the solr.home as the root of a relative path
>> because
>> that is a Solr instance/core property.
>> Regards,
>> Tommaso
>>
>> [1] : https://issues.apache.org/jira/browse/SOLR-2501
>>
>> 2011/5/5 Barry Hathaway<bhath...@nycap.rr.com>
>>
>>  Tommaso,
>>>
>>> Thanks. Now Solr finds the descriptor; however, I think this is very bad
>>> practice.
>>> Descriptors really aren't meant to be jarred up. They often contain
>>> relative paths.
>>> For example, in my case I have a directory that looks like:
>>>    appassemble
>>>        |- desc
>>>        |- pear
>>>
>>> where the AnalysisEngine descriptor contained in desc is an aggregate
>>> analysis engine and
>>> refers to other analysis engines packaged as installed PEAR files in the
>>> pear subdirectory.
>>> As such, the descriptor contains relative paths pointing into the pear
>>> subdirectory.
>>> Grabbing the descriptor from the jar breaks that since
>>> OverridingParamsAEProvider
>>> uses the XMLInputSource method without relative path signature.
>>>
>>> Barry
>>>
>>>
>>> On 5/4/2011 6:16 AM, Tommaso Teofili wrote:
>>>
>>>  Hello Barry,
>>>> the main AnalysisEngine descriptor defined inside the<analysisEngine>
>>>> element should be inside one of the jars imported with the<lib>
>>>> elements.
>>>> At the moment it cannot be taken from expanded directories but it should
>>>> be
>>>> easy to do it (and indeed useful) modifying the
>>>> OverridingParamsAEProvider class
>>>> [1] at line 57.
>>>> Hope this helps,
>>>> Tommaso
>>>>
>>>> [1] :
>>>>
>>>>
>>>> http://svn.apache.org/viewvc/lucene/dev/tags/lucene_solr_3_1/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java?view=markup
>>>>
>>>> 2011/5/3 Barry Hathaway<bhath...@nycap.rr.com>
>>>>
>>>>  I'm new to Solr and trying to get it call a UIMA aggregate analysis
>>>>
>>>>> engine
>>>>> and not having much luck.
>>>>> The null pointer exception indicates that it can't find the xml file
>>>>> associated with the engine.
>>>>> I have tried a number of combinations of a path in the<analysisEngine>
>>>>>  element, but nothing
>>>>> seems to work. In addition, I've put the directory containing the
>>>>> descriptor in both the classpath
>>>>> when starting the server and in a<lib>   element in solrconfig.xml. So:
>>>>>
>>>>> What "classpath" does the<analysisEngine>   tag effectively search for
>>>>> to
>>>>> locate the descriptor?
>>>>>
>>>>> Do the<lib>   entries in solrconfig.xml affect this classpath?
>>>>>
>>>>> Do the engine descriptors have to be in a jar or can they be in an
>>>>> expanded
>>>>> directory?
>>>>>
>>>>> Thanks in advance.
>>>>>
>>>>> Barry
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>

Reply via email to