def definite(thing, case="subjective"):
  """
  Returns a definite reference to the given noun, e.g. "the monster" or "Sam"
  """
  result = ""
  if thing.owner:
    result = "N#{}/their {}".format(thing.owner.tag, thing.name)
  elif thing.determined:
    result = "the {}".format(thing.name)
  else:
    result = thing.name
  if case == "possessive":
    if result[-1] in "sz":
      return result + "’"
    else:
      return result + "’s"
  else:
    return result