# The pattern's own scenario: "She greeted us all in her various roles of mother, friend,
# and daughter." Giulia is one agent playing three roles, and she is also the entity that
# the concept "adult family member" classifies - a role is a concept, so the same shape
# serves both.

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

ex:Giulia a owl:NamedIndividual , agentrole:Agent , classification:Entity ;
    rdfs:label "Giulia, who greeted us in all of her roles" ;
    classification:isClassifiedBy ex:AdultFamilyMember ;
    objectrole:hasRole ex:Mother ,
        ex:Friend ,
        ex:Daughter .

ex:AdultFamilyMember a owl:NamedIndividual , classification:Concept ;
    rdfs:label "adult family member, the concept Giulia falls under" ;
    classification:classifies ex:Giulia .

ex:Mother a owl:NamedIndividual , objectrole:Role ;
    rdfs:label "mother" .

ex:Friend a owl:NamedIndividual , objectrole:Role ;
    rdfs:label "friend" .

ex:Daughter a owl:NamedIndividual , objectrole:Role ;
    rdfs:label "daughter" .

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

