-
Notifications
You must be signed in to change notification settings - Fork 0
Mini University Demo Project
This repository contains the Mini University demo ontology used to illustrate the updated web-based OWLGrEd visual notation and tooling for OWL 2 ontology management.
The Mini University ontology represents a simplified academic domain that models students, teachers, courses, and study programs. It demonstrates how OWL ontologies can be modeled graphically using the OWLGrEd notation, where classes, properties, and constraints are visualized in a UML-like diagram.

The Mini University demo project for the OWLGrEd editor is available for download.
The project contains the graphical OWL ontology used in the demo.
Project file:
MiniUniversityProject.json
To load the project into the OWLGrEd editor:
- Create a new OWLGrEd project.
- In the upper project toolbar, click the Upload Project button.
- Select the downloaded project JSON file.
After uploading, the Mini University ontology diagram will appear in the editor and can be explored or modified.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix : <http://lumii.lv/ontologies/Mini_University.owl#> .
: a owl:Ontology .
:AcademicProgram a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :programName ; owl:onDataRange xsd:string ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ] .
:acadTitle a owl:DatatypeProperty ; rdfs:domain :FacultyLevel ; rdfs:range xsd:string .
:Alice a :Student, owl:NamedIndividual ; :takes :ComputerScience .
:Assistant a owl:Class ; rdfs:subClassOf :Teacher ; owl:disjointWith :Professor ;
owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( :Teacher
[ a owl:Restriction ; owl:onProperty :facultyLevel ; owl:hasValue :Level_Assistant ] ) ] .
:completed a owl:ObjectProperty ; rdfs:comment "Completed courses are finished taken courses" ;
rdfs:domain :Student ; rdfs:range :Course ; rdfs:subPropertyOf :takes .
:ComputerScience a :MandatoryCourse, owl:NamedIndividual .
:Course a owl:Class ; owl:equivalentClass [ owl:unionOf ( :MandatoryCourse :OptionalCourse ) ] .
:courseCode a owl:DatatypeProperty ; rdfs:domain :Course ; rdfs:range xsd:string .
:courseName a owl:DatatypeProperty ; rdfs:domain :Course ; rdfs:range xsd:string .
:courseCredit a owl:DatatypeProperty ; rdfs:domain :Course ;
rdfs:range [ a rdfs:Datatype ; owl:onDatatype xsd:integer ;
owl:withRestrictions ( [ xsd:minExclusive 0 ] ) ] .
:enrolled a owl:ObjectProperty ; rdfs:domain :Student ; rdfs:range :AcademicProgram .
:includes a owl:ObjectProperty ; rdfs:domain :AcademicProgram ; rdfs:range :Course .
:facultyLevel a owl:ObjectProperty ; rdfs:domain :Teacher ; rdfs:range :FacultyLevel .
:FacultyLevel a owl:Class .
:isTaughtBy a owl:ObjectProperty ; rdfs:domain :Course ; rdfs:range :Teacher ; owl:inverseOf :teaches .
:MandatoryCourse a owl:Class ; rdfs:comment "Mandatory courses are taught by only professors" ;
rdfs:subClassOf :Course,
[ a owl:Restriction ; owl:onProperty :isTaughtBy ; owl:allValuesFrom :Professor ] ;
owl:disjointWith :OptionalCourse .
:OptionalCourse a owl:Class ; rdfs:subClassOf :Course .
:nationality a owl:ObjectProperty ; rdfs:domain foaf:Person ; rdfs:range :Nationality .
:Nationality a owl:Class .
:nCode a owl:DatatypeProperty ; rdfs:domain :Nationality ; rdfs:range xsd:string .
:nValue a owl:DatatypeProperty ; rdfs:domain :Nationality ; rdfs:range xsd:string .
:personID a owl:DatatypeProperty ; rdfs:domain foaf:Person ; rdfs:range xsd:string .
:personName a owl:DatatypeProperty ; rdfs:domain foaf:Person ; rdfs:range xsd:string .
:Professor a owl:Class ; rdfs:subClassOf :Teacher ;
owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( :Teacher
[ a owl:Restriction ; owl:onProperty :facultyLevel ; owl:hasValue :Level_Professor ] ) ] .
:programName a owl:DatatypeProperty ; rdfs:domain :AcademicProgram ; rdfs:range xsd:string .
:salary a owl:DatatypeProperty ; rdfs:domain :Teacher ; rdfs:range xsd:decimal .
:Student a owl:Class ;
rdfs:subClassOf foaf:Person,
[ a owl:Restriction ; owl:onProperty :enrolled ; owl:onClass :AcademicProgram ;
owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
[ a owl:Restriction ; owl:onProperty :takes ; owl:someValuesFrom :Course ] .
:studentName a owl:DatatypeProperty ; rdfs:domain :Student ; rdfs:range xsd:string ;
rdfs:subPropertyOf :personName .
:studentNumber a owl:DatatypeProperty ; rdfs:domain :Student ; rdfs:range xsd:string .
:takes a owl:ObjectProperty ; rdfs:domain :Student ; rdfs:range :Course ;
owl:propertyDisjointWith :teaches .
:Teacher a owl:Class ; rdfs:subClassOf foaf:Person .
:teacherName a owl:DatatypeProperty ; rdfs:domain :Teacher ; rdfs:range xsd:string ;
rdfs:subPropertyOf :personName .
:teaches a owl:ObjectProperty ; rdfs:domain :Teacher ; rdfs:range :Course ;
owl:propertyDisjointWith :takes .
foaf:Person a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :nationality ; owl:onClass :Nationality ;
owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ] ;
owl:hasKey ( :personID ) .
Contextual metadata attached to a property axiom or property assertion, such as temporal validity, provenance, or confidence.
- qualifiers are encoded using OWL 2 annotation properties,
- the qualifier-to-property link is represented via an AnnotationAssertion that connects the qualifier annotation property to the qualified property,
- additional nested annotations can further describe the qualifier (for example expected value type via rdfs:range or multiplicity constraints),
- once defined, the same qualifier annotation properties can be reused to annotate instance-level assertions.
OWL functional syntax
Declaration(AnnotationProperty(:datePaid))
Declaration(AnnotationProperty(:tutor))
Declaration(AnnotationProperty(:dateCompleted))
Declaration(AnnotationProperty(:mark))
AnnotationAssertion(
Annotation(rdfs:range xsd:dateTime)
ex:qualifier :takes :datePaid)
AnnotationAssertion(
Annotation(rdfs:range :Teacher)
ex:qualifier :takes :tutor)
AnnotationAssertion(
Annotation(rdfs:range xsd:dateTime)
ex:qualifier :completed :dateCompleted)
AnnotationAssertion(
Annotation(rdfs:range xsd:integer)
ex:qualifier :completed :mark)
OWL turtle syntax
:datePaid rdf:type owl:AnnotationProperty .
:tutor rdf:type owl:AnnotationProperty .
:dateCompleted rdf:type owl:AnnotationProperty .
:mark rdf:type owl:AnnotationProperty .
[
rdf:type owl:Axiom ;
owl:annotatedSource :takes ;
owl:annotatedProperty ex:qualifier ;
owl:annotatedTarget :datePaid ;
rdfs:range xsd:dateTime
] .
[
rdf:type owl:Axiom ;
owl:annotatedSource :takes ;
owl:annotatedProperty ex:qualifier ;
owl:annotatedTarget :tutor ;
rdfs:range :Teacher
] .
[
rdf:type owl:Axiom ;
owl:annotatedSource :completed ;
owl:annotatedProperty ex:qualifier ;
owl:annotatedTarget :dateCompleted ;
rdfs:range xsd:dateTime
] .
[
rdf:type owl:Axiom ;
owl:annotatedSource :completed ;
owl:annotatedProperty ex:qualifier ;
owl:annotatedTarget :mark ;
rdfs:range xsd:integer
] .
OWL functional syntax
Declaration(AnnotationProperty(:dateFrom))
Declaration(AnnotationProperty(:dateTo))
AnnotationAssertion(
Annotation(rdfs:range xsd:dateTime)
ex:qualifier :salary :dateFrom)
AnnotationAssertion(
Annotation(rdfs:range xsd:dateTime)
Annotation(owl:maxCardinality "1"^^xsd:nonNegativeInteger)
ex:qualifier :salary :dateTo)
OWL turtle syntax
:dateFrom rdf:type owl:AnnotationProperty .
:dateTo rdf:type owl:AnnotationProperty .
[
rdf:type owl:Axiom ;
owl:annotatedSource :salary ;
owl:annotatedProperty ex:qualifier ;
owl:annotatedTarget :dateFrom ;
rdfs:range xsd:dateTime
] .
[
rdf:type owl:Axiom ;
owl:annotatedSource :salary ;
owl:annotatedProperty ex:qualifier ;
owl:annotatedTarget :dateTo ;
rdfs:range xsd:dateTime ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger
] .