I know how to define a method with variable length argument:
case class taxonomy(vocabularies:(String,Set[String])*)
and client code is
taxonomy(notFormattedTerms.toSeq:_*)
With : _* you virtually transform a sequence argument so that it looks as if a several arguments had been passed to the variable length method. This transformation, however, only works for (ordered?) simple sequence types and, as in this case, not for a Map. Therefore, one will have to use an explicit toSeq before.