docs: def objectify(self, load, node, depth=2, path=None):
          """ Given a node ID, return an object the information available about
          this node. This accepts a loader function as it's first argument, which
          is expected to return all tuples of (predicate, object, source) for
          the given subject. """
          if path is None:
              path = set()
  
          if self.is_object:
              if depth < 1:
                  return
              return self._objectify_object(load, node, depth, path)
          elif self.is_array:
              if depth < 1:
                  return
              return [self.items.objectify(load, node, depth, path)]
          else:
              return node