/dictum

Java NLP schema with functional style

Primary LanguageJavaApache License 2.0Apache-2.0

Circle CI Maven Badges javadoc.io codecov

Current Break version:

<dependency>
  <groupId>io.maxthomas</groupId>
  <artifactId>dictum</artifactId>
  <version>0.6.0</version>
</dependency>

dictum

Java NLP schema with functional style

Dictum is a wrapper around Concrete. While a Java library exists, the Thrift generated code leads to a ton of boilerplate, prone to NullPointerExceptions and other landmines. This project is an attempt to resolve some warts in concrete-java. In particular:

  • Some class names have changed to be more clear. Example: SituationMentionSet is not actually a set (as in, the data structure). In dictum, this class is renamed SituationMentionGroup.
  • Null hostility. Attempts to set values to null will result in unchecked NullPointerExceptions.
  • Validation. Attempts are made to validate data structures that have embedded, non-semantic rules. These are 'fail-fast': invalid data is treated as hostile, and an exception is throw immediately upon calling the .build() method on the Builder objects.
  • Use of FreeBuilder to implement the Builder pattern on the objects and more effectively control required, default and optional fields.

License

See LICENSE in root directory.