1048 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			1048 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
							 | 
						|||
| 
								 | 
							
								  "http://www.w3.org/TR/html4/loose.dtd">  
							 | 
						|||
| 
								 | 
							
								<html > 
							 | 
						|||
| 
								 | 
							
								<head><title>cplint Version beta2.0 Manual</title> 
							 | 
						|||
| 
								 | 
							
								<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
							 | 
						|||
| 
								 | 
							
								<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> 
							 | 
						|||
| 
								 | 
							
								<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> 
							 | 
						|||
| 
								 | 
							
								<!-- html --> 
							 | 
						|||
| 
								 | 
							
								<meta name="src" content="manual.tex"> 
							 | 
						|||
| 
								 | 
							
								<meta name="date" content="2008-06-19 23:25:00"> 
							 | 
						|||
| 
								 | 
							
								<link rel="stylesheet" type="text/css" href="manual.css"> 
							 | 
						|||
| 
								 | 
							
								</head><body 
							 | 
						|||
| 
								 | 
							
								>
							 | 
						|||
| 
								 | 
							
								   <div class="maketitle">
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2 class="titleHead">cplint Version beta2.0 Manual</h2>
							 | 
						|||
| 
								 | 
							
								    <div class="author" ><span 
							 | 
						|||
| 
								 | 
							
								class="cmr-12">Fabrizio Riguzzi</span>
							 | 
						|||
| 
								 | 
							
								<br /><span 
							 | 
						|||
| 
								 | 
							
								class="cmr-12">fabrizio.riguzzi@unife.it</span></div>
							 | 
						|||
| 
								 | 
							
								<br />
							 | 
						|||
| 
								 | 
							
								<div class="date" ><span 
							 | 
						|||
| 
								 | 
							
								class="cmr-12">June 19, 2008</span></div>
							 | 
						|||
| 
								 | 
							
								   </div>
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">1   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-10001"></a>Introduction</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 30--><p class="noindent"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint </span>is a suite of programs for reasoning with LPADs <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer03-TR">11</a>, <a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer04-ICLP04-IC">12</a>]</span> and CP-logic
							 | 
						|||
| 
								 | 
							
								programs <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenDenBru-JELIA06">10</a>, <a 
							 | 
						|||
| 
								 | 
							
								href="#XCP-logic-unp">13</a>]</span>.
							 | 
						|||
| 
								 | 
							
								<!--l. 32--><p class="indent">   It consists of three Prolog modules for answering queries using goal-oriented
							 | 
						|||
| 
								 | 
							
								procedures plus three Prolog modules for answering queries using the definition of the
							 | 
						|||
| 
								 | 
							
								semantics of LPADs and CP-logic.
							 | 
						|||
| 
								 | 
							
								<!--l. 36--><p class="indent">   The modules for answering queries using using goal-oriented procedures are
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpadsld.pl</span>, <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpad.pl </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cpl.pl</span>:
							 | 
						|||
| 
								 | 
							
								     <ul class="itemize1">
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpadsld.pl</span>:  computes  the  probability  of  a  query  using  the  top-down
							 | 
						|||
| 
								 | 
							
								     procedure described in in <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-AIIA07-IC">7</a>]</span> and <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-RCRA07-IC">8</a>]</span>. It is based on SLDNF resolution and
							 | 
						|||
| 
								 | 
							
								     is an adaptation of the interpreter for ProbLog <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XDBLP:conf/ijcai/RaedtKT07">4</a>]</span>.
							 | 
						|||
| 
								 | 
							
								     <!--l. 42--><p class="noindent">It was proved correct <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-RCRA07-IC">8</a>]</span> with respect to the semantics of LPADs for range
							 | 
						|||
| 
								 | 
							
								     restricted acyclic programs <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XDBLP:journals/ngc/AptB91">1</a>]</span> without function symbols.
							 | 
						|||
| 
								 | 
							
								     <!--l. 44--><p class="noindent">It is also able to deal with extensions of LPADs and CP-logic: the clause
							 | 
						|||
| 
								 | 
							
								     bodies can contain <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">setof </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">bagof</span>, the probabilities in the head may
							 | 
						|||
| 
								 | 
							
								     be depend on variables in the body and it is possible to specify a uniform
							 | 
						|||
| 
								 | 
							
								     distribution in the head with reference to a <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">setof </span>or <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">bagof </span>operator.
							 | 
						|||
| 
								 | 
							
								     These  extended  features  have  been  introduced  in  order  to  represent
							 | 
						|||
| 
								 | 
							
								     CLP(BN) <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XSanPagQaz03-UAI-IC">9</a>]</span> programs and PRM models <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XGetoor+al:JMLR02">6</a>]</span>: <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">setof </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">bagof </span>allow to
							 | 
						|||
| 
								 | 
							
								     express dependency of an attribute from an aggregate function of another
							 | 
						|||
| 
								 | 
							
								     attribute, as in CLP(BN) and PRM, while the possibility of specifying a
							 | 
						|||
| 
								 | 
							
								     uniform distribution allows the use of the reference uncertainty feature of
							 | 
						|||
| 
								 | 
							
								     PRM.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpad.pl</span>: computes the probability of a query using a top-down procedure
							 | 
						|||
| 
								 | 
							
								     based on SLG resolution <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XDBLP:journals/jacm/ChenW96">3</a>]</span>. As a consequence, it works for any sound
							 | 
						|||
| 
								 | 
							
								     LPADs, i.e., any LPAD such that each of its instances has a two valued
							 | 
						|||
| 
								 | 
							
								     well founded model.
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cpl.pl</span>: computes the probability of a query using a top-down procedure
							 | 
						|||
| 
								 | 
							
								     based on SLG resolution and moreover checks that the CP-logic program
							 | 
						|||
| 
								 | 
							
								     is valid, i.e., that it has at least an execution model.</li></ul>
							 | 
						|||
| 
								 | 
							
								<!--l. 50--><p class="indent">   The modules for answering queries using the definition of the semantics of LPADs
							 | 
						|||
| 
								 | 
							
								and CP-logic are <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpadsld.pl</span>, <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpad.pl </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semcpl.pl</span>:
							 | 
						|||
| 
								 | 
							
								     <ul class="itemize1">
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpadsld.pl</span>: given an LPAD <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">P</span>, it generates all the instances of <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">P</span>.
							 | 
						|||
| 
								 | 
							
								     The probability of a query <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">Q </span>is computed by identifying all the instances
							 | 
						|||
| 
								 | 
							
								     where <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">Q </span>is derivable by SLDNF resolution.
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpad.pl</span>: given an LPAD <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">P</span>, it generates all the instances of <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">P</span>. The
							 | 
						|||
