The Prolog rule below:
grandparent(X,Z) :- parent(X,Y) , parent(Y,Z)
In first order logic is going to be:
∀x ∀y ∀z ((P (x, y) ∧ P (y, z)) → G(x, z))
In theory if we have an anonymous variable in our Prolog rule something like:
grandparent(X,Z) :- parent(X,Y, _ ) , parent(Y,Z, _ )
Lets say it is a surname, how can we present it in first order logic?