PRACTICAL REUSE

Software technology name normalization

Different systems can describe the same technology with different names. Normalize a released name or alias to its stable canonical ID while retaining the original input.

Search, resolve, inspect

Release-derived input: "JavaScript". Search globally for candidates, resolve the exact name or available alias, and inspect the returned identity, lifecycle, classifications and relationships. For this released example, the expected candidate is JavaScript, tech_000000000000009YBMQKJJXTT7.

curl --fail-with-body 'https://technologies.quea.st/api/v1/technologies?q=JavaScript&limit=25'
curl --fail-with-body 'https://technologies.quea.st/api/v1/technology-resolutions?name=JavaScript'
curl --fail-with-body 'https://technologies.quea.st/api/v1/technologies/by-id/tech_000000000000009YBMQKJJXTT7'

Ambiguity and no-match handling

An ambiguous resolution needs review of all candidates; do not silently choose the first result. A no-match response is a missing match, not proof that a technology does not exist. Preserve unresolved input for review before proposing a new identity. Available aliases vary by record; these examples do not invent aliases.

Repeatable normalization with pinned JSON

The API uses the active release. For reproducibility, download release 2026.10.7 with schema 1.2.1, verify its checksum, and keep those exact bytes. This offline example uses jq for exact, case-sensitive matching against the released spelling and returns every match. Review an empty or multi-item result.

curl --fail-with-body -O 'https://technologies.quea.st/downloads/2026.10.7.json'
curl --fail-with-body -O 'https://technologies.quea.st/downloads/2026.10.7.json.sha256'
shasum -a 256 -c '2026.10.7.json.sha256'
jq --arg input 'JavaScript' '[.technologies[] | select(.name == $input or ((.aliases // []) | index($input))) | {canonical_id,name,slug}]' '2026.10.7.json'

Expected candidate output (inspect any additional matches):

[
  {
    "canonical_id": "tech_000000000000009YBMQKJJXTT7",
    "name": "JavaScript",
    "slug": "javascript-358446000000396103"
  }
]

Store canonical_id as your durable join key, with the input, version, schema and checksum. Names, slugs and classifications can change between releases. Dataset license: CC-BY-SA-4.0.