def <<(node)
      raise ArgumentError, "#{node.inspect} is no IqRdf::Node or a IqRdf::Literal or a IqRdf::Collection" unless node.is_a?(IqRdf::Node) || node.is_a?(IqRdf::Literal) || node.is_a?(IqRdf::Collection)
      @nodes << node
    end
def <<(node)
      raise ArgumentError, "#{node.inspect} is no IqRdf::Node or a IqRdf::Literal or a IqRdf::Collection" unless node.is_a?(IqRdf::Node) || node.is_a?(IqRdf::Literal) || node.is_a?(IqRdf::Collection)
      @nodes << node
    end
You can add Nodes (Uris, Blank Nodes, Predicates), Literals and Collections
 So a Node has the following structure:
  <node> <uri> or <node> <literal> (tuple)
  <node> <predicate> == <node> (<predicate_node> <predicate.nodes>) (triples)