code: def _extract_specification_parts(specification):
      # type: (str) -> Tuple[str, str]
      
      try:
          # Parse the URI-like string
          parsed = urlparse(specification)
      except:
          # Invalid URL
          raise ValueError("Invalid specification URL: {0}".format(specification))
  
      # Extract the interface name
      interface = parsed.path
  
      # Extract the language, if given
      language = parsed.scheme
      if not language:
          # Simple name, without scheme
          language = PYTHON_LANGUAGE
      else:
          # Formatted name: un-escape it, without the starting '/'
          interface = _unescape_specification(interface[1:])
  
      return language, interface
docs: Extract the language and the interface from a "language:/interface"
      interface name
  
      :param specification: The formatted interface name
      :return: A (language, interface name) tuple
      :raise ValueError: Invalid specification content