def parse_curie(s: str):
    """
    Takes a CURIE formatted string and returns the namespace and identifier in a tuple.
    If multiple colons appear in the string, the first is taken to be the delimiter.
    Does not allow empty namespace elements (s starts with colon).
    """
    if ":" in s:
        cidx = s.index(":")
        if cidx == 0:
            raise RuntimeError("CURIE namespace element is empty")
        ns = s[:cidx]
        value = s[cidx+1:]
        return (ns, value)
    else:
        raise RuntimeError("Could not parse CURIE: " + s)