This repository hosts the registry of all tools used by the Switchboard (https://switchboard.clarin.eu).
The repository has two important branches:
production
is hosting the tools used by the production instance (https://switchboard.clarin.eu).master
is the development branch, with the tools used by testing and development versions of the Switchboard. The staging instance is https://beta-switchboard.clarin.eu.
- Take any of the json files describing a service from the
tools
directory in the repository and rename it and modify it to describe your tool. The json file name must be descriptive and unique, and should match the tool name in the json file. Thelogo
entry in the file should contain your unique logo file name. See the Tool description specification for more detailed explanations on the meaning of each field. - Add the new json file to a new branch in your own fork of the repository, in the
tools
directory. - Add the logo file to the same branch, in the
logos
directory. - Make sure that the new json file is correct according to the json schema defined in the specification file: spec-v2.schema.json. You can use one of the online schema validators (see https://json-schema.org/implementations.html#validators), or locally run the python script validate-all-tools.py in the
schemas
directory. - Make sure your tool responds correctly when called by the Switchboard. See the Tool Call API for more detailed explanations on how a tool is called and what parameters are being sent to the tool.
- Create a pull request for merging your branch in the
master
branch of this repository. - After the pull request has been merged, check the availability of your tool in the development instance of the Switchboard: https://beta-switchboard.clarin.eu.
- If you are satisfied with how the tool is integrated, create a new issue requesting the publication of your changes from
master
toproduction
. Our team will do the merge and close the issue.
The Tool description specification provides more information on the json description of the tools.
For details on how a tool is matched for a specific resource, see the Tool Matching document.
For details on how a tool is actually invoked when selected by the user, see the Tool Call API document.
Please note that you should use version 2 of the specification to interact with version 2 of the Tool Call API. You can still find version 1 of the Tool Description Specification (including the JSON) and the Tool Call API here for reference.