This project aims at building a reasoner for the IEML language. IEML is a computable meaning-representation system based on semantics primitives. It aims at combining the expressivity of natural languages (NL) with the computability of unambiguous formalisms.
This project of reasoner has two main purposes: help extending IEML by exploiting its regularities to compute new structures, and ensure coherence of IEML with itself by exhaustively confront existing elements.
TL;DR: ./run.sh
The projects depends on the IEML main system project (in a git submodule), an analogical reasoner (in a git submodule), and a Java JSON parser (as external library).
Git submodule dependencies are initialized with git submodule update --init
Build with mvn package
and run target/ieml-reasoner-1.0-SNAPSHOT-jar-with-dependencies.jar
The reasoner also requires a dump of the IEML dictionary.
The files are already packed in the resources/
directory, they can be updated when necessary by using:
python3 usl_extract.py
(after git submodule initialization).
Once dependencies have been retrieved and resources generated, the prototype can be run simply using ant run
The system loads the dictionary and the word structures from the database (previously gathered by usl_extract.py
).
The available features are: finding IEML polysemy, searching the base for proportions and building equations from the base to attempt generating new words.
The polysemy procedure consists in searching for expressions in a given natural language that are used to describe several IEML words. As IEML aims to define a bijection between meanings and USLs, a polysemy may be a sign of inconsistency. In many cases, it may also indicate a mere homonymy (homographs) in the considered natural language. In the situation of NL homographs, the translation of the IEML words in this NL should be further specified (e.g. from "translation" to "translation (geometry)").
The internal coherence checking is done by constituting every valid (and relevant) analogical proportion over the syntactical structure of four words of the database. The syntax and semantics of the IEML language are bijective, thus every analogical proportion over the syntactical structure of IEML words also holds as an analogical proportion over their meanings. Finding non sound analogical proportion then helps in structure choices for making words or other IEML units.
Making analogical equations out of combinations of three words of the database leads to the generation of solution words. Those among them that do not already belong to the database are candidates to new additions following the same logical structuring as existing words. Additionally, finding a meaningless solution to an equation can help for internal coherence checking (see above). Note that for automatically generated new words, absence of meaning should not be confused with unused concept (no words in some NL to express it).