<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _expand_logical_shortcuts(cls, schema):
 """ Expand agglutinated rules in a definition-schema. :param schema: The schema-definition to expand. :return: The expanded schema-definition. """

        def is_of_rule(x):
            return isinstance(x, _str_type) and \
                x.startswith(('allof_', 'anyof_', 'noneof_', 'oneof_'))

        for field in schema:
            for of_rule in (x for x in schema[field] if is_of_rule(x)):
                operator, rule = of_rule.split('_')
                schema[field].update({operator: []})
                for value in schema[field][of_rule]:
                    schema[field][operator].append({rule: value})
                del schema[field][of_rule]
        return schema