Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NxmlReader error | No roots in graph #634

Open
RohitChattopadhyay opened this issue Jul 14, 2019 · 5 comments
Open

NxmlReader error | No roots in graph #634

RohitChattopadhyay opened this issue Jul 14, 2019 · 5 comments

Comments

@RohitChattopadhyay
Copy link
Contributor

RohitChattopadhyay commented Jul 14, 2019

I am getting this error on several nxml files downloaded from ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/oa_bulk/comm_use.A-B.xml.tar.gz

I have made a gist using 2 such files (PMC6588870 , PMC5109642 ) here.

I am using the out of box application.conf file with outputTypes = ["indexcard"]

16:21:34.400 [ForkJoinPool-1-worker-3] ERROR org.clulab.reach.ReachCLI - 
==========

¡¡¡ NxmlReader error !!!

paper: PMC6588870

error:
java.lang.RuntimeException: No roots in graph:
dep                 reln                gov                 
---                 ----                ---                 

Find where this graph was created and make sure you're adding roots.

stack trace:
edu.stanford.nlp.semgraph.SemanticGraph.getFirstRoot(SemanticGraph.java:790)
edu.stanford.nlp.semgraph.semgrex.SemgrexPattern.matcher(SemgrexPattern.java:231)

Thanks

@MihaiSurdeanu
Copy link
Contributor

Unfortunately, this error comes from the CoreNLP parser, not from our code. So, it is harder to control... But, I believe that our code robustly skips these sentences, without failing on the whole paper. To double check, can you please:

  • Paste the whole stack trace here.
  • Attach one of these Nxml files, so I can replicate the experiment?

Thanks!

@RohitChattopadhyay
Copy link
Contributor Author

RohitChattopadhyay commented Jul 15, 2019

Thanks

File (PMC3420630) : Gist Link

Stack trace

==========

13:06:51.123 [ForkJoinPool-1-worker-7] ERROR org.clulab.reach.ReachCLI - 
==========

 ¡¡¡ NxmlReader error !!!

paper: PMC3420630

error:
java.lang.RuntimeException: No roots in graph:
dep                 reln                gov                 
---                 ----                ---                 

Find where this graph was created and make sure you're adding roots.

stack trace:
edu.stanford.nlp.semgraph.SemanticGraph.getFirstRoot(SemanticGraph.java:790)
edu.stanford.nlp.semgraph.semgrex.SemgrexPattern.matcher(SemgrexPattern.java:231)
edu.stanford.nlp.trees.UniversalEnglishGrammaticalStructure.demoteQuantificationalModifiers(UniversalEnglishGrammaticalStructure.java:1724)
edu.stanford.nlp.trees.UniversalEnglishGrammaticalStructure.addEnhancements(UniversalEnglishGrammaticalStructure.java:871)
edu.stanford.nlp.trees.GrammaticalStructure.typedDependenciesEnhancedPlusPlus(GrammaticalStructure.java:924)
edu.stanford.nlp.semgraph.SemanticGraphFactory.makeFromTree(SemanticGraphFactory.java:249)
edu.stanford.nlp.semgraph.SemanticGraphFactory.generateEnhancedPlusPlusDependencies(SemanticGraphFactory.java:129)
edu.stanford.nlp.pipeline.ParserAnnotatorUtils.fillInParseAnnotations(ParserAnnotatorUtils.java:67)
org.clulab.processors.corenlp.CoreNLPProcessor$$anonfun$parse$1.apply(CoreNLPProcessor.scala:95)
org.clulab.processors.corenlp.CoreNLPProcessor$$anonfun$parse$1.apply(CoreNLPProcessor.scala:86)
scala.collection.Iterator$class.foreach(Iterator.scala:891)
scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
scala.collection.AbstractIterable.foreach(Iterable.scala:54)
org.clulab.processors.corenlp.CoreNLPProcessor.parse(CoreNLPProcessor.scala:86)
org.clulab.processors.Processor$class.annotate(Processor.scala:93)
org.clulab.processors.shallownlp.ShallowNLPProcessor.annotate(ShallowNLPProcessor.scala:34)
org.clulab.processors.Processor$class.annotate(Processor.scala:62)
org.clulab.processors.shallownlp.ShallowNLPProcessor.annotate(ShallowNLPProcessor.scala:34)
org.clulab.reach.ReachSystem.mkDoc(ReachSystem.scala:59)
org.clulab.reach.ReachSystem.extractFrom(ReachSystem.scala:146)
org.clulab.reach.ReachSystem.extractFrom(ReachSystem.scala:72)
org.clulab.reach.PaperReader$.getMentionsFromEntry(PaperReader.scala:158)
org.clulab.reach.ReachCLI.processPaper(ReachCLI.scala:132)
org.clulab.reach.ReachCLI$$anonfun$4.apply(ReachCLI.scala:86)
org.clulab.reach.ReachCLI$$anonfun$4.apply(ReachCLI.scala:80)
scala.collection.parallel.AugmentedIterableIterator$class.map2combiner(RemainsIterator.scala:115)
scala.collection.parallel.immutable.ParVector$ParVectorIterator.map2combiner(ParVector.scala:62)
scala.collection.parallel.ParIterableLike$Map.leaf(ParIterableLike.scala:1054)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:49)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)
scala.collection.parallel.Task$class.tryLeaf(Tasks.scala:51)
scala.collection.parallel.ParIterableLike$Map.tryLeaf(ParIterableLike.scala:1051)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.internal(Tasks.scala:159)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.internal(Tasks.scala:443)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.compute(Tasks.scala:149)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:443)
scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)
scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
scala.concurrent.forkjoin.ForkJoinTask.doJoin(ForkJoinTask.java:341)
scala.concurrent.forkjoin.ForkJoinTask.join(ForkJoinTask.java:673)
scala.collection.parallel.ForkJoinTasks$WrappedTask$class.sync(Tasks.scala:378)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.sync(Tasks.scala:443)
scala.collection.parallel.ForkJoinTasks$class.executeAndWaitResult(Tasks.scala:426)
scala.collection.parallel.ForkJoinTaskSupport.executeAndWaitResult(TaskSupport.scala:56)
scala.collection.parallel.ExecutionContextTasks$class.executeAndWaitResult(Tasks.scala:558)
scala.collection.parallel.ExecutionContextTaskSupport.executeAndWaitResult(TaskSupport.scala:80)
scala.collection.parallel.ParIterableLike$ResultMapping.leaf(ParIterableLike.scala:958)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:49)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)
scala.collection.parallel.Task$class.tryLeaf(Tasks.scala:51)
scala.collection.parallel.ParIterableLike$ResultMapping.tryLeaf(ParIterableLike.scala:953)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.compute(Tasks.scala:152)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:443)
scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)
scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

