Name: A DotNames identifier, such as rahul.shm. Names consist of multiple parts, called labels, which are separated by dots.
Label: It refers to an individual component of a name, such as 'rahul'.
Labelhash: The keccak256 hash of an individual label.
Controller: The account that may edit the records of a name. It may be changed by the Registrant or Controller.
Owner: The owners of names in the DotNames registry can manage their names by transferring ownership, setting resolvers or TTLs, and creating or reassigning subdomains.
Registrar: A registrar is a contract responsible for allocating subdomains. Registrars can be configured at any level of DotNames, and are pointed to by the owner field of the registry.
Registration: A registration is a registrar's record of a user's ownership of a name, with expiry date and fees paid. It is separate from the registry's owner field.
Registrant: The owner of a registration. The registrant may transfer the registration, set the Controller, and reclaim ownership of the name in the registry if required.
Registry: The Registry is the core contract of DotNames. It maintains a mapping from domain name(at any level - x, y.x, z.y.x etc) to owner, resolver, and other metadata.
Resolver: A resolver is a contract that maps name to the resource (e.g. cryptocurrency addresses, content hash, etc). Resolvers are pointed to by the resolver field of the registry.