I am definitely still seeing the “URI is not hierarchical” issue. Here’s a piece of information that might help you figure out what the problem is:
It only happens if the pipeline includes dictionary lookup. For instance, this one fails: https://github.com/dmitriydligach/ctakes-misc/blob/master/src/main/java/org/apache/ctakes/pipelines/UmlsLookupPipeline.java But this one succeeds: https://github.com/dmitriydligach/ctakes-misc/blob/master/src/main/java/org/apache/ctakes/pipelines/BasicPipeline.java (it’s the same as the first one, but the dictionary lookup part is removed). Dima > On Apr 26, 2017, at 11:37, Finan, Sean <sean.fi...@childrens.harvard.edu> > wrote: > > Hi again Dima, > > The piper files are not meant to replace uimafit. Uimafit is great for many > purposes. > > As for that annoying old "URI is not hierarchical" bug, a while back I > checked in a fix that worked for me. Since then I cannot duplicate it. > > Sean > > -----Original Message----- > From: Dligach, Dmitriy [mailto:ddlig...@luc.edu] > Sent: Wednesday, April 26, 2017 12:18 PM > To: dev@ctakes.apache.org > Subject: Re: URI is not hierarchical > > As I said in my previous email, the piper approach looks very promising. > However many of us probably still have lots of existing uimaFIT pipelines and > it would be nice to be able to run them from command line. > > So, are there any plans to finally fix this old “URI is not hierarchical” > problem? Do we at least know what’s causing it? > > Dima > > > >> On Apr 14, 2017, at 12:14, Finan, Sean <sean.fi...@childrens.harvard.edu> >> wrote: >> >> Ok, thanks. For your original question: >> >>> it fails with “URI is not hierarchical” when the dictionary lookup is >>> enabled. >>> I believe this is an old issue, so are there any plans for fixing it in the >>> new release? >> >> I thought that I had already fixed it. So much for my thorough testing. >> >> Let me know what happens with the piper approach. >> Sean >> >> >> -----Original Message----- >> From: Dligach, Dmitriy [mailto:ddlig...@luc.edu] >> Sent: Friday, April 14, 2017 12:47 PM >> To: dev@ctakes.apache.org >> Subject: Re: URI is not hierarchical >> >> Hi Sean, >> >> >> >> The pipeline I am trying to run is this: >> >> >> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dmitriydligach_ctakes-2Dmisc_blob_master_src_main_java_org_apache_ctakes_pipelines_UmlsLookupPipeline.java&d=DwIGaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=xe6RaWm66aSyUeXjU20x8dEc3xfYTHbadlwhgSdrIsw&s=ixO9vX_WJ7p-dpJc0RdnzRfjwQqbNw4gkLwf0SSpp0I&e= >> >> >> >> >> (This is the UmlsLookupPipeline class). >> >> >> >> It runs fine in Eclipse but fails when I run from command line. >> >> >> >> I will look into the solution you are suggesting (thanks!). >> >> >> >> Dima >> >> >> >> >> >> >> >>> On Apr 14, 2017, at 11:35, Finan, Sean <sean.fi...@childrens.harvard.edu> >>> wrote: >> >>> >> >>> Hi Dima, >> >>> >> >>> Where did you get that class? I don't have UmlsLookupPipeline or the >>> package org.apache.ctakes.pipelines. >> >>> >> >>> If you want to run from command-line I highly recommend that you use the >>> PiperFileRunner class in core.pipeline. >> >>> >> >>> To run the clinical pipeline use cli parameters: >> >>> -p DefaultFastPipeline.piper >> >>> -i {inputDir} >> >>> --xmiOut {outputDir} >> >>> --user {umlsUsername} >> >>> --pass {umlsPassword} >> >>> >> >>> If you have the binary installation there is a runClinicalPipeline script >>> in bin/ >> >>> >> >>> PiperFileRunner can run other piper files and take other parameters >> >>> # Runs the pipeline in the piper file specified by -p (piperfile) >> >>> # with any other provided parameters. Standard parameters are: >> >>> # -i , --inputDir {inputDirectory} >> >>> # -o , --outputDir {outputDirectory} >> >>> # -s , --subDir {subDirectory} (for i/o) >> >>> # --xmiOut {xmiOutputDirectory} (if different from -o) >> >>> # -l , --lookupXml {dictionaryConfigFile} (fast only) >> >>> # --user {umlsUsername} >> >>> # --pass {umlsPassword} >> >>> # -? , --help >> >>> # >> >>> # Other parameters may be declared in the piper file using the cli >>> command: >> >>> # cli {parameterName}={singleCharacter} >> >>> # For instance, for declaration of ParagraphAnnotator path to regex file >>> optional parameter PARAGRAPH_TYPES_PATH, >> >>> # in the custom piper file add the line: >> >>> # cli PARAGRAPH_TYPES_PATH=t >> >>> # and when executing this script use: >> >>> # runPiperFile -p path/to/my/custom.piper -t path/to/my/custom.bsv ... >> >>> >> >>> >> >>> The above is a snippet from the runPiperFile script in the bin/ directory. >> >>> >> >>> I am in the process of writing documentation on piper files in the wiki. >> >>> >> >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_confluence_display_CTAKES_Piper-2BFiles&d=DwIGaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=xe6RaWm66aSyUeXjU20x8dEc3xfYTHbadlwhgSdrIsw&s=pNVLJSOBMk5orJZ4Oy4ZwtpkPp0tU48-g1qxtpIBucw&e= >>> >> >>> >> >>> >> >>> -----Original Message----- >> >>> From: Dligach, Dmitriy [mailto:ddlig...@luc.edu] >> >>> Sent: Friday, April 14, 2017 12:17 PM >> >>> To: cTAKES Developer list >> >>> Subject: URI is not hierarchical >> >>> >> >>> Dear cTAKES developers, >> >>> >> >>> >> >>> >> >>> I am trying to run a simple pipeline that involves dictionary lookup: >> >>> >> >>> >> >>> >> >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dmitriydligach_ctakes-2Dmisc_blob_master_src_main_java_org_apache_ctakes_pipelines_UmlsLookupPipeline.java&d=DwIGaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=-N-wYwlTFXbedV0kkcf_qgdQj3HYIeLCeKr9Q303b0Q&s=NWoDwPNChJkDhFseM3j8Gi7KNDdVqzi1BFt0onalf9I&e= >>> >> >>> >> >>> >> >>> >> >>> from command line as follows: >> >>> >> >>> >> >>> >> >>> mvn exec:java >>> -Dexec.mainClass=“org.apache.ctakes.pipelines.UmlsLookupPipeline” >> >>> >> >>> >> >>> >> >>> It runs fine if the dictionary lookup related fragmented is commented out, >>> but it fails with “URI is not hierarchical” when the dictionary lookup is >>> enabled. >> >>> >> >>> >> >>> >> >>> I believe this is an old issue, so are there any plans for fixing it in the >>> new release? In the meantime, are there any workarounds? >> >>> >> >>> >> >>> >> >>> Many thanks! >> >>> >> >>> >> >>> >> >>> The full error is below. >> >>> >> >>> >> >>> >> >>> Dima >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> 14 Apr 2017 11:04:24 INFO LvgAnnotator - URL for lvg.properties >>> =file:/home/dima/.m2/repository/net/sourceforge/ctakesresources/ctakes-resources-lvg2008/4.0.0/ctakes-resources-lvg2008-4.0.0.jar!/org/apache/ctakes/lvg/data/config/lvg.properties >> >>> >> >>> 14 Apr 2017 11:04:24 INFO SentenceDetector - Sentence detector model file: >>> org/apache/ctakes/core/sentdetect/sd-med-model.zip >> >>> >> >>> 14 Apr 2017 11:04:24 INFO TokenizerAnnotatorPTB - Initializing >>> org.apache.ctakes.core.ae.TokenizerAnnotatorPTB >> >>> >> >>> 14 Apr 2017 11:04:24 INFO ContextDependentTokenizerAnnotator - Finite >>> state machines loaded. >> >>> >> >>> 14 Apr 2017 11:04:24 INFO POSTagger - POS tagger model file: >>> org/apache/ctakes/postagger/models/mayo-pos.zip >> >>> >> >>> 14 Apr 2017 11:04:24 INFO Chunker - Chunker model file: >>> /home/dima/cTakes/trunk/ctakes-chunker-res/src/main/resources/org/apache/ctakes/chunker/models/chunker-model.zip >> >>> >> >>> 14 Apr 2017 11:04:26 INFO AbstractJCasTermAnnotator - Using dictionary >>> lookup window type: org.apache.ctakes.typesystem.type.textspan.Sentence >> >>> >> >>> 14 Apr 2017 11:04:26 INFO AbstractJCasTermAnnotator - Exclusion tagset >>> loaded: CC CD DT EX IN LS MD PDT POS PP PP$ PRP PRP$ RP TO VB VBD VBG VBN >>> VBP VBZ WDT WP WPS WRB >> >>> >> >>> 14 Apr 2017 11:04:26 INFO AbstractJCasTermAnnotator - Using minimum term >>> text span: 3 >> >>> >> >>> 14 Apr 2017 11:04:26 INFO AbstractJCasTermAnnotator - Using Dictionary >>> Descriptor: org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab.xml >> >>> >> >>> 14 Apr 2017 11:04:26 INFO DictionaryDescriptorParser - Parsing dictionary >>> specifications: >> >>> >> >>> 14 Apr 2017 11:04:26 INFO UmlsUserApprover - Checking UMLS Account at >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__uts-2Dws.nlm.nih.gov_restful_isValidUMLSUser&d=DwIGaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=-N-wYwlTFXbedV0kkcf_qgdQj3HYIeLCeKr9Q303b0Q&s=k4vvKW_sfiLO__5LyOVbw7jMlmz2h1urVXde-7hEzg8&e= >>> for user dmitriydligach: >> >>> >> >>> .14 Apr 2017 11:04:26 INFO UmlsUserApprover - UMLS Account at >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__uts-2Dws.nlm.nih.gov_restful_isValidUMLSUser&d=DwIGaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=-N-wYwlTFXbedV0kkcf_qgdQj3HYIeLCeKr9Q303b0Q&s=k4vvKW_sfiLO__5LyOVbw7jMlmz2h1urVXde-7hEzg8&e= >>> for user dmitriydligach has been validated >> >>> >> >>> >> >>> >> >>> 14 Apr 2017 11:04:26 INFO JdbcConnectionFactory - Connecting to >>> jdbc:hsqldb:file:resources/org/apache/ctakes/dictionary/lookup/fast/sno_rx_16ab/sno_rx_16ab: >> >>> >> >>> 14 Apr 2017 11:04:26 INFO ENGINE - open start - state not modified >> >>> >> >>> ................. >> >>> >> >>> 14 Apr 2017 11:04:32 INFO JdbcConnectionFactory - Database connected >> >>> >> >>> 14 Apr 2017 11:04:32 INFO JdbcRareWordDictionary - Connected to cui and >>> term table CUI_TERMS >> >>> >> >>> 14 Apr 2017 11:04:32 INFO JdbcConceptFactory - Connected to concept table >>> TUI with class TUI >> >>> >> >>> 14 Apr 2017 11:04:32 INFO JdbcConceptFactory - Connected to concept table >>> RXNORM with class LONG >> >>> >> >>> 14 Apr 2017 11:04:32 INFO JdbcConceptFactory - Connected to concept table >>> PREFTERM with class PREFTERM >> >>> >> >>> 14 Apr 2017 11:04:32 INFO JdbcConceptFactory - Connected to concept table >>> SNOMEDCT_US with class LONG >> >>> >> >>> [WARNING] >> >>> >> >>> java.lang.IllegalArgumentException: URI is not hierarchical >> >>> >> >>> at java.io.File.<init>(File.java:418) >> >>> >> >>> at >>> org.apache.ctakes.lvg.resource.LvgCmdApiResourceImpl.load(LvgCmdApiResourceImpl.java:65) >> >>> >> >>> at >>> org.apache.uima.resource.impl.ResourceManager_impl.registerResource(ResourceManager_impl.java:628) >> >>> >> >>> at >>> org.apache.uima.resource.impl.ResourceManager_impl.initializeExternalResources(ResourceManager_impl.java:464) >> >>> >> >>> at >>> org.apache.uima.resource.Resource_ImplBase.initialize(Resource_ImplBase.java:193) >> >>> >> >>> at >>> org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.initialize(AnalysisEngineImplBase.java:157) >> >>> >> >>> at >>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:131) >> >>> >> >>> at >>> org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94) >> >>> >> >>> at >>> org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62) >> >>> >> >>> at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:279) >> >>> >> >>> at >>> org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407) >> >>> >> >>> at >>> org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256) >> >>> >> >>> at >>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:429) >> >>> >> >>> at >>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:373) >> >>> >> >>> at >>> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:186) >> >>> >> >>> at >>> org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:711) >> >>> >> >>> at >>> org.apache.uima.fit.factory.AggregateBuilder.createAggregate(AggregateBuilder.java:207) >> >>> >> >>> at >>> org.apache.ctakes.pipelines.UmlsLookupPipeline.main(UmlsLookupPipeline.java:66) >> >>> >> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >>> >> >>> at >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> >>> >> >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >>> >> >>> at java.lang.reflect.Method.invoke(Method.java:498) >> >>> >> >>> at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:282) >> >>> >> >>> at java.lang.Thread.run(Thread.java:745) >> >>> >> >>> [INFO] >>> ------------------------------------------------------------------------ >> >>> >> >>> [INFO] BUILD FAILURE >> >>> >> >>> [INFO] >>> ------------------------------------------------------------------------ >> >>> >> >>> [INFO] Total time: 9.900 s >> >>> >> >>> [INFO] Finished at: 2017-04-14T11:04:32-05:00 >> >>> >> >>> [INFO] Final Memory: 510M/1455M >> >>> >> >>> [INFO] >>> ------------------------------------------------------------------------ >> >>> >> >>> [ERROR] Failed to execute goal >>> org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project >>> ctakes-misc: An exception occured while executing the Java class. URI is >>> not hierarchical -> [Help 1] >> >>> >> >>> [ERROR] >> >>> >> >>> [ERROR] To see the full stack trace of the errors, re-run Maven with the -e >>> switch. >> >>> >> >>> [ERROR] Re-run Maven using the -X switch to enable full debug logging. >> >>> >> >>> [ERROR] >> >>> >> >>> [ERROR] For more information about the errors and possible solutions, >>> please read the following articles: >> >>> >> >>> [ERROR] [Help 1] >>> https://urldefense.proofpoint.com/v2/url?u=http-3A__cwiki.apache.org_confluence_display_MAVEN_MojoExecutionException&d=DwIGaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r=fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m=-N-wYwlTFXbedV0kkcf_qgdQj3HYIeLCeKr9Q303b0Q&s=JfA-JsX45OHwuDl_DNkICQUwoIOMrYhdSxNKV1k_Ig4&e= >>> >> >> >> >