Product · Governance
Trust your taxonomy again.
Every change records who, what, when, and why. Revert any one. Tag known-good states. Compare tags side by side. Catch broken references before they reach the API. This is what was missing from the spreadsheet.
Change events
Every change is a record.
Create, update, delete, revert, tag, bulk_import — six event kinds, one timeline. Every event captures author, timestamp, entity, and an optional message. The timeline is the audit log; the audit log is the timeline.
- Filterable by event kind, entity, author, scheme
- Click any event to see the field-level diff
- Author avatar with initials and color from the workspace
- Available via the API for export to your own audit pipeline
{
"id": "ce_2389",
"kind": "update",
"entityKind": "concept",
"entityId": "c_camry",
"entityName": "Toyota Camry",
"summary": "Edited prefLabel · en",
"message": "Match the 2026 marketing copy",
"author": { "name": "Valentin", "initials": "VL" },
"at": "2026-04-25T14:32:08Z"
} Tags
Pin a state. Diff two states.
Tagging names a ChangeEvent (`v1.3`, `2026-Q2`). Downstream consumers pin API calls to the tag for stability. Tags can't be moved — to supersede a tag, append a new one. The tag-to-tag diff shows added, modified, and removed concepts as a single rollup.
- Unique tag names per ontology
- Tag list visible in History panel and Export modal
- Tag-to-tag diff with added / modified / removed counts
- Tags emit `tag.created` webhooks for downstream pipelines
Revert
Undo, without losing history.
Revert appends a new event that inverts a prior one. The original event stays visible in history. A revert can itself be reverted. For ranges (`revert everything since v1.2`) we generate one event per affected entity and run it as an async job.
- Single-event revert from the diff modal
- Multi-event revert with progress UI for large ranges
- Reverts are linked back to the original event for traceability
- Plain old append-only history — nothing is ever deleted
# Single event
curl -X POST "https://api.semlify.com/v1/change-events/ce_087/revert" \
-H "Authorization: Bearer $TOKEN" \
-d '{ "message": "wrong domain on poweredBy" }'
# Range revert (since tag v1.2)
curl -X POST ".../tags/v1.2/revert-since" -H "..." Validation panel
Catch issues before they ship.
A live panel that runs every check on every edit. Orphan concepts, domain / range violations, duplicate prefLabels per scheme, deprecated-but-still-referenced. Click any issue to jump to the offender. Filter by severity. Resolve in place.
- Five built-in rules covering the most common drift patterns
- Errors block exports; warnings don't
- Runs on every save in under a second for ontologies up to 5,000 concepts
- Validation results exposed via the API so downstream pipelines can react
Stop being afraid to change a concept.
Every change is reversible. Every state is reachable. Free workspace, no credit card.