Assume a predicate logic language with binary predicate letter R and equality. Consider the following three models:

- Give a sentence $\varphi a$ that is true for 1, but not for 2 or 3.
- Give a sentence $\varphi b$ that is true for 3, but not for 1 or 2.
- Give a sentence $\varphi c$ that is true for 2, but not for 1 or 3.
My question is this: how can I find, or is there a good way to find, answers to these questions?
My thought process is as follows: I try to find any differences between the tree models. The only difference in this case that I can find is that between them, they differ in the number of relations they have. So, I think that I should base my answer on the number of relations, e.g. for the first model something like "There are exactly four relations". But then I'd have to write e.g. for 1: $\exists w \exists x \exists y \exists z ((wRx) \wedge (wRy) \wedge etc. \wedge \forall u(x = u \vee z = u...))$ That is going to be a very long formula!
The unremarkable fact about (1) is that there is no point in it that 'sees' (R) every other point, so:
$$\phi_a\equiv \lnot\exists x \forall y(xRy).$$
The special feature of (3) is that it has a point (bottom left) that sees only one other point, so:
$$\phi_b\equiv \exists x\exists y(xRy \land \forall z(xRz \rightarrow z=y)).$$
Lastly, what's special about (2) is that it has two distinct points (top left, bottom right) s.t. every point either is or is seen by both of them (not sure if I expressed that properly). Formally that gives:
$$\phi_c \equiv \exists x \exists y(x \not= y \land \forall z([z=x \lor xRz] \land [z = y \lor yRz])).$$
Hagen's answer looks good. Mine are slightly different from his, so I thought I'd share the process.