Semantic Annotation

Controlled languages

Controlled languages are interesting in technical domains. On the one hand, one can formula first-order logic in english-like formalism, but that remains first-order logic. Similarly, one can simply restrict English to a smaller vocabulary, without providing formal semantics for such restricted language. There is a large space of possibilities of combining these two directions.

Uses of natural language in specifying and verifying program properties

We can also give English text representation to meanings of specification languages for software. The KeY project did this for OCL language in the UML modelling language:

Natural Language Specifications, note the quote: “However, the provided natural language translations are on the same ab-
straction level as the original OCL speciﬁcations (as noted above). The intended reader of the translations must therefore be comfortable with this
abstraction level. For instance, we cannot expect a translation of OCL specifications involving low-level implementation issues to be understandable to
a customer.”

JACK tool had a part that translates English sentences to temporal logic (with some dialog for disambiguation):

Computational Law

Programming and Natural Languages

Natural language generation

If we have precise semantic representation, generating natural language text from it is easier than generating semantic representation from natural language text. Therefore, exploring natural language generation for semantic representations is very relevant.