- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Tue, 10 Jan 2006 16:16:05 -0500
- To: public-rif-wg@w3.org
I forgot to comment on the use of disjunction in Enrico's use case http://www.w3.org/2005/rules/wg/wiki/Managing_incomplete_information Disjunction can be modeled in several ways using rules and default negation. The real hard core disjunction is very very rare, and it can be handled in Phase 4 (-;). Disjunction in rule heads is very expensive computationally, but semantics for it (I'm talking about the non-first-order realm) are well-known (e.g., the answer set semantics). Several implementations for it exist as well (DLP http://www.dbai.tuwien.ac.at/proj/dlv/, Smodels http://www.tcs.hut.fi/Software/smodels/). --michael Michael Kifer wrote: > > > Enrico Franconi <franconi@inf.unibz.it>: > > > > On 5 Jan 2006, at 15:51, Dave Reynolds wrote: > > > On the question of bNodes in the head, I hear the argument that it > > > is not sufficient to just treat these as new Skolem constants but > > > my intuitive understanding of the issue is too weak. It would be > > > really helpful if someone could construct a test case which > > > demonstrates the difference in results that arise between correct > > > treatment of bNodes in the head versus treatment as Skolem > > > constants. In the concrete cases I've seen where bNodes are used in > > > the head of rules they seem to be intended as a form of anonymous > > > gensym - so the Skolem constant semantics may be the more > > > practically useful interpretation. > > > > A a naive gensym would fail the use case > > <http://www.w3.org/2005/rules/wg/wiki/Managing_incomplete_information>, > > where two examples > > (in section "9.4. (Rules involving generation of unknown)") show how > > you can make things wrong with a naive use of skolem constants to > > implement the existential variables in the head. > > Yes, Enrico, > Skolemization is not the same as an existential in your use case above, and > using it **naively** will be wrong. > > However, one can **model** the situation differently and obtain essentially > the same result as far as the user goals are concerned. For instance, > referring to > > http://www.w3.org/2005/rules/wg/wiki/Managing_incomplete_information > > one could represent the fact that any traveller has a home address as follows: > > traveller(enrico). > traveller(michael). > has_known_address(enrico,bolzano). > > has_address(?Person,?Addr) :- has_known_address(?Person,?Addr). > has_address(?Person,_#(?Person)) :- > traveller(?Person), > not exists ?A has_known_address(?Person,?A). > > Here _# denotes a new Skolem function (in the notation of FLORA-2, WSML, > and SWSL languages). The above rules are supported (perhaps using different > notations) by a number of existing systems, like FLORA-2 and XSB, and by > proposed languages like WSML-Rules and SWSL-Rules. > > So, here we will infer > > has_address(enrico, bolzano) > has_address(michael, $@!2543(michael)) > > It is even possible to further elaborate and introduce domains so that > certain things will be recognized as "null values" or "placeholders" > as opposed to known values. Perhaps we should have this in RIF. > > I grant that this requires some effort on the part of the user to make > things right, but the same is true of any language that imposes > restrictions on the syntax. DL, for one, is well-known for forcing people > to jump through hoops to express things that are easily expressible in > other logic languages. > > > --michael > > > > >
Received on Tuesday, 10 January 2006 21:16:13 UTC