Skip to content

Verb

A Verb is an action an Agent or a person performs on a Noun, emitting one event when it completes.

A Verb is an action an Agent or a Human performs on a Noun, emitting one Event when it completes. Its name is Noun.verb, and its Event is the past tense: Offer.publish emits Offer.published.

Properties

PropertyTypeRequiredDescription
namestringrequiredThe camelCase action form.
eventstringrequiredThe event the Verb emits.
publishedInVersionThe first published Version that serves it; from then on, edits go through a Change and delete refuses.
statusstringrequiredOne of draft, published or retired.

Object

JSON
{
  "$id": "https://api.sb/patentpad.com/verbs/verb_1",
  "$type": "Verb",
  "name": "PatentPad",
  "event": "Example event",
  "publishedIn": "version_1",
  "status": "draft"
}

Relationships

  • A Verb acts on one Noun: every Verb acts on one Noun, which names it: Startup.launch acts on Startup. actsOn, inverse actedOnBy.
  • A Verb is allowed by many Permissions: each Permission allows one Verb, within its scope and Limit. allowedBy, inverse allows.
  • A Verb defaults to one Mode: the Mode a call uses when the caller names none: try, send or do. defaultsTo, inverse defaultFor.
  • A Verb is exposed as many Tools: a Tool is one Verb under one name on every Interface, such as Contact.create. exposedAs, inverse exposes.
  • A Verb is graded by many Evaluators: the Verbs whose results the Evaluator scores against its rubric before they count as done. gradedBy, inverse grades.
  • A Verb is implemented by many Functions: a Function is how a Verb runs: code, a generative model, an Agent or a Human, and the caller never sees which. implementedBy, inverse implements.
  • A Verb is invoked as many Actions: each Action performs one Verb, which fixes its inputs, the Event it emits and its delay window. invokedAs, inverse invokes.
  • A Verb is reserved by many Reserved Acts: the Verb the law reserves to a credentialed Human in the act’s jurisdiction. reservedBy, inverse reserves.
  • A Verb types many Relationships: a Relationship reads through a Verb whose forms name it from each side, such as makes and madeBy. types, inverse typedBy.

Lifecycle

Verb lifecycle: draft, published, retired (ends)draft → published: on Version.deployedpublished → retired: Verb.retiredraftpublishedretired
StateMeaningMoves to
draft (first)Defined and editable; no published Version serves it.published on Version.deployed when the deployed Version is the first to include this Verb
publishedA published Version serves it; edits go through a Change, and delete refuses.retired by Verb.retire
retiredNew Versions leave it out; callers pinned to earlier Versions keep calling it.None: it ends here.

Verbs

  1. createCreates a Verb.
    POST /{namespace}/verbsdoVerb.created
  2. getReturns one Verb by id.
    GET /{namespace}/verbs/{id}readNo Event
  3. listReturns Verbs, newest first, one page at a time.
    GET /{namespace}/verbsreadNo Event
  4. updateChanges the given properties of a Verb.
    PATCH /{namespace}/verbs/{id}doVerb.updated
  5. deleteDeletes a Verb; its history is kept.
    DELETE /{namespace}/verbs/{id}doVerb.deleted
  6. retireRetire removes a published Verb from new Versions; callers pinned to earlier Versions keep calling it.
    POST /{namespace}/verbs/{verb}/retiredoVerb.retired

Permissions

Which Access level may call each Verb. One-way Verbs wait their delay window.

Operationowneradminmemberviewer
Verb.createYesYesYesNo
Verb.getYesYesYesYes
Verb.listYesYesYesYes
Verb.updateYesYesYesNo
Verb.deleteYesYesYesNo
Verb.retireYesNoNoNo

Call it

Text
Retire the latest verb.

Example

An Agent runs Offer.publish on a $49-a-month contract-review Offer. The run is one Action: the Offer opens for acceptance, and Offer.published records the moment.