@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pro: <http://purl.org/spar/pro/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix reg: <http://purl.org/linked-data/registry#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix tvc: <http://www.essepuntato.it/2012/04/tvc/> .
@prefix vaem: <http://www.linkedmodel.org/schema/vaem#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .

pro:holdsRoleInTIme a owl:ObjectProperty ;
    rdfs:label "holds role in time"@en ;
    vann:example """
        :david-shotton a foaf:Agent ;
                pro:holdsRoleInTime :shotton-affiliation-for-my-dataset .
        
        :shotton-affiliation-for-my-dataset a pro:RoleInTime ;
                pro:withRole scoro:affiliate .
    """ ;
    vaem:rationale """
Someone's affiliation is a relationship of membership or belonging that the person can have with respect to a particular organization (i.e., an individual of the class `foaf:Organization`). 
Such an affiliation may be specified in the document with respect to which that agent is an author or contributor. 
A particular individual of [SCoRO](http://purl.org/spar/scoro), i.e., `scoro:affiliate` (belonging to the class `scoro:OrganizationalRole`) is used to express such an affiliation. 
The domain of `pro:withRole` is not `foaf:Agent`, but rather a member of the class `pro:RoleInTime`, which itself is the range of the property `pro:holdsRoleInTime`, for which the domain is `foaf:Agent` (i.e., our contributor).
        """@en ;
    rdfs:comment "A role that an agent holds."@en ;
    rdfs:domain foaf:Agent ;
    rdfs:isDefinedBy pro: ;
    rdfs:range pro:RoleInTime ;
    rdfs:subPropertyOf tvc:hasValue ;
    owl:inverseOf pro:isHeldBy ;
    vs:term_status reg:statusStable ;
    skos:note """
The full minimum pattern to express the role of some agent is: 
        foaf:Agent 
                pro:holdsRoleInTime [ 
                        a pro:RoleInTime ; 
                        pro:withRole pro:Role 
                        ] . 
PRO permits one to specify the time period over which a role is held, and the other contextual entities to which that agent's role relates.
        """@en .

