ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] owl2 and cycL/cycML

To: <doug@xxxxxxxxxx>, "'[ontolog-forum] '" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "Rich Cooper" <rich@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 4 Aug 2010 10:26:12 -0700
Message-id: <20100804172623.52AB8138D14@xxxxxxxxxxxxxxxxx>

Hi Doug,

 

Thanks for the lively discussion re NAF as more human like!  I am unchanged in opinion, so I will try to explain below.  

 

-Rich

 

Sincerely,

Rich Cooper

EnglishLogicKernel.com

Rich AT EnglishLogicKernel DOT com

9 4 9 \ 5 2 5 - 5 7 1 2

-----Original Message-----
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of doug foxvog
Sent: Tuesday, August 03, 2010 8:20 PM
To: [ontolog-forum]
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 human like*...

 

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 negation as

failure."

 

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 an employee

> 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

"negation-if-not-asserted". 

 

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

  hasEmployees(Englishlogickernel, ?EMP)

 

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 and me).  

 

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

  hasEmployees(Englishlogickernel, JohnDoeEsq)

Common sense won't tell us whether or not there is another company such

that

  hasEmployees(?COMPANY2, JohnDoeEsq) AND

  NotEqual(Englishlogickernel, ?COMPANY2)

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 completeExtentAssertedForValueInArg to

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"?

 

Thanks!

-Rich

 

If this is asserted for a predicate, the

reasoning engine can answer FALSE for a matching query if no matching

statement is asserted.

 

E.g., given

  (completeExtentAssertedForValueInArg hasEmployees Englishlogickernel 1)

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

asserted.

 

To allow NAF (i.e., after reasoning) Cyc uses the more general relation,

completeExtentDecidableForValueInArg.

 

-- doug foxvog

 

> Moreover, if you attach English sentences to predicates [1], you can help

> nontechnical users to know what's going on by answering the question

> 

> "Is Adrian an employee of Englishlogickernel?"

> 

> with

> 

> "Assuming that the table lists all the employees, he is not an employee of

> that company"

> 

>                                Cheers,   -- Adrian

> 

> [1] 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 advertisements

> 

> Adrian Walker

> Reengineering

> 

> 

> 

> 

> On Mon, Aug 2, 2010 at 1:54 PM, Rich Cooper

> <rich@xxxxxxxxxxxxxxxxxxxxxx>wrote:

> 

>> 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,

>> than

>> any existing alternative.  A person with no experience in an area

>> normally

>> is very skeptical of assertions that can't be proven within his/her

>> database

>> of factual and structural knowledge, and reaches the same conclusion.

>> I'm

>> sure you've heard it said that you don't know what you don't know, so

>> you

>> assume you know everything until proven otherwise.

>> 

>> Another way to look at it is that, within the bounds of evidence, a

>> judge

>> or

>> 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

>> has

>> to be based on known facts, not on missing information.

>> 

>> One consequence of this result is that it is very hard to convince

>> anyone

>> of

>> 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

>> 

>> Sincerely,

>> Rich Cooper

>> EnglishLogicKernel.com

>> Rich AT EnglishLogicKernel DOT com

>> 9 4 9 \ 5 2 5 - 5 7 1 2

>> 

>> -----Original Message-----

>> From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx

>> [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Ian

>> Horrocks

>> Sent: Monday, August 02, 2010 10:14 AM

>> To: edbark@xxxxxxxx; [ontolog-forum]

>> Cc: Bernardo Cuenca Grau

>> Subject: Re: [ontolog-forum] owl2 and cycL/cycML

>> 

>> 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.

>> There

>> are many decidable logics with NAF. If we have an incomplete reasoner

>> for

>> such a logic, we are *still* incorrect if we take failure to return

>> "True"

>> as being equivalent to "False", because the failure may simply be a

>> symptom

>> of the incompleteness and nothing to do with NAF.

>> 

>> Simple example: I am using a logic in which negation is interpreted as

>> NAF.

>> 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

>> record

>> -- it's really not helpful in this discussion :-)

>> 

>> Ian

>> 

>> 

>> 

>> 

>> 

>> 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

>> "false"

>> from "don't know" -- whatever question you ask, they will return an

>> answer.

>> 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

>> does

>> 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

>> the

>> > nature of the reasoning algorithm is, or incorporates, "model

>> > construction", which is typical of various kinds of logic programming

>> > engines, but there are many hybrid algorithms.

>> >

>> > -Ed

>> >

>> > --

>> > Edward J. Barkmeyer                        Email: edbark@xxxxxxxx

>> > National Institute of Standards & Technology

>> > Manufacturing Systems Integration Division

>> > 100 Bureau Drive, Stop 8263                Tel: +1 301-975-3528

begin_of_the_skype_highlighting              +1

301-975-3528      end_of_the_skype_highlighting

>> > Gaithersburg, MD 20899-8263                FAX: +1 301-975-4694

>> >

>> > "The opinions expressed above do not reflect consensus of NIST,

>> > and have not been reviewed by any Government authority."

>> >

 

=============================================================

doug foxvog    doug@xxxxxxxxxx   http://ProgressiveAustin.org

 

"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.

=============================================================

 

 

 


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (01)

<Prev in Thread] Current Thread [Next in Thread>