The **_Publishing Roles Ontology (PRO)_** is an ontology written in OWL 2 DL for the characterization of the roles of agents (people, corporate bodies and computational agents) in the publication process.
This ontology permits the characterisation of the roles of agents – people, corporate bodies and computational agents – in the publication process.
Furthermore, it allows one to specify the role an agent has in relation to a particular bibliographic entity (as author, editor, reviewer, etc.) or to a specific institution (as publisher, librarian, etc.), and the period during which each role is held.
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 PRO ontology permit these contexts to be specified, using an ontological design pattern called the [Time-indexed Value in Context ontology pattern](http://purl.org/spar/tvc), a model for describing scenarios in which something has a value during a particular time and for a particular context.
Due to this, it is easy to extend the set of specified roles, simply by adding new individuals to the class `pro:PublishingRole`.
This ontology is imported into the [Scholarly Contribution and Roles Ontology](http://purl.org/spar/scoro/) (SCoRO), where it is used similarly to enable the description of a wider range of contributions and roles relating to other scholarly activities and entities, including academic administration, funded projects, research investigations, data and authorship, and to define their temporal extents and contexts, as for publishing roles in PRO.

The main entities of PRO are:
* `pro:RoleInTime`, i.e., the class of the particular situation that describes the role an agent has within a particular time interval;
* `pro:holdsRoleInTime`, i.e., the object property linking any `foaf:Agent` (e.g., a person, a group, an organization or a software agent), to a `pro:RoleInTime` situation.
* `pro:withRole`, i.e., the object property linking the situation to the role the agent has – the available roles are defined as individuals of the class `pro:Role` (see its subclass `pro:PublishingRole` for roles specifically defined for the publishing domain);
* `ti:TimeInterval`, i.e., the class for defining two (starting and ending) points in time that define a particular period related to (`tvc:atTime`) a `pro:RoleInTime` situation;
* `pro:relatesToDocument`, `pro:relatesToPerson` and `pro:relatesToOrganization`, i.e., the object properties linking any kind of bibliographic work (`foaf:Document`), a person (`foaf:Person`) or publishing organization (`foaf:Organization`) taking part in a `pro:RoleInTime` as contextual extent.
## Examples of use
In the following subsections, we introduce some examples to showcase how to use PRO.
The prefixes that are used in all the examples provided below are defined as follows:
@prefix : <http://www.sparontologies.net/example/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@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#> .
### Author's affiliations in papers
The description of the authors of papers and, in particular, which affiliation they have specified in the context of a particular paper is a crucial aspect to take into account when describing authors' roles.
However, several existing ontologies, such as the Semantic Web Conference Ontology, do not allow one to discern the context in which an person-role association holds.
For instance, consider an author having different institutional affiliations in the context of different publications (e.g., because he/she moved from one to the other).
In order to address this issue, PRO provides a convenient way to describe all the contextualised and possibly time-indexed person-role associations, in order to provide a complete picture of how roles relate with person and in which contexts.
:silvio-peroni a foaf:Person ;
foaf:name "Silvio Peroni" ;
pro:holdsRoleInTime
:silvio-peroni-author ,
:silvio-peroni-at-kmi ,
:silvio-peroni-at-unibo .
:silvio-peroni-author a pro:RoleInTime ;
pro:withRole pro:author ;
pro:relatesToDocument
<http://dx.doi.org/10.1007/978-3-540-89704-0_17> ,
<http://dx.doi.org/10.1145/1600193.1600232> .
:silvio-peroni-at-unibo a pro:RoleInTime ;
pro:withRole scoro:affiliate ;
pro:relatesToDocument
<http://dx.doi.org/10.1145/1600193.1600232> ;
pro:relatesToOrganization
<https://ror.org/01111rn36> ;
tvc:atTime :unibo-affiliation-time .
:unibo-affiliation-time a ti:TimeInterval ;
ti:hasIntervalStartDate
"2009-01-01T00:00:00Z"^^xsd:dateTime .
:silvio-peroni-at-kmi a pro:RoleInTime ;
pro:withRole scoro:affiliate ;
pro:relatesToDocument
<http://dx.doi.org/10.1007/978-3-540-89704-0_17> ;
pro:relatesToOrganization
<https://www.wikidata.org/entity/Q86003202> ;
tvc:atTime :kmi-affiliation-time .
:kmi-affiliation-time a ti:TimeInterval ;
ti:hasIntervalStartDate
"2008-04-01T00:00:00Z"^^xsd:dateTime ;
ti:hasIntervalEndDate
"2008-09-30T23:59:59Z"^^xsd:dateTime .
## Competency Questions
PRO can be used for answering several questions related to the various roles of an agent 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 foaf: <http://xmlns.com/foaf/0.1/>
PREFIX pro: <http://purl.org/spar/pro/>
PREFIX tvc: <http://www.essepuntato.it/2012/04/tvc/>
PREFIX ti: <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#>
### CQ1
Which roles in time and role types does a person hold?
SELECT ?person ?personName ?roleInTime ?role
WHERE {
?person a foaf:Person ;
pro:holdsRoleInTime ?roleInTime .
?roleInTime a pro:RoleInTime ;
pro:withRole ?role .
OPTIONAL { ?person foaf:name ?personName . }
}
### CQ2
Which documents are associated with a person's role in time?
SELECT ?person ?role ?document
WHERE {
?person a foaf:Person ;
pro:holdsRoleInTime ?roleInTime .
?roleInTime pro:withRole ?role ;
pro:relatesToDocument ?document .
}
### CQ3
Which organization is a person affiliated with in relation to a specific document?
SELECT ?person ?organization ?document
WHERE {
?person pro:holdsRoleInTime ?roleInTime .
?roleInTime pro:relatesToOrganization ?organization ;
pro:relatesToDocument ?document .
}
### CQ4
What is the time interval (start and end dates) of an affiliation or role held by a person?
SELECT ?person ?role ?organization ?startDate ?endDate
WHERE {
?person pro:holdsRoleInTime ?roleInTime .
?roleInTime pro:withRole ?role ;
tvc:atTime ?timeInterval .
OPTIONAL { ?roleInTime pro:relatesToOrganization ?organization . }
OPTIONAL { ?timeInterval ti:hasIntervalStartDate ?startDate . }
OPTIONAL { ?timeInterval ti:hasIntervalEndDate ?endDate . }
}
### CQ5
What are the full affiliation details (role, target document, organization, and timeframe) for a person?
SELECT ?person ?role ?document ?organization ?startDate ?endDate
WHERE {
?person a foaf:Person ;
pro:holdsRoleInTime ?roleInTime .
?roleInTime pro:withRole ?role .
OPTIONAL { ?roleInTime pro:relatesToDocument ?document . }
OPTIONAL { ?roleInTime pro:relatesToOrganization ?organization . }
OPTIONAL {
?roleInTime tvc:atTime ?timeInterval .
OPTIONAL { ?timeInterval ti:hasIntervalStartDate ?startDate . }
OPTIONAL { ?timeInterval ti:hasIntervalEndDate ?endDate . }
}
}