Reuse the ontology
Choose profiles, publish Turtle and retrieve versioned concepts.
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.
- 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.
- 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.
- Use the pinned versioned URL. Consult the manifest to find the correct profile closure and SHA-256 checksums.
- Do not infer module dependencies from filenames or use a mutable development manifest as a fixed citation.
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.ttlExample 03
Reuse published terms in your own RDF
Publish a stimulus record that can be interpreted by other systems using the same stable vocabulary.
- Start from the checked Core profile example and replace the example.org namespace with a domain you control.
- Preserve all sstim: terms exactly and validate before sharing. Never mint new terms under w3id.org/sstim.
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.
- Fetch the API discovery index, then the release-qualified catalog.
- 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.
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.
- Search the generated Term Index before concluding a concept is absent.
- 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.
python3 scripts/locate-iri.py sstim:composedOfTrack