There is my interpretation of the $SemiNP$ and when a problem is within that set:
- For a problem $P$ (which is guaranteed to have a solution), it is $SemiNP$ if there is, for the correct solution, there exists a polytime verifiable proof that the solution is correct.
(Note that this is somewhat different from $NP$, in that the answer to the problem isn't just 'True' or 'False', but also an actual value).
If this interpretation is correct, then we have $SemiNP$ being effective equivalent to problems within $NP \cap coNP$. That is, given a $SemiNP$ problem, we can find a problem in $NP \cap coNP$ that a polynomial Oracle queries will allow us to solve the SemiNP problem, and conversely, given a problem in $NP \cap coNP$, we can find a $SemiNP$ problem that allows us to solve the original $NP \cap coNP$ problem in a polynomial number of queries.
For the $SemiNP \rightarrow NP \cap coNP$ direction:
Given a $SemiNP$ problem $P$, let us define the problem $Q$ as "given the problem instance $x$, is bit $b$ of the solution a '1'.
This subproblem is in $NP \cap coNP$ (as we can nondeterministically find the solution, and then verify that bit $b$ is a '1' (for $NP$) or is not a '1' (for coNP). In addition, by solving a logarithmic number of these subproblems, we have solved the original problem.
(Careful readers would note that I implicitly assume that $P$ has a unique solution - I believe that can be worked around...)
For the $NP \cap coNP \rightarrow SemiNP$ direction:
Given a $NP \cap coNP$ problem $P$, let us define the problem $Q$ as 'is the solution to $P$ true or false?'
There always exists a solution to all problem instances in $Q$. In addition, there exists polytime verifiable proofs for problem instances in $Q$ (if the solution is true, we use the polytime verifiable proof for $P$ as a member of $NP$; if the solution is faluse, we use the polytime verifiable proof for $P$ as a member of $coNP$). And, given an Oracle that solves $Q$, that immediately gives us a solution for $P$.