ontologies respectively. The former include concepts, concept taxonomies, relationships between concepts, and properties that describe concepts, while heavyweight ontologies add axioms and constraints to lightweight ones. These clarify the intended meaning of the terms gathered in the ontology. Heavyweight and lightweight ontologies can be modelled with different knowledge modelling techniques and can be implemented in various kinds of languages [21]. Ontologies can be: 
 **highly informal** if they are expressed in natural language; According to this, a highly informal ontology would not be an ontology, since it is not machinereadable. 

 **semi-informal** if expressed in a restricted and structured form of natural language, since it is a machine-readable; 
 **semi-formal** if expressed in an artificial and formally defined language (e.g. RDF 
graphs); and 
 **rigorously formal** if they provide meticulously defined terms with formal semantics, theorems and proof of properties such as soundness and completeness (e.g. Web Ontology Language [OWL]). 

The expressiveness of an ontology is based on the degree of explication of the (meta-) knowledge. Several ontologies capture specific domains or certain applications, while others try to capture all terms in natural language. Ontologies that capture extra relations and extra constraints are considered to be more expressive, because they capture knowledge of the domain on a more detailed level. On the other hand, the expressiveness of an ontology is restricted by the languages used for describing or specifying it. Ontology languages can be seen as restricting the expressiveness of the ontology [38]. 

An ontology is expressed in a knowledge representation language, which provides a formal frame of semantics. This ensures that the specification of domain knowledge in an ontology is machine-processable and is being interpreted in a well-defined way 

## 4.3 **Ontology Applications**

Over the years, ontology has become a popular research topic in a range of disciplines, with the aim of increasing understanding of and building a consensus in a given area of knowledge. Ontology also leads to the sharing of knowledge between systems and people. As mentioned previously, ontology first appeared in AI laboratories, before being used in other fields; for example: 
 **Semantic Web** [2]: Ontology plays a key role in the Semantic Web in supporting information exchange across distributed environments. The Semantic Web represents data in a machineprocessable way, which is why it is considered to be an extension of the current Web. 

 **Semantic Web Service Discovery** [2]: In the e-business environment, ontology plays an important role by finding the best match for the requester looking for merchandise or something else. It also helps online travel customers obtain a response. 

 **Artificial Intelligence** [27]: Ontology has been developed in the AI research community, its goal here being to facilitate the sharing of knowledge and the reuse and enabling of processing between programs, services, agents or organisations across a given domain. 

 **Multi-agent** [16]: The importance of ontology in this area is that it provides a shared understanding of domain knowledge, allowing for easy communication between agents and thereby reducing misunderstandings. 

 **Search Engines** [16, 31]: These use ontology in the form of thesauri to find the synonyms of search terms, which facilitates internet searching. 

 **E-Commerce** [16]: This application uses ontology to facilitate communication between seller and buyer through the description of merchandise, as well as enabling machine-based 