docs: def addPositionToGraph(
              self, reference_id, position, position_types=None, strand=None):
          """
          Add the positional information to the graph, following the faldo model.
          We assume that if the strand is None,
          we give it a generic "Position" only.
          Triples:
          my_position a (any of: faldo:(((Both|Plus|Minus)Strand)|Exact)Position)
          faldo:position Integer(numeric position)
          faldo:reference reference_id
  
          :param graph:
          :param reference_id:
          :param position:
          :param position_types:
          :param strand:
  
          :return:  Identifier of the position created
  
          """
          pos_id = self._makePositionId(reference_id, position, position_types)
          if position is not None:
              self.graph.addTriple(
                  pos_id, self.globaltt['position'], position, object_is_literal=True,
                  literal_type="xsd:integer")
          self.graph.addTriple(pos_id, self.globaltt['reference'], reference_id)
          if position_types is not None:
              for pos_type in position_types:
                  self.model.addType(pos_id, pos_type)
          strnd = None
          if strand is not None:
              strnd = strand
              if not re.match(r'faldo', strand):
                  # not already mapped to faldo, so expect we need to map it
                  strnd = self._getStrandType(strand)
          # else:
          #    strnd = self.globaltt['both_strand']
          if strnd is None and (position_types is None or position_types == []):
              strnd = self.globaltt['Position']
  
          if strnd is not None:
              self.model.addType(pos_id, strnd)
  
          return pos_id