code: func StringToValue(v string) Value {
  	if v == "" {
  		return nil
  	}
  	if len(v) > 2 {
  		if v[0] == '<' && v[len(v)-1] == '>' {
  			return IRI(v[1 : len(v)-1])
  		} else if v[:2] == "_:" {
  			return BNode(v[2:])
  		} else if i := strings.Index(v, `"^^<`); i > 0 && v[0] == '"' && v[len(v)-1] == '>' {
  			return TypedString{Value: String(v[1:i]), Type: IRI(v[i+4 : len(v)-1])}
  		} else if i := strings.Index(v, `"@`); i > 0 && v[0] == '"' && v[len(v)-1] != '"' {
  			return LangString{Value: String(v[1:i]), Lang: v[i+2:]}
  		}
  	}
  	return String(v)
  }
docs: // StringToValue is a function to convert strings to typed
  // quad values.
  //
  // Warning: should not be used directly - will be deprecated.