Add Stanford CoreNLP tool and data manager#8005
Conversation
- Stanford CoreNLP tool wrapper supporting 8 languages - Multi-language support: English, Chinese, Arabic, French, German, Spanish, Italian, Hungarian - Multiple annotators: tokenization, POS, NER, parsing, coreference, sentiment - Output formats: JSON, CoNLL, CoNLL-U, XML, text - Docker containerization with Java 21 - Data manager for automated model downloads from Maven Central - Comprehensive tests and documentation - Fixed coreference resolution with common models JAR Tool: stanford_corenlp (v4.5.10+galaxy4) Data Manager: data_manager_corenlp_models Categories: Text Manipulation, Natural Language Processing
Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
There was a problem hiding this comment.
Should this file be an input/output of a tool test?
| - Text Manipulation | ||
| - Natural Language Processing | ||
| homepage_url: https://stanfordnlp.github.io/CoreNLP/ | ||
| remote_repository_url: https://github.com/galaxyproject/tools-iuc |
There was a problem hiding this comment.
| remote_repository_url: https://github.com/galaxyproject/tools-iuc | |
| remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/main/tools/corenlp |
There was a problem hiding this comment.
This should be in a sub-directory called data_manager
There was a problem hiding this comment.
Also goes to the sub-directory data_manager.
Is it possible to write some tests here too?
- Fix remote_repository_url to point to specific tool directory - Reorganize data manager files into data_manager/ subdirectory structure - Both changes address reviewer feedback from RZ9082
Replace problematic has_json_property_with_text assertions with more robust has_text assertions to match successful pattern used in Stanza tool. This resolves JSON property path failures in Galaxy test framework. Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
| ln -s "\$(dirname '${language_model.fields.models_path}')/stanford-corenlp-@TOOL_VERSION@-models.jar" ./common.jar && | ||
| #end if | ||
| #if $language_model.fields.lang_code == "en" | ||
| echo 'pos.model = edu/stanford/nlp/models/pos-tagger/english-bidirectional-distsim.tagger' > corenlp.properties && |
There was a problem hiding this comment.
instead of creating the "corenlp.properties" file with echo you can use <configfile> in Galaxy tool XML, this should make things much more readable and matainable.
| <inputs> | ||
| <param name="input" type="data" format="txt" label="Text"/> | ||
| <param name="language_model" type="select" label="Language Model"> | ||
| <options from_data_table="corenlp_models"> |
There was a problem hiding this comment.
you are not filtering by version here, do you? So later versions of this tool will show all models, even if they are not combat?
| <command detect_errors="exit_code"><![CDATA[ | ||
| ln -s '${language_model.fields.models_path}' ./model.jar && | ||
| #if $annotators == "coref" | ||
| ln -s "\$(dirname '${language_model.fields.models_path}')/stanford-corenlp-@TOOL_VERSION@-models.jar" ./common.jar && |
There was a problem hiding this comment.
Where is the language encoded here? This path does not exists, does it?
wouldn't it make more sense to have the following layout of the data table:
french French fr 4.5.10 /path/to/4.5.10/stanford-corenlp-models-french.jar
Summary
CoreNLP Tool Features
Data Manager Features
Test plan
🤖 Generated with Claude Code