Contribution¶
Definition: An action or set of actions performed by an agent toward the creation, modification, evaluation, or deprecation of an artifact.
Description and Use:
- The Contribution class is the the core object in the CAM. They mediate a link between an Agent and an Artifact, and organize information about when, where, how, and in what context the agent contributed to the artifact.
- Ontologically, contributions are considered a type of process or activity. The scope of a Contribution activity includes only the actions of a single agent in contributing to a particular artifact, which may be performed in one continuous effort, or several discontinuous sessions of work.
- Contribution activities may include those leading to the initial creation or subsequent modification of an artifact, as well as activities that evaluate the artifact (e.g. to gauge its quality, completeness, status, or utility), or activities that deprecate an artifact such that it may no longer be used.
Information Model:
Field | Description | Cardinality | Requirement | Data Type |
---|---|---|---|---|
id | A unique string that identifies the contribution. | 1..1 | MUST | identifier |
type | The high-level class to which the contribution belongs (always set to ‘Contribution’). | 1..1 | MUST | class |
label | A free-text name for the contribution. | 0..1 | MAY | string |
description | A free-text description of the contribution. | 0..1 | MAY | string |
contribution MadeTo | The artifact toward which the contribution was made. | 0..1 | SHOULD | Artifact |
contribution MadeBy | The agent that made the contribution. | 0..1 | SHOULD | Agent |
realizedRole | A role indicating the nature of the contribution. | 0..m | MAY | coding <<Contribution Role>> |
startDate | The date and/or time that the contribution activity began. | 0..1 | MAY | dateTime |
endDate | The date and/or time that the contribution activity ended. | 0..1 | MAY | dateTime |
duration | The total amount of time the agent spent performing the contribution. | 0..1 | MAY | duration |
occurredAt | The location or locations where the contribution was performed. | 0..m | MAY | Location |
wasSpecifiedBy | A specification (protocol, ruleset, method, guidelines) describing how all or part of the contribution was executed. | 0..m | MAY | Method |
organizational Context | An organization whose resources and/or directives drive the contribution made by an Agent. | 0..m | MAY | Organization |
wasFundedBy | A grant or other source of resources that paid for the work representing the contribution. | 0..m | MAY | Funding Source |
.
Examples:
- The writing performed by a person toward the creation of a scientific publication (realizes an ‘author role’)
- The act of sharing of frozen embryonic fibroblasts performed by a researcher toward the creation of a transgenic mouse (realizes a ‘resource provision role’)
- The task of assembling a lecture slide deck performed by a graduate student in creating an online educational course offering (realizes an ‘educational material development role’)
- The performance of quality control checks on an integrated data set performed by a data steward toward the creation of a curated knowledgebase (realizes a ‘quality assurance role’)
- The act of disposing of a transgenic cell line that was determined to be contaminated.
- The deprecation of an ontology term that its developers decide should not longer be used.
Implementation Notes:
Using the Contributor Role Value Set
- Use of the Contributor Role Value Set to populate values for the realizedRole attribute above is RECOMMENDED but not required. This value set uses terms from the Contribution Role Ontology (CRO) .
- Implementations can choose to refine or extend this value set that we provide as part of the CAM specification, or use their own, as described in the Implementation Guide.
‘Placeholder’ Classes (Location, Method, Funding Source)
- At present the CAM considers modeling of Location, Method, and Funding Source to be out of scope, and does not provide concrete models for them. Rather, implementations can determine if and how they want to represent these concepts, and model them accordingly. For example, a Location could be captured simply as a free-text string, or an identifier or code from some controlled vocabulary (e.g. any of a number of existing gazetteers, such as Geonames), or using a bespoke or standard location schema (e.g. ISO19112), to create location objects allowing more precise and flexible descriptions.
Specifying a Contribution Date (startDate and endDate):
- The model provides startDate and endDate attributes to allow precise reporting of the time the contribution occurred. Implementations wishing to specify a single time SHOULD simply report the date and/or time that the contribution ended, using the endDate attribute, and the startDate attribute SHOULD NOT be filled. An empty startDate means that the start time is unknown or unspecified.
Capturing Multiple Contribution Roles:
- A contribution MUST connect a single Agent to a single Artifact. But a single Contribution object MAY capture multiple roles played by the agent in generating the artifact - simply by including more than one CRO contribution role in the realizedRole slot. This pattern provides a more concise representation when data creators do not need to capture unique details about each realized role (i.e. how, when, and where each was performed). In cases where such details for each role are required, separate Contribution objects SHOULD be created for each role played.
Direction of Contribution Relationships:
- Relationships to and from an Agent or Artifact can be created in a Contribution object. Note here that the qualifiedContribution relationship can be used to connect either an Artifact or an Agent to a Contribution. The relationships and their directionality selected will depend on whether an Artifact- or Agent-centric perspective on the data is being captured. When the goal is to describe all contributions made to a particular Artifact, links are created from Artifact to Contribution to Agent. When the goal is to describe all contributions made by a particular Agent, links are created from AGent to Contribution to Artifact.