/* DIG test exmaple Filename: dig_server_accumulate.pl Author: Zhisheng Huang Last modified: 5 July, 2004 */ :-use_module(library('dig/dig_client')). :-use_module(library('dig/dig_server')). :-use_module(library('dig/dig_process')). :-use_module(library('dig/dig_db')). :-use_module(library('http/thread_httpd')). %% This is an exmaple in which the Prolog DIG server accumulates just the %% told data, then forwards the data when it is asked. %deal with the tell request my_dig_server_processing(RequestData, Answer, [connection(close)]):- dig_requestdata_analysis(RequestData, Data, Type), Type=tells, !, dig_assert_data(general, Data), dig_standard_response(ok, _ID, Answer), true. %deal with the ask request my_dig_server_processing(RequestData, Answer, _Options):- dig_requestdata_analysis(RequestData, _Data, Type), Type=asks, !, dig_db_post(general, withClearKB, _Answer, [connection(close)]), dig_post(RequestData, Answer, [connection(close)]). %deal with other request my_dig_server_processing(RequestData, Answer, Options):- dig_post(RequestData, Answer, Options). :- dig_server_port(Port), set_dig_server_id('SWI-Prolog DIG Server (Accumulation)'), http_server(dig_server,[port(Port)]).