@prefix : <http://semantics.id/ns/example/tuwien.ttl#> .
@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 rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://semantics.id/ns/example/tuwien.ttl> .

<http://semantics.id/ns/example/tuwien.ttl> rdf:type owl:Ontology ;
                                     rdfs:comment "An example ontology on the Study Program at TU Wien" ;
                                     rdfs:label "TU Wien Ontology" .

#################################################################
#    Annotation properties
#################################################################

###  http://www.w3.org/2002/07/owl#minCardinality
owl:minCardinality rdf:type owl:AnnotationProperty .


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

###  http://semantics.id/ns/example/tuwien.ttl#absolved
:absolved rdf:type owl:ObjectProperty ;
          rdfs:subPropertyOf :takes ;
          rdfs:domain :Student ;
          rdfs:range :Lecture ;
          rdfs:comment "Indicates that a Student already gets a positive grade from a Lecture" .


###  http://semantics.id/ns/example/tuwien.ttl#hasMandatoryLecture
:hasMandatoryLecture rdf:type owl:ObjectProperty ;
                     owl:inverseOf :isMandatory ;
                     rdfs:domain :StudyProgram ;
                     rdfs:range :Lecture ;
                     rdfs:comment "Mandatory lectures in a StudyProgram" ;
                     owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#hasOptionalLecture
:hasOptionalLecture rdf:type owl:ObjectProperty ;
                    owl:inverseOf :isOptional ;
                    rdfs:domain :StudyProgram ;
                    rdfs:range :Lecture ;
                    rdfs:comment "Optional lectures in a StudyProgram" ;
                    owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#hasTutor
:hasTutor rdf:type owl:ObjectProperty ;
          owl:inverseOf :isTutor ;
          rdfs:domain :Lecture ;
          rdfs:range :Student ;
          rdfs:comment "Tutor(s) for a Lecture" .


###  http://semantics.id/ns/example/tuwien.ttl#isMandatory
:isMandatory rdf:type owl:ObjectProperty ;
             rdfs:domain :Lecture ;
             rdfs:range :StudyProgram .


###  http://semantics.id/ns/example/tuwien.ttl#isOptional
:isOptional rdf:type owl:ObjectProperty ;
            rdfs:domain :Lecture ;
            rdfs:range :StudyProgram .


###  http://semantics.id/ns/example/tuwien.ttl#isTutor
:isTutor rdf:type owl:ObjectProperty ;
         rdfs:domain :Student ;
         rdfs:range :Lecture .


###  http://semantics.id/ns/example/tuwien.ttl#studies
:studies rdf:type owl:ObjectProperty ,
                  owl:FunctionalProperty ;
         rdfs:domain :Student ;
         rdfs:range :StudyProgram ;
         rdfs:comment "Indicates the StudyProgram that a Student takes" ;
         owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#takes
:takes rdf:type owl:ObjectProperty ;
       rdfs:domain :Student ;
       rdfs:range :Lecture ;
       rdfs:comment "Indicates that a Student take a Lecture" ;
       owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#teachedBy
:teachedBy rdf:type owl:ObjectProperty ;
           owl:inverseOf :teaches ;
           rdfs:domain :Lecture ;
           rdfs:range :Lecturer ;
           owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#teaches
:teaches rdf:type owl:ObjectProperty ;
         rdfs:domain :Lecturer ;
         rdfs:range :Lecture ;
         rdfs:comment "Indicates that a Lecturer teach a Lecture" ;
         owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#worksAtInstitute
:worksAtInstitute rdf:type owl:ObjectProperty ;
                  rdfs:domain :Lecturer ;
                  rdfs:range :Institute ;
                  owl:minCardinality 1 .


###  http://xmlns.com/foaf/0.1/knows
foaf:knows rdf:type owl:ObjectProperty ,
                    owl:TransitiveProperty ;
           rdfs:domain foaf:Person ;
           rdfs:range foaf:Person ;
           owl:minCardinality 1 .


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

###  http://semantics.id/ns/example/tuwien.ttl#hasId
:hasId rdf:type owl:DatatypeProperty ,
                owl:FunctionalProperty ;
       rdfs:domain :Institute ,
                   :Lecture ,
                   :StudyProgram ;
       rdfs:range xsd:string ;
       owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#hasMatrikelNumber
:hasMatrikelNumber rdf:type owl:DatatypeProperty ,
                            owl:FunctionalProperty ;
                   rdfs:domain :Student ;
                   rdfs:range xsd:integer ;
                   rdfs:comment "5-8 digits matrikel number, e.g., '1227444' " ;
                   owl:minCardinality 1 .


###  http://semantics.id/ns/example/tuwien.ttl#startsInSemester
:startsInSemester rdf:type owl:DatatypeProperty ,
                           owl:FunctionalProperty ;
                  rdfs:domain :Student ;
                  rdfs:range xsd:string ;
                  rdfs:comment "e.g., '2018W' or '2017S' " ;
                  owl:minCardinality 1 .


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

###  http://semantics.id/ns/example/tuwien.ttl#Institute
:Institute rdf:type owl:Class ;
           rdfs:label "Institut"@de ,
                      "Institute"@en .


###  http://semantics.id/ns/example/tuwien.ttl#Lecture
:Lecture rdf:type owl:Class .


###  http://semantics.id/ns/example/tuwien.ttl#LectureSE
:LectureSE rdf:type owl:Class ;
           rdfs:subClassOf :Lecture ;
           rdfs:label "Seminar"@de ,
                      "Seminar"@en .


###  http://semantics.id/ns/example/tuwien.ttl#LectureUE
:LectureUE rdf:type owl:Class ;
           rdfs:subClassOf :Lecture ;
           rdfs:label "Exercise"@en ,
                      "Uebung"@de .


###  http://semantics.id/ns/example/tuwien.ttl#LectureVO
:LectureVO rdf:type owl:Class ;
           rdfs:subClassOf :Lecture ;
           rdfs:label "Lecture"@en ,
                      "Vorlesung"@de .


###  http://semantics.id/ns/example/tuwien.ttl#LectureVU
:LectureVU rdf:type owl:Class ;
           rdfs:subClassOf :Lecture ;
           rdfs:label "Lecture and Exercise"@en ,
                      "Vorlesung mit Uebung"@de .


###  http://semantics.id/ns/example/tuwien.ttl#Lecturer
:Lecturer rdf:type owl:Class ;
          rdfs:subClassOf foaf:Person ;
          rdfs:label "Lecturer"@en ,
                     "Vortragende"@de .


###  http://semantics.id/ns/example/tuwien.ttl#Student
:Student rdf:type owl:Class ;
         rdfs:subClassOf foaf:Person ;
         rdfs:label "Student"@de ,
                    "Student"@en .


###  http://semantics.id/ns/example/tuwien.ttl#StudyProgram
:StudyProgram rdf:type owl:Class ;
              rdfs:comment "Studienprogramm"@de ;
              rdfs:label "Study Program"@en .


###  http://xmlns.com/foaf/0.1/Person
foaf:Person rdf:type owl:Class ;
            rdfs:label "Person"@de ,
                       "Person"@en .


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

