Thanks for the lively discussion re NAF as more human like! I am
unchanged in opinion, so I will try to explain below.
Rich AT EnglishLogicKernel DOT com
9 4 9 \ 5 2 5 - 5 7 1 2
[mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of doug foxvog
Sent: Tuesday, August 03, 2010 8:20 PM
Subject: Re: [ontolog-forum] owl2 and cycL/cycML
On Mon, August 2, 2010 14:50, Adrian Walker said:
> Rich, you wrote... *negation as failure is more
I dispute Rich here. If a human believes that the
complete extent of
some relation is known (if some of the variables are
fixed), then they
use negation as failure, because that is implicit in
the complete extent
being known. If a human does not believe the complete
extent of the
relation is known then s/he is unlikely to reason with
People have a need for security and
certainty that is not a logical conclusion. The reason business has 2-3
trillion of uninvested cash at this moment is because of the uncertainty in the
markets. Lots of investments that might pay reasonable returns on todays
interest rates and taxation levels WON'T be so reasonable if taxes go up, the
deficit goes up, and social unrest occurs.
The point is that people DO treat the
unknown as UNDESIREABLE, RISKY, and emotionally STRESSFUL - its not logic, BUT human
emotions, that drive these decisions. It’s the reality of living in an
uncertain world situation where failure means loss of every resource, leaving
the investor vulnerable.
If I have a database of possible
investment projects, I won't choose any that could be hammered by changes that
have much of ANY chance to occur in the duration of that project.
> Indeed, relational databases, on which much of
the world economy runs, use
> a form of negation-as-failure -- If Adrian is not
in the table of
> employees of Englishlogickernel, then he is not
> of said company.
> Just commonsense, really.
This "commonsense" relies on an
understanding of the definition of the
table. If this definition is encoded in logic, then
the NAF reasoning
appears in an open world environment.
Such database tables are even more restrictive than
NAF. They rely on
And that is the proper, more restrictive interpretation, which people
use commonly in their resoning.
They don't allow reasoning to conclude that a
person is an employee. If lookup fails, they aren't.
If the employee is not in the database,
then for all the database (or the investor) knows, the person shouldn't be
getting a paycheck. So I stand by this practical interpretation as the
"human" point of view.
What is given for this table is that all values of
?EMP are asserted for
Perhaps you mean
"hasEmployees(EnglishLogicKernel, ?EMP)" is a query, which is valid; table
rows in databases don't have variable symbols, at least not as defined in SQL
or other common database technologies. If you define some symbol (?EMP) that
is to be stored in the table, then you have a completely different technology,
and the system has to find an appropriate binding for ?EMP. That is not what
people do with databases (not Cyclists, but normal everyday citizens like you
Negation-if-not-asserted is valid for the second
argument of this predicate
when the first argument has a specific value. It is
not valid if the
first argument has a different value, nor is it valid
if the second
argument is specified, and not the first. E.g.,
suppose we are given
Common sense won't tell us whether or not there is
another company such
hasEmployees(?COMPANY2, JohnDoeEsq) AND
NAF should not be used when answering such a request.
Objection. If I use a query with a
variable, that variable is bound by row entries in the database for
hasEmployees(?COMPANY2, JohnDoeEsq), so whatever company JohnDoeEsq works in WILL
be returned in ?COMPANY2.
THEN, if no binding for ?COMPANY2 is returned
by the first query term, it still returns the proper answer - nothing found, i.e.
negation of the query as a logical predicate.
If I am interested in determining whether
some other constant also binds to ?COMPANY2 while JohnDoeEsq is retrieved from
the same row, that is a completely different query semantically, as you have
undoubtedly realized. So I think the response makes common sense results clear
to the person issuing the query.
Cyc uses the rule macro predicate
specify such relations.
I suspect that you have some meaning in mind for the predicate, but it
escapes me when I just read the phrase in English. If its not too much
trouble, please define the semantics of "completeExtentAssertedForValueInArg";
here you are limiting the answer to a syntactic symbol with no meaning to those
of us outside of Cyc experience. If you can put that same statement in more
common, everyday language, perhaps we could get a little closer to agreement.
And lastly, SQL allows empty NULL values in relations, which typically
are interpreted by the software around the query, but not by the query itself. Does
this condition have anything to do with your named predicate "completeExtentAssertedForValueInArg"?
If this is asserted for a predicate, the
reasoning engine can answer FALSE for a matching query
if no matching
statement is asserted.
in some context, Cyc will answer FALSE to the query
(hasEmployees Englishlogickernel Adrian)
in the same context (or a subcontext) if the queried
statement is not
To allow NAF (i.e., after reasoning) Cyc uses the more
-- doug foxvog
> Moreover, if you attach English sentences to
predicates , you can help
> nontechnical users to know what's going on by
answering the question
> "Is Adrian an employee of
> "Assuming that the table lists all the
employees, he is not an employee of
> that company"
> Cheers, -- Adrian
>  Internet Business Logic
> A Wiki and SOA Endpoint for Executable Open
Vocabulary English Q/A over
> SQL and RDF
> Online at www.reengineeringllc.com
> Shared use is free, and there are no
> Adrian Walker
> On Mon, Aug 2, 2010 at 1:54 PM, Rich Cooper
>> Hi Ian,
>> If the intent of the tool's designers is to
mimic human perspectives on
>> knowledge and logic, then negation as failure
is more human like, IMHO,
>> any existing alternative. A person with no
experience in an area
>> is very skeptical of assertions that can't be
proven within his/her
>> of factual and structural knowledge, and
reaches the same conclusion.
>> sure you've heard it said that you don't know
what you don't know, so
>> assume you know everything until proven
>> Another way to look at it is that, within the
bounds of evidence, a
>> juror has no basis for any conclusion that is
not consistent with known,
>> demonstrated facts. It is always possible
that other information will
>> surface in the future, but the rational
deduction of the present moment
>> to be based on known facts, not on missing
>> One consequence of this result is that it is
very hard to convince
>> a fact which has no familiarity, in specific
or general terms, to them
>> personally. That is why attorneys and laws
depend on known facts.
>> Rich Cooper
>> Rich AT EnglishLogicKernel DOT com
>> 9 4 9 \ 5 2 5 - 5 7 1 2
>> -----Original Message-----
>> From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
On Behalf Of Ian
>> Sent: Monday, August 02, 2010 10:14 AM
>> To: edbark@xxxxxxxx; [ontolog-forum]
>> Cc: Bernardo Cuenca Grau
>> Subject: Re: [ontolog-forum] owl2 and
>> It is even more tricky that this. The failure
in "negation as failure"
>> doesn't mean failure of a given algorithm, it
means not provably true.
>> are many decidable logics with NAF. If we
have an incomplete reasoner
>> such a logic, we are *still* incorrect if we
take failure to return
>> as being equivalent to "False",
because the failure may simply be a
>> of the incompleteness and nothing to do with
>> Simple example: I am using a logic in which
negation is interpreted as
>> I have a simple boolean theory in which
negation isn't used and which
>> entails A(x). I ask if A(x) is entailed. My
incomplete (for entailment)
>> reasoner answers "False". If I
treat this as entailing that A(x) is not
>> entailed, then I am really incorrect --
nothing to do with NAF.
>> In fact I think that we would be well advised
to strike NAF from the
>> -- it's really not helpful in this discussion
>> On 2 Aug 2010, at 17:45, Ed Barkmeyer wrote:
>> > Ian Horrocks wrote:
>> >> Regarding my claim that reasoners
are typically used in a way that is
>> actually incorrect, to the best of my
knowledge none of the incomplete
>> reasoners in widespread use in the ontology
world even distinguish
>> from "don't know" -- whatever
question you ask, they will return an
>> Thus, in order to be correct, applications
would have to treat *every*
>> "false" answer as "don't
know". I don't know of any application that
>> > Put another way, it is not incorrect to
treat "don't know" as "false",
>> > if "negation as failure" is a
stated principle of the reasoning
>> > algorithm. We can state the 'negation
as failure' principle generally
>> > as "if the assertion cannot be
proved from the knowledge base, the
>> > assertion is taken to be false."
>> > Of course, "proved" means that
the reasoning algorithm can derive a
>> > proof, which depends on the algorithm
actually implemented in the
>> > engine. As Ian mentioned earlier, this
kind of "proof" implies that
>> > nature of the reasoning algorithm is, or
>> > construction", which is typical of
various kinds of logic programming
>> > engines, but there are many hybrid
>> > -Ed
>> > --
>> > Edward J.
Barkmeyer Email: edbark@xxxxxxxx
>> > National Institute of Standards &
>> > Manufacturing Systems Integration
>> > 100 Bureau Drive, Stop
8263 Tel: +1 301-975-3528
>> > Gaithersburg,
FAX: +1 301-975-4694
>> > "The opinions expressed above do
not reflect consensus of NIST,
>> > and have not been reviewed by any
doug foxvog doug@xxxxxxxxxx
"I speak as an American to the leaders of my own
nation. The great
initiative in this war is ours. The initiative to stop
it must be ours."
- Dr. Martin Luther King Jr.