@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix : <urn:example:>.

# beetle is a car
:beetle a :Car.

# all cars are green or blue
(_:A) log:onNegativeSurface {
    _:A a :Car.
    () log:onNegativeSurface {
        _:A :is :green.
    }.
    () log:onNegativeSurface {
        _:A :is :blue.
    }.
}.

# green things are nice or pretty
(_:A) log:onNegativeSurface {
    _:A :is :green.
    () log:onNegativeSurface {
        _:A :is :nice.
    }.
    () log:onNegativeSurface {
        _:A :is :pretty.
    }.
}.

# pretty things are pretty 1 or pretty 2
(_:A) log:onNegativeSurface {
    _:A :is :pretty.
    () log:onNegativeSurface {
        _:A :is :pretty1.
    }.
    () log:onNegativeSurface {
        _:A :is :pretty2.
    }.
}.

# nice things are nice 1 or nice 2
(_:A) log:onNegativeSurface {
    _:A :is :nice.
    () log:onNegativeSurface {
        _:A :is :nice1.
    }.
    () log:onNegativeSurface {
        _:A :is :nice2.
    }.
}.

# pretty 1 things are pretty 11 or pretty 12
(_:A) log:onNegativeSurface {
    _:A :is :pretty1.
    () log:onNegativeSurface {
        _:A :is :pretty11.
    }.
    () log:onNegativeSurface {
        _:A :is :pretty12.
    }.
}.

# pretty 2 things are pretty 21 or pretty 22
(_:A) log:onNegativeSurface {
    _:A :is :pretty2.
    () log:onNegativeSurface {
        _:A :is :pretty21.
    }.
    () log:onNegativeSurface {
        _:A :is :pretty22.
    }.
}.

# nice 1 things are nice 11 or nice 12
(_:A) log:onNegativeSurface {
    _:A :is :nice1.
    () log:onNegativeSurface {
        _:A :is :nice11.
    }.
    () log:onNegativeSurface {
        _:A :is :nice12.
    }.
}.

# nice 2 things are nice 21 or nice 22
(_:A) log:onNegativeSurface {
    _:A :is :nice2.
    () log:onNegativeSurface {
        _:A :is :nice21.
    }.
    () log:onNegativeSurface {
        _:A :is :nice22.
    }.
}.

# pretty or nice or blue things are beautiful
(_:A) log:onNegativeSurface {
    () log:onNegativeSurface {
        () log:onNegativeSurface {
            _:A :is :pretty11.
        }.
        () log:onNegativeSurface {
            _:A :is :pretty12.
        }.
        () log:onNegativeSurface {
            _:A :is :pretty21.
        }.
        () log:onNegativeSurface {
            _:A :is :pretty22.
        }.
        () log:onNegativeSurface {
            _:A :is :nice11.
        }.
        () log:onNegativeSurface {
            _:A :is :nice12.
        }.
        () log:onNegativeSurface {
            _:A :is :nice21.
        }.
        () log:onNegativeSurface {
            _:A :is :nice22.
        }.
        () log:onNegativeSurface {
            _:A :is :blue.
        }.
    }.
    () log:onNegativeSurface {
        _:A :is :beautiful.
    }.
}.

# query
() log:onNegativeSurface {
    :beetle :is :beautiful.
    () log:onNegativeAnswerSurface {
        :beetle :is :beautiful.
    }.
}.
