The **_Scholarly Contributions and Roles Ontology (SCoRO)_** is an ontology for use by authors and publishers for describing the contributions that may be made and the roles that may be held by a person with respect to a journal article or other publication, and by research administrators for describing contributions and roles with respect to other aspects of scholarly research.

SCoRO offers a limited controlled vocabulary of generic terms to describe contributions within the following four general categories:
* intellectual contributions (`scoro:IntellectualContribution`), including the conception and design of experiments;
* experimental contributions (`scoro:ExperimentalContribution`), including provision of experimental material, undertaking experiments and analyzing data;
* organizational contributions (`scoro:OrganizationalContribution`), including fund-raising and project management; and
* authorship contributions (`scoro:AuthorshipContribution`), such as drafting the paper and preparing the illustrations.
It also provides the option of specifying the effort for each contribution (`scoro:ContributionEffort`), relative to that of others:
* solely responsible for this contribution (`scoro:solo-effort`);
* contributed major effort (`scoro:major-effort`);
* contributed minor effort (`scoro:minor-effort`).
The default position is that a person played no part in a particular contribution, which is assumed unless one of the other effort categories is specified.
In addition to specifying such contributions, SCoRO extends PRO by adding subclasses of pro:Role so as to distinguish and permit the separate definition of individuals' roles, under the following categories:
* investigation roles (`scoro:InvestigationRole`), such as principal investigator, research assistant or technician;
* project roles (`scoro:ProjectRole`), including project leader and project manager;
* data roles (`scoro:DataRole`), such as data creator, data manager or curator;
* authorship roles (`scoro:AuthorshipRole`), including corresponding author, senior author, article guarantor, and consortium author (to cover entries in author lists such as '... and members of the MalariaGen Consortium');
* organizational roles (`scoro:OrganizationRole`), including contact person, partner, rights holder.
Since roles have contexts and times that are important to take into account (for example, a person can be author of one paper and reviewer of another, while another person will be editor of a journal only for a defined period, not for ever), the SCORO ontology permit these contexts to be specified, using an ontological design pattern called the [Time-indexed Value in Context (TVC)](http://www.essepuntato.it/2012/04/tvc) which is part of the [PRO ontology](http://purl.org/spar/pro) imported by SCORO.
This ontology design pattern permits one to construct the following RDF statements:
foaf:Agent pro:holdsRoleInTime [ a pro:RoleInTime
pro:withRole pro:editor ] .
Thus the domain of `pro:withRole` is not `foaf:Agent`, but rather an anonymous member of the class `pro:RoleInTime`, which itself is the range of the property `pro:holdsRoleInTime`, for which the domain is `foaf:Agent`.
The range of `pro:withRole` is the class `pro:Role`, and its sub-classes `pro:PublishingRole`, `scoro:InvestigationalRole`, `scoro:OrganizationRole`, etc., whose members permit specific roles to be specified.
This single step of indirection permits other contextual and temporal attributes to be specified for this member of the class `pro:RoleInTime`, putting that role into context.
Exemplar usage:
fabio:Dataset dcterms:contributor [ rdf:type foaf:Organization ;
foaf:name 'Met Office' ;
foaf:homepage <http://www.metoffice.gov.uk/> ;
pro:holdsRoleInTime [ a pro:RoleInTime
pro:withRole scoro:data-creator ] ] .
Exactly the same use of TVC and of individuals within the class `scoro:Contribution` and its sub-classes is used for `scoro:withContribution`, enabling contributions to be time-limited and given contexts.
## Examples of use
In the following subsections, we introduce some examples to showcase how to use SCoRO.
The prefixes that are used in all the examples provided below are defined as follows:
@prefix : <http://www.sparontologies.net/example/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix fabio: <http://purl.org/spar/fabio/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix frapo: <http://purl.org/cerif/frapo/> .
@prefix prism: <http://prismstandard.org/namespaces/basic/2.0/> .
@prefix pro: <http://purl.org/spar/pro/> .
@prefix scoro: <http://purl.org/spar/scoro/> .
@prefix ti: <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#> .
@prefix tvc: <http://www.essepuntato.it/2012/04/tvc/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
### Specifying roles and contributions of an investigation
Providing a description of how a certain research is described in a published paper, highlighting the various roles of the people who were involved and indicating explicitly their contribution, is crucial in research communications.
Here we show how to provide an RDF description of all these information related to a particular article, i.e., 'Adventures in semantic publishing: exemplar semantic enhancement of a research article', by means of SCoRO.
While SCoRO is used for describing person's roles and contributions, in the example it is used in combination with FaBiO, that provides structured vocabulary terms to characterize scholarly publications, and with FRAPO, that provides structured vocabulary terms to describe research administration, research funding, and the projects and investigations that such funding supports.
:shotton-et-al-investigation a frapo:Investigation ;
dcterms:title 'Experiments in Semantic Publishing' ;
frapo:hasOutput
<http://dx.doi.org/10.1371/journal.pcbi.1000361> .
<http://dx.doi.org/10.1371/journal.pcbi.1000361>
a fabio:JournalArticle ;
dcterms:bibliographicCitation
'Shotton D, Portwin K, Klyne G, Miles A (2009). Adventures
in semantic publishing: exemplar semantic enhancement of
a research article. PLoS Computational Biology 5: e1000361.' ;
dcterms:creator :shotton , :portwin , :klyne , :miles ;
prism:doi '10.1371/journal.pcbi.1000361' .
:shotton a foaf:Person ;
foaf:name 'David Shotton' ;
scoro:hasORCID '0000-0001-5506-523X' ;
pro:holdsRoleInTime
:shotton-author ,
:shotton-pi ,
:shotton-contribution .
:shotton-author a pro:RoleInTime ;
pro:withRole
pro:author ,
scoro:senior-author ;
pro:relatesToDocument
<http://dx.doi.org/10.1371/journal.pcbi.1000361> .
:shotton-pi a pro:RoleInTime ;
pro:withRole scoro:principal-investigator ;
tvc:atTime :pi-time ;
pro:relatesToEntity :shotton-et-al-investigation .
:pi-time a ti:timeInterval ;
ti:hasIntervalStartDate '2008-05-01'^^xsd:date ;
ti:hasIntervalEndDate '2009-04-17'^^xsd:date .
:shotton-contribution a scoro:ContributionSituation ;
scoro:withContribution scoro:conceives-project ;
scoro:withEffort scoro:major-effort ;
scoro:hasContributionContext :shotton-et-al-investigation .
### Defining equal principal authorship roles
The order in which the authors of a paper appear on the author list of the paper it self does not provide any clue about the actual authorship role of such authors, since there is no standard way to understand who is the principal author of the paper, who is a secondary author, and the like.
SCoRO makes it easy to assert in a machine-readable manner that two authors on a paper, for example the first and second authors in an author list, have equal principal authorship roles by means of the object property `scoro:isEqualToRoleInTime`, that allows one to link two `pro:RoleInTimesituations` (in principle involving two different people) as semantically equal from what concern the role they describe with regard to a certain publication.
Note that, in a similar manner, two contributions can be declared to be the same, using the property `scoro:isEqualToContributionSituation` to equate one `scoro:ContributionSituation` with another.
:silvio-peroni a foaf:Person ;
foaf:givenName 'Silvio' ;
foaf:familyName 'Peroni' ;
pro:holdsRoleInTime :sp-principal-author .
:sp-principal-author a pro:RoleInTime ;
pro:withRole scoro:principal-author ;
pro:relatesToDocument
<http://dx.doi.org/10.1016/j.websem.2012.08.001> .
:david-shotton a foaf:Person ;
foaf:givenName 'David' ;
foaf:familyName 'Shotton' ;
pro:holdsRoleInTime :ds-principal-author .
:ds-principal-author a pro:RoleInTime ;
pro:withRole scoro:principal-author ;
pro:relatesToDocument
<http://dx.doi.org/10.1016/j.websem.2012.08.001> ;
scoro:isEqualToRoleInTime :sp-principal-author .
<http://dx.doi.org/10.1016/j.websem.2012.08.001>
a fabio:JournalArticle ;
dcterms:title
'FaBiO and CiTO: ontologies for describing
bibliographic resources and citations' ;
dcterms:creator :silvio-peroni , :david-shotton .
## Competency Questions
SCoRO can be used for answering several questions related to contributions in the publication process.
In the following subsections, some of them are introduced together with their respective SPARQL queries.
The prefixes that are used in all the SPARQL queries provided below are defined as follows:
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX pro: <http://purl.org/spar/pro/>
PREFIX scoro: <http://purl.org/spar/scoro/>
PREFIX tvc: <http://www.essepuntato.it/2012/04/tvc/>
PREFIX ti: <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#>
### CQ1
Which role does a person hold in relation to an entity, and during what time interval?
SELECT ?person ?entity ?role ?startDate ?endDate
WHERE {
?person a foaf:Person ;
pro:holdsRoleInTime ?roleInTime .
?roleInTime pro:withRole ?role ;
scoro:relatesToEntity ?entity .
OPTIONAL {
?roleInTime tvc:atTime ?timeInterval .
OPTIONAL { ?timeInterval ti:hasIntervalStartDate ?startDate . }
OPTIONAL { ?timeInterval ti:hasIntervalEndDate ?endDate . }
}
}
### CQ2
What specific contribution and level of effort did a person provide in the context of an investigation?
SELECT ?person ?investigation ?contribution ?effort
WHERE {
?person a foaf:Person ;
pro:holdsRoleInTime ?situation .
?situation a scoro:ContributionSituation ;
scoro:hasContributionContext ?investigation ;
scoro:withContribution ?contribution .
OPTIONAL { ?situation scoro:withEffort ?effort . }
}
### CQ3
Which persons hold equal roles in time with respect to the same document?
SELECT ?document ?person1 ?person2 ?role
WHERE {
?person1 a foaf:Person ;
pro:holdsRoleInTime ?roleInTime1 .
?person2 a foaf:Person ;
pro:holdsRoleInTime ?roleInTime2 .
?roleInTime1 pro:relatesToDocument ?document ;
pro:withRole ?role ;
scoro:isEqualToRoleInTime ?roleInTime2 .
FILTER(?person1 != ?person2)
}