Scalar Negation/Modifers

From OpenCog
Jump to: navigation, search

Lojban has different types of Negation such as simple Boolean negation and the more complex Scalar Negation (Scalar Modifiers in general).

Explanation of Scalar Modifier

Scalar Modifiers as there name suggests imply a scale. A negation of this type not only states that one scalar value is false, but implies that another value on the scale must be true. (Contrary to Boolean negation which does not imply a scale or for another value on it to be true) Example:

mi na'e            nelci do
I  scalar negation like  you

Says there is a relationship between me and you, which has a scale that can fit the value "like" so it could be some relationship of feelings.

The possible modifiers in Lojban are:

je'a
   scalar affirmer; denies scalar negation: Indeed!.
na'e
   contrary scalar negator: other than ...; not ...; a scale or set is implied.
no'e
   midpoint scalar negator: neutral point between je'a and to'e; "not really".
to'e
   polar opposite scalar negator.

for example:

mi to'e           nelci do
I  polar opposite like  you 

would mean i dislike you.

Possible Representation in OpenCog

Explained for the following example

mi to'e nelci do

We would use a Variable Node that has to fulfil certain constraints as the predicate.

EvaluationLink
    VariableNode "$pred"
    ListLink
        ConceptNode "mi"
        ConceptNode "do"

First of all the type of relationship it describes has to be similar to the specified predicate.

AndLink
   ImplicationLink
       VariableNode "$1"
       VariableNode "$pred"
   ImplicationLink
       VariableNode "$1"
       PredicateNode

And secondly "to'e" gives us the information that the wanted predicate is the antonym to the given one.

EquivalenceLink
    EvaluationLink
        VariableNode "$pred"
        VariableNode "$args"
    NotLink
        EvaluationLink
            PredicateNode "nelci"
            VariableNode "$args"


The problem with this is that without any background knowledge about how different predicates relate to each other the system will not find an appropriate "$pred". Similarly the System will not easily find antonyms which already exist in the dictionary. This kind of information would have to be preloaded into the System or trained over time.