Suppose we have a contract with some clauses. There are some variables in this contract, which are named as a Word of Phrase. For example, "Time for Completion." Then there are some conditions in the contract, which can be equality or inequality. For example, the "Time for Completion" must be less than (or equal to) 12 months.
My question is:
Is there an NLP software/algorithm in the market that can extract these variables and then present some equalities or inequalities that represent the contract's terms and conditions?
Translating from a natural language representation of a contract into something computable is a VERY difficult problem.
Consider just the issue you posed. Look at some representative time to completion clauses. https://wolfr.am/Qei6youU. Here's one: "Time for Completion means the time for completing the execution of and passing the Tests on Completion of the Works or any Section or part thereof as stated in the Contract (or as extended under Clause 44) calculated from the Commencement Date." Here's another: "Time for Completion means the time for completing the Works or a Section (as the case may be) under Sub-Clause 8.2 (Time for Completion]) as stated in the Contract Data (with any extension under Sub-Clause 8.4 (Extension of Time for Completion)), calculated from the Commencement Date." Parsing this out requires an understanding of the entire contract. It's not something that can be done with Regular Expressions looking just at the particular sentence. Trust me, there is an industry working on this problem. If you want to see some decent work, check this out: https://github.com/LexPredict/lexpredict-lexnlp
In short, there are at least two challenging issues. The first is representing the contract as a symbolic expression. In some fields, such as standard financial contracts, this may be possible; in others such as personal service contracts or more complex documents (merger agreements), it will be significantly more difficult. The second, which is what you seem interested in, is translating a human language contract into that symbolic expression. That's even harder.
Thank you very much for your excellent answer, especially the introduction of LexPredict.
Regarding your last statement, which of the options below do you think is more feasible in the longterm?
1- Taking the hard effort to translate current human languages (e.g., English) to mathematical language (i.e., symbolic expressions)
2- Creating a new language from scratch that is more quantitative and verifiable in nature (at least if we have no other choice to use a word with an ambiguous meaning, assign a probabilistic number to the word which represents a probability of accuracy in meaning)