code: def read_prov(self, document_id=None):
          
          if document_id:
              if not self.abstract:
                  raise ImmutableDocumentException()
              self._id = document_id
  
          if self.abstract:
              raise AbstractDocumentException()
  
          self._prov = self._api.get_document_prov(self.id)
          return self._prov
docs: Load the provenance of this document
  
          .. note::
             This method is called automatically if needed when the :py:meth:`prov` property is accessed. Manual use of
             this method is unusual.
  
          :param document_id: (optional) set the document id if this is an :py:meth:`abstract` document
          :return: :py:class:`prov.model.ProvDocument