Node

All nodes have a parent slot (can be nil)
(defclass node ()
  ((parent :reader parent)))

... and a base URI.
(defgeneric base-uri (node))