Logical English

Logical English is a controlled natural language version of Prolog, being developed by Logical Contracts. See this paper for details.

An example of a Logical English program that implements the rules of Rock Paper Scissors in the Logical Production System is below:

the maximum time is 5.

the events are:
   a player inputs a choice and an amount.

the actions are:
   a player gets a prize.

the fluents are:
   the reward is an amount, known as reward,
  
initially: the reward is 0.

scissors beats paper.
paper beats rock.
rock beats scissors.

the observations are:
  miguel inputs rock and 1000 from 1 to 2,
  bob inputs paper and 1000 from 1 to 2,
%  jacinto inputs paper and 1000 from 2 to 3.

When a player inputs a choice and a value
then the reward that is a number becomes the number plus the value.

When a player gets a prize
then the reward that is a number becomes the number minus the prize.

If 	a first player inputs a first choice and a first value from a first time to a second time
	and a second player inputs a second choice and a second value from the first time to the second time
	and the first player is different from the second player
	and the first choice beats the second choice
	and the reward is a prize at the second time
then 	the first player gets the prize from the second time to a third time.

If 	a first player inputs a first choice and a first value from a first time to a second time
	and a second player inputs a second choice and a second value from the first time to the second time
	and the first player is different from the second player
	and it is not the case that the first choice beats the second choice
	and it is not the case that the second choice beats the first choice
	and the reward is a prize at the second time
	and a number is half the prize
then 	the first player gets the number from the second time to a third time.
	and the second player gets the number from the second time to the third time.

You can test the above code online.