Conversion from business rules in natural language (e.g. PDFs, manuals etc.) to formal rules (in a computer system) where they can be controlled via a rules engine is very important in today's industry.
Your questions amounts to a request to summarize the entire field of NLP. I suggest that you start with a good book on NLP (one that represents the perspectives of linguists, as well as computer science).
The short answer is that you probably need to build true AI (human-level intelligence, including "common sense" and an encyclopedic knowledge of idioms, norms, common scripts, etc. and the ability to learn) to automate the processing of natural language and we have not achieved this yet.
Finally, maybe you have a specific use case in mind, but I wonder if you're asking the wrong question. What's wrong with paying actual humans to do this? In 2015 and in the near future, we can probably achieve a lot more by making tools to boost worker's efficiency, than by trying to replace the worker with AI.
I think logic programming languages can be very useful for that. Actually, encoding knowledge is one of the most well-known application of such languages. The paramount example is of course Prolog (see, e.g., http://en.wikipedia.org/wiki/Prolog), but there are powerful extensions including the use of functional features (like in Curry, http://en.wikipedia.org/wiki/Curry_%28programming_language%29) or constraint solving (CLP, http://en.wikipedia.org/wiki/Constraint_logic_programming).
Many thanks for your reply everyone! I will check the links provided.
How about approaching it from a different angle...
Do a survey of all main languages or approaches used in the conversion process
Decide on which language/approach is most suitable by having a list of criteria that they need to have (or ideally a conversion language should have).... systematic comparison of approaches, (pro's and con's). Such as expressiveness, manual/automated, accurate.
Below languages or approaches come to mind when dealing with business rules domain. These could be a start point of analysis. What do you think?
you may also have a look at controlled natural languages (CNL), which restrict the usable grammar of NL to avoid ambiguity. These languages are already used by companies to write technical documentations ( and maybe to translate them to formal specifications in the future).
NLP is the field related to your question. you need to study and check similar cases for your field.
you have to understand the syntax and semantic for the natural language then try to reflected in your proposed formal language. you may need for some AI techniques in your process.
I would like to add some references about the issues (causality, normativity, ..) which haunted so far all attempts to have a One-size-fits-all solution to model rules. I agree with @Alan that humans are better suited to interpret those texts, mainly for their contextualization abilities, but I think we still lack of a general modeling environment to put their interpretation in. If this was established, controlled languages would be a perfectly viable solution as interface between human and computers.
For instance, productions rules (if something occurs, then the system produces something) and logic rules (conditional: if a then b) are semantically different, but their manifestation in natural language is not different.
To have a first breath on this problem from a computational perspective you can have a look on: Kowalski, R., & Sadri, F. (2009). Integrating logic programming and production systems in abductive logic programming agents. Lecture Notes in Computer Science 5837
From the epistemic problem on how causal rules could be modeled, a starting point may be a.o. Pearl, J. (2002). Reasoning with Cause and Effect. AI Magazine, 23, 95–111.
Concerning the problem of normativity, and its interactions with philosophical accounts and with natural language, a recent book has been published on the subject: Problems of Normativity, Rules and Rule-Following, Series: Law and Philosophy Library, Vol. 111, Araszkiewicz, M., Banas, P., Gizbert-Studnicki, T., Pleszka, K. (Eds.) Springer. 2015 http://www.springer.com/law/book/978-3-319-09374-1
A famous example of how all these things are mixed up in human cognition (and therefore, also in natural language) is given by the famous series of psychological experiments called "selection tasks", started by Wason in the 60s. They show that, given a generic rule, expressed in a similar way in different contextualizations (about a card game, daily activities, etc.), people reason differently than classic logic. Interestingly, people reason in classic logic terms when they're facing a rule concerning deontic positions. A nice overview on that subject is given in: Cosmides, L., & Tooby, J. (2008). Can a General Deontic Logic Capture the Facts of Human Moral Reasoning? How the Mind Interprets Social Exchange Rules and Detects Cheaters. Moral psychology (pp. 53–119). Cambridge: MIT Press.
@Rami I have done a bit of a comparison similar to what you ask (it is near the end of the linked publication), although at a higher level then many of the rules languages you list. I am currently working on a journal paper with an expanded/revised comparison, though...
Basically, I think the appropriate approach depends on exactly what you are trying to do and who the user is. If you have a large number of documents and want to get started trying to formalise them, possibly look into Information Extraction approaches. It might speed up the process for a human, who ultimately will need to do quite a bit of work in revising the formal models/rules.
On the other hand, if you are looking at writing the rules more formally from scratch by non-technical users, then a Controlled Natural Language approach is probably the way to go. Depending on your target language you may need to implement a transformation from their output.
If you want the formalisation to be performed completely by technical users than having them define the rules directly in the target language is possibly the way to go. More like a standard software development process, e.g. the (Agile) Business Rules Approach.
Unfortunately, I don't think there is any research at the moment that fully solves the problem---even my own ;-)
Hope that helps.
Conference Paper Formalising Natural Language Specifications Using a Cognitiv...
dear collegues, is there any online project providing a translation from natural language (from example, english) to formal language (for example, java) ?