def match_label(label)
      @lang_cache ||= {}
      return @lang_cache[label] if @lang_cache.keys.include? label

      match = TERMS.find do |t|
        Array(t.label).map(&:downcase).include? label.downcase
      end
      
      # Caches and returns the the label match
      @lang_cache[label] = from_sym(match)
    end
def match_label(label)
      @lang_cache ||= {}
      return @lang_cache[label] if @lang_cache.keys.include? label

      match = TERMS.find do |t|
        Array(t.label).map(&:downcase).include? label.downcase
      end
      
      # Caches and returns the the label match
      @lang_cache[label] = from_sym(match)
    end
Converts string or symbol for a language label to an
 `ActiveTriples::Resource`.

 Matched values are cached in an instance variable `@lang_cache` to avoid
 multiple traversals through the vocabulary term labels.

 @param code [#to_sym] a string to match against a language label
 @return [DPLA::MAP::Controlled::Language]