From "Logic for Computer Scientists" by Uwe Schoning:
A function symbol of arity 0 will also be called a constant.
A structure is a pair $\mathcal{A} = (U_{\mathcal{A}}, I_{\mathcal{A}})$ where $U_{\mathcal{A}}$ is an arbitrary, non-empty set and is called the ground set or universe. Further, $I_{\mathcal{A}}$ is a mapping that maps
each $k$-ary predicate symbol $P$ to a $k$-ary predicate on $U_{\mathcal{A}}$ (if $I_{\mathcal{A}}$ is defined on $P$).
each $k$-ary function symbol $f$ to a $k$-ary function on $U_{\mathcal{A}}$ (if $I_{\mathcal{A}}$ is defined on $f$).
each variable $x$ to an element of $U_{\mathcal{A}}$ (if $I_{\mathcal{A}}$ is defined on $x$).
This sounds very much like the definition given for an 'interpretation' in another text, except that there the mapping is not defined for variables. It seems strange to me to have the mapping defined for variables. Why would this be done? Is this the difference between an interpretation and a structure?