==========

Thank you

@MihaiSurdeanu
Copy link
Contributor

I can confirm that, while this is a CoreNLP issue, we are not recovering nicely from this. We'll fix this soon.

@MihaiSurdeanu
Copy link
Contributor

This was fixed in processors master, in the sense that we recover from the CoreNLP error wo/ crashing everything. To take advantage of the fix before the new processors release, please:

  1. Clone processors, and run sbt +publishLocal.
  2. In reach, change procVer to 7.5.3-SNAPSHOT in main/build.sbt.

@RohitChattopadhyay
Copy link
Contributor Author

This was fixed in processors master, in the sense that we recover from the CoreNLP error wo/ crashing everything. To take advantage of the fix before the new processors release, please:

  1. Clone processors, and run sbt +publishLocal.
  2. In reach, change procVer to 7.5.3-SNAPSHOT in main/build.sbt.

Thanks for your help, it worked. But now I am facing another issue

Link to file( PMC4379733.nxml ) : Gist

Stacktrace

==========

 ¡¡¡ NxmlReader error !!!

paper: PMC4379733

error:
java.lang.RuntimeException: ERROR: unknown event type: Gene_or_gene_product in event:
{
  "type" : "TextBoundMention",
  "id" : "T:18956156",
  "text" : "TGF-beta1",
  "labels" : [ "Gene_or_gene_product", "MacroMolecule", "Equivalable", "BioChemicalEntity", "BioEntity", "Entity", "PossibleController" ],
  "tokenInterval" : {
    "start" : 5,
    "end" : 6
  },
  "characterStartOffset" : 8345,
  "characterEndOffset" : 8354,
  "sentence" : 62,
  "document" : "-372046785",
  "keep" : true,
  "foundBy" : "ner-gene_or_gene_product-entities"
}

stack trace:
org.clulab.reach.export.JsonOutputter$.mkEventType(JsonOutputter.scala:172)
org.clulab.reach.export.indexcards.IndexCardOutput.mkRegulationIndexCard(IndexCardOutput.scala:333)
org.clulab.reach.export.indexcards.IndexCardOutput$$anonfun$mkCards$1.apply(IndexCardOutput.scala:114)
org.clulab.reach.export.indexcards.IndexCardOutput$$anonfun$mkCards$1.apply(IndexCardOutput.scala:112)
scala.collection.immutable.List.foreach(List.scala:392)
org.clulab.reach.export.indexcards.IndexCardOutput.mkCards(IndexCardOutput.scala:112)
org.clulab.reach.export.indexcards.IndexCardOutput.writeJSON(IndexCardOutput.scala:72)
org.clulab.reach.ReachCLI.outputMentions(ReachCLI.scala:200)
org.clulab.reach.ReachCLI$$anonfun$processPaper$1.apply(ReachCLI.scala:139)
org.clulab.reach.ReachCLI$$anonfun$processPaper$1.apply(ReachCLI.scala:139)
scala.collection.immutable.List.foreach(List.scala:392)
org.clulab.reach.ReachCLI.processPaper(ReachCLI.scala:139)
org.clulab.reach.ReachCLI$$anonfun$4.apply(ReachCLI.scala:86)
org.clulab.reach.ReachCLI$$anonfun$4.apply(ReachCLI.scala:80)
scala.collection.parallel.AugmentedIterableIterator$class.map2combiner(RemainsIterator.scala:115)
scala.collection.parallel.immutable.ParVector$ParVectorIterator.map2combiner(ParVector.scala:62)
scala.collection.parallel.ParIterableLike$Map.leaf(ParIterableLike.scala:1054)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:49)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)
scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)
scala.collection.parallel.Task$class.tryLeaf(Tasks.scala:51)
scala.collection.parallel.ParIterableLike$Map.tryLeaf(ParIterableLike.scala:1051)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.internal(Tasks.scala:159)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.internal(Tasks.scala:443)
scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.compute(Tasks.scala:149)
scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:443)
scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)
scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

==========

Thank You

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants