Source: https://www.cs.mcgill.ca/~chang/pub/posComb.pdf