What are the differences between a monitor condition variable and a semaphore?

What are the differences between a monitor and a semaphore?

1. A signal on an empty condition variable has no effect.
    V increments a semaphore on which no thread is blocked.

2. A wait on a condition variable always blocks the thread until a subsequent signal.
    P decrements a semaphore whose value is positive without blocking.