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.