Skip to content

Replace OpenNLP via IKVM with NOpenNLP, #1438 - #1454

Draft
paulirwin wants to merge 3 commits into
apache:masterfrom
paulirwin:issue/1438
Draft

paulirwin wants to merge 3 commits into
apache:masterfrom
paulirwin:issue/1438

Conversation

@paulirwin

Copy link
Copy Markdown
Contributor
  • You've read the Contributor Guide and Code of Conduct.
  • You've included unit or integration tests for your change, where applicable.
  • You've included inline docs for your change, where applicable.
  • There's an open issue for the PR that you are making. If you'd like to propose a change, please open an issue to discuss the change or find an existing issue.

Replace OpenNLP via IKVM with NOpenNLP

Fixes #1438

Description

This replaces the Java-based Maven reference to OpenNLP that runs on IKVM, with the new community NOpenNLP project I started. This is a true C# port of OpenNLP, not requiring any Java runtime (and with only J2N as a dependency). (Note: the bulk of the porting work was done by Claude Code, but much was done by hand or with my JavaToCSharp project.) NOpenNLP is available on NuGet as prerelease currently as the NOpenNLP.Tools package.

NOpenNLP has dramatically better performance than OpenNLP via IKVM, and in some cases it even outperforms OpenNLP running in a real JVM, before doing any work to optimize for performance. You can see some of the early benchmarks in this PR description, or run them yourself at the NOpenNLP repo. All OpenNLP tests pass, and this will shave many GB off the build agents and minutes off the restore/build/test times.

AI: overview.md changes written by Claude Code (Opus 5); the rest by me.

paulirwin and others added 2 commits September 8, 2026 21:31
Replace the MavenReference primer, the opennlp-uima example, and the
IKVM Java 8 note with a section describing NOpenNLP, since the module
no longer runs the Java OpenNLP library under IKVM.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@paulirwin paulirwin added the notes:new-feature A new feature label Sep 9, 2026
@paulirwin
paulirwin marked this pull request as draft September 9, 2026 12:47
@paulirwin paulirwin added notes:performance-improvement Contains a performance improvement and removed notes:new-feature A new feature labels Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

notes:performance-improvement Contains a performance improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider replacing OpenNLP via IKVM with true .NET port

1 participant