/* 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); } }
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"); } }