Algebraic semantics