How to track new terms

Tracking terms is done by declaring them and the service they are associated with. Such a declaration is achieved by editing JSON files in the declarations folder.

Before adding new terms, open the declarations folder and check if the service you want to track terms for is already declared. If a JSON file with the name of the service is already present, you can jump straight to the Terms reference. Otherwise, keep reading!

Declaring a new service ๐Ÿ”—

Before declaring a service, you will need to choose the service name and service ID. The service ID will be the name of the JSON file in which the service will be declared. It is a normalised version of the service name.

Service name ๐Ÿ”—

The service name is exposed to end users. It should reflect as closely as possible the official service name, as referenced in the terms or โ€œaboutโ€ pages, so that it can be recognised easily and unambiguously.

  • The service name should be the one used by the service itself, no matter the alphabet, UTF symbols, spaces, and casing.
    • Example: eBay.
    • Example: hi5.
    • Example: LINE.
    • Example: App Store.
    • Example: ั‚ัƒั‚ัƒ.ั€ัƒ (Cyrillic).
    • Example: ๆŠ–้Ÿณ็Ÿญ่ง†้ข‘ (Simplified Chinese characters).
  • Domain name extensions (TLDs) are allowed when they are part of the official service name.
    • Example: Booking.com.
    • Example: historielรฆrer.dk.
  • Service names can be prefixed by the provider name, separated by a space, when it would otherwise be too generic or ambiguous.
    • Example: Ads (by Facebook) โ†’ Facebook Ads.
    • Example: Analytics (by Google) โ†’ Google Analytics.
    • Example: Firebase (by Google) โ†’ Firebase.
    • Example: App Store (by Apple) โ†’ App Store.

If you have a hard time finding the service name, check out the practical guidelines to find the service name, and feel free to mention your uncertainties in the pull request! We will help you improve the service name if necessary ๐Ÿ™‚

Service ID ๐Ÿ”—

The service ID is exposed to developers. It should be easy to handle with scripts and other tools.

  • Non-ASCII characters are not supported. Service IDs are derived from the service name by normalising it into ASCII.
    • Example: RTร‰ โ†’ RTE.
    • Example: historielรฆrer.dk โ†’ historielaerer.dk.
    • Example: ั‚ัƒั‚ัƒ.ั€ัƒ โ†’ tutu.ru.
    • Example: ๆŠ–้Ÿณ็Ÿญ่ง†้ข‘ โ†’ Douyin.
  • Punctuation is supported, except characters that have meaning at filesystem level (:, /, \). These are replaced with a dash (-). The dot (.) is supported, but the service ID cannot be solely . or .. as these have specific meanings in the filesystem.
    • Example: Booking.com โ†’ Booking.com.
    • Example: Yahoo! โ†’ Yahoo!.
    • Example: re:start โ†’ re-start.
    • Example: we:// โ†’ we---.
  • Capitals and spaces are supported. Casing and spacing are expected to reflect the official service name casing and spacing.
    • Example: App Store โ†’ App Store.
    • Example: DeviantArt โ†’ DeviantArt.

If you have a hard time defining the service ID, check out the practical guidelines to derive the ID from the service name, and feel free to mention your uncertainties in the pull request! We will help you improve the service ID if necessary ๐Ÿ™‚

More details on the ID and naming constraints and recommendations can be found in the relevant decision record.

Service declaration ๐Ÿ”—

Once you have the service name and the service ID, create a JSON file in the declarations folder named after the ID of the service you want to add, with the following structure:

{
  "name": "<service name>",
  "documents": {}
}

Within the documents JSON object, you will now declare terms.