Skip to content

Releases: cycorp/api-suite

Cyc Core Client Implementation 1.0.0-rc5

24 Dec 00:23
Compare
Choose a tag to compare

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 which core-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 now cyc-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., the cyc-session-client project lives in the session-client directory.
  • The cyc-core-api-parent and cyc-core-client-parent POMs now inherit from cyc-api-parent,
    which inherits from cyc-default-config-parent.
  • Assorted bug fixes.

Cyc Core API Specification 1.0.0-rc5

24 Dec 00:19
Compare
Choose a tag to compare
Pre-release

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-specand
    core-client.
  • The relevant artifacts generated by these projects (the artifacts that projects are typically
    expected to specify as dependencies) are cyc-core-api and cyc-core-client-impl, respectively.
  • Introduces implementation-independent factory classes for Core API objects. Code written against
    the cyc-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 which core-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 now cyc-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., the cyc-session-client project lives in the session-client directory.
  • The cyc-core-api-parent and cyc-core-client-parent POMs now inherit from cyc-api-parent,
    which inherits from cyc-default-config-parent.
  • Assorted bug fixes.

Cyc Core API Suite 1.0.0-rc4

09 Dec 22:46
Compare
Choose a tag to compare
Pre-release

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 into com.cyc.nl.Paraphraser interface (in Core
    API Spec) and com.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

09 Dec 22:45
Compare
Choose a tag to compare
Pre-release

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 and OpenCycUnsupportedFeatureException 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

09 Dec 22:45
Compare
Choose a tag to compare
Pre-release

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 accurate cyc-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

09 Dec 22:44
Compare
Choose a tag to compare
Pre-release

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.