# Knowledge modeling

Knowledge modeling is a process of creating a computer interpretable model of knowledge or standard specifications about a kind of process and/or about a kind of facility or product. The resulting knowledge model can only be computer interpretable when it is expressed in some knowledge representation language or data structure that enables the knowledge to be interpreted by software and to be stored in a database or data exchange file.
Knowledge-based engineering or knowledge-aided design is a process of computer-aided usage of such knowledge models for the design of products, facilities or processes. The design of products or facilities then uses the knowledge model to guide the creation of the facility or product that need to be designed. In other words, it used knowledge about a kind of object to create a product model of an (imaginary) individual object.
Similarly, the design of a particular process implies the creation of a process model, which design activity can be guided by the knowledge that is contained in a knowledge model about such a kind of process. The resulting process model, product model or facility model is typically also stored in a database.
Usually the knowledge representation language only allows to represent knowledge (about kinds of things), whereas another language or data structure is required to represent and store the information models about individual things. If the knowledge representation language enables to express both, then the knowledge model and the information model can be expressed in the same language (or data structure).
An example of a language that enables the expression of knowledge as well as information about individual things is Gellish English.
The basis of a knowledge model of an assembly physical object is a decomposition structure that specifies the components of the assembly and possible the sub-components of the components.
For example, knowledge about a compressor system includes that a compressor system consists of a compressor, a lubrication system, etc., whereas a lubrication system consists of a pump system, etc. Assume that this knowledge is expressed in a knowledge representation language that expresses knowledge as a collection of relations between two kinds of things, whereas in that language a relation type is defined that is called <shall have as part a>. Then a part of a knowledge model about a compressor system will consist of the following expressions of knowledge facts:
* compressor system shall have as part a compressor
* compressor system shall have as part a lubrication system
* lubrication system shall have as part a pump system
* pump system shall have as part a pump.
Such a knowledge model will be further extended with knowledge and specifications about the properties of the components, their fabrications and possibly testing and maintenance requirements.
Similarly, a knowledge model of a process is basically a specification of the sequence of process stages. This sequence is determined by the fact that a kind of stream is output of a kind of process stage, whereas that same type of stream in input in the next process stage. So the defined streams have roles as inputs to process stages, whereas the same streams are outputs of other process stages. For example:
* water shall be input in a boiler
* steam shall be output of a boiler
* steam shall be input in a heater
* condensate shall be output of a heater
* etc.

## Explicitation of document content

Knowledge modeling includes the explicitation of knowledge and requirements that is available in documents, such as design manuals, (international) standard specifications and standard data sheets.
In order to make such knowledge computer interpretable it needs to be expressed in a formal knowledge representation language and thus transformed into a computer interpretable form.
For example, in the form of an expressions Gellish English. This enables that the knowledge and requirements are related to the objects in the knowledge model, whereas the whole model is again stored in a Database. The knowledge that is contained in documents can be modeled at various levels of explicitation.
A low level of explicitation keeps large parts of the specifications in the form of natural language text. This means that the text is only human interpretable, but is nevertheless related to the objects in the knowledge model.
Thus software can still present the information to users when knowledge about that object is requested. The other extreme is that the content of each sentence in a documents is converted in the formal knowledge representation language and thus the objects that are mentioned in those sentences become an integral part of the computer interpretable knowledge model.
For example, the knowledge that the API 617 standard contains a standard specification for compressors can be linked to the concept compressor in the knowledge model of a compressor system.
This can be expressed in a knowledge representation language (using the relation type ⟨is specified in⟩ as follows:
* compressor ⟨is specified in⟩ API 617
A higher level of explicitation means that paragraphs or sentences in natural language are related to components in the knowledge model. A full explicit model means that the natural language sentences are completely transformed into data in a database structure.
For example, a specification of a minimum shaft diameter might be included in the knowledge model as follows:
* shaft diameter ⟨shall have on scale a value greater than⟩ 20 mm
The above described explicitation process results in Knowledge Models and Standard Specifications Models that enable their use for computer supported knowledge-aided design as well as for automated verification of designs.