:< DLC=../bin/dl-complex.linux.20100303.beta but yours, of course, can be anything you want. local_*: -------- This example does not require dlv-server, just use the command: > $DLC examples/local_kb.dlv examples/local_query.dlv remote_kb_*, remote_query.dlv: ------------------------------ This example does two remote queries and a local one: > ./dlv-server -e $DLC -k examples/remote_kb_omega1.dlv -d > ./dlv-server -e $DLC -k examples/remote_kb_omega2.dlv -d -p 3334 > $DLC examples/remote_kb_omega.dlv examples/remote_query.dlv > kill `pidof -o %PPID dlv-server` remote_count_*: --------------- This example does two remote aggregate queries: > ./dlv-server -e $DLC -k examples/remote_count_kb_omega1.dlv -d > ./dlv-server -e $DLC -k examples/remote_count_kb_omega2.dlv -d -p 3334 > $DLC examples/remote_count_query.dlv > kill `pidof -o %PPID dlv-server` remote_aggregate_*: ------------------- This example is from the DLV User Manual (http://www.dlvsystem.com/dlvsystem/html/DLV_User_Manual.html#AEN814) and does one query for every (remote) aggregate function available in the system: > ./dlv-server -e $DLC -k examples/remote_aggregate_kb.dlv -d > $DLC examples/remote_aggregate_query.dlv > kill `pidof -o %PPID dlv-server` remote_negation_*: ------------------ This example shows how to make a remote query containing a negated formula and have it intepreted remotely in the correct fashion: > ./dlv-server -e $DLC -k examples/remote_negation_kb.dlv -d > $DLC examples/remote_negation_query.dlv > kill `pidof -o %PPID dlv-server` one_local_at_three_remote_queries_*: ------------------------------------ This example has only one #at statement in the [...]_query.dlv file but, since DLV-Complex has to compute all of the answer set, that gets translated in as many remote inquiries to the server as the number of 'source(...).' facts in the [...]_kb.dlv file: > ./dlv-server -e $DLC -k examples/one_local_at_three_remote_queries_kb.dlv -d > $DLC examples/one_local_at_three_remote_queries_query.dlv > kill `pidof -o %PPID dlv-server` double_remote_*: ---------------- This example shows how a query to a remote knowledge base can trigger another remote query that the latter presents to a third instance of our server: > ./dlv-server -e $DLC -k examples/double_remote_count_kb_omega1.dlv -d > ./dlv-server -e $DLC -k examples/double_remote_count_kb_omega2.dlv -d -p 3334 > ./dlv-server -e $DLC -k examples/double_remote_count_kb_omega3.dlv -d -p 3335 > $DLC examples/double_remote_count_query.dlv > kill `pidof -o %PPID dlv-server` loop_*: ------- This example shows how loops in the remote requests to the various knowledge bases get detected and the further execution of the code promptly stopped to avoid bringing down the machine: > ./dlv-server -e $DLC -k examples/loop_kb_omega1.dlv -d > ./dlv-server -e $DLC -k examples/loop_kb_omega2.dlv -d -p 3334 > $DLC examples/loop_query.dlv > kill `pidof -o %PPID dlv-server` ground_loop_*: -------------- This example shows how different knowledge bases can reference each other and still obtain a meaningful result if the requests do not form a loop: > ./dlv-server -e $DLC -k examples/ground_loop_kb_omega1.dlv -d > ./dlv-server -e $DLC -k examples/ground_loop_kb_omega2.dlv -d -p 3334 > $DLC examples/ground_loop_query.dlv > kill `pidof -o %PPID dlv-server` multiple_as_*: -------------- This example showcases the capability to handle disjunctive KBs with multiple ASs: > ./dlv-server -e $DLC -k examples/multiple_as_kb.dlv -d > $DLC examples/multiple_as_query.dlv > kill `pidof -o %PPID dlv-server` N.B.: ----- This README file is composed using Donald E. Knuth's literate programming approach: if you are on a *NIX system and have compiled correctly all of our software then you can issue 'bash README' to run the examples above (provided that the executable for DLV-Complex is in the right place). End of the README file for: DLV-Server cat README | grep '^\s\s*> ' | sed -e 's/^\s*> //' | bash