
Here we used the fact that S 1 , S 2 and S 3 are mutually exclusive as the choice of gene is exclusive. Parameters, i.e. θ a , θ b and θ o are determined by ML estimation performed on a random sample such as {btype('A'), btype('0'), btype('AB')} of btype as follows.

$\psi\;=\;\psi\;=\;\phi f$ . 
(0 a,0 b,0 )  =   argmax(0 a,0 b,0 ) PDB (btype('A'))PDB (btype('0'))PDB (btype('AB'))

$$\begin{array}{l}{{\arg\operatorname*{arg\,max}_{\{\theta_{a},\theta_{b},\theta_{o}\}}P_{D B_{b}}(\texttt{byte('A')})}}\\ {{\arg\operatorname*{arg\,max}_{\{\theta_{a},\theta_{b},\theta_{o}\}}(\theta_{a}^{2}+2\theta_{a}\theta_{o})\theta_{o}^{2}\theta_{a}\theta_{b}}}\end{array}$$

This program contains neither function symbol nor recursion though our semantics allows for them. Later we see an example containing both, a program for an HMM (Rabiner & Juang, 1993).

## 4.2 Four Simplifying Conditions

DB , in Figure 1 is simple and probability computation is easy. This is not generally the case. Since our prim ary interest is learning, especially efficient parameter learning of parameterized logic programs, we hereafter concentrate on identifying what property of a program makes probability computation easy like DB 6 , thereby makes efficient parameter learning possible.

To answer this question precisely, let us formulate the whole modeling process. Suppose there exist symbolic-statistical phenomena such as gene inheritance for which we hope to construct a probabilistic computational model. We first specify a target predicate p whose ground atom p(s) represents our observation of the phenomena. Then to explain the empirical distribution of p , we write down a parameterized logic program DB = F ∪ R
having a basic distribution P F with parameter θ that can reproduce all observable patterns of p (s).  Finally, observing a random sample p (s1), . . . ,p (sT) of ground atoms of p , we adjust θ by ML estimation, i.e. by maximizing the likelihood L(θ) = Π t = 1 PDB(p(st) | θ) so that PDB(p( ) | 0 ) approximates as closely to the empirically observed distribution of p as possible.

At first sight, this formulation looks right, but in reality it is not. Suppose two events p(s) and p(s') (s ≠ s') are observed. We put L(0) = PDB(p(s) | 0)PDB(p(s') | 0). But this cannot be a likelihood at all simply because in distribution semantics, p (s) and p (s') are two different random variables, not two realizations of the same random variable.

A quick remedy is to note that in the case of blood type program DB b where obs( DB b ) =
{btype('A'),btype('B'),btype('0'),btype('AB')} are observable atoms, only one of them is true for each observation, and if some atom is true, others must be false. In other words, these atoms collectively behave as a single random variable having the distribution PpB, whose values are obs( DB ).

Keeping this in mind, we introduce the following condition. Let obs( DB ) ( C head( R ))
be a set of ground atoms which represent observable events. We call them observable atoms.

Uniqueness condition:
PDB ( G ∧ G ′ ) = 0  for any G ̸ = G ′ E  obs ( DB ),   and   ∑ G ∈ obs ( DB ) PDB ( G ) = 1.