Semantics as it should be
Semantics has often been relegated to a secondary plan in the field of studies on Natural Language Processing and the “semantic interpretation” of a sentence reduced to its contribution to solve a very specific task (e.g. opinion detection, irony identification, risk analysis, etc.). We believe, on the contrary, that it is a very crucial step to achieve interpretability of AI predictions.
There are many (possibly infinite) ways of saying one thing: a semantic layer normalizes these multiple ways in a structured, unique representation that in our case is close to First Order Logic. To exemplify, given a set of syntactically different sentences such
This is the movie that was appreciated by Mary
This is the movie that Mary appreciated.
Mary appreciated this movie.
…
our semantic layer is capable to reduce them to a single predicate, such as (oversimplification):
Mary_pers APPRECIATE_past movie_media
As for the specific representation we adopt we try to mediate between usable and reasonably simple representation and high level Semantic Schemes (aka "Meaning Representation Frameworks") such as Elementary Dependency Structures (EDS, Oepen and Lønning, 2006), Prague Tectogrammatical Graphs (Zeman and Hajiˇc , 2020 ) and especially Universal Conceptual Cognitive Annotation (UCCA, Abend and Rappoport, 2013, site) and Abstract Meaning Representation (AMR; Banarescu et al., 2013, site)
Deep Learning and Semantics
While rules for bridging syntactic representation to the semantic layer are always manually written and are quite stable for a given language (no need to change them when switching application/domain), semantic representation of the words itself (lexical semantics) shows a great cross domain, cross application variability. In order to capture this variability, we make large use of "word embeddings" method and other Deep Learning techniques. These allow fast adaptation of semantic structures such as polarity (see Dini et al. 2018), selectional restrictions, semantic roles etc.
And the Human?
In the semantic analysis process the language engineer operates on two crucial data structures. On the one hand, she takes care of rules bridging syntactic representation to semantic ones. These are largely stable across domains, but some specific adjustments might be necessary depending on the application (e.g. importance of retrieval v.s. recall, predominance of event analysis over entity analysis, etc.). On the other hand, she must systematically validate the lexical suggestions proposed by the DL system, which are mostly correct, but might also introduce sporadic errors.