| 
								 | 
							
								     probability of a query <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">Q </span>is computed by identifying all the instances where
							 | 
						|||
| 
								 | 
							
								     <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">Q </span>is derivable by SLG resolution.
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlcpl.pl</span>: given an LPAD <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">P</span>, it builds an execution model of <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">P</span>, i.e.,
							 | 
						|||
| 
								 | 
							
								     a probabilistic process that satisfy the principles of universal causation,
							 | 
						|||
| 
								 | 
							
								     sufficient causation, independent causation, no deus ex machina events
							 | 
						|||
| 
								 | 
							
								     and temporal precedence. It uses the definition of the semantics given in
							 | 
						|||
| 
								 | 
							
								     <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XCP-logic-unp">13</a>]</span>.</li></ul>
							 | 
						|||
| 
								 | 
							
								<!--l. 59--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">2   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-20002"></a>Installation</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 60--><p class="noindent"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint </span>is distributed in source code in the CVS version of Yap. It
							 | 
						|||
| 
								 | 
							
								includes Prolog and C files. Download it by following the instruction in <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.ncc.up.pt/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}vsc/Yap/downloads.html" >
							 | 
						|||
| 
								 | 
							
								http://www.ncc.up.pt/<span 
							 | 
						|||
| 
								 | 
							
								class="cmsy-10">~</span>vsc/Yap/downloads.html </a>.
							 | 
						|||
| 
								 | 
							
								<!--l. 62--><p class="indent">   <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint </span>requires glu (a subpackage of vis) and glib-2.0. You can download glu
							 | 
						|||
| 
								 | 
							
								from <a 
							 | 
						|||
| 
								 | 
							
								href="http://vlsi.colorado.edu/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}vis/getting_VIS_2.1.html" > http://vlsi.colorado.edu/<span 
							 | 
						|||
| 
								 | 
							
								class="cmsy-10">~</span>vis/getting_VIS_2.1.html </a> You can download
							 | 
						|||
