Re: determining if something is unknown

Thomas Russ <[email protected]> Mon, 25 Feb 2008 09:40:24 -0800
Newsgroups gmane.comp.ai.powerloom
Message-ID <[email protected]>
On Feb 23, 2008, at 7:11 AM, Christian wrote:

> Is there a way to determine whether the the outcome of a statement is
> UNKNOWN?  I'd  like to close a relation such that it is by default  
> TRUE
> instead of FALSE. I thought I'd write a rule which would return TRUE  
> if
> the (myrelation myconcept) is UNKNOWN.

Asking a query will generate a reply of UNKNOWN in the interactive  
listener, so you could find out if a statement is unknown by using ASK.

In the programming API, there are various tests in the pli (package,  
namespace) which can tell you if a statement is unknown.

To do this in a query, you would want to use the FAIL operator, which  
will return TRUE if PowerLoom is unable to prove the statement inside  
the fail operator.  This provides a "failure as negation" semantics at  
the level of individual statements in the logic.

I would guess that a rule something like this would work:

     (=>  (fail (not (r ...)))
          (r ...))

This uses the fail operator in the rule to get the closure, and it  
closes over the negation of what you are trying to prove.