<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def validate_to_schema(nanopub, schema) -> Tuple[bool, List[Tuple[str, str]]]: """Validate nanopub against jsonschema for nanopub Args: nanopub (Mapping[str, Any]):
 nanopub dict schema (Mapping[str, Any]):
 nanopub schema Returns: Tuple[bool, List[str]]: bool: Is valid? Yes = True, No = False List[Tuple[str, str]]: Validation issues, empty if valid, tuple is ('Error|Warning', msg) e.g. [('ERROR', "'subject' is a required property")] """


    v = jsonschema.Draft4Validator(schema)
    messages = []
    errors = sorted(v.iter_errors(nanopub), key=lambda e: e.path)
    for error in errors:
        for suberror in sorted(error.context, key=lambda e: e.schema_path):
            print(list(suberror.schema_path), suberror.message, sep=", ")
            messages.append(("ERROR", suberror.message))

    is_valid = True
    if errors:
        is_valid = False

    return (is_valid, messages)