# A university charter establishes two social persons - the university itself and the
# office of Rector - and each is acted for by someone else: the university by its
# Department of Physics, the Rector's office by the professor who holds it.

@prefix agentrole: <http://www.ontologydesignpatterns.org/cp/owl/agentrole.owl#> .
@prefix classification: <http://www.ontologydesignpatterns.org/cp/owl/classification.owl#> .
@prefix description: <http://www.ontologydesignpatterns.org/cp/owl/description.owl#> .
@prefix objectrole: <http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl#> .
@prefix persons: <http://www.ontologydesignpatterns.org/cp/owl/persons.owl#> .
@prefix ex: <https://w3id.org/ontoboard/example/persons#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ex:ProfessorRossi a owl:NamedIndividual , agentrole:Agent ;
    rdfs:label "Professor Elena Rossi, who holds the rectorship" ;
    persons:actsFor ex:RectorsOffice .

ex:DepartmentOfPhysics a owl:NamedIndividual , agentrole:Agent ;
    rdfs:label "the Department of Physics" ;
    persons:actsFor ex:University .

ex:RectorshipConcept a owl:NamedIndividual , description:Concept ;
    rdfs:label "rectorship, as the charter defines it" ;
    description:isConceptUsedIn ex:FoundingCharter .

ex:FoundingCharter a owl:NamedIndividual , description:Description ;
    rdfs:label "the founding charter of the university" ;
    description:usesConcept ex:RectorshipConcept ;
    persons:introduces ex:RectorsOffice , ex:University .

ex:ArchivedCharterCopy a owl:NamedIndividual , objectrole:Object ;
    rdfs:label "the signed copy of the charter kept in the archive" ;
    objectrole:hasRole ex:ArchivalRecordRole .

ex:ArchivalRecordRole a owl:NamedIndividual , objectrole:Role ;
    rdfs:label "archival record" .

ex:RectorsOffice a owl:NamedIndividual , persons:SocialPerson ;
    rdfs:label "the office of Rector" .

ex:University a owl:NamedIndividual , persons:SocialPerson ;
    rdfs:label "the university as a legal person" .

# Only one direction of each inverse pair is asserted: actsFor/actsThrough, hasRole/isRoleOf, introduces/isIntroducedBy. A reasoner adds the other.
