Answers.Body: <p>There are several problems with this, which is why people have been working on tasks like that for about 50 years without getting very far. As you rightly notice, it has been tried in restricted domains, where it works reasonably well. Reason being, there is less ambiguity.</p>
  
  <p>Human language is full of vagueness and ambiguity. We generally have few problems handling that, but we have a wealth of experience available to interpret utterances, and a quite sophisticated 'natural intelligence' to exclude non-sensical interpretations. Computer programs struggle with this. Even on a syntactic level there are many way to interpret a sentence, most of which a human being wouldn't even notice. A famous example sentence in linguistics is <em>Time flies like an arrow.</em>, which has four different interpretations to a computer (and a trained linguist), while most human beings would only see one.</p>
  
  <p>And after the vagueness/ambiguity you have the problem of <a href="https://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning" rel="nofollow noreferrer">representing meaning</a>. There is a whole field in AI dealing with that. You will find that the expressive power of higher order logic falls short of the expressive power of human language, so there is an issue there.</p>
  
  <p>Then you have the analysis. Prolog, by the way, is a programming language, not a resolution algorithm. How do you decide whether something follows from something else? You would need to understand a whole lot of contextual information to say that <em>It has rained, so the streets are wet.</em> is a logical sentence. And now imagine doing this for scientific papers that are about new discoveries, so you are dealing with unknown phenomena your software hasn't encountered yet.</p>
  
  <p>I cannot answer your question "what work has there been done so far", because there is too much to list. The whole field of natural language processing is concerned among others with the problem of parsing/syntactic/semantic analysis, and there are literally decades of academic work you would need to look at. Same for knowledge representation.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-11-14T09:29:04.163Z
Answers.LastActivityDate: 2018-11-14T09:29:04.163Z
Answers.UserDisplayName: Oliver Mason
Body: <h3>(Un-original) idea:</h3>
  <p>Wouldn't it be cool if we could fact-check using an algorithm that could understand a whole bunch of documents (e.g. scientific papers) as higher-order logic?</p>
  <h3>Question:</h3>
  <p>What work has been done on this to date?</p>
  <h3>What I've got so far:</h3>
  <p>(1) I seem to recall there being prior work to create a subset of English (I think intended for use in scientific writing) that could be easily interpreted by an algorithm. This doesn't quite get us to the algorithm described above (as it's restricted to a subset of English) - but seems pertinent.</p>
  <p>(2) Once parsed, I guess a resolution algorithm like that in <a href="https://en.wikipedia.org/wiki/Prolog" rel="nofollow noreferrer">Prolog</a> could be used to check wether a fact (presumably also inputted as a logical statement) contradicts the logic of the documents?</p>
  
Tags: <natural-language-processing><logic>
Title: Possible to translate generic English-language document into higher-order logic?
UserDisplayName: act
ThreadText: # Possible to translate generic English-language document into higher-order logic?
  
  (Asked by: username_0 on 2018-11-13)
  
  ### (Un-original) idea:
  
  Wouldn't it be cool if we could fact-check using an algorithm that could understand a whole bunch of documents (e.g. scientific papers) as higher-order logic?
  
  ### Question:
  
  What work has been done on this to date?
  
  ### What I've got so far:
  
  (1) I seem to recall there being prior work to create a subset of English (I think intended for use in scientific writing) that could be easily interpreted by an algorithm. This doesn't quite get us to the algorithm described above (as it's restricted to a subset of English) - but seems pertinent.
  
  (2) Once parsed, I guess a resolution algorithm like that in [Prolog](https://en.wikipedia.org/wiki/Prolog) could be used to check wether a fact (presumably also inputted as a logical statement) contradicts the logic of the documents?
  
  **Tags:** natural-language-processing, logic
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2018-11-14. Score: 1
  
  There are several problems with this, which is why people have been working on tasks like that for about 50 years without getting very far. As you rightly notice, it has been tried in restricted domains, where it works reasonably well. Reason being, there is less ambiguity.
  
  Human language is full of vagueness and ambiguity. We generally have few problems handling that, but we have a wealth of experience available to interpret utterances, and a quite sophisticated 'natural intelligence' to exclude non-sensical interpretations. Computer programs struggle with this. Even on a syntactic level there are many way to interpret a sentence, most of which a human being wouldn't even notice. A famous example sentence in linguistics is *Time flies like an arrow.*, which has four different interpretations to a computer (and a trained linguist), while most human beings would only see one.
  
  And after the vagueness/ambiguity you have the problem of [representing meaning](https://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning). There is a whole field in AI dealing with that. You will find that the expressive power of higher order logic falls short of the expressive power of human language, so there is an issue there.
  
  Then you have the analysis. Prolog, by the way, is a programming language, not a resolution algorithm. How do you decide whether something follows from something else? You would need to understand a whole lot of contextual information to say that *It has rained, so the streets are wet.* is a logical sentence. And now imagine doing this for scientific papers that are about new discoveries, so you are dealing with unknown phenomena your software hasn't encountered yet.
  
  I cannot answer your question "what work has there been done so far", because there is too much to list. The whole field of natural language processing is concerned among others with the problem of parsing/syntactic/semantic analysis, and there are literally decades of academic work you would need to look at. Same for knowledge representation.
  
  
  ---
  
  