code: public static function fromString($string)
      {
          $parts = explode('#', $string, 2);
          $ref = $parts[0];
          $tag = isset($parts[1]) ? $parts[1] : null;
  
          $parts = explode(':', $ref, 5);
          $id = array_pop($parts);
          $curie = SchemaCurie::fromString(implode(':', $parts));
          return new self($curie, $id, $tag);
      }
docs: @param string $string A string with format curie:id#tag
  
  @return self