code: def _graphify(self, *args, graph=None): #  defined
          
          if graph is None:
              graph = self.out_graph
  
          ################## LABELS ARE DEFINED HERE ##################
          gl = self.genLabel
          ll = self.localLabel
          ol = self.origLabel
          graph.add((self.id_, ilxtr.genLabel, rdflib.Literal(gl)))
          if ll != gl:
              graph.add((self.id_, ilxtr.localLabel, rdflib.Literal(ll)))
  
          if ol and ol != gl:
              graph.add((self.id_, ilxtr.origLabel, rdflib.Literal(ol)))
  
          members = [self.expand(self.owlClass)]
          for pe in self.pes:
              target = pe._graphify(graph=graph)
              if isinstance(pe, NegPhenotype):  # isinstance will match NegPhenotype -> Phenotype
                  #self.Class.disjointWith = [target]  # FIXME for defined neurons this is what we need and I think it is strong than the complementOf version
                  djc = infixowl.Class(graph=graph)  # TODO for generic neurons this is what we need
                  djc.complementOf = target
                  members.append(djc)
              else:
                  members.append(target)  # FIXME negative logical phenotypes :/
          intersection = infixowl.BooleanClass(members=members, graph=graph)  # FIXME dupes
          #existing = list(self.Class.equivalentClass)
          #if existing or str(pe.pLabel) == 'Htr3a':
              #embed()
          ec = [intersection]
          self.Class.equivalentClass = ec
          return self.Class
docs: Lift phenotypeEdges to Restrictions