Ontologies in computer science
An ontology is a model representing a fragment of knowledge domain, comprising a set of concepts and a set of predicates: properties of concepts being unary predicates and a set of relationships between concepts being binary predicates. An ontology must describe reality on different levels of granularity, maintaining a description of relationships between layers in the hierarchy. Because the levels considered range from the microphysical up to the cosmological, it should be noted that an ontology created in this way is not universal in its range. Ontology should provide knowledge interoperability and reusability. An ontology is not a database schema, but one could say that the ontology serves the same purpose in the case of knowledge repositories as entity diagrams in the case of databases; it is a schema, a model describing a certain field of knowledge, understandable by both computers and people. Creating a unified, formal language of related-concepts definitions and its consequent sharing with a number of users is the first and foremost purpose of ontologies. Issues related to data integration and data interchange among heterogeneous programming artifacts are very common today, due to their importance in complex and distributed systems. Ontologies are capable of solving problems related to integration of knowledge. Moreover, they could help in classification when available knowledge is incomplete and/or inconsistent.
Ontologies in material modeling science
Modeling of processes in material science entails the necessity of developing complex systems involving various submodels. Complex models can be represented by a set of relationships and variables, which describe dependencies between material properties and its processing. The need to use a unified language to describe individual components of the modeled system—ontologies—has been repeatedly mentioned in the field of chemistry, biology and geography.
Currently, a variety of simulation models is known in the field of material science. These models are written using various languages and are designed for a wide range of computational environments. Unfortunately, these models are usually neither interoperable nor annotated in a sufficiently consistent manner to support intelligent searching or integration of available models. Usually, simulation models contain no explicit information on what they represent—they are only systems of mathematical equations encoded in a programming language. Knowledge about a system (process, phenomenon) is implicit in the code; it is an abstract representation of the system utilizing mathematical variables and equations which must be interpreted by a researcher.