code: def query_kb_mappings(kbid, sortby="to", key="", value="",
                            match_type="s"):
          
          # query
          query = KnwKBRVAL.query.filter(
              KnwKBRVAL.id_knwKB == kbid)
          # filter
          if len(key) > 0:
              if match_type == "s":
                  key = "%" + key + "%"
              elif match_type == "sw":
                  key = key + "%"
          else:
              key = '%'
          if len(value) > 0:
              if match_type == "s":
                  value = "%" + value + "%"
              elif match_type == "sw":
                  value = value + "%"
          else:
              value = '%'
          query = query.filter(
              KnwKBRVAL.m_key.like(key),
              KnwKBRVAL.m_value.like(value))
          # order by
          if sortby == "from":
              query = query.order_by(KnwKBRVAL.m_key)
          else:
              query = query.order_by(KnwKBRVAL.m_value)
          return query
docs: Return a list of all mappings from the given kb, ordered by key.
  
          If key given, give only those with left side (mapFrom) = key.
          If value given, give only those with right side (mapTo) = value.
  
          :param kb_name: knowledge base name. if "", return all
          :param sortby: the sorting criteria ('from' or 'to')
          :param key: return only entries where key matches this
          :param value: return only entries where value matches this
          :param match_type: s=substring, e=exact, sw=startswith