ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Executable English and Logic (Was: accounting inteop

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "Adrian Walker" <adriandwalker@xxxxxxxxx>
Date: Sun, 11 May 2008 12:35:44 -0400
Message-id: <1e89d6a40805110935r24379995i8a624ca3117199cb@xxxxxxxxxxxxxx>
Hi John --

Thanks for your quick answer.

I think that we should be careful to distinguish between two entirely different languages:

  (1) Datalog (it has no negation at all)

  (2)  Datalog augmented with Negation as Failure

Let's see what Pat has to say about whether the model theory semantics of (2) is compatible with the model theory semantics of FOL. 

I suspect that the answer is "No".  If so,  there are many ramifications, since (2) matches the way relational databases are used in practice.  It's also the way negation is treated in the Internet Business Logic system, and in the SQL that the system generates and runs automatically.

                                       Cheers,  -- Adrian

Internet Business Logic
A Wiki and SOA Endpoint for Executable Open Vocabulary English over SQL
Online at www.reengineeringllc.com    Shared use is free

Adrian Walker
Reengineering

On Sun, May 11, 2008 at 11:43 AM, John F. Sowa <sowa@xxxxxxxxxxx> wrote:
Adrian,

 > I think it's often loosely stated that Datalog + NAF is
 > a subset of FOL, but that refers to syntax, and only holds
 > if you -- dangerously -- use the same sign for negation in both.

It is true that the Datalog notation is a subset of FOL notation.

Any notation for either of them can be used with classical
negation or with negation as failure.

There are some implementations that support *both* classical
negation *and* NAF with exactly the same notation.  But they
provide a "switch" that allows the inference engine to
use either classical negation or NAF.

There are notations that mix classical and NAF negations in
the same statement, but trying to keep two kinds of negation
straight in the same statement is more confusing than a
simple switch between full classical or full NAF.

SQL, by default, implements negation as failure.  For any DB
whose tables list all and only those n-tuples that happen
to be true (the closed-world assumption), the SQL 'not'
operator behaves like classical negation.

If your tables are incomplete, any DB administrator who
understands logic (and there are some who do) can design
appropriate methods of access that handle the issues
correctly in order to produce predictable results.

Most DB users, however, do not understand logic.  Fortunately,
however, they don't know how to ask a question that would
use either joins or negations.  All they do is put data in
and take data out, and they unconsciously think of "not" as
meaning "data not in table".  For those uses, they are safe.

For now and for a long time to come, the major applications
for any system of controlled or executable NLs will include
relational DBs.  That is where the bulk of the market is.
Anybody who ignores that market will find it hard to stay
in business.

John


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Subscribe/Config: 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 Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx



_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Subscribe/Config: 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 Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (01)

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