The aim of this paper is to build a formal model for similarity-based fuzzy unification in multi-adjoint logic programs. Specifically, a general framework of logic programming which allows the simultaneous use of different implications in the rules and rather general connectives in the bodies is introduced, then a procedural semantics for this framework is presented, and an aproximative-completeness theorem proved. On this computational model, a similarity-based unification approach is constructed by simply adding axioms of fuzzy similarities and using classical crisp unification which provides a semantic framework for logic programming with different notions of similarity. Key words: Similarity, fuzzy unification.