| 
								 | 
							
								glib-2.0 (version <span 
							 | 
						|||
| 
								 | 
							
								class="cmsy-10">≥ </span>2<span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">.</span>0) from <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.gtk.org/" > http://www.gtk.org/ </a>. This is a standard GNU package
							 | 
						|||
| 
								 | 
							
								so it is easy to install it using the package management software of your Linux or
							 | 
						|||
| 
								 | 
							
								Cygwin distribution.
							 | 
						|||
| 
								 | 
							
								<!--l. 68--><p class="indent">   Install glu:
							 | 
						|||
| 
								 | 
							
								     <ol  class="enumerate1" >
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2002x1"></a>downlad <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">glu-2.1.tar.gz</span>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2004x2"></a>decompress it
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2006x3"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cd glu-2.1</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2008x4"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">mkdir arch</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2010x5"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cd arch</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2012x6"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">../configure</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2014x7"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">make</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2016x8"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">su</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="enumerate"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-2018x9"></a><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">make install</span></li></ol>
							 | 
						|||
| 
								 | 
							
								<!--l. 80--><p class="noindent">This will install glu into <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">/usr/local</span>, if you want to install to a different <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">DIR </span>use
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">../configure --prefix DIR</span>
							 | 
						|||
| 
								 | 
							
								<!--l. 83--><p class="indent">   Install Yap together with <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint</span>: when compiling Yap following the instuction of
							 | 
						|||
| 
								 | 
							
								the <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">INSTALL </span>file in the root of the Yap folder, use
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								configure --enable-cplint
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 87--><p class="nopar"> Under Windows, you have to use Cygwin (glu does not compile under MinGW),
							 | 
						|||
| 
								 | 
							
								so
							 | 
						|||
| 
								 | 
							
								<br class="newline" />
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								configure --enable-cplint --enable-cygwin
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 91--><p class="nopar"> If you installed glu in <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">DIR</span>, use <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">--enable-cplint=DIR</span>
							 | 
						|||
| 
								 | 
							
								<!--l. 94--><p class="indent">   After having performed <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">make install </span>you can do <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">make installcheck </span>that will
							 | 
						|||
| 
								 | 
							
								execute a suite of tests of the various programs. If no error is reported you have a
							 | 
						|||
| 
								 | 
							
								working installation of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint</span>.
							 | 
						|||
| 
								 | 
							
								<!--l. 97--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">3   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-30003"></a>Syntax</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 99--><p class="noindent">Disjunction in the head is represented with a semicolon and atoms in the head are
							 | 
						|||
| 
								 | 
							
								separated from probabilities by a colon. For the rest, the usual syntax of Prolog is
							 | 
						|||
| 
								 | 
							
								used. For example, the CP-logic clause
							 | 
						|||
| 
								 | 
							
								   <center class="math-display" >
							 | 
						|||
| 
								 | 
							
								<img 
							 | 
						|||
| 
								 | 
							
								src="manual0x.png" alt="h1 : p1 ∨...∨ hn : pn ← b1,...,bm,<2C>c1,...,<2C>cl  " class="math-display" ></center> is
							 | 
						|||
| 
								 | 
							
								represented by
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								h1:p1 ; ... ; hn:pn :- b1,...,bm,\+ c1,....,\+ cl
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 105--><p class="nopar"> No parentheses are necessary. The <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">pi </span>are numeric expressions. It is up to the user to
							 | 
						|||
| 
								 | 
							
								ensure that the numeric expressions are legal, i.e. that they sum up to less than
							 | 
						|||
| 
								 | 
							
								one.
							 | 
						|||
| 
								 | 
							
								<!--l. 108--><p class="indent">   If the clause has an empty body, it can be represented like this
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								h1:p1 ; ... ;hn:pn.
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 111--><p class="nopar"> If the clause has a single head with probability 1, the annotation can be omitted and
							 | 
						|||
| 
								 | 
							
								the clause takes the form of a normal prolog clause, i.e.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								h1:- b1,...,bm,\+ c1,...,\+ cl.
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 115--><p class="nopar"> stands for
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								h1:1 :- b1,...,bm,\+ c1,...,\+ cl.
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 119--><p class="nopar">
							 | 
						|||
| 
								 | 
							
								<!--l. 121--><p class="indent">   The coin example of <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer04-ICLP04-IC">12</a>]</span> is represented as (see file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.cpl</span>)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								heads(Coin):1/2 ; tails(Coin):1/2:-
							 | 
						|||
| 
								 | 
							
								 <br />     toss(Coin),\+biased(Coin).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />heads(Coin):0.6 ; tails(Coin):0.4:-
							 | 
						|||
| 
								 | 
							
								 <br />     toss(Coin),biased(Coin).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />fair(Coin):0.9 ; biased(Coin):0.1.
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />toss(coin).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 132--><p class="nopar"> The first clause states that if we toss a coin that is not biased it has equal
							 | 
						|||
| 
								 | 
							
								probability of landing heads and tails. The second states that if the coin is biased it
							 | 
						|||
| 
								 | 
							
								has a slightly higher probability of landing heads. The third states that the coin is
							 | 
						|||
| 
								 | 
							
								fair with probability 0.9 and biased with probability 0.1 and the last clause states
							 | 
						|||
| 
								 | 
							
								that we toss a coin with certainty.
							 | 
						|||
| 
								 | 
							
								<!--l. 137--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">4   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-40004"></a>Commands</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 138--><p class="noindent">All six modules accept the same commands for reading in files and answering queries.
							 | 
						|||
| 
								 | 
							
								The LPAD or CP-logic program must be stored in a text file with extension <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">.cpl</span>.
							 | 
						|||
| 
								 | 
							
								Suppose you have stored the example above in file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.cpl</span>. In order to answer
							 | 
						|||
| 
								 | 
							
								queries from this program, you have to run Yap, load one of the modules (such as for
							 | 
						|||
| 
								 | 
							
								example <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpad.pl</span>) by issuing the command
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								use_module(library(lpad)).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 144--><p class="nopar"> at the command prompt. Then you must parse the source file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.cpl </span>with the
							 | 
						|||
| 
								 | 
							
								command
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								p(coin).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 149--><p class="nopar"> if <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.cpl </span>is in the current directory, or
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								p(’path_to_coin/coin’).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 153--><p class="nopar"> if <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.cpl </span>is in a different directory. At this point you can pose query to the
							 | 
						|||
| 
								 | 
							
								program by using the predicate <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">s/2 </span>(for solve) that takes as its first argument a
							 | 
						|||
| 
								 | 
							
								conjunction of goals in the form of a list and returns the computed probability
							 | 
						|||
| 
								 | 
							
								as its second argument. For example, the probability of the conjunction
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">head(coin),biased(coin) </span>can be asked with the query
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								s([head(coin),biased(coin)],P).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 158--><p class="nopar"> For computing the probability of a conjunction given another conjunction you can
							 | 
						|||
| 
								 | 
							
								use the predicate <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">sc/3 </span>(for solve conditional) that take takes as input the query
							 | 
						|||
| 
								 | 
							
								conjunction as its first argument, the evidence conjunction as its second argument
							 | 
						|||
| 
								 | 
							
								and returns the probability in its third argument. For example, the probability of the
							 | 
						|||
| 
								 | 
							
								query <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">heads(coin) </span>given the evidence <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">biased(coin) </span>can be asked with the
							 | 
						|||
| 
								 | 
							
								query
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								sc([heads(coin)],[biased(coin)],P).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 163--><p class="nopar"> After having parsed a program, in order to read in a new program you must restart
							 | 
						|||
| 
								 | 
							
								Yap when using <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpadsld.pl </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpad.pl</span>. With the other modules, you can
							 | 
						|||
| 
								 | 
							
								directly parse a new program.
							 | 
						|||
| 
								 | 
							
								<!--l. 167--><p class="indent">   When using <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpad.pl</span>, the system can print the message “Uunsound program” in
							 | 
						|||
| 
								 | 
							
								the case in which an instance with a three valued well founded model is found.
							 | 
						|||
| 
								 | 
							
								Moreover, it can print the message “It requires the choice of a head atom from a non
							 | 
						|||
| 
								 | 
							
								ground head”: in this case, in order to answer the query, all the groundings of the
							 | 
						|||
| 
								 | 
							
								culprit clause must be generated, which may be impossible for programs with
							 | 
						|||
| 
								 | 
							
								function symbols.
							 | 
						|||
| 
								 | 
							
								<!--l. 169--><p class="indent">   When using <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semcpl.pl</span>, you can print the execution process by using the
							 | 
						|||
| 
								 | 
							
								command <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">print. </span>after <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">p(file). </span>Moreover, you can build an execution
							 | 
						|||
| 
								 | 
							
								process given a context by issuing the command <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">parse(file)</span>. and then
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">build(context). </span>where <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">context </span>is a list of atoms that are true in the context.
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semcpl.pl </span>can print “Invalid program” in the case in which no execution process
							 | 
						|||
| 
								 | 
							
								exists.
							 | 
						|||
| 
								 | 
							
								<!--l. 174--><p class="indent">   When using <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cpl.pl </span>you can print a partial execution model including all the
							 | 
						|||
| 
								 | 
							
								clauses involved in the query issued with <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">print. cpl.pl </span>can print the messages
							 | 
						|||
| 
								 | 
							
								“Uunsound program”, “It requires the choice of a head atom from a non ground
							 | 
						|||
| 
								 | 
							
								head” and “Invalid program”.
							 | 
						|||
| 
								 | 
							
								<!--l. 177--><p class="indent">   The modules make use of a number of parameters in order to control their
							 | 
						|||
| 
								 | 
							
								behavior. They that can be set with the command
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								set(parameter,value).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 180--><p class="nopar"> from the Yap prompt after having loaded the module. The current value can be read
							 | 
						|||
| 
								 | 
							
								with
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								setting(parameter,Value).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 185--><p class="nopar"> from the Yap prompt. The available parameters are:
							 | 
						|||
| 
								 | 
							
								     <ul class="itemize1">
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">epsilon_parsing</span></span></span> (valid  for  all  six  modules):  if  (1  -  the  sum  of  the
							 | 
						|||
| 
								 | 
							
								     probabilities of all the head atoms) is smaller than <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">epsilon_parsing</span></span></span> then
							 | 
						|||
| 
								 | 
							
								     <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint </span>adds the null events to the head. Default value 0.00001
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">save_dot</span></span></span> (valid for all goal-oriented modules): if <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">true </span>a graph representing the
							 | 
						|||
| 
								 | 
							
								     BDD is saved in the file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cpl.dot </span>in the current directory in dot format. The
							 | 
						|||
| 
								 | 
							
								     variables names are of the form <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Xn_m</span></span></span> where <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">n </span>is the number of the multivalued
							 | 
						|||
| 
								 | 
							
								     variable and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">m </span>is the number of the binary variable. The correspondence
							 | 
						|||
| 
								 | 
							
								     between variables and clauses can be evinced from the message printed on the
							 | 
						|||
