Which one is the most general: "ox", "bull", "bison" or "buffalo"?

Solution 1:

Bison, ox, and buffalo are all specific, different species. Confusingly, bison are sometimes called buffalo, although my impression is that this is becoming less common.

Bulls are adult males, most commonly cattle, though potentially from any of these species (and even some very different species---sea lion males, for instance, are also called bulls). Apparently ox is also used to refer to a castrated male from any of these species (again, mostly commonly cattle).

If you want a term that includes all of these, you probably want "bovine".

Solution 2:

In the U.S., "buffalo" and "bison" are used interchangeably for the species Bison bison (latin name). I would say (as an American English speaker) that "buffalo" is by far the more common term in everyday speech, though one could certainly argue that "bison" is the more technically correct term. See also the discussion at the start of the wikipedia article.


ADDED:

I tried some googling to isolate American uses of "buffalo" versus "bison":

"great plains" buffalo -- 4.5 million results

"great plains" bison -- 1.5 million results

If you replace "great plains" with the name of an American state in the region (Kansas, Nebraska, ...) in the above searches, the ratio becomes more like 10 to 1 in favor of "buffalo". I would guess that there are a significant fraction of Americans who aren't sure what a "bison" is, but these same people would have no trouble identifying a "buffalo" (meaning what biologists would call an "American bison").

Solution 3:

To my knowledge, they are all separate species within the Bovini genus.

http://en.wikipedia.org/wiki/Bovini

None of the words you mention can be used at all for any of the others. "Cattle" can be, or Bovines.