0

I'm using Win7 x64 system. I pointed MiniparBinaryFile to the exe file in gate/plugin/parser-minipar and MiniparDataDir to the data folder under the extracted minipar-0.5-windows32.

Gate launches to run the minipar but there is no more activity after launched. I have to kill the minipar-windows32.exe process.

What is the right way to use it?

cheers

Matt

----Update----

Thanks for Ian's suggestion, here is a cut of a VisualVM dump, Hope it's the correct part:

 
"ApplicationViewer1" prio=2 tid=0x000000000c0ad000 nid=0x1fb8 runnable [0x000000000f39e000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(Unknown Source)
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    - locked  (a java.io.InputStreamReader)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.read(Unknown Source)
    - locked  (a java.io.InputStreamReader)
    at gate.util.BomStrippingInputStreamReader.stripBomIfPresent(BomStrippingInputStreamReader.java:93)
    at gate.util.BomStrippingInputStreamReader.(BomStrippingInputStreamReader.java:78)
    at gate.util.BomStrippingInputStreamReader.(BomStrippingInputStreamReader.java:45)
    at minipar.Minipar.runMinipar(Minipar.java:276)
    at minipar.Minipar.execute(Minipar.java:518)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

=====update 2======

thanks the active development society, I installed the new version(Snapshot 4586) in a few hours.

Now it works!

however, I encountered another small problem. gate reports error when processing the following sentence "Batten disease (also known as Spielmeyer-Vogt-Sjögren-Batten disease ) is a rare, fatal autosomal recessive neurodegenerative disorder that begins in childhood." (a wiki article) In the Annotation view, I see the minipar annotated the sentence untill the uncommen character ö. So, is there a way to skip these?

In Messages Tab, it reprots:


gate.util.InvalidOffsetException
    at gate.annotation.AnnotationSetImpl.getNodes(AnnotationSetImpl.java:773)
    at gate.annotation.AnnotationSetImpl.add(AnnotationSetImpl.java:802)
    at minipar.Minipar.runMinipar(Minipar.java:419)
    at minipar.Minipar.execute(Minipar.java:527)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)
gate.creole.ExecutionException: gate.util.InvalidOffsetException
    at minipar.Minipar.runMinipar(Minipar.java:491)
    at minipar.Minipar.execute(Minipar.java:527)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)
Caused by: gate.util.InvalidOffsetException
    at gate.annotation.AnnotationSetImpl.getNodes(AnnotationSetImpl.java:773)
    at gate.annotation.AnnotationSetImpl.add(AnnotationSetImpl.java:802)
    at minipar.Minipar.runMinipar(Minipar.java:419)
    ... 9 more
gate.creole.ExecutionException: Document doesn't have sentence annotations. please run tokenizer, sentence splitter and then Minipar
    at minipar.Minipar.saveGateSentences(Minipar.java:194)
    at minipar.Minipar.execute(Minipar.java:525)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)

Thanks again!

Matt
  • 741
  • 1
  • 6
  • 17
  • That should be correct, but I don't have any experience of running it on Windows. Could you try capturing a thread dump using [jvisualvm](http://docs.oracle.com/javase/6/docs/technotes/guides/visualvm/threads.html) and edit the question to include the relevant portion of the trace for whichever thread is blocked inside `minipar.Minipar.execute()`? – Ian Roberts Mar 22 '13 at 10:12
  • Thx Ian, but I'm running everything from Gate developer GUI, not from Java code, can I still use Java VisualVM? I have no experience with that. – Matt Mar 22 '13 at 15:12
  • yes, you can use jvisualvm to get a thread dump of the running GATE Developer. It should give you a list of available java processes to connect to, hopefully it'll be obvious which one you need. – Ian Roberts Mar 22 '13 at 15:53
  • Thanks, that's exactly what I needed to isolate the problem and it is indeed a bug, which should now be fixed in the latest subversion revision. – Ian Roberts Mar 22 '13 at 19:07
  • Just seen your latest edit, can I suggest that you move that into a new question as it's unrelated to the original (now solved) problem. – Ian Roberts Mar 24 '13 at 09:16
  • @IanRoberts Yes, that's right. please check http://stackoverflow.com/questions/15598773/gate-how-to-let-minipar-play-with-special-characters-like – Matt Mar 25 '13 at 11:11

1 Answers1

1

This was caused by a bug in the Minipar wrapper PR, attempting to read from the external minipar process's "error stream" in the wrong thread. This should be fixed in subversion (revision 16615) and is now in the nightly build.

Ian Roberts
  • 120,891
  • 16
  • 170
  • 183
  • Thank you, Ian! When can I expect the next nightly build? and what will be the smallest build number that contains this bug-fix? Nice weekend! – Matt Mar 22 '13 at 20:10
  • @Matt it builds around 2am UK time, check the [recent changes](http://jenkins.gate.ac.uk/job/GATE-Nightly/changes) list to see when rev 16615 appears. It should be build4586. – Ian Roberts Mar 22 '13 at 22:19