| 
								 | 
							
								     screen, such as
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								     <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								     Variables: [(2,[X=2,X1=1]),(2,[X=1,X1=0]),(1,[])]
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								     </td></tr></table>
							 | 
						|||
| 
								 | 
							
								     <!--l. 199--><p class="nopar"> where the first element of each couple is the clause number of the input file
							 | 
						|||
| 
								 | 
							
								     (starting from 1). In the example above variable <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X0 </span>corresponds to clause <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">2</span>
							 | 
						|||
| 
								 | 
							
								     with the substitutions <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X=2,X1=1</span>, variable <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X1 </span>corresponds to clause <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">2 </span>with the
							 | 
						|||
| 
								 | 
							
								     substitutions <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X=1,X1=0 </span>and variable <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X2 </span>corresponds to clause <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">1 </span>with the empty
							 | 
						|||
| 
								 | 
							
								     substitution. You can view the graph with <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">graphviz </span>(<a 
							 | 
						|||
| 
								 | 
							
								href="www.graphviz.org" > www.graphviz.org </a>)
							 | 
						|||
| 
								 | 
							
								     using the command
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								     <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								     dotty cpl.dot &
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								     </td></tr></table>
							 | 
						|||
| 
								 | 
							
								     <!--l. 208--><p class="nopar">
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">ground_body</span></span></span> (valid for <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpadsld.pl </span>and all semantic modules): determines how
							 | 
						|||
| 
								 | 
							
								     non ground clauses are treated: if <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">true</span>, ground clauses are obtained from a non
							 | 
						|||
| 
								 | 
							
								     ground clause by replacing each variable with a constant, if <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">false</span>, ground
							 | 
						|||
| 
								 | 
							
								     clauses are obtained by replacing only variables in the head with a
							 | 
						|||
| 
								 | 
							
								     constant. In the case where the body contains variables not in the
							 | 
						|||
| 
								 | 
							
								     head, setting it to false means that the body represents an existential
							 | 
						|||
| 
								 | 
							
								     event.</li></ul>
							 | 
						|||
| 
								 | 
							
								<!--l. 212--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">5   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-50005"></a>Semantic Modules</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 213--><p class="noindent">The three semantic modules need to produce a grounding of the program in order to
							 | 
						|||
| 
								 | 
							
								compute the semantics. They require an extra file with extension <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">.uni </span>(for universe)
							 | 
						|||
| 
								 | 
							
								in the same directory where the <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">.cpl </span>file is.
							 | 
						|||
| 
								 | 
							
								<!--l. 216--><p class="indent">   There are two ways to specify how to ground a program. The first consists in
							 | 
						|||
| 
								 | 
							
								providing the list of constants to which each variable can be instantiated. For
							 | 
						|||
| 
								 | 
							
								example, in our case the current directory will contain a file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.uni </span>that is a
							 | 
						|||
| 
								 | 
							
								Prolog file containing facts of the form
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								universe(var_list,const_list).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 219--><p class="nopar"> where <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">var_list</span></span></span> is a list of variables names (each must be included in single quotes)
							 | 
						|||
| 
								 | 
							
								and <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">const_list</span></span></span> is a list of constants. The semantic modules generate the grounding
							 | 
						|||
| 
								 | 
							
								by instantiating in all possible ways the variables of <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">var_list</span></span></span> with the constants of
							 | 
						|||
| 
								 | 
							
								<span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">const_list</span></span></span>. Note that the variables are identified by name, so a variable with
							 | 
						|||
| 
								 | 
							
								the same name in two different clauses will be instantiated with the same
							 | 
						|||
| 
								 | 
							
								constants.
							 | 
						|||
| 
								 | 
							
								<!--l. 222--><p class="indent">   The other way to specify how to ground a program consists in using mode and
							 | 
						|||
| 
								 | 
							
								type information. For each predicate, the file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">.uni </span>must contain a fact of the
							 | 
						|||
| 
								 | 
							
								form
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								mode(predicate(t1,...,tn)).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 225--><p class="nopar"> that specifies the number and types of each argument of the predicate. Then, the list
							 | 
						|||
| 
								 | 
							
								of constants that are in the domain of each type <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">ti </span>must be specified with a fact of
							 | 
						|||
| 
								 | 
							
								the form
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								type(ti,list_of_constants).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 230--><p class="nopar"> The file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">.uni </span>can contain both universe and mode declaration, the ones to be used
							 | 
						|||
| 
								 | 
							
								depend on the value of the parameter <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">grounding</span>: with value <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">variables</span>, the
							 | 
						|||
| 
								 | 
							
								universe declarations are used, with value <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">modes </span>the mode declarations are
							 | 
						|||
| 
								 | 
							
								used.
							 | 
						|||
| 
								 | 
							
								<!--l. 233--><p class="indent">   With <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semcpl.pl </span>only mode declarations can be used.
							 | 
						|||
| 
								 | 
							
								<!--l. 237--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">6   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-60006"></a>Extensions</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 238--><p class="noindent">In this section we will present the extensions to the syntax of LPADs and CP-logic
							 | 
						|||
| 
								 | 
							
								programs that <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint </span>can handle.
							 | 
						|||
| 
								 | 
							
								<!--l. 240--><p class="indent">   The first is the use of some standard Prolog predicates. The bodies can contain
							 | 
						|||
| 
								 | 
							
								the built-in predicates:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								is/2
							 | 
						|||
| 
								 | 
							
								 <br />>/2
							 | 
						|||
| 
								 | 
							
								 <br /></2
							 | 
						|||
| 
								 | 
							
								 <br />>=/2
							 | 
						|||
| 
								 | 
							
								 <br />=</2
							 | 
						|||
| 
								 | 
							
								 <br />=:=/2
							 | 
						|||
| 
								 | 
							
								 <br />=\=/2
							 | 
						|||
| 
								 | 
							
								 <br />true/0
							 | 
						|||
| 
								 | 
							
								 <br />false/0
							 | 
						|||
| 
								 | 
							
								 <br />=/2
							 | 
						|||
| 
								 | 
							
								 <br />==/2
							 | 
						|||
| 
								 | 
							
								 <br />\=/2
							 | 
						|||
| 
								 | 
							
								 <br />\==/2
							 | 
						|||
| 
								 | 
							
								 <br />length/2
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 257--><p class="nopar"> The bodies can also contain the following library predicates:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								member/2
							 | 
						|||
| 
								 | 
							
								 <br />max_list/2
							 | 
						|||
| 
								 | 
							
								 <br />min_list/2
							 | 
						|||
