In many cases enumerated values can be treated like numbers (like with comparisons) and successor, predecessor relations. (though you use next ... instead of increment ..., but it's the same basically)
This does not work, but I feel like it should.
Military rank is a kind of value.
The military ranks are rank private, specialist, corporal, seargent, master seargent, seargent major.
A person has a military rank.
Definition: A person is noble if his military rank is master seargent or more.
The beaches of Normandy is a room.
McGilliguddy is a rank private man. He is here.
Sarge Stewart is a master seargent man. He is here.
when play begins:
    say "[the noblest man]"
This is what I'm using as a work-around, but it feels janky.
Military rank is a kind of value.
rank0 specifies a military rank.
private rank is always rank0.
specialist is always rank1.
corporal is always rank2.
seargent is always rank3.
master seargent is always rank4.
seargent major is always rank5.
A person has a military rank.
Definition: A person is noble if his military rank is rank4 or more.
The beaches of Normandy is a room.
McGilliguddy is a man. He is here. The military rank is private rank.
Sarge Stewart is a man. He is here. The military rank is master seargent.
when play begins:
    say "[the noblest man]"