docs: def _read_annotations(self, graph):
          """
          Find any non-defined elements at TopLevel and create annotations
          """
          flipped_namespaces = {v: k for k, v in self._namespaces.items()}
          for triple in graph.triples((None, RDF.type, None)):
              namespace, obj = split_uri(triple[2])
              prefix = flipped_namespaces[namespace]
              as_string = '{}:{}'.format(prefix, obj)
              if as_string not in VALID_ENTITIES:
                  identity = triple[0]
                  gt = self._get_rdf_identified(graph, identity)
                  q_name = QName(namespace=namespace, local_name=obj, prefix=prefix)
                  gt['rdf_type'] = q_name
                  gt_obj = GenericTopLevel(**gt)
                  self._annotations[identity.toPython()] = gt_obj
                  self._collection_store[identity.toPython()] = gt_obj