| 
								 | 
							
								 <br />nth0/3
							 | 
						|||
| 
								 | 
							
								 <br />nth/3
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 266--><p class="nopar"> plus the predicate
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								average/2
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 270--><p class="nopar"> that, given a list of numbers, computes its arithmetic mean.
							 | 
						|||
| 
								 | 
							
								<!--l. 273--><p class="indent">   When using <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpadsld.pl</span>, the bodies can contain the predicates <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">setof/3 </span>and
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">bagof/3 </span>with the same meaning as in Prolog. Existential quantifiers are allowed in
							 | 
						|||
| 
								 | 
							
								both, so for example the query
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								setof(Z, (term(X,Y))^foo(X,Y,Z), L).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 276--><p class="nopar"> returns all the instantiations of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Z </span>such that there exists an instantiation of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Y</span>
							 | 
						|||
| 
								 | 
							
								for which <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">foo(X,Y,Z) </span>is true.
							 | 
						|||
| 
								 | 
							
								<!--l. 279--><p class="indent">   An example of the use of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">setof </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">bagof </span>is in the file <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">female.cpl</span>:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								male(C):M/P ; female(C):F/P:-
							 | 
						|||
| 
								 | 
							
								 <br />    person(C),
							 | 
						|||
| 
								 | 
							
								 <br />    setof(Male,known_male(Male),LM),
							 | 
						|||
| 
								 | 
							
								 <br />    length(LM,M),
							 | 
						|||
| 
								 | 
							
								 <br />    setof(Female,known_female(Female),LF),
							 | 
						|||
| 
								 | 
							
								 <br />    length(LF,F),
							 | 
						|||
| 
								 | 
							
								 <br />    P is F+M.
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />person(f).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />known_female(a).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />known_female(b).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />known_female(c).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />known_male(d).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />known_male(e).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 300--><p class="nopar"> The disjunctive rule expresses the probability of a person of unknown sex of being
							 | 
						|||
| 
								 | 
							
								male or female depending on the number of males and females that are known. This
							 | 
						|||
| 
								 | 
							
								is an example of the use of expressions in the probabilities in the head that depend
							 | 
						|||
| 
								 | 
							
								on variables in the body. The probabilities are well defined because they always sum
							 | 
						|||
