Ejemplo n.º 1
0
/* context here is of type USERDATA */
PRIVATE void rdf_new_triple_handler (HTRDF *rdfp, HTTriple *t, void *context)
{
  USERDATA *userdata = (USERDATA *)context;

#ifdef LIBWWW_DEBUG
  xsb_dbgmsg((LOG_DEBUG,"***In rdf_new_triple_handler(%s)", RequestID(userdata->request)));
#endif
  /* create a new triple */
  if (rdfp && t) {
    prolog_term ptriple = extern_p2p_car(userdata->parsed_term_tail);

    extern_c2p_functor("rdftriple",3,ptriple);
    if (HTTriple_predicate(t))
      extern_c2p_string(HTTriple_predicate(t), extern_p2p_arg(ptriple,1));
    else
      extern_c2p_string("rdfunknown", extern_p2p_arg(ptriple,1));
    if (HTTriple_subject(t))
      extern_c2p_string(HTTriple_subject(t), extern_p2p_arg(ptriple,2));
    else
      extern_c2p_string("rdfunknown", extern_p2p_arg(ptriple,2));
    if (HTTriple_object(t))
      extern_c2p_string(HTTriple_object(t), extern_p2p_arg(ptriple,3));
    else
      extern_c2p_string("rdfunknown", extern_p2p_arg(ptriple,3));

#ifdef LIBWWW_DEBUG_VERBOSE
    print_prolog_term(userdata->parsed_term_tail, "Current result tail");
#endif

    userdata->parsed_term_tail = extern_p2p_cdr(userdata->parsed_term_tail);
    extern_c2p_list(userdata->parsed_term_tail);
  }
}
Ejemplo n.º 2
0
PRIVATE void new_triple_handler (HTRDF * rdfp, HTTriple * t, void * context)
{
    if (rdfp && t) {
	HTPrint("Received new triple:\n");
	if (HTTriple_predicate(t)) HTPrint("\tPredicate: `%s\'\n", HTTriple_predicate(t));
	if (HTTriple_subject(t))   HTPrint("\tSubject  : `%s\'\n", HTTriple_subject(t));
	if (HTTriple_object(t))    HTPrint("\tObject   : `%s\'\n", HTTriple_object(t));
	HTPrint("\n");
    }
}