@prefix : <http://example.org/voc#> .
@prefix ex: <http://example.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix obda: <https://w3id.org/obda/vocabulary#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://example.org/voc#> .

<http://example.org/voc#> rdf:type owl:Ontology .

#################################################################
#    Object Properties
#################################################################

###  http://example.org/voc#attends
:attends rdf:type owl:ObjectProperty ;
         rdfs:domain foaf:Person ;
         rdfs:range :Course .


###  http://example.org/voc#givesLab
:givesLab rdf:type owl:ObjectProperty ;
          rdfs:subPropertyOf :teaches .


###  http://example.org/voc#givesLecture
:givesLecture rdf:type owl:ObjectProperty ;
              rdfs:subPropertyOf :teaches .


###  http://example.org/voc#isGivenAt
:isGivenAt rdf:type owl:ObjectProperty ;
           rdfs:domain :Course ;
           rdfs:range :EducationalInstitution .


###  http://example.org/voc#isSupervisedBy
:isSupervisedBy rdf:type owl:ObjectProperty .


###  http://example.org/voc#isTaughtBy
:isTaughtBy rdf:type owl:ObjectProperty ;
            owl:inverseOf :teaches .


###  http://example.org/voc#teaches
:teaches rdf:type owl:ObjectProperty ;
         rdfs:domain :Teacher ;
         rdfs:range :Course .


#################################################################
#    Data properties
#################################################################

###  http://example.org/voc#title
:title rdf:type owl:DatatypeProperty ;
       rdfs:range xsd:string .


###  http://xmlns.com/foaf/0.1/firstName
foaf:firstName rdf:type owl:DatatypeProperty ;
               rdfs:domain foaf:Person ;
               rdfs:range rdfs:Literal .


###  http://xmlns.com/foaf/0.1/lastName
foaf:lastName rdf:type owl:DatatypeProperty ;
              rdfs:domain foaf:Person ;
              rdfs:range rdfs:Literal .


#################################################################
#    Classes
#################################################################

###  http://example.org/voc#AssistantProfessor
:AssistantProfessor rdf:type owl:Class ;
                    rdfs:subClassOf :Professor .


###  http://example.org/voc#AssociateProfessor
:AssociateProfessor rdf:type owl:Class ;
                    rdfs:subClassOf :Professor .


###  http://example.org/voc#Course
:Course rdf:type owl:Class ;
        owl:disjointWith :EducationalInstitution ,
                         foaf:Person .


###  http://example.org/voc#EducationalInstitution
:EducationalInstitution rdf:type owl:Class ;
                        owl:disjointWith foaf:Person .


###  http://example.org/voc#ExternalTeacher
:ExternalTeacher rdf:type owl:Class ;
                 rdfs:subClassOf :Teacher .


###  http://example.org/voc#FacultyMember
:FacultyMember rdf:type owl:Class ;
               rdfs:subClassOf foaf:Person .


###  http://example.org/voc#FullProfessor
:FullProfessor rdf:type owl:Class ;
               rdfs:subClassOf :Professor .


###  http://example.org/voc#GraduateStudent
:GraduateStudent rdf:type owl:Class ;
                 rdfs:subClassOf :Student ,
                                 [ rdf:type owl:Restriction ;
                                   owl:onProperty :isSupervisedBy ;
                                   owl:someValuesFrom :Professor
                                 ] .


###  http://example.org/voc#PhDStudent
:PhDStudent rdf:type owl:Class ;
            rdfs:subClassOf :GraduateStudent ,
                            :Researcher .


###  http://example.org/voc#PostDoc
:PostDoc rdf:type owl:Class ;
         rdfs:subClassOf :Researcher .


###  http://example.org/voc#Professor
:Professor rdf:type owl:Class ;
           rdfs:subClassOf :Researcher ,
                           :Teacher .


###  http://example.org/voc#Researcher
:Researcher rdf:type owl:Class ;
            rdfs:subClassOf :FacultyMember .


###  http://example.org/voc#Student
:Student rdf:type owl:Class ;
         rdfs:subClassOf foaf:Person .


###  http://example.org/voc#Teacher
:Teacher rdf:type owl:Class ;
         rdfs:subClassOf :FacultyMember .


###  http://example.org/voc#UndergraduateStudent
:UndergraduateStudent rdf:type owl:Class ;
                      rdfs:subClassOf :Student .


###  http://xmlns.com/foaf/0.1/Person
foaf:Person rdf:type owl:Class .


###  Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi
