Java API Concepts
Eduction SDK provides a Java API that enables your application to create an extraction engine and perform entity extractions.
This section describes the concepts used to write Java applications with the Eduction SDK.
The Java SDK consists of:
- a JAR file,
edk.jar
, which contains the Eduction Java class library and the interface to the Eduction Java Native Interface (JNI). - a DLL (Windows) or shared object (MacOS and Linux),
edkjni.dll
oredkjni.so
, which implements the Eduction JNI library and performs the Eduction functionality.
Java developers can use either the Eduction JNI, the class library, or both. The JNI provides functionality almost identical to that of the Eduction C API. The class library encapsulates related JNI methods, implements exception handling, and provides return values from method calls that simplify application programming.
NOTE: You might also need additional runtime libraries to run the Eduction SDK. See Eduction SDK Package.
Naming Conventions
The main JNI class that provides access to native functionality is EDKJNI
. Support classes for the JNI are prefixed with EDKJNI
, for example EDKJNIVersion
.
The Eduction class library classes are prefixed with EDK
, for example EDKEngine
.
Concurrency Control
Concurrency in Eduction is handled using sessions, represented by an EDKSession
object.
You initialize an instance of an EDKEngine
object with corresponding grammars for entity extraction. You can associate each such engine with one or more sessions. All the sessions in the engine share the same grammars. You must configure the engine fully before you create any sessions.
After you create a session, the engine throws an exception if you try to change the engine settings. However, each individual session can process many documents or streams. Each session maintains its state independent of others.