def _normalize(self):
     # Derived values - used to make downstream queries quicker
     self.datetime = datetime.utcfromtimestamp(self.time_stamp)
     try:
         r = Ref(self.ref)
         self.context_refs = [r.normal() for r in r.all_context_refs()]
         self.categories = r.index.categories
         self.authors = getattr(r.index, "authors", [])
         self.is_sheet = r.index.title == "Sheet"
         if self.is_sheet:
             self.sheet_id = r.sections[0]
         if not self.secondary and not self.is_sheet and getattr(
                 self, "language", None) != "hebrew" and r.is_empty("en"):
             # logically, this would be on frontend, but easier here.
             self.language = "hebrew"
     except SheetNotFoundError:
         self.context_refs = [self.ref]
         self.categories = ["_unlisted"]
         self.authors = []
         self.is_sheet = True
     except InputError:  # Ref failed to resolve
         self.context_refs = [self.ref]
         self.categories = []
         self.authors = []
         self.is_sheet = False
     except KeyError:  # is_text_translated() stumbled on a bad version state
         pass