code: func PtrRef(head *Term, s string) (Ref, error) {
  	s = strings.Trim(s, "/")
  	if s == "" {
  		return Ref{head}, nil
  	}
  	parts := strings.Split(s, "/")
  	ref := make(Ref, len(parts)+1)
  	ref[0] = head
  	for i := 0; i < len(parts); i++ {
  		var err error
  		parts[i], err = url.PathUnescape(parts[i])
  		if err != nil {
  			return nil, err
  		}
  		ref[i+1] = StringTerm(parts[i])
  	}
  	return ref, nil
  }
docs: // PtrRef returns a new reference against the head for the pointer
  // s. Path components in the pointer are unescaped.