SSTIM
Guide 02 / 06

Reuse the ontology

Choose profiles, publish Turtle and retrieve versioned concepts.

Data modeller · researcher · integratorBeginner to intermediate

SSTIM supplies shared classes, properties and controlled concepts. You mint your own records under a namespace you control. The released ontology describes vocabulary; it does not validate a scientific effect.

Example 01

Choose the smallest usable profile

Avoid downloading an entire ontology when your description only needs a stimulus and its delivery channel.

  1. Use kernel for upper-level process anchors; core for signals/channels/rendering; core-plus when numeric extents are needed; full for techniques, protocols, sessions, exposure and evidence.
  2. For a reproducible publication, pin the ontology to a frozen release such as v0.19.0. The unversioned development manifest is not frozen.

Example 02

Download and inspect an immutable release

Fetch a release manifest and one of the module files without cloning the repository.

  1. Use the pinned versioned URL. Consult the manifest to find the correct profile closure and SHA-256 checksums.
  2. Do not infer module dependencies from filenames or use a mutable development manifest as a fixed citation.
bashCopy into your editor / terminal
curl -fsSL https://w3id.org/sstim/0.19.0/manifest.json -o sstim-manifest.json
curl -fsSL https://w3id.org/sstim/0.19.0/sstim-core.ttl -o sstim-core.ttl

Example 03

Reuse published terms in your own RDF

Publish a stimulus record that can be interpreted by other systems using the same stable vocabulary.

  1. Start from the checked Core profile example and replace the example.org namespace with a domain you control.
  2. Preserve all sstim: terms exactly and validate before sharing. Never mint new terms under w3id.org/sstim.
bashCopy into your editor / terminal
curl -fsSL https://raw.githubusercontent.com/w3c-cg/sstim/main/examples/01-stimulus-core.ttl -o my-stimulus.ttl
# Replace only the example record namespace with your own domain.
# Then validate using the Python or JavaScript client.

Example 04

Retrieve concept definitions and mappings as JSON

Build a local search index, documentation browser or ontology-aware agent using exact published terms.

  1. Fetch the API discovery index, then the release-qualified catalog.
  2. Search the catalog client-side by label, IRI or CURIE. Fetch the detail file using the returned relative path; do not derive it from a human-readable label.
javascriptCopy into your editor / terminal
const base = 'https://w3c-cg.github.io/sstim/api/v1/'
const discovery = await (await fetch(base + 'index.json')).json()
const catalogUrl = new URL(discovery.catalog, base)
const catalog = await (await fetch(catalogUrl)).json()
const terms = catalog.terms.filter(t => t.label.toLowerCase().includes('stimula'))
for (const term of terms.slice(0, 3)) {
  const detail = await (await fetch(new URL(term.path, catalogUrl))).json()
  console.log(detail.iri, detail.definitions, detail.relationships)
}

Example 05

Check that a term really exists

Avoid invented SSTIM terms and identify the module that defines them.

  1. Search the generated Term Index before concluding a concept is absent.
  2. In a repository checkout use locate-iri.py for a direct cross-source check. If the term is missing, propose it through the public contribution flow.
bashCopy into your editor / terminal
python3 scripts/locate-iri.py sstim:composedOfTrack