Skip to content
This repository has been archived by the owner on Jul 3, 2024. It is now read-only.

IBM/wcs-ocaml

Repository files navigation

SDK and command line interface for Watson Assistant

wcs-ocaml is a source development kit in OCaml and command line interface for Watson Assistant (formerly Watson Conversation Service, or WCS). It allows to program chat bots in OCaml.

  • wcs-lib provides a framework to write WCS programs, called workspaces. It also offers an OCaml binding to the service API and a generic client application.
  • wcs is a command line tool that interact with the service.

The documentation is available online or in the directory docs.

Install

Quick install with Opam

You can install wcs-ocaml with the following command:

opam install wcs

This will install the following packages:

  • wcs-lib
  • wcs

Install from source with Opam

Opam can also be used to compile and install from the source directory. For that you first need to pin the source directory. So, from this directory, do:

opam pin add wcs-lib .
opam pin add wcs .

Then you can install using the command:

opam install wcs

If the source files are modified, the packages must be reinstalled with the command:

opam reinstall wcs-lib

Building from source

Prerequistes

To build from source, you will need to install the dependencies listed in the depends field of the *.opam files.

An easy way to get set up on most platforms is to use the OCaml package manager (https://opam.ocaml.org). Once opam is installed, you can just add the corresponding libraries:

opam install ocamlfind sedlex menhir rml ...

Compiling

To compile, do:

make

Make a new release

In order to do a new release, we have to do the following steps.

  1. Make sure that the documentation is up to date:
make webdoc
  1. Search and update the version number:
grep -r -e '\d\d\d\d-\d\d-\d\d.\d\d-dev' .
  1. Update the CHANGES.md file.

  2. Create a new release on the github interface: https://github.com/IBM/wcs-ocaml/releases

  3. Create a new release of the opam packages.

git checkout master
git fetch --all
git merge --ff-only upstream/master
git push
  • Create a new branch
git checkout -b wcs-XXXX-XX-XX.XX
  • Create the new packages from the old ones:
cp -R packages/wcs-lib/wcs-lib.YYYY-YY-YY.YY packages/wcs-lib/wcs-lib.XXXX-XX-XX.XX
cp -R packages/wcs/wcs.YYYY-YY-YY.YY packages/wcs/wcs.XXXX-XX-XX.XX
  • Update the opam files:
cp WCS_OCAML_DIR/wcs-lib.opam packages/wcs-lib/wcs-lib.XXXX-XX-XX.XX/opam
cp WCS_OCAML_DIR/wcs.opam packages/wcs/wcs.XXXX-XX-XX.XX/opam
  • Update the url files
emacs packages/wcs-lib/wcs-lib.XXXX-XX-XX.XX/url
cp packages/wcs-lib/wcs-lib.XXXX-XX-XX.XX/url packages/wcs/wcs.XXXX-XX-XX.XX/url
  • Commit and push the changes
git push origin wcs-XXXX-XX-XX.XX
  1. Once the pull request is accepted update the version number.

Contribute

Contributions and bug reports are welcome! To contribute please follows the instructions given in the file CONTRIBUTING.md.