Table of content:
Note that each Wiki page has its own table of content about the details on that page.
Table of content:
Note that each Wiki page has its own table of content about the details on that page.
This is an old revision of the document!
Conventional data modelling for any application domain typically results in a domain specific (conceptual, logical and physical) data model, also called a scheme. Such a data model documents the requirements and capabilities for storage of data in a database or data exchange messages. Thus it defines the semantic capabilities for expressions of ideas that can be stored in the database or exchanged between systems.
In conventional data modelling methodologies, such as ER (entity-relationship), ORM (Object-Role Modelling) and others, each data model consists of a definition of the concepts (classes or entity types and attribute types) that are relevant for the application domain, together with relations between those concepts. The concepts are the kinds (classes) that will classify the instances of objects and their aspects, whereas the relations determine the kinds of ideas or facts (instances) that can be stored or exchanged. Such a data model thus defines the structure of the data (the definitions of the database tables and relations between their columns (attributes)).
Once conventional data models are created, they are fixed and specific for the application domain specific (the Universe of Discourse), whereas software is dedicated to that fixed structure. Thus the storage capabilities of the resulting databases are fixed and limited to the application domain. As a consequence modifications of the storage capabilities are time consuming and costly.
The Gellish Modeling Methodology extents the conventional data modeling methods in various ways:
This is achieved by the predefined syntax and semantics of the Gellish family of languages and by expressing information in a Gellish language, such as Formal English. Then there are no data models required for creating database structures or exchange messages (interfaces), because information is always expressed in the same standardized expression format. This means that each database or exchange message can have basically the same structure, being either object oriented or table oriented. This provides a huge reduction of design processes and also means that reusable application software can be created that enables universal storage and retrieval and exchange of ideas of any kind.
Below it is described how systems can be created that can import, export and store Gellish data and how flexible user interfaces can be created that allow exchanging a large variety of information without the need to modify their data structure.
The Gellish methodology enables that knowledge and requirements as well as information about individual things (instances) are expressed in the Gellish languages. Gellish then requires that all concepts in the expressions shall be selected from the Gellish dictionary or in case they are not present, they shall ad-hoc be added to that dictionary. This is required in order to ensure the use of a common unambiguous language between application systems that send or receive or store information. Thus standardized concepts and standardized kinds of relations are used to a maximum extent, and concepts and definitions are not reinvented again and again. When concepts or kinds of relations are not available in the Gellish dictionary, then they shall be added as proprietary extensions according to the rules for extension of the Gellish dictionary.
Expressions of knowledge and requirements consist of assertions about kinds of things. Such assertions (or ideas) can be used by application software to create instances, which are typically statements about individual things, or statements about subtypes of the kinds. In other words, application software can create expressions of ideas about individual things or kinds of things on the basis of knowledge or requirements about kinds of things.
For example, knowledge about pumps will be used to guide the process of expressing ideas (information) about individual pumps. The result of such a process of describing an individual pump will be a collection of ideas about the individual pump. But in fact the process of expressing ideas about any individual physical objects is basically very similar, although other kinds of aspects will be relevant for other kinds of objects. For example, all ideas about persons, pieces of software, processes, or statements about relations between them are expressed as relations between things, whereas the nature of those relations are defined by the (standard) kinds of relations that classify the relations.
The information can be presented in graphical form, for example in an ORM schematic drawing, but it can also be presented in the form of collection of Gellish expressions. For example:
Language community | UID of left hand object | Name of left hand object | UID of an idea | UID of kind of relation | Name of kind of relation | UID of right hand object | Name of right hand object |
---|---|---|---|---|---|---|---|
rotating eq. | 130206 | pump | 101 | 2069 | can have as aspect a | 551564 | capacity |
rotating eq. | 130206 | pump | 102 | 1191 | can have as part a | 130030 | bearing |
rotating eq. | 130058 | centrifugal pump | 103 | 1146 | is a specialization of | 130206 | pump |
rotating eq. | 130058 | centrifugal pump | 104 | 1191 | can have as part a | 130144 | impeller |
rotating eq. | 130144 | impeller | 105 | 2069 | can have as aspect a | 550188 | diameter |
Table 1, Information about pumps
All concepts (kinds of things) that are used in Table 1, such as pump, centrifugal pump, impeller, and properties, such as capacity and diameter, are already defined in the Gellish Dictionary and thus their Gellish unique identifiers (the UID’s 130206, 130058, etc.) are selected from that dictionary. Also the kinds of relations are selected from the Gellish Dictionary. The only new things in this table are the ideas, indicated by the idea UID’s, that express the knowledge, except for idea 103, which is not new. Idea 103 is a superfluous duplicate from the idea that already exists in the Gellish Dictionary, because such subtype-supertype relationships are part of the definition of the concepts in the Gellish Dictionary, which makes that the concepts are arranged as a taxonomy.
Note that the taxonomy, the subtype-supertype hierarchy, defines the inheritance of knowledge that is defined for supertype kinds of things to the subtypes kinds of things. This means for this example that idea 103 ensures that the concept ‘centrifugal pump’ inherits from the concept ‘pump’ that a centrifugal pump also can have a capacity, without an explicit specification of that idea.
If the data modelling process (also called the knowledge modelling process) identifies concepts or relation types that are required but that do not exist yet in the Gellish English Dictionary, then those concepts and relation types should be added to the Gellish English Dictionary as proprietary extensions. Such additions shall be compliant with the rules for extension of the Gellish language. It is recommended to nominate such extensions for inclusion in the Gellish Dictionary.
For details of the process to convert domain knowledge and requirements into a data model it is recommended to use a conventional data modelling methodology, such as ORM, in combination with the guidelines on the modelling of knowledge and specifications. Here we assume that a data model that is expressed in Gellish English and stored in a Gellish database table is available.
In conventional data modelling it is common practice to convert a conceptual data model (also called a knowledge model) into a database design (a physical data model). This is also possible for the above example knowledge. However, it is not necessary for a Gellish database, because a Gellish database has a predefined general purpose data structure and consists of tables that all have the same standardized database table definition (see ‘The Gellish Database table definition’). This means that for a Gellish database there is no separate database design required. Table 1 is an example of the core of such a Gellish database table, loaded with facts that specify the data model with knowledge about pumps.
This means that the data model that is specified in Table 1 does not need to be converted into a database design, but can be directly used to guide the process to create instances that can be stored in a Gellish database table with the same structure (although with other relation types). This is done as is described below.
Each fact in a data model that is expressed in Gellish English as a relation between concepts can result in “instances” that consist of one or more facts that are expressed in Gellish English as a relation between individual things, together with classification relations between the individual things and the concepts (classes) that classify them.
For example, assume that we want to store facts about a particular centrifugal pump, which is called P-1301. In other words we want to create an individual thing that is classified as a centrifugal pump and we want to create expressions of facts with information about that individual thing. To create that individual thing in Gellish it is required to specify a classification relation between the individual thing P-1301 and the concept (class) that classifies the thing. Such a fact is expressed in Gellish English as follows:
This explicit classification relation implies that the data model with knowledge about centrifugal pumps as given in Table 1 is applicable for P-1301, including also the inherited knowledge facts 101 and 102.
Note that the data model in Table 1 uses concepts from the Gellish dictionary (taxonomy) in which a large number of subtypes of pumps are defined. For example, it is defined that a line shaft pump is a subtype of centrifugal pump. This means that the knowledge about pumps and centrifugal pumps can also be made applicable for their subtypes, such as for line shaft pumps. Thus the data model enables also to classify P-1301 as any type of pump, including also as a line shaft pump.
In Gellish English there is a distinction between relation types that are used to express knowledge (facts about kinds of things) and relation types that are used to express information (facts about individual things). For example, fact 101 expresses the knowledge that a
This knowledge can be used to create a fact with information about P-1301 that states that P-1301 has a particular capacity, called cap-1301 (say). For the expression of that latter fact another relation type shall be used in Gellish as follows:
In the Gellish Dictionary it is defined which relation type shall be used to create information about individual things as a realization of a relation type used to express knowledge. Table 2 illustrates which relation types should be used to create realizations of the relation types used in Table 1.
Relation type to express knowledge | Name of relation type | Relation type to express information |
---|---|---|
can have as aspect a | can be realized by a | has as aspect |
can have as part a | can be realized by a | has as part |
Table 2, Relation types for product models versus relation types for knowledge models
Furthermore, it is a rule in Gellish that every individual thing shall be classified. So, when fact 302 about P-1301 is created this rule implies that P-1301 as well as cap-1301 shall be classified, whereas it is clear that they shall be classified by the concepts (classes) that are the left hand and right hand objects in fact that expresses the knowledge (fact 101). Furthermore every individual aspect shall be qualified in such a way that, when the aspect is classified by a subtype of property, then it can be either qualified by a qualitative aspect (e.g. a colour can be qualified as ‘red’) or can be quantified on a scale (e.g. a diameter can be quantified by a number on a scale as 300 mm). So, knowledge fact 101 will result in the following facts about the individual object P-1301:
Language community | UID of left hand object | Name of left hand object | Fact UID | UID of relation type | Name of relation type | UID of right hand object | Name of right hand object | UID of UoM | Name of UoM |
---|---|---|---|---|---|---|---|---|---|
Project A | 501 | P-1301 | 301 | 1225 | is classified as a | 130058 | centrifugal pump | ||
Project A | 501 | P-1301 | 302 | 1727 | has as aspect | 502 | cap-1301 | ||
Project A | 502 | cap-1301 | 303 | 1225 | is classified as a | 551564 | capacity | ||
Project A | 502 | cap-1301 | 304 | 5025 | has on scale a value equal to | 920466 | 300 | 570423 | mm |
Table 3, Gellish facts (instances) created on the bases of a Gellish knowledge facts (a data model)
Continue with Development of Gellish enabled software