Releases: cycorp/api-suite
Cyc Core Client Implementation 1.0.0-rc5
The fifth release candidate of Cycorp's Java API suite, and the first in which the Core API
specification and the Core Client implementation are packaged as wholly separate artifacts.
1.0.0-rc5 is not backwards-compatible with earlier API releases. Note that ResearchCyc 4.0q and
EnterpriseCyc 1.7-preview require server code patching for compatibility
with the 1.0.0-rc5 release.
API & implementation division
There is now a clean division between the Core APIs and their reference implementation; they have
been split into two artifacts:
- The implementation-independent Core API specification:
core-api-spec
- The Core Client reference implementation:
cyc-core-client-impl
See the CHANGELOG in the Cyc Core API (v1.0.0-rc5) for additional details.
Other changes
- The Cyc Core API GitHub repository has been renamed and expanded into the
Cyc Java API Suite repository, of whichcore-api-spec
and
core-client
are sub-projects. - Reorganization of classes (especially exceptions) within the com.cyc.* package space.
- Implementation projects built on the Base Client have had their artifactIds renamed to incorporate
the word "client". E.g.,cyc-core-suite
is nowcyc-core-client-impl
,cyc-session
is now
cyc-session-client
, etc. - Project/module directories have been renamed to mirror their artifactIds, dropping the "cyc-"
prefix. E.g., thecyc-session-client
project lives in thesession-client
directory. - The
cyc-core-api-parent
andcyc-core-client-parent
POMs now inherit fromcyc-api-parent
,
which inherits fromcyc-default-config-parent
. - Assorted bug fixes.
Cyc Core API Specification 1.0.0-rc5
The fifth release candidate of Cycorp's Java API suite, and the first in which the Core API
specification and the Core Client implementation are packaged as wholly separate artifacts.
1.0.0-rc5 is not backwards-compatible with earlier API releases. Note that ResearchCyc 4.0q and
EnterpriseCyc 1.7-preview require server code patching for compatibility with the 1.0.0-rc5
release. See the Cyc Core Client for details.
The overarching goal of this revision is to be the last release before 1.0.0 with any compatibility-
breaking changes. Note, however, that this is not a guarantee: additional disruptive changes may
be made before 1.0.0 if deemed necessary.
API & implementation division
There is now a clean division between the Core APIs and their reference implementation; they have
been split into two artifacts:
- The implementation-independent Core API specification:
core-api-spec
- The Core Client reference implementation:
cyc-core-client-impl
Details:
- The
core-api-suite
project has been split into two sibling projects:core-api-spec
and
core-client
. - The relevant artifacts generated by these projects (the artifacts that projects are typically
expected to specify as dependencies) arecyc-core-api
andcyc-core-client-impl
, respectively. - Introduces implementation-independent factory classes for Core API objects. Code written against
thecyc-core-api
should typically not need to refer to any implementation-specific classes or
methods (although an implementation library will need to be present at run-time.)
In short, you'll typically need to include two dependencies to use the Core APIs. For example, in
Maven:
<dependency>
<!-- Core API specification -->
<groupId>com.cyc</groupId>
<artifactId>cyc-core-api</artifactId>
<version>1.0.0-rc5</version>
<scope>compile</scope>
</dependency>
<dependency>
<!-- Reference implementation for the Core API -->
<groupId>com.cyc</groupId>
<artifactId>cyc-core-client-impl</artifactId>
<version>1.0.0-rc5</version>
<scope>runtime</scope>
</dependency>
Caveat: Some functionality, such as proofview generation, is not yet represented in the Core API
spec, so there are still some cases in which the user might need to write code against
cyc-core-client-impl. This functionality will be added to the Core API Spec in an upcoming revision.
API consistency
- All
cyc-core-api
class names and method signatures conform to the
Google Java Style coding standards.
Other changes
- The Cyc Core API GitHub repository has been renamed and expanded into the
Cyc Java API Suite repository, of whichcore-api-spec
and
core-client
are sub-projects. - Reorganization of classes (especially exceptions) within the com.cyc.* package space.
- Implementation projects built on the Base Client have had their artifactIds renamed to incorporate
the word "client". E.g.,cyc-core-suite
is nowcyc-core-client-impl
,cyc-session
is now
cyc-session-client
, etc. - Project/module directories have been renamed to mirror their artifactIds, dropping the "cyc-"
prefix. E.g., thecyc-session-client
project lives in thesession-client
directory. - The
cyc-core-api-parent
andcyc-core-client-parent
POMs now inherit fromcyc-api-parent
,
which inherits fromcyc-default-config-parent
. - Assorted bug fixes.
Cyc Core API Suite 1.0.0-rc4
The fourth release candidate of Cycorp's new Java API suite for interacting with the Cyc inference engine and knowledge base.
For more information, view the README.md bundled with this release or visit the Cyc Developer Center.
Note that 1.0.0-rc4 is not backwards-compatible with earlier releases. It is expected that more release candidates will follow. Until the final 1.0.0 release, it is expected that future release candidates will break backwards compatibility.
Changes
Query API
- Instead of creating Query objects directly, call QueryFactory.getQuery(...)
- Query API no longer uses BaseClient CycObjects.
Natural language
- Adds com.cyc.nl package to Core API Specification to support upcoming release of NL API.
- Split
com.cyc.baseclient.nl.Paraphraser
class intocom.cyc.nl.Paraphraser
interface (in Core
API Spec) andcom.cyc.baseclient.nl.ParaphraserFactory
class (in Base Client).
Session API
- Adds API support for closing CycSessions and SessionManagers. See
Session API Connection Management
for details. - Significant improvements to session resource management, especially CycAccess management.
- Bug fixes for threading issues.
Other changes
- Critical bug fixes related to obfuscated functions in the planned upcoming release of
OpenCyc 5.0-preview. - Assorted bug fixes.
Example code
Example code designed to work with this release may be found in Cyc Core API Use Cases 1.0.0-rc4.
Standalone Bundle
If you're not using Apache Maven, or can't allow Maven to retrieve dependencies from the Internet, you may download this release in a standalone bundle containing:
- A compiled
cyc-core-suite-1.0.0-rc4-jar-with-dependencies.jar
- A
CoreAPITests
project containing the source code for all of the unit tests from the Core API Suite, and the dependencies necessary to run them. This project may be run in Maven or as a native Eclipse project. - The CycCoreAPI source code (requires Maven to compile)
- The CoreAPIUseCases source code (requires Maven to compile)
The bundle is available from the releases page as a tar or zip file.
Cyc Core API Suite 1.0.0-rc3
The third release candidate of Cycorp's new Java API suite for interacting with the Cyc inference engine and knowledge base.
For more information, view the README.md bundled with this release or visit the Cyc Developer Center.
Note that 1.0.0-rc3 is not backwards-compatible with earlier releases. It is expected that more release candidates will follow. Until the final 1.0.0 release, it is expected that future release candidates will break backwards compatibility.
Changes
New: Support for upcoming OpenCyc release
Adds support for the planned upcoming release of OpenCyc 5.0-preview. Note that the OpenCyc server will not have support for advanced features such as QuerySearch or ProofViewJustification. Classes and methods which are not supported by OpenCyc will reflect this in their javadoc description and in their signature by declaring that they throw a com.cyc.session.exception.OpenCycUnsupportedServerException
.
There are no plans to support previous versions of OpenCyc.
Improved: Core API Specification
- Query API interfaces moved into CoreAPISpec Maven module.
- Adds the QueryFactory (
com.cyc.query.QueryFactory
) to facilitate query construction. - Compatibility with different Cyc server editions and versions is now better-documented via the
UnsupportedCycOperationException
andOpenCycUnsupportedFeatureException
exceptions.
Other changes
- Speeds up KB API conversion of terms to KBObjects, which in turn speeds up
Query#getResultSet()#getKBObject()
. This resolves issue 2. - Core API Suite can detect and apply missing SubL code patches to a Cyc server. This behavior is disabled by default, but is easily enabled via System properties. See server-patching.md for details.
- Links to Cyc Dev Center have been modified to reflect improved URL scheme.
- Assorted bug fixes.
Example code
Example code designed to work with this release may be found in Cyc Core API Use Cases 1.0.0-rc3.
Standalone Bundle
If you're not using Apache Maven, or can't allow Maven to retrieve dependencies from the Internet, you may download this release in a standalone bundle containing:
- A compiled
cyc-core-suite-1.0.0-rc3-jar-with-dependencies.jar
- A
CoreAPITests
project containing the source code for all of the unit tests from the Core API Suite, and the dependencies necessary to run them. This project may be run in Maven or as a native Eclipse project. - The CycCoreAPI source code (requires Maven to compile)
- The CoreAPIUseCases source code (requires Maven to compile)
The bundle is available from the releases page as a tar or zip file:
- cyc-core-suite-standalone-1.0.0-rc3.tar.gz
- cyc-core-suite-standalone-1.0.0-rc3.zip
Cyc Core API Suite 1.0.0-rc2
The second release candidate of Cycorp's new Java API suite for interacting with the Cyc inference engine and knowledge base.
For more information, view the README.md bundled with this release or visit the Cyc Developer Center. Note that 1.0.0-rc2 is not backwards-compatible with earlier releases.
Changes
New: Core API Suite Bundle
Adds the Core API Suite Bundle module (artifact cyc-core-suite
in the CoreAPISuite
subdir) which packages all API interfaces and implementation classes. Details:
- Produces a single
cyc-core-suite
artifact which can be specified instead of individually
specifying cyc-session, cyc-kb, etc. - Builds a single jar (in maven parlance, an "uberjar") which contains all of its dependencies.
Useful for some environments where it is complicated to pull binaries down from the Internet.
New: Core API Specification
Adds the Core API Specification module (artifact cyc-core-api
in the CoreAPISpec
subdir) to
consolidate and clarify the interfaces which define the Core API Suite. Details:
- KB API interfaces moved into CoreAPISpec.
- Session API interfaces moved into CoreAPISpec.
Other changes
- Fixes tests which were failing against EnterpriseCyc.
- Changes parent pom artifactId from
cyc-core-api
to the more accuratecyc-core-parent
. - KB API test suite should no longer seem to hang per
issue 1. - Updates developer email address in pom files to one which people can actually send mail to.
- Assorted updates in pom files to name and description elements.
Example code
Example code designed to work with this release may be found in Cyc Core API Use Cases 1.0.0-rc2.
Standalone Bundle
If you're not using Apache Maven, or can't allow Maven to retrieve dependencies from the Internet, you may download this release in a standalone bundle containing:
- A compiled
cyc-core-suite-1.0.0-rc2-jar-with-dependencies.jar
- A
CoreAPITests
project containing the source code for all of the unit tests from the Core API Suite, and the dependencies necessary to run them. This project may be run in Maven or as a native Eclipse project. - The CycCoreAPI source code (requires Maven to compile)
- The CoreAPIUseCases source code (requires Maven to compile)
The bundle is available from the releases page as a tar or zip file:
- cyc-core-suite-standalone-1.0.0-rc2.tar.gz
- cyc-core-suite-standalone-1.0.0-rc2.zip
Cyc Core API Suite 1.0.0-rc1
First release candidate of Cycorp's new Java API suite for interacting with the Cyc inference engine and knowledge base. This package includes the following:
- KB API - Streamlines the lookup and creation of terms and assertions in the Cyc knowledge base.
- Query API - Tools for asking arbitrarily complex questions of a Cyc server, and dealing with the answers.
- Session API - Manages configurations and connections to Cyc servers.
- Base Client - Client for connecting to a Cyc server and handling HL data; not supported for external developers.
Example code designed to work with this release may be found in Cyc Core API Use Cases 1.0.0-rc1. Note that 1.0.0-rc1 is not backwards-compatible with the earlier 1.0.0-Preview release.
For more information, visit the Cyc Developer Center.