This course will cover the basics of knowledge representation and reasoning using ontologies as a representational formalism. Ontologies form the basis for the machine-processable formal representation of domain knowledge and play a crucial role in the sharing of information structure by humans or software agents. In this course, we will discuss the specifics of the various knowledge organisation structures that can be used in different use cases. The focus will be on representing and modelling domain knowledge with ontologies. We will also cover the basic concepts of description logic as a basic formalism for representing ontologies. Finally, we will focus on the process of developing a domain ontology in OWL (Ontology Web Language) using an open-source ontology editor Protégé and on querying knowledge bases using the query language SPARQL.