Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 21 additions & 37 deletions content/user-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -400,46 +400,30 @@ refer to a consistent identity of an individual.

### Roles

The `Role` type property is used within the `author` or `contributor`
properties to further define the participation of a `Person`. The property is
intended to clarify the functional area the individual with the free-form
value of the `roleName` property.

An example author role:

```json
"author": [
...
{
"roleName": "User Experience Design",
"schema:author": "https://github.com/octocat",
"type": "Role"
},
...
]
```

Or a contributor:
The `Role` type is used to define the contribution of a `Person`, describing
their contribution independently. It allows a `Person`, through their `id`,
to be linked to all of their various roles.

One `Person` can be credited for multiple kinds of `Role`. This means, for
example, that someone can be credited as "Developer" and for "Documentation".
Multiple people can be attributed to the same `roleName`. A `Role` can also be
defined for a specific period of time by using the `startDate` and `endDate`
properties.

Defining a `Role` is not a substitute for defining properties that are named
like roles. For example, the maintainer(s) may change over time and may retain
attribution after their `endDate`. For clarity `maintainer` should only contain
the current holder(s) of that position.
{.tip}

```json
"contributor": [
...
{
"roleName": "Documentation",
"schema:author": "https://github.com/octocat",
"type": "Role"
},
...
]
```
The `roleName` property can have any descriptive role name desired, or a URL
It defines the type of contribution. The use of `id` avoids duplicating the
details for a person, which keeps them consistent and easy to update.

This is distinct from the `maintainer` property, which should be defined
independently as a top-level property of the document, containing at least
one `Person`.
The `Role` must link to a `Person` also defined in the document, typically
under `author` or `contributor`. The example below demonstrates the `id` and
`schema:author` values providing this link.

The `Role` must link to a `Person` previously defined in the top-level
property. The example below demonstrates the `id` and `schema:author` values
providing this link.

```json
"author": [
Expand Down
Loading