Verbs & vocabulary
Every statement names what happened with a verb. Verbs are URIs, the registry is descriptive rather than prescriptive, and Empress never rejects a statement because it hasn’t seen the verb before.
Verbs are URIs
Section titled “Verbs are URIs”In xAPI, a verb is identified by a URI, not a bare word. The URI makes the verb globally unambiguous: http://adlnet.gov/expapi/verbs/completed means the same thing in every tenant’s ledger, while two teams using the plain word “completed” might mean different things. A human-readable display name rides along in the statement, but the URI is the identity.
"verb": { "id": "http://adlnet.gov/expapi/verbs/completed", "display": { "en-US": "completed" }}The any-verb principle
Section titled “The any-verb principle”Ingestion validates structure, never vocabulary. A well-formed statement with a verb Empress has never seen is stored and becomes queryable, exactly like one using a registered verb. The intelligence about what verbs mean lives in the analytics layer, where it can improve without ever having rejected data it didn’t yet understand. The registry below is documentation of what’s in use — it is not an allowlist.
Common registered verbs
Section titled “Common registered verbs”These come from the canonical registry — a mix of ADL core and community vocabularies that cover most learning and interaction events.
| Verb | URI | Meaning |
|---|---|---|
| completed | http://adlnet.gov/expapi/verbs/completed | Finished an activity |
| passed | http://adlnet.gov/expapi/verbs/passed | Met success criteria |
| failed | http://adlnet.gov/expapi/verbs/failed | Did not meet success criteria |
| scored | http://adlnet.gov/expapi/verbs/scored | Achieved a score |
| experienced | http://adlnet.gov/expapi/verbs/experienced | General activity engagement |
| answered | http://adlnet.gov/expapi/verbs/answered | Responded to a quiz or question |
| attempted | http://adlnet.gov/expapi/verbs/attempted | Started an activity without completing it |
| progressed | http://adlnet.gov/expapi/verbs/progressed | Advanced within an activity |
| mastered | http://adlnet.gov/expapi/verbs/mastered | Demonstrated proficiency |
| interacted | http://adlnet.gov/expapi/verbs/interacted | General interaction with an object |
| launched | http://adlnet.gov/expapi/verbs/launched | Started an application or activity |
| bookmarked | http://id.tincanapi.com/verb/bookmarked | Saved something for later |
Bring your own vocabulary
Section titled “Bring your own vocabulary”When an existing ADL, SCORM, or TinCan verb matches your semantics, prefer it — shared vocabulary makes cross-tenant analytics sharper. When nothing captures the meaning, mint a verb under a namespace you control, for example https://your-app.example/verbs/refactored, and start emitting it. No platform change is required and nothing needs approval before your data flows. New verbs that prove broadly useful get promoted into the canonical registry and documented; until then they work exactly the same.
Next: Concepts · API reference · Quickstart