In general, the implementation of a Kohonen map / SOM algorithm with only real-valued vectors is a relatively trivial task. I wonder though how to implement such an algorithm for non-real-valued (i.e. non-scalar) attributes such as text strings, due to the "weight update" phase.
Suppose that there's a set of data containing words of different lengths, classes of meanings and, say, degree of being romantic, such as rose (very romantic), flower (romantic), plant (romantic depending on context), factory (romantic only for steampunkers). I'm making that up, so please ignore the details. (Edit: Yes, romantic-ness can be expressed as a scalar value; My question is really not about that part.)
One could shuffle words or even letters to create the prototypes on the map and then use the Levenshtein distance in order to find the best matching unit, I see that. But how would one update the BMU and its neighborhood towards the selected target vector?
Other examples might be paintings (e.g. by color, theme, epoch, ...) or perceived shapes (e.g. triangle, sawtooth, ...) embedded in one-dimensional (scalar) data streams.