Questions about the implementation of opposites in artificial languages (henceforth ALs) are really questions about the interaction between morphology and lexical semantics - two of my favorite subjects.
Linguists have written quite a lot on the subject of opposites. For a highly readable reference, I recommend Lexical Semantics by D.A. Cruse, Cambridge University Press, 1986. The book contains three chapters just on opposites. Here's a partial breakdown of the kinds of opposites you can run into:
and much more.
Fortunately or unfortunately, I've never heard of a natural language that marks its words consistently and equally for polarity. When it occurs at all, there is always an imbalance, as with the English "un-" (For example, the word "marked" is unmarked, while the word "unmarked" is marked.)
However, both natural and artificial languages mark their words for many other things, and I see no reason why we can't extend this idea to cover polarity. For example, in many Malayo-Polynesian languages (Indonesian, Tagalog, Fijian, et al.) verbs are derived from primitives to mark their transitivity and whether they are active or passive. Or, consider Iroquoian langauges, such as Mohawk and Cherokee, which mark their verbs for the semantic roles agent and patient played by the arguments. As for nouns, consider the Bantu langauges which mark for class (which is often semantically relevant).
What if we extended these morphological derivations to indicate their polarity by doubling the number of marker morphemes? In other words, where you may now have one morpheme to mark a specific feature, instead have two: one for positive and one for negative. For example, let's say your AL marks its verbs for transitivity, like this:
If the root meaning free, non-captive is booga, then we could create the following words:
This approach is okay for a crude first pass, but it is unsatisfying
as a real solution because transitivity is a syntactic
phenomenon. I feel that a semantic solution based on thematic
relations would be much more flexible, and I have LOTS to say on this in
my (very long!) monograph Lexical
Semantics. Also, this solution is too simplistic, because it fails
to deal adequately with gradeable concepts, like hot, warm,
lukewarm, ambient, cool, cold, frigid. For these, you could
start with derived primitives to handle basic (+), (0) and (-) concepts,
and then add fine-tuning morphemes to cover the cases in between. For
example:
positive (+) primitives: CVNC
where N is a nasal, homorganic with the C that follows it.
neutral (0) primitives: CVLC
where L is a liquid, such as /l/ or /r/
negative (-) primitives: CVSC
where S is either /s/ or /z/, agreeing in voicing with the C
that follows it.
Next, add the fine-tuning morphemes:
ki- = to move in a positive direction
So, to put it all together, let pend = 'hot',
peld = 'ambient', and pezd = 'cold'. With
the fine-tuning morphemes, you can now get:
no- = to move in a negative direction
kipend = scalding, red-hot
pend = hot
nopend = warm, not too hot
kipeld = lukewarm, tepid
peld = ambient, room-temperature
nopeld = slightly cool
kipezd = cool
pezd = cold
nopezd = frigid
You can, of course, add more fine-tuning morphemes to handle finer distinctions or more extreme ones, such as 'super hot' and 'super cold'.
The only problem I have with all of this is that it is definitely unnatural, and I would normally be reluctant to include a feature in an AL that could potentially go against some linguistic universal. However, I doubt if this is a serious problem, since linguistic purists could always regard the combination of a primitive + polarity marker as a single morpheme.
I will say no more about this because I've written a lengthy
monograph Lexical Semantics
that goes into considerably more detail on the whole topic of lexical
semantics for ALs, and I prefer to say it all there rather than here.
Besides, the approach I discuss in the monograph is considerably different
than the one discussed here, and, in my opinion, considerably better as
well. :-)