Just as human memory is organised by linguistic coding, the memory of computers could be organized by a linguistic code adapted to its mechanical nature, like IEML. Our metalanguage defines the addressing system of a virtual database the query language of which is IEQL (Information Economy Query Language).
Reminder on the Predicate Logic (or First Order Logic)
Like many query languages, IEQL – the query language that makes IEML a virtual database – is based on predicate logic. That is why it is necessary to remind the reader about this subject.
In logic and more specifically in predicate logic, the domain of discourse designates the set of entities that is covered by universal and existential quantifiers.
- There are two quantifiers:
– the universal quantifier : « given any », « for all ».
– the existential quantifier : « there exists », « there is at least one », or « for some »
- Variables x, y, etc. are used to denote entities in the domain of discourse.
- Predicates describe in a functional mode – using variables – the properties and relationships (unary, binary, ternary, etc.) of entities in the domain of discourse.
Note the difference between a proposition (or assertion) and a predicate. A proposition is an assertion with a truth value. A predicate is an expression whose truth value depends on the variables it contains. For example: The predicate « My country is in Europe » will be true, false or indeterminate depending on the value of the variable « My country ». If the reader is French, the predicate « France is in Europe » will be true; if the reader is Canadian, the predicate « Canada is in Europe » will be false.
- Logical connectors (AND, OR, NOT, IMPLIES…) establish logical relations between predicates.
Entities Belonging to the Domain of Discourse of IEQL
The entities of IEQL’s domain of discourse are :
- the expressions of the IEML language,
- the different types of expressions, layered according to their level of complexity,
- the functions – or paradigms – that generate IEML expressions,
- the integer numbers describing the cardinals of the sets of expressions generated by the paradigms
- the data addressed by IEML expressions
- the syntactic paths that describe precisely which part or sub-part of an USL (an IEML expression) we are talking about.
Types of USLs
A USL (a semantic address) is composed of parts that are also USLs. This is why USLs are distinguished according to their type. According to the grammatical structure of IEML, the types of USL – or types of parts of USL – are :
- USL-radicals (made of 1, 2 or 3 elements),
- USL-junctions (connections through expressions like: and, or, but, because, therefore, etc.)
- USL-sentences (simple)
- USL-sentences with 2, 3, etc. recursion levels.
The Data that are Addressed by the USLs in the UKGs
Let’s consider a virtual database whose addressing system is IEML. The entity composed of a USL and the data indexed by this USL is called a UKG (Uniform Knowledge Graph). The references – or data – are themselves made up of three parts
- The reference identifier, which makes it possible to note whether several semantic addresses refer – or not – to the same object,
- The type of data (e.g. image, number, GPS coordinates, date, etc.).
- The value (i.e. the data itself)
The Syntactic Paths
A syntactic path is used to describe precisely which part or sub-part of an USL we are talking about. For example, « the second element of the radical that appears in the third place of the junction that plays the role of complement of place in this sentence ». The syntactic path can be used to designate any syntactic role of an USL but also the data or part of data that is addressed by this path.
What are we talking about?
As explained above, predicates are functions of the predicate logic whose variables are the entities of the IEQL domain of discourse. The predicates of our query language may result from the (recursive) composition of several simpler predicates – the elementary operators – notably through the use of quantifiers and logical connectors.
In a virtual database addressed by IEML, IEQL predicates have two main uses: the creation of semantic relations and search.
The (recursive) creation of semantic relations between USLs (IEML categories) or UKGs (data categorized in IEML) is a function of the syntactic variables described above. The semantic relations are computable functions of the syntactic relations (involving characters in syntactic roles), which are themselves entirely regular. This is why linguistic semantics can be computed in IEML.
Any IEML phrase (sentence, junction, or a complex composition of both) creates semantic links between its components.
The Elementary Operators of IEQL
The elementary operators of IEQL are used to compose more complex predicates. They are the comparison operators, the path operators and the syntactic relations operators.
- Comparison operators. Their aim is to compare…
- the USLs and their levels of complexity,
- the syntactic paths within the USLs,
- reference indexes and data values.
- Path operators allow…
- to concatenate the syntactic paths,
- to cut out sub-paths,
- to designate the « syntactic objects » pointed by the paths.
- Syntactic relation operators lay down conditions on the USLs’ belonging…
- to paradigms (relation between an expression and a set of expressions generated by a function)
- to expressions (part / whole relationship in a sentence, a word, an element, etc.).
IEQL predicates built from several elementary operators may be used as complex operators in the construction of new IEQL predicates.