/* serialize a statement */
static int
raptor_dot_serializer_statement(raptor_serializer* serializer,
				const raptor_statement *statement)
{
  /* Cache the nodes for later. */
  raptor_dot_serializer_assert_node(serializer, statement->subject_type,
				    statement->subject, NULL, NULL);
  raptor_dot_serializer_assert_node(serializer, statement->object_type,
				    statement->object, statement->object_literal_datatype,
				    statement->object_literal_language);

  raptor_iostream_write_string(serializer->iostream,
                               (const unsigned char *)"\t\"");
  raptor_dot_serializer_write_node_type(serializer, statement->subject_type);
  raptor_dot_serializer_write_node(serializer,
				   statement->subject,
				   statement->subject_type,
				   NULL, NULL);
  raptor_iostream_write_string(serializer->iostream,
                               (const unsigned char *)"\" -> \"");
  raptor_dot_serializer_write_node_type(serializer, statement->object_type);
  raptor_dot_serializer_write_node(serializer,
				   statement->object,
				   statement->object_type,
				   statement->object_literal_datatype,
				   statement->object_literal_language);
  raptor_iostream_write_string(serializer->iostream,
                               (const unsigned char *)"\" [ label=\"");
  raptor_dot_serializer_write_node(serializer,
				   statement->predicate,
				   statement->predicate_type,
				   NULL, NULL);
  raptor_iostream_write_string(serializer->iostream,
                               (const unsigned char *)"\" ];\n");

  return 0;
}
/* serialize a statement */
static int
raptor_dot_serializer_statement(raptor_serializer* serializer,
                                raptor_statement *statement)
{
  /* Cache the nodes for later. */
  raptor_dot_serializer_assert_node(serializer, statement->subject);
  raptor_dot_serializer_assert_node(serializer, statement->object);

  raptor_iostream_string_write((const unsigned char*)"\t\"",
                               serializer->iostream);
  raptor_dot_serializer_write_term_type(serializer, statement->subject->type);
  raptor_dot_serializer_write_term(serializer, statement->subject);
  raptor_iostream_string_write((const unsigned char*)"\" -> \"",
                               serializer->iostream);
  raptor_dot_serializer_write_term_type(serializer, statement->object->type);
  raptor_dot_serializer_write_term(serializer, statement->object);
  raptor_iostream_string_write((const unsigned char*)"\" [ label=\"",
                               serializer->iostream);
  raptor_dot_serializer_write_term(serializer, statement->predicate);
  raptor_iostream_string_write((const unsigned char*)"\" ];\n",
                               serializer->iostream);

  return 0;
}