code: def parent(self) -> Optional['CtsReference']:
          
          if self.start.depth == 1 and (self.end is None or self.end.depth <= 1):
              return None
          else:
              if self.start.depth > 1 and (self.end is None or self.end.depth == 0):
                  return CtsReference("{0}{1}".format(
                      ".".join(self.start.list[:-1]),
                      self.start.subreference or ""
                  ))
              elif self.start.depth > 1 and self.end is not None and self.end.depth > 1:
                  _start = self.start.list[0:-1]
                  _end = self.end.list[0:-1]
                  if _start == _end and \
                          self.start.subreference is None and \
                          self.end.subreference is None:
                      return CtsReference(
                          ".".join(_start)
                      )
                  else:
                      return CtsReference("{0}{1}-{2}{3}".format(
                          ".".join(_start),
                          self.start.subreference or "",
                          ".".join(_end),
                          self.end.subreference or ""
                      ))
docs: Parent of the actual URN, for example, 1.1 for 1.1.1
  
          :rtype: CtsReference