# $comment
This is an implementation of schema.org
[`Action`](https://schema.org/Action).

In Stencila Schema it provides a neutral activity/event record for
provenance. Actions may be used as standalone nodes in document models or
attached to `GraphEdge.actions` when a concrete activity explains a
resource-flow relationship. Actions retain schema.org metadata such as the
agent, object, result, instrument, status, and timing.

The schema.org `object` and `result` properties are exposed as the plural
Stencila properties `objects` and `results` because an action can consume or
produce several resources or literal values. The singular schema.org property
names are retained as aliases.

More specific action types such as [`CreateAction`](./create-action.md),
[`ExecuteAction`](./execute-action.md), and
[`ConvertAction`](./convert-action.md) should be used when the activity kind
is known.

# analogues[].notes
Direct schema.org source type, used as the common base for provenance activities.

# properties.type.$comment
This is a special property analogous to JSON-LD's `@type` keyword.

# properties.id.$comment
This is a special property analogous to JSON-LD's `@id` keyword.

# properties.identifiers.description
Any kind of identifier for any kind of Thing.

# properties.identifiers.$comment
Some identifiers have specific properties e.g the `issn` property for
the `Periodical` type. These should be used in preference to this
property which is intended for identifiers that do not yet have a
specific property. Identifiers can be represented as strings, but
using a `PropertyValue` will usually be better because it allows
for `propertyID` (i.e. the type of identifier).

# properties.agent.description
The direct performer or driver of the action.

# properties.participants.description
Other agents that participated in the action.

# properties.provider.description
The service provider, service operator, or performer responsible for the action.

# properties.objects.description
The objects or input values upon which the action is carried out.

# properties.results.description
The objects or values produced by the action.

# properties.instrument.description
The object, software, or other instrument that helped perform the action.

# properties.environment.description
Environment variables or settings that affected the action.

# properties.environment.$comment
This follows the Workflow Run RO-Crate pattern of representing execution
environment settings as `PropertyValue` values attached to an action.
Use this for settings that are part of the runtime environment rather
than ordinary command-line or document parameters.

# properties.containerImages.$comment
This follows the Workflow Run RO-Crate `containerImage` property. A string
value may be used when only an image URI or locator is known; a
`ContainerImage` value should be used when registry, tag, or digest
metadata is available.