Service Integration Guidelines


#1

Guidelines for service integration in SingularityNET

These are guidelines to help SingularityNET developers to write/integrate new AI services to the platform.

Supported languages

SingularityNET services use gRPC which is an open-source universal RPC framework. So any new service must provide its API in gRPC.

gRPC supports several programming languages and a guide for each of them is available here.

  • C++
  • Java
  • Python
  • Go
  • Ruby
  • C#
  • Node.js
  • Android Java
  • Objective-C
  • PHP

There are tutorials with step-by-step instructions for implementing a new service in each of these languages:

If you already have a gRPC service, this tutorial explains how to publish it in SingularityNET:

Make sure you follow our naming standardisation guidelines.

AI frameworks

There are a couple of AI frameworks integrated to SingularityNET so you can just add new functionalities to services which are already published.

  • Opencog: an open-source software project aimed at directly confronting the AGI challenge, using mathematical and biological inspiration and professional software engineering techniques.

There are tutorials with step-by-step instructions on how to extend the existing AI framework service in order to implement new functionalities:

Third-party code and models

Before publishing a service based on third-party code or model(s), make sure you follow all the guidelines below.

  1. The service is FREE.
  2. The main documentation of the service (e.g. README.md) mentions (crystal clear) that the service is based on third-party work.
  3. The original work (code, paper, model etc) is clearly mentioned and properly linked in README.
  4. The authors of the original code or model(s) are clearly mentioned in README.
  5. Any licenses attached to the original work is mentioned in README.
  6. The terms of any license attached to the original work allows its use in SNET.

See this example of third-party based service documentation which is fully compliant with these guidelines.

Service documentation

All the following documentation is mandatory for any service.

  1. README (see our recommended templates) describing the structure of the repository and how to build/test the service. This is a sort of “developer’s guide” aimed at people interested in extending or reusing the service.
  2. docs/index.html pointed by standard Github Pages describing how to use the service. This is the “user’s guide” of your service.
  3. LICENSE with SNET standard license.

If you are extending an existing service. Follow any particular guidelines of the specific project and make sure you update all the aforementioned documents accordingly.

See this example of service documentation which is fully compliant with these guidelines.

Contributing to existing projects

SingularityNET have several AI service integration projects. See our github for a list of them. Before contributing to any of thees, please read our contribution guidelines.


This is a companion discussion topic for the original entry at https://dev.singularitynet.io/tutorials/integration/