code: def _set_subject(self, subject):
          
          # if not subject:
          #     self.subject =
          def test_uri(value):
              """ test to see if the value is a uri or bnode
  
              Returns: Uri or Bnode """
              # .__wrapped__
              if not isinstance(value, (Uri, BlankNode)):
                  try:
                      if value.startswith("_:"):
                          return BlankNode(value)
                      else:
                          return Uri(value)
                  except:
                      return BlankNode()
              else:
                  return value
  
          if isinstance(subject, dict):
              self.subject = test_uri(subject['s'])
              if isinstance(subject['o'], list):
                  for item in subject['o']:
                      self.add_property(subject['p'],
                                        item)
              else:
                  self.add_property(subject['p'],
                                    subject['o'])
          else:
              self.subject = test_uri(subject)
docs: sets the subject value for the class instance
  
          Args:
              subject(dict, Uri, str): the subject for the class instance