English has a number of prefixes that come from the concept of "half." Why do we have so many? And what's the difference between them?
Semi-, from the Latin for "half," is the most common and the earliest to show up in English. It was first used, with the straight sense of "half," in the word semicircular, but soon attached to concepts that were harder to quantify. It's easy to see what a half circle looks like, but what amount of "abstract" is "semi-abstract"? How permanent is "semi-permanent"? Through these less concrete uses, which proliferated wildly in the 1800s, semi- came to mean "virtually" or "somewhat."
Hemi- is from the Greek for "half." It is less common than semi-, and it is associated more strongly with technical language in fields like chemistry, biology, and anatomy. Its sense of "half," more than semi-, implies a lengthwise axis of symmetry. This is not obvious for the most common hemi- word, hemisphere (since a sphere is symmetrical all the way around), but a hemicylinder, is not just half a cylinder, it's the half cut lengthwise, and hemiplegic doesn't just mean half the body is paralyzed, but the right or left half (paraplegic is the term for when only the lower half is paralyzed).
Demi is from the French for "half." It was first used in English in heraldry, where things like demi-angels, demi-lions, demi-horses show up. It also held sway in other specific domains, such as military (demi-brigade) and fashion (demi-cap, demi-lustre, demi-worsted). It also picked up the sense of "virtual" or even "lesser." A demigod, after all, is not quite the real thing.
It might seem ridiculous that English had to borrow a "half" prefix from three different places, but if it didn't we wouldn't get to have a word like hemidemisemiquaver — that's a 64th note, in other words, a half of a half of a half of an eighth note, which is so much less fun to say than hemidemisemiquaver.