User Tools

Site Tools


Developing Gellish enabled software

1. The Communicator reference application

A project on GitHub ( provides the source code of the Gellish Communicator software that demonstrates how Gellish expressions can be read, searched, interpreted, presented as well as generated. It demonstrates capabilities of the language, provides testing of correctness of expressions and can be used as a basis for retrieval of source code. It also provides examples of information models that can be read by the software and searched through.

2. Interpreting expressions

The collection of statements in the upper ontology (the expressions in base ontology section) defines the standard kinds of relations of Gellish and the names and phrases define the vocabulary that can be used. The definitions of those kinds of relations define the interpretation rules for the language. As the language definition is also expressed in Gellish, those rules are also the rules to interpret the language definition itself. To interpret the base language definition (the base ontology) itself there are only a few standard kinds of relations required: they form the bootstrapping kinds of relations. Those bootstrapping kinds of relations are used to interpret the base ontology itself, whereas the kinds of relations that are defined in the base ontology are used to interpret every other Gellish Expression.

The meaning of each Gellish expression, for example 'A <is located in> B', is primarily determined by the meaning of the kind of relation (in this case denoted by the phrase <is located in>) that classifies the particular relation between the related objects (A and B). The meaning is further determined by the definition of the related objects. If the related objects are individual things, such as A and B in the example, then their meaning follows from their name and classification. The Universal Semantic Patterns of the Gellish Modeling Methodology indicates the requirement that for all individual things there are classification relations required that relate those individual things to concepts that are defined in the taxonomic dictionary. For example, from the Universal Semantic Pattern it follows that the relations 'A <is classified as a> city' and 'B <is classified as a> country' are required to enable interpreting the expression. Furthermore, the software should verify whether the classifying kinds, such as 'city' and 'country' are names of concepts that are properly defined at least by specializations relations that defines a concept as being a subtype of one or more supertype concepts. Application software that is expected to interpret expressions in a Gellish formal language should therefore first import the Gellish Taxonomic Dictionary, at least including the base ontology section with the definitions and vocabulary of the standard kinds of relations and other concepts, and then use it as follows. It should search for the appropriate kind of relation (the UID) that is denoted by a standard phrase, such as in this example denoted by the phrase 'is located in'. From the taxonomy of relations it should be derived whether the kind of relation is a relation between individual things or some other category. If A and B are individual things, as in this example, then it should be verified whether that is compatible with other relations to A and B. Furthermore, it should be verified whether the information model contains classification relations that classify A and B. This should be done by searching for (UIDs of) relations that are denoted by the phrase 'is classified as a' or one of its synonyms. Then the rules for interpretation can be build on the recognition of the (UIDs of) the kinds of relations and the taxonomy in which the classifiers of the related objects appear.

2.1 Interpreting relations

Each kind of relation has a name and is defined in the taxonomic dictionary by one or more <is a kind of> relations with its direct supertype kind of relation(s). On separate lines it is specified for each kind of relation that it has by definition two roles: a first role and a second role. For each role it is specified in another statement which kind of thing can fulfill such a role. Nearly each kind of relation is also denoted by a Gellish base phrase and an inverse Gellish phrase. Those phrases are natural language phrases that are synonyms for the name of the kind of relation, but extended with a reading direction of the expression. A base phrase corresponds with a first role player at the left hand side of the phrase (in English). The inverse phrase corresponds with a second role player at the right hand side of the phrase (in English). For example: the subtype-supertype relation (UID 1146) is called <specialization relation between kinds>. The base phrase is: <is a kind of>, which corresponds with a player of its first role (subtype) at its left hand side and a player of its second role (supertype) at its right hand side.

The definition of kinds of relations thus define which kinds of things may play the first and second kinds of roles. This implies that it can be verified by software whether something that is related by a kind of relation is allowed to play the role that it plays in such a relation. Such a semantic verification is only possible when related individual things are properly classified and when kinds are properly defined as subtype of their supertype(s) in the taxonomy. For example, the <is a kind of> relation requires that the left hand object as well as the right hand object is a kind. Because 'building' is defined in the dictionary as a kind, software can conclude that 'house' is also a kind. Thus the expression: “house <is a kind of> building” is a semantically correct Gellish expression according to the definition in the base ontology. A correct inverse expression will be “building <has as subtype> house”. This implies that house and building may not be used in expressions where they play a role as individual things.

Sometimes it is not specified for a kind of relation which kinds of roles it by definition has. In those cases the roles are inherited from the supertype of the kind of relation, because the kinds of relations are arranged in a subtype-supertype hierarchy. For that reason the roles of a kind of relation are subtypes of the roles of the supertype of the kind of relation. And also a role player of a particular role is a subtype of a role player of the supertype role of that particular role.

2.2 Semantic networks

The software should build one integrated semantic network in which everything is an object and in which those objects are related to each other by relations that are classified by kinds of relations. Such a semantic network combines the relations that form the language definition with the various collections of relations that make up one or more information model. This enables that information and documents in the network can be queried via a specification of the characteristics of individual objects, as well as via (the characteristics of) the concepts and taxonomy of the dictionary.

3. Certification of software

Software that is able to import and interpret Gellish expressions in a correct way and/or is able to create and export correct Gellish expressions can be certified by the ! organization or an approved certifying authority. For further information contact info at

Continue with Gellish Database

development_of_gellish_enabled_software.txt · Last modified: 2018/08/06 23:32 by andries