| 
								 | 
							
								to 1 (unless <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">P </span>is 0).
							 | 
						|||
| 
								 | 
							
								<!--l. 304--><p class="indent">   Another use of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">setof </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">bagof </span>is to have an attribute depend on an
							 | 
						|||
| 
								 | 
							
								aggregate function of another attribute, similarly to what is done in PRM and
							 | 
						|||
| 
								 | 
							
								CLP(BN).
							 | 
						|||
| 
								 | 
							
								<!--l. 306--><p class="indent">   So, in the classical school example (available in <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">student.cpl</span>) you can find the
							 | 
						|||
| 
								 | 
							
								following clauses:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								student_rank(S,h):0.6 ; student_rank(S,l):0.4:-
							 | 
						|||
| 
								 | 
							
								 <br />    bagof(G,R^(registr_stu(R,S),registr_gr(R,G)),L),
							 | 
						|||
| 
								 | 
							
								 <br />    average(L,Av),Av>1.5.
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />student_rank(S,h):0.4 ; student_rank(S,l):0.6:-
							 | 
						|||
| 
								 | 
							
								 <br />    bagof(G,R^(registr_stu(R,S),registr_gr(R,G)),L),
							 | 
						|||
| 
								 | 
							
								 <br />    average(L,Av),Av =< 1.5.
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 316--><p class="nopar"> where <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">registr_stu(R,S)</span></span></span> expresses that registration <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">R </span>refers to student <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">S </span>and
							 | 
						|||
| 
								 | 
							
								<span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">registr_gr(R,G)</span></span></span> expresses that registration <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">R </span>reports grade <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">G </span>which is a natural
							 | 
						|||
| 
								 | 
							
								number. The two clauses express a dependency of the rank of the student from the
							 | 
						|||
| 
								 | 
							
								average of her grades.
							 | 
						|||
| 
								 | 
							
								<!--l. 319--><p class="indent">   Another extension can be used with <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpadsld.pl </span>in order to be able to represent
							 | 
						|||
| 
								 | 
							
								reference uncertainty of PRMs. Reference uncertainty means that the link structure
							 | 
						|||
| 
								 | 
							
								of a relational model is not fixed but is uncertain: this is represented by having the
							 | 
						|||
| 
								 | 
							
								instance referenced in a relationship be chosen uniformly from a set. For example,
							 | 
						|||
| 
								 | 
							
								consider a domain modeling scientific papers: you have a single entity, paper, and a
							 | 
						|||
| 
								 | 
							
								relationship, cites, between paper and itself that connects the citing paper to the
							 | 
						|||
| 
								 | 
							
								cited paper. To represent the fact that the cited paper and the citing paper are
							 | 
						|||
| 
								 | 
							
								selected uniformly from certain sets, the following clauses can be used (see file
							 | 
						|||
| 
								 | 
							
								<span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">paper_ref_simple.cpl</span></span></span>):
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								uniform(cites_cited(C,P),P,L):-
							 | 
						|||
| 
								 | 
							
								 <br />    bagof(Pap,paper_topic(Pap,theory),L).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />uniform(cites_citing(C,P),P,L):-
							 | 
						|||
| 
								 | 
							
								 <br />    bagof(Pap,paper_topic(Pap,ai),L).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 326--><p class="nopar"> The first clauses states that the paper <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">P </span>cited in a citation <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">C </span>is selected
							 | 
						|||
| 
								 | 
							
								uniformly from the set of all papers with topic theory. The second clauses
							 | 
						|||
| 
								 | 
							
								expresses that the citing paper is selected uniformly from the papers with topic
							 | 
						|||
| 
								 | 
							
								ai.
							 | 
						|||
| 
								 | 
							
								<!--l. 331--><p class="indent">   These clauses make use of the predicate
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								uniform(Atom,Variable,List)
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 334--><p class="nopar"> in the head, where <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Atom </span>must contain <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Variable</span>. The meaning is the following:
							 | 
						|||
| 
								 | 
							
								the set of all the atoms obtained by instantiating <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Variable </span>of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Atom </span>with a
							 | 
						|||
| 
								 | 
							
								term taken from <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">List </span>is generated and the head is obtained by having a
							 | 
						|||
| 
								 | 
							
								disjunct for each instantiation with probability 1<span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">∕N </span>where <span 
							 | 
						|||
| 
								 | 
							
								class="cmmi-10">N </span>is the length of
							 | 
						|||
| 
								 | 
							
								<span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">List</span>.
							 | 
						|||
| 
								 | 
							
								<!--l. 338--><p class="indent">   A more elaborate example is present in file <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">paper_ref.cpl</span></span></span>:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								uniform(cites_citing(C,P),P,L):-
							 | 
						|||
| 
								 | 
							
								 <br />    setof(Pap,paper(Pap),L).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />cites_cited_group(C,theory):0.9 ; cites_cited_group(C,ai):0.1:-
							 | 
						|||
| 
								 | 
							
								 <br />    cites_citing(C,P),paper_topic(P,theory).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />cites_cited_group(C,theory):0.01;cites_cited_group(C,ai):0.99:-
							 | 
						|||
| 
								 | 
							
								 <br />    cites_citing(C,P),paper_topic(P,ai).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />uniform(cites_cited(C,P),P,L):-
							 | 
						|||
| 
								 | 
							
								 <br />    cites_cited_group(C,T),bagof(Pap,paper_topic(Pap,T),L).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 351--><p class="nopar"> where the cited paper depends on the topic of the citing paper. In particular, if the
							 | 
						|||
| 
								 | 
							
								topic is theory, the cited paper is selected uniformly from the papers about theory
							 | 
						|||
| 
								 | 
							
								with probability 0.9 and from the papers about ai with probability 0.1. if
							 | 
						|||
| 
								 | 
							
								the topic is ai, the cited paper is selected uniformly from the papers about
							 | 
						|||
| 
								 | 
							
								theory with probability 0.01 and from the papers about ai with probability
							 | 
						|||
| 
								 | 
							
								0.99.
							 | 
						|||
| 
								 | 
							
								<!--l. 354--><p class="indent">   PRMs take into account as well existence uncertainty, where the existence of
							 | 
						|||
| 
								 | 
							
								instances is also probabilistic. For example, in the paper domain, the total number of
							 | 
						|||
| 
								 | 
							
								citations may be unknown and a citation between any two paper may have a
							 | 
						|||
| 
								 | 
							
								probability of existing. For example, a citation between two paper may be more
							 | 
						|||
| 
								 | 
							
								probable if they are about the same topic:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   <table 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><tr class="verbatim"><td 
							 | 
						|||
| 
								 | 
							
								class="verbatim"><div class="verbatim">
							 | 
						|||
| 
								 | 
							
								cites(X,Y):0.005 :-
							 | 
						|||
| 
								 | 
							
								 <br />    paper_topic(X,theory),paper_topic(Y,theory).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />cites(X,Y):0.001 :-
							 | 
						|||
| 
								 | 
							
								 <br />    paper_topic(X,theory),paper_topic(Y,ai).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />cites(X,Y):0.003 :-
							 | 
						|||
| 
								 | 
							
								 <br />    paper_topic(X,ai),paper_topic(Y,theory).
							 | 
						|||
| 
								 | 
							
								 <br />
							 | 
						|||
| 
								 | 
							
								 <br />cites(X,Y):0.008 :-
							 | 
						|||
| 
								 | 
							
								 <br />    paper_topic(X,ai),paper_topic(Y,ai).
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								</td></tr></table>
							 | 
						|||
| 
								 | 
							
								<!--l. 367--><p class="nopar"> This is an example where the probabilities in the head do not sum up to one so the
							 | 
						|||
| 
								 | 
							
								null event is automatically added to the head. The first clause states that, if the topic
							 | 
						|||
| 
								 | 
							
								of a paper <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X </span>is theory and of paper <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Y </span>is theory, there is a probability of 0.005 that
							 | 
						|||
| 
								 | 
							
								there is a citation from <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">X </span>to <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">Y</span>. The other clauses consider the remaining cases for the
							 | 
						|||
| 
								 | 
							
								topics.
							 | 
						|||
| 
								 | 
							
								<!--l. 372--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">7   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-70007"></a>Additional Files</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 373--><p class="noindent">In the directory where Yap keeps the library files (usually <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">/usr/local/share/ Yap</span>)
							 | 
						|||
| 
								 | 
							
								you can find the directory <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint </span>that contains the files:
							 | 
						|||
| 
								 | 
							
								     <ul class="itemize1">
							 | 
						|||
| 
								 | 
							
								     <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">testlpadsld_gbtrue.pl,</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> testlpadsld_gbfalse.pl,</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> testlpad.pl,</span></span></span>
							 | 
						|||
| 
								 | 
							
								     <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">testcpl.pl,</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> testsemlpadsld.pl,</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> testsemlpad.pl</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> testsemcpl.pl</span></span></span>:
							 | 
						|||
| 
								 | 
							
								     Prolog programs for testing the modules. They are executed when issuing
							 | 
						|||
| 
								 | 
							
								     the  command  <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">make installcheck </span>during  the  installation.  To  execute
							 | 
						|||
| 
								 | 
							
								     them afterwords, load the file and issue the command <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">t.</span>
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize">Subdirectory <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">examples</span>:
							 | 
						|||
| 
								 | 
							
								         <ul class="itemize2">
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">alarm.cpl</span>: representation of the Bayesian network in Figure 2 of
							 | 
						|||
| 
								 | 
							
								         <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer04-ICLP04-IC">12</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin.cpl</span>: coin example from <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer04-ICLP04-IC">12</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">coin2.cpl</span>: coin example with two coins.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">dice.cpl</span>: dice example from <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer04-ICLP04-IC">12</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">twosideddice.cpl,</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> threesideddice.cpl</span></span></span> game with idealized dice
							 | 
						|||
| 
								 | 
							
								         with two or three sides. Used in the experiments in <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-RCRA07-IC">8</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">ex.cpl</span>: first example in <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-RCRA07-IC">8</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">exapprox.cpl</span>:  example  showing  the  problems  of  approximate
							 | 
						|||
| 
								 | 
							
								         inference (see <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-RCRA07-IC">8</a>]</span>).
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">exrange.cpl</span>:  example  showing  the  problems  with  non  range
							 | 
						|||
| 
								 | 
							
								         restricted programs (see <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XRig-RCRA07-IC">8</a>]</span>).
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">female.cpl</span>: example showing the dependence of probabilities in the
							 | 
						|||
| 
								 | 
							
								         head from variables in the body (from <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XVenVer04-ICLP04-IC">12</a>]</span>).
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">mendel.cpl, mendels.cpl</span>:  programs  describing  the  Mendelian
							 | 
						|||
| 
								 | 
							
								         rules of inheritance, taken from <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XBlo04-ILP04WIP-IC">2</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">paper_ref.cpl,</span><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10"> paper_ref_simple.cpl</span></span></span>: paper citations examples,
							 | 
						|||
| 
								 | 
							
								         showing reference uncertainty, inspired by <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XGetoor+al:JMLR02">6</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">paper_ref_not.cpl</span></span></span>: paper citations example showing that negation
							 | 
						|||
| 
								 | 
							
								         can be used also for predicates defined by clauses with <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">uniform </span>in
							 | 
						|||
| 
								 | 
							
								         the head.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">school.cpl</span>: example inspired by the example <span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">school_32.yap</span></span></span> from
							 | 
						|||
| 
								 | 
							
								         the source distribution of Yap in the <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">CLPBN </span>directory.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">school_simple.cpl</span></span></span>: simplified version of <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">school.cpl</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span class="obeylines-h"><span class="verb"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">student.cpl</span></span></span>: student example from Figure 1.3 of <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XGetFri01-BC">5</a>]</span>.
							 | 
						|||
| 
								 | 
							
								         </li>
							 | 
						|||
| 
								 | 
							
								         <li class="itemize"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">win.cpl, light.cpl, trigger.cpl, throws.cpl, hiv.cpl,</span>
							 | 
						|||
| 
								 | 
							
								         <br class="newline" /> <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">invalid.cpl</span>: programs taken from <span class="cite">[<a 
							 | 
						|||
| 
								 | 
							
								href="#XCP-logic-unp">13</a>]</span>. <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">invalid.cpl </span>is an example
							 | 
						|||
| 
								 | 
							
								         of a program that is invalid but sound.</li></ul>
							 | 
						|||
| 
								 | 
							
								     <!--l. 398--><p class="noindent">The files <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">*.uni </span>that are present for some of the examples are used by the
							 | 
						|||
| 
								 | 
							
								     semantical modules. Some of the example files contain in an initial comment
							 | 
						|||
| 
								 | 
							
								     some queries together with their result.
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize">Subdirectory <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">doc</span>: contains this manual in latex, html and pdf.</li></ul>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<!--l. 401--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="sectionHead"><span class="titlemark">8   </span> <a 
							 | 
						|||
| 
								 | 
							
								 id="x1-80008"></a>License</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 406--><p class="noindent"><span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cplint</span>, as Yap, follows the Artistic License 2.0 that you can find in Yap CVS root
							 | 
						|||
| 
								 | 
							
								dir. The copyright is by Fabrizio Riguzzi.
							 | 
						|||
| 
								 | 
							
								<!--l. 411--><p class="indent">   The program uses the library <a 
							 | 
						|||
| 
								 | 
							
								href="http://vlsi.colorado.edu/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}fabio/" > CUDD </a> for manipulating BDDs that is included in
							 | 
						|||
| 
								 | 
							
								glu. For the use of CUDD, the following license must be accepted:
							 | 
						|||
| 
								 | 
							
								<!--l. 416--><p class="indent">   Copyright (c) 1995-2004, Regents of the University of Colorado
							 | 
						|||
| 
								 | 
							
								<!--l. 418--><p class="indent">   All rights reserved.
							 | 
						|||
| 
								 | 
							
								<!--l. 420--><p class="indent">   Redistribution and use in source and binary forms, with or without modification,
							 | 
						|||
| 
								 | 
							
								are permitted provided that the following conditions are met:
							 | 
						|||
| 
								 | 
							
								     <ul class="itemize1">
							 | 
						|||
| 
								 | 
							
								     <li class="itemize">Redistributions of source code must retain the above copyright notice, this
							 | 
						|||
| 
								 | 
							
								     list of conditions and the following disclaimer.
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize">Redistributions in binary form must reproduce the above copyright notice,
							 | 
						|||
| 
								 | 
							
								     this list of conditions and the following disclaimer in the documentation
							 | 
						|||
| 
								 | 
							
								     and/or other materials provided with the distribution.
							 | 
						|||
| 
								 | 
							
								     </li>
							 | 
						|||
| 
								 | 
							
								     <li class="itemize">Neither  the  name  of  the  University  of  Colorado  nor  the  names  of  its
							 | 
						|||
| 
								 | 
							
								     contributors may be used to endorse or promote products derived from
							 | 
						|||
| 
								 | 
							
								     this software without specific prior written permission.</li></ul>
							 | 
						|||
| 
								 | 
							
								<!--l. 437--><p class="noindent">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
							 | 
						|||
| 
								 | 
							
								<br class="newline" />AND CONTRIBUTORS ”AS IS” AND ANY EXPRESS OR IMPLIED
							 | 
						|||
| 
								 | 
							
								WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
							 | 
						|||
| 
								 | 
							
								WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
							 | 
						|||
| 
								 | 
							
								PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
							 | 
						|||
| 
								 | 
							
								OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
							 | 
						|||
| 
								 | 
							
								INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
							 | 
						|||
| 
								 | 
							
								(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
							 | 
						|||
| 
								 | 
							
								GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
							 | 
						|||
| 
								 | 
							
								INTERRUPTION) HOWEVER CAU-SED
							 | 
						|||
| 
								 | 
							
								<br class="newline" />AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
							 | 
						|||
| 
								 | 
							
								LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
							 | 
						|||
| 
								 | 
							
								ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
							 | 
						|||
| 
								 | 
							
								ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
							 | 
						|||
| 
								 | 
							
								<!--l. 451--><p class="indent">   <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">lpad.pl</span>, <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">semlpad.pl </span>and <span 
							 | 
						|||
| 
								 | 
							
								class="cmtt-10">cpl.pl </span>are based on the SLG system by <a 
							 | 
						|||
| 
								 | 
							
								href="http://engr.smu.edu/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}wchen/" > Weidong
							 | 
						|||
| 
								 | 
							
								Chen </a> and <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.cs.sunysb.edu/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}warren/" > David Scott Warren </a>, Copyright (C) 1993 Southern Methodist University,
							 | 
						|||
| 
								 | 
							
								1993 SUNY at Stony Brook, see the file COYPRIGHT_SLG for detailed information
							 | 
						|||
| 
								 | 
							
								on this copyright.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<!--l. 1--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								   <h3 class="likesectionHead"><a 
							 | 
						|||
| 
								 | 
							
								 id="x1-90008"></a>References</h3>
							 | 
						|||
| 
								 | 
							
								<!--l. 1--><p class="noindent">
							 | 
						|||
| 
								 | 
							
								    <div class="thebibliography">
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [1]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XDBLP:journals/ngc/AptB91"></a>K. R.  Apt  and  M. Bezem.    Acyclic  programs.    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">New  Generation</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Comput.</span>, 9(3/4):335–364, 1991.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [2]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XBlo04-ILP04WIP-IC"></a>H. Blockeel. Probabilistic logical models for mendel’s experiments: An
							 | 
						|||
| 
								 | 
							
								    exercise.  In <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Inductive Logic Programming (ILP 2004), Work in Progress</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Track</span>, 2004.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [3]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XDBLP:journals/jacm/ChenW96"></a>Weidong  Chen  and  David Scott  Warren.    Tabled  evaluation  with
							 | 
						|||
| 
								 | 
							
								    delaying for general logic programs. <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">J. ACM</span>, 43(1):20–74, 1996.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [4]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XDBLP:conf/ijcai/RaedtKT07"></a>L. De Raedt, A. Kimmig, and H. Toivonen. Problog: A probabilistic
							 | 
						|||
| 
								 | 
							
								    prolog and its application in link discovery.   In <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Proceedings of the 20th</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">International Joint Conference on Artificial Intelligence</span>, pages 2462–2467,
							 | 
						|||
| 
								 | 
							
								    2007.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [5]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XGetFri01-BC"></a>L. Getoor,   N. Friedman,   D. Koller,   and   A. Pfeffer.      Learning
							 | 
						|||
| 
								 | 
							
								    probabilistic relational models. In Saso Dzeroski and Nada Lavrac, editors,
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Relational Data Mining</span>. Springer-Verlag, Berlin, 2001.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [6]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XGetoor+al:JMLR02"></a>L. Getoor,   N. Friedman,   D. Koller,   and   B. Taskar.      Learning
							 | 
						|||
| 
								 | 
							
								    probabilistic models of relational structure.  <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Journal of Machine Learning</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Research</span>, 3:679–707, December 2002.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [7]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XRig-AIIA07-IC"></a>Fabrizio Riguzzi.   A top down interpreter for lpad and cp-logic.   In
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">10th Congress of the Italian Association for Artificial Intelligence</span>. Springer,
							 | 
						|||
| 
								 | 
							
								    2007.
							 | 
						|||
| 
								 | 
							
								    <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.ing.unife.it/docenti/FabrizioRiguzzi/Papers/Rig-AIIA07.pdf" > http://www.ing.unife.it/docenti/FabrizioRiguzzi/Papers/Rig-AIIA07.pdf
							 | 
						|||
| 
								 | 
							
								    </a>.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [8]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XRig-RCRA07-IC"></a>Fabrizio   Riguzzi.        A   top   down   interpreter   for   lpad   and
							 | 
						|||
| 
								 | 
							
								    cp-logic.    In  <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">The  14th  RCRA  workshop  Experimental  Evaluation  of</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Algorithms for Solving Problems with Combinatorial Explosion</span>,  2007.   <a 
							 | 
						|||
| 
								 | 
							
								href="http://pst.istc.cnr.it/RCRA07/articoli/P19-riguzzi-RCRA07.pdf" >
							 | 
						|||
| 
								 | 
							
								    http://pst.istc.cnr.it/RCRA07/articoli/P19-riguzzi-RCRA07.pdf </a>.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								  [9]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XSanPagQaz03-UAI-IC"></a>V. Santos Costa,  D. Page,  M. Qazi,  and  J. Cussens.    CLP(BN):
							 | 
						|||
| 
								 | 
							
								    Constraint logic programming for probabilistic knowledge. In <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Uncertainty</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">in Artificial Intelligence (UAI 2003)</span>, 2003.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								 [10]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XVenDenBru-JELIA06"></a>J. Vennekens, M. Denecker, and M. Bruynooghe. Representing causal
							 | 
						|||
| 
								 | 
							
								    information about a probabilistic process. In <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">10th European Conference on</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Logics in Artificial Intelligence, JELIA 2006</span>, LNAI. Springer, September
							 | 
						|||
| 
								 | 
							
								    2006.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								 [11]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XVenVer03-TR"></a>J. Vennekens  and  S. Verbaeten.    Logic  programs  with  annotated
							 | 
						|||
| 
								 | 
							
								    disjunctions.      Technical  Report  CW386,  K.  U.  Leuven,  2003.      <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.cs.kuleuven.ac.be/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}joost/techrep.ps" >
							 | 
						|||
| 
								 | 
							
								    http://www.cs.kuleuven.ac.be/<span 
							 | 
						|||
| 
								 | 
							
								class="cmsy-10">~</span>joost/techrep.ps </a>.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								 [12]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XVenVer04-ICLP04-IC"></a>J. Vennekens, S. Verbaeten, and M. Bruynooghe. Logic programs with
							 | 
						|||
| 
								 | 
							
								    annotated disjunctions.   In <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">The 20th International Conference on Logic</span>
							 | 
						|||
| 
								 | 
							
								    <span 
							 | 
						|||
| 
								 | 
							
								class="cmti-10">Programming (ICLP 2004)</span>, 2004. <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.cs.kuleuven.ac.be/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}joost/" > http://www.cs.kuleuven.ac.be/<span 
							 | 
						|||
| 
								 | 
							
								class="cmsy-10">~</span>joost/
							 | 
						|||
| 
								 | 
							
								    </a>.
							 | 
						|||
| 
								 | 
							
								    </p>
							 | 
						|||
| 
								 | 
							
								    <p class="bibitem"><span class="biblabel">
							 | 
						|||
| 
								 | 
							
								 [13]<span class="bibsp">   </span></span><a 
							 | 
						|||
| 
								 | 
							
								 id="XCP-logic-unp"></a>Joost Vennekens, Marc Denecker, and Maurice Bruynooge. Extending
							 | 
						|||
| 
								 | 
							
								    the                  role                  of                  causality                  in
							 | 
						|||
| 
								 | 
							
								    probabilistic modeling. <a 
							 | 
						|||
| 
								 | 
							
								href="http://www.cs.kuleuven.ac.be/\protect \unhbox \voidb@x \penalty \@M \relax \unhbox \voidb@x \special {t4ht@+&{35}x00A0{59}}x{}joost/cplogic.pdf" > http://www.cs.kuleuven.ac.be/<span 
							 | 
						|||
| 
								 | 
							
								class="cmsy-10">~</span>joost/cplogic.pdf
							 | 
						|||
| 
								 | 
							
								    </a>, 2006.
							 | 
						|||
| 
								 | 
							
								</p>
							 | 
						|||
| 
								 | 
							
								    </div>
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								</body></html> 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 |