Installation

This software requires Java 8 or 11 in order to run as intended and Scala 2.11 or 2.12 along with Java in order to recompile it. Scala is often installed as part of sbt, the Scala Build Tool, which one would need to build the project or incorporate it into a different Scala project. sbt will be configured to use a compatible version of Scala automatically.

Beyond that, the bulk of this software is available in compiled jars on Maven Central and in source code at GitHub.

Use with Maven

To use processors with Maven, typically to build a Java project, simply add the dependencies below to your pom.xml file. Replace x.x.x with an actual version number; the latest stable version is 8.4.8.

Please note that some of the transitive dependencies for this project, including processors-models, are not available at Maven Central because of size limitations there. However, all but quite recent versions of Maven fetch these transitive dependencies automatically, so no additional configuration is usually needed. All you need are these:

<dependency>
   <groupId>org.clulab</groupId>
   <artifactId>processors-corenlp_2.12</artifactId>
   <version>x.x.x</version>
</dependency>
<dependency>
   <groupId>org.clulab</groupId>
   <artifactId>processors-main_2.12</artifactId>
   <version>x.x.x</version>
</dependency>

However, some versions of Maven will not fetch dependencies over the HTTP connection that is specified with some older versions of processors. (Newer versions use HTTPS, so only perform this step if necessary.) Maven can be coaxed into using HTTP by editing settings.xml. Specifically, this mirror needs to be added:

<mirror>
  <id>artifactory.cs.arizona.edu-http-unblocker</id>
  <mirrorOf>Artifactory</mirrorOf>
  <name></name>
  <url>http://artifactory.cs.arizona.edu:8081/artifactory/sbt-release</url>
</mirror>

Use with sbt

sbt does not follow transitive dependencies to non-standard repositories, so it does not fetch processors-models from either their old location or even new location without further configuration. An additional resolver must be provided, but thereafter the specification of the library is the same as with Maven. The equivalent sbt dependencies are

// Here is the new location using HTTPS.
resolvers += "clulab" at "https://artifactory.clulab.org/artifactory/sbt-release"
// Here is the old location using HTTP.  This resolver is deprecated and should no longer be used.
// resolvers += "Artifactory" at "http://artifactory.cs.arizona.edu:8081/artifactory/sbt-release"

libraryDependencies ++= {
  val procVer = "x.x.x"

  Seq(
    "org.clulab" %% "processors-main" % procVer,
    "org.clulab" %% "processors-corenlp" % procVer
  )
}

Some newer versions of sbt do not allow resolvers to use unencrypted HTTP connections. If sbt complains about the download from the old Artifactory server via HTTP, please either use the new server or change the one line to

resolvers += ("Artifactory" at "http://artifactory.cs.arizona.edu:8081/artifactory/sbt-release").withAllowInsecureProtocol(true)

External Binaries

Most processors dependencies are captured in the build.sbt files. However, a few unit tests also depend on the svm-rank binaries, which should be installed separately. Simply installing the svm-rank binaries to /usr/local/bin (or another generic location in your path) solves the problem.

Installing on Mac OS X via homebrew

On Mac OS X, you can also install these external binaries using brew:

brew tap myedibleenso/nlp
brew install svmlight svmrank

Skipping tests involving external binaries

Alternatively, when using sbt you can run just the unit tests that do not require external binaries with the following command:

sbt "test-only -- -l NeedsExternalBinary"

Compiling the Source Code

The source code is an sbt project, so use the usual commands, e.g., sbt compile to compile.