Naming Standards

About the standardisation of naming within the SingularityNET Network.

Service Metadata Software

We currently provide a lot of freedom as to how entities in SingularityNET are named.

This can result in confusion as to how to capitalize and separate words in names. This document is a best practices guide. At some point these may get codified, such that smart contracts and our software can enforce them, but for now they are just for guidance.

Service URI

A service URI consists of three things:

  • Organization name
  • Service name

e.g. snet/face-detect

Here snet is the organization, and face-detect is the service name.

Service authors should use lowercase alphanumerics, for each of these components. Multiple word components should be slugified with dashes (wikipedia definition of “slug”) (i.e. dashes should separate the words).

This is analogous to a URL on the web. A domain name is case insensitive, and while a URL path can use capitalisation, many web applications will treat these paths as case insensitive.

Service Display Name

The service metadata can specify a display name for showing in the Marketplace and in other UIs. We don’t currently suggest any constraints on what this should be, except that it should be roughly similary to the service name used in the URI.

Internationalization and UTF-8

These fields are 8bit characters so they can support UTF-8. We don’t currently explicitly test and support this in our tooling yet.

When we make a push to support this, a naming standard for other languages may be necessary.

Service Tags

Tags should follow the style of popular sites like Stack Overflow). These are also lowercase slugified words, e.g. example-tag tags-are-great opencog artificial-neural-network etc.