Good question. The 5 second, and facetious answer is that OpenSwitch needs real wires and ports whereas OpenVswitch doesn't.
In more detail: OpenSwitch is switching software that you ultimately deploy onto a physical switch. Think of it as the equivalent of IOS or CatOS or JunOS. It's going to be controlling some real hardware ports. OpenVSwitch, on the other hand, is switching software that you deploy on a virtualized or cloud layer. There are no hardware ports on this switch: its representation is entirely in software. For example, when you have two virtual machines running on a compute hosts, talking to one another, their traffic will be crossing a virtual switch.
In even more detail: OpenSwitch expects to use ONIE hardware whereas OpenvSwitch only cares that you have some virtualization plumbing.
There is a lot of work going into SDN and virtualized switching right now. For example, imagine that you could control the ONIE device by software based on workloads and conditions. This is your SDN play. In another domain: how do you get the best possible performance out of a software vswitch when it's running in an environment where the host CPU has to service a bunch of competing tasks? It's a